From e3b938563803c6a71043c4e7ba2e0d27c400f514 Mon Sep 17 00:00:00 2001 From: Cosmin Damian <17934949+cdamian@users.noreply.github.com> Date: Thu, 19 Sep 2024 16:10:12 +0300 Subject: [PATCH] Add dynamic extrinsic signing support (#389) * extrinsics: Add dynamic types for extrinsics, add new rpc endpoint * extrinsic: Add errors to validation funcs * extrinsic: Generate extrinsic payload and signature based on metadata * rpc: Extract submit and watch func * extrinsic: Add more comments * extrinsic: Add support for AssetID signed field. * extrinsic: Add support for PrevalidateAttests signed extension * extrinsic: Add support for CheckNetworkMembership signed extra * chore: Update encode/decode tests for types, fix imports format * test: Adjust APIs, registry types, and tests * rpc: Re-add pending extrinsics retrieval * lib: Add extrinsic decoder, adjust tests, types, and rpc * registry: Add extra check for generic extrinsic type, add test * extrinsic: Add more tests * lib: Drop old metadata examples, fix linter * CI: Install docker-compose * tests: Fix state tests * registry: Remove unused Acala signature struct --- .github/workflows/tests.yml | 6 + Makefile | 8 +- main_test.go | 42 +- registry/REGISTRY.md | 14 +- registry/decoder.go | 503 +++++++++++ registry/decoder_test.go | 587 +++++++++++++ registry/error.go | 12 +- registry/factory.go | 571 ++++-------- registry/factory_mock.go | 23 + registry/factory_test.go | 683 +++++++-------- registry/parser/error.go | 2 - registry/parser/extrinsic_parser.go | 120 --- registry/parser/extrinsic_parser_mock.go | 53 -- registry/parser/extrinsic_parser_test.go | 344 -------- registry/retriever/error.go | 16 +- .../retriever/event_retriever_live_test.go | 1 - registry/retriever/extrinsic_retriever.go | 134 ++- .../extrinsic_retriever_live_test.go | 219 +---- .../retriever/extrinsic_retriever_mock.go | 16 +- .../retriever/extrinsic_retriever_test.go | 818 ++++------------- registry/test/centrifuge_meta.go | 4 +- rpc/author/author.go | 7 +- rpc/author/mocks/author.go | 22 +- rpc/author/pending_extrinsics.go | 22 +- rpc/author/pending_extrinsics_test.go | 6 +- rpc/author/submit_and_watch_extrinsic.go | 19 +- rpc/author/submit_and_watch_extrinsic_test.go | 20 +- rpc/author/submit_extrinsic.go | 3 +- rpc/author/submit_extrinsic_test.go | 20 +- rpc/chain/chain.go | 7 +- rpc/chain/generic/block.go | 265 ------ rpc/chain/generic/chain.go | 91 -- rpc/chain/generic/chain_mock.go | 70 -- rpc/chain/generic/chain_test.go | 292 ------- rpc/chain/get_block.go | 14 +- rpc/chain/mocks/chain.go | 18 +- rpc/state/get_metadata_test.go | 16 +- rpc/state/state_test.go | 4 +- .../author_submit_and_watch_extrinsic_test.go | 22 +- teste2e/author_submit_extrinsic_test.go | 23 +- types/block/block.go | 39 + types/call.go | 107 +++ types/call_test.go | 36 + types/event_record.go | 819 +++++++++--------- types/event_record_test.go | 229 ----- types/extrinsic.go | 355 -------- types/extrinsic/extensions/check_metadata.go | 40 + types/extrinsic/extensions/names.go | 22 + types/extrinsic/extrinsic.go | 173 ++++ types/extrinsic/extrinsic_test.go | 207 +++++ types/extrinsic/options.go | 70 ++ types/extrinsic/payload.go | 258 ++++++ types/extrinsic/payload_test.go | 207 +++++ types/extrinsic/signature.go | 40 + types/extrinsic/signature_test.go | 48 + types/extrinsic_examplary.go | 21 - types/extrinsic_payload.go | 162 ---- types/extrinsic_payload_test.go | 111 --- types/extrinsic_signature.go | 43 - types/extrinsic_signature_test.go | 101 --- types/extrinsic_test.go | 243 ------ types/metadataV10_examplary.go | 29 - types/metadataV10_test.go | 24 - types/metadataV11_examplary.go | 20 - types/metadataV11_examplary_string.go | 21 - types/metadataV11_test.go | 27 - types/metadataV12_examplary_string.go | 20 - types/metadataV12_test.go | 24 - types/metadataV13_examplary.go | 19 - types/metadataV13_examplary_string.go | 3 - types/metadataV13_test.go | 11 - types/metadataV14_examplary_string.go | 21 - types/metadataV14_example.go | 24 + types/metadataV14_test.go | 20 +- types/metadataV4_examplary.go | 23 - types/metadataV4_test.go | 10 - types/metadataV8_examplary.go | 20 - types/metadataV9_examplary.go | 20 - types/multi_signature.go | 4 +- types/serde_test.go | 2 +- types/signature.go | 12 +- types/signature_test.go | 6 +- types/signed_block.go | 28 - types/storage_key_test.go | 323 +------ types/test/README.md | 46 - types/test/test-gen/client.go | 251 ------ types/test/test-gen/client_test.go | 737 ---------------- types/test/test-gen/main.go | 165 ---- types/test/test-gen/parser.go | 124 --- types/test/test-gen/parser_test.go | 198 ----- types/test/types_test.go | 86 -- types/xcm.go | 38 +- types/xcm_test.go | 60 +- 93 files changed, 3825 insertions(+), 7039 deletions(-) create mode 100644 registry/decoder.go create mode 100644 registry/decoder_test.go delete mode 100644 registry/parser/extrinsic_parser.go delete mode 100644 registry/parser/extrinsic_parser_mock.go delete mode 100644 registry/parser/extrinsic_parser_test.go delete mode 100644 rpc/chain/generic/block.go delete mode 100644 rpc/chain/generic/chain.go delete mode 100644 rpc/chain/generic/chain_mock.go delete mode 100644 rpc/chain/generic/chain_test.go create mode 100644 types/block/block.go create mode 100644 types/call.go create mode 100644 types/call_test.go delete mode 100644 types/extrinsic.go create mode 100644 types/extrinsic/extensions/check_metadata.go create mode 100644 types/extrinsic/extensions/names.go create mode 100644 types/extrinsic/extrinsic.go create mode 100644 types/extrinsic/extrinsic_test.go create mode 100644 types/extrinsic/options.go create mode 100644 types/extrinsic/payload.go create mode 100644 types/extrinsic/payload_test.go create mode 100644 types/extrinsic/signature.go create mode 100644 types/extrinsic/signature_test.go delete mode 100644 types/extrinsic_examplary.go delete mode 100644 types/extrinsic_payload.go delete mode 100644 types/extrinsic_payload_test.go delete mode 100644 types/extrinsic_signature.go delete mode 100644 types/extrinsic_signature_test.go delete mode 100644 types/extrinsic_test.go delete mode 100644 types/metadataV10_examplary.go delete mode 100644 types/metadataV11_examplary.go delete mode 100644 types/metadataV11_examplary_string.go delete mode 100644 types/metadataV12_examplary_string.go delete mode 100644 types/metadataV13_examplary.go delete mode 100644 types/metadataV13_examplary_string.go delete mode 100644 types/metadataV14_examplary_string.go create mode 100644 types/metadataV14_example.go delete mode 100644 types/metadataV4_examplary.go delete mode 100644 types/metadataV8_examplary.go delete mode 100644 types/metadataV9_examplary.go delete mode 100644 types/signed_block.go delete mode 100644 types/test/README.md delete mode 100644 types/test/test-gen/client.go delete mode 100644 types/test/test-gen/client_test.go delete mode 100644 types/test/test-gen/main.go delete mode 100644 types/test/test-gen/parser.go delete mode 100644 types/test/test-gen/parser_test.go delete mode 100644 types/test/types_test.go diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 92c4c60b4..dfe276e82 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -15,6 +15,12 @@ jobs: uses: actions/checkout@v2.4.0 with: fetch-depth: 0 + - name: Install compose + run: | + sudo curl -SL https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose + sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose + sudo chmod +x /usr/bin/docker-compose + docker compose version - name: Run tests run: make test-dockerized - name: Upload coverage diff --git a/Makefile b/Makefile index a897ae00a..43bbbf1da 100644 --- a/Makefile +++ b/Makefile @@ -37,16 +37,10 @@ test-dockerized: run-substrate-docker run-substrate-docker: ## starts the Substrate Docker image @docker-compose up -d substrate -generate-test-data: ## generate data for types decode test - @go generate -tags=types_test ./types/test/... - -test-types-decode: ## run tests for types decode - @go test -tags=types_test ./types/test/... - generate-mocks: ## generate mocks @docker run -v `pwd`:/app -w /app --entrypoint /bin/sh vektra/mockery:v2.13.0-beta.1 -c 'go generate ./...' help: ## shows this help @sed -ne '/@sed/!s/## //p' $(MAKEFILE_LIST) -.PHONY: install-deps lint lint-fix test test-cover test-dockerized run-substrate-docker clean generate-test-data +.PHONY: clean lint lint-fix test test-cover test-dockerized run-substrate-docker generate-mocks diff --git a/main_test.go b/main_test.go index 90b592296..de2aeca58 100644 --- a/main_test.go +++ b/main_test.go @@ -18,6 +18,7 @@ package gsrpc_test import ( "fmt" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic" "math/big" "time" @@ -215,7 +216,7 @@ func Example_makeASimpleTransfer() { } // Create the extrinsic - ext := types.NewExtrinsic(c) + ext := extrinsic.NewExtrinsic(c) genesisHash, err := api.RPC.Chain.GetBlockHash(0) if err != nil { @@ -239,18 +240,16 @@ func Example_makeASimpleTransfer() { } nonce := uint32(accountInfo.Nonce) - o := types.SignatureOptions{ - BlockHash: genesisHash, - Era: types.ExtrinsicEra{IsMortalEra: false}, - GenesisHash: genesisHash, - Nonce: types.NewUCompactFromUInt(uint64(nonce)), - SpecVersion: rv.SpecVersion, - Tip: types.NewUCompactFromUInt(100), - TransactionVersion: rv.TransactionVersion, - } // Sign the transaction using Alice's default account - err = ext.Sign(signature.TestKeyringPairAlice, o) + err = ext.Sign(signature.TestKeyringPairAlice, meta, extrinsic.WithEra(types.ExtrinsicEra{IsImmortalEra: true}, genesisHash), + extrinsic.WithNonce(types.NewUCompactFromUInt(uint64(nonce))), + extrinsic.WithTip(types.NewUCompactFromUInt(0)), + extrinsic.WithSpecVersion(rv.SpecVersion), + extrinsic.WithTransactionVersion(rv.TransactionVersion), + extrinsic.WithGenesisHash(genesisHash), + ) + if err != nil { panic(err) } @@ -428,7 +427,7 @@ func Example_transactionWithEvents() { } // Create the extrinsic - ext := types.NewExtrinsic(c) + ext := extrinsic.NewExtrinsic(c) genesisHash, err := api.RPC.Chain.GetBlockHash(0) if err != nil { @@ -454,20 +453,17 @@ func Example_transactionWithEvents() { nonce := uint32(accountInfo.Nonce) - o := types.SignatureOptions{ - BlockHash: genesisHash, - Era: types.ExtrinsicEra{IsMortalEra: false}, - GenesisHash: genesisHash, - Nonce: types.NewUCompactFromUInt(uint64(nonce)), - SpecVersion: rv.SpecVersion, - Tip: types.NewUCompactFromUInt(0), - TransactionVersion: rv.TransactionVersion, - } - fmt.Printf("Sending %v from %#x to %#x with nonce %v", amount, signature.TestKeyringPairAlice.PublicKey, bob.AsAccountID, nonce) // Sign the transaction using Alice's default account - err = ext.Sign(signature.TestKeyringPairAlice, o) + err = ext.Sign(signature.TestKeyringPairAlice, meta, extrinsic.WithEra(types.ExtrinsicEra{IsImmortalEra: true}, genesisHash), + extrinsic.WithNonce(types.NewUCompactFromUInt(uint64(nonce))), + extrinsic.WithTip(types.NewUCompactFromUInt(0)), + extrinsic.WithSpecVersion(rv.SpecVersion), + extrinsic.WithTransactionVersion(rv.TransactionVersion), + extrinsic.WithGenesisHash(genesisHash), + ) + if err != nil { panic(err) } diff --git a/registry/REGISTRY.md b/registry/REGISTRY.md index b0ad02aa5..1dd9b32bb 100644 --- a/registry/REGISTRY.md +++ b/registry/REGISTRY.md @@ -5,7 +5,7 @@ By leveraging the on-chain metadata, GSRPC is more robust to changes on types, a This registry can be used afterwards to decode data read from live chains (events & extrinsics). -## How to parse events and its types +## How to parse events and their fields First we instantiate the API with the client node and open a connection: ```go testURL := "wss://fullnode.parachain.centrifuge.io" // Your endpoint @@ -68,16 +68,12 @@ for _, event := range events { ## Extended Usage Since docs get outdated fairly quick, here are links to tests that will always be up-to-date. -### Populate Call, Error & Events Registries -[Browse me](registry_test.go) +### Populate Call, Error & Events Registries, Extrinsic Decoder +[Factory tests](factory_test.go) +[Decoder tests](decoder_test.go) ### Event retriever [TestLive_EventRetriever_GetEvents](retriever/event_retriever_live_test.go) -### Extrinsic retriever -Since chain runtimes can be customized, modifying core types such as Accounts, Signature payloads or Payment payloads, the code supports a customizable way of passing those custom types to the extrinsic retriever. -On the other hand, since a great majority of chains do not need to change these types, the tool provides a default for the most common used ones. -#### Using Chain Defaults -[TestExtrinsicRetriever_NewDefault](retriever/extrinsic_retriever_test.go#L179) -#### Using Custom core types +### Extrinsic retriever [TestLive_ExtrinsicRetriever_GetExtrinsics](retriever/extrinsic_retriever_live_test.go) \ No newline at end of file diff --git a/registry/decoder.go b/registry/decoder.go new file mode 100644 index 000000000..bd880249f --- /dev/null +++ b/registry/decoder.go @@ -0,0 +1,503 @@ +package registry + +import ( + "bytes" + "fmt" + + "github.com/centrifuge/go-substrate-rpc-client/v4/scale" + "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic" + "github.com/ethereum/go-ethereum/common/hexutil" +) + +// FieldDecoder is the interface implemented by all the different types that are available. +type FieldDecoder interface { + Decode(decoder *scale.Decoder) (any, error) +} + +// NoopDecoder is a FieldDecoder that does not decode anything. It comes in handy for nil tuples or variants +// with no inner types. +type NoopDecoder struct{} + +func (n *NoopDecoder) Decode(_ *scale.Decoder) (any, error) { + return nil, nil +} + +// VariantDecoder holds a FieldDecoder for each variant/enum. +type VariantDecoder struct { + FieldDecoderMap map[byte]FieldDecoder +} + +func (v *VariantDecoder) Decode(decoder *scale.Decoder) (any, error) { + variantByte, err := decoder.ReadOneByte() + + if err != nil { + return nil, ErrVariantByteDecoding.Wrap(err) + } + + variantDecoder, ok := v.FieldDecoderMap[variantByte] + + if !ok { + return nil, ErrVariantFieldDecoderNotFound.WithMsg("variant '%d'", variantByte) + } + + if _, ok := variantDecoder.(*NoopDecoder); ok { + return variantByte, nil + } + + return variantDecoder.Decode(decoder) +} + +// ArrayDecoder holds information about the length of the array and the FieldDecoder used for its items. +type ArrayDecoder struct { + Length uint + ItemDecoder FieldDecoder +} + +func (a *ArrayDecoder) Decode(decoder *scale.Decoder) (any, error) { + if a.ItemDecoder == nil { + return nil, ErrArrayItemDecoderNotFound + } + + slice := make([]any, 0, a.Length) + + for i := uint(0); i < a.Length; i++ { + item, err := a.ItemDecoder.Decode(decoder) + + if err != nil { + return nil, ErrArrayItemDecoding.Wrap(err) + } + + slice = append(slice, item) + } + + return slice, nil +} + +// SliceDecoder holds a FieldDecoder for the items of a vector/slice. +type SliceDecoder struct { + ItemDecoder FieldDecoder +} + +func (s *SliceDecoder) Decode(decoder *scale.Decoder) (any, error) { + if s.ItemDecoder == nil { + return nil, ErrSliceItemDecoderNotFound + } + + sliceLen, err := decoder.DecodeUintCompact() + + if err != nil { + return nil, ErrSliceLengthDecoding.Wrap(err) + } + + slice := make([]any, 0, sliceLen.Uint64()) + + for i := uint64(0); i < sliceLen.Uint64(); i++ { + item, err := s.ItemDecoder.Decode(decoder) + + if err != nil { + return nil, ErrSliceItemDecoding.Wrap(err) + } + + slice = append(slice, item) + } + + return slice, nil +} + +// CompositeDecoder holds all the information required to decoder a struct/composite. +type CompositeDecoder struct { + FieldName string + Fields []*Field +} + +func (e *CompositeDecoder) Decode(decoder *scale.Decoder) (any, error) { + var decodedFields DecodedFields + + for _, field := range e.Fields { + value, err := field.FieldDecoder.Decode(decoder) + + if err != nil { + return nil, ErrCompositeFieldDecoding.Wrap(err) + } + + decodedFields = append(decodedFields, &DecodedField{ + Name: field.Name, + Value: value, + LookupIndex: field.LookupIndex, + }) + } + + return decodedFields, nil +} + +// ValueDecoder decodes a primitive type. +type ValueDecoder[T any] struct{} + +func (v *ValueDecoder[T]) Decode(decoder *scale.Decoder) (any, error) { + var t T + + if err := decoder.Decode(&t); err != nil { + return nil, ErrValueDecoding.Wrap(err) + } + + return t, nil +} + +// RecursiveDecoder is a wrapper for a FieldDecoder that is recursive. +type RecursiveDecoder struct { + FieldDecoder FieldDecoder +} + +func (r *RecursiveDecoder) Decode(decoder *scale.Decoder) (any, error) { + if r.FieldDecoder == nil { + return nil, ErrRecursiveFieldDecoderNotFound + } + + return r.FieldDecoder.Decode(decoder) +} + +// BitSequenceDecoder holds decoding information for a bit sequence. +type BitSequenceDecoder struct { + FieldName string + BitOrder types.BitOrder +} + +func (b *BitSequenceDecoder) Decode(decoder *scale.Decoder) (any, error) { + bitVec := types.NewBitVec(b.BitOrder) + + if err := bitVec.Decode(*decoder); err != nil { + return nil, ErrBitVecDecoding.Wrap(err) + } + + return map[string]string{ + b.FieldName: bitVec.String(), + }, nil +} + +// TypeDecoder holds all information required to decode a particular type. +type TypeDecoder struct { + Name string + Fields []*Field +} + +func (t *TypeDecoder) Decode(decoder *scale.Decoder) (DecodedFields, error) { + if t == nil { + return nil, ErrNilTypeDecoder + } + + var decodedFields DecodedFields + + for _, field := range t.Fields { + decodedField, err := field.Decode(decoder) + + if err != nil { + return nil, ErrTypeFieldDecoding.Wrap(err) + } + + decodedFields = append(decodedFields, decodedField) + } + + return decodedFields, nil +} + +// getPrimitiveDecoder parses a primitive type definition and returns a ValueDecoder. +func getPrimitiveDecoder(primitiveTypeDef types.Si0TypeDefPrimitive) (FieldDecoder, error) { + switch primitiveTypeDef { + case types.IsBool: + return &ValueDecoder[bool]{}, nil + case types.IsChar: + return &ValueDecoder[byte]{}, nil + case types.IsStr: + return &ValueDecoder[string]{}, nil + case types.IsU8: + return &ValueDecoder[types.U8]{}, nil + case types.IsU16: + return &ValueDecoder[types.U16]{}, nil + case types.IsU32: + return &ValueDecoder[types.U32]{}, nil + case types.IsU64: + return &ValueDecoder[types.U64]{}, nil + case types.IsU128: + return &ValueDecoder[types.U128]{}, nil + case types.IsU256: + return &ValueDecoder[types.U256]{}, nil + case types.IsI8: + return &ValueDecoder[types.I8]{}, nil + case types.IsI16: + return &ValueDecoder[types.I16]{}, nil + case types.IsI32: + return &ValueDecoder[types.I32]{}, nil + case types.IsI64: + return &ValueDecoder[types.I64]{}, nil + case types.IsI128: + return &ValueDecoder[types.I128]{}, nil + case types.IsI256: + return &ValueDecoder[types.I256]{}, nil + default: + return nil, ErrPrimitiveTypeNotSupported.WithMsg("primitive type %v", primitiveTypeDef) + } +} + +// Field represents one field of a TypeDecoder. +type Field struct { + Name string + FieldDecoder FieldDecoder + LookupIndex int64 +} + +func (f *Field) Decode(decoder *scale.Decoder) (*DecodedField, error) { + if f == nil { + return nil, ErrNilField + } + + if f.FieldDecoder == nil { + return nil, ErrNilFieldDecoder + } + + value, err := f.FieldDecoder.Decode(decoder) + + if err != nil { + return nil, err + } + + return &DecodedField{ + Name: f.Name, + Value: value, + LookupIndex: f.LookupIndex, + }, nil +} + +// DecodedField holds the name, value and lookup index of a field that was decoded. +type DecodedField struct { + Name string + Value any + LookupIndex int64 +} + +func (d DecodedField) Encode(encoder scale.Encoder) error { + if d.Value == nil { + return nil + } + + return encoder.Encode(d.Value) +} + +type DecodedFields []*DecodedField + +type DecodedFieldPredicateFn func(fieldIndex int, field *DecodedField) bool +type DecodedValueProcessingFn[T any] func(value any) (T, error) + +// ProcessDecodedFieldValue applies the processing func to the value of the field +// that matches the provided predicate func. +func ProcessDecodedFieldValue[T any]( + decodedFields DecodedFields, + fieldPredicateFn DecodedFieldPredicateFn, + valueProcessingFn DecodedValueProcessingFn[T], +) (T, error) { + var t T + + for decodedFieldIndex, decodedField := range decodedFields { + if !fieldPredicateFn(decodedFieldIndex, decodedField) { + continue + } + + res, err := valueProcessingFn(decodedField.Value) + + if err != nil { + return t, ErrDecodedFieldValueProcessingError.Wrap(err) + } + + return res, nil + } + + return t, ErrDecodedFieldNotFound +} + +// GetDecodedFieldAsType returns the value of the field that matches the provided predicate func +// as the provided generic argument. +func GetDecodedFieldAsType[T any]( + decodedFields DecodedFields, + fieldPredicateFn DecodedFieldPredicateFn, +) (T, error) { + return ProcessDecodedFieldValue( + decodedFields, + fieldPredicateFn, + func(value any) (T, error) { + if res, ok := value.(T); ok { + return res, nil + } + + var t T + + err := fmt.Errorf("expected %T, got %T", t, value) + + return t, ErrDecodedFieldValueTypeMismatch.Wrap(err) + }, + ) +} + +// GetDecodedFieldAsSliceOfType returns the value of the field that matches the provided predicate func +// as a slice of the provided generic argument. +func GetDecodedFieldAsSliceOfType[T any]( + decodedFields DecodedFields, + fieldPredicateFn DecodedFieldPredicateFn, +) ([]T, error) { + return ProcessDecodedFieldValue( + decodedFields, + fieldPredicateFn, + func(value any) ([]T, error) { + v, ok := value.([]any) + + if !ok { + return nil, ErrDecodedFieldValueNotAGenericSlice + } + + res, err := convertSliceToType[T](v) + + if err != nil { + return nil, ErrDecodedFieldValueTypeMismatch.Wrap(err) + } + + return res, nil + }, + ) +} + +func convertSliceToType[T any](slice []any) ([]T, error) { + res := make([]T, 0) + + for _, item := range slice { + if v, ok := item.(T); ok { + res = append(res, v) + continue + } + + var t T + + return nil, fmt.Errorf("expected %T, got %T", t, item) + } + + return res, nil +} + +// DecodedExtrinsic is the type returned when an extrinsic is decoded. +type DecodedExtrinsic struct { + Version byte + DecodedFields DecodedFields +} + +// IsSigned returns true if the extrinsic is signed. +func (d DecodedExtrinsic) IsSigned() bool { + return d.Version&extrinsic.BitSigned == extrinsic.BitSigned +} + +// ExtrinsicDecoder holds all the decoders for all the fields of an extrinsic. +type ExtrinsicDecoder struct { + Fields []*Field +} + +func (d *ExtrinsicDecoder) getFieldWithName(fieldName string) (*Field, error) { + for _, field := range d.Fields { + if field.Name == fieldName { + return field, nil + } + } + + return nil, ErrExtrinsicFieldNotFound.WithMsg("expected field name '%s'", fieldName) +} + +func (d *ExtrinsicDecoder) decodeField(fieldName string, decoder *scale.Decoder) (*DecodedField, error) { + extrinsicField, err := d.getFieldWithName(fieldName) + + if err != nil { + return nil, err + } + + decodedField, err := extrinsicField.Decode(decoder) + + if err != nil { + return nil, ErrExtrinsicFieldDecoding.Wrap(err).WithMsg("field name - '%s'", fieldName) + } + + return decodedField, nil +} + +func (d *ExtrinsicDecoder) DecodeHex(hexEncodedExtrinsic string) (*DecodedExtrinsic, error) { + extrinsicBytes, err := hexutil.Decode(hexEncodedExtrinsic) + + if err != nil { + return nil, err + } + + decoder := scale.NewDecoder(bytes.NewReader(extrinsicBytes)) + + return d.Decode(decoder) +} + +// Decode is used to decode the fields of an extrinsic in the following order: +// +// 1. Address +// 2. Signature +// 3. Extra +// 4. Call +// +// NOTE - the decoding order is different from the order of the Extrinsic parameters provided in the metadata. +func (d *ExtrinsicDecoder) Decode(decoder *scale.Decoder) (*DecodedExtrinsic, error) { + if d == nil { + return nil, ErrNilExtrinsicDecoder + } + + decodedExtrinsic := &DecodedExtrinsic{} + + // compact length encoding (1, 2, or 4 bytes) (may not be there for Extrinsics older than Jan 11 2019) + _, err := decoder.DecodeUintCompact() + + if err != nil { + return nil, ErrExtrinsicCompactLengthDecoding.Wrap(err) + } + + if err := decoder.Decode(&decodedExtrinsic.Version); err != nil { + return nil, ErrExtrinsicVersionDecoding.Wrap(err) + } + + var decodedFields DecodedFields + + if decodedExtrinsic.IsSigned() { + decodedAddress, err := d.decodeField(ExtrinsicAddressName, decoder) + + if err != nil { + return nil, err + } + + decodedFields = append(decodedFields, decodedAddress) + + decodedSignature, err := d.decodeField(ExtrinsicSignatureName, decoder) + + if err != nil { + return nil, err + } + + decodedFields = append(decodedFields, decodedSignature) + + decodedExtraField, err := d.decodeField(ExtrinsicExtraName, decoder) + + if err != nil { + return nil, err + } + + decodedFields = append(decodedFields, decodedExtraField) + } + + decodedCall, err := d.decodeField(ExtrinsicCallName, decoder) + + if err != nil { + return nil, err + } + + decodedFields = append(decodedFields, decodedCall) + + decodedExtrinsic.DecodedFields = decodedFields + + return decodedExtrinsic, nil +} diff --git a/registry/decoder_test.go b/registry/decoder_test.go new file mode 100644 index 000000000..ce0feae79 --- /dev/null +++ b/registry/decoder_test.go @@ -0,0 +1,587 @@ +package registry + +import ( + "bytes" + "errors" + "github.com/centrifuge/go-substrate-rpc-client/v4/registry/test" + "github.com/centrifuge/go-substrate-rpc-client/v4/scale" + "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic/extensions" + "github.com/stretchr/testify/assert" + "testing" +) + +func Test_getPrimitiveType_UnsupportedTypeError(t *testing.T) { + primitiveTypeDef := types.Si0TypeDefPrimitive(32) + + res, err := getPrimitiveDecoder(primitiveTypeDef) + assert.ErrorIs(t, err, ErrPrimitiveTypeNotSupported) + assert.Nil(t, res) +} + +func Test_TypeDecoder(t *testing.T) { + testData := []any{ + types.U8(1), + types.U16(2), + types.U32(3), + } + + typeDecoder := &TypeDecoder{ + Name: "test_decoder_1", + Fields: []*Field{ + { + Name: "field_1", + FieldDecoder: &ValueDecoder[types.U8]{}, + LookupIndex: 0, + }, + { + Name: "field_2", + FieldDecoder: &ValueDecoder[types.U16]{}, + LookupIndex: 1, + }, + { + Name: "field_3", + FieldDecoder: &ValueDecoder[types.U32]{}, + LookupIndex: 2, + }, + }, + } + + encodedTestData, err := encodeTestData(testData) + assert.NoError(t, err) + + decoder := scale.NewDecoder(bytes.NewReader(encodedTestData)) + + res, err := typeDecoder.Decode(decoder) + assert.NoError(t, err) + assert.Len(t, res, len(testData)) + assert.Equal(t, typeDecoder.Fields[0].Name, res[0].Name) + assert.Equal(t, typeDecoder.Fields[0].LookupIndex, res[0].LookupIndex) + assert.Equal(t, testData[0], res[0].Value) +} + +func Test_TypeDecoder_FieldDecodingError(t *testing.T) { + testData := []any{ + types.U32(3), + } + + typeDecoder := &TypeDecoder{ + Name: "test_decoder_1", + Fields: []*Field{ + { + Name: "field_1", + FieldDecoder: &ValueDecoder[[32]types.U8]{}, + LookupIndex: 0, + }, + }, + } + + encodedTestData, err := encodeTestData(testData) + assert.NoError(t, err) + + decoder := scale.NewDecoder(bytes.NewReader(encodedTestData)) + + res, err := typeDecoder.Decode(decoder) + assert.ErrorIs(t, err, ErrTypeFieldDecoding) + assert.Nil(t, res) +} + +func Test_ProcessDecodedFieldValue(t *testing.T) { + testData := []any{ + types.U8(1), + types.U16(2), + types.U32(3), + } + + decodedFields := testDataToDecodedFields(testData) + + // Field index match + res, err := ProcessDecodedFieldValue[types.U32]( + decodedFields, + func(fieldIndex int, field *DecodedField) bool { + return fieldIndex == len(testData)-1 + }, + func(value any) (types.U32, error) { + res, ok := value.(types.U32) + assert.True(t, ok) + + return res, nil + }, + ) + + assert.NoError(t, err) + assert.Equal(t, testData[2], res) + + // Field name match + res, err = ProcessDecodedFieldValue[types.U32]( + decodedFields, + func(fieldIndex int, field *DecodedField) bool { + return field.Name == "decoded_field_2" + }, + func(value any) (types.U32, error) { + res, ok := value.(types.U32) + assert.True(t, ok) + + return res, nil + }, + ) + + assert.NoError(t, err) + assert.Equal(t, testData[2], res) + + // Field lookup index match + res, err = ProcessDecodedFieldValue[types.U32]( + decodedFields, + func(fieldIndex int, field *DecodedField) bool { + return field.LookupIndex == 2 + }, + func(value any) (types.U32, error) { + res, ok := value.(types.U32) + assert.True(t, ok) + + return res, nil + }, + ) + + assert.NoError(t, err) + assert.Equal(t, testData[2], res) +} + +func Test_ProcessDecodedFieldValue_FieldNotFoundError(t *testing.T) { + testData := []any{ + types.U8(1), + types.U16(2), + types.U32(3), + } + + decodedFields := testDataToDecodedFields(testData) + + res, err := ProcessDecodedFieldValue[types.U32]( + decodedFields, + func(fieldIndex int, field *DecodedField) bool { + return false + }, + func(value any) (types.U32, error) { + res, ok := value.(types.U32) + assert.True(t, ok) + + return res, nil + }, + ) + + assert.ErrorIs(t, err, ErrDecodedFieldNotFound) + assert.Equal(t, types.U32(0), res) +} + +func Test_ProcessDecodedFieldValue_FieldValueProcessingError(t *testing.T) { + testData := []any{ + types.U8(1), + types.U16(2), + types.U32(3), + } + + decodedFields := testDataToDecodedFields(testData) + + res, err := ProcessDecodedFieldValue[types.U32]( + decodedFields, + func(fieldIndex int, field *DecodedField) bool { + return fieldIndex == len(testData)-1 + }, + func(value any) (types.U32, error) { + return 0, errors.New("error") + }, + ) + + assert.ErrorIs(t, err, ErrDecodedFieldValueProcessingError) + assert.Equal(t, types.U32(0), res) +} + +func Test_GetDecodedFieldAsType(t *testing.T) { + testData := []any{ + types.U8(1), + types.U16(2), + types.U32(3), + } + + decodedFields := testDataToDecodedFields(testData) + + res, err := GetDecodedFieldAsType[types.U8]( + decodedFields, + func(fieldIndex int, field *DecodedField) bool { + return fieldIndex == 0 + }, + ) + + assert.NoError(t, err) + assert.Equal(t, testData[0], res) +} + +func Test_GetDecodedFieldAsType_FieldNotFound(t *testing.T) { + testData := []any{ + types.U8(1), + types.U16(2), + types.U32(3), + } + + decodedFields := testDataToDecodedFields(testData) + + res, err := GetDecodedFieldAsType[types.U8]( + decodedFields, + func(fieldIndex int, field *DecodedField) bool { + return fieldIndex == len(testData) + }, + ) + + assert.ErrorIs(t, err, ErrDecodedFieldNotFound) + assert.Equal(t, types.U8(0), res) +} + +func Test_GetDecodedFieldAsType_ValueTypeMismatch(t *testing.T) { + testData := []any{ + types.U8(1), + types.U16(2), + types.U32(3), + } + + decodedFields := testDataToDecodedFields(testData) + + res, err := GetDecodedFieldAsType[types.U8]( + decodedFields, + func(fieldIndex int, field *DecodedField) bool { + return fieldIndex == len(testData)-1 + }, + ) + + assert.ErrorIs(t, err, ErrDecodedFieldValueTypeMismatch) + assert.Equal(t, types.U8(0), res) +} + +func Test_GetDecodedFieldAsSliceOfType(t *testing.T) { + testData := []any{ + types.U8(1), + []any{ + types.U16(0), + types.U16(1), + types.U16(2), + }, + } + + decodedFields := testDataToDecodedFields(testData) + + res, err := GetDecodedFieldAsSliceOfType[types.U16]( + decodedFields, + func(fieldIndex int, field *DecodedField) bool { + return fieldIndex == len(testData)-1 + }, + ) + + assert.NoError(t, err) + assert.Equal(t, []types.U16{0, 1, 2}, res) +} + +func Test_GetDecodedFieldAsSliceOfType_DecodedFieldNotFound(t *testing.T) { + testData := []any{ + types.U8(1), + []any{ + types.U16(0), + types.U16(1), + types.U16(2), + }, + } + + decodedFields := testDataToDecodedFields(testData) + + res, err := GetDecodedFieldAsSliceOfType[types.U16]( + decodedFields, + func(fieldIndex int, field *DecodedField) bool { + return fieldIndex == len(testData) + }, + ) + + assert.ErrorIs(t, err, ErrDecodedFieldNotFound) + assert.Nil(t, res) +} + +func Test_GetDecodedFieldAsSliceOfType_NotAGenericSlice(t *testing.T) { + testData := []any{ + types.U8(1), + // Slices in decoded fields are expected to be []any + []types.U16{ + 0, + 1, + 2, + }, + } + + decodedFields := testDataToDecodedFields(testData) + + res, err := GetDecodedFieldAsSliceOfType[types.U16]( + decodedFields, + func(fieldIndex int, field *DecodedField) bool { + return fieldIndex == len(testData)-1 + }, + ) + + assert.ErrorIs(t, err, ErrDecodedFieldValueNotAGenericSlice) + assert.Nil(t, res) +} + +func Test_GetDecodedFieldAsSliceOfType_SliceItemTypeMismatch(t *testing.T) { + testData := []any{ + types.U8(1), + []any{ + types.U16(0), + types.U16(1), + types.U16(2), + }, + } + + decodedFields := testDataToDecodedFields(testData) + + res, err := GetDecodedFieldAsSliceOfType[types.U8]( + decodedFields, + func(fieldIndex int, field *DecodedField) bool { + return fieldIndex == len(testData)-1 + }, + ) + + assert.ErrorIs(t, err, ErrDecodedFieldValueTypeMismatch) + assert.Nil(t, res) +} + +func Test_ExtrinsicDecoder_DecodeHex(t *testing.T) { + // NOTE - The following test relies on the following data from the Centrifuge development chain: + // + // Metadata from block 517393 + // Centrifuge development block 480514 - 0xacd5bd66bb3144f559be2bed09d0a1ae36e650b31f9eb8f5833eeb2c545d07cd + // System remark extrinsic - 0xb10184008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a480118346322ed93ad7d2583ab3e4b71acd66cc1fce77cb225624c8eb00977681468aec33b933606ed8c2eaa75b84278c42415d491f89c5e79db6910986c1b95f486e401e0000000000431 + + var meta types.Metadata + + err := codec.DecodeFromHex(test.CentrifugeMetadataHex, &meta) + assert.NoError(t, err) + + extrinsicDecoder, err := NewFactory().CreateExtrinsicDecoder(&meta) + assert.NoError(t, err) + + res, err := extrinsicDecoder.DecodeHex("0xb10184008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a480118346322ed93ad7d2583ab3e4b71acd66cc1fce77cb225624c8eb00977681468aec33b933606ed8c2eaa75b84278c42415d491f89c5e79db6910986c1b95f486e401e0000000000431") + assert.NoError(t, err) + assert.NotNil(t, res) +} + +func Test_ExtrinsicDecoder_NilDecoder(t *testing.T) { + var extDec *ExtrinsicDecoder + + scaleDecoder := scale.NewDecoder(bytes.NewBuffer(nil)) + + res, err := extDec.Decode(scaleDecoder) + assert.ErrorIs(t, err, ErrNilExtrinsicDecoder) + assert.Nil(t, res) +} + +func Test_ExtrinsicDecoder_CompactLengthDecodingError(t *testing.T) { + var meta types.Metadata + + err := codec.DecodeFromHex(test.CentrifugeMetadataHex, &meta) + assert.NoError(t, err) + + extrinsicDecoder, err := NewFactory().CreateExtrinsicDecoder(&meta) + assert.NoError(t, err) + + scaleDecoder := scale.NewDecoder(bytes.NewBuffer(nil)) + + res, err := extrinsicDecoder.Decode(scaleDecoder) + assert.ErrorIs(t, err, ErrExtrinsicCompactLengthDecoding) + assert.Nil(t, res) +} + +func Test_ExtrinsicDecoder_VersionDecodingError(t *testing.T) { + var meta types.Metadata + + err := codec.DecodeFromHex(test.CentrifugeMetadataHex, &meta) + assert.NoError(t, err) + + extrinsicDecoder, err := NewFactory().CreateExtrinsicDecoder(&meta) + assert.NoError(t, err) + + encodedUcompact, err := codec.Encode(types.NewUCompactFromUInt(2)) + assert.NoError(t, err) + + scaleDecoder := scale.NewDecoder(bytes.NewBuffer(encodedUcompact)) + + res, err := extrinsicDecoder.Decode(scaleDecoder) + assert.ErrorIs(t, err, ErrExtrinsicVersionDecoding) + assert.Nil(t, res) +} + +func Test_ExtrinsicDecoder_AddressDecodingError(t *testing.T) { + var meta types.Metadata + + err := codec.DecodeFromHex(test.CentrifugeMetadataHex, &meta) + assert.NoError(t, err) + + extrinsicDecoder, err := NewFactory().CreateExtrinsicDecoder(&meta) + assert.NoError(t, err) + + encodedUcompact, err := codec.Encode(types.NewUCompactFromUInt(2)) + assert.NoError(t, err) + + extrinsicVersion := byte(extrinsic.Version4 | extrinsic.BitSigned) + + encodedVersion, err := codec.Encode(extrinsicVersion) + assert.NoError(t, err) + + decoderBytes := append(encodedUcompact, encodedVersion...) + + scaleDecoder := scale.NewDecoder(bytes.NewBuffer(decoderBytes)) + + res, err := extrinsicDecoder.Decode(scaleDecoder) + assert.ErrorIs(t, err, ErrExtrinsicFieldDecoding) + assert.Nil(t, res) +} + +func Test_ExtrinsicDecoder_SignatureDecodingError(t *testing.T) { + var meta types.Metadata + + err := codec.DecodeFromHex(test.CentrifugeMetadataHex, &meta) + assert.NoError(t, err) + + extrinsicDecoder, err := NewFactory().CreateExtrinsicDecoder(&meta) + assert.NoError(t, err) + + encodedUcompact, err := codec.Encode(types.NewUCompactFromUInt(2)) + assert.NoError(t, err) + + extrinsicVersion := byte(extrinsic.Version4 | extrinsic.BitSigned) + + encodedVersion, err := codec.Encode(extrinsicVersion) + assert.NoError(t, err) + + decoderBytes := append(encodedUcompact, encodedVersion...) + + testMultiAdress, err := types.NewMultiAddressFromHexAccountID("0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20") + assert.NoError(t, err) + + encodedMultiAddress, err := codec.Encode(testMultiAdress) + assert.NoError(t, err) + + decoderBytes = append(decoderBytes, encodedMultiAddress...) + + scaleDecoder := scale.NewDecoder(bytes.NewBuffer(decoderBytes)) + + res, err := extrinsicDecoder.Decode(scaleDecoder) + assert.ErrorIs(t, err, ErrExtrinsicFieldDecoding) + assert.Nil(t, res) +} + +func Test_ExtrinsicDecoder_ExtraDecodingError(t *testing.T) { + var meta types.Metadata + + err := codec.DecodeFromHex(test.CentrifugeMetadataHex, &meta) + assert.NoError(t, err) + + extrinsicDecoder, err := NewFactory().CreateExtrinsicDecoder(&meta) + assert.NoError(t, err) + + encodedUcompact, err := codec.Encode(types.NewUCompactFromUInt(2)) + assert.NoError(t, err) + + extrinsicVersion := byte(extrinsic.Version4 | extrinsic.BitSigned) + + encodedVersion, err := codec.Encode(extrinsicVersion) + assert.NoError(t, err) + + decoderBytes := append(encodedUcompact, encodedVersion...) + + testMultiAdress, err := types.NewMultiAddressFromHexAccountID("0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20") + assert.NoError(t, err) + + encodedMultiAddress, err := codec.Encode(testMultiAdress) + assert.NoError(t, err) + + decoderBytes = append(decoderBytes, encodedMultiAddress...) + + testSignature := types.MultiSignature{ + IsSr25519: true, + AsSr25519: types.SignatureHash{}, + } + + encodedSignature, err := codec.Encode(testSignature) + assert.NoError(t, err) + + decoderBytes = append(decoderBytes, encodedSignature...) + + scaleDecoder := scale.NewDecoder(bytes.NewBuffer(decoderBytes)) + + res, err := extrinsicDecoder.Decode(scaleDecoder) + assert.ErrorIs(t, err, ErrExtrinsicFieldDecoding) + assert.Nil(t, res) +} + +func Test_ExtrinsicDecoder_CallDecodingError(t *testing.T) { + var meta types.Metadata + + err := codec.DecodeFromHex(test.CentrifugeMetadataHex, &meta) + assert.NoError(t, err) + + extrinsicDecoder, err := NewFactory().CreateExtrinsicDecoder(&meta) + assert.NoError(t, err) + + encodedUcompact, err := codec.Encode(types.NewUCompactFromUInt(2)) + assert.NoError(t, err) + + extrinsicVersion := byte(extrinsic.Version4 | extrinsic.BitSigned) + + encodedVersion, err := codec.Encode(extrinsicVersion) + assert.NoError(t, err) + + decoderBytes := append(encodedUcompact, encodedVersion...) + + testMultiAdress, err := types.NewMultiAddressFromHexAccountID("0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20") + assert.NoError(t, err) + + encodedMultiAddress, err := codec.Encode(testMultiAdress) + assert.NoError(t, err) + + decoderBytes = append(decoderBytes, encodedMultiAddress...) + + testSignature := types.MultiSignature{ + IsSr25519: true, + AsSr25519: types.SignatureHash{}, + } + + encodedSignature, err := codec.Encode(testSignature) + assert.NoError(t, err) + + decoderBytes = append(decoderBytes, encodedSignature...) + + encodedEra, err := codec.Encode(types.ExtrinsicEra{ + IsImmortalEra: true, + }) + assert.NoError(t, err) + + decoderBytes = append(decoderBytes, encodedEra...) + + encodedNonce, err := codec.Encode(types.NewUCompactFromUInt(0)) + assert.NoError(t, err) + + decoderBytes = append(decoderBytes, encodedNonce...) + + encodedTip, err := codec.Encode(types.NewUCompactFromUInt(0)) + assert.NoError(t, err) + + decoderBytes = append(decoderBytes, encodedTip...) + + encodedMetadataMode, err := codec.Encode(extensions.CheckMetadataModeDisabled) + assert.NoError(t, err) + + decoderBytes = append(decoderBytes, encodedMetadataMode...) + + scaleDecoder := scale.NewDecoder(bytes.NewBuffer(decoderBytes)) + + res, err := extrinsicDecoder.Decode(scaleDecoder) + assert.ErrorIs(t, err, ErrExtrinsicFieldDecoding) + assert.Nil(t, res) +} diff --git a/registry/error.go b/registry/error.go index f4b91e5df..96aef0f8d 100644 --- a/registry/error.go +++ b/registry/error.go @@ -51,10 +51,18 @@ const ( ErrNilTypeDecoder = libErr.Error("nil type decoder") ErrNilField = libErr.Error("nil field") ErrNilFieldDecoder = libErr.Error("nil field decoder") - ErrFieldEncode = libErr.Error("field encoding") - ErrDecodeToTarget = libErr.Error("decode to target") ErrDecodedFieldNotFound = libErr.Error("decoded field not found") ErrDecodedFieldValueTypeMismatch = libErr.Error("decoded field value type mismatch") ErrDecodedFieldValueProcessingError = libErr.Error("decoded field value processing error") ErrDecodedFieldValueNotAGenericSlice = libErr.Error("decoded field value is not a generic slice") + ErrExtrinsicFieldRetrieval = libErr.Error("extrinsic field retrieval") + ErrInvalidExtrinsicParams = libErr.Error("invalid extrinsic params") + ErrInvalidExtrinsicType = libErr.Error("invalid extrinsic type") + ErrInvalidGenericExtrinsicType = libErr.Error("invalid generic extrinsic type") + ErrNilExtrinsicDecoder = libErr.Error("nil type decoder") + ErrExtrinsicFieldNotFound = libErr.Error("extrinsic field not found") + ErrExtrinsicCompactLengthDecoding = libErr.Error("extrinsic compact length decoding") + ErrExtrinsicVersionDecoding = libErr.Error("extrinsic version decoding") + ErrUnexpectedExtrinsicParam = libErr.Error("unexpected extrinsic param") + ErrExtrinsicFieldDecoding = libErr.Error("extrinsic field decoding") ) diff --git a/registry/factory.go b/registry/factory.go index 924eb7dac..6ef458e1a 100644 --- a/registry/factory.go +++ b/registry/factory.go @@ -5,7 +5,6 @@ import ( "fmt" "strings" - "github.com/centrifuge/go-substrate-rpc-client/v4/scale" "github.com/centrifuge/go-substrate-rpc-client/v4/types" ) @@ -16,11 +15,13 @@ type Factory interface { CreateCallRegistry(meta *types.Metadata) (CallRegistry, error) CreateErrorRegistry(meta *types.Metadata) (ErrorRegistry, error) CreateEventRegistry(meta *types.Metadata) (EventRegistry, error) + CreateExtrinsicDecoder(meta *types.Metadata) (*ExtrinsicDecoder, error) } // CallRegistry maps a call name to its TypeDecoder. type CallRegistry map[types.CallIndex]*TypeDecoder +// ErrorID is the type using for identifying an error in the metadata. type ErrorID struct { ModuleIndex types.U8 ErrorIndex [4]types.U8 @@ -207,6 +208,67 @@ func (f *factory) CreateEventRegistry(meta *types.Metadata) (EventRegistry, erro return eventRegistry, nil } +// CreateExtrinsicDecoder creates an ExtrinsicDecoder based on the Extrinsic information provided in the metadata. +func (f *factory) CreateExtrinsicDecoder(meta *types.Metadata) (*ExtrinsicDecoder, error) { + f.resetStorages() + + extrinsicLookupID := meta.AsMetadataV14.Extrinsic.Type + + extrinsicType := meta.AsMetadataV14.EfficientLookup[extrinsicLookupID.Int64()] + + extrinsicParams, err := extractExtrinsicParams(extrinsicType, meta) + + if err != nil { + return nil, err + } + + if err := validateExtrinsicParams(extrinsicParams); err != nil { + return nil, err + } + + extrinsicFields, err := f.getTypeParams(meta, extrinsicParams) + + if err != nil { + return nil, ErrExtrinsicFieldRetrieval + } + + if err := f.resolveRecursiveDecoders(); err != nil { + return nil, ErrRecursiveDecodersResolving.Wrap(err) + } + + return &ExtrinsicDecoder{ + Fields: extrinsicFields, + }, nil +} + +const ( + ExtrinsicAddressName = "Address" + ExtrinsicSignatureName = "Signature" + ExtrinsicExtraName = "Extra" + ExtrinsicCallName = "Call" +) + +var expectedExtrinsicParams = map[string]struct{}{ + ExtrinsicAddressName: {}, + ExtrinsicSignatureName: {}, + ExtrinsicExtraName: {}, + ExtrinsicCallName: {}, +} + +func validateExtrinsicParams(params []types.Si1TypeParameter) error { + if len(params) != ExpectedExtrinsicParamsCount { + return ErrInvalidExtrinsicParams + } + + for _, param := range params { + if _, ok := expectedExtrinsicParams[string(param.Name)]; !ok { + return ErrUnexpectedExtrinsicParam.WithMsg("param - '%s'", param.Name) + } + } + + return nil +} + // resolveRecursiveDecoders resolves all recursive decoders with their according FieldDecoder. // nolint:lll func (f *factory) resolveRecursiveDecoders() error { @@ -240,6 +302,48 @@ func (f *factory) resolveRecursiveDecoders() error { return nil } +// getTypeFields returns a list of fields and their respective decoders from the provided parameters. +func (f *factory) getTypeParams(meta *types.Metadata, params []types.Si1TypeParameter) ([]*Field, error) { + var typeFields []*Field + + for _, param := range params { + paramType, ok := meta.AsMetadataV14.EfficientLookup[param.Type.Int64()] + + if !ok { + return nil, ErrFieldTypeNotFound.WithMsg(string(param.Name)) + } + + paramName := string(param.Name) + + if storedFieldDecoder, ok := f.getStoredFieldDecoder(param.Type.Int64()); ok { + typeFields = append(typeFields, &Field{ + Name: paramName, + FieldDecoder: storedFieldDecoder, + LookupIndex: param.Type.Int64(), + }) + continue + } + + paramTypeDef := paramType.Def + + fieldDecoder, err := f.getFieldDecoder(meta, paramName, paramTypeDef) + + if err != nil { + return nil, ErrFieldDecoderRetrieval.WithMsg(paramName).Wrap(err) + } + + f.fieldStorage[param.Type.Int64()] = fieldDecoder + + typeFields = append(typeFields, &Field{ + Name: paramName, + FieldDecoder: fieldDecoder, + LookupIndex: param.Type.Int64(), + }) + } + + return typeFields, nil +} + // getTypeFields parses and returns all Field(s) for a type. func (f *factory) getTypeFields(meta *types.Metadata, fields []types.Si1Field) ([]*Field, error) { var typeFields []*Field @@ -345,26 +449,22 @@ func (f *factory) getFieldDecoder( } } -const ( - variantItemFieldNameFormat = "variant_item_%d" -) - // getVariantFieldDecoder parses a variant type definition and returns a VariantDecoder. func (f *factory) getVariantFieldDecoder(meta *types.Metadata, typeDef types.Si1TypeDef) (FieldDecoder, error) { variantDecoder := &VariantDecoder{} fieldDecoderMap := make(map[byte]FieldDecoder) - for i, variant := range typeDef.Variant.Variants { + for _, variant := range typeDef.Variant.Variants { if len(variant.Fields) == 0 { fieldDecoderMap[byte(variant.Index)] = &NoopDecoder{} continue } - variantFieldName := fmt.Sprintf(variantItemFieldNameFormat, i) + variantName := getVariantName(variant) compositeDecoder := &CompositeDecoder{ - FieldName: variantFieldName, + FieldName: variantName, } fields, err := f.getTypeFields(meta, variant.Fields) @@ -383,6 +483,18 @@ func (f *factory) getVariantFieldDecoder(meta *types.Metadata, typeDef types.Si1 return variantDecoder, nil } +const ( + variantItemFieldNameFormat = "variant_item_%d" +) + +func getVariantName(variant types.Si1Variant) string { + if variant.Name != "" { + return string(variant.Name) + } + + return fmt.Sprintf(variantItemFieldNameFormat, variant.Index) +} + const ( tupleItemFieldNameFormat = "tuple_item_%d" ) @@ -395,7 +507,7 @@ func (f *factory) getCompactFieldDecoder(meta *types.Metadata, fieldName string, return &ValueDecoder[types.UCompact]{}, nil case typeDef.IsTuple: if typeDef.Tuple == nil { - return &ValueDecoder[any]{}, nil + return &NoopDecoder{}, nil } compositeDecoder := &CompositeDecoder{ @@ -559,54 +671,6 @@ func (f *factory) getBitSequenceDecoder( return bitSequenceDecoder, nil } -func getBitOrderString(path types.Si1Path) string { - pathLen := len(path) - - if pathLen == 0 { - return "" - } - - return string(path[pathLen-1]) -} - -// getPrimitiveDecoder parses a primitive type definition and returns a ValueDecoder. -func getPrimitiveDecoder(primitiveTypeDef types.Si0TypeDefPrimitive) (FieldDecoder, error) { - switch primitiveTypeDef { - case types.IsBool: - return &ValueDecoder[bool]{}, nil - case types.IsChar: - return &ValueDecoder[byte]{}, nil - case types.IsStr: - return &ValueDecoder[string]{}, nil - case types.IsU8: - return &ValueDecoder[types.U8]{}, nil - case types.IsU16: - return &ValueDecoder[types.U16]{}, nil - case types.IsU32: - return &ValueDecoder[types.U32]{}, nil - case types.IsU64: - return &ValueDecoder[types.U64]{}, nil - case types.IsU128: - return &ValueDecoder[types.U128]{}, nil - case types.IsU256: - return &ValueDecoder[types.U256]{}, nil - case types.IsI8: - return &ValueDecoder[types.I8]{}, nil - case types.IsI16: - return &ValueDecoder[types.I16]{}, nil - case types.IsI32: - return &ValueDecoder[types.I32]{}, nil - case types.IsI64: - return &ValueDecoder[types.I64]{}, nil - case types.IsI128: - return &ValueDecoder[types.I128]{}, nil - case types.IsI256: - return &ValueDecoder[types.I256]{}, nil - default: - return nil, ErrPrimitiveTypeNotSupported.WithMsg("primitive type %v", primitiveTypeDef) - } -} - // getStoredFieldDecoder will attempt to return a FieldDecoder from storage, // and perform an extra check for recursive decoders. func (f *factory) getStoredFieldDecoder(fieldLookupIndex int64) (FieldDecoder, bool) { @@ -626,370 +690,107 @@ func (f *factory) getStoredFieldDecoder(fieldLookupIndex int64) (FieldDecoder, b } const ( - fieldSeparator = "." - lookupIndexFormat = "lookup_index_%d" + // ExpectedExtrinsicParamsCount is the count of generic params that we expect for a + // generic Extrinsic type from the metadata. + // + // The parameters are expected to be in the following order: + // 1. Address + // 2. Call + // 3. Signature + // 4. Extra + ExpectedExtrinsicParamsCount = 4 ) -func getFieldPath(fieldType *types.Si1Type) string { - var nameParts []string - - for _, pathEntry := range fieldType.Path { - nameParts = append(nameParts, string(pathEntry)) - } - - return strings.Join(nameParts, fieldSeparator) -} - -func getFullFieldName(field types.Si1Field, fieldType *types.Si1Type) string { - fieldName := getFieldName(field) - - if fieldPath := getFieldPath(fieldType); fieldPath != "" { - return fmt.Sprintf("%s%s%s", fieldPath, fieldSeparator, fieldName) - } - - return getFieldName(field) +// genericExtrinsicPath represents the expected metadata path of a generic extrinsic. +var genericExtrinsicPath = types.Si1Path{ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic", } -func getFieldName(field types.Si1Field) string { - switch { - case field.HasName: - return string(field.Name) - case field.HasTypeName: - return string(field.TypeName) - default: - return fmt.Sprintf(lookupIndexFormat, field.Type.Int64()) - } -} - -// FieldDecoder is the interface implemented by all the different types that are available. -type FieldDecoder interface { - Decode(decoder *scale.Decoder) (any, error) -} - -// NoopDecoder is a FieldDecoder that does not decode anything. It comes in handy for nil tuples or variants -// with no inner types. -type NoopDecoder struct{} - -func (n *NoopDecoder) Decode(_ *scale.Decoder) (any, error) { - return nil, nil -} - -// VariantDecoder holds a FieldDecoder for each variant/enum. -type VariantDecoder struct { - FieldDecoderMap map[byte]FieldDecoder -} - -func (v *VariantDecoder) Decode(decoder *scale.Decoder) (any, error) { - variantByte, err := decoder.ReadOneByte() - - if err != nil { - return nil, ErrVariantByteDecoding.Wrap(err) +// isGenericExtrinsic checks if the metadata path of the extrinsic path matches the one of the +// generic extrinsic. +func isGenericExtrinsic(path types.Si1Path) bool { + if len(path) != len(genericExtrinsicPath) { + return false } - variantDecoder, ok := v.FieldDecoderMap[variantByte] - - if !ok { - return nil, ErrVariantFieldDecoderNotFound.WithMsg("variant '%d'", variantByte) - } - - if _, ok := variantDecoder.(*NoopDecoder); ok { - return variantByte, nil - } - - return variantDecoder.Decode(decoder) -} - -// ArrayDecoder holds information about the length of the array and the FieldDecoder used for its items. -type ArrayDecoder struct { - Length uint - ItemDecoder FieldDecoder -} - -func (a *ArrayDecoder) Decode(decoder *scale.Decoder) (any, error) { - if a.ItemDecoder == nil { - return nil, ErrArrayItemDecoderNotFound - } - - slice := make([]any, 0, a.Length) - - for i := uint(0); i < a.Length; i++ { - item, err := a.ItemDecoder.Decode(decoder) - - if err != nil { - return nil, ErrArrayItemDecoding.Wrap(err) - } - - slice = append(slice, item) - } - - return slice, nil -} - -// SliceDecoder holds a FieldDecoder for the items of a vector/slice. -type SliceDecoder struct { - ItemDecoder FieldDecoder -} - -func (s *SliceDecoder) Decode(decoder *scale.Decoder) (any, error) { - if s.ItemDecoder == nil { - return nil, ErrSliceItemDecoderNotFound - } - - sliceLen, err := decoder.DecodeUintCompact() - - if err != nil { - return nil, ErrSliceLengthDecoding.Wrap(err) - } - - slice := make([]any, 0, sliceLen.Uint64()) - - for i := uint64(0); i < sliceLen.Uint64(); i++ { - item, err := s.ItemDecoder.Decode(decoder) - - if err != nil { - return nil, ErrSliceItemDecoding.Wrap(err) - } - - slice = append(slice, item) - } - - return slice, nil -} - -// CompositeDecoder holds all the information required to decoder a struct/composite. -type CompositeDecoder struct { - FieldName string - Fields []*Field -} - -func (e *CompositeDecoder) Decode(decoder *scale.Decoder) (any, error) { - var decodedFields DecodedFields - - for _, field := range e.Fields { - value, err := field.FieldDecoder.Decode(decoder) - - if err != nil { - return nil, ErrCompositeFieldDecoding.Wrap(err) + for i := range path { + if path[i] != genericExtrinsicPath[i] { + return false } - - decodedFields = append(decodedFields, &DecodedField{ - Name: field.Name, - Value: value, - LookupIndex: field.LookupIndex, - }) } - return decodedFields, nil + return true } -// ValueDecoder decodes a primitive type. -type ValueDecoder[T any] struct{} - -func (v *ValueDecoder[T]) Decode(decoder *scale.Decoder) (any, error) { - var t T - - if err := decoder.Decode(&t); err != nil { - return nil, ErrValueDecoding.Wrap(err) +// extractExtrinsicParams returns the extrinsic params if the provided extrinsic type is generic, otherwise, +// it extracts the generic extrinsic and then returns its params. +func extractExtrinsicParams(extrinsicType *types.Si1Type, meta *types.Metadata) ([]types.Si1TypeParameter, error) { + if isGenericExtrinsic(extrinsicType.Path) { + return extrinsicType.Params, nil } - return t, nil -} - -// RecursiveDecoder is a wrapper for a FieldDecoder that is recursive. -type RecursiveDecoder struct { - FieldDecoder FieldDecoder -} - -func (r *RecursiveDecoder) Decode(decoder *scale.Decoder) (any, error) { - if r.FieldDecoder == nil { - return nil, ErrRecursiveFieldDecoderNotFound + // If the metadata extrinsic type is not generic, its type is expected to be a composite with 1 field. + if !extrinsicType.Def.IsComposite || len(extrinsicType.Def.Composite.Fields) != 1 { + return nil, ErrInvalidExtrinsicType } - return r.FieldDecoder.Decode(decoder) -} + // This composite field is the `sp_runtime::generic::unchecked_extrinsic::UncheckedExtrinsic`. + genericUncheckedExtrinsic := extrinsicType.Def.Composite.Fields[0] -// BitSequenceDecoder holds decoding information for a bit sequence. -type BitSequenceDecoder struct { - FieldName string - BitOrder types.BitOrder -} + genericUncheckedExtrinsicType := meta.AsMetadataV14.EfficientLookup[genericUncheckedExtrinsic.Type.Int64()] -func (b *BitSequenceDecoder) Decode(decoder *scale.Decoder) (any, error) { - bitVec := types.NewBitVec(b.BitOrder) - - if err := bitVec.Decode(*decoder); err != nil { - return nil, ErrBitVecDecoding.Wrap(err) + if !isGenericExtrinsic(genericUncheckedExtrinsicType.Path) { + return nil, ErrInvalidGenericExtrinsicType } - return map[string]string{ - b.FieldName: bitVec.String(), - }, nil -} - -// TypeDecoder holds all information required to decode a particular type. -type TypeDecoder struct { - Name string - Fields []*Field + return genericUncheckedExtrinsicType.Params, nil } -func (t *TypeDecoder) Decode(decoder *scale.Decoder) (DecodedFields, error) { - if t == nil { - return nil, ErrNilTypeDecoder - } - - var decodedFields DecodedFields - - for _, field := range t.Fields { - decodedField, err := field.Decode(decoder) - - if err != nil { - return nil, ErrTypeFieldDecoding.Wrap(err) - } +func getBitOrderString(path types.Si1Path) string { + pathLen := len(path) - decodedFields = append(decodedFields, decodedField) + if pathLen == 0 { + return "" } - return decodedFields, nil -} - -// Field represents one field of a TypeDecoder. -type Field struct { - Name string - FieldDecoder FieldDecoder - LookupIndex int64 + return string(path[pathLen-1]) } -func (f *Field) Decode(decoder *scale.Decoder) (*DecodedField, error) { - if f == nil { - return nil, ErrNilField - } - - if f.FieldDecoder == nil { - return nil, ErrNilFieldDecoder - } - - value, err := f.FieldDecoder.Decode(decoder) - - if err != nil { - return nil, err - } - - return &DecodedField{ - Name: f.Name, - Value: value, - LookupIndex: f.LookupIndex, - }, nil -} +const ( + fieldSeparator = "." + lookupIndexFormat = "lookup_index_%d" +) -// DecodedField holds the name, value and lookup index of a field that was decoded. -type DecodedField struct { - Name string - Value any - LookupIndex int64 -} +func getFieldPath(fieldType *types.Si1Type) string { + var nameParts []string -func (d DecodedField) Encode(encoder scale.Encoder) error { - if d.Value == nil { - return nil + for _, pathEntry := range fieldType.Path { + nameParts = append(nameParts, string(pathEntry)) } - return encoder.Encode(d.Value) + return strings.Join(nameParts, fieldSeparator) } -type DecodedFields []*DecodedField - -type DecodedFieldPredicateFn func(fieldIndex int, field *DecodedField) bool -type DecodedValueProcessingFn[T any] func(value any) (T, error) - -// ProcessDecodedFieldValue applies the processing func to the value of the field -// that matches the provided predicate func. -func ProcessDecodedFieldValue[T any]( - decodedFields DecodedFields, - fieldPredicateFn DecodedFieldPredicateFn, - valueProcessingFn DecodedValueProcessingFn[T], -) (T, error) { - var t T - - for decodedFieldIndex, decodedField := range decodedFields { - if !fieldPredicateFn(decodedFieldIndex, decodedField) { - continue - } - - res, err := valueProcessingFn(decodedField.Value) - - if err != nil { - return t, ErrDecodedFieldValueProcessingError.Wrap(err) - } +func getFullFieldName(field types.Si1Field, fieldType *types.Si1Type) string { + fieldName := getFieldName(field) - return res, nil + if fieldPath := getFieldPath(fieldType); fieldPath != "" { + return fmt.Sprintf("%s%s%s", fieldPath, fieldSeparator, fieldName) } - return t, ErrDecodedFieldNotFound -} - -// GetDecodedFieldAsType returns the value of the field that matches the provided predicate func -// as the provided generic argument. -func GetDecodedFieldAsType[T any]( - decodedFields DecodedFields, - fieldPredicateFn DecodedFieldPredicateFn, -) (T, error) { - return ProcessDecodedFieldValue( - decodedFields, - fieldPredicateFn, - func(value any) (T, error) { - if res, ok := value.(T); ok { - return res, nil - } - - var t T - - err := fmt.Errorf("expected %T, got %T", t, value) - - return t, ErrDecodedFieldValueTypeMismatch.Wrap(err) - }, - ) -} - -// GetDecodedFieldAsSliceOfType returns the value of the field that matches the provided predicate func -// as a slice of the provided generic argument. -func GetDecodedFieldAsSliceOfType[T any]( - decodedFields DecodedFields, - fieldPredicateFn DecodedFieldPredicateFn, -) ([]T, error) { - return ProcessDecodedFieldValue( - decodedFields, - fieldPredicateFn, - func(value any) ([]T, error) { - v, ok := value.([]any) - - if !ok { - return nil, ErrDecodedFieldValueNotAGenericSlice - } - - res, err := convertSliceToType[T](v) - - if err != nil { - return nil, ErrDecodedFieldValueTypeMismatch.Wrap(err) - } - - return res, nil - }, - ) + return getFieldName(field) } -func convertSliceToType[T any](slice []any) ([]T, error) { - res := make([]T, 0) - - for _, item := range slice { - if v, ok := item.(T); ok { - res = append(res, v) - continue - } - - var t T - - return nil, fmt.Errorf("expected %T, got %T", t, item) +func getFieldName(field types.Si1Field) string { + switch { + case field.HasName: + return string(field.Name) + case field.HasTypeName: + return string(field.TypeName) + default: + return fmt.Sprintf(lookupIndexFormat, field.Type.Int64()) } - - return res, nil } diff --git a/registry/factory_mock.go b/registry/factory_mock.go index 2c8b918ba..f1f40dc03 100644 --- a/registry/factory_mock.go +++ b/registry/factory_mock.go @@ -81,6 +81,29 @@ func (_m *FactoryMock) CreateEventRegistry(meta *types.Metadata) (EventRegistry, return r0, r1 } +// CreateExtrinsicDecoder provides a mock function with given fields: meta +func (_m *FactoryMock) CreateExtrinsicDecoder(meta *types.Metadata) (*ExtrinsicDecoder, error) { + ret := _m.Called(meta) + + var r0 *ExtrinsicDecoder + if rf, ok := ret.Get(0).(func(*types.Metadata) *ExtrinsicDecoder); ok { + r0 = rf(meta) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ExtrinsicDecoder) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(*types.Metadata) error); ok { + r1 = rf(meta) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + type NewFactoryMockT interface { mock.TestingT Cleanup(func()) diff --git a/registry/factory_test.go b/registry/factory_test.go index ab8f6f2c5..593342fe2 100644 --- a/registry/factory_test.go +++ b/registry/factory_test.go @@ -2,7 +2,6 @@ package registry import ( "bytes" - "errors" "fmt" "testing" @@ -298,7 +297,7 @@ func TestFactory_CreateCallRegistry_Overrides(t *testing.T) { t.Log("Metadata was decoded successfully") // Lookup index for U64 in the test.CentrifugeMetadataHex - targetLookupIndex := int64(10) + targetLookupIndex := int64(11) f := NewFactory().(*factory) @@ -676,6 +675,247 @@ func TestFactory_CreateEventRegistry_GetTypeFieldError(t *testing.T) { assert.Empty(t, reg) } +func TestFactory_CreateExtrinsicDecoder_WithLiveMetadata(t *testing.T) { + var tests = []struct { + Chain string + MetadataHex string + }{ + { + Chain: "centrifuge", + MetadataHex: test.CentrifugeMetadataHex, + }, + { + Chain: "polkadot", + MetadataHex: test.PolkadotMetadataHex, + }, + { + Chain: "acala", + MetadataHex: test.AcalaMetaHex, + }, + { + Chain: "statemint", + MetadataHex: test.StatemintMetaHex, + }, + { + Chain: "moonbeam", + MetadataHex: test.MoonbeamMetaHex, + }, + } + + for _, test := range tests { + t.Run(test.Chain, func(t *testing.T) { + var meta types.Metadata + + err := codec.DecodeFromHex(test.MetadataHex, &meta) + assert.NoError(t, err) + + factory := NewFactory() + + extDecoder, err := factory.CreateExtrinsicDecoder(&meta) + assert.NoError(t, err) + assert.NotNil(t, extDecoder) + }) + } +} + +func TestFactory_CreateExtrinsicDecoder_ExtrinsicParamsExtraction_InvalidExtrinsicTypeError(t *testing.T) { + extrinsicLookupID := uint64(123) + + testMeta := &types.Metadata{ + AsMetadataV14: types.MetadataV14{ + Extrinsic: types.ExtrinsicV14{ + Type: types.Si1LookupTypeID{UCompact: types.NewUCompactFromUInt(extrinsicLookupID)}, + Version: 0, + SignedExtensions: nil, + }, + EfficientLookup: map[int64]*types.Si1Type{ + int64(extrinsicLookupID): { + Def: types.Si1TypeDef{ + // `extractExtrinsicParams` expects a composite type with 1 field. + IsPrimitive: true, + }, + }, + }, + }, + } + + factory := NewFactory() + + res, err := factory.CreateExtrinsicDecoder(testMeta) + assert.ErrorIs(t, err, ErrInvalidExtrinsicType) + assert.Nil(t, res) +} + +func TestFactory_CreateExtrinsicDecoder_ExtrinsicParamsExtraction_InvalidGenericExtrinsicTypeError(t *testing.T) { + extrinsicLookupID := uint64(123) + genericExtrinsicLookupID := uint64(456) + + testMeta := &types.Metadata{ + AsMetadataV14: types.MetadataV14{ + Extrinsic: types.ExtrinsicV14{ + Type: types.Si1LookupTypeID{UCompact: types.NewUCompactFromUInt(extrinsicLookupID)}, + Version: 0, + SignedExtensions: nil, + }, + EfficientLookup: map[int64]*types.Si1Type{ + int64(extrinsicLookupID): { + Def: types.Si1TypeDef{ + IsComposite: true, + Composite: types.Si1TypeDefComposite{ + Fields: []types.Si1Field{ + { + Type: types.Si1LookupTypeID{UCompact: types.NewUCompactFromUInt(genericExtrinsicLookupID)}, + }, + }, + }, + }, + }, + int64(genericExtrinsicLookupID): { + // No path provided here will cause `isGenericExtrinsic` to returns false + // on the second check from `extractExtrinsicParams`. + Def: types.Si1TypeDef{}, + }, + }, + }, + } + + factory := NewFactory() + + res, err := factory.CreateExtrinsicDecoder(testMeta) + assert.ErrorIs(t, err, ErrInvalidGenericExtrinsicType) + assert.Nil(t, res) +} + +func TestFactory_CreateExtrinsicDecoder_InvalidExtrinsicParams(t *testing.T) { + extrinsicLookupID := uint64(123) + + testMeta := &types.Metadata{ + AsMetadataV14: types.MetadataV14{ + Extrinsic: types.ExtrinsicV14{ + Type: types.Si1LookupTypeID{UCompact: types.NewUCompactFromUInt(extrinsicLookupID)}, + Version: 0, + SignedExtensions: nil, + }, + EfficientLookup: map[int64]*types.Si1Type{ + int64(extrinsicLookupID): { + Path: genericExtrinsicPath, + Params: []types.Si1TypeParameter{ + { + Name: "param_1", + HasType: false, + Type: types.Si1LookupTypeID{}, + }, + }, + }, + }, + }, + } + + factory := NewFactory() + + res, err := factory.CreateExtrinsicDecoder(testMeta) + assert.ErrorIs(t, err, ErrInvalidExtrinsicParams) + assert.Nil(t, res) +} + +func TestFactory_CreateExtrinsicDecoder_UnexpectedExtrinsicParam(t *testing.T) { + extrinsicLookupID := uint64(123) + + testMeta := &types.Metadata{ + AsMetadataV14: types.MetadataV14{ + Extrinsic: types.ExtrinsicV14{ + Type: types.Si1LookupTypeID{UCompact: types.NewUCompactFromUInt(extrinsicLookupID)}, + Version: 0, + SignedExtensions: nil, + }, + EfficientLookup: map[int64]*types.Si1Type{ + int64(extrinsicLookupID): { + Path: genericExtrinsicPath, + Params: []types.Si1TypeParameter{ + { + Name: "param_1", + HasType: false, + Type: types.Si1LookupTypeID{}, + }, + { + Name: "param_2", + HasType: false, + Type: types.Si1LookupTypeID{}, + }, + { + Name: "param_3", + HasType: false, + Type: types.Si1LookupTypeID{}, + }, + { + Name: "param_4", + HasType: false, + Type: types.Si1LookupTypeID{}, + }, + }, + }, + }, + }, + } + + factory := NewFactory() + + res, err := factory.CreateExtrinsicDecoder(testMeta) + assert.ErrorIs(t, err, ErrUnexpectedExtrinsicParam) + assert.Nil(t, res) +} + +func TestFactory_CreateExtrinsicDecoder_ExtrinsicFieldRetrievalError(t *testing.T) { + extrinsicLookupID := uint64(123) + + testMeta := &types.Metadata{ + AsMetadataV14: types.MetadataV14{ + Extrinsic: types.ExtrinsicV14{ + Type: types.Si1LookupTypeID{UCompact: types.NewUCompactFromUInt(extrinsicLookupID)}, + Version: 0, + SignedExtensions: nil, + }, + EfficientLookup: map[int64]*types.Si1Type{ + int64(extrinsicLookupID): { + Path: genericExtrinsicPath, + Params: []types.Si1TypeParameter{ + { + Name: ExtrinsicAddressName, + HasType: false, + Type: types.Si1LookupTypeID{ + // This lookup type ID is not added in the lookup map which should + // cause an error. + UCompact: types.NewUCompactFromUInt(uint64(456)), + }, + }, + { + Name: ExtrinsicSignatureName, + HasType: false, + Type: types.Si1LookupTypeID{}, + }, + { + Name: ExtrinsicExtraName, + HasType: false, + Type: types.Si1LookupTypeID{}, + }, + { + Name: ExtrinsicCallName, + HasType: false, + Type: types.Si1LookupTypeID{}, + }, + }, + }, + }, + }, + } + + factory := NewFactory() + + res, err := factory.CreateExtrinsicDecoder(testMeta) + assert.ErrorIs(t, err, ErrExtrinsicFieldRetrieval) + assert.Nil(t, res) +} + func TestFactory_getTypeFields(t *testing.T) { fieldLookUpID := 123 @@ -730,6 +970,59 @@ func TestFactory_getTypeFields(t *testing.T) { assert.Equal(t, int64(fieldLookUpID), res[0].LookupIndex) } +func TestFactory_getTypeParams(t *testing.T) { + fieldLookUpID := 123 + + testFieldName := "TestFieldName" + testParams := []types.Si1TypeParameter{ + { + Name: types.Text(testFieldName), + Type: types.Si1LookupTypeID{ + UCompact: types.NewUCompactFromUInt(uint64(fieldLookUpID)), + }, + }, + } + + compactFieldTypeLookupID := 456 + + testFieldTypeDef := types.Si1TypeDef{ + IsCompact: true, + Compact: types.Si1TypeDefCompact{ + Type: types.Si1LookupTypeID{ + UCompact: types.NewUCompactFromUInt(uint64(compactFieldTypeLookupID)), + }, + }, + } + + compactFieldTypeDef := types.Si1TypeDef{ + IsPrimitive: true, + } + + testMeta := &types.Metadata{ + AsMetadataV14: types.MetadataV14{ + EfficientLookup: map[int64]*types.Si1Type{ + int64(fieldLookUpID): { + Def: testFieldTypeDef, + }, + int64(compactFieldTypeLookupID): { + Def: compactFieldTypeDef, + }, + }, + }, + } + + factory := NewFactory().(*factory) + factory.resetStorages() + + res, err := factory.getTypeParams(testMeta, testParams) + assert.NoError(t, err) + assert.Len(t, res, 1) + + assert.Equal(t, testFieldName, res[0].Name) + assert.Equal(t, &ValueDecoder[types.UCompact]{}, res[0].FieldDecoder) + assert.Equal(t, int64(fieldLookUpID), res[0].LookupIndex) +} + func TestFactory_getTypeFields_FieldDecoderRetrievalError(t *testing.T) { fieldLookUpID := 123 @@ -2047,14 +2340,6 @@ func TestFactory_getTupleType_TupleItemFieldDecoderError(t *testing.T) { assert.Nil(t, res) } -func Test_getPrimitiveType_UnsupportedTypeError(t *testing.T) { - primitiveTypeDef := types.Si0TypeDefPrimitive(32) - - res, err := getPrimitiveDecoder(primitiveTypeDef) - assert.ErrorIs(t, err, ErrPrimitiveTypeNotSupported) - assert.Nil(t, res) -} - func TestFactory_Overrides(t *testing.T) { var meta types.Metadata @@ -2064,7 +2349,7 @@ func TestFactory_Overrides(t *testing.T) { t.Log("Metadata was decoded successfully") // Lookup index for DispatchInfo in the test.CentrifugeMetadataHex - targetLookupIndex := int64(21) + targetLookupIndex := int64(22) fieldOverride := FieldOverride{ FieldLookupIndex: targetLookupIndex, @@ -2119,378 +2404,6 @@ func TestFactory_Overrides(t *testing.T) { assert.Equal(t, testDispatchInfo, value) } -func Test_TypeDecoder(t *testing.T) { - testData := []any{ - types.U8(1), - types.U16(2), - types.U32(3), - } - - typeDecoder := &TypeDecoder{ - Name: "test_decoder_1", - Fields: []*Field{ - { - Name: "field_1", - FieldDecoder: &ValueDecoder[types.U8]{}, - LookupIndex: 0, - }, - { - Name: "field_2", - FieldDecoder: &ValueDecoder[types.U16]{}, - LookupIndex: 1, - }, - { - Name: "field_3", - FieldDecoder: &ValueDecoder[types.U32]{}, - LookupIndex: 2, - }, - }, - } - - encodedTestData, err := encodeTestData(testData) - assert.NoError(t, err) - - decoder := scale.NewDecoder(bytes.NewReader(encodedTestData)) - - res, err := typeDecoder.Decode(decoder) - assert.NoError(t, err) - assert.Len(t, res, len(testData)) - assert.Equal(t, typeDecoder.Fields[0].Name, res[0].Name) - assert.Equal(t, typeDecoder.Fields[0].LookupIndex, res[0].LookupIndex) - assert.Equal(t, testData[0], res[0].Value) -} - -func Test_TypeDecoder_FieldDecodingError(t *testing.T) { - testData := []any{ - types.U32(3), - } - - typeDecoder := &TypeDecoder{ - Name: "test_decoder_1", - Fields: []*Field{ - { - Name: "field_1", - FieldDecoder: &ValueDecoder[[32]types.U8]{}, - LookupIndex: 0, - }, - }, - } - - encodedTestData, err := encodeTestData(testData) - assert.NoError(t, err) - - decoder := scale.NewDecoder(bytes.NewReader(encodedTestData)) - - res, err := typeDecoder.Decode(decoder) - assert.ErrorIs(t, err, ErrTypeFieldDecoding) - assert.Nil(t, res) -} - -func Test_ProcessDecodedFieldValue(t *testing.T) { - testData := []any{ - types.U8(1), - types.U16(2), - types.U32(3), - } - - decodedFields := testDataToDecodedFields(testData) - - // Field index match - res, err := ProcessDecodedFieldValue[types.U32]( - decodedFields, - func(fieldIndex int, field *DecodedField) bool { - return fieldIndex == len(testData)-1 - }, - func(value any) (types.U32, error) { - res, ok := value.(types.U32) - assert.True(t, ok) - - return res, nil - }, - ) - - assert.NoError(t, err) - assert.Equal(t, testData[2], res) - - // Field name match - res, err = ProcessDecodedFieldValue[types.U32]( - decodedFields, - func(fieldIndex int, field *DecodedField) bool { - return field.Name == "decoded_field_2" - }, - func(value any) (types.U32, error) { - res, ok := value.(types.U32) - assert.True(t, ok) - - return res, nil - }, - ) - - assert.NoError(t, err) - assert.Equal(t, testData[2], res) - - // Field lookup index match - res, err = ProcessDecodedFieldValue[types.U32]( - decodedFields, - func(fieldIndex int, field *DecodedField) bool { - return field.LookupIndex == 2 - }, - func(value any) (types.U32, error) { - res, ok := value.(types.U32) - assert.True(t, ok) - - return res, nil - }, - ) - - assert.NoError(t, err) - assert.Equal(t, testData[2], res) -} - -func Test_ProcessDecodedFieldValue_FieldNotFoundError(t *testing.T) { - testData := []any{ - types.U8(1), - types.U16(2), - types.U32(3), - } - - decodedFields := testDataToDecodedFields(testData) - - res, err := ProcessDecodedFieldValue[types.U32]( - decodedFields, - func(fieldIndex int, field *DecodedField) bool { - return false - }, - func(value any) (types.U32, error) { - res, ok := value.(types.U32) - assert.True(t, ok) - - return res, nil - }, - ) - - assert.ErrorIs(t, err, ErrDecodedFieldNotFound) - assert.Equal(t, types.U32(0), res) -} - -func Test_ProcessDecodedFieldValue_FieldValueProcessingError(t *testing.T) { - testData := []any{ - types.U8(1), - types.U16(2), - types.U32(3), - } - - decodedFields := testDataToDecodedFields(testData) - - res, err := ProcessDecodedFieldValue[types.U32]( - decodedFields, - func(fieldIndex int, field *DecodedField) bool { - return fieldIndex == len(testData)-1 - }, - func(value any) (types.U32, error) { - return 0, errors.New("error") - }, - ) - - assert.ErrorIs(t, err, ErrDecodedFieldValueProcessingError) - assert.Equal(t, types.U32(0), res) -} - -func Test_GetDecodedFieldAsType(t *testing.T) { - testData := []any{ - types.U8(1), - types.U16(2), - types.U32(3), - } - - decodedFields := testDataToDecodedFields(testData) - - res, err := GetDecodedFieldAsType[types.U8]( - decodedFields, - func(fieldIndex int, field *DecodedField) bool { - return fieldIndex == 0 - }, - ) - - assert.NoError(t, err) - assert.Equal(t, testData[0], res) -} - -func Test_GetDecodedFieldAsType_FieldNotFound(t *testing.T) { - testData := []any{ - types.U8(1), - types.U16(2), - types.U32(3), - } - - decodedFields := testDataToDecodedFields(testData) - - res, err := GetDecodedFieldAsType[types.U8]( - decodedFields, - func(fieldIndex int, field *DecodedField) bool { - return fieldIndex == len(testData) - }, - ) - - assert.ErrorIs(t, err, ErrDecodedFieldNotFound) - assert.Equal(t, types.U8(0), res) -} - -func Test_GetDecodedFieldAsType_ValueTypeMismatch(t *testing.T) { - testData := []any{ - types.U8(1), - types.U16(2), - types.U32(3), - } - - decodedFields := testDataToDecodedFields(testData) - - res, err := GetDecodedFieldAsType[types.U8]( - decodedFields, - func(fieldIndex int, field *DecodedField) bool { - return fieldIndex == len(testData)-1 - }, - ) - - assert.ErrorIs(t, err, ErrDecodedFieldValueTypeMismatch) - assert.Equal(t, types.U8(0), res) -} - -func Test_GetDecodedFieldAsSliceOfType(t *testing.T) { - testData := []any{ - types.U8(1), - []any{ - types.U16(0), - types.U16(1), - types.U16(2), - }, - } - - decodedFields := testDataToDecodedFields(testData) - - res, err := GetDecodedFieldAsSliceOfType[types.U16]( - decodedFields, - func(fieldIndex int, field *DecodedField) bool { - return fieldIndex == len(testData)-1 - }, - ) - - assert.NoError(t, err) - assert.Equal(t, []types.U16{0, 1, 2}, res) -} - -func Test_GetDecodedFieldAsSliceOfType_DecodedFieldNotFound(t *testing.T) { - testData := []any{ - types.U8(1), - []any{ - types.U16(0), - types.U16(1), - types.U16(2), - }, - } - - decodedFields := testDataToDecodedFields(testData) - - res, err := GetDecodedFieldAsSliceOfType[types.U16]( - decodedFields, - func(fieldIndex int, field *DecodedField) bool { - return fieldIndex == len(testData) - }, - ) - - assert.ErrorIs(t, err, ErrDecodedFieldNotFound) - assert.Nil(t, res) -} - -func Test_GetDecodedFieldAsSliceOfType_NotAGenericSlice(t *testing.T) { - testData := []any{ - types.U8(1), - // Slices in decoded fields are expected to be []any - []types.U16{ - 0, - 1, - 2, - }, - } - - decodedFields := testDataToDecodedFields(testData) - - res, err := GetDecodedFieldAsSliceOfType[types.U16]( - decodedFields, - func(fieldIndex int, field *DecodedField) bool { - return fieldIndex == len(testData)-1 - }, - ) - - assert.ErrorIs(t, err, ErrDecodedFieldValueNotAGenericSlice) - assert.Nil(t, res) -} - -func Test_GetDecodedFieldAsSliceOfType_SliceItemTypeMismatch(t *testing.T) { - testData := []any{ - types.U8(1), - []any{ - types.U16(0), - types.U16(1), - types.U16(2), - }, - } - - decodedFields := testDataToDecodedFields(testData) - - res, err := GetDecodedFieldAsSliceOfType[types.U8]( - decodedFields, - func(fieldIndex int, field *DecodedField) bool { - return fieldIndex == len(testData)-1 - }, - ) - - assert.ErrorIs(t, err, ErrDecodedFieldValueTypeMismatch) - assert.Nil(t, res) -} - -type errStruct struct{} - -func (e *errStruct) Decode(_ scale.Decoder) error { - return errors.New("error") -} - -type decodedFieldTest struct { - FirstField types.U8 - SecondField types.U16 - ThirdField types.U32 - - Error bool -} - -func (d *decodedFieldTest) Decode(decoder scale.Decoder) error { - if err := decoder.Decode(&d.FirstField); err != nil { - return err - } - - if err := decoder.Decode(&d.SecondField); err != nil { - return err - } - - return decoder.Decode(&d.ThirdField) -} - -func (d decodedFieldTest) Encode(encoder scale.Encoder) error { - if d.Error { - return errors.New("encode error") - } - - if err := encoder.Encode(d.FirstField); err != nil { - return err - } - - if err := encoder.Encode(d.SecondField); err != nil { - return err - } - - return encoder.Encode(d.ThirdField) -} - func testDataToDecodedFields(data []any) DecodedFields { var res DecodedFields @@ -2653,8 +2566,8 @@ func (a *testAsserter) assertRegistryItemFieldIsCorrect(t *testing.T, meta types assert.True(t, ok, "expected compact field type in registry") case compactFieldType.Def.IsTuple: if metaFieldTypeDef.Tuple == nil { - _, ok := registryItemFieldType.(*ValueDecoder[any]) - assert.True(t, ok, "expected empty tuple field type") + _, ok := registryItemFieldType.(*NoopDecoder) + assert.True(t, ok, "expected noop decoder") return } diff --git a/registry/parser/error.go b/registry/parser/error.go index 67f66b12e..17b97f1a8 100644 --- a/registry/parser/error.go +++ b/registry/parser/error.go @@ -9,6 +9,4 @@ const ( ErrEventDecoderNotFound = libErr.Error("event decoder not found") ErrEventFieldsDecoding = libErr.Error("event fields decoding") ErrEventTopicsDecoding = libErr.Error("event topics decoding") - ErrCallDecoderNotFound = libErr.Error("call decoder not found") - ErrCallFieldsDecoding = libErr.Error("call fields decoding") ) diff --git a/registry/parser/extrinsic_parser.go b/registry/parser/extrinsic_parser.go deleted file mode 100644 index c0c28b99b..000000000 --- a/registry/parser/extrinsic_parser.go +++ /dev/null @@ -1,120 +0,0 @@ -package parser - -import ( - "bytes" - "fmt" - - "github.com/centrifuge/go-substrate-rpc-client/v4/registry" - "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic" - "github.com/centrifuge/go-substrate-rpc-client/v4/scale" - "github.com/centrifuge/go-substrate-rpc-client/v4/types" -) - -// DefaultExtrinsic is the Extrinsic with defaults for the generic types: -// -// Address - types.MultiAddress -// Signature - types.MultiSignature -// PaymentFields - generic.DefaultPaymentFields -type DefaultExtrinsic = Extrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, -] - -// Extrinsic holds all the information of a decoded block extrinsic. -// -// This type is generic over types A, S, P, please check generic.GenericExtrinsicSignature for more -// information about these generic types. -type Extrinsic[A, S, P any] struct { - Name string - CallFields registry.DecodedFields - CallIndex types.CallIndex - Version byte - Signature generic.GenericExtrinsicSignature[A, S, P] -} - -//nolint:lll -//go:generate mockery --name ExtrinsicParser --structname ExtrinsicParserMock --filename extrinsic_parser_mock.go --inpackage - -// ExtrinsicParser is the interface used for parsing a block's extrinsics into []*Extrinsic. -// -// This interface is generic over types A, S, P, please check generic.GenericExtrinsicSignature for more -// information about these generic types. -// -//nolint:lll -type ExtrinsicParser[A, S, P any] interface { - ParseExtrinsics(callRegistry registry.CallRegistry, block generic.GenericSignedBlock[A, S, P]) ([]*Extrinsic[A, S, P], error) -} - -// ExtrinsicParserFn implements ExtrinsicParser. -// -//nolint:lll -type ExtrinsicParserFn[A, S, P any] func(callRegistry registry.CallRegistry, block generic.GenericSignedBlock[A, S, P]) ([]*Extrinsic[A, S, P], error) - -// ParseExtrinsics is the function required for satisfying the ExtrinsicParser interface. -// -//nolint:lll -func (e ExtrinsicParserFn[A, S, P]) ParseExtrinsics(callRegistry registry.CallRegistry, block generic.GenericSignedBlock[A, S, P]) ([]*Extrinsic[A, S, P], error) { - return e(callRegistry, block) -} - -// NewExtrinsicParser creates a new ExtrinsicParser. -func NewExtrinsicParser[A, S, P any]() ExtrinsicParser[A, S, P] { - // The ExtrinsicParserFn provided here is attempting to decode the types.Args of an extrinsic's method - // into a map of fields and their respective decoded values. - // - //nolint:lll - return ExtrinsicParserFn[A, S, P](func(callRegistry registry.CallRegistry, block generic.GenericSignedBlock[A, S, P]) ([]*Extrinsic[A, S, P], error) { - var extrinsics []*Extrinsic[A, S, P] - - for i, extrinsic := range block.GetGenericBlock().GetExtrinsics() { - callIndex := extrinsic.GetCall().CallIndex - - callDecoder, ok := callRegistry[callIndex] - - if !ok { - return nil, ErrCallDecoderNotFound.Wrap(fmt.Errorf("extrinsic #%d", i)) - } - - decoder := scale.NewDecoder(bytes.NewReader(extrinsic.GetCall().Args)) - - callFields, err := callDecoder.Decode(decoder) - - if err != nil { - return nil, ErrCallFieldsDecoding.Wrap(fmt.Errorf("extrinsic #%d: %w", i, err)) - } - - call := &Extrinsic[A, S, P]{ - Name: callDecoder.Name, - CallFields: callFields, - CallIndex: callIndex, - Version: extrinsic.GetVersion(), - Signature: extrinsic.GetSignature(), - } - - extrinsics = append(extrinsics, call) - } - - return extrinsics, nil - }) -} - -// DefaultExtrinsicParser is the ExtrinsicParser interface with defaults for the generic types: -// -// Address - types.MultiAddress -// Signature - types.MultiSignature -// PaymentFields - generic.DefaultPaymentFields -type DefaultExtrinsicParser = ExtrinsicParser[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, -] - -// NewDefaultExtrinsicParser returns a DefaultExtrinsicParser. -func NewDefaultExtrinsicParser() DefaultExtrinsicParser { - return NewExtrinsicParser[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]() -} diff --git a/registry/parser/extrinsic_parser_mock.go b/registry/parser/extrinsic_parser_mock.go deleted file mode 100644 index bfc8908b9..000000000 --- a/registry/parser/extrinsic_parser_mock.go +++ /dev/null @@ -1,53 +0,0 @@ -// Code generated by mockery v2.13.0-beta.1. DO NOT EDIT. - -package parser - -import ( - generic "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic" - mock "github.com/stretchr/testify/mock" - - registry "github.com/centrifuge/go-substrate-rpc-client/v4/registry" -) - -// ExtrinsicParserMock is an autogenerated mock type for the ExtrinsicParser type -type ExtrinsicParserMock[A interface{}, S interface{}, P interface{}] struct { - mock.Mock -} - -// ParseExtrinsics provides a mock function with given fields: callRegistry, block -func (_m *ExtrinsicParserMock[A, S, P]) ParseExtrinsics(callRegistry registry.CallRegistry, block generic.GenericSignedBlock[A, S, P]) ([]*Extrinsic[A, S, P], error) { - ret := _m.Called(callRegistry, block) - - var r0 []*Extrinsic[A, S, P] - if rf, ok := ret.Get(0).(func(registry.CallRegistry, generic.GenericSignedBlock[A, S, P]) []*Extrinsic[A, S, P]); ok { - r0 = rf(callRegistry, block) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]*Extrinsic[A, S, P]) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(registry.CallRegistry, generic.GenericSignedBlock[A, S, P]) error); ok { - r1 = rf(callRegistry, block) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -type NewExtrinsicParserMockT interface { - mock.TestingT - Cleanup(func()) -} - -// NewExtrinsicParserMock creates a new instance of ExtrinsicParserMock. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewExtrinsicParserMock[A interface{}, S interface{}, P interface{}](t NewExtrinsicParserMockT) *ExtrinsicParserMock[A, S, P] { - mock := &ExtrinsicParserMock[A, S, P]{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/registry/parser/extrinsic_parser_test.go b/registry/parser/extrinsic_parser_test.go deleted file mode 100644 index f011d7cf8..000000000 --- a/registry/parser/extrinsic_parser_test.go +++ /dev/null @@ -1,344 +0,0 @@ -package parser - -import ( - "bytes" - "fmt" - "math/big" - "testing" - - "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic" - - "github.com/centrifuge/go-substrate-rpc-client/v4/registry" - "github.com/centrifuge/go-substrate-rpc-client/v4/scale" - "github.com/centrifuge/go-substrate-rpc-client/v4/types" - "github.com/stretchr/testify/assert" -) - -func TestExtrinsicParserFn_ParseExtrinsics(t *testing.T) { - testExtrinsics := []testExtrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{ - { - Name: "extrinsic_1", - CallIndex: types.CallIndex{ - SectionIndex: 0, - MethodIndex: 1, - }, - CallFields: []testField{ - { - Name: "bool_field", - Value: true, - }, - { - Name: "byte_field", - Value: byte(32), - }, - { - Name: "string_field", - Value: "test", - }, - }, - Version: 1, - Signature: &generic.ExtrinsicSignature[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{}, - }, - { - Name: "extrinsic_2", - CallIndex: types.CallIndex{ - SectionIndex: 1, - MethodIndex: 0, - }, - CallFields: []testField{ - { - Name: "u8_value", - Value: types.NewU8(11), - }, - { - Name: "u16_value", - Value: types.NewU16(121), - }, - { - Name: "u32_value", - Value: types.NewU32(12134), - }, - { - Name: "u64_value", - Value: types.NewU64(128678), - }, - { - Name: "u128_value", - Value: types.NewU128(*big.NewInt(56346)), - }, - { - Name: "u256_value", - Value: types.NewU256(*big.NewInt(5674)), - }, - }, - Version: 2, - Signature: &generic.ExtrinsicSignature[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{}, - }, - { - Name: "extrinsic_3", - CallIndex: types.CallIndex{ - SectionIndex: 1, - MethodIndex: 1, - }, - CallFields: []testField{ - { - Name: "i8_value", - Value: types.NewI8(45), - }, - { - Name: "i16_value", - Value: types.NewI16(445), - }, - { - Name: "i32_value", - Value: types.NewI32(545), - }, - { - Name: "i64_value", - Value: types.NewI64(4789), - }, - { - Name: "i128_value", - Value: types.NewI128(*big.NewInt(56747)), - }, - { - Name: "i256_value", - Value: types.NewI256(*big.NewInt(45356747)), - }, - }, - Version: 2, - Signature: &generic.ExtrinsicSignature[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{}, - }, - } - - block, reg, err := getExtrinsicParsingTestData[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ](testExtrinsics) - assert.NoError(t, err) - - extrinsicParser := NewExtrinsicParser[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]() - - res, err := extrinsicParser.ParseExtrinsics(reg, block) - assert.NoError(t, err) - assert.Len(t, res, len(testExtrinsics)) - - for i, testExtrinsic := range testExtrinsics { - assert.Equal(t, testExtrinsic.Name, res[i].Name) - assert.Equal(t, testExtrinsic.Version, res[i].Version) - assertExtrinsicFieldInformationIsCorrect(t, testExtrinsic.CallFields, res[i]) - assert.Equal(t, testExtrinsic.CallIndex, res[i].CallIndex) - assert.Equal(t, testExtrinsic.Signature, res[i].Signature) - } -} - -func TestExtrinsicParserFn_ParseExtrinsics_MissingCallDecoder(t *testing.T) { - testExtrinsics := []testExtrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{ - { - Name: "extrinsic_1", - CallIndex: types.CallIndex{ - SectionIndex: 0, - MethodIndex: 1, - }, - CallFields: []testField{ - { - Name: "bool_field", - Value: true, - }, - { - Name: "byte_field", - Value: byte(32), - }, - { - Name: "string_field", - Value: "test", - }, - }, - Version: 1, - Signature: &generic.ExtrinsicSignature[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{}, - }, - } - - block, _, err := getExtrinsicParsingTestData[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ](testExtrinsics) - assert.NoError(t, err) - - extrinsicParser := NewExtrinsicParser[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]() - - // Empty registry, decoding should fail. - res, err := extrinsicParser.ParseExtrinsics(registry.CallRegistry{}, block) - assert.ErrorIs(t, err, ErrCallDecoderNotFound) - assert.Nil(t, res) -} - -func TestExtrinsicParserFn_ParseExtrinsics_DecodeError(t *testing.T) { - testExtrinsics := []testExtrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{ - { - Name: "extrinsic_1", - CallIndex: types.CallIndex{ - SectionIndex: 0, - MethodIndex: 1, - }, - CallFields: []testField{ - { - Name: "bool_field", - Value: true, - }, - { - Name: "byte_field", - Value: byte(32), - }, - { - Name: "string_field", - Value: "test", - }, - }, - Version: 1, - Signature: &generic.ExtrinsicSignature[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{}, - }, - } - - block, reg, err := getExtrinsicParsingTestData[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ](testExtrinsics) - assert.NoError(t, err) - - extrinsicParser := NewExtrinsicParser[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]() - - // No args for extrinsics should trigger an error. - block.Block.Extrinsics[0].Method.Args = []byte{} - - res, err := extrinsicParser.ParseExtrinsics(reg, block) - assert.ErrorIs(t, err, ErrCallFieldsDecoding) - assert.Nil(t, res) -} - -func assertExtrinsicFieldInformationIsCorrect[A, S, P any](t *testing.T, testFields []testField, extrinsic *Extrinsic[A, S, P]) { - for testFieldIndex, testField := range testFields { - assert.Equal(t, testField.Value, extrinsic.CallFields[testFieldIndex].Value) - } -} - -func getExtrinsicParsingTestData[A, S, P any](testExtrinsics []testExtrinsic[A, S, P]) (*generic.SignedBlock[A, S, P], registry.CallRegistry, error) { - callRegistry, err := getRegistryForTestExtrinsic(testExtrinsics) - - if err != nil { - return nil, nil, err - } - - block := &generic.SignedBlock[A, S, P]{ - Block: &generic.Block[A, S, P]{}, - } - - for _, testExtrinsic := range testExtrinsics { - encodedExtrinsicCall, err := testExtrinsic.Encode() - - if err != nil { - return nil, nil, err - } - - block.Block.Extrinsics = append(block.Block.Extrinsics, &generic.Extrinsic[A, S, P]{ - Version: testExtrinsic.Version, - Signature: testExtrinsic.Signature, - Method: types.Call{ - CallIndex: testExtrinsic.CallIndex, - Args: encodedExtrinsicCall, - }, - }) - } - - return block, callRegistry, nil -} - -func getRegistryForTestExtrinsic[A, S, P any](testExtrinsics []testExtrinsic[A, S, P]) (registry.CallRegistry, error) { - callRegistry := registry.CallRegistry(map[types.CallIndex]*registry.TypeDecoder{}) - - for _, testExtrinsic := range testExtrinsics { - regFields, err := getTestRegistryFields(testExtrinsic.CallFields) - - if err != nil { - return nil, err - } - - callRegistry[testExtrinsic.CallIndex] = ®istry.TypeDecoder{ - Name: testExtrinsic.Name, - Fields: regFields, - } - } - - return callRegistry, nil -} - -type testExtrinsic[A, S, P any] struct { - Name string - CallIndex types.CallIndex - CallFields []testField - Version byte - Signature *generic.ExtrinsicSignature[A, S, P] -} - -func (t testExtrinsic[A, S, P]) Encode() ([]byte, error) { - var b []byte - - buf := bytes.NewBuffer(b) - - encoder := scale.NewEncoder(buf) - - for _, field := range t.CallFields { - if err := encoder.Encode(field.Value); err != nil { - return nil, fmt.Errorf("couldn't encode field %v: %w", field, err) - } - } - - return buf.Bytes(), nil -} diff --git a/registry/retriever/error.go b/registry/retriever/error.go index f70351ce0..d74de8981 100644 --- a/registry/retriever/error.go +++ b/registry/retriever/error.go @@ -3,12 +3,12 @@ package retriever import libErr "github.com/centrifuge/go-substrate-rpc-client/v4/error" const ( - ErrInternalStateUpdate = libErr.Error("internal state update") - ErrBlockRetrieval = libErr.Error("block retrieval") - ErrExtrinsicParsing = libErr.Error("extrinsic parsing") - ErrMetadataRetrieval = libErr.Error("metadata retrieval") - ErrCallRegistryCreation = libErr.Error("call registry creation") - ErrStorageEventRetrieval = libErr.Error("storage event retrieval") - ErrEventParsing = libErr.Error("event parsing") - ErrEventRegistryCreation = libErr.Error("event registry creation") + ErrInternalStateUpdate = libErr.Error("internal state update") + ErrBlockRetrieval = libErr.Error("block retrieval") + ErrExtrinsicDecoding = libErr.Error("extrinsic parsing") + ErrMetadataRetrieval = libErr.Error("metadata retrieval") + ErrExtrinsicDecoderCreation = libErr.Error("extrinsic decoder creation") + ErrStorageEventRetrieval = libErr.Error("storage event retrieval") + ErrEventParsing = libErr.Error("event parsing") + ErrEventRegistryCreation = libErr.Error("event registry creation") ) diff --git a/registry/retriever/event_retriever_live_test.go b/registry/retriever/event_retriever_live_test.go index f82d32c47..a6a572ee2 100644 --- a/registry/retriever/event_retriever_live_test.go +++ b/registry/retriever/event_retriever_live_test.go @@ -17,7 +17,6 @@ var ( eventTestURLs = []string{ "wss://fullnode.parachain.centrifuge.io", "wss://rpc.polkadot.io", - "wss://statemint-rpc.polkadot.io", "wss://acala-rpc-0.aca-api.network", "wss://wss.api.moonbeam.network", } diff --git a/registry/retriever/extrinsic_retriever.go b/registry/retriever/extrinsic_retriever.go index 8a57419ca..eaf914c5e 100644 --- a/registry/retriever/extrinsic_retriever.go +++ b/registry/retriever/extrinsic_retriever.go @@ -1,63 +1,52 @@ package retriever import ( + "time" + "github.com/centrifuge/go-substrate-rpc-client/v4/registry" "github.com/centrifuge/go-substrate-rpc-client/v4/registry/exec" - "github.com/centrifuge/go-substrate-rpc-client/v4/registry/parser" - "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic" + "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain" "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/state" "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/block" ) //nolint:lll //go:generate mockery --name ExtrinsicRetriever --structname ExtrinsicRetrieverMock --filename extrinsic_retriever_mock.go --inpackage -// ExtrinsicRetriever is the interface used for retrieving and decoding extrinsic information. -// -// This interface is generic over types A, S, P, please check generic.GenericExtrinsicSignature for more -// information about these generic types. -type ExtrinsicRetriever[A, S, P any] interface { - GetExtrinsics(blockHash types.Hash) ([]*parser.Extrinsic[A, S, P], error) +// ExtrinsicRetriever is the interface used for retrieving and decoding extrinsic information +// from a particular block. +type ExtrinsicRetriever interface { + GetExtrinsics(blockHash types.Hash) ([]*registry.DecodedExtrinsic, error) } // extrinsicRetriever implements the ExtrinsicRetriever interface. -type extrinsicRetriever[ - A, S, P any, - B generic.GenericSignedBlock[A, S, P], -] struct { - extrinsicParser parser.ExtrinsicParser[A, S, P] - - genericChain generic.Chain[A, S, P, B] - stateRPC state.State +type extrinsicRetriever struct { + chainRPC chain.Chain + stateRPC state.State registryFactory registry.Factory - chainExecutor exec.RetryableExecutor[B] - extrinsicParsingExecutor exec.RetryableExecutor[[]*parser.Extrinsic[A, S, P]] + chainExecutor exec.RetryableExecutor[*block.SignedBlock] + extrinsicDecodingExecutor exec.RetryableExecutor[[]*registry.DecodedExtrinsic] - callRegistry registry.CallRegistry - meta *types.Metadata + extrinsicDecoder *registry.ExtrinsicDecoder } // NewExtrinsicRetriever creates a new ExtrinsicRetriever. -func NewExtrinsicRetriever[ - A, S, P any, - B generic.GenericSignedBlock[A, S, P], -]( - extrinsicParser parser.ExtrinsicParser[A, S, P], - genericChain generic.Chain[A, S, P, B], +func NewExtrinsicRetriever( + chainRPC chain.Chain, stateRPC state.State, registryFactory registry.Factory, - chainExecutor exec.RetryableExecutor[B], - extrinsicParsingExecutor exec.RetryableExecutor[[]*parser.Extrinsic[A, S, P]], -) (ExtrinsicRetriever[A, S, P], error) { - retriever := &extrinsicRetriever[A, S, P, B]{ - extrinsicParser: extrinsicParser, - genericChain: genericChain, - stateRPC: stateRPC, - registryFactory: registryFactory, - chainExecutor: chainExecutor, - extrinsicParsingExecutor: extrinsicParsingExecutor, + chainExecutor exec.RetryableExecutor[*block.SignedBlock], + extrinsicDecodingExecutor exec.RetryableExecutor[[]*registry.DecodedExtrinsic], +) (ExtrinsicRetriever, error) { + retriever := &extrinsicRetriever{ + chainRPC: chainRPC, + stateRPC: stateRPC, + registryFactory: registryFactory, + chainExecutor: chainExecutor, + extrinsicDecodingExecutor: extrinsicDecodingExecutor, } if err := retriever.updateInternalState(nil); err != nil { @@ -67,56 +56,34 @@ func NewExtrinsicRetriever[ return retriever, nil } -// DefaultExtrinsicRetriever is the ExtrinsicRetriever interface with default for the generic types: -// -// Address - types.MultiAddress -// Signature - types.MultiSignature -// PaymentFields - generic.DefaultPaymentFields -type DefaultExtrinsicRetriever = ExtrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, -] - -// NewDefaultExtrinsicRetriever returns a DefaultExtrinsicRetriever with defaults for the generic types: -// -// Address - types.MultiAddress -// Signature - types.MultiSignature -// PaymentFields - generic.DefaultPaymentFields -// Block - *generic.DefaultGenericSignedBlock -// -// Note that these generic defaults also apply to the args. +// NewDefaultExtrinsicRetriever returns an ExtrinsicRetriever with default values for the factory and executors. func NewDefaultExtrinsicRetriever( - extrinsicParser parser.DefaultExtrinsicParser, - genericChain generic.DefaultChain, + chainRPC chain.Chain, stateRPC state.State, - registryFactory registry.Factory, - chainExecutor exec.RetryableExecutor[*generic.DefaultGenericSignedBlock], - extrinsicParsingExecutor exec.RetryableExecutor[[]*parser.DefaultExtrinsic], -) (DefaultExtrinsicRetriever, error) { - return NewExtrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.DefaultGenericSignedBlock, - ]( - extrinsicParser, - genericChain, + fieldOverrides ...registry.FieldOverride, +) (ExtrinsicRetriever, error) { + registryFactory := registry.NewFactory(fieldOverrides...) + + chainExecutor := exec.NewRetryableExecutor[*block.SignedBlock](exec.WithRetryTimeout(1 * time.Second)) + extrinsicDecodingExecutor := exec.NewRetryableExecutor[[]*registry.DecodedExtrinsic](exec.WithMaxRetryCount(1)) + + return NewExtrinsicRetriever( + chainRPC, stateRPC, registryFactory, chainExecutor, - extrinsicParsingExecutor, + extrinsicDecodingExecutor, ) } // GetExtrinsics retrieves a generic.SignedBlock and then parses the extrinsics found in it. // // Both the block retrieval and the extrinsic parsing are handled via the exec.RetryableExecutor -// in order to ensure retries in case of network errors or parsing errors due to an outdated call registry. -func (e *extrinsicRetriever[A, S, P, B]) GetExtrinsics(blockHash types.Hash) ([]*parser.Extrinsic[A, S, P], error) { +// in order to ensure retries in case of network errors or parsing errors due to an outdated extrinsic decoder. +func (e *extrinsicRetriever) GetExtrinsics(blockHash types.Hash) ([]*registry.DecodedExtrinsic, error) { block, err := e.chainExecutor.ExecWithFallback( - func() (B, error) { - return e.genericChain.GetBlock(blockHash) + func() (*block.SignedBlock, error) { + return e.chainRPC.GetBlock(blockHash) }, func() error { return nil @@ -127,9 +94,9 @@ func (e *extrinsicRetriever[A, S, P, B]) GetExtrinsics(blockHash types.Hash) ([] return nil, ErrBlockRetrieval.Wrap(err) } - calls, err := e.extrinsicParsingExecutor.ExecWithFallback( - func() ([]*parser.Extrinsic[A, S, P], error) { - return e.extrinsicParser.ParseExtrinsics(e.callRegistry, block) + calls, err := e.extrinsicDecodingExecutor.ExecWithFallback( + func() ([]*registry.DecodedExtrinsic, error) { + return block.DecodeExtrinsics(e.extrinsicDecoder) }, func() error { return e.updateInternalState(&blockHash) @@ -137,15 +104,15 @@ func (e *extrinsicRetriever[A, S, P, B]) GetExtrinsics(blockHash types.Hash) ([] ) if err != nil { - return nil, ErrExtrinsicParsing.Wrap(err) + return nil, ErrExtrinsicDecoding.Wrap(err) } return calls, nil } // updateInternalState will retrieve the metadata at the provided blockHash, if provided, -// create a call registry based on this metadata and store both. -func (e *extrinsicRetriever[A, S, P, B]) updateInternalState(blockHash *types.Hash) error { +// create an extrinsic decoder based on this metadata and store both. +func (e *extrinsicRetriever) updateInternalState(blockHash *types.Hash) error { var ( meta *types.Metadata err error @@ -161,14 +128,13 @@ func (e *extrinsicRetriever[A, S, P, B]) updateInternalState(blockHash *types.Ha return ErrMetadataRetrieval.Wrap(err) } - callRegistry, err := e.registryFactory.CreateCallRegistry(meta) + extrinsicDecoder, err := e.registryFactory.CreateExtrinsicDecoder(meta) if err != nil { - return ErrCallRegistryCreation.Wrap(err) + return ErrExtrinsicDecoderCreation.Wrap(err) } - e.meta = meta - e.callRegistry = callRegistry + e.extrinsicDecoder = extrinsicDecoder return nil } diff --git a/registry/retriever/extrinsic_retriever_live_test.go b/registry/retriever/extrinsic_retriever_live_test.go index e5b47751c..ab2042159 100644 --- a/registry/retriever/extrinsic_retriever_live_test.go +++ b/registry/retriever/extrinsic_retriever_live_test.go @@ -3,60 +3,20 @@ package retriever import ( - "errors" + gsrpc "github.com/centrifuge/go-substrate-rpc-client/v4" "log" "os" "strconv" "sync" "testing" - "time" - - gsrpc "github.com/centrifuge/go-substrate-rpc-client/v4" - "github.com/centrifuge/go-substrate-rpc-client/v4/registry" - "github.com/centrifuge/go-substrate-rpc-client/v4/registry/exec" - "github.com/centrifuge/go-substrate-rpc-client/v4/registry/parser" - "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic" - "github.com/centrifuge/go-substrate-rpc-client/v4/scale" - "github.com/centrifuge/go-substrate-rpc-client/v4/types" ) var ( - extTestChains = []testFnProvider{ - &testChain[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{ - url: "wss://fullnode.parachain.centrifuge.io", - }, - &testChain[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{ - url: "wss://rpc.polkadot.io", - }, - &testChain[ - types.MultiAddress, - types.MultiSignature, - generic.PaymentFieldsWithAssetID, - ]{ - url: "wss://statemint-rpc.polkadot.io", - }, - &testChain[ - types.MultiAddress, - AcalaMultiSignature, - generic.DefaultPaymentFields, - ]{ - url: "wss://acala-rpc-0.aca-api.network", - }, - &testChain[ - [20]byte, - [65]byte, - generic.DefaultPaymentFields, - ]{ - url: "wss://wss.api.moonbeam.network", - }, + extrinsicTestURLs = []string{ + "wss://fullnode.parachain.centrifuge.io", + "wss://rpc.polkadot.io", + "wss://acala-rpc-0.aca-api.network", + "wss://wss.api.moonbeam.network", } ) @@ -71,157 +31,72 @@ func TestLive_ExtrinsicRetriever_GetExtrinsics(t *testing.T) { log.Printf("Env Var GSRPC_LIVE_TEST_EXTRINSICS_THRESHOLD not set, defaulting to %d", extrinsicsThreshold) } - for _, c := range extTestChains { - c := c + for _, testURL := range extrinsicTestURLs { + testURL := testURL wg.Add(1) - go c.GetTestFn()(&wg, extrinsicsThreshold) - } - - wg.Wait() -} - -type testFn func(wg *sync.WaitGroup, extrinsicsThreshold int) - -type testFnProvider interface { - GetTestFn() testFn -} - -type testChain[ - A any, - S any, - P any, -] struct { - url string -} - -func (t *testChain[A, S, P]) GetTestFn() testFn { - return func(wg *sync.WaitGroup, extrinsicsThreshold int) { - defer wg.Done() - - testURL := t.url - - api, err := gsrpc.NewSubstrateAPI(testURL) - - if err != nil { - log.Printf("Couldn't connect to '%s': %s\n", testURL, err) - return - } - - chain := generic.NewChain[A, S, P, *generic.SignedBlock[A, S, P]](api.Client) - - extrinsicParser := parser.NewExtrinsicParser[A, S, P]() - registryFactory := registry.NewFactory() - - chainExecutor := exec.NewRetryableExecutor[*generic.SignedBlock[A, S, P]](exec.WithRetryTimeout(1 * time.Second)) - extrinsicParsingExecutor := exec.NewRetryableExecutor[[]*parser.Extrinsic[A, S, P]](exec.WithMaxRetryCount(1)) - - extrinsicRetriever, err := NewExtrinsicRetriever[A, S, P]( - extrinsicParser, - chain, - api.RPC.State, - registryFactory, - chainExecutor, - extrinsicParsingExecutor, - ) - - if err != nil { - log.Printf("Couldn't create extrinsic retriever: %s", err) - return - } + go func() { + defer wg.Done() - header, err := api.RPC.Chain.GetHeaderLatest() + api, err := gsrpc.NewSubstrateAPI(testURL) - if err != nil { - log.Printf("Couldn't get latest header for '%s': %s\n", testURL, err) - return - } - - extrinsicsCount := 0 + if err != nil { + log.Printf("Couldn't connect to '%s': %s\n", testURL, err) + return + } - for { - blockHash, err := api.RPC.Chain.GetBlockHash(uint64(header.Number)) + retriever, err := NewDefaultExtrinsicRetriever(api.RPC.Chain, api.RPC.State) if err != nil { - log.Printf("Couldn't retrieve blockHash for '%s', block number %d: %s\n", testURL, header.Number, err) + log.Printf("Couldn't create extrinsic retriever: %s", err) return } - extrinsics, err := extrinsicRetriever.GetExtrinsics(blockHash) + header, err := api.RPC.Chain.GetHeaderLatest() if err != nil { - log.Printf("Couldn't retrieve extrinsics for '%s', block number %d: %s\n", testURL, header.Number, err) + log.Printf("Couldn't get latest header for '%s': %s\n", testURL, err) + return } - log.Printf("Found %d extrinsics for '%s', at block number %d.\n", len(extrinsics), testURL, header.Number) + extrinsicCount := 0 - extrinsicsCount += len(extrinsics) + for { + blockHash, err := api.RPC.Chain.GetBlockHash(uint64(header.Number)) - if extrinsicsCount >= extrinsicsThreshold { - log.Printf("Retrieved a total of %d extrinsics for '%s', last block number %d. Stopping now.\n", extrinsicsCount, testURL, header.Number) + if err != nil { + log.Printf("Couldn't retrieve blockHash for '%s', block number %d: %s\n", testURL, header.Number, err) + return + } - return - } + extrinsics, err := retriever.GetExtrinsics(blockHash) - header, err = api.RPC.Chain.GetHeader(header.ParentHash) + if err != nil { + log.Printf("Couldn't retrieve extrinsics for '%s', block number %d: %s\n", testURL, header.Number, err) + return + } - if err != nil { - log.Printf("Couldn't retrieve header for block number '%d' for '%s': %s\n", header.Number, testURL, err) + log.Printf("Found %d extrinsics for '%s', at block number %d.\n", len(extrinsics), testURL, header.Number) - return - } - } - } -} + extrinsicCount += len(extrinsics) -type AcalaMultiSignature struct { - IsEd25519 bool - AsEd25519 types.Signature - IsSr25519 bool - AsSr25519 types.Signature - IsEcdsa bool - AsEcdsa types.EcdsaSignature - IsEthereum bool - AsEthereum [65]byte - IsEip1559 bool - AsEip1559 [65]byte - IsAcalaEip712 bool - AsAcalaEip712 [65]byte -} + if extrinsicCount > extrinsicsThreshold { + log.Printf("Retrieved a total of %d extrinsics for '%s', last block number %d. Stopping now.\n", extrinsicCount, testURL, header.Number) -func (m *AcalaMultiSignature) Decode(decoder scale.Decoder) error { - b, err := decoder.ReadOneByte() - if err != nil { - return err - } + return + } - switch b { - case 0: - m.IsEd25519 = true - err = decoder.Decode(&m.AsEd25519) - case 1: - m.IsSr25519 = true - err = decoder.Decode(&m.AsSr25519) - case 2: - m.IsEcdsa = true - err = decoder.Decode(&m.AsEcdsa) - case 3: - m.IsEthereum = true - err = decoder.Decode(&m.AsEthereum) - case 4: - m.IsEip1559 = true - err = decoder.Decode(&m.AsEip1559) - case 5: - m.IsAcalaEip712 = true - err = decoder.Decode(&m.AsAcalaEip712) - default: - return errors.New("signature not supported") - } + header, err = api.RPC.Chain.GetHeader(header.ParentHash) - if err != nil { - return err + if err != nil { + log.Printf("Couldn't retrieve header for block number '%d' for '%s': %s\n", header.Number, testURL, err) + + return + } + } + }() } - return nil + wg.Wait() } diff --git a/registry/retriever/extrinsic_retriever_mock.go b/registry/retriever/extrinsic_retriever_mock.go index e1a4a0fdf..35b456f92 100644 --- a/registry/retriever/extrinsic_retriever_mock.go +++ b/registry/retriever/extrinsic_retriever_mock.go @@ -3,26 +3,26 @@ package retriever import ( - parser "github.com/centrifuge/go-substrate-rpc-client/v4/registry/parser" + registry "github.com/centrifuge/go-substrate-rpc-client/v4/registry" types "github.com/centrifuge/go-substrate-rpc-client/v4/types" mock "github.com/stretchr/testify/mock" ) // ExtrinsicRetrieverMock is an autogenerated mock type for the ExtrinsicRetriever type -type ExtrinsicRetrieverMock[A interface{}, S interface{}, P interface{}] struct { +type ExtrinsicRetrieverMock struct { mock.Mock } // GetExtrinsics provides a mock function with given fields: blockHash -func (_m *ExtrinsicRetrieverMock[A, S, P]) GetExtrinsics(blockHash types.Hash) ([]*parser.Extrinsic[A, S, P], error) { +func (_m *ExtrinsicRetrieverMock) GetExtrinsics(blockHash types.Hash) ([]*registry.DecodedExtrinsic, error) { ret := _m.Called(blockHash) - var r0 []*parser.Extrinsic[A, S, P] - if rf, ok := ret.Get(0).(func(types.Hash) []*parser.Extrinsic[A, S, P]); ok { + var r0 []*registry.DecodedExtrinsic + if rf, ok := ret.Get(0).(func(types.Hash) []*registry.DecodedExtrinsic); ok { r0 = rf(blockHash) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]*parser.Extrinsic[A, S, P]) + r0 = ret.Get(0).([]*registry.DecodedExtrinsic) } } @@ -42,8 +42,8 @@ type NewExtrinsicRetrieverMockT interface { } // NewExtrinsicRetrieverMock creates a new instance of ExtrinsicRetrieverMock. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewExtrinsicRetrieverMock[A interface{}, S interface{}, P interface{}](t NewExtrinsicRetrieverMockT) *ExtrinsicRetrieverMock[A, S, P] { - mock := &ExtrinsicRetrieverMock[A, S, P]{} +func NewExtrinsicRetrieverMock(t NewExtrinsicRetrieverMockT) *ExtrinsicRetrieverMock { + mock := &ExtrinsicRetrieverMock{} mock.Mock.Test(t) t.Cleanup(func() { mock.AssertExpectations(t) }) diff --git a/registry/retriever/extrinsic_retriever_test.go b/registry/retriever/extrinsic_retriever_test.go index 8899ef95a..68be7fe0c 100644 --- a/registry/retriever/extrinsic_retriever_test.go +++ b/registry/retriever/extrinsic_retriever_test.go @@ -2,48 +2,25 @@ package retriever import ( "errors" - "testing" - "github.com/centrifuge/go-substrate-rpc-client/v4/registry" "github.com/centrifuge/go-substrate-rpc-client/v4/registry/exec" - "github.com/centrifuge/go-substrate-rpc-client/v4/registry/parser" - "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/generic" + "github.com/centrifuge/go-substrate-rpc-client/v4/registry/test" + chainMocks "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/mocks" stateMocks "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/state/mocks" "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/block" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" + "testing" ) func TestExtrinsicRetriever_New(t *testing.T) { - extrinsicParserMock := parser.NewExtrinsicParserMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ](t) - - genericChainMock := generic.NewChainMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ](t) - + chainRPCMock := chainMocks.NewChain(t) stateRPCMock := stateMocks.NewState(t) registryFactoryMock := registry.NewFactoryMock(t) - chainExecMock := exec.NewRetryableExecutorMock[*generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - parsingExecMock := exec.NewRetryableExecutorMock[[]*parser.Extrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) + chainExecMock := exec.NewRetryableExecutorMock[*block.SignedBlock](t) + extrinsicDecodingExecMock := exec.NewRetryableExecutorMock[[]*registry.DecodedExtrinsic](t) latestMeta := &types.Metadata{} @@ -51,754 +28,317 @@ func TestExtrinsicRetriever_New(t *testing.T) { Return(latestMeta, nil). Once() - callRegistry := registry.CallRegistry(map[types.CallIndex]*registry.TypeDecoder{}) + extrinsicDecoder := ®istry.ExtrinsicDecoder{} - registryFactoryMock.On("CreateCallRegistry", latestMeta). - Return(callRegistry, nil). + registryFactoryMock.On("CreateExtrinsicDecoder", latestMeta). + Return(extrinsicDecoder, nil). Once() - res, err := NewExtrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ]( - extrinsicParserMock, - genericChainMock, + res, err := NewExtrinsicRetriever( + chainRPCMock, stateRPCMock, registryFactoryMock, chainExecMock, - parsingExecMock, + extrinsicDecodingExecMock, ) assert.NoError(t, err) - assert.IsType(t, &extrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ]{}, res) + assert.IsType(t, &extrinsicRetriever{}, res) } func TestExtrinsicRetriever_New_InternalStateUpdateError(t *testing.T) { - extrinsicParserMock := parser.NewExtrinsicParserMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ](t) - - genericChainMock := generic.NewChainMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ](t) - + chainRPCMock := chainMocks.NewChain(t) stateRPCMock := stateMocks.NewState(t) registryFactoryMock := registry.NewFactoryMock(t) - chainExecMock := exec.NewRetryableExecutorMock[*generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - parsingExecMock := exec.NewRetryableExecutorMock[[]*parser.Extrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - metadataRetrievalError := errors.New("error") + chainExecMock := exec.NewRetryableExecutorMock[*block.SignedBlock](t) + extrinsicDecodingExecMock := exec.NewRetryableExecutorMock[[]*registry.DecodedExtrinsic](t) + + latestMeta := &types.Metadata{} stateRPCMock.On("GetMetadataLatest"). - Return(nil, metadataRetrievalError). + Return(nil, errors.New("error")). Once() - res, err := NewExtrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ]( - extrinsicParserMock, - genericChainMock, + res, err := NewExtrinsicRetriever( + chainRPCMock, stateRPCMock, registryFactoryMock, chainExecMock, - parsingExecMock, + extrinsicDecodingExecMock, ) assert.ErrorIs(t, err, ErrInternalStateUpdate) assert.Nil(t, res) - latestMeta := &types.Metadata{} - stateRPCMock.On("GetMetadataLatest"). Return(latestMeta, nil). Once() - registryFactoryError := errors.New("error") - - registryFactoryMock.On("CreateCallRegistry", latestMeta). - Return(nil, registryFactoryError). + registryFactoryMock.On("CreateExtrinsicDecoder", latestMeta). + Return(nil, errors.New("error")). Once() - res, err = NewExtrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ]( - extrinsicParserMock, - genericChainMock, + res, err = NewExtrinsicRetriever( + chainRPCMock, stateRPCMock, registryFactoryMock, chainExecMock, - parsingExecMock, + extrinsicDecodingExecMock, ) assert.ErrorIs(t, err, ErrInternalStateUpdate) assert.Nil(t, res) } func TestExtrinsicRetriever_NewDefault(t *testing.T) { - genericChainMock := generic.NewChainMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.DefaultGenericSignedBlock, - ](t) - + chainRPCMock := chainMocks.NewChain(t) stateRPCMock := stateMocks.NewState(t) - latestMeta := &types.Metadata{} + var meta types.Metadata + + err := codec.DecodeFromHex(test.CentrifugeMetadataHex, &meta) + assert.NoError(t, err) stateRPCMock.On("GetMetadataLatest"). - Return(latestMeta, nil). + Return(&meta, nil). Once() + res, err := NewDefaultExtrinsicRetriever( + chainRPCMock, + stateRPCMock, + ) + assert.NoError(t, err) + assert.IsType(t, &extrinsicRetriever{}, res) +} - extrinsicParser := parser.NewDefaultExtrinsicParser() - +func TestExtrinsicRetriever_GetExtrinsics(t *testing.T) { + chainRPCMock := chainMocks.NewChain(t) + stateRPCMock := stateMocks.NewState(t) registryFactoryMock := registry.NewFactoryMock(t) + chainExecMock := exec.NewRetryableExecutorMock[*block.SignedBlock](t) + extrinsicDecodingExecMock := exec.NewRetryableExecutorMock[[]*registry.DecodedExtrinsic](t) + + var meta types.Metadata - callRegistry := registry.CallRegistry(map[types.CallIndex]*registry.TypeDecoder{}) + err := codec.DecodeFromHex(test.CentrifugeMetadataHex, &meta) + assert.NoError(t, err) - registryFactoryMock.On("CreateCallRegistry", latestMeta). - Return(callRegistry, nil). + stateRPCMock.On("GetMetadataLatest"). + Return(&meta, nil). Once() - chainExecMock := exec.NewRetryableExecutorMock[*generic.DefaultGenericSignedBlock](t) - parsingExecMock := exec.NewRetryableExecutorMock[[]*parser.DefaultExtrinsic](t) + extrinsicDecoder, err := registry.NewFactory().CreateExtrinsicDecoder(&meta) + assert.NoError(t, err) - res, err := NewDefaultExtrinsicRetriever( - extrinsicParser, - genericChainMock, + registryFactoryMock.On("CreateExtrinsicDecoder", &meta). + Return(extrinsicDecoder, nil). + Once() + + extRet, err := NewExtrinsicRetriever( + chainRPCMock, stateRPCMock, registryFactoryMock, chainExecMock, - parsingExecMock, + extrinsicDecodingExecMock, ) - assert.NoError(t, err) - assert.IsType(t, &extrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.DefaultGenericSignedBlock, - ]{}, res) - - retriever := res.(*extrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.DefaultGenericSignedBlock, - ]) - assert.Equal(t, latestMeta, retriever.meta) - assert.Equal(t, callRegistry, retriever.callRegistry) -} - -func TestExtrinsicRetriever_GetExtrinsics(t *testing.T) { - extrinsicParserMock := parser.NewExtrinsicParserMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ](t) - - genericChainMock := generic.NewChainMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ](t) - - stateRPCMock := stateMocks.NewState(t) - registryFactoryMock := registry.NewFactoryMock(t) - chainExecMock := exec.NewRetryableExecutorMock[*generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - parsingExecMock := exec.NewRetryableExecutorMock[[]*parser.Extrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - - extrinsicRetriever := &extrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ]{ - extrinsicParser: extrinsicParserMock, - genericChain: genericChainMock, - stateRPC: stateRPCMock, - registryFactory: registryFactoryMock, - chainExecutor: chainExecMock, - extrinsicParsingExecutor: parsingExecMock, - } + assert.IsType(t, &extrinsicRetriever{}, extRet) - testMeta := &types.Metadata{} + blockHash := types.Hash{1, 2, 3, 4} - extrinsicRetriever.meta = testMeta + // NOTE - The following test relies on the following data from the Centrifuge development chain: + // + // Metadata from block 517393 + // Centrifuge development block 480514 - 0xacd5bd66bb3144f559be2bed09d0a1ae36e650b31f9eb8f5833eeb2c545d07cd + // System remark extrinsic - 0xb10184008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a480118346322ed93ad7d2583ab3e4b71acd66cc1fce77cb225624c8eb00977681468aec33b933606ed8c2eaa75b84278c42415d491f89c5e79db6910986c1b95f486e401e0000000000431 - callRegistry := registry.CallRegistry(map[types.CallIndex]*registry.TypeDecoder{}) + encodedExtrinsic := "0xb10184008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a480118346322ed93ad7d2583ab3e4b71acd66cc1fce77cb225624c8eb00977681468aec33b933606ed8c2eaa75b84278c42415d491f89c5e79db6910986c1b95f486e401e0000000000431" - extrinsicRetriever.callRegistry = callRegistry - - blockHash := types.NewHash([]byte{0, 1, 2, 3}) - - signedBlock := &generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{} + testBlock := &block.SignedBlock{ + Block: block.Block{ + Header: types.Header{}, + Extrinsics: []string{ + encodedExtrinsic, + }, + }, + Justification: nil, + } - genericChainMock.On("GetBlock", blockHash). - Return(signedBlock, nil). + chainRPCMock.On("GetBlock", blockHash). + Return(testBlock, nil). Once() chainExecMock.On("ExecWithFallback", mock.Anything, mock.Anything). Run( func(args mock.Arguments) { - execFn, ok := args.Get(0).(func() (*generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], error)) + execFn, ok := args.Get(0).(func() (*block.SignedBlock, error)) assert.True(t, ok) execFnRes, err := execFn() assert.NoError(t, err) - assert.Equal(t, signedBlock, execFnRes) + assert.Equal(t, testBlock, execFnRes) }, - ).Return(signedBlock, nil) + ).Return(testBlock, nil) - var parsedExtrinsics []*parser.Extrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ] + decodedExtrinsic, err := extrinsicDecoder.DecodeHex(encodedExtrinsic) + assert.NoError(t, err) - extrinsicParserMock.On("ParseExtrinsics", callRegistry, signedBlock). - Return(parsedExtrinsics, nil). - Once() + decodedExtrinsics := []*registry.DecodedExtrinsic{decodedExtrinsic} - parsingExecMock.On("ExecWithFallback", mock.Anything, mock.Anything). + extrinsicDecodingExecMock.On("ExecWithFallback", mock.Anything, mock.Anything). Run( func(args mock.Arguments) { - execFn, ok := args.Get(0).(func() ([]*parser.Extrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], error)) + execFn, ok := args.Get(0).(func() ([]*registry.DecodedExtrinsic, error)) assert.True(t, ok) execFnRes, err := execFn() assert.NoError(t, err) - assert.Equal(t, parsedExtrinsics, execFnRes) + assert.Equal(t, decodedExtrinsics, execFnRes) }, - ).Return(parsedExtrinsics, nil) + ).Return(decodedExtrinsics, nil) - res, err := extrinsicRetriever.GetExtrinsics(blockHash) + res, err := extRet.GetExtrinsics(blockHash) assert.NoError(t, err) - assert.Equal(t, parsedExtrinsics, res) + assert.Equal(t, decodedExtrinsics, res) } func TestExtrinsicRetriever_GetExtrinsics_BlockRetrievalError(t *testing.T) { - extrinsicParserMock := parser.NewExtrinsicParserMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ](t) - - genericChainMock := generic.NewChainMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ](t) - + chainRPCMock := chainMocks.NewChain(t) stateRPCMock := stateMocks.NewState(t) registryFactoryMock := registry.NewFactoryMock(t) - chainExecMock := exec.NewRetryableExecutorMock[*generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - parsingExecMock := exec.NewRetryableExecutorMock[[]*parser.Extrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - - extrinsicRetriever := &extrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ]{ - extrinsicParser: extrinsicParserMock, - genericChain: genericChainMock, - stateRPC: stateRPCMock, - registryFactory: registryFactoryMock, - chainExecutor: chainExecMock, - extrinsicParsingExecutor: parsingExecMock, - } + chainExecMock := exec.NewRetryableExecutorMock[*block.SignedBlock](t) + extrinsicDecodingExecMock := exec.NewRetryableExecutorMock[[]*registry.DecodedExtrinsic](t) - testMeta := &types.Metadata{} + var meta types.Metadata - extrinsicRetriever.meta = testMeta + err := codec.DecodeFromHex(test.CentrifugeMetadataHex, &meta) + assert.NoError(t, err) - callRegistry := registry.CallRegistry(map[types.CallIndex]*registry.TypeDecoder{}) + stateRPCMock.On("GetMetadataLatest"). + Return(&meta, nil). + Once() - extrinsicRetriever.callRegistry = callRegistry + extrinsicDecoder, err := registry.NewFactory().CreateExtrinsicDecoder(&meta) + assert.NoError(t, err) - blockHash := types.NewHash([]byte{0, 1, 2, 3}) + registryFactoryMock.On("CreateExtrinsicDecoder", &meta). + Return(extrinsicDecoder, nil). + Once() + + extRet, err := NewExtrinsicRetriever( + chainRPCMock, + stateRPCMock, + registryFactoryMock, + chainExecMock, + extrinsicDecodingExecMock, + ) + assert.NoError(t, err) + assert.IsType(t, &extrinsicRetriever{}, extRet) - blockRetrievalError := errors.New("error") + blockHash := types.Hash{1, 2, 3, 4} - signedBlock := &generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{} + blockRetrievalError := errors.New("block retrieval error") - genericChainMock.On("GetBlock", blockHash). - Return(signedBlock, blockRetrievalError). + chainRPCMock.On("GetBlock", blockHash). + Return(nil, blockRetrievalError). Once() + var signedBlock *block.SignedBlock + chainExecMock.On("ExecWithFallback", mock.Anything, mock.Anything). Run( func(args mock.Arguments) { - execFn, ok := args.Get(0).(func() (*generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], error)) + execFn, ok := args.Get(0).(func() (*block.SignedBlock, error)) assert.True(t, ok) execFnRes, err := execFn() assert.ErrorIs(t, err, blockRetrievalError) - assert.Equal(t, signedBlock, execFnRes) - - fallbackFn, ok := args.Get(1).(func() error) - assert.True(t, ok) - - assert.NoError(t, fallbackFn()) + assert.Nil(t, execFnRes) }, ).Return(signedBlock, blockRetrievalError) - res, err := extrinsicRetriever.GetExtrinsics(blockHash) + res, err := extRet.GetExtrinsics(blockHash) assert.ErrorIs(t, err, ErrBlockRetrieval) assert.Nil(t, res) } -func TestExtrinsicRetriever_GetExtrinsics_ExtrinsicParsingError(t *testing.T) { - extrinsicParserMock := parser.NewExtrinsicParserMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ](t) - - genericChainMock := generic.NewChainMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ](t) - +func TestExtrinsicRetriever_GetExtrinsics_ExtrinsicDecodeError(t *testing.T) { + chainRPCMock := chainMocks.NewChain(t) stateRPCMock := stateMocks.NewState(t) registryFactoryMock := registry.NewFactoryMock(t) - chainExecMock := exec.NewRetryableExecutorMock[*generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - parsingExecMock := exec.NewRetryableExecutorMock[[]*parser.Extrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - - extrinsicRetriever := &extrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ]{ - extrinsicParser: extrinsicParserMock, - genericChain: genericChainMock, - stateRPC: stateRPCMock, - registryFactory: registryFactoryMock, - chainExecutor: chainExecMock, - extrinsicParsingExecutor: parsingExecMock, - } + chainExecMock := exec.NewRetryableExecutorMock[*block.SignedBlock](t) + extrinsicDecodingExecMock := exec.NewRetryableExecutorMock[[]*registry.DecodedExtrinsic](t) - testMeta := &types.Metadata{} + var meta types.Metadata - extrinsicRetriever.meta = testMeta + err := codec.DecodeFromHex(test.CentrifugeMetadataHex, &meta) + assert.NoError(t, err) - callRegistry := registry.CallRegistry(map[types.CallIndex]*registry.TypeDecoder{}) + stateRPCMock.On("GetMetadataLatest"). + Return(&meta, nil). + Once() + + extrinsicDecoder, err := registry.NewFactory().CreateExtrinsicDecoder(&meta) + assert.NoError(t, err) + + registryFactoryMock.On("CreateExtrinsicDecoder", &meta). + Return(extrinsicDecoder, nil). + Once() + + extRet, err := NewExtrinsicRetriever( + chainRPCMock, + stateRPCMock, + registryFactoryMock, + chainExecMock, + extrinsicDecodingExecMock, + ) + assert.NoError(t, err) + assert.IsType(t, &extrinsicRetriever{}, extRet) - extrinsicRetriever.callRegistry = callRegistry + blockHash := types.Hash{1, 2, 3, 4} - blockHash := types.NewHash([]byte{0, 1, 2, 3}) + // Invalid encoded extrinsic that should trigger an error. + encodedExtrinsic := "0xb10184" - signedBlock := &generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{} + testBlock := &block.SignedBlock{ + Block: block.Block{ + Header: types.Header{}, + Extrinsics: []string{ + encodedExtrinsic, + }, + }, + Justification: nil, + } - genericChainMock.On("GetBlock", blockHash). - Return(signedBlock, nil). + chainRPCMock.On("GetBlock", blockHash). + Return(testBlock, nil). Once() chainExecMock.On("ExecWithFallback", mock.Anything, mock.Anything). Run( func(args mock.Arguments) { - execFn, ok := args.Get(0).(func() (*generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], error)) + execFn, ok := args.Get(0).(func() (*block.SignedBlock, error)) assert.True(t, ok) execFnRes, err := execFn() assert.NoError(t, err) - assert.Equal(t, signedBlock, execFnRes) + assert.Equal(t, testBlock, execFnRes) }, - ).Return(signedBlock, nil) - - extrinsicParsingError := errors.New("error") - - extrinsicParserMock.On("ParseExtrinsics", callRegistry, signedBlock). - Return(nil, extrinsicParsingError). - Once() + ).Return(testBlock, nil) - stateRPCMock.On("GetMetadata", blockHash). - Return(testMeta, nil). - Once() + extrinsicDecodeError := errors.New("extrinsic decode error") - registryFactoryMock.On("CreateCallRegistry", testMeta). - Return(callRegistry, nil). - Once() + var decodedExtrinsics []*registry.DecodedExtrinsic - parsingExecMock.On("ExecWithFallback", mock.Anything, mock.Anything). + extrinsicDecodingExecMock.On("ExecWithFallback", mock.Anything, mock.Anything). Run( func(args mock.Arguments) { - execFn, ok := args.Get(0).(func() ([]*parser.Extrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], error)) + execFn, ok := args.Get(0).(func() ([]*registry.DecodedExtrinsic, error)) assert.True(t, ok) execFnRes, err := execFn() - assert.ErrorIs(t, err, extrinsicParsingError) + assert.Error(t, err) assert.Nil(t, execFnRes) - - fallbackFn, ok := args.Get(1).(func() error) - assert.True(t, ok) - - err = fallbackFn() - assert.NoError(t, err) }, - ).Return([]*parser.Extrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]{}, extrinsicParsingError) - - res, err := extrinsicRetriever.GetExtrinsics(blockHash) - assert.ErrorIs(t, err, ErrExtrinsicParsing) - assert.Nil(t, res) -} - -func TestExtrinsicRetriever_updateInternalState(t *testing.T) { - extrinsicParserMock := parser.NewExtrinsicParserMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ](t) - - genericChainMock := generic.NewChainMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ](t) - - stateRPCMock := stateMocks.NewState(t) - registryFactoryMock := registry.NewFactoryMock(t) - chainExecMock := exec.NewRetryableExecutorMock[*generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - parsingExecMock := exec.NewRetryableExecutorMock[[]*parser.Extrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - - extrinsicRetriever := &extrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ]{ - extrinsicParser: extrinsicParserMock, - genericChain: genericChainMock, - stateRPC: stateRPCMock, - registryFactory: registryFactoryMock, - chainExecutor: chainExecMock, - extrinsicParsingExecutor: parsingExecMock, - } - - testMeta := &types.Metadata{} - - callRegistry := registry.CallRegistry(map[types.CallIndex]*registry.TypeDecoder{}) - - blockHash := types.NewHash([]byte{0, 1, 2, 3}) - - stateRPCMock.On("GetMetadata", blockHash). - Return(testMeta, nil). - Once() - - registryFactoryMock.On("CreateCallRegistry", testMeta). - Return(callRegistry, nil). - Once() - - err := extrinsicRetriever.updateInternalState(&blockHash) - assert.NoError(t, err) - - latestMeta := &types.Metadata{} - - stateRPCMock.On("GetMetadataLatest"). - Return(latestMeta, nil). - Once() - - registryFactoryMock.On("CreateCallRegistry", latestMeta). - Return(callRegistry, nil). - Once() - - err = extrinsicRetriever.updateInternalState(nil) - assert.NoError(t, err) -} - -func TestExtrinsicRetriever_updateInternalState_MetadataRetrievalError(t *testing.T) { - extrinsicParserMock := parser.NewExtrinsicParserMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ](t) - - genericChainMock := generic.NewChainMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ](t) - - stateRPCMock := stateMocks.NewState(t) - registryFactoryMock := registry.NewFactoryMock(t) - chainExecMock := exec.NewRetryableExecutorMock[*generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - parsingExecMock := exec.NewRetryableExecutorMock[[]*parser.Extrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - - extrinsicRetriever := &extrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ]{ - extrinsicParser: extrinsicParserMock, - genericChain: genericChainMock, - stateRPC: stateRPCMock, - registryFactory: registryFactoryMock, - chainExecutor: chainExecMock, - extrinsicParsingExecutor: parsingExecMock, - } - - metadataRetrievalError := errors.New("error") - - blockHash := types.NewHash([]byte{0, 1, 2, 3}) - - stateRPCMock.On("GetMetadata", blockHash). - Return(nil, metadataRetrievalError). - Once() - - err := extrinsicRetriever.updateInternalState(&blockHash) - assert.ErrorIs(t, err, ErrMetadataRetrieval) - - stateRPCMock.On("GetMetadataLatest"). - Return(nil, metadataRetrievalError). - Once() - - err = extrinsicRetriever.updateInternalState(nil) - assert.ErrorIs(t, err, ErrMetadataRetrieval) -} - -func TestExtrinsicRetriever_updateInternalState_RegistryFactoryError(t *testing.T) { - extrinsicParserMock := parser.NewExtrinsicParserMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ](t) - - genericChainMock := generic.NewChainMock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ](t) - - stateRPCMock := stateMocks.NewState(t) - registryFactoryMock := registry.NewFactoryMock(t) - chainExecMock := exec.NewRetryableExecutorMock[*generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - parsingExecMock := exec.NewRetryableExecutorMock[[]*parser.Extrinsic[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ]](t) - - extrinsicRetriever := &extrinsicRetriever[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - *generic.SignedBlock[ - types.MultiAddress, - types.MultiSignature, - generic.DefaultPaymentFields, - ], - ]{ - extrinsicParser: extrinsicParserMock, - genericChain: genericChainMock, - stateRPC: stateRPCMock, - registryFactory: registryFactoryMock, - chainExecutor: chainExecMock, - extrinsicParsingExecutor: parsingExecMock, - } - - testMeta := &types.Metadata{} - - registryFactoryError := errors.New("error") - - blockHash := types.NewHash([]byte{0, 1, 2, 3}) - - stateRPCMock.On("GetMetadata", blockHash). - Return(testMeta, nil). - Once() - - registryFactoryMock.On("CreateCallRegistry", testMeta). - Return(nil, registryFactoryError). - Once() - - err := extrinsicRetriever.updateInternalState(&blockHash) - assert.ErrorIs(t, err, ErrCallRegistryCreation) + ).Return(decodedExtrinsics, extrinsicDecodeError) - latestMeta := &types.Metadata{} - - stateRPCMock.On("GetMetadataLatest"). - Return(latestMeta, nil). - Once() - - registryFactoryMock.On("CreateCallRegistry", latestMeta). - Return(nil, registryFactoryError). - Once() - - err = extrinsicRetriever.updateInternalState(nil) - assert.ErrorIs(t, err, ErrCallRegistryCreation) + res, err := extRet.GetExtrinsics(blockHash) + assert.ErrorIs(t, err, ErrExtrinsicDecoding) + assert.Nil(t, res) } diff --git a/registry/test/centrifuge_meta.go b/registry/test/centrifuge_meta.go index a00ec9892..d87ef5df4 100644 --- a/registry/test/centrifuge_meta.go +++ b/registry/test/centrifuge_meta.go @@ -1,7 +1,7 @@ package test var ( - // CentrifugeMetadataHex at block 2290717. + // CentrifugeMetadataHex at block 517393. // nolint:lll - CentrifugeMetadataHex = "0x6d6574610e8907000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f7279200104540000200c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6524010c75363400012870726f6f665f73697a6524010c75363400002400000628002800000506002c083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000030000002080034102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677338013c5665633c4469676573744974656d3e0000380000023c003c102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e00060024436f6e73656e7375730800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000400105365616c0800400144436f6e73656e737573456e67696e654964000030011c5665633c75383e000500144f74686572040030011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000400000030400000008004400000248004808306672616d655f73797374656d2c4576656e745265636f7264080445014c0454012c000c011470686173650502011450686173650001146576656e744c010445000118746f70696373090201185665633c543e00004c084863656e747269667567655f72756e74696d653052756e74696d654576656e7400018c1853797374656d04005001706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007401bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040078017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e001400485472616e73616374696f6e5061796d656e7404008001a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e00150044436f6c6c61746f7253656c656374696f6e04008401a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0047001c53657373696f6e04008c015470616c6c65745f73657373696f6e3a3a4576656e74001f00204d756c7469736967040090017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e003c001450726f78790400a0017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e003d001c5574696c6974790400ac015470616c6c65745f7574696c6974793a3a4576656e74003e00245363686564756c65720400b0018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e003f001c436f756e63696c0400bc01fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e00400024456c656374696f6e730400c401a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4576656e743c52756e74696d653e0041002444656d6f63726163790400d0018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e004200204964656e746974790400e0017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e0043001c56657374696e670400e4017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e00440020507265696d6167650400e8017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e0045002054726561737572790400ec017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00460010466565730400f0016c70616c6c65745f666565733a3a4576656e743c52756e74696d653e005a0018436c61696d730400f8017470616c6c65745f636c61696d733a3a4576656e743c52756e74696d653e005c00104e6674730400fc016870616c6c65745f6e66743a3a4576656e743c52756e74696d653e005d001842726964676504000101017470616c6c65745f6272696467653a3a4576656e743c52756e74696d653e005e00244d6967726174696f6e0400050101a070616c6c65745f6d6967726174696f6e5f6d616e616765723a3a4576656e743c52756e74696d653e005f003843726f77646c6f616e436c61696d04000901019870616c6c65745f63726f77646c6f616e5f636c61696d3a3a4576656e743c52756e74696d653e0060003c43726f77646c6f616e52657761726404000d01019c70616c6c65745f63726f77646c6f616e5f7265776172643a3a4576656e743c52756e74696d653e00610018546f6b656e730400150101a070616c6c65745f726573747269637465645f746f6b656e733a3a4576656e743c52756e74696d653e00620044436f6c6c61746f72416c6c6f776c6973740400210101a470616c6c65745f636f6c6c61746f725f616c6c6f776c6973743a3a4576656e743c52756e74696d653e0063002458636d7051756575650400250101a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e0078002c506f6c6b61646f7458636d04003501016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e0079002843756d756c757358636d0400cd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e007a0020446d7051756575650400d10101a063756d756c75735f70616c6c65745f646d705f71756575653a3a4576656e743c52756e74696d653e007b001c58546f6b656e730400d50101706f726d6c5f78746f6b656e733a3a4576656e743c52756e74696d653e007c002c436861696e4272696467650400d901016c636861696e6272696467653a3a4576656e743c52756e74696d653e009600284f726d6c546f6b656e730400e501016c6f726d6c5f746f6b656e733a3a4576656e743c52756e74696d653e009700444f726d6c417373657452656769737472790400e901018c6f726d6c5f61737365745f72656769737472793a3a4576656e743c52756e74696d653e0098001c4f726d6c58636d0400010201606f726d6c5f78636d3a3a4576656e743c52756e74696d653e00990000500c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5401304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7260013444697370617463684572726f7200013464697370617463685f696e666f5401304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e744964000110686173682c011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e540c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735801344469737061746368436c617373000120706179735f6665655c0110506179730000580c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f7279000200005c0c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000060082873705f72756e74696d653444697370617463684572726f72000134144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040064012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400680128546f6b656e4572726f720007002841726974686d6574696304006c013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007001485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c000064082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7240018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000068082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f72746564000600006c082873705f72756e74696d653c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000070082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000740c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e4455706772616465417574686f72697a6564040124636f64655f686173682c011c543a3a486173680003047c416e207570677261646520686173206265656e20617574686f72697a65642e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320004040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564200118576569676874000120646d715f686561642c014472656c61795f636861696e3a3a48617368000504e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909780c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001281c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e63655365740c010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475737c01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909097c14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000800c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909840c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000114404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c65738801445665633c543a3a4163636f756e7449643e000000504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000100404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0002003843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0003004043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400040004a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909098800000200008c0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909900c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e7494016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e7494016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c749801384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e7494016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090994083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c7533320000980418526573756c74080454019c044501600108084f6b04009c000000000c45727204006000000100009c0000040000a00c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001143450726f78794578656375746564040118726573756c749801384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f74797065a40130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e646578a8010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f686173682c013443616c6c486173684f663c543e000204e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065a40130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200030448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065a40130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200040450412070726f7879207761732072656d6f7665642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909a4084863656e747269667567655f72756e74696d652450726f7879547970650001140c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e6365000200205f5374616b696e67000300204e6f6e50726f787900040000a80000050400ac0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7260013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7260013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c749801384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909b00c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000118245363686564756c65640801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736bb4016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e0001086964b801404f7074696f6e3c5b75383b2033325d3e000118726573756c749801384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736bb4016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e0001086964b801404f7074696f6e3c5b75383b2033325d3e00030429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736bb4016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e0001086964b801404f7074696f6e3c5b75383b2033325d3e0004043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e545065726d616e656e746c794f7665727765696768740801107461736bb4016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e0001086964b801404f7074696f6e3c5b75383b2033325d3e000504f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e04304576656e747320747970652eb400000408101000b804184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000bc0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f686173682c011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f686173682c011c543a3a48617368000114766f746564c00110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f686173682c011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f686173682c011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f686173682c011c543a3a48617368000118726573756c749801384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f686173682c011c543a3a48617368000118726573756c749801384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f686173682c011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c00000050000c40c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144576656e7404045400011c1c4e65775465726d04012c6e65775f6d656d62657273c801ec5665633c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2042616c616e63654f663c543e293e000014450141206e6577207465726d2077697468206e65775f6d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e550174686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e65644501666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e645501736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f2c626567696e20776974682e24456d7074795465726d00010831014e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc8604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f72000204e4496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b65640401186d656d6265720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000308410141206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f723060456d7074795465726d602e2452656e6f756e63656404012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400040498536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0005103901412063616e6469646174652077617320736c617368656420627920616d6f756e742064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722872756e6e65722d75702e00e44e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408012c736561745f686f6c6465720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000604350141207365617420686f6c6465722077617320736c617368656420627920616d6f756e74206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909c8000002cc00cc00000408001800d00c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e740404540001382050726f706f73656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000004bc41206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000104d841207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400020494416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c537461727465640801247265665f696e64657810013c5265666572656e64756d496e6465780001247468726573686f6c64d40134566f74655468726573686f6c640003045c41207265666572656e64756d2068617320626567756e2e185061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000404ac412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f745061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000504ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c65640401247265665f696e64657810013c5265666572656e64756d496e6465780006048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e2444656c65676174656408010c77686f000130543a3a4163636f756e744964000118746172676574000130543a3a4163636f756e744964000704dc416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404011c6163636f756e74000130543a3a4163636f756e744964000804e4416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c010c77686f000130543a3a4163636f756e74496400013470726f706f73616c5f686173682c011048323536000114756e74696c100138543a3a426c6f636b4e756d62657200090494416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e2c426c61636b6c697374656404013470726f706f73616c5f686173682c011048323536000a04c4412070726f706f73616c5f6861736820686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e14566f7465640c0114766f746572000130543a3a4163636f756e7449640001247265665f696e64657810013c5265666572656e64756d496e646578000110766f7465d801644163636f756e74566f74653c42616c616e63654f663c543e3e000b0490416e206163636f756e742068617320766f74656420696e2061207265666572656e64756d205365636f6e6465640801207365636f6e646572000130543a3a4163636f756e74496400012870726f705f696e64657810012450726f70496e646578000c048c416e206163636f756e742068617320736563636f6e64656420612070726f706f73616c4050726f706f73616c43616e63656c656404012870726f705f696e64657810012450726f70496e646578000d0460412070726f706f73616c20676f742063616e63656c65642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909d40c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f7269747900020000d80c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f7465dc0110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e636500010000dc0c4070616c6c65745f64656d6f637261637910766f746510566f74650000040008000000e00c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001282c4964656e7469747953657404010c77686f000130543a3a4163636f756e744964000004ec41206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e3c4964656e74697479436c656172656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000104cc41206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e384964656e746974794b696c6c656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000204c441206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e484a756467656d656e7452657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780003049c41206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e504a756467656d656e74556e72657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780004048841206a756467656d656e74207265717565737420776173207265747261637465642e384a756467656d656e74476976656e080118746172676574000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780005049441206a756467656d656e742077617320676976656e2062792061207265676973747261722e38526567697374726172416464656404013c7265676973747261725f696e646578100138526567697374726172496e646578000604584120726567697374726172207761732061646465642e405375624964656e7469747941646465640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000704f441207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e485375624964656e7469747952656d6f7665640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e485375624964656e746974795265766f6b65640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000908190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d20746865c86d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909e40c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909e80c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f746564040110686173682c011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e24526571756573746564040110686173682c011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c6561726564040110686173682c011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909ec0c3c70616c6c65745f74726561737572791870616c6c6574144576656e740804540004490001202050726f706f73656404013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000004344e65772070726f706f73616c2e205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000104e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640002047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e2052656a656374656408013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800011c736c617368656418013c42616c616e63654f663c542c20493e000304b0412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00040488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0005042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0006047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640007049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909f00c2c70616c6c65745f666565731870616c6c6574144576656e74040454000110284665654368616e67656408010c6b6579f40124543a3a4665654b657900010c66656518013042616c616e63654f663c543e0000002c466565546f417574686f7208011066726f6d000130543a3a4163636f756e74496400011c62616c616e636518013042616c616e63654f663c543e00010024466565546f4275726e08011066726f6d000130543a3a4163636f756e74496400011c62616c616e636518013042616c616e63654f663c543e00020034466565546f547265617375727908011066726f6d000130543a3a4163636f756e74496400011c62616c616e636518013042616c616e63654f663c543e00030004a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909f40c246366675f7479706573206665655f6b657973184665654b657900011034416e63686f7273436f6d6d697400000040416e63686f7273507265436f6d6d6974000100504272696467654e61746976655472616e73666572000200484e667450726f6f6656616c69646174696f6e00030000f80c3470616c6c65745f636c61696d731870616c6c6574144576656e740404540001081c436c61696d65640801286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418019c3c542061732070616c6c65745f62616c616e6365733a3a436f6e6669673e3a3a42616c616e6365000004f84576656e742074726967676572656420616674657220612072657761726420636c61696d206973207375636365737366756c6c792070726f63657373656438526f6f744861736853746f726564040124726f6f745f686173682c01843c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a48617368000104b04576656e7420747269676765726564207768656e2074686520726f6f7420686173682069732073746f72656404a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909fc0c2870616c6c65745f6e66741870616c6c6574144576656e74040454000104304465706f736974417373657404002c01843c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4861736800000004a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090901010c3470616c6c65745f6272696467651870616c6c6574144576656e740404540001041852656d61726b08002c01843c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4861736800000401285265736f75726365496400000004a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090905010c6070616c6c65745f6d6967726174696f6e5f6d616e616765721870616c6c6574144576656e74040454000124584d6967726174656453797374656d4163636f756e7473040010010c753332000004a84e756d626572206f66206163636f756e747320746861742068617665206265656e206d696772617465645c4d6967726174656456657374696e674163636f756e7473040010010c753332000104a44e756d626572206f662076657374696e6720746861742068617665206265656e206d69677261746564504d6967726174656450726f787950726f78696573040010010c753332000204a44e756d626572206f662070726f7869657320746861742068617665206265656e206d69677261746564544d69677261746564546f74616c49737375616e63650800180128543a3a42616c616e63650000180128543a3a42616c616e6365000308f4546865206e657720616e6420746865206f6c642069737375616e636520616674657220746865206d6967726174696f6e206f662069737375616e63652e785b604f6c6449737375616e6365602c20604e657749737375616e6365605d644661696c6564546f4d69677261746556657374696e67466f720400000130543a3a4163636f756e7449640004087d015468697320697320616e206572726f722074686174206d757374206265206469737061746368656420617320616e204576656e742c20617320776520646f206e6f742077616e7420746f206661696c207468652077686f6c6520626174636851017768656e206f6e65206163636f756e74206661696c732e2053686f756c6420616c736f206e6f742068617070656e2c2061732077652074616b65207468656d2066726f6d206d61696e6e65742e204275742e2e2e484d6967726174656456657374696e67466f721000000130543a3a4163636f756e74496400001801fd013c3c542061732070616c6c65745f76657374696e673a3a436f6e6669673e3a3a43757272656e6379206173206672616d655f737570706f72743a3a7472616974733a3a0a43757272656e63793c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c3e3e3a3a42616c616e636500001801fd013c3c542061732070616c6c65745f76657374696e673a3a436f6e6669673e3a3a43757272656e6379206173206672616d655f737570706f72743a3a7472616974733a3a0a43757272656e63793c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c3e3e3a3a42616c616e63650000100138543a3a426c6f636b4e756d6265720005047c446566696e6573207468652076657374696e67207765206d696772617465646c4661696c6564546f4d69677261746550726f787944617461466f720400000130543a3a4163636f756e7449640006085501496e646963617465732069662061206d6967726174696f6e206f662070726f78792064617461206661696c65642c20746869732073686f756c64204e455645522068617070656e2c20616e642063616e206f6e6c79c868617070656e2064756520746f20696e73756666696369656e742062616c616e63657320647572696e672072657365727665504d6967726174656450726f787944617461466f720c00000130543a3a4163636f756e74496400001801f5013c3c542061732070616c6c65745f70726f78793a3a436f6e6669673e3a3a43757272656e6379206173206672616d655f737570706f72743a3a7472616974733a3a0a43757272656e63793c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c3e3e3a3a42616c616e6365000028010c753634000708ec496e6469636174657320746861742070726f7879206461746120686173206265656e206d696772617465642073756363657366756c6c7920666f7201015b6050726f786965644163636f756e74602c20604465706f7369744f6e50726f786965734163636f756e74602c20604e756d6265724f6650726f78696573605d444d6967726174696f6e46696e6973686564000804a0496e64696361746573207468617420746865206d6967726174696f6e2069732066696e697368656404a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090909010c5870616c6c65745f63726f77646c6f616e5f636c61696d1870616c6c6574144576656e7404045400011c58436c61696d50616c6c6574496e697469616c697a656400000415014576656e7420656d6974746564207768656e207468652063726f77646c6f616e20636c61696d2070616c6c65742069732070726f7065726c7920636f6e666967757265642e34526577617264436c61696d65640c00000158543a3a52656c6179436861696e4163636f756e744964000000015c50617261636861696e4163636f756e7449644f663c543e0000180128543a3a42616c616e6365000104e84576656e7420656d6974746564207768656e20612072657761726420686173206265656e20636c61696d6564207375636365737366756c6c792e3c4c6f636b65644174557064617465640400100138543a3a426c6f636b4e756d626572000204090154686520626c6f636b206e756d6265722c207768657265207765206c6f636b2074686520636f6e747269627574696f6e7320686173206265656e207570646174656460436f6e747269627574696f6e73526f6f745570646174656404002c0134526f6f74486173684f663c543e000304e852656c61792d636861696e20526f6f74206861736820776869636820616c6c6f777320746f2076657269667920636f6e747269627574696f6e736443726f77646c6f616e54726965496e64657855706461746564040010012454726965496e6465780004042d015472696520696e646578206f66207468652063726f77646c6f616e20696e73696465207468652072656c61792d636861696e732063726f77646c6f616e206368696c642073746f72616765444c656173655374617274557064617465640400100138543a3a426c6f636b4e756d6265720005084101546865206c65617365207374617274206f66207468652070617261636861696e20736c6f742e205573656420746f20646566696e65207768656e2077652063616e20696e697469616c697a6520746865246e6578742074696d65484c65617365506572696f64557064617465640400100138543a3a426c6f636b4e756d6265720006084501546865206c6561736520706572696f64206f66207468652070617261636861696e20736c6f742e205573656420746f20646566696e65207768656e2077652063616e20696e697469616c697a6520746865246e6578742074696d6504a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909090d010c5c70616c6c65745f63726f77646c6f616e5f7265776172641870616c6c6574144576656e7404045400011434526577617264436c61696d65640c00000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e000008f44576656e7420656d6974746564207768656e20612072657761726420636c61696d207761732070726f636573736564207375636365737366756c6c792e945c5b77686f2c206469726563745f7265776172642c207665737465645f7265776172645c5d5c52657761726450616c6c6574496e697469616c697a65640c00100138543a3a426c6f636b4e756d6265720000100138543a3a426c6f636b4e756d62657200001101011c50657262696c6c00010819014576656e7420747269676765726564207768656e2074686520726577617264206d6f64756c6520697320726561647920746f2072657761726420636f6e7472696275746f7273d85c5b76657374696e675f73746172742c2076657374696e675f706572696f642c206469726563745f7061796f75745f726174696f5c5d604469726563745061796f7574526174696f5570646174656404001101011c50657262696c6c000208d4446972656374207061796f757420726174696f20666f7220636f6e7472696275746f727320686173206265656e2075706461746564405c5b7061796f75745f726174696f5c5d5056657374696e67506572696f64557064617465640400100138543a3a426c6f636b4e756d6265720003047c56657374696e6720706572696f6420686173206265656e20757064617465644c56657374696e675374617274557064617465640400100138543a3a426c6f636b4e756d626572000404845374617274206f662076657374696e6720686173206265656e207570646174656404a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090911010c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000015010c6070616c6c65745f726573747269637465645f746f6b656e731870616c6c6574144576656e74040454000108205472616e7366657210012c63757272656e63795f696419010134543a3a43757272656e6379496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650000044c5472616e73666572207375636365656465642e2842616c616e636553657410012c63757272656e63795f696419010134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500010468412062616c616e6365207761732073657420627920726f6f742e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090919010c246366675f747970657318746f6b656e732843757272656e63794964000114184e61746976650000001c5472616e6368650800280118506f6f6c496400001d0101245472616e63686549640001000c4b534d000200104155534400030030466f726569676e41737365740400100138466f726569676e41737365744964000400001d0100000310000000080021010c6470616c6c65745f636f6c6c61746f725f616c6c6f776c6973741870616c6c6574144576656e7404045400010834436f6c6c61746f72416464656404012c636f6c6c61746f725f6964000138543a3a56616c696461746f724964000004a84120636f6c6c61746f7220686173206265656e20616464656420746f2074686520616c6c6f776c6973743c436f6c6c61746f7252656d6f76656404012c636f6c6c61746f725f6964000138543a3a56616c696461746f724964000104b84120636f6c6c61746f7220686173206265656e2072656d6f7665642066726f6d2074686520616c6c6f776c69737404a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a09090925010c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001201c537563636573730801306d6573736167655f686173682901013c4f7074696f6e3c543a3a486173683e00011877656967687420011857656967687400000464536f6d652058434d20776173206578656375746564206f6b2e104661696c0c01306d6573736167655f686173682901013c4f7074696f6e3c543a3a486173683e0001146572726f722d01012058636d4572726f7200011877656967687420011857656967687400010440536f6d652058434d206661696c65642e2842616456657273696f6e0401306d6573736167655f686173682901013c4f7074696f6e3c543a3a486173683e000204544261642058434d2076657273696f6e20757365642e24426164466f726d61740401306d6573736167655f686173682901013c4f7074696f6e3c543a3a486173683e000304504261642058434d20666f726d617420757365642e445570776172644d65737361676553656e740401306d6573736167655f686173682901013c4f7074696f6e3c543a3a486173683e000404b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e3c58636d704d65737361676553656e740401306d6573736167655f686173682901013c4f7074696f6e3c543a3a486173683e000504c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e484f766572776569676874456e71756575656410011873656e6465723101011850617261496400011c73656e745f617410014052656c6179426c6f636b4e756d626572000114696e64657828013c4f766572776569676874496e6465780001207265717569726564200118576569676874000604d4416e2058434d2065786365656465642074686520696e646976696475616c206d65737361676520776569676874206275646765742e484f7665727765696768745365727669636564080114696e64657828013c4f766572776569676874496e646578000110757365642001185765696768740007044101416e2058434d2066726f6d20746865206f7665727765696768742071756575652077617320657865637574656420776974682074686520676976656e2061637475616c2077656967687420757365642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909290104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c00000100002d01100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040028010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404002801185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c650019000031010c48706f6c6b61646f745f70617261636861696e287072696d6974697665730849640000040010010c753332000035010c2870616c6c65745f78636d1870616c6c6574144576656e7404045400014424417474656d7074656404003901015078636d3a3a6c61746573743a3a4f7574636f6d6500000ca8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e00345c5b206f7574636f6d65205c5d1053656e740c003d0101344d756c74694c6f636174696f6e00003d0101344d756c74694c6f636174696f6e00006501011c58636d3c28293e00010c5c412058434d206d657373616765207761732073656e742e00885c5b206f726967696e2c2064657374696e6174696f6e2c206d657373616765205c5d48556e6578706563746564526573706f6e736508003d0101344d756c74694c6f636174696f6e000028011c517565727949640002145901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e00645c5b206f726967696e206c6f636174696f6e2c206964205c5d34526573706f6e73655265616479080028011c5175657279496400008d010120526573706f6e73650003105d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e00485c5b2069642c20726573706f6e7365205c5d204e6f7469666965640c0028011c5175657279496400000801087538000008010875380004105901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e00885c5b2069642c2070616c6c657420696e6465782c2063616c6c20696e646578205c5d404e6f746966794f766572776569676874140028011c517565727949640000080108753800000801087538000020011857656967687400002001185765696768740005146101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20636f756c6441016e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e0019015c5b2069642c2070616c6c657420696e6465782c2063616c6c20696e6465782c2061637475616c207765696768742c206d617820627564676574656420776569676874205c5d4c4e6f7469667944697370617463684572726f720c0028011c5175657279496400000801087538000008010875380006105501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e00885c5b2069642c2070616c6c657420696e6465782c2063616c6c20696e646578205c5d484e6f746966794465636f64654661696c65640c0028011c5175657279496400000801087538000008010875380007145101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e00885c5b2069642c2070616c6c657420696e6465782c2063616c6c20696e646578205c5d40496e76616c6964526573706f6e6465720c003d0101344d756c74694c6f636174696f6e000028011c517565727949640000b10101544f7074696f6e3c4d756c74694c6f636174696f6e3e0008145901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e00b05c5b206f726967696e206c6f636174696f6e2c2069642c206578706563746564206c6f636174696f6e205c5d5c496e76616c6964526573706f6e64657256657273696f6e08003d0101344d756c74694c6f636174696f6e000028011c517565727949640009245101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e00645c5b206f726967696e206c6f636174696f6e2c206964205c5d34526573706f6e736554616b656e040028011c51756572794964000a0cc8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e00205c5b206964205c5d34417373657473547261707065640c002c01104832353600003d0101344d756c74694c6f636174696f6e0000b501015056657273696f6e65644d756c7469417373657473000b0cb8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e00685c5b20686173682c206f726967696e2c20617373657473205c5d5456657273696f6e4368616e67654e6f74696669656408003d0101344d756c74694c6f636174696f6e000010012858636d56657273696f6e000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00645c5b2064657374696e6174696f6e2c20726573756c74205c5d5c537570706f7274656456657273696f6e4368616e67656408003d0101344d756c74694c6f636174696f6e000010012858636d56657273696f6e000d10390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e006c5c5b206c6f636174696f6e2c2058434d2076657273696f6e205c5d504e6f7469667954617267657453656e644661696c0c003d0101344d756c74694c6f636174696f6e000028011c5175657279496400002d01012058636d4572726f72000e1059014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e007c5c5b206c6f636174696f6e2c2071756572792049442c206572726f72205c5d644e6f746966795461726765744d6967726174696f6e4661696c0800c901015856657273696f6e65644d756c74694c6f636174696f6e000028011c51756572794964000f1059014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e00605c5b206c6f636174696f6e2c207175657279204944205c5d34417373657473436c61696d65640c002c01104832353600003d0101344d756c74694c6f636174696f6e0000b501015056657273696f6e65644d756c746941737365747300100cc0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e206173736574207472617000685c5b20686173682c206f726967696e2c20617373657473205c5d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a0909093901100c78636d087632187472616974731c4f7574636f6d6500010c20436f6d706c657465040028011857656967687400000028496e636f6d706c657465080028011857656967687400002d0101144572726f72000100144572726f7204002d0101144572726f72000200003d01100c78636d087631346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72410101244a756e6374696f6e7300004101100c78636d087631346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400450101204a756e6374696f6e0001000858320800450101204a756e6374696f6e0000450101204a756e6374696f6e0002000858330c00450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0003000858341000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0004000858351400450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0005000858361800450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0006000858371c00450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0007000858382000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e0000450101204a756e6374696f6e000800004501100c78636d087631206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e04004901010c7533320000002c4163636f756e744964333208011c6e6574776f726b4d0101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b4d0101244e6574776f726b4964000114696e64657824010c753634000200304163636f756e744b6579323008011c6e6574776f726b4d0101244e6574776f726b496400010c6b6579550101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e646578040059010110753132380005002847656e6572616c4b65790400510101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869645d010118426f647949640001107061727461010120426f64795061727400080000490100000610004d01100c78636d087630206a756e6374696f6e244e6574776f726b49640001100c416e79000000144e616d65640400510101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d61000300005101101c73705f636f72651c626f756e646564407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003001185665633c543e00005501000003140000000800590100000618005d01100c78636d087630206a756e6374696f6e18426f6479496400011c10556e6974000000144e616d65640400510101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e64657804004901010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c000600006101100c78636d087630206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e744901010c753332000100204672616374696f6e08010c6e6f6d4901010c75333200011464656e6f6d4901010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6d4901010c75333200011464656e6f6d4901010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6d4901010c75333200011464656e6f6d4901010c7533320004000065010c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400690101745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e000069010000026d01006d010c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007101012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007101012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007101012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f696424011c51756572794964000120726573706f6e73658d010120526573706f6e73650001286d61785f77656967687424010c753634000300345472616e7366657241737365740801186173736574737101012c4d756c746941737365747300012c62656e65666963696172793d0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737101012c4d756c7469417373657473000110646573743d0101344d756c74694c6f636174696f6e00010c78636d6501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065990101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424010c75363400011063616c6c9d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465724901010c7533320001406d61785f6d6573736167655f73697a654901010c7533320001306d61785f63617061636974794901010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e744901010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f724901010c75333200011873656e6465724901010c753332000124726563697069656e744901010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040041010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f696424011c51756572794964000110646573743d0101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f77656967687424010c753634000c00304465706f73697441737365740c0118617373657473a10101404d756c7469417373657446696c7465720001286d61785f6173736574734901010c75333200012c62656e65666963696172793d0101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473a10101404d756c7469417373657446696c7465720001286d61785f6173736574734901010c753332000110646573743d0101344d756c74694c6f636174696f6e00010c78636d6501011c58636d3c28293e000e003445786368616e6765417373657408011067697665a10101404d756c7469417373657446696c74657200011c726563656976657101012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473a10101404d756c7469417373657446696c74657200011c726573657276653d0101344d756c74694c6f636174696f6e00010c78636d6501011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473a10101404d756c7469417373657446696c746572000110646573743d0101344d756c74694c6f636174696f6e00010c78636d6501011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f696424011c51756572794964000110646573743d0101344d756c74694c6f636174696f6e000118617373657473a10101404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f77656967687424010c75363400120030427579457865637574696f6e08011066656573790101284d756c746941737365740001307765696768745f6c696d6974ad01012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204006501014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804006501014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737101012c4d756c74694173736574730001187469636b65743d0101344d756c74694c6f636174696f6e0018001054726170040024010c7536340019004053756273637269626556657273696f6e08012071756572795f696424011c5175657279496400014c6d61785f726573706f6e73655f77656967687424010c753634001a0048556e73756273637269626556657273696f6e001b00007101100c78636d087631286d756c746961737365742c4d756c7469417373657473000004007501013c5665633c4d756c746941737365743e000075010000027901007901100c78636d087631286d756c74696173736574284d756c74694173736574000008010869647d01011c4173736574496400010c66756e8101012c46756e676962696c69747900007d01100c78636d087631286d756c746961737365741c4173736574496400010820436f6e637265746504003d0101344d756c74694c6f636174696f6e000000204162737472616374040030011c5665633c75383e000100008101100c78636d087631286d756c746961737365742c46756e676962696c6974790001082046756e6769626c65040059010110753132380000002c4e6f6e46756e6769626c650400850101344173736574496e7374616e6365000100008501100c78636d087631286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400590101107531323800010018417272617934040040011c5b75383b20345d0002001841727261793804008901011c5b75383b20385d0003001c4172726179313604001d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040030011c5665633c75383e0006000089010000030800000008008d010c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007101012c4d756c74694173736574730001003c457865637574696f6e526573756c740400910101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000910104184f7074696f6e0404540195010108104e6f6e6500000010536f6d65040095010000010000950100000408102d010099010c0c78636d087630284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300009d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656430011c5665633c75383e0000a101100c78636d087631286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007101012c4d756c74694173736574730000001057696c640400a501013857696c644d756c7469417373657400010000a501100c78636d087631286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869647d01011c4173736574496400010c66756ea901013c57696c6446756e676962696c69747900010000a901100c78636d087631286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000ad010c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d69746564040024010c75363400010000b10104184f7074696f6e040454013d010108104e6f6e6500000010536f6d6504003d010000010000b501080c78636d5056657273696f6e65644d756c74694173736574730001080856300400b901014c5665633c76303a3a4d756c746941737365743e00000008563104007101013c76313a3a4d756c746941737365747300010000b901000002bd0100bd01100c78636d0876302c6d756c74695f6173736574284d756c74694173736574000130104e6f6e650000000c416c6c0001002c416c6c46756e6769626c6500020038416c6c4e6f6e46756e6769626c650003004c416c6c416273747261637446756e6769626c65040108696430011c5665633c75383e00040058416c6c41627374726163744e6f6e46756e6769626c65040114636c61737330011c5665633c75383e0005004c416c6c436f6e637265746546756e6769626c650401086964c10101344d756c74694c6f636174696f6e00060058416c6c436f6e63726574654e6f6e46756e6769626c65040114636c617373c10101344d756c74694c6f636174696f6e00070040416273747261637446756e6769626c65080108696430011c5665633c75383e000118616d6f756e7459010110753132380008004c41627374726163744e6f6e46756e6769626c65080114636c61737330011c5665633c75383e000120696e7374616e6365850101344173736574496e7374616e636500090040436f6e637265746546756e6769626c650801086964c10101344d756c74694c6f636174696f6e000118616d6f756e745901011075313238000a004c436f6e63726574654e6f6e46756e6769626c65080114636c617373c10101344d756c74694c6f636174696f6e000120696e7374616e6365850101344173736574496e7374616e6365000b0000c101100c78636d087630386d756c74695f6c6f636174696f6e344d756c74694c6f636174696f6e000124104e756c6c0000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087630206a756e6374696f6e204a756e6374696f6e00012818506172656e740000002450617261636861696e04004901010c7533320001002c4163636f756e744964333208011c6e6574776f726b4d0101244e6574776f726b496400010869640401205b75383b2033325d000200384163636f756e74496e646578363408011c6e6574776f726b4d0101244e6574776f726b4964000114696e64657824010c753634000300304163636f756e744b6579323008011c6e6574776f726b4d0101244e6574776f726b496400010c6b6579550101205b75383b2032305d0004003850616c6c6574496e7374616e6365040008010875380005003047656e6572616c496e646578040059010110753132380006002847656e6572616c4b65790400510101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000700244f6e6c794368696c6400080024506c7572616c69747908010869645d010118426f647949640001107061727461010120426f64795061727400090000c901080c78636d5856657273696f6e65644d756c74694c6f636174696f6e0001080856300400c101014476303a3a4d756c74694c6f636174696f6e00000008563104003d01014476313a3a4d756c74694c6f636174696f6e00010000cd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404008901011c5b75383b20385d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04008901011c5b75383b20385d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408008901011c5b75383b20385d00003901011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909d1010c6063756d756c75735f70616c6c65745f646d705f71756575651870616c6c6574144576656e7404045400011834496e76616c6964466f726d61740401286d6573736167655f69640401244d657373616765496400000480446f776e77617264206d65737361676520697320696e76616c69642058434d2e48556e737570706f7274656456657273696f6e0401286d6573736167655f69640401244d6573736167654964000104bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e404578656375746564446f776e776172640801286d6573736167655f69640401244d657373616765496400011c6f7574636f6d653901011c4f7574636f6d65000204c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e3c5765696768744578686175737465640c01286d6573736167655f69640401244d657373616765496400014072656d61696e696e675f77656967687420011857656967687400013c72657175697265645f776569676874200118576569676874000304f054686520776569676874206c696d697420666f722068616e646c696e6720646f776e77617264206d657373616765732077617320726561636865642e484f766572776569676874456e7175657565640c01286d6573736167655f69640401244d65737361676549640001406f7665727765696768745f696e64657828013c4f766572776569676874496e64657800013c72657175697265645f7765696768742001185765696768740004041901446f776e77617264206d657373616765206973206f76657277656967687420616e642077617320706c6163656420696e20746865206f7665727765696768742071756575652e484f76657277656967687453657276696365640801406f7665727765696768745f696e64657828013c4f766572776569676874496e64657800012c7765696768745f75736564200118576569676874000504e0446f776e77617264206d6573736167652066726f6d20746865206f766572776569676874207175657565207761732065786563757465642e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909d5010c306f726d6c5f78746f6b656e73186d6f64756c65144576656e74040454000104585472616e736665727265644d756c746941737365747310011873656e646572000130543a3a4163636f756e7449640001186173736574737101012c4d756c746941737365747300010c666565790101284d756c74694173736574000110646573743d0101344d756c74694c6f636174696f6e000004885472616e7366657272656420604d756c74694173736574602077697468206665652e04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909d9010c2c636861696e6272696467651870616c6c6574144576656e740404540001345c52656c617965725468726573686f6c644368616e676564040010010c753332000004a8566f7465207468726573686f6c6420686173206368616e67656420286e65775f7468726573686f6c642940436861696e57686974656c6973746564040008011c436861696e4964000104b0436861696e206e6f7720617661696c61626c6520666f72207472616e73666572732028636861696e5f6964293052656c6179657241646465640400000130543a3a4163636f756e7449640002045052656c6179657220616464656420746f207365743852656c6179657252656d6f7665640400000130543a3a4163636f756e7449640003046052656c617965722072656d6f7665642066726f6d207365744046756e6769626c655472616e73666572140008011c436861696e496400002801304465706f7369744e6f6e636500000401285265736f7572636549640000dd01011055323536000030011c5665633c75383e000404990146756e676c69626c655472616e7366657220697320666f722072656c6179696e672066756e6769626c65732028646573745f69642c206e6f6e63652c207265736f757263655f69642c20616d6f756e742c20726563697069656e742c206d65746164617461294c4e6f6e46756e6769626c655472616e73666572180008011c436861696e496400002801304465706f7369744e6f6e636500000401285265736f757263654964000030011c5665633c75383e000030011c5665633c75383e000030011c5665633c75383e00050495014e6f6e46756e6769626c655472616e7366657220697320666f722072656c6179696e67204e4654532028646573745f69642c206e6f6e63652c207265736f757263655f69642c20746f6b656e5f69642c20726563697069656e742c206d65746164617461293c47656e657269635472616e73666572100008011c436861696e496400002801304465706f7369744e6f6e636500000401285265736f757263654964000030011c5665633c75383e000604550147656e657269635472616e7366657220697320666f7220612067656e657269632064617461207061796c6f61642028646573745f69642c206e6f6e63652c207265736f757263655f69642c206d65746164617461291c566f7465466f720c0008011c436861696e496400002801304465706f7369744e6f6e63650000000130543a3a4163636f756e74496400070490566f7465207375626d697474656420696e206661766f7572206f662070726f706f73616c2c566f7465416761696e73740c0008011c436861696e496400002801304465706f7369744e6f6e63650000000130543a3a4163636f756e74496400080478566f74207375626d697474656420616761696e73742070726f706f73616c4050726f706f73616c417070726f766564080008011c436861696e496400002801304465706f7369744e6f6e636500090480566f74696e67207375636365737366756c20666f7220612070726f706f73616c4050726f706f73616c52656a6563746564080008011c436861696e496400002801304465706f7369744e6f6e6365000a0468566f74696e672072656a656374656420612070726f706f73616c4450726f706f73616c537563636565646564080008011c436861696e496400002801304465706f7369744e6f6e6365000b046c457865637574696f6e206f662063616c6c207375636365656465643850726f706f73616c4661696c6564080008011c436861696e496400002801304465706f7369744e6f6e6365000c0460457865637574696f6e206f662063616c6c206661696c656404a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909dd01083c7072696d69746976655f7479706573105532353600000400e10101205b7536343b20345d0000e101000003040000002800e5010c2c6f726d6c5f746f6b656e73186d6f64756c65144576656e740404540001341c456e646f7765640c012c63757272656e63795f696419010134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f73740c012c63757272656e63795f696419010134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000108ec416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77c84578697374656e7469616c4465706f7369742c20726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e7366657210012c63757272656e63795f696419010134543a3a43757272656e6379496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2052657365727665640c012c63757272656e63795f696419010134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000304e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e72657365727665640c012c63757272656e63795f696419010134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656414012c63757272656e63795f696419010134543a3a43757272656e6379496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001187374617475737c013442616c616e6365537461747573000508f4536f6d652072657365727665642062616c616e63652077617320726570617472696174656420286d6f7665642066726f6d20726573657276656420746f44616e6f74686572206163636f756e74292e2842616c616e636553657410012c63757272656e63795f696419010134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500060468412062616c616e6365207761732073657420627920726f6f742e40546f74616c49737375616e636553657408012c63757272656e63795f696419010134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e6365000704b854686520746f74616c2069737375616e6365206f6620616e2063757272656e637920686173206265656e207365742457697468647261776e0c012c63757272656e63795f696419010134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000804ec536f6d652062616c616e63657320776572652077697468647261776e2028652e672e2070617920666f72207472616e73616374696f6e20666565291c536c617368656410012c63757272656e63795f696419010134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e74496400012c667265655f616d6f756e74180128543a3a42616c616e636500013c72657365727665645f616d6f756e74180128543a3a42616c616e6365000904d4536f6d652062616c616e636573207765726520736c61736865642028652e672e2064756520746f206d69732d6265686176696f7229244465706f73697465640c012c63757272656e63795f696419010134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a04984465706f736974656420736f6d652062616c616e636520696e746f20616e206163636f756e741c4c6f636b53657410011c6c6f636b5f6964890101384c6f636b4964656e74696669657200012c63757272656e63795f696419010134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b0454536f6d652066756e647320617265206c6f636b65642c4c6f636b52656d6f7665640c011c6c6f636b5f6964890101384c6f636b4964656e74696669657200012c63757272656e63795f696419010134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000c047c536f6d65206c6f636b65642066756e6473207765726520756e6c6f636b656404a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909e9010c4c6f726d6c5f61737365745f7265676973747279186d6f64756c65144576656e740404540001083c52656769737465726564417373657408012061737365745f696419010128543a3a417373657449640001206d65746164617461ed0101b041737365744d657461646174613c543a3a42616c616e63652c20543a3a437573746f6d4d657461646174613e0000003055706461746564417373657408012061737365745f696419010128543a3a417373657449640001206d65746164617461ed0101b041737365744d657461646174613c543a3a42616c616e63652c20543a3a437573746f6d4d657461646174613e00010004a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909ed010c2c6f726d6c5f7472616974733861737365745f72656769737472793441737365744d65746164617461081c42616c616e6365011838437573746f6d4d6574616461746101f10100180120646563696d616c7310010c7533320001106e616d6530011c5665633c75383e00011873796d626f6c30011c5665633c75383e00014c6578697374656e7469616c5f6465706f73697418011c42616c616e63650001206c6f636174696f6efd0101784f7074696f6e3c56657273696f6e65644d756c74694c6f636174696f6e3e0001286164646974696f6e616cf1010138437573746f6d4d657461646174610000f1010c246366675f747970657318746f6b656e7338437573746f6d4d65746164617461000010010c78636df501012c58636d4d657461646174610001206d696e7461626c65c00110626f6f6c0001307065726d697373696f6e6564c00110626f6f6c000134706f6f6c5f63757272656e6379c00110626f6f6c0000f5010c246366675f74797065730c78636d2c58636d4d6574616461746100000401386665655f7065725f7365636f6e64f901013c4f7074696f6e3c42616c616e63653e0000f90104184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000fd0104184f7074696f6e04045401c9010108104e6f6e6500000010536f6d650400c901000001000001020c206f726d6c5f78636d186d6f64756c65144576656e740404540001041053656e74080108746f3d0101344d756c74694c6f636174696f6e00011c6d6573736167656501011c58636d3c28293e0000048458434d206d6573736167652073656e742e205c5b746f2c206d6573736167655c5d04a1010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f2920656d69747465640a090909627920746869732070616c6c65742e0a090909050208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e0002000009020000022c000d02000002b400110208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e4901014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d651502016473705f72756e74696d653a3a52756e74696d65537472696e6700001502000005020019020c306672616d655f73797374656d1870616c6c65741043616c6c0404540001242866696c6c5f626c6f636b040114726174696f1101011c50657262696c6c00000405014120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b04011872656d61726b30011c5665633c75383e000114684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002823203c7765696768743e202d20604f283129602c23203c2f7765696768743e387365745f686561705f7061676573040114706167657328010c753634000204f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646530011c5665633c75383e0003306453657420746865206e65772072756e74696d6520636f64652e002823203c7765696768743e31012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656045012d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e60207768696368206973342020657870656e73697665292e842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e4d0154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c7920746869732069732076657279b8657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e2c23203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b73040110636f646530011c5665633c75383e000424190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002823203c7765696768743e8c2d20604f2843296020776865726520604360206c656e677468206f662060636f646560842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e550154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c48626c6f636b2e2023203c2f7765696768743e2c7365745f73746f726167650401146974656d731d0201345665633c4b657956616c75653e0005046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973250201205665633c4b65793e000604744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697830010c4b657900011c7375626b65797310010c75333200071011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b30011c5665633c75383e000804a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e1d020000022102002102000004083030002502000002300029020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c6173732d0201845065724469737061746368436c6173733c57656967687473506572436c6173733e00002d020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454013102000c01186e6f726d616c310201045400012c6f7065726174696f6e616c31020104540001246d616e6461746f72793102010454000031020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963350201384f7074696f6e3c5765696768743e0001246d61785f746f74616c350201384f7074696f6e3c5765696768743e0001207265736572766564350201384f7074696f6e3c5765696768743e0000350204184f7074696f6e04045401200108104e6f6e6500000010536f6d65040020000001000039020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61783d0201545065724469737061746368436c6173733c7533323e00003d020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400004102082873705f776569676874733c52756e74696d65446257656967687400000801107265616428010c753634000114777269746528010c75363400004502082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d651502013452756e74696d65537472696e67000124696d706c5f6e616d651502013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069734902011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800004902040c436f77040454014d020004004d020000004d020000025102005102000004088901100055020c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657459020c4c706f6c6b61646f745f7072696d6974697665730876325c50657273697374656456616c69646174696f6e44617461080448012c044e01100010012c706172656e745f686561645d020120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f742c0104480001306d61785f706f765f73697a6510010c75333200005d020c48706f6c6b61646f745f70617261636861696e287072696d6974697665732048656164446174610000040030011c5665633c75383e0000610204184f7074696f6e0404540165020108104e6f6e6500000010536f6d6504006502000001000065020c4c706f6c6b61646f745f7072696d69746976657308763248557067726164655265737472696374696f6e0001041c50726573656e740000000069020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465736d02014442547265655365743c5665633c75383e3e00006d02042042547265655365740404540130000400250200000071020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f686561642c014472656c61795f636861696e3a3a4861736800016472656c61795f64697370617463685f71756575655f73697a65b40128287533322c2075333229000140696e67726573735f6368616e6e656c73750201885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73750201885665633c285061726149642c20416272696467656448726d704368616e6e656c293e0000750200000279020079020000040831017d02007d020c4c706f6c6b61646f745f7072696d6974697665730876324c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164290101304f7074696f6e3c486173683e000081020c4c706f6c6b61646f745f7072696d697469766573087632644162726964676564486f7374436f6e66696775726174696f6e00002401346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d62657200008502089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e000004002c012452656c61794861736800008902042042547265654d617008044b01310104560185020004008d020000008d020000029102009102000004083101850200950200000299020099020860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401310100080124726563697069656e743101010849640001106461746130015073705f7374643a3a7665633a3a5665633c75383e00009d020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f6461746104011064617461a102015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653001345570776172644d65737361676500010044617574686f72697a655f75706772616465040124636f64655f686173682c011c543a3a4861736800020060656e6163745f617574686f72697a65645f75706772616465040110636f646530011c5665633c75383e000300042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ea102089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174615902015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174656902015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d65737361676573a502016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573ad0201a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000a502000002a90200a9020860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736730013c446f776e776172644d6573736167650000ad02042042547265654d617008044b013101045601b102000400b902000000b102000002b50200b5020860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746130015073705f7374643a3a7665633a3a5665633c75383e0000b902000002bd0200bd02000004083101b10200c1020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041501417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e675050726f686962697465644279506f6c6b61646f740001044901506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733877696c6c696e6720746f2072756e6856616c69646174696f6e446174614e6f74417661696c61626c65000304190154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404250154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909c502101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454012c045300000400090201185665633c543e0000c9020c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77240124543a3a4d6f6d656e7400004054536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002823203c7765696768743e31012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ecd02101c73705f636f72651c626f756e646564407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401d102045300000400d90201185665633c543e0000d102083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964890101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73d502011c526561736f6e730000d502083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000d902000002d10200dd02101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401e102045300000400e50201185665633c543e0000e102083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e7469666965720189011c42616c616e6365011800080108696489010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000e502000002e10200e902083c70616c6c65745f62616c616e6365732052656c65617365730001081856315f305f300000001856325f305f3000010000ed020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e7366657208011064657374f10201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756559010128543a3a42616c616e6365000064d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002823203c7765696768743e61012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e842d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d11012d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e2c23203c2f7765696768743e2c7365745f62616c616e63650c010c77686ff10201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f6672656559010128543a3a42616c616e63650001306e65775f726573657276656459010128543a3a42616c616e636500012090536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c3101616c736f20616c7465722074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e6365602920617070726f7072696174656c792e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e38666f7263655f7472616e736665720c0118736f75726365f10201504163636f756e7449644c6f6f6b75704f663c543e00011064657374f10201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756559010128543a3a42616c616e63650002184d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e2823203c7765696768743e4d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e2c23203c2f7765696768743e4c7472616e736665725f6b6565705f616c69766508011064657374f10201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756559010128543a3a42616c616e63650003184d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374f10201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665c00110626f6f6c00044405015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fc820206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e2023203c7765696768743e39012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e302020233c2f7765696768743e3c666f7263655f756e7265736572766508010c77686ff10201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef1020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e646578019c011408496404000001244163636f756e74496400000014496e6465780400f50201304163636f756e74496e6465780001000c526177040030011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400550101205b75383b2032305d00040000f5020000069c00f9020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047442616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909fd020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800000103086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100000503101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401000453000004008801185665633c543e00000903101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454010d03045300000400110301185665633c543e00000d030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e6365000011030000020d030015030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000114447365745f696e76756c6e657261626c657304010c6e65778801445665633c543a3a4163636f756e7449643e000004bc53657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200010c11015365742074686520696465616c206e756d626572206f6620636f6c6c61746f727320286e6f7420696e636c7564696e672074686520696e76756c6e657261626c6573292e7d014966206c6f776572696e672074686973206e756d6265722c207468656e20746865206e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e9d0141736964652066726f6d2074686174206564676520636173652c2074686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f726520636f6c6c61746f7273207468616e207468652064657369726564206e756d6265722e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00020478536574207468652063616e64696461637920626f6e6420616d6f756e742e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041855014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e005d01546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f7720604d696e43616e64696461746573602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e19030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400012844546f6f4d616e7943616e646964617465730000044c546f6f206d616e792063616e6469646174657340546f6f46657743616e6469646174657300010448546f6f206665772063616e646964617465731c556e6b6e6f776e00020434556e6b6e6f776e206572726f72285065726d697373696f6e000304405065726d697373696f6e20697373756540416c726561647943616e6469646174650004046c5573657220697320616c726561647920612063616e646964617465304e6f7443616e6469646174650005045c55736572206973206e6f7420612063616e64696461746550546f6f4d616e79496e76756c6e657261626c657300060458546f6f206d616e7920696e76756c6e657261626c65734c416c7265616479496e76756c6e657261626c650007047c5573657220697320616c726561647920616e20496e76756c6e657261626c655c4e6f4173736f63696174656456616c696461746f724964000804984163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049445856616c696461746f724e6f74526567697374657265640009048856616c696461746f72204944206973206e6f7420796574207265676973746572656404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909091d03101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454012103045300000400290301185665633c543e00002103084470616c6c65745f617574686f727368697038556e636c65456e7472794974656d0c2c426c6f636b4e756d62657201101048617368012c18417574686f72010001083c496e636c7573696f6e486569676874040010012c426c6f636b4e756d62657200000014556e636c6508002c0110486173680000250301384f7074696f6e3c417574686f723e00010000250304184f7074696f6e04045401000108104e6f6e6500000010536f6d65040000000001000029030000022103002d030c4470616c6c65745f617574686f72736869701870616c6c65741043616c6c040454000104287365745f756e636c65730401286e65775f756e636c6573310301385665633c543a3a4865616465723e0000046050726f76696465206120736574206f6620756e636c65732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e31030000023503003503102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680139030014012c706172656e745f686173682c0130486173683a3a4f75747075740001186e756d626572490101184e756d62657200012873746174655f726f6f742c0130486173683a3a4f757470757400013c65787472696e736963735f726f6f742c0130486173683a3a4f7574707574000118646967657374340118446967657374000039030c2873705f72756e74696d65187472616974732c426c616b6554776f323536000000003d030c4470616c6c65745f617574686f72736869701870616c6c6574144572726f7204045400011c48496e76616c6964556e636c65506172656e740000048854686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c726561647953657400010480556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c657300020440546f6f206d616e7920756e636c65732e3047656e65736973556e636c650003045454686520756e636c652069732067656e657369732e30546f6f48696768556e636c650004047c54686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c756465640005047854686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c65000604b454686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909094103000002450300450300000408004903004903084863656e747269667567655f72756e74696d652c53657373696f6e4b6579730000040110617572614d0301c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300004d03104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c6963000004005103013c737232353531393a3a5075626c6963000051030c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000550300000210005903000004085d0330005d030c1c73705f636f72651863727970746f244b65795479706549640000040040011c5b75383b20345d000061030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579734903011c543a3a4b65797300011470726f6f6630011c5665633c75383e000038e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e11012d20436f6d706c65786974793a20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a02d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b65797360802d204462526561647320706572206b65792069643a20604b65794f776e657260842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e2870757267655f6b657973000140c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e002823203c7765696768743e61012d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468a420206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a02d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e7460842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e65030c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e6903101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454014d030453000004006d0301185665633c543e00006d030000024d03007103084873705f636f6e73656e7375735f736c6f747310536c6f740000040028010c75363400007503000004080004007903083c70616c6c65745f6d756c7469736967204d756c74697369670c2c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100001001107768656e94015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c738801385665633c4163636f756e7449643e00007d030c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965738801445665633c543a3a4163636f756e7449643e00011063616c6c8103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000405101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002823203c7765696768743e19014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d442d204442205765696768743a204e6f6e65482d20506c75732043616c6c205765696768742c23203c2f7765696768743e2061735f6d756c74691401247468726573686f6c64a8010c7531360001446f746865725f7369676e61746f726965738801445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74950501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6c8103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f7765696768742001185765696768740001b45501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002823203c7765696768743e502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743abc202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dc0202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d482d20506c75732043616c6c205765696768742c23203c2f7765696768743e40617070726f76655f61735f6d756c74691401247468726573686f6c64a8010c7531360001446f746865725f7369676e61746f726965738801445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74950501844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f77656967687420011857656967687400028c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ab8202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dbc202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c23203c2f7765696768743e3c63616e63656c5f61735f6d756c74691001247468726573686f6c64a8010c7531360001446f746865725f7369676e61746f726965738801445665633c543a3a4163636f756e7449643e00012474696d65706f696e7494016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000368550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743af8202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e74fc202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e8103084863656e747269667567655f72756e74696d652c52756e74696d6543616c6c00018c1853797374656d0400190201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d04009d0201d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400c90201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003002042616c616e6365730400ed0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00140044436f6c6c61746f7253656c656374696f6e0400150301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e00470028417574686f727368697004002d0301bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417574686f72736869702c2052756e74696d653e001e001c53657373696f6e0400610301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e001f00204d756c746973696704007d0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e003c001450726f78790400850301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e003d001c5574696c69747904008d0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e003e00245363686564756c65720400ad0301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e003f001c436f756e63696c0400b50301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e00400024456c656374696f6e730400c10301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e732c2052756e74696d653e0041002444656d6f63726163790400c90301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e004200204964656e746974790400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e0043001c56657374696e6704007d0401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e00440020507265696d6167650400850401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e0045002054726561737572790400890401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e004600104665657304008d0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466565732c2052756e74696d653e005a0018416e63686f720400910401ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c416e63686f722c2052756e74696d653e005b0018436c61696d730400990401ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e005c00104e66747304009d0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e005d00184272696467650400ad0401ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4272696467652c2052756e74696d653e005e00244d6967726174696f6e0400b10401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d6967726174696f6e2c2052756e74696d653e005f003843726f77646c6f616e436c61696d0400d50401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43726f77646c6f616e436c61696d2c2052756e74696d653e0060003c43726f77646c6f616e5265776172640400f10401d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43726f77646c6f616e5265776172642c2052756e74696d653e00610018546f6b656e730400f50401ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546f6b656e732c2052756e74696d653e00620044436f6c6c61746f72416c6c6f776c6973740400f90401d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f72416c6c6f776c6973742c2052756e74696d653e0063002458636d7051756575650400fd0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e0078002c506f6c6b61646f7458636d0400010501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e00790020446d7051756575650400650501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446d7051756575652c2052756e74696d653e007b001c58546f6b656e730400690501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58546f6b656e732c2052756e74696d653e007c002c436861696e4272696467650400790501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436861696e4272696467652c2052756e74696d653e009600444f726d6c4173736574526567697374727904007d0501d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f726d6c417373657452656769737472792c2052756e74696d653e0098001c4f726d6c58636d0400910501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f726d6c58636d2c2052756e74696d653e0099000085030c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616cf10201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065890301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c8103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00002c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c6567617465f10201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065a40130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c6567617465f10201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065a40130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0041015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e74732063726561746564206279206070757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f74797065a40130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d626572000114696e646578a8010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e6572f10201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065a40130543a3a50726f787954797065000114696e646578a8010c75313600011868656967687449010138543a3a426c6f636b4e756d6265720001246578745f696e6465784901010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746f94607075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0039012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060707572656020746f206372656174652074686973206163636f756e742e39012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f206070757265602e2050726f6261626c79206030602eec2d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f206070757265602e29012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20607075726560207761732070726f6365737365642e35012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20607075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265dc6163636f756e742077686f7365206070757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616cf10201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f686173682c013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616cf10201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f686173682c013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465f10201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f686173682c013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c6567617465f10201504163636f756e7449644c6f6f6b75704f663c543e0001107265616cf10201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065890301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c8103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e890304184f7074696f6e04045401a40108104e6f6e6500000010536f6d650400a400000100008d030c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011414626174636804011463616c6c739103017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00004c7c53656e642061206261746368206f662064697370617463682063616c6c732e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e646578a8010c75313600011063616c6c8103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c739103017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000238ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e2c64697370617463685f617308012461735f6f726967696e95030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c8103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000328c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002823203c7765696768743e1c2d204f2831292e602d204c696d697465642073746f726167652072656164732e5c2d204f6e6520444220777269746520286576656e74292e1d012d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b20543a3a576569676874496e666f3a3a64697370617463685f617328292e2c23203c2f7765696768743e2c666f7263655f626174636804011463616c6c739103017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004387c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e91030000028103009503084863656e747269667567655f72756e74696d65304f726967696e43616c6c65720001141873797374656d0400990301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c04009d0301010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e0040002c506f6c6b61646f7458636d0400a103014870616c6c65745f78636d3a3a4f726967696e0079002843756d756c757358636d0400a503016863756d756c75735f70616c6c65745f78636d3a3a4f726967696e007a0010566f69640400a90301110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f69640004000099030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009d03084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000a1030c2870616c6c65745f78636d1870616c6c6574184f726967696e0001080c58636d04003d0101344d756c74694c6f636174696f6e00000020526573706f6e736504003d0101344d756c74694c6f636174696f6e00010000a5030c4863756d756c75735f70616c6c65745f78636d1870616c6c6574184f726967696e0001081452656c6179000000405369626c696e6750617261636861696e04003101011850617261496400010000a903081c73705f636f726510566f696400010000ad030c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963b10301a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c8103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000470416e6f6e796d6f75736c79207363686564756c652061207461736b2e1863616e63656c0801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001049443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963b10301a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c8103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000204585363686564756c652061206e616d6564207461736b2e3063616e63656c5f6e616d656404010869640401205461736b4e616d650003047843616e63656c2061206e616d6564207363686564756c6564207461736b2e387363686564756c655f61667465721001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963b10301a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c8103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000414a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002823203c7765696768743e5453616d65206173205b607363686564756c65605d2e2c23203c2f7765696768743e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963b10301a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c8103017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000514905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002823203c7765696768743ec453616d65206173205b607363686564756c655f6e616d6564605d2853656c663a3a7363686564756c655f6e616d6564292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb10304184f7074696f6e04045401b40108104e6f6e6500000010536f6d650400b40000010000b5030c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c08045400044900011c2c7365745f6d656d626572730c012c6e65775f6d656d626572738801445665633c543a3a4163636f756e7449643e0001147072696d65250301504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000080805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c8103017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e644901010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c644901012c4d656d626572436f756e7400012070726f706f73616c8103017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e644901010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c2c011c543a3a48617368000114696e6465784901013450726f706f73616c496e64657800011c617070726f7665c00110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e40636c6f73655f6f6c645f77656967687410013470726f706f73616c5f686173682c011c543a3a48617368000114696e6465784901013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64b90301244f6c645765696768740001306c656e6774685f626f756e644901010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f686173682c011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f686173682c011c543a3a48617368000114696e6465784901013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642001185765696768740001306c656e6774685f626f756e644901010c7533320006804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb903000006bd0300bd03082873705f77656967687473244f6c645765696768740000040028010c7536340000c1030c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c65741043616c6c04045400011810766f7465080114766f7465738801445665633c543a3a4163636f756e7449643e00011476616c75655901013042616c616e63654f663c543e00005c5901566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe07365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e005d0155706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e742069734d0172657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e004c5468652060766f746573602073686f756c643a4420202d206e6f7420626520656d7074792e550120202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e6411012020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e0049014966206076616c756560206973206d6f7265207468616e206077686f60277320667265652062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e6700550149742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865a86c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002823203c7765696768743e5101576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e2c23203c2f7765696768743e3072656d6f76655f766f7465720001146c52656d6f766520606f726967696e60206173206120766f7465722e00b8546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00fc546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e64696461637904013c63616e6469646174655f636f756e744901010c75333200023c11015375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e005d01416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702ccc6f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e67005d014576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5901746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002823203c7765696768743e0901546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e4872656e6f756e63655f63616e64696461637904012872656e6f756e63696e67c503012852656e6f756e63696e670003484d0152656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c3c6f7574636f6d65732065786973743a0049012d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f02020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e61012d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e648c20206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e55012d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e2069735501202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e6101202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795901202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c207468653420206e65787420726f756e642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002823203c7765696768743ee05468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e3472656d6f76655f6d656d6265720c010c77686ff10201504163636f756e7449644c6f6f6b75704f663c543e000128736c6173685f626f6e64c00110626f6f6c000138726572756e5f656c656374696f6ec00110626f6f6c000448590152656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f667c746865206f7574676f696e67206d656d62657220697320736c61736865642e005501496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c616365732074686555016f7574676f696e67206d656d6265722e204f74686572776973652c2069662060726572756e5f656c656374696f6e60206973206074727565602c2061206e65772070687261676d656e20656c656374696f6e2069737c737461727465642c20656c73652c206e6f7468696e672068617070656e732e00590149662060736c6173685f626f6e64602069732073657420746f20747275652c2074686520626f6e64206f6620746865206d656d626572206265696e672072656d6f76656420697320736c61736865642e20456c73652c3c69742069732072657475726e65642e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0041014e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002823203c7765696768743e5101496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e2c23203c2f7765696768743e50636c65616e5f646566756e63745f766f746572730801286e756d5f766f7465727310010c75333200012c6e756d5f646566756e637410010c7533320005284501436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865ac6465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e0001015468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002823203c7765696768743e5d0154686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ec503086470616c6c65745f656c656374696f6e735f70687261676d656e2852656e6f756e63696e6700010c184d656d6265720000002052756e6e657255700001002443616e64696461746504004901010c75333200020000c9030c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c0404540001481c70726f706f736508012070726f706f73616ccd030140426f756e64656443616c6c4f663c543e00011476616c75655901013042616c616e63654f663c543e0000249c50726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e001501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737480686176652066756e647320746f20636f76657220746865206465706f7369742e00d42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e15012d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e0044456d697473206050726f706f736564602e187365636f6e6404012070726f706f73616c4901012450726f70496e646578000118b45369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e64657211016d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00c82d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e10766f74650801247265665f696e6465784901013c5265666572656e64756d496e646578000110766f7465d801644163636f756e74566f74653c42616c616e63654f663c543e3e00021c3101566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00dc2d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e40656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e6465780003204d015363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d652c7265666572656e64756d2e00f8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d02d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e003c5765696768743a20604f283129602e4065787465726e616c5f70726f706f736504012070726f706f73616ccd030140426f756e64656443616c6c4f663c543e0004182d015363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c2c7265666572656e64756d2e00e8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e6465787465726e616c5f70726f706f73655f6d616a6f7269747904012070726f706f73616ccd030140426f756e64656443616c6c4f663c543e00052c55015363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c655c616e2065787465726e616c207265666572656e64756d2e00ec546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c7404012070726f706f73616ccd030140426f756e64656443616c6c4f663c543e00062c45015363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f807363686564756c6520616e2065787465726e616c207265666572656e64756d2e00e8546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f2831296028666173745f747261636b0c013470726f706f73616c5f686173682c011048323536000134766f74696e675f706572696f64100138543a3a426c6f636b4e756d62657200011464656c6179100138543a3a426c6f636b4e756d6265720007404d015363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c65646101696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65e8627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d0546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e5d012d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f88094d75737420626520616c776179732067726561746572207468616e207a65726f2e350109466f72206046617374547261636b4f726967696e60206d75737420626520657175616c206f722067726561746572207468616e206046617374547261636b566f74696e67506572696f64602e51012d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265b82020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e0040456d697473206053746172746564602e00385765696768743a20604f28312960347665746f5f65787465726e616c04013470726f706f73616c5f686173682c011048323536000824b85665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00d8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e002d012d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e003c456d69747320605665746f6564602e00fc5765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d0401247265665f696e6465784901013c5265666572656e64756d496e64657800091c5052656d6f76652061207265666572656e64756d2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d42d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004423205765696768743a20604f283129602e2064656c65676174650c0108746ff10201504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6ed5030128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000a50390144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72590120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c69646174656494202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c6567617465000b30cc556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64dc6f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e0050456d6974732060556e64656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c73000c1470436c6561727320616c6c207075626c69632070726f706f73616c732e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e003c5765696768743a20604f283129602e18756e6c6f636b040118746172676574f10201504163636f756e7449644c6f6f6b75704f663c543e000d1ca0556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00b82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e646578000e6c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e000c49663a882d20746865207265666572656e64756d207761732063616e63656c6c65642c206f727c2d20746865207265666572656e64756d206973206f6e676f696e672c206f72902d20746865207265666572656e64756d2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e00a849662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465887265676973746572656420666f72207265666572656e64756d2060696e646578602e00f42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465080118746172676574f10201504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c5265666572656e64756d496e646578000f3c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c5501656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e004d012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f725420207265666572656e64756d2060696e646578602ef42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e24626c61636b6c69737408013470726f706f73616c5f686173682c01104832353600013c6d617962655f7265665f696e646578d903015c4f7074696f6e3c5265666572656e64756d496e6465783e00103c45015065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e673c70726f706f73656420616761696e2e00510149662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e67510172656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c687468656e2069742077696c6c2062652063616e63656c6c65642e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00f82d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e45012d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652863616e63656c6c65642e0041015765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d65206974206861732061502020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c04012870726f705f696e6465784901012450726f70496e64657800111c4852656d6f766520612070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d02d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e45765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e282960042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ecd0310346672616d655f737570706f72741874726169747324707265696d616765731c426f756e646564040454018103010c184c6567616379040110686173682c01104861736800000018496e6c696e650400d1030134426f756e646564496e6c696e65000100184c6f6f6b7570080110686173682c01104861736800010c6c656e10010c75333200020000d103101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e0000d5030c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000d90304184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000dd030c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c04045400013c346164645f72656769737472617204011c6163636f756e74f10201504163636f756e7449644c6f6f6b75704f663c543e0000347841646420612072656769737472617220746f207468652073797374656d2e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00a82d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e0094456d6974732060526567697374726172416464656460206966207375636365737366756c2e002823203c7765696768743e25012d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e307365745f6964656e74697479040110696e666fe10301a4426f783c4964656e74697479496e666f3c543a3a4d61784164646974696f6e616c4669656c64733e3e00014c290153657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e005501496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e7450666f7220746865206e6577206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e008c2d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e0088456d69747320604964656e7469747953657460206966207375636365737366756c2e002823203c7765696768743e442d20604f2858202b205827202b205229601d0120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e64656429802d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e21012d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e207365745f7375627304011073756273690401645665633c28543a3a4163636f756e7449642c2044617461293e0002548c53657420746865207375622d6163636f756e7473206f66207468652073656e6465722e0055015061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e65642d01616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e00b02d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002823203c7765696768743e302d20604f2850202b20532960e420202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e842d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e142d2044423adc20202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029bc20202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e2c23203c2f7765696768743e38636c6561725f6964656e746974790003483901436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00ec5061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e0098456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002823203c7765696768743e402d20604f2852202b2053202b20582960cc20202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e210120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e882d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ec82d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e44726571756573745f6a756467656d656e740801247265675f696e64657849010138526567697374726172496e64657800011c6d61785f6665655901013042616c616e63654f663c543e00045c94526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e0055015061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e7418676976656e2e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e001d012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e55012d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a00306060606e6f636f6d70696c65b853656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e6665650c60606000a4456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e302d204f6e65206576656e742e2c23203c2f7765696768743e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005446843616e63656c20612070726576696f757320726571756573742e00f85061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e0045012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00ac456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e882d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e2c2d204f6e65206576656e742c23203c2f7765696768743e1c7365745f666565080114696e64657849010138526567697374726172496e64657800010c6665655901013042616c616e63654f663c543e0006341901536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e542d2060666565603a20746865206e6577206665652e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e387365745f6163636f756e745f6964080114696e64657849010138526567697374726172496e64657800010c6e6577f10201504163636f756e7449644c6f6f6b75704f663c543e000734bc4368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e702d20606e6577603a20746865206e6577206163636f756e742049442e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee02d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e287365745f6669656c6473080114696e64657849010138526567697374726172496e6465780001186669656c6473710401384964656e746974794669656c6473000834a853657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e0d012d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e4470726f766964655f6a756467656d656e741001247265675f696e64657849010138526567697374726172496e646578000118746172676574f10201504163636f756e7449644c6f6f6b75704f663c543e0001246a756467656d656e747904015c4a756467656d656e743c42616c616e63654f663c543e3e0001206964656e746974792c011c543a3a48617368000950b850726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b06f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e0021012d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e55012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e49012d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e49012d20606964656e74697479603a205468652068617368206f6620746865205b604964656e74697479496e666f605d20666f72207468617420746865206a756467656d656e742069732070726f76696465642e0094456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e842d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e942d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e302d204f6e65206576656e742e2c23203c2f7765696768743e346b696c6c5f6964656e74697479040118746172676574f10201504163636f756e7449644c6f6f6b75704f663c543e000a4c410152656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e0061015061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c6564206279450160536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c6564806d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e0055012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e0094456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002823203c7765696768743e442d20604f2852202b2053202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e702d206053202b2032602073746f72616765206d75746174696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e1c6164645f73756208010c737562f10201504163636f756e7449644c6f6f6b75704f663c543e00011064617461ed03011044617461000b1cac4164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656e616d655f73756208010c737562f10201504163636f756e7449644c6f6f6b75704f663c543e00011064617461ed03011044617461000c10cc416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656d6f76655f73756204010c737562f10201504163636f756e7449644c6f6f6b75704f663c543e000d1cc052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e20717569745f737562000e288c52656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b4746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265643c73757065722d6964656e746974792e0045014e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d1101636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e04704964656e746974792070616c6c6574206465636c61726174696f6e2ee1030c3c70616c6c65745f6964656e74697479147479706573304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616ce5030190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c6179ed030110446174610001146c6567616ced0301104461746100010c776562ed0301104461746100011072696f74ed03011044617461000114656d61696ced0301104461746100013c7067705f66696e6765727072696e74650401404f7074696f6e3c5b75383b2032305d3e000114696d616765ed0301104461746100011c74776974746572ed030110446174610000e503101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401e903045300000400610401185665633c543e0000e90300000408ed03ed0300ed030c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e6500000010526177300400f1030000010010526177310400f5030000020010526177320400f9030000030010526177330400fd030000040010526177340400400000050010526177350400010400000600105261773604000504000007001052617737040009040000080010526177380400890100000900105261773904000d0400000a001452617731300400110400000b001452617731310400150400000c001452617731320400190400000d0014526177313304001d0400000e001452617731340400210400000f00145261773135040025040000100014526177313604001d0100001100145261773137040029040000120014526177313804002d0400001300145261773139040031040000140014526177323004005501000015001452617732310400350400001600145261773232040039040000170014526177323304003d040000180014526177323404004104000019001452617732350400450400001a001452617732360400490400001b0014526177323704004d0400001c001452617732380400510400001d001452617732390400550400001e001452617733300400590400001f0014526177333104005d0400002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c53686154687265653235360400040000250000f103000003000000000800f503000003010000000800f903000003020000000800fd030000030300000008000104000003050000000800050400000306000000080009040000030700000008000d0400000309000000080011040000030a000000080015040000030b000000080019040000030c00000008001d040000030d000000080021040000030e000000080025040000030f000000080029040000031100000008002d040000031200000008003104000003130000000800350400000315000000080039040000031600000008003d040000031700000008004104000003180000000800450400000319000000080049040000031a00000008004d040000031b000000080051040000031c000000080055040000031d000000080059040000031e00000008005d040000031f00000008006104000002e90300650404184f7074696f6e0404540155010108104e6f6e6500000010536f6d6504005501000001000069040000026d04006d040000040800ed030071040c3c70616c6c65745f6964656e7469747914747970657320426974466c6167730404540175040004002801344964656e746974794669656c64000075040c3c70616c6c65745f6964656e74697479147479706573344964656e746974794669656c640001201c446973706c6179000100144c6567616c0002000c5765620004001052696f7400080014456d61696c0010003850677046696e6765727072696e7400200014496d6167650040001c547769747465720080000079040c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f7573000600007d040c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000034b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20322052656164732c203220577269746573f8202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745dfc202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d2c23203c2f7765696768743e28766573745f6f74686572040118746172676574f10201504163636f756e7449644c6f6f6b75704f663c543e00013cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c203320577269746573f0202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f4202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c23203c2f7765696768743e3c7665737465645f7472616e73666572080118746172676574f10201504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65810401a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00024464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c2033205772697465733901202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d3d01202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d2c23203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c0118736f75726365f10201504163636f756e7449644c6f6f6b75704f663c543e000118746172676574f10201504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65810401a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00034860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20342052656164732c2034205772697465733101202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e743501202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e742c23203c2f7765696768743e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e81040c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d626572000085040c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000110346e6f74655f707265696d616765040114627974657330011c5665633c75383e000010745265676973746572206120707265696d616765206f6e2d636861696e2e00550149662074686520707265696d616765207761732070726576696f75736c79207265717565737465642c206e6f2066656573206f72206465706f73697473206172652074616b656e20666f722070726f766964696e67550174686520707265696d6167652e204f74686572776973652c2061206465706f7369742069732074616b656e2070726f706f7274696f6e616c20746f207468652073697a65206f662074686520707265696d6167652e3c756e6e6f74655f707265696d616765040110686173682c011c543a3a48617368000118dc436c65617220616e20756e72657175657374656420707265696d6167652066726f6d207468652072756e74696d652073746f726167652e00fc496620606c656e602069732070726f76696465642c207468656e2069742077696c6c2062652061206d7563682063686561706572206f7065726174696f6e2e0001012d206068617368603a205468652068617368206f662074686520707265696d61676520746f2062652072656d6f7665642066726f6d207468652073746f72652eb82d20606c656e603a20546865206c656e677468206f662074686520707265696d616765206f66206068617368602e40726571756573745f707265696d616765040110686173682c011c543a3a48617368000210410152657175657374206120707265696d6167652062652075706c6f6164656420746f2074686520636861696e20776974686f757420706179696e6720616e792066656573206f72206465706f736974732e00550149662074686520707265696d6167652072657175657374732068617320616c7265616479206265656e2070726f7669646564206f6e2d636861696e2c20776520756e7265736572766520616e79206465706f7369743901612075736572206d6179206861766520706169642c20616e642074616b652074686520636f6e74726f6c206f662074686520707265696d616765206f7574206f662074686569722068616e64732e48756e726571756573745f707265696d616765040110686173682c011c543a3a4861736800030cbc436c65617220612070726576696f75736c79206d616465207265717565737420666f72206120707265696d6167652e002d014e4f54453a2054484953204d555354204e4f542042452043414c4c4544204f4e20606861736860204d4f52452054494d4553205448414e2060726571756573745f707265696d616765602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e89040c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001143470726f706f73655f7370656e6408011476616c75655901013c42616c616e63654f663c542c20493e00012c62656e6566696369617279f10201504163636f756e7449644c6f6f6b75704f663c543e000024290150757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c75653101697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e6365207468655070726f706f73616c20697320617761726465642e002823203c7765696768743e482d20436f6d706c65786974793a204f283129b02d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460e82d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e74602c23203c2f7765696768743e3c72656a6563745f70726f706f73616c04012c70726f706f73616c5f69644901013450726f706f73616c496e646578000124f852656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002823203c7765696768743e482d20436f6d706c65786974793a204f283129cc2d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d02d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e74602c23203c2f7765696768743e40617070726f76655f70726f706f73616c04012c70726f706f73616c5f69644901013450726f706f73616c496e6465780002285901417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e4c2d20436f6d706c65786974793a204f2831292e8c2d20446252656164733a206050726f706f73616c73602c2060417070726f76616c7360582d20446257726974653a2060417070726f76616c73602c23203c2f7765696768743e147370656e64080118616d6f756e745901013c42616c616e63654f663c542c20493e00012c62656e6566696369617279f10201504163636f756e7449644c6f6f6b75704f663c543e000320b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e004d012d20606f726967696e603a204d75737420626520605370656e644f726967696e60207769746820746865206053756363657373602076616c7565206265696e67206174206c656173742060616d6f756e74602e41012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602ee82d206062656e6566696369617279603a205468652064657374696e6174696f6e206163636f756e7420666f7220746865207472616e736665722e0045014e4f54453a20466f72207265636f72642d6b656570696e6720707572706f7365732c207468652070726f706f736572206973206465656d656420746f206265206571756976616c656e7420746f207468653062656e65666963696172792e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f69644901013450726f706f73616c496e64657800043c2d01466f72636520612070726576696f75736c7920617070726f7665642070726f706f73616c20746f2062652072656d6f7665642066726f6d2074686520617070726f76616c2071756575652ec0546865206f726967696e616c206465706f7369742077696c6c206e6f206c6f6e6765722062652072657475726e65642e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602ea02d206070726f706f73616c5f6964603a2054686520696e646578206f6620612070726f706f73616c002823203c7765696768743edc2d20436f6d706c65786974793a204f2841292077686572652060416020697320746865206e756d626572206f6620617070726f76616c73882d20446220726561647320616e64207772697465733a2060417070726f76616c73602c23203c2f7765696768743e001c4572726f72733a61012d206050726f706f73616c4e6f74417070726f766564603a20546865206070726f706f73616c5f69646020737570706c69656420776173206e6f7420666f756e6420696e2074686520617070726f76616c2071756575652c5101692e652e2c207468652070726f706f73616c20686173206e6f74206265656e20617070726f7665642e205468697320636f756c6420616c736f206d65616e207468652070726f706f73616c20646f6573206e6f745901657869737420616c746f6765746865722c2074687573207468657265206973206e6f2077617920697420776f756c642068617665206265656e20617070726f76656420696e2074686520666972737420706c6163652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e8d040c2c70616c6c65745f666565731870616c6c65741043616c6c0404540001041c7365745f66656508010c6b6579f40124543a3a4665654b657900010c66656518013042616c616e63654f663c543e000004745365742074686520676976656e2066656520666f7220746865206b6579042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e91040c3870616c6c65745f616e63686f72731870616c6c65741043616c6c040454000110287072655f636f6d6d6974080124616e63686f725f69642c011c543a3a486173680001307369676e696e675f726f6f742c011c543a3a4861736800003c3d014f627461696e7320616e206578636c7573697665206c6f636b20746f206d616b6520746865206e6578742075706461746520746f2061206365727461696e20646f63756d656e742076657273696f6e41016964656e7469666965642062792060616e63686f725f696460206f6e2043656e7472696675676520703270206e6574776f726b20666f722061206e756d626572206f6620626c6f636b7320676976656e55016279205b605052455f434f4d4d49545f45585049524154494f4e5f4455524154494f4e5f424c4f434b53605d2076616c75652e20607369676e696e675f726f6f74602069732061206368696c64206e6f6465206f664501746865206f66662d636861696e206d65726b6c652074726565206f66207468617420646f63756d656e742e20496e2043656e747269667567652070726f746f636f6c2c206120646f63756d656e742069735501636f6d6d6974746564206f6e6c79206166746572207265616368696e6720636f6e73656e737573207769746820746865206f7468657220636f6c6c61626f7261746f7273206f6e2074686520646f63756d656e742e3d01436f6e73656e73757320697320726561636865642062792067657474696e6720612063727970746f67726170686963207369676e61747572652066726f6d206f746865722070617274696573206279610173656e64696e67207468656d2074686520607369676e696e675f726f6f74602e20546f2064656e792074686520636f756e7465722d7061727479207468652066726565206f7074696f6e206f66207075626c697368696e674d01697473206f776e20737461746520636f6d6d69746d656e742075706f6e20726563656976696e672061207265717565737420666f72207369676e61747572652c20746865206e6f64652063616e2066697273743d017075626c6973682061207072652d636f6d6d69742e204f6e6c7920746865207072652d636f6d6d6974746572206163636f756e7420696e207468652043656e7472696675676520636861696e2069733501616c6c6f77656420746f2060636f6d6d697460206120636f72726573706f6e64696e6720616e63686f72206265666f726520746865207072652d636f6d6d69742068617320657870697265642edc536f6d652066756e647320617265207265736572766564206f6e20612073756363657366756c207072652d636f6d6d69742063616c6c2e410154686573652066756e6473206172652072657475726e656420746f207468652073616d65206163636f756e7420616674657220612073756363657366756c205b60636f6d6d69742829605d2063616c6c39016f72206578706c69636974656c79206966206576696374696e6720746865207072652d636f6d6d6974732062792063616c6c696e67205b6065766963745f7072655f636f6d6d6974732829605d2ed0466f722061206d6f72652064657461696c6564206578706c616e6174696f6e2072656665722073656374696f6e20332e34206f6689015b43656e747269667567652050726f746f636f6c2050617065725d2868747470733a2f2f737461746963772e63656e747269667567652e696f2f6173736574732f63656e747269667567655f6f735f70726f746f636f6c5f70617065722e7064662918636f6d6d6974100148616e63686f725f69645f707265696d6167652c011c543a3a48617368000120646f635f726f6f742c011c543a3a4861736800011470726f6f662c011c543a3a4861736800014473746f7265645f756e74696c5f64617465280124543a3a4d6f6d656e7400012c6101436f6d6d69747320612060646f63756d656e745f726f6f7460206f662061206d65726b6c697a6564206f666620636861696e20646f63756d656e7420696e2043656e7472696675676520703270206e6574776f726b2061733101746865206c61746573742076657273696f6e2069642860616e63686f725f69646029206f627461696e65642062792068617368696e672060616e63686f725f69645f707265696d616765602e290149662061207072652d636f6d6d69742065786973747320666f7220746865206f627461696e65642060616e63686f725f6964602c2068617368206f66207072652d636f6d6d6974746564dc607369676e696e675f726f6f74202b2070726f6f6660206d757374206d617463682074686520676976656e2060646f635f726f6f74602e5901416e79207072652d636f6d6d69747465642064617461206973206175746f6d61746963616c6c792072656d6f766564206f6e20612073756363657366756c20636f6d6d697420616e6420746865207265736572766564f466756e64732066726f6d205b607072655f636f6d6d69742829605d206172652072657475726e656420746f207468652073616d65206163636f756e742e78546f2061766f696420737461746520626c6f6174206f6e20636861696e2c290174686520636f6d6d697474656420616e63686f7220776f756c6420626520657669637465642061667465722074686520676976656e206073746f7265645f756e74696c5f64617465602e21015468652063616c6c696e67206163636f756e7420776f756c642062652063686172676564206163636f7264696e676c7920666f72207468652073746f7261676520706572696f642ed0466f722061206d6f72652064657461696c6564206578706c616e6174696f6e2072656665722073656374696f6e20332e34206f6689015b43656e747269667567652050726f746f636f6c2050617065725d2868747470733a2f2f737461746963772e63656e747269667567652e696f2f6173736574732f63656e747269667567655f6f735f70726f746f636f6c5f70617065722e706466294465766963745f7072655f636f6d6d697473040128616e63686f725f696473950401e4426f756e6465645665633c543a3a486173682c20436f6e73745533323c45564943545f5052455f434f4d4d49545f4c4953545f53495a453e3e00020c3901496e69746961746573206576696374696f6e206f66207072652d636f6d6d697473207468617420686173206578706972656420676976656e2061206c697374206f6e20616e63686f72206964732e2501466f7220656163682065766963746564207072652d636f6d6d6974732c20746865206465706f73697420686f6c646564206279205b607072655f636f6d6d69742829605d2063616c6cf477696c6c2062652072657475726e656420746f207468652073616d65206163636f756e742074686174206d616465206974206f726967696e616c6c792e3465766963745f616e63686f72730003106901496e69746961746573206576696374696f6e206f66206578706972656420616e63686f72732e2053696e636520616e63686f7273206172652073746f726564206f6e2061206368696c64207472696520696e646578656420627955017468656972206576696374696f6e20646174652c207768617420746869732066756e6374696f6e20646f657320697320746f2072656d6f76652074686f7365206368696c64207472696573207768696368206861735901646174655f726570726573656e7465645f62795f726f6f74203c2063757272656e745f646174652e204164646974696f6e616c6c79206974206e6565647320746f2074616b652063617265206f6620696e646578657305016372656174656420666f7220616363657373696e6720616e63686f72732c2065673a20746f2066696e6420616e20616e63686f7220676976656e20616e2069642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e9504101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454012c045300000400090201185665633c543e000099040c3470616c6c65745f636c61696d731870616c6c65741043616c6c04045400010c14636c61696d0c01286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000134736f727465645f686173686573090201305665633c543a3a486173683e000014c8436c61696d7320746f6b656e732061776172646564207468726f7567682054696e6c616b6520696e766573746d656e74732e002823203c7765696768743e602d204261736564206f6e20686173686573206c656e6774682c23203c2f7765696768743e487365745f75706c6f61645f6163636f756e740401286163636f756e745f6964000130543a3a4163636f756e744964000118190141646d696e2066756e6374696f6e207468617420736574732074686520616c6c6f7765642075706c6f6164206163636f756e7420746f2061646420726f6f74206861736865738c436f6e74726f6c6c656420627920637573746f6d206f726967696e206f7220726f6f74002823203c7765696768743e902d204261736564206f6e206f726967696e20636865636b20616e64207772697465206f702c23203c2f7765696768743e3c73746f72655f726f6f745f68617368040124726f6f745f686173682c011c543a3a48617368000214e053746f72657320726f6f74206861736820666f7220636f72726573706f6e64656e7420636c61696d204d65726b6c6520747265652072756e002823203c7765696768743e902d204261736564206f6e206f726967696e20636865636b20616e64207772697465206f702c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e9d040c2870616c6c65745f6e66741870616c6c65741043616c6c0404540001043476616c69646174655f6d696e74140124616e63686f725f69642c013c53797374656d486173684f663c543e00013c6465706f7369745f61646472657373550101384465706f7369744164647265737300011870726f6f6673a10401985665633c50726f6f663c486173686572486173684f663c42756e646c654861736865723e3e3e0001347374617469635f70726f6f6673a90401a4466978656441727261793c486173686572486173684f663c42756e646c654861736865723e2c20333e00011c646573745f69640801583c5420617320436f6e6669673e3a3a436861696e4964000020590156616c696461746573207468652070726f6f66732070726f766964656420616761696e73742074686520646f63756d656e7420726f6f74206173736f63696174656420776974682074686520616e63686f725f69642e69014f6e6365207468652070726f6f6673206172652076657269666965642c2077652063726561746520612062756e646c6564206861736820286465706f7369745f61646472657373202b205b70726f6f665b695d2e686173685d29250142756e646c65642048617368206973206465706f736974656420746f20616e204465706f7369744173736574206576656e7420666f72206272696467696e6720707572706f7365732e000d0141646473206164646974696f6e616c2066656520746f20636f6d70656e73617465207468652063757272656e7420636f7374206f662074617267657420636861696e732823203c7765696768743e682d20646570656e6473206f6e2074686520617267756d656e74732c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ea104000002a50400a504081870726f6f66731450726f6f66041048617368012c000801246c6561665f686173682c011048617368000134736f727465645f686173686573090201245665633c486173683e0000a904000003030000002c00ad040c3470616c6c65745f6272696467651870616c6c65741043616c6c04045400010c3c7472616e736665725f6e61746976650c0118616d6f756e7418013042616c616e63654f663c543e000124726563697069656e7430011c5665633c75383e00011c646573745f696408011c436861696e496400000485015472616e736665727320736f6d6520616d6f756e74206f6620746865206e617469766520746f6b656e20746f20736f6d6520726563697069656e74206f6e2061202877686974656c6973746564292064657374696e6174696f6e20636861696e2e207472616e736665720c0108746f0001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000110725f69640401285265736f7572636549640001043d01457865637574657320612073696d706c652063757272656e6379207472616e73666572207573696e672074686520636861696e627269646765206163636f756e742061732074686520736f757263651872656d61726b080110686173682c01843c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a48617368000110725f69640401285265736f7572636549640002045d01546869732063616e2062652063616c6c65642062792074686520636861696e62726964676520746f2064656d6f6e73747261746520616e206172626974726172792063616c6c2066726f6d20612070726f706f73616c2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb1040c6070616c6c65745f6d6967726174696f6e5f6d616e616765721870616c6c65741043616c6c040454000114586d6967726174655f73797374656d5f6163636f756e740401206163636f756e74731d02015c5665633c285665633c75383e2c205665633c75383e293e00001cd44d6967726174696e6720746865204163636f756e7420696e666f726d6174696f6e732066726f6d206672616d655f73797374656d2e00bd01546869732063616c6c2074616b65732074686520726177207363616c6520656e636f646564206b657920283d2070617472696369612d6b657920666f722065616368206163636f756e7420696e2074686520604163636f756e74602073746f7261676520616e6420696e736572747329017468652070726f7669646564207363616c6520656e636f6465642076616c756520283d20604163636f756e74496e666f602920696e746f2074686520756e6465726c79696e672044422e00d1014e6f74653a2041732077652061726520636f6e76657274696e672066726f6d207375627374726174652d763220746f207375627374726174652d7633207765206d75737420646f20747970652d636f6e76657273696f6e732e2054686f736520636f6e76657273696f6e732061726520646f6e65286f66662d636861696e2e646d6967726174655f62616c616e6365735f69737375616e636504014c6164646974696f6e616c5f69737375616e6365180128543a3a42616c616e63650001147c4d696772617465732061207468652060546f74616c49737375616e6365602e0059015468652070726f766964652062616c616e636520686572652c2077696c6c20626520414444454420746f20746865206578697374696e672060546f74616c49737375616e636560206f66207468652073797374656d2e7d0143616c6c65792062657474657220626520737572652c20746861742074686520746f74616c2069737375616e6365206d617463686573207468652061637475616c20746f74616c2069737375616e636520696e207468652073797374656d2c45017768696368206d65616e732c20746861742074686520604163636f756e74496e666f602066726f6d20746865206672616d655f73797374656d206973206d6967726174656420616674657277617264732e5c6d6967726174655f76657374696e675f76657374696e6704012076657374696e6773b50401f85665633c28543a3a4163636f756e7449642c2056657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e293e000210b04d696772617465732076657374696e6720696e666f726d6174696f6e20746f20746869732073797374656d2e007501546865206056657374696e67496e666f602069732061646170746564206f66662d636861696e2c20736f207468617420697420726570726573656e74732074686520636f72726563742076657374696e6720696e666f726d6174696f6e386f6e207468697320636861696e2e546d6967726174655f70726f78795f70726f7869657304011c70726f78696573bd04011d065665633c0a28543a3a4163636f756e7449642c3c3c542061732070616c6c65745f70726f78793a3a436f6e6669673e3a3a43757272656e63792061730a6672616d655f737570706f72743a3a7472616974733a3a43757272656e63793c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a0a4163636f756e7449642c3e3e3a3a42616c616e63652c0a28426f756e6465645665633c50726f7879446566696e6974696f6e3c543a3a4163636f756e7449642c20543a3a50726f7879547970652c20543a3a0a426c6f636b4e756d6265723e2c3c542061732070616c6c65745f70726f78793a3a436f6e6669673e3a3a4d617850726f786965732c3e2c3c3c542061730a70616c6c65745f70726f78793a3a436f6e6669673e3a3a43757272656e6379206173206672616d655f737570706f72743a3a7472616974733a3a43757272656e63793c0a3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c3e3e3a3a42616c616e63652c292c293e000314c44d6967726174657320746f206050726f78696573602073746f726167652066726f6d20616e6f7468657220636861696e2e009d01417320746865206050726f78696573602073746f72616765206368616e676564206265747765656e20763220616e642076332c2061207472616e73666f726d6174696f6e20666f7220746865207632206461746120697320646f6e65206f66662d636861696e2ea10154686520696e70757420646566696e657320616e206172726179206f66206f66207475706c65732c2077686572652065616368207475706c6520646566696e65732c207468652070726f78696564206163636f756e742c2074686520726573657276652074686174f86d75737420626520646f6e65206f6e2074686973206163636f756e7420616e64207468652070726f7869657320666f722074686973206163636f756e742e2066696e616c697a65000404a455706461746520746865206d6967726174696f6e2073746174757320746f2060436f6d706c65746560042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb504000002b90400b9040000040800810400bd04000002c10400c1040000040c0018c50400c50400000408c9041800c904101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401cd04045300000400d10401185665633c543e0000cd04083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f78795479706501a42c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f74797065a4012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000d104000002cd0400d5040c5870616c6c65745f63726f77646c6f616e5f636c61696d1870616c6c65741043616c6c04045400011c30636c61696d5f72657761726414015472656c6179636861696e5f6163636f756e745f6964000158543a3a52656c6179436861696e4163636f756e74496400015070617261636861696e5f6163636f756e745f696400015c50617261636861696e4163636f756e7449644f663c543e0001386964656e746974795f70726f6f66d90401384d756c74695369676e6174757265000148636f6e747269627574696f6e5f70726f6f66a504013850726f6f663c543a3a486173683e000130636f6e747269627574696f6e180128543a3a42616c616e636500000864436c61696d20666f72206120726577617264207061796f75740028696e697469616c697a65140134636f6e747269627574696f6e732c0134526f6f74486173684f663c543e0001246c6f636b65645f6174100138543a3a426c6f636b4e756d626572000114696e64657810012454726965496e64657800012c6c656173655f7374617274100138543a3a426c6f636b4e756d6265720001306c656173655f706572696f64100138543a3a426c6f636b4e756d62657200012c6c496e697469616c697a652074686520636c61696d2070616c6c6574002501546869732061646d696e6973747261746976652066756e6374696f6e206973207573656420746f207472616e7366657220746865206c697374206f6620636f6e7472696275746f72731d01616e64207468656972207265737065637469766520636f6e747269627574696f6e732c2073746f7265642061732061206368696c64207472696520726f6f74206861736820696ed9017468652072656c617920636861696e2773205b6063726f77646c6f616e605d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742f626c6f622f726f636f636f2d76312f72756e74696d652f636f6d6d6f6e2f7372632f63726f77646c6f616e2e727329a870616c6c65742c20746f205b60436f6e747269627574696f6e73605d2073746f72616765206974656d2ef854686973207472616e73616374696f6e2063616e206f6e6c792062652063616c6c6564207669612061207369676e6564207472616e73616374696f6e732e4501546865205b60636f6e747269627574696f6e73605d20706172616d6574657220636f6e7461696e73207468652068617368206f66207468652063726f77646c6f616e2070616c6c65742773206368696c6449017472696520726f6f742e204974206973206c61746572207573656420666f722070726f76696e672074686174206120636f6e7472696275746f72206566666563746976656c7920636f6e74726962757465644101746f207468652063726f77646c6f616e2063616d706169676e2c20616e6420746861742074686520616d6f756e74206f662074686520636f6e747269627574696f6e20697320636f72726563742061731477656c6c2e3c7365745f6c656173655f73746172740401147374617274100138543a3a426c6f636b4e756d6265720002048853657420746865207374617274206f6620746865206c6561736520706572696f642e407365745f6c656173655f706572696f64040118706572696f64100138543a3a426c6f636b4e756d6265720003045453657420746865206c6561736520706572696f642e587365745f636f6e747269627574696f6e735f726f6f74040110726f6f742c0134526f6f74486173684f663c543e00041045015365742074686520726f6f742d68617368206f66207468652072656c61792d636861696e2c207765206c6f636b6564207468652072656c61792d636861696e20636f6e747269627574696f6e732061742e0011015468697320726f6f742d68617368204d5553542062652074686520726f6f742d68617368206f66207468652072656c61792d636861696e2061742074686520626c6f636b2d017765206c6f636b65642061742e205468697320726f6f742d686173682077696c6c206265207573656420746f207665726966792070726f6f6673206f6620636f6e747269627574696f6e2e347365745f6c6f636b65645f61740401246c6f636b65645f6174100138543a3a426c6f636b4e756d626572000518f85365742074686520626c6f636b206f66207468652072656c6179206174207768696368207765206c6f636b2074686520636f6e747269627574696f6e732e00190154686973206d65616e732c207468617420616c6c2067656e6572617465642070726f6f6673204d5553542067656e6572617465207468652070726f6f66206f662074686569721101636f6e747269627574696f6e206174207468697320626c6f636b2c206173206f74686572776973652074686520726f6f742d686173682077652073746f726520686572651d0177696c6c206e6f7420626520666f756e6420696e207468652067656e6572617465642070726f6f66206f662074686520636f6e7472696275746f722c2077686963682077696c6c846c65616420746f20612072656a656374696f6e206f66207468652070726f6f662e607365745f63726f77646c6f616e5f747269655f696e646578040128747269655f696e64657810012454726965496e6465780006147c5365742074686520696e646578206f66207468652063726f77646c6f616e2e0055015468697320696e64657820636f6d65732066726f6d207468652072656c61792d636861696e2063726f77646c6f616e2070616c6c65742e204d6f7265207370656369666963616c6c792c207468697320696e6465783d016973207573656420746f206465726976652074686520696e7465726e616c207061747269636961206b657920696e7369646520746865206368696c6420747269652e2054686520696e646578206973f473746f72656420696e20746865206046756e64496e666f60206f66207468652072656c617920636861696e2063726f77646c6f616e2070616c6c65742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed904082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400dd040148656432353531393a3a5369676e61747572650000001c537232353531390400e5040148737232353531393a3a5369676e61747572650001001445636473610400e904014065636473613a3a5369676e617475726500020000dd040c1c73705f636f72651c65643235353139245369676e617475726500000400e10401205b75383b2036345d0000e104000003400000000800e5040c1c73705f636f72651c73723235353139245369676e617475726500000400e10401205b75383b2036345d0000e9040c1c73705f636f7265146563647361245369676e617475726500000400ed0401205b75383b2036355d0000ed04000003410000000800f1040c5c70616c6c65745f63726f77646c6f616e5f7265776172641870616c6c65741043616c6c04045400011028696e697469616c697a650c014c6469726563745f7061796f75745f726174696f1101011c50657262696c6c00013876657374696e675f706572696f64100138543a3a426c6f636b4e756d62657200013476657374696e675f7374617274100138543a3a426c6f636b4e756d626572000004f041206f6e2063616c6c20696e69742e204261736963616c6c79206120636f6d706f736974696f6e206f662074686520736574746572732062656c6f77447365745f76657374696e675f73746172740401147374617274100138543a3a426c6f636b4e756d6265720001049053657420746865207374617274206f66207468652076657374696e6720706572696f642e487365745f76657374696e675f706572696f64040118706572696f64100138543a3a426c6f636b4e756d6265720002204c5365742076657374696e6720706572696f642e000d01546869732061646d696e697374726174697665207472616e73616374696f6e20616c6c6f777320746f206d6f64696679207468652076657374696e6720706572696f640901616674657220612070726576696f7573205b60696e697469616c697a65605d207472616e73616374696f6e207761732074726967676572656420696e206f72646572a0746f20706572666f726d2073656d696e616c2070616c6c657420636f6e66696775726174696f6e2e0020232320456d6974734c55706461746556657374696e67506572696f645c7365745f6469726563745f7061796f75745f726174696f040114726174696f1101011c50657262696c6c000314e44d6f646966792074686520726174696f206265747765656e2076657374656420616e6420646972656374207061796f757420616d6f756e742e00dc546869732061646d696e6973747261746976652066756e6374696f6e20616c6c6f777320746f206d6f646966792074686520726174696fe06265747765656e2076657374656420616e6420646972656374207061796f757420616d6f756e74206166746572207468652070616c6c6574f477617320696e697469616c697a65642076696120612063616c6c20746f20746865205b60696e697469616c697a65605d207472616e73616374696f6e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef5040c6070616c6c65745f726573747269637465645f746f6b656e731870616c6c65741043616c6c040454000114207472616e736665720c011064657374f102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f696419010134543a3a43757272656e63794964000118616d6f756e7459010128543a3a42616c616e63650000004c7472616e736665725f6b6565705f616c6976650c011064657374f102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f696419010134543a3a43757272656e63794964000118616d6f756e7459010128543a3a42616c616e6365000100307472616e736665725f616c6c0c011064657374f102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f696419010134543a3a43757272656e637949640001286b6565705f616c697665c00110626f6f6c00020038666f7263655f7472616e73666572100118736f75726365f102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011064657374f102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f696419010134543a3a43757272656e63794964000118616d6f756e7459010128543a3a42616c616e63650003002c7365745f62616c616e636510010c77686ff102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f696419010134543a3a43757272656e637949640001206e65775f6672656559010128543a3a42616c616e63650001306e65775f726573657276656459010128543a3a42616c616e6365000400042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef9040c6470616c6c65745f636f6c6c61746f725f616c6c6f776c6973741870616c6c65741043616c6c0404540001080c61646404012c636f6c6c61746f725f6964000138543a3a56616c696461746f724964000014b44164642074686520676976656e2060636f6c6c61746f725f69646020746f2074686520616c6c6f776c6973742e204661696c73206966a820202d20606f726967696e60206661696c73207468652060656e737572655f726f6f746020636865636b150120202d2060636f6c6c61746f725f69646020646964206e6f7420796574206c6f6164207468656972206b65797320696e746f207468652073657373696f6e2070616c6c6574c820202d2060636f6c6c61746f725f69646020697320616c72656164792070617274206f662074686520616c6c6f776c6973741872656d6f766504012c636f6c6c61746f725f6964000138543a3a56616c696461746f724964000110a852656d6f766520612060636f6c6c61746f725f6964602066726f6d2074686520616c6c6f776c6973742e204661696c73206966a820202d20606f726967696e60206661696c73207468652060656e737572655f726f6f746020636865636bb820202d2060636f6c6c61746f725f696460206973206e6f742070617274206f662074686520616c6c6f776c697374042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632efd040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c04045400012448736572766963655f6f766572776569676874080114696e64657828013c4f766572776569676874496e6465780001307765696768745f6c696d697428012458636d57656967687400003484536572766963657320612073696e676c65206f7665727765696768742058434d2e00c02d20606f726967696e603a204d75737420706173732060457865637574654f7665727765696768744f726967696e602ed42d2060696e646578603a2054686520696e646578206f6620746865206f7665727765696768742058434d20746f20736572766963650d012d20607765696768745f6c696d6974603a2054686520616d6f756e74206f662077656967687420746861742058434d20657865637574696f6e206d61792074616b652e001c4572726f72733a5d012d20604261644f766572776569676874496e646578603a2058434d20756e6465722060696e64657860206973206e6f7420666f756e6420696e2074686520604f766572776569676874602073746f72616765206d61702e45012d206042616458636d603a2058434d20756e6465722060696e646578602063616e6e6f742062652070726f7065726c79206465636f64656420696e746f20612076616c69642058434d20666f726d61742e09012d20605765696768744f7665724c696d6974603a2058434d20657865637574696f6e206d617920757365206772656174657220607765696768745f6c696d6974602e001c4576656e74733a8c2d20604f7665727765696768745365727669636564603a204f6e20737563636573732e5473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031499014f76657277726974657320746865206e756d626572206f66207061676573206f66206d65737361676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626520746f6c6420746f5873757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041495014f76657277726974657320746865206e756d626572206f66207061676573206f66206d65737361676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e792066757274686572686d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c75333200051491014f76657277726974657320746865206e756d626572206f66207061676573206f66206d6573736167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c732074686174ec6d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c64605c7570646174655f7468726573686f6c645f77656967687404010c6e657728012458636d57656967687400061049014f7665727772697465732074686520616d6f756e74206f662072656d61696e696e672077656967687420756e6465722077686963682077652073746f702070726f63657373696e67206d657373616765732e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e7468726573686f6c645f77656967687460707570646174655f7765696768745f72657374726963745f646563617904010c6e657728012458636d57656967687400071445014f7665727772697465732074686520737065656420746f2077686963682074686520617661696c61626c652077656967687420617070726f616368657320746865206d6178696d756d207765696768742ea50141206c6f776572206e756d62657220726573756c747320696e2061206661737465722070726f6772657373696f6e2e20412076616c7565206f662031206d616b65732074686520656e746972652077656967687420617661696c61626c6520696e697469616c6c792e00742d20606f726967696e603a204d75737420706173732060526f6f74602e0d012d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e7765696768745f72657374726963745f6465636179602e847570646174655f78636d705f6d61785f696e646976696475616c5f77656967687404010c6e657728012458636d57656967687400081429014f766572777269746520746865206d6178696d756d20616d6f756e74206f662077656967687420616e7920696e646976696475616c206d657373616765206d617920636f6e73756d652e71014d657373616765732061626f766520746869732077656967687420676f20696e746f20746865206f76657277656967687420717565756520616e64206d6179206f6e6c79206265207365727669636564206578706c696369746c792e00742d20606f726967696e603a204d75737420706173732060526f6f74602e21012d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e78636d705f6d61785f696e646976696475616c5f776569676874602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e01050c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001281073656e6408011064657374c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00011c6d65737361676505050154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00012c62656e6566696369617279c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000118617373657473b5010164426f783c56657273696f6e65644d756c74694173736574733e0001386665655f61737365745f6974656d10010c75333200013c110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e8d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c2050617261636861696e282e2e29296020746f2073656e645901202066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e642066726f6d2072656c617920746f2070617261636861696e2e89012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c2067656e6572616c6c79206265642020616e20604163636f756e7449643332602076616c75652ead012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546865206669727374206974656d2073686f756c64206265207468652063757272656e6379207573656420746f20746f207061792074686520666565206f6e2074686580202060646573746020736964652e204d6179206e6f7420626520656d7074792e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00012c62656e6566696369617279c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000118617373657473b5010164426f783c56657273696f6e65644d756c74694173736574733e0001386665655f61737365745f6974656d10010c7533320002404d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f2074686520736f7665726569676e206163636f756e74206f6620612064657374696e6174696f6e94636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e8d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c2050617261636861696e282e2e29296020746f2073656e645901202066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e642066726f6d2072656c617920746f2070617261636861696e2e89012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c2067656e6572616c6c79206265642020616e20604163636f756e7449643332602076616c75652e85012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f207061792074686520666565206f6e2074686538202060646573746020736964652e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765310501c0426f783c56657273696f6e656458636d3c3c5420617320537973436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f77656967687428012458636d57656967687400032cd04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e006d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e2074686559016d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f20657865637574696f6e54617474656d70742077696c6c206265206d6164652e006d014e4f54453a2041207375636365737366756c2072657475726e20746f207468697320646f6573202a6e6f742a20696d706c7920746861742074686520606d73676020776173206578656375746564207375636365737366756c6c79cc746f20636f6d706c6574696f6e3b206f6e6c792074686174202a736f6d652a206f66206974207761732065786563757465642e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6e3d010148426f783c4d756c74694c6f636174696f6e3e00012c78636d5f76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00642d20606f726967696e603a204d75737420626520526f6f742ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6ed90301484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00642d20606f726967696e603a204d75737420626520526f6f742e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ec901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00642d20606f726967696e603a204d75737420626520526f6f742e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ec901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00642d20606f726967696e603a204d75737420626520526f6f742e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00012c62656e6566696369617279c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000118617373657473b5010164426f783c56657273696f6e65644d756c74694173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d6974ad01012c5765696768744c696d69740008484d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f2074686520736f7665726569676e206163636f756e74206f6620612064657374696e6174696f6e94636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e64206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e8d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c2050617261636861696e282e2e29296020746f2073656e645901202066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e642066726f6d2072656c617920746f2070617261636861696e2e89012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c2067656e6572616c6c79206265642020616e20604163636f756e7449643332602076616c75652e85012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f207061792074686520666565206f6e2074686538202060646573746020736964652e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00012c62656e6566696369617279c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000118617373657473b5010164426f783c56657273696f6e65644d756c74694173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d6974ad01012c5765696768744c696d6974000944110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e64206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e8d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c2050617261636861696e282e2e29296020746f2073656e645901202066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e642066726f6d2072656c617920746f2070617261636861696e2e89012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c2067656e6572616c6c79206265642020616e20604163636f756e7449643332602076616c75652ead012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546865206669727374206974656d2073686f756c64206265207468652063757272656e6379207573656420746f20746f207061792074686520666565206f6e2074686580202060646573746020736964652e204d6179206e6f7420626520656d7074792e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0505080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563004000905015076303a3a58636d3c52756e74696d6543616c6c3e00000008563104001d05015076313a3a58636d3c52756e74696d6543616c6c3e00010008563204006501015076323a3a58636d3c52756e74696d6543616c6c3e0002000009050c0c78636d0876300c58636d042c52756e74696d6543616c6c00012c3457697468647261774173736574080118617373657473b901013c5665633c4d756c746941737365743e00011c656666656374730d05015c5665633c4f726465723c52756e74696d6543616c6c3e3e0000004c5265736572766541737365744465706f736974080118617373657473b901013c5665633c4d756c746941737365743e00011c656666656374730d05015c5665633c4f726465723c52756e74696d6543616c6c3e3e0001003454656c65706f72744173736574080118617373657473b901013c5665633c4d756c746941737365743e00011c656666656374730d05015c5665633c4f726465723c52756e74696d6543616c6c3e3e000200345175657279526573706f6e736508012071756572795f696424010c753634000120726573706f6e736519050120526573706f6e7365000300345472616e736665724173736574080118617373657473b901013c5665633c4d756c746941737365743e00011064657374c10101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473b901013c5665633c4d756c746941737365743e00011064657374c10101344d756c74694c6f636174696f6e00011c656666656374730d0501385665633c4f726465723c28293e3e000500205472616e736163740c012c6f726967696e5f74797065990101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c9d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465724901010c7533320001406d61785f6d6573736167655f73697a654901010c7533320001306d61785f63617061636974794901010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e744901010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f724901010c75333200011873656e6465724901010c753332000124726563697069656e744901010c7533320009002c52656c6179656446726f6d08010c77686fc10101344d756c74694c6f636174696f6e00011c6d6573736167650905018c616c6c6f633a3a626f7865643a3a426f783c58636d3c52756e74696d6543616c6c3e3e000a00000d050000021105001105100c78636d087630146f72646572144f72646572042c52756e74696d6543616c6c000120104e756c6c000000304465706f7369744173736574080118617373657473b901013c5665633c4d756c746941737365743e00011064657374c10101344d756c74694c6f636174696f6e0001004c4465706f7369745265736572766541737365740c0118617373657473b901013c5665633c4d756c746941737365743e00011064657374c10101344d756c74694c6f636174696f6e00011c656666656374730d0501385665633c4f726465723c28293e3e0002003445786368616e6765417373657408011067697665b901013c5665633c4d756c746941737365743e00011c72656365697665b901013c5665633c4d756c746941737365743e0003005c496e6974696174655265736572766557697468647261770c0118617373657473b901013c5665633c4d756c746941737365743e00011c72657365727665c10101344d756c74694c6f636174696f6e00011c656666656374730d0501385665633c4f726465723c28293e3e00040040496e69746961746554656c65706f72740c0118617373657473b901013c5665633c4d756c746941737365743e00011064657374c10101344d756c74694c6f636174696f6e00011c656666656374730d0501385665633c4f726465723c28293e3e000500305175657279486f6c64696e670c012071756572795f696424010c75363400011064657374c10101344d756c74694c6f636174696f6e000118617373657473b901013c5665633c4d756c746941737365743e00060030427579457865637574696f6e14011066656573bd0101284d756c7469417373657400011877656967687428010c7536340001106465627428010c75363400013468616c745f6f6e5f6572726f72c00110626f6f6c00010c78636d150501545665633c58636d3c52756e74696d6543616c6c3e3e00070000150500000209050019050c0c78636d08763020526573706f6e7365000104184173736574730400b901013c5665633c4d756c746941737365743e000000001d050c0c78636d0876310c58636d042c52756e74696d6543616c6c00013434576974686472617741737365740801186173736574737101012c4d756c746941737365747300011c656666656374732105015c5665633c4f726465723c52756e74696d6543616c6c3e3e000000545265736572766541737365744465706f73697465640801186173736574737101012c4d756c746941737365747300011c656666656374732105015c5665633c4f726465723c52756e74696d6543616c6c3e3e000100585265636569766554656c65706f7274656441737365740801186173736574737101012c4d756c746941737365747300011c656666656374732105015c5665633c4f726465723c52756e74696d6543616c6c3e3e000200345175657279526573706f6e736508012071756572795f696424010c753634000120726573706f6e73652d050120526573706f6e7365000300345472616e7366657241737365740801186173736574737101012c4d756c746941737365747300012c62656e65666963696172793d0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737101012c4d756c7469417373657473000110646573743d0101344d756c74694c6f636174696f6e00011c65666665637473210501385665633c4f726465723c28293e3e000500205472616e736163740c012c6f726967696e5f74797065990101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c9d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465724901010c7533320001406d61785f6d6573736167655f73697a654901010c7533320001306d61785f63617061636974794901010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e744901010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f724901010c75333200011873656e6465724901010c753332000124726563697069656e744901010c7533320009002c52656c6179656446726f6d08010c77686f41010154496e746572696f724d756c74694c6f636174696f6e00011c6d6573736167651d05018c616c6c6f633a3a626f7865643a3a426f783c58636d3c52756e74696d6543616c6c3e3e000a004053756273637269626556657273696f6e08012071756572795f696424010c75363400014c6d61785f726573706f6e73655f77656967687424010c753634000b0048556e73756273637269626556657273696f6e000c000021050000022505002505100c78636d087631146f72646572144f72646572042c52756e74696d6543616c6c000120104e6f6f70000000304465706f73697441737365740c0118617373657473a10101404d756c7469417373657446696c7465720001286d61785f61737365747310010c75333200012c62656e65666963696172793d0101344d756c74694c6f636174696f6e0001004c4465706f736974526573657276654173736574100118617373657473a10101404d756c7469417373657446696c7465720001286d61785f61737365747310010c753332000110646573743d0101344d756c74694c6f636174696f6e00011c65666665637473210501385665633c4f726465723c28293e3e0002003445786368616e6765417373657408011067697665a10101404d756c7469417373657446696c74657200011c726563656976657101012c4d756c74694173736574730003005c496e6974696174655265736572766557697468647261770c0118617373657473a10101404d756c7469417373657446696c74657200011c726573657276653d0101344d756c74694c6f636174696f6e00011c65666665637473210501385665633c4f726465723c28293e3e00040040496e69746961746554656c65706f72740c0118617373657473a10101404d756c7469417373657446696c746572000110646573743d0101344d756c74694c6f636174696f6e00011c65666665637473210501385665633c4f726465723c28293e3e000500305175657279486f6c64696e670c012071756572795f696424010c753634000110646573743d0101344d756c74694c6f636174696f6e000118617373657473a10101404d756c7469417373657446696c74657200060030427579457865637574696f6e14011066656573790101284d756c7469417373657400011877656967687428010c7536340001106465627428010c75363400013468616c745f6f6e5f6572726f72c00110626f6f6c000130696e737472756374696f6e73290501545665633c58636d3c52756e74696d6543616c6c3e3e0007000029050000021d05002d050c0c78636d08763120526573706f6e73650001081841737365747304007101012c4d756c74694173736574730000001c56657273696f6e040010013873757065723a3a56657273696f6e000100003105080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563004003505015076303a3a58636d3c52756e74696d6543616c6c3e00000008563104004905015076313a3a58636d3c52756e74696d6543616c6c3e00010008563204005905015076323a3a58636d3c52756e74696d6543616c6c3e0002000035050c0c78636d0876300c58636d042c52756e74696d6543616c6c00012c3457697468647261774173736574080118617373657473b901013c5665633c4d756c746941737365743e00011c656666656374733905015c5665633c4f726465723c52756e74696d6543616c6c3e3e0000004c5265736572766541737365744465706f736974080118617373657473b901013c5665633c4d756c746941737365743e00011c656666656374733905015c5665633c4f726465723c52756e74696d6543616c6c3e3e0001003454656c65706f72744173736574080118617373657473b901013c5665633c4d756c746941737365743e00011c656666656374733905015c5665633c4f726465723c52756e74696d6543616c6c3e3e000200345175657279526573706f6e736508012071756572795f696424010c753634000120726573706f6e736519050120526573706f6e7365000300345472616e736665724173736574080118617373657473b901013c5665633c4d756c746941737365743e00011064657374c10101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473b901013c5665633c4d756c746941737365743e00011064657374c10101344d756c74694c6f636174696f6e00011c656666656374730d0501385665633c4f726465723c28293e3e000500205472616e736163740c012c6f726967696e5f74797065990101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c45050168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465724901010c7533320001406d61785f6d6573736167655f73697a654901010c7533320001306d61785f63617061636974794901010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e744901010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f724901010c75333200011873656e6465724901010c753332000124726563697069656e744901010c7533320009002c52656c6179656446726f6d08010c77686fc10101344d756c74694c6f636174696f6e00011c6d6573736167653505018c616c6c6f633a3a626f7865643a3a426f783c58636d3c52756e74696d6543616c6c3e3e000a000039050000023d05003d05100c78636d087630146f72646572144f72646572042c52756e74696d6543616c6c000120104e756c6c000000304465706f7369744173736574080118617373657473b901013c5665633c4d756c746941737365743e00011064657374c10101344d756c74694c6f636174696f6e0001004c4465706f7369745265736572766541737365740c0118617373657473b901013c5665633c4d756c746941737365743e00011064657374c10101344d756c74694c6f636174696f6e00011c656666656374730d0501385665633c4f726465723c28293e3e0002003445786368616e6765417373657408011067697665b901013c5665633c4d756c746941737365743e00011c72656365697665b901013c5665633c4d756c746941737365743e0003005c496e6974696174655265736572766557697468647261770c0118617373657473b901013c5665633c4d756c746941737365743e00011c72657365727665c10101344d756c74694c6f636174696f6e00011c656666656374730d0501385665633c4f726465723c28293e3e00040040496e69746961746554656c65706f72740c0118617373657473b901013c5665633c4d756c746941737365743e00011064657374c10101344d756c74694c6f636174696f6e00011c656666656374730d0501385665633c4f726465723c28293e3e000500305175657279486f6c64696e670c012071756572795f696424010c75363400011064657374c10101344d756c74694c6f636174696f6e000118617373657473b901013c5665633c4d756c746941737365743e00060030427579457865637574696f6e14011066656573bd0101284d756c7469417373657400011877656967687428010c7536340001106465627428010c75363400013468616c745f6f6e5f6572726f72c00110626f6f6c00010c78636d410501545665633c58636d3c52756e74696d6543616c6c3e3e00070000410500000235050045050c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656430011c5665633c75383e000049050c0c78636d0876310c58636d042c52756e74696d6543616c6c00013434576974686472617741737365740801186173736574737101012c4d756c746941737365747300011c656666656374734d05015c5665633c4f726465723c52756e74696d6543616c6c3e3e000000545265736572766541737365744465706f73697465640801186173736574737101012c4d756c746941737365747300011c656666656374734d05015c5665633c4f726465723c52756e74696d6543616c6c3e3e000100585265636569766554656c65706f7274656441737365740801186173736574737101012c4d756c746941737365747300011c656666656374734d05015c5665633c4f726465723c52756e74696d6543616c6c3e3e000200345175657279526573706f6e736508012071756572795f696424010c753634000120726573706f6e73652d050120526573706f6e7365000300345472616e7366657241737365740801186173736574737101012c4d756c746941737365747300012c62656e65666963696172793d0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737101012c4d756c7469417373657473000110646573743d0101344d756c74694c6f636174696f6e00011c65666665637473210501385665633c4f726465723c28293e3e000500205472616e736163740c012c6f726967696e5f74797065990101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c45050168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465724901010c7533320001406d61785f6d6573736167655f73697a654901010c7533320001306d61785f63617061636974794901010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e744901010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f724901010c75333200011873656e6465724901010c753332000124726563697069656e744901010c7533320009002c52656c6179656446726f6d08010c77686f41010154496e746572696f724d756c74694c6f636174696f6e00011c6d6573736167654905018c616c6c6f633a3a626f7865643a3a426f783c58636d3c52756e74696d6543616c6c3e3e000a004053756273637269626556657273696f6e08012071756572795f696424010c75363400014c6d61785f726573706f6e73655f77656967687424010c753634000b0048556e73756273637269626556657273696f6e000c00004d050000025105005105100c78636d087631146f72646572144f72646572042c52756e74696d6543616c6c000120104e6f6f70000000304465706f73697441737365740c0118617373657473a10101404d756c7469417373657446696c7465720001286d61785f61737365747310010c75333200012c62656e65666963696172793d0101344d756c74694c6f636174696f6e0001004c4465706f736974526573657276654173736574100118617373657473a10101404d756c7469417373657446696c7465720001286d61785f61737365747310010c753332000110646573743d0101344d756c74694c6f636174696f6e00011c65666665637473210501385665633c4f726465723c28293e3e0002003445786368616e6765417373657408011067697665a10101404d756c7469417373657446696c74657200011c726563656976657101012c4d756c74694173736574730003005c496e6974696174655265736572766557697468647261770c0118617373657473a10101404d756c7469417373657446696c74657200011c726573657276653d0101344d756c74694c6f636174696f6e00011c65666665637473210501385665633c4f726465723c28293e3e00040040496e69746961746554656c65706f72740c0118617373657473a10101404d756c7469417373657446696c746572000110646573743d0101344d756c74694c6f636174696f6e00011c65666665637473210501385665633c4f726465723c28293e3e000500305175657279486f6c64696e670c012071756572795f696424010c753634000110646573743d0101344d756c74694c6f636174696f6e000118617373657473a10101404d756c7469417373657446696c74657200060030427579457865637574696f6e14011066656573790101284d756c7469417373657400011877656967687428010c7536340001106465627428010c75363400013468616c745f6f6e5f6572726f72c00110626f6f6c000130696e737472756374696f6e73550501545665633c58636d3c52756e74696d6543616c6c3e3e00070000550500000249050059050c0c78636d0876320c58636d042c52756e74696d6543616c6c000004005d0501745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00005d0500000261050061050c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007101012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007101012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007101012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f696424011c51756572794964000120726573706f6e73658d010120526573706f6e73650001286d61785f77656967687424010c753634000300345472616e7366657241737365740801186173736574737101012c4d756c746941737365747300012c62656e65666963696172793d0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737101012c4d756c7469417373657473000110646573743d0101344d756c74694c6f636174696f6e00010c78636d6501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065990101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424010c75363400011063616c6c45050168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465724901010c7533320001406d61785f6d6573736167655f73697a654901010c7533320001306d61785f63617061636974794901010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e744901010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f724901010c75333200011873656e6465724901010c753332000124726563697069656e744901010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040041010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f696424011c51756572794964000110646573743d0101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f77656967687424010c753634000c00304465706f73697441737365740c0118617373657473a10101404d756c7469417373657446696c7465720001286d61785f6173736574734901010c75333200012c62656e65666963696172793d0101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473a10101404d756c7469417373657446696c7465720001286d61785f6173736574734901010c753332000110646573743d0101344d756c74694c6f636174696f6e00010c78636d6501011c58636d3c28293e000e003445786368616e6765417373657408011067697665a10101404d756c7469417373657446696c74657200011c726563656976657101012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473a10101404d756c7469417373657446696c74657200011c726573657276653d0101344d756c74694c6f636174696f6e00010c78636d6501011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473a10101404d756c7469417373657446696c746572000110646573743d0101344d756c74694c6f636174696f6e00010c78636d6501011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f696424011c51756572794964000110646573743d0101344d756c74694c6f636174696f6e000118617373657473a10101404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f77656967687424010c75363400120030427579457865637574696f6e08011066656573790101284d756c746941737365740001307765696768745f6c696d6974ad01012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204005905014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804005905014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737101012c4d756c74694173736574730001187469636b65743d0101344d756c74694c6f636174696f6e0018001054726170040024010c7536340019004053756273637269626556657273696f6e08012071756572795f696424011c5175657279496400014c6d61785f726573706f6e73655f77656967687424010c753634001a0048556e73756273637269626556657273696f6e001b000065050c6063756d756c75735f70616c6c65745f646d705f71756575651870616c6c65741043616c6c04045400010448736572766963655f6f766572776569676874080114696e64657828013c4f766572776569676874496e6465780001307765696768745f6c696d697428012458636d576569676874000030905365727669636520612073696e676c65206f766572776569676874206d6573736167652e00c02d20606f726967696e603a204d75737420706173732060457865637574654f7665727765696768744f726967696e602ee82d2060696e646578603a2054686520696e646578206f6620746865206f766572776569676874206d65737361676520746f20736572766963652e1d012d20607765696768745f6c696d6974603a2054686520616d6f756e74206f66207765696768742074686174206d65737361676520657865637574696f6e206d61792074616b652e001c4572726f72733aac2d2060556e6b6e6f776e603a204d657373616765206f662060696e6465786020697320756e6b6e6f776e2e15012d20604f7665724c696d6974603a204d65737361676520657865637574696f6e206d6179207573652067726561746572207468616e20607765696768745f6c696d6974602e001c4576656e74733a8c2d20604f7665727765696768745365727669636564603a204f6e20737563636573732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e69050c306f726d6c5f78746f6b656e73186d6f64756c651043616c6c040454000118207472616e7366657210012c63757272656e63795f696419010134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e636500011064657374c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000144646573745f7765696768745f6c696d6974ad01012c5765696768744c696d69740000306c5472616e73666572206e61746976652063757272656e636965732e00fc60646573745f7765696768745f6c696d697460206973207468652077656967687420666f722058434d20657865637574696f6e206f6e2074686520646573740901636861696e2c20616e6420697420776f756c6420626520636861726765642066726f6d20746865207472616e73666572726564206173736574732e20496620736574050162656c6f7720726571756972656d656e74732c2074686520657865637574696f6e206d6179206661696c20616e642061737365747320776f756c646e27742062652472656365697665642e001101497427732061206e6f2d6f7020696620616e79206572726f72206f6e206c6f63616c2058434d20657865637574696f6e206f72206d6573736167652073656e64696e672ef84e6f74652073656e64696e6720617373657473206f75742070657220736520646f65736e27742067756172616e746565207468657920776f756c64206265110172656365697665642e20526563656976696e6720646570656e6473206f6e206966207468652058434d206d65737361676520636f756c642062652064656c697665726564dc627920746865206e6574776f726b2c20616e642069662074686520726563656976696e6720636861696e20776f756c642068616e646c654c6d6573736167657320636f72726563746c792e4c7472616e736665725f6d756c746961737365740c011461737365746d050160426f783c56657273696f6e65644d756c746941737365743e00011064657374c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000144646573745f7765696768745f6c696d6974ad01012c5765696768744c696d6974000130585472616e7366657220604d756c74694173736574602e00fc60646573745f7765696768745f6c696d697460206973207468652077656967687420666f722058434d20657865637574696f6e206f6e2074686520646573740901636861696e2c20616e6420697420776f756c6420626520636861726765642066726f6d20746865207472616e73666572726564206173736574732e20496620736574050162656c6f7720726571756972656d656e74732c2074686520657865637574696f6e206d6179206661696c20616e642061737365747320776f756c646e27742062652472656365697665642e001101497427732061206e6f2d6f7020696620616e79206572726f72206f6e206c6f63616c2058434d20657865637574696f6e206f72206d6573736167652073656e64696e672ef84e6f74652073656e64696e6720617373657473206f75742070657220736520646f65736e27742067756172616e746565207468657920776f756c64206265110172656365697665642e20526563656976696e6720646570656e6473206f6e206966207468652058434d206d65737361676520636f756c642062652064656c697665726564dc627920746865206e6574776f726b2c20616e642069662074686520726563656976696e6720636861696e20776f756c642068616e646c654c6d6573736167657320636f72726563746c792e447472616e736665725f776974685f66656514012c63757272656e63795f696419010134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e636500010c666565180128543a3a42616c616e636500011064657374c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000144646573745f7765696768745f6c696d6974ad01012c5765696768744c696d6974000254ec5472616e73666572206e61746976652063757272656e636965732073706563696679696e67207468652066656520616e6420616d6f756e742061732473657061726174652e00fc60646573745f7765696768745f6c696d697460206973207468652077656967687420666f722058434d20657865637574696f6e206f6e2074686520646573740901636861696e2c20616e6420697420776f756c6420626520636861726765642066726f6d20746865207472616e73666572726564206173736574732e20496620736574050162656c6f7720726571756972656d656e74732c2074686520657865637574696f6e206d6179206661696c20616e642061737365747320776f756c646e27742062652472656365697665642e000d0160666565602069732074686520616d6f756e7420746f206265207370656e7420746f2070617920666f7220657865637574696f6e20696e2064657374696e6174696f6ef8636861696e2e20426f74682066656520616e6420616d6f756e742077696c6c206265207375627472616374656420666f726d207468652063616c6c6572732062616c616e63652e000d014966206066656560206973206e6f74206869676820656e6f75676820746f20636f76657220666f722074686520657865637574696f6e20636f73747320696e20746865e464657374696e6174696f6e20636861696e2c207468656e20746865206173736574732077696c6c206265207472617070656420696e207468654464657374696e6174696f6e20636861696e001101497427732061206e6f2d6f7020696620616e79206572726f72206f6e206c6f63616c2058434d20657865637574696f6e206f72206d6573736167652073656e64696e672ef84e6f74652073656e64696e6720617373657473206f75742070657220736520646f65736e27742067756172616e746565207468657920776f756c64206265110172656365697665642e20526563656976696e6720646570656e6473206f6e206966207468652058434d206d65737361676520636f756c642062652064656c697665726564dc627920746865206e6574776f726b2c20616e642069662074686520726563656976696e6720636861696e20776f756c642068616e646c654c6d6573736167657320636f72726563746c792e707472616e736665725f6d756c746961737365745f776974685f66656510011461737365746d050160426f783c56657273696f6e65644d756c746941737365743e00010c6665656d050160426f783c56657273696f6e65644d756c746941737365743e00011064657374c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000144646573745f7765696768745f6c696d6974ad01012c5765696768744c696d697400035401015472616e7366657220604d756c74694173736574602073706563696679696e67207468652066656520616e6420616d6f756e742061732073657061726174652e00fc60646573745f7765696768745f6c696d697460206973207468652077656967687420666f722058434d20657865637574696f6e206f6e2074686520646573740901636861696e2c20616e6420697420776f756c6420626520636861726765642066726f6d20746865207472616e73666572726564206173736574732e20496620736574050162656c6f7720726571756972656d656e74732c2074686520657865637574696f6e206d6179206661696c20616e642061737365747320776f756c646e27742062652472656365697665642e00ec606665656020697320746865206d756c7469617373657420746f206265207370656e7420746f2070617920666f7220657865637574696f6e20696e090164657374696e6174696f6e20636861696e2e20426f74682066656520616e6420616d6f756e742077696c6c206265207375627472616374656420666f726d20746865110163616c6c6572732062616c616e636520466f72206e6f77207765206f6e6c79206163636570742066656520616e6420617373657420686176696e67207468652073616d654c604d756c74694c6f636174696f6e602069642e000d014966206066656560206973206e6f74206869676820656e6f75676820746f20636f76657220666f722074686520657865637574696f6e20636f73747320696e20746865e464657374696e6174696f6e20636861696e2c207468656e20746865206173736574732077696c6c206265207472617070656420696e207468654464657374696e6174696f6e20636861696e001101497427732061206e6f2d6f7020696620616e79206572726f72206f6e206c6f63616c2058434d20657865637574696f6e206f72206d6573736167652073656e64696e672ef84e6f74652073656e64696e6720617373657473206f75742070657220736520646f65736e27742067756172616e746565207468657920776f756c64206265110172656365697665642e20526563656976696e6720646570656e6473206f6e206966207468652058434d206d65737361676520636f756c642062652064656c697665726564dc627920746865206e6574776f726b2c20616e642069662074686520726563656976696e6720636861696e20776f756c642068616e646c654c6d6573736167657320636f72726563746c792e607472616e736665725f6d756c746963757272656e6369657310012863757272656e63696573710501805665633c28543a3a43757272656e637949642c20543a3a42616c616e6365293e0001206665655f6974656d10010c75333200011064657374c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000144646573745f7765696768745f6c696d6974ad01012c5765696768744c696d697400043c05015472616e73666572207365766572616c2063757272656e636965732073706563696679696e6720746865206974656d20746f20626520757365642061732066656500fc60646573745f7765696768745f6c696d697460206973207468652077656967687420666f722058434d20657865637574696f6e206f6e2074686520646573740901636861696e2c20616e6420697420776f756c6420626520636861726765642066726f6d20746865207472616e73666572726564206173736574732e20496620736574050162656c6f7720726571756972656d656e74732c2074686520657865637574696f6e206d6179206661696c20616e642061737365747320776f756c646e27742062652472656365697665642e000d01606665655f6974656d6020697320696e646578206f66207468652063757272656e63696573207475706c6520746861742077652077616e7420746f2075736520666f721c7061796d656e74001101497427732061206e6f2d6f7020696620616e79206572726f72206f6e206c6f63616c2058434d20657865637574696f6e206f72206d6573736167652073656e64696e672ef84e6f74652073656e64696e6720617373657473206f75742070657220736520646f65736e27742067756172616e746565207468657920776f756c64206265110172656365697665642e20526563656976696e6720646570656e6473206f6e206966207468652058434d206d65737361676520636f756c642062652064656c697665726564dc627920746865206e6574776f726b2c20616e642069662074686520726563656976696e6720636861696e20776f756c642068616e646c654c6d6573736167657320636f72726563746c792e507472616e736665725f6d756c7469617373657473100118617373657473b5010164426f783c56657273696f6e65644d756c74694173736574733e0001206665655f6974656d10010c75333200011064657374c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e000144646573745f7765696768745f6c696d6974ad01012c5765696768744c696d697400053c0d015472616e73666572207365766572616c20604d756c74694173736574602073706563696679696e6720746865206974656d20746f20626520757365642061732066656500fc60646573745f7765696768745f6c696d697460206973207468652077656967687420666f722058434d20657865637574696f6e206f6e2074686520646573740901636861696e2c20616e6420697420776f756c6420626520636861726765642066726f6d20746865207472616e73666572726564206173736574732e20496620736574050162656c6f7720726571756972656d656e74732c2074686520657865637574696f6e206d6179206661696c20616e642061737365747320776f756c646e27742062652472656365697665642e00f8606665655f6974656d6020697320696e646578206f6620746865204d756c746941737365747320746861742077652077616e7420746f2075736520666f721c7061796d656e74001101497427732061206e6f2d6f7020696620616e79206572726f72206f6e206c6f63616c2058434d20657865637574696f6e206f72206d6573736167652073656e64696e672ef84e6f74652073656e64696e6720617373657473206f75742070657220736520646f65736e27742067756172616e746565207468657920776f756c64206265110172656365697665642e20526563656976696e6720646570656e6473206f6e206966207468652058434d206d65737361676520636f756c642062652064656c697665726564dc627920746865206e6574776f726b2c20616e642069662074686520726563656976696e6720636861696e20776f756c642068616e646c654c6d6573736167657320636f72726563746c792e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6d05080c78636d4c56657273696f6e65644d756c746941737365740001080856300400bd01013876303a3a4d756c7469417373657400000008563104007901013876313a3a4d756c746941737365740001000071050000027505007505000004081901180079050c2c636861696e6272696467651870616c6c65741043616c6c040454000124347365745f7468726573686f6c640401247468726573686f6c6410010c75333200002098536574732074686520766f7465207468726573686f6c6420666f722070726f706f73616c732e00fc54686973207468726573686f6c64206973207573656420746f2064657465726d696e6520686f77206d616e7920766f74657320617265207265717569726564786265666f726520612070726f706f73616c2069732065786563757465642e002823203c7765696768743e602d204f283129206c6f6f6b757020616e6420696e736572742c23203c2f7765696768743e307365745f7265736f7572636508010869640401285265736f7572636549640001186d6574686f6430011c5665633c75383e000114f853746f7265732061206d6574686f64206e616d65206f6e20636861696e20756e64657220616e206173736f636961746564207265736f757263652049442e002823203c7765696768743e302d204f2831292077726974652c23203c2f7765696768743e3c72656d6f76655f7265736f7572636504010869640401285265736f757263654964000220c052656d6f7665732061207265736f757263652049442066726f6d20746865207265736f75726365206d617070696e672e001901416674657220746869732063616c6c2c20627269646765207472616e7366657273207769746820746865206173736f636961746564207265736f757263652049442077696c6c3062652072656a65637465642e002823203c7765696768743e382d204f2831292072656d6f76616c2c23203c2f7765696768743e3c77686974656c6973745f636861696e040108696408011c436861696e49640003141101456e61626c6573206120636861696e204944206173206120736f75726365206f722064657374696e6174696f6e20666f72206120627269646765207472616e736665722e002823203c7765696768743e602d204f283129206c6f6f6b757020616e6420696e736572742c23203c2f7765696768743e2c6164645f72656c6179657204010476000130543a3a4163636f756e74496400041498416464732061206e65772072656c6179657220746f207468652072656c61796572207365742e002823203c7765696768743e602d204f283129206c6f6f6b757020616e6420696e736572742c23203c2f7765696768743e3872656d6f76655f72656c617965720401286163636f756e745f6964000130543a3a4163636f756e744964000514a452656d6f76657320616e206578697374696e672072656c617965722066726f6d20746865207365742e002823203c7765696768743e642d204f283129206c6f6f6b757020616e642072656d6f76616c2c23203c2f7765696768743e5061636b6e6f776c656467655f70726f706f73616c1001146e6f6e63652801304465706f7369744e6f6e63650001187372635f696408011c436861696e4964000110725f69640401285265736f75726365496400011063616c6c81030170426f783c3c5420617320436f6e6669673e3a3a50726f706f73616c3e000620c8436f6d6d697473206120766f746520696e206661766f7572206f66207468652070726f76696465642070726f706f73616c2e005901496620612070726f706f73616c20776974682074686520676976656e206e6f6e636520616e6420736f7572636520636861696e20494420646f6573206e6f7420616c72656164792065786973742c2069742077696c6ce862652063726561746564207769746820616e20696e697469616c20766f746520696e206661766f75722066726f6d207468652063616c6c65722e002823203c7765696768743e1d012d20776569676874206f662070726f706f7365642063616c6c2c207265676172646c657373206f66207768657468657220657865637574696f6e20697320706572666f726d65642c23203c2f7765696768743e3c72656a6563745f70726f706f73616c1001146e6f6e63652801304465706f7369744e6f6e63650001187372635f696408011c436861696e4964000110725f69640401285265736f75726365496400011063616c6c81030170426f783c3c5420617320436f6e6669673e3a3a50726f706f73616c3e000714ac436f6d6d697473206120766f746520616761696e737420612070726f76696465642070726f706f73616c2e002823203c7765696768743eec2d2046697865642c2073696e636520657865637574696f6e206f662070726f706f73616c2073686f756c64206e6f7420626520696e636c756465642c23203c2f7765696768743e3c6576616c5f766f74655f73746174650c01146e6f6e63652801304465706f7369744e6f6e63650001187372635f696408011c436861696e496400012070726f706f73616c81030170426f783c3c5420617320436f6e6669673e3a3a50726f706f73616c3e00082009014576616c7561746520746865207374617465206f6620612070726f706f73616c20676976656e207468652063757272656e7420766f7465207468726573686f6c642e004501412070726f706f73616c207769746820656e6f75676820766f7465732077696c6c20626520656974686572206578656375746564206f722063616e63656c6c65642c20616e6420746865207374617475737077696c6c2062652075706461746564206163636f7264696e676c792e002823203c7765696768743e1d012d20776569676874206f662070726f706f7365642063616c6c2c207265676172646c657373206f66207768657468657220657865637574696f6e20697320706572666f726d65642c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e7d050c4c6f726d6c5f61737365745f7265676973747279186d6f64756c651043616c6c0404540001083872656769737465725f61737365740801206d65746164617461ed0101b041737365744d657461646174613c543a3a42616c616e63652c20543a3a437573746f6d4d657461646174613e00012061737365745f6964810501484f7074696f6e3c543a3a417373657449643e000000307570646174655f61737365741c012061737365745f696419010128543a3a41737365744964000120646563696d616c73d903012c4f7074696f6e3c7533323e0001106e616d658505013c4f7074696f6e3c5665633c75383e3e00011873796d626f6c8505013c4f7074696f6e3c5665633c75383e3e00014c6578697374656e7469616c5f6465706f736974f90101484f7074696f6e3c543a3a42616c616e63653e0001206c6f636174696f6e890501984f7074696f6e3c4f7074696f6e3c56657273696f6e65644d756c74694c6f636174696f6e3e3e0001286164646974696f6e616c8d0501644f7074696f6e3c543a3a437573746f6d4d657461646174613e000100042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e810504184f7074696f6e0404540119010108104e6f6e6500000010536f6d65040019010000010000850504184f7074696f6e04045401300108104e6f6e6500000010536f6d650400300000010000890504184f7074696f6e04045401fd010108104e6f6e6500000010536f6d650400fd0100000100008d0504184f7074696f6e04045401f1010108104e6f6e6500000010536f6d650400f101000001000091050c206f726d6c5f78636d186d6f64756c651043616c6c0404540001044473656e645f61735f736f7665726569676e08011064657374c901016c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e00011c6d65737361676505050154426f783c56657273696f6e656458636d3c28293e3e000004ac53656e6420616e2058434d206d6573736167652061732070617261636861696e20736f7665726569676e2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e950504184f7074696f6e04045401940108104e6f6e6500000010536f6d65040094000001000099050c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909099d0500000408a1051800a105101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401a505045300000400a90501185665633c543e0000a505083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e74496401001048617368012c2c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173682c01104861736800011868656967687410012c426c6f636b4e756d6265720000a905000002a50500ad050c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909b1050c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909b505101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401b905045300000400c10501185665633c543e0000b90504184f7074696f6e04045401bd050108104e6f6e6500000010536f6d650400bd050000010000bd05084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c01cd032c426c6f636b4e756d62657201103450616c6c6574734f726967696e019503244163636f756e7449640100001401206d617962655f6964b801304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6ccd03011043616c6c0001386d617962655f706572696f646963b10301944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e9503013450616c6c6574734f726967696e0000c105000002b90500c5050c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909c905101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454012c045300000400090201185665633c543e0000cd05084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e74000110617965738801385665633c4163636f756e7449643e0001106e6179738801385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d6265720000d1050c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909d505000002d90500d905086470616c6c65745f656c656374696f6e735f70687261676d656e2853656174486f6c64657208244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000dd05086470616c6c65745f656c656374696f6e735f70687261676d656e14566f74657208244163636f756e74496401001c42616c616e63650118000c0114766f7465738801385665633c4163636f756e7449643e0001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000e1050c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144572726f7204045400014430556e61626c65546f566f7465000004c043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f746573000104944d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f7465730002048443616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f74657345786365656465640003049843616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e6365000404c443616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e6400050478566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f746572000604404d757374206265206120766f7465722e4c4475706c69636174656443616e646964617465000704804475706c6963617465642063616e646964617465207375626d697373696f6e2e44546f6f4d616e7943616e6469646174657300080498546f6f206d616e792063616e646964617465732068617665206265656e20637265617465642e304d656d6265725375626d6974000904884d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974000a048852756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e6473000b049443616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d626572000c04344e6f742061206d656d6265722e48496e76616c69645769746e65737344617461000d04e05468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e74000e04cc5468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67000f04fc5468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e74001004fc50726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909e505101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401e905045300000400ed0501185665633c543e0000e9050000040c10cd030000ed05000002e90500f10500000408f5051800f505101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401000453000004008801185665633c543e0000f9050c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d62657201102050726f706f73616c01cd031c42616c616e6365011801081c4f6e676f696e670400fd0501c05265666572656e64756d5374617475733c426c6f636b4e756d6265722c2050726f706f73616c2c2042616c616e63653e0000002046696e6973686564080120617070726f766564c00110626f6f6c00010c656e6410012c426c6f636b4e756d62657200010000fd050c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d62657201102050726f706f73616c01cd031c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200012070726f706f73616ccd03012050726f706f73616c0001247468726573686f6c64d40134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c790106013854616c6c793c42616c616e63653e000001060c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e6365000005060c4070616c6c65745f64656d6f637261637910766f746518566f74696e67101c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d6265720110204d6178566f746573000108184469726563740c0114766f746573090601f4426f756e6465645665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e731506015044656c65676174696f6e733c42616c616e63653e0001147072696f721906017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ed5030128436f6e76696374696f6e00012c64656c65676174696f6e731506015044656c65676174696f6e733c42616c616e63653e0001147072696f721906017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e000100000906101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454010d06045300000400110601185665633c543e00000d060000040810d80011060000020d060015060c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e6365000019060c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e636500001d0600000408cd03d40021060000040810f5050025060c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f7204045400015c2056616c75654c6f770000043456616c756520746f6f206c6f773c50726f706f73616c4d697373696e670001045c50726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c65640002049443616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c0003045450726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c69737465640004046850726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f72697479000504a84e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c69644861736800060430496e76616c69642068617368284e6f50726f706f73616c000704504e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564000804984964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365445265666572656e64756d496e76616c696400090484566f746520676976656e20666f7220696e76616c6964207265666572656e64756d2c4e6f6e6557616974696e67000a04504e6f2070726f706f73616c732077616974696e67204e6f74566f746572000b04c454686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e000c04c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67000d0488546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e6473000e04fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000f04a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f74657345786973740010085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f776564001104d854686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e73650012049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e6400130450496e76616c696420757070657220626f756e642e3c4d6178566f74657352656163686564001404804d6178696d756d206e756d626572206f6620766f74657320726561636865642e1c546f6f4d616e79001504804d6178696d756d206e756d626572206f66206974656d7320726561636865642e3c566f74696e67506572696f644c6f7700160454566f74696e6720706572696f6420746f6f206c6f7704b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090929060c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e7473004c4d61784164646974696f6e616c4669656c647300000c01286a756467656d656e74732d0601fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666fe10301844964656e74697479496e666f3c4d61784164646974696f6e616c4669656c64733e00002d06101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454013106045300000400350601185665633c543e0000310600000408107904003506000002310600390600000408183d06003d06101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401000453000004008801185665633c543e00004106101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e6465645665630804540145060453000004004d0601185665633c543e0000450604184f7074696f6e0404540149060108104e6f6e6500000010536f6d6504004906000001000049060c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f081c42616c616e63650118244163636f756e7449640100000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c6473710401384964656e746974794669656c647300004d0600000245060051060c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400014448546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473000b046c546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e7952656769737472617273000c04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000d04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000e047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000f04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e744a756467656d656e74466f72446966666572656e744964656e74697479001004d05468652070726f7669646564206a756467656d656e742077617320666f72206120646966666572656e74206964656e746974792e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909095506101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454018104045300000400590601185665633c543e000059060000028104005d06083870616c6c65745f76657374696e672052656c65617365730001080856300000000856310001000061060c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e6506083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f736974cc0150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974690601704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656ed903012c4f7074696f6e3c7533323e00010000690604184f7074696f6e04045401cc0108104e6f6e6500000010536f6d650400cc00000100006d06000004082c10007106101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e000075060c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400011818546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909097906083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e636500007d06101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e6465645665630804540110045300000400550301185665633c543e000081060c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000850608346672616d655f737570706f72742050616c6c65744964000004008901011c5b75383b20385d000089060c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900011470496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300020480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0003084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640004047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e04784572726f7220666f72207468652074726561737572792070616c6c65742e8d06083870616c6c65745f616e63686f727334507265436f6d6d697444617461101048617368012c244163636f756e74496401002c426c6f636b4e756d62657201101c42616c616e63650118001001307369676e696e675f726f6f742c0110486173680001206964656e746974790001244163636f756e74496400014065787069726174696f6e5f626c6f636b10012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500009106101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e64656456656308045401080453000004003001185665633c543e000095060c3870616c6c65745f616e63686f72731870616c6c6574144572726f720404540001204c416e63686f72416c726561647945786973747300000490416e63686f72207769746820616e63686f725f696420616c72656164792065786973747354416e63686f7253746f726544617465496e50617374000104a8416e63686f722073746f72652064617465206d75737420626520696e206e6f77206f722066757475726570416e63686f7253746f72654461746541626f76654d61784c696d6974000204d8416e63686f722073746f72652064617465206d757374206e6f74206265206d6f7265207468616e206d61782073746f7265206461746558507265436f6d6d6974416c7265616479457869737473000304645072652d636f6d6d697420616c7265616479206578697374734c4e6f744f776e65724f66507265436f6d6d69740004049453656e646572206973206e6f7420746865206f776e6572206f662070726520636f6d6d697454496e76616c6964507265436f6d6d697450726f6f6600050460496e76616c69642070726520636f6d6d69742070726f6f66484576696374696f6e44617465546f6f426967000604904576696374696f6e206461746520746f6f2062696720666f7220636f6e76657273696f6e684661696c6564546f436f6e7665727445706f6368546f44617973000704944661696c656420746f20636f6e766572742065706f636820696e204d5320746f206461797304b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090999060c3470616c6c65745f636c61696d731870616c6c6574144572726f720404540001104c496e73756666696369656e7442616c616e63650000043501416d6f756e74206265696e6720636c61696d6564206973206c657373207468616e2074686520617661696c61626c6520616d6f756e7420696e205b60436c61696d6564416d6f756e7473605d2e34496e76616c696450726f6f6673000104410154686520636f6d62696e6174696f6e206f66206163636f756e742069642c20616d6f756e742c20616e642070726f6f667320766563746f7220696e206120636c61696d2077617320696e76616c69642e2c4d757374426541646d696e000204bc50726f746563746564206f7065726174696f6e2c206d75737420626520706572666f726d65642062792061646d696e38556e6465724d696e5061796f75740003049d01546865207061796f757420616d6f756e7420617474656d7074696e6720746f20626520636c61696d6564206973206c657373207468616e20746865206d696e696d756d20616c6c6f776564206279205b604d696e696d616c5061796f7574416d6f756e74605d2e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909099d060c2870616c6c65745f6e66741870616c6c6574144572726f7204045400010834496e76616c696450726f6f66730000041501556e61626c6520746f2072656372656174652074686520616e63686f7220686173682066726f6d207468652070726f6f667320616e6420646174612070726f76696465642e4c446f63756d656e744e6f74416e63686f72656400010449014120676976656e20646f63756d656e7420696420646f6573206e6f74206d61746368206120636f72726573706f6e64696e6720646f63756d656e7420696e2074686520616e63686f722073746f726167652e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a1060c3470616c6c65745f6272696467651870616c6c6574144572726f720404540001043c496e76616c69645472616e7366657200000440496e76616c6964207472616e7366657204b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909a506086070616c6c65745f6d6967726174696f6e5f6d616e616765723c4d6967726174696f6e53746174757300010c20496e6163746976650000001c4f6e676f696e6700010020436f6d706c65746500020000a9060c6070616c6c65745f6d6967726174696f6e5f6d616e616765721870616c6c6574144572726f720404540001143c546f6f4d616e794163636f756e74730000042501546f6f206d616e79206163636f756e747320696e2074686520766563746f7220666f72207468652063616c6c206f6620606d6967726174655f73797374656d5f6163636f756e74602e3c546f6f4d616e7956657374696e67730001043501546f6f206d616e792076657374696e67496e666f7320696e2074686520766563746f7220666f72207468652063616c6c206f6620606d6967726174655f766574696e675f76657374696e67602e38546f6f4d616e7950726f786965730002041d01546f6f206d616e792070726f7869657320696e2074686520766563746f7220666f72207468652063616c6c206f6620606d6967726174655f70726f78795f70726f78696573602e644d6967726174696f6e416c7265616479436f6d706c657465640003044901496e6469636174657320746861742061206d6967726174696f6e2063616c6c2068617070656e65642c20616c74686f75676820746865206d6967726174696f6e20697320616c726561647920636c6f7365644c4f6e6c7946696e616c697a654f6e676f696e670004084d01496e64696361746573207468617420612066696e616c697a652063616c6c2068617070656e65642c20616c74686f75676820746865206d6967726174696f6e2070616c6c6574206973206e6f7420696e20616e446f6e676f696e67206d6967726174696f6e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909ad0600000408001000b1060c5870616c6c65745f63726f77646c6f616e5f636c61696d1870616c6c6574144572726f720404540001286050616c6c6574416c7265616479496e697469616c697a65640000047c43616e6e6f742072652d696e697469616c697a65207468652070616c6c65745050616c6c65744e6f74496e697469616c697a6564000104bc43616e6e6f742063616c6c20726577617264206265666f72652070616c6c657420697320696e697469616c697a656454436c61696d416c726561647950726f636573736564000204e8436c61696d2068617320616c7265616479206265656e2070726f63657373656420287265706c61792061747461636b2c2070726f6261626c792968496e76616c696450726f6f664f66436f6e747269627574696f6e000304985468652070726f6f66206f66206120636f6e747269627574696f6e20697320696e76616c696478436c61696d6564416d6f756e7449734f75744f66426f756e646172696573000404e4436c61696d656420616d6f756e74206973206f7574206f6620626f756e6461726965732028746f6f206c6f77206f7220746f6f2068696768294c4d757374426541646d696e6973747261746f72000504910153656e736974697665207472616e73616374696f6e732063616e206f6e6c7920626520706572666f726d65642062792061646d696e6973747261746f7220656e746974792028652e672e205375646f206f722044656d6f63726163792070616c6c65742948496e76616c6964436c61696d416d6f756e7400060451015468652072657761726420616d6f756e74207468617420697320636c61696d656420646f6573206e6f7420636f72726573706f6e6420746f20746865206f6e65206f662074686520636f6e747269627574696f6e6c496e76616c6964436f6e7472696275746f725369676e61747572650007102101546865207369676e61747572652070726f76696465642062792074686520636f6e7472696275746f72207768656e207265676973746572696e67206973206e6f742076616c69642e001d0154686520636f6e73657175656e63652069732074686174207468652072656c6179636861696e20616e642070617261636861696e206163636f756e7473206265696e67206e6f7405016173736f6369617465642c2074686520636f6e7472696275746f72206973206e6f7420656c6c696769626c6520666f72206120726577617264207061796f75742e304f6e676f696e674c65617365000804190141206c65617365206973206f6e676f67696e6720616e64207468652070616c6c65742063616e2068656e636564206e6f7420626520696e697469616c697a656420616761696e404f75744f664c65617365506572696f64000904c0436c61696d696e672072657761726473206973206f6e6c7920706f737369626c6520647572696e672061206c6561736504b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909b5060c5c70616c6c65745f63726f77646c6f616e5f7265776172641870616c6c6574144572726f7204045400010c4c4d757374426541646d696e6973747261746f72000004b0496e76616c69642063616c6c20746f20616e2061646d696e6973747261746976652065787472696e7369637348526577617264496e73756666696369656e74000104ac546865207265776172642069732062656c6f7720746865206578697374656e7469616c206465706f7369745050616c6c65744e6f74496e697469616c697a65640002048050616c6c6574206d75737420626520696e697469616c697a656420666972737404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909b9060c6070616c6c65745f726573747269637465645f746f6b656e731870616c6c6574144572726f720404540001044c507265436f6e646974696f6e734e6f744d657400000004b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909bd060c6470616c6c65745f636f6c6c61746f725f616c6c6f776c6973741870616c6c6574144572726f7204045400010c58436f6c6c61746f72416c7265616479416c6c6f776564000004d454686520636f6c6c61746f722068617320616c7265616479206265656e20616464656420746f2074686520616c6c6f776c6973742e40436f6c6c61746f724e6f745265616479000104510154686520636f6c6c61746f72206973206e6f742072656164792079657420666f6c6c6f77696e6720746f2074686520756e6465726c79696e672060543a3a56616c696461746f72526567697374726174696f6e6048436f6c6c61746f724e6f7450726573656e74000204cc5468652070726f766964656420636f6c6c61746f7220776173206e6f7420666f756e6420696e207468652073746f726167652e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909c106000002c50600c506086463756d756c75735f70616c6c65745f78636d705f717565756554496e626f756e644368616e6e656c44657461696c7300000c011873656e646572310101185061726149640001147374617465c9060130496e626f756e6453746174650001406d6573736167655f6d65746164617461cd0601a85665633c2852656c6179426c6f636b4e756d6265722c2058636d704d657373616765466f726d6174293e0000c906086463756d756c75735f70616c6c65745f78636d705f717565756530496e626f756e645374617465000108084f6b0000002453757370656e64656400010000cd06000002d10600d1060000040810d50600d5060c48706f6c6b61646f745f70617261636861696e287072696d6974697665734458636d704d657373616765466f726d617400010c60436f6e636174656e6174656456657273696f6e656458636d0000005c436f6e636174656e61746564456e636f646564426c6f620001001c5369676e616c7300020000d9060000040831011000dd06000002e10600e106086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74310101185061726149640001147374617465e50601344f7574626f756e6453746174650001347369676e616c735f6578697374c00110626f6f6c00012c66697273745f696e646578a8010c7531360001286c6173745f696e646578a8010c7531360000e506086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000e906000004083101a800ed06086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e66696744617461000018014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c7533320001407468726573686f6c645f7765696768742001185765696768740001547765696768745f72657374726963745f646563617920011857656967687400016878636d705f6d61785f696e646976696475616c5f7765696768742001185765696768740000f1060000040c3101103000f5060c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f72040454000114304661696c6564546f53656e640000046c4661696c656420746f2073656e642058434d206d6573736167652e3042616458636d4f726967696e0001043c4261642058434d206f726967696e2e1842616458636d000204344261642058434d20646174612e484261644f766572776569676874496e64657800030454426164206f76657277656967687420696e6465782e3c5765696768744f7665724c696d6974000404f850726f76696465642077656967687420697320706f737369626c79206e6f7420656e6f75676820746f206578656375746520746865206d6573736167652e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909f9060c2870616c6c65745f78636d1870616c6c6574144572726f720404540001342c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108610154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652e2050657268617073a861206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404f05468652064657374696e6174696f6e20604d756c74694c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909fd060c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144572726f7204045400010004b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909090107086063756d756c75735f70616c6c65745f646d705f717565756528436f6e6669674461746100000401386d61785f696e646976696475616c20011857656967687400000507086063756d756c75735f70616c6c65745f646d705f71756575653450616765496e6465784461746100000c0128626567696e5f7573656410012c50616765436f756e746572000120656e645f7573656410012c50616765436f756e7465720001406f7665727765696768745f636f756e7428013c4f766572776569676874496e646578000009070000020d07000d070000040810300011070c6063756d756c75735f70616c6c65745f646d705f71756575651870616c6c6574144572726f720404540001081c556e6b6e6f776e0000048c546865206d65737361676520696e64657820676976656e20697320756e6b6e6f776e2e244f7665724c696d6974000104310154686520616d6f756e74206f662077656967687420676976656e20697320706f737369626c79206e6f7420656e6f75676820666f7220657865637574696e6720746865206d6573736167652e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090915070c306f726d6c5f78746f6b656e73186d6f64756c65144572726f7204045400014c4441737365744861734e6f5265736572766500000478417373657420686173206e6f2072657365727665206c6f636174696f6e2e544e6f7443726f7373436861696e5472616e73666572000104644e6f742063726f73732d636861696e207472616e736665722e2c496e76616c69644465737400020474496e76616c6964207472616e736665722064657374696e6174696f6e2e844e6f7443726f7373436861696e5472616e7366657261626c6543757272656e6379000304a443757272656e6379206973206e6f742063726f73732d636861696e207472616e7366657261626c652e48556e776569676861626c654d657373616765000404b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e4858636d457865637574696f6e4661696c65640005045458434d20657865637574696f6e206661696c65642e3843616e6e6f745265616e63686f72000608e8436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468654864657374696e6174696f6e20636861696e2e3c496e76616c6964416e636573747279000704c4436f756c64206e6f742067657420616e636573747279206f662061737365742072657365727665206c6f636174696f6e2e30496e76616c6964417373657400080468546865204d756c7469417373657420697320696e76616c69642e6044657374696e6174696f6e4e6f74496e7665727469626c65000904f05468652064657374696e6174696f6e20604d756c74694c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e2842616456657273696f6e000a08ec5468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626530696e7465727072657465642e7444697374696e637452657365727665466f724173736574416e64466565000b08fc57652074726965642073656e64696e672064697374696e637420617373657420616e6420666565206275742074686579206861766520646966666572656e743c7265736572766520636861696e732e1c5a65726f466565000c044054686520666565206973207a65726f2e285a65726f416d6f756e74000d0494546865207472616e73666572696e6720617373657420616d6f756e74206973207a65726f2e58546f6f4d616e794173736574734265696e6753656e74000e04d0546865206e756d626572206f662061737365747320746f2062652073656e74206973206f76657220746865206d6178696d756d2e544173736574496e6465784e6f6e4578697374656e74000f04ec5468652073706563696669656420696e64657820646f6573206e6f7420657869737420696e2061204d756c7469417373657473207374727563742e304665654e6f74456e6f75676800100448466565206973206e6f7420656e6f7567682e644e6f74537570706f727465644d756c74694c6f636174696f6e0011046c4e6f7420737570706f72746564204d756c74694c6f636174696f6e4c4d696e58636d4665654e6f74446566696e6564001204d44d696e58636d466565206e6f74207265676973746572656420666f72206365727461696e2072657365727665206c6f636174696f6e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a090909190700000408081d07001d07000004082881030021070c2c636861696e6272696467651474797065733450726f706f73616c566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000100124766f7465735f666f728801385665633c4163636f756e7449643e000134766f7465735f616761696e73748801385665633c4163636f756e7449643e0001187374617475732507013850726f706f73616c53746174757300011865787069727910012c426c6f636b4e756d626572000025070c2c636861696e6272696467651474797065733850726f706f73616c53746174757300010c24496e6974696174656400000020417070726f7665640001002052656a65637465640002000029070c2c636861696e6272696467651870616c6c6574144572726f7204045400013c3c5468726573686f6c644e6f745365740000046452656c61796572207468726573686f6c64206e6f742073657438496e76616c6964436861696e49640001047850726f766964656420636861696e204964206973206e6f742076616c696440496e76616c69645468726573686f6c640002047452656c61796572207468726573686f6c642063616e6e6f7420626520304c436861696e4e6f7457686974656c6973746564000304b4496e746572616374696f6e732077697468207468697320636861696e206973206e6f74207065726d69747465645c436861696e416c726561647957686974656c697374656400040478436861696e2068617320616c7265616479206265656e20656e61626c6564505265736f75726365446f65734e6f744578697374000504b45265736f757263652049442070726f76696465642069736e2774206d617070656420746f20616e797468696e675052656c61796572416c72656164794578697374730006045852656c6179657220616c726561647920696e207365743852656c61796572496e76616c69640007048c50726f7669646564206163636f756e744964206973206e6f7420612072656c61796572344d757374426552656c61796572000804c450726f746563746564206f7065726174696f6e2c206d75737420626520706572666f726d65642062792072656c617965724c52656c61796572416c7265616479566f746564000904e452656c617965722068617320616c7265616479207375626d697474656420736f6d6520766f746520666f7220746869732070726f706f73616c5450726f706f73616c416c7265616479457869737473000a04ec412070726f706f73616c207769746820746865736520706172616d65746572732068617320616c7265616479206265656e207375626d69747465645050726f706f73616c446f65734e6f744578697374000b04844e6f2070726f706f73616c2077697468207468652049442077617320666f756e644c50726f706f73616c4e6f74436f6d706c657465000c04a843616e6e6f7420636f6d706c6574652070726f706f73616c2c206e65656473206d6f726520766f7465735c50726f706f73616c416c7265616479436f6d706c657465000d049c50726f706f73616c2068617320656974686572206661696c6564206f72207375636365656465643c50726f706f73616c45787069726564000e04984c69666574696d65206f662070726f706f73616c20686173206265656e20657863656564656404b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909092d0700000408001901003107101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454013507045300000400390701185665633c543e00003507082c6f726d6c5f746f6b656e732c42616c616e63654c6f636b041c42616c616e63650118000801086964890101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e6365000039070000023507003d07082c6f726d6c5f746f6b656e732c4163636f756e7444617461041c42616c616e63650118000c01106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e636500004107101c73705f636f72651c626f756e6465642c626f756e6465645f76656328426f756e646564566563080454014507045300000400490701185665633c543e00004507082c6f726d6c5f746f6b656e732c52657365727665446174610844526573657276654964656e7469666965720189011c42616c616e6365011800080108696489010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000049070000024507004d070c2c6f726d6c5f746f6b656e73186d6f64756c65144572726f720404540001203442616c616e6365546f6f4c6f77000004585468652062616c616e636520697320746f6f206c6f775c416d6f756e74496e746f42616c616e63654661696c65640001049c43616e6e6f7420636f6e7665727420416d6f756e7420696e746f2042616c616e63652074797065544c69717569646974795265737472696374696f6e73000204d04661696c65642062656361757365206c6971756964697479207265737472696374696f6e732064756520746f206c6f636b696e67404d61784c6f636b734578636565646564000304b44661696c6564206265636175736520746865206d6178696d756d206c6f636b7320776173206578636565646564244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e74484578697374656e7469616c4465706f736974000504e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e79526573657276657300070004b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090951070c4c6f726d6c5f61737365745f7265676973747279186d6f64756c65144572726f720404540001143441737365744e6f74466f756e6400000450417373657420776173206e6f7420666f756e642e2842616456657273696f6e00010809015468652076657273696f6e206f6620746865206056657273696f6e65644d756c74694c6f636174696f6e602076616c75652075736564206973206e6f742061626c6548746f20626520696e7465727072657465642e38496e76616c6964417373657449640002046054686520617373657420696420697320696e76616c69642e4c436f6e666c696374696e674c6f636174696f6e000304d8416e6f746865722061737365742077617320616c726561647920726567697374657220776974682074686973206c6f636174696f6e2e48436f6e666c696374696e6741737365744964000404d8416e6f746865722061737365742077617320616c7265616479207265676973746572207769746820746869732061737365742069642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a09090955070c206f726d6c5f78636d186d6f64756c65144572726f7204045400010c2c556e726561636861626c650000080d01546865206d65737361676520616e642064657374696e6174696f6e20636f6d62696e6174696f6e20776173206e6f74207265636f676e697a6564206173206265696e6728726561636861626c652e2c53656e644661696c7572650001080501546865206d65737361676520616e642064657374696e6174696f6e20776173207265636f676e697a6564206173206265696e6720726561636861626c652062757494746865206f7065726174696f6e20636f756c64206e6f7420626520636f6d706c657465642e2842616456657273696f6e000208ec5468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626530696e7465727072657465642e04b5010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f6d61696e2d646f63732f6275696c642f6576656e74732d6572726f72732f290a0909096f6620746869732070616c6c65742e0a0909095907102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301f1021043616c6c018103245369676e617475726501d904144578747261015d07000400300000005d07000004206107650769076d07710779077d07810700610710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000650710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000690710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e040454000000006d0710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000710710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004007507010c45726100007507102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000790710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040049010120543a3a496e64657800007d0710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000008107086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e74040454000004005901013042616c616e63654f663c543e00008507084863656e747269667567655f72756e74696d651c52756e74696d6500000000a81853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010405102c8000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510300400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002c80000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010034040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004404001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104022c0d020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000110204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100c00400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100c00400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000502040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01190201501830426c6f636b576569676874732902750107e0d1a93e0100070088526a740200400142369314000107705e7b78510200e000010700e6bd4f570200f00001000042369314000107700010936e0200300101070088526a7402004001010700a2941a1d02005000423693140000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746839023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687441024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e4502b1022863656e747269667567652863656e7472696675676501000000f8030000010000002cdf6acb689907609b0400000037e397fc7c91f5e40100000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000dd718d5cc53262d401000000bc9d89904f5b923f0100000037c8bb1350a9a2a802000000ea93e3f16f3d696202000000c937d79c92c4e8720100000001000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978a808240014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e015502003c50617261636861696e53797374656d013c50617261636861696e53797374656d545450656e64696e6756616c69646174696f6e436f64650100300400187d0120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f206265206170706c6965642e00c10120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f766572777269746520746865205b603a636f6465605d5b77656c6c5f6b6e6f776e5f6b6579733a3a434f44455dad012077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f63657373207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e000501205b77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d3a2073705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f4445444e657756616c69646174696f6e436f64650000300400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000590204000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f64650100c0040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d6265720100101000000000041d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e60557067726164655265737472696374696f6e5369676e616c0100610204001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600006902040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000710204001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000081020400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100850280000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301008902040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100950204000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100250204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002502040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000200400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000200400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e44417574686f72697a65645570677261646500002c040004b820546865206e65787420617574686f72697a656420757067726164652c206966207468657265206973206f6e652e60437573746f6d56616c69646174696f6e486561644461746100003004000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00190120536565205b6050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f64617461605d20666f72206d6f726520696e666f726d6174696f6e2e019d0201740001c102016052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100c50204000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e00000000022454696d657374616d70012454696d657374616d70080c4e6f7701002820000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e244469645570646174650100c0040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01c9020004344d696e696d756d506572696f6428207017000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e00033450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100310110640000000000000000042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200cd02040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200dd02040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e0100e90204000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e01ed0201780c484578697374656e7469616c4465706f73697418400010a5d4e8000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01f90214485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100fd0240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100010304000000018004604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e001544436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c6573010005030400048c2054686520696e76756c6e657261626c652c20666978656420636f6c6c61746f72732e2843616e6469646174657301000903040004bc205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e0115030184000119034728417574686f72736869700128417574686f72736869700c18556e636c657301001d030400041c20556e636c657318417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c65730100c0040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e012d03000440556e636c6547656e65726174696f6e731010050000000ccc20546865206e756d626572206f6620626c6f636b73206261636b2077652073686f756c642061636365707420756e636c65732ee42054686973206d65616e7320746861742077652077696c6c206465616c207769746820756e636c652d706172656e7473207468617420617265942060556e636c6547656e65726174696f6e73202b203160206265666f726520606e6f77602e013d031e1c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100880400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e6765640100c0040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010041030400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010055030400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050049030400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405590300040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e016103018c000165031f1041757261011041757261082c417574686f726974696573010069030400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010071032000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000000201c41757261457874011c41757261457874042c417574686f72697469657301006903040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c790120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c20616c77617973f0206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e0000000021204d756c746973696701204d756c746973696704244d756c746973696773000108050275037903040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e017d0301900c2c4465706f73697442617365184000009e1869d02904000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f7218400000c52ebca2b10000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f72696573a808640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e0199053c1450726f7879011450726f7879081c50726f786965730101040500c5044400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010405009d0544000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01850301a0184050726f78794465706f73697442617365184000009e1869d02904000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218400000c52ebca2b100000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f73697442617365184000007f80a935be08000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000008cde04bff436000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01ad053d1c5574696c69747900018d0301ac044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01b1053e245363686564756c657201245363686564756c65720c3c496e636f6d706c65746553696e6365000010040000184167656e64610101040510b5050400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001040504b4040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01ad0301b008344d6178696d756d57656967687420280700a0db215d0200000104290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000041d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e01c5053f1c436f756e63696c011c436f756e63696c182450726f706f73616c730100c905040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f66000104062c8103040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e67000104062ccd05040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100880400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01b50301bc0001d1054024456c656374696f6e730124456c656374696f6e73141c4d656d626572730100d50504000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100d50504001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100c80400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301001010000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e670101040500dd05840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e01c10301c4242050616c6c65744964890120706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e6418400000a0dec5adc935360000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e644261736518400000b2d3595bf006000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f7218400000b2d3595bf00600000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d626572731010090000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355701010090000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e1010e0c400000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e344d617843616e646964617465731010e803000014e420546865206d6178696d756d206e756d626572206f662063616e6469646174657320696e20612070687261676d656e20656c656374696f6e2e001501205761726e696e673a2054686520656c656374696f6e2068617070656e73206f6e636861696e2c20616e6420746869732076616c75652077696c6c2064657465726d696e65f4207468652073697a65206f662074686520656c656374696f6e2e205768656e2074686973206c696d69742069732072656163686564206e6f206d6f7265a42063616e646964617465732061726520616363657074656420696e2074686520656c656374696f6e2e244d6178566f7465727310101027000010f820546865206d6178696d756d206e756d626572206f6620766f7465727320746f20616c6c6f7720696e20612070687261676d656e20656c656374696f6e2e001501205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2ed8205768656e20746865206c696d6974206973207265616368656420746865206e657720766f74657273206172652069676e6f7265642e01e105412444656d6f6372616379012444656d6f63726163792c3c5075626c696350726f70436f756e74010010100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100e505040004050120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c2e244465706f7369744f660001040510f10504000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e3c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b6564010010100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001040510f90504000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010405000506d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e544c6173745461626c656457617345787465726e616c0100c00400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00001d06040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c697374000104062c210604000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e73010104062cc00400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e01c90301d0303c456e6163746d656e74506572696f64101000e1000014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f641010e0c4000004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f641010e0c4000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f64101000e10000109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f73697418400000a0dec5adc935360000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f776564c004000c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6410108403000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f641010e0c4000004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e204d6178566f74657310106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c73101064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e2c4d61784465706f73697473101064000000041d0120546865206d6178696d756d206e756d626572206f66206465706f736974732061207075626c69632070726f706f73616c206d6179206861766520617420616e792074696d652e384d6178426c61636b6c697374656410106400000004d820546865206d6178696d756d206e756d626572206f66206974656d732077686963682063616e20626520626c61636b6c69737465642e01250642204964656e7469747901204964656e7469747910284964656e746974794f660001040500290604000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010402006d040400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f660101040500390644000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e2852656769737472617273010041060400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e01dd0301e0183042617369634465706f7369741840000010632d5ec76b050000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f73697418400000c4588bd7f15a0100000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f73697418400000d01309468e1501000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c6473101064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d617852656769737472617273101014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e015106431c56657374696e67011c56657374696e67081c56657374696e6700010402005506040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e01005d0604000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e017d0401e408444d696e5665737465645472616e7366657218400000e8890423c78a000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c6573101003000000000161064420507265696d6167650120507265696d6167650824537461747573466f72000104062c65060400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f72000104066d06710604000001850401e80001750645205472656173757279012054726561737572790c3450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c73000104051079060400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c7301007d06040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e01890401ec1c3050726f706f73616c426f6e6481061050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d18400000a0dec5adc9353600000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4c50726f706f73616c426f6e644d6178696d756df901440100002059dd64f00c0f01000000000000044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f641010c0890100048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e810610000000000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c6574496485062070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c731010640000000c150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e018906461046656573011046656573042c46656542616c616e63657301010401f41840000064a7b3b6e00d000000000000000004e82053746f72657320746865206665652062616c616e636573206173736f636961746564207769746820612048617368206964656e746966696572018d0401f000005a18416e63686f720118416e63686f721c28507265436f6d6d697473000104012c8d06040004bd0120507265436f6d6d6974732073746f726520746865206d6170206f6620616e63686f7220496420746f20746865207072652d636f6d6d69742c2077686963682069732061206c6f636b206f6e20616e20616e63686f7220696420746f20626520636f6d6d6974746564206c6174657240416e63686f7245766963744461746573000104012c10040004c4204d617020746f2066696e6420746865206576696374696f6e206461746520676976656e20616e20616e63686f7220696434416e63686f72496e646578657300010401282c04000478204d617020746f2066696e6420616e63686f72494420627920696e646578444c6174657374416e63686f72496e646578000028040004b4204c617465737420616e63686f72656420696e64657820746861742077617320726563656e746c792075736564604c617465737445766963746564416e63686f72496e64657800002804000c6501204c6174657374206576696374656420616e63686f7220696e6465782e205468697320776f756c64206b65657020747261636b206f6620746865206c6174657374206576696374656420616e63686f7220696e64657820736f5d0120746861742077652063616e207374617274207468652072656d6f76616c206f6620416e63686f724576696374446174657320696e6465782066726f6d207468617420696e646578206f6e77617264732e20476f696e679c2066726f6d20416e63686f72496e6465786573203d3e20416e63686f7245766963744461746573444c617465737445766963746564446174650000100400085d01205468697320697320746f206b65657020747261636b206f66207468652064617465207768656e2061206368696c642074726965206f6620616e63686f7273207761732065766963746564206c6173742e204974206973590120746f20657669637420686973746f72696320616e63686f722064617461206368696c64207472696573206966207468657920776572656e2774206576696374656420696e20612074696d656c79206d616e6e65722e4845766963746564416e63686f72526f6f7473000104011091060400105d012053746f7261676520666f72206576696374656420616e63686f72206368696c64207472696520726f6f74732e20416e63686f72732077697468206120676976656e206578706972792f6576696374696f6e20646174656101206172652073746f726564206f6e2d636861696e20696e20612073696e676c65206368696c6420747269652e2054686973206368696c6420747269652069732072656d6f7665642061667465722074686520657870697279510120646174652068617320706173736564207768696c652069747320726f6f742069732073746f726564207065726d616e656e746c7920666f722070726f76696e6720616e206578697374656e6365206f6620616e40206576696374656420616e63686f722e01910400000195065b18436c61696d730118436c61696d730c38436c61696d6564416d6f756e7473010104020018400000000000000000000000000000000004a020546f74616c20636c61696d656420616d6f756e747320666f7220616c6c206163636f756e74732e20526f6f744861736800002c040004210120526f6f742068617368207468617420636f72726573706f6e6420746f206c69737473206f662072657761726420636c61696d20616d6f756e747320706572206163636f756e742e3455706c6f61644163636f756e74000000040004cc204163636f756e74207468617420697320616c6c6f77656420746f2075706c6f6164206e657720726f6f74206861736865732e01990401f8084c4d696e696d616c5061796f7574416d6f756e7418400000f44482916345000000000000000010e0204d696e696d616c20616d6f756e7420746861742063616e20626520636c61696d656420666f72206120726577617264207061796f75742e00e501205468697320636f6e7374616e742069732073657420766961205b60706172616d657465725f7479706573605d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6d6163726f7323706172616d657465725f74797065732988206d6163726f207768656e20636f6e6669677572696e6720612072756e74696d652e2050616c6c65744964850620702f636c61696d7310410120436f6e7374616e7420636f6e66696775726174696f6e20706172616d6574657220746f2073746f726520746865206d6f64756c65206964656e74696669657220666f72207468652070616c6c65742e00390120546865206d6f64756c65206964656e746966696572206d6179206265206f662074686520666f726d2060606050616c6c65744964282a622272642f636c61696d222960606020616e6420736574a901207573696e6720746865205b60706172616d657465725f7479706573605d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6d6163726f7323706172616d657465725f7479706573290199065c104e66747300019d0401fc08385265736f7572636548617368496404800000000000000000000000000000000cb3858f3e48815bfd35c5347aa3b34c011048205265736f7572636520686173682069642e002501205468697320747970652077617320696e697469616c6c79206465636c6172656420696e20746865206272696467652070616c6c65742062757420776173206d6f76656420686572658020746f2061766f69642063697263756c617220646570656e64656e636965732e604e667450726f6f6656616c69646174696f6e4665654b6579f40403041901204164646974696f6e616c20666565206368617267656420666f722076616c69646174696e67204e46542070726f6f6620287768656e206d696e74696e672061204e4654292e019d065d1842726964676501184272696467650001ad040101010c3842726964676550616c6c6574496485062063686e6272646765144c2050616c6c6574206964656e7469666965722e00950120546865206d6f64756c65206964656e746966696572206d6179206265206f662074686520666f726d2060606050616c6c65744964282a6222632f627269646765222960606020286120737472696e67206f66206569676874206368617261637465727329c90120616e6420736574207573696e6720746865205b60706172616d657465725f7479706573605d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6d6163726f7323706172616d657465725f747970657329cc206d6163726f20696e206f6e65206f66207468652072756e74696d657320287365652072756e74696d6520666f6c646572292e344e6174697665546f6b656e49640480000000000000000000000000000000330324dbcad5cd41be14952877e636a10100644e6174697665546f6b656e5472616e736665724665654b6579f40402048101204b6579207573656420746f20726574726965766520746865206665652074686174206172652063686172676564207768656e207472616e7366657272696e67206e617469766520746f6b656e7320746f2074617267657420636861696e732e01a1065e244d6967726174696f6e01244d6967726174696f6e04185374617475730100a50604000001b1040105010c504d6967726174696f6e4d61784163636f756e747310106400000004e0204d6178696d756d206e756d626572206f66206163636f756e747320746861742063616e206265206d69677261746564206174206f6e6365504d6967726174696f6e4d617856657374696e677310100a00000004e0204d6178696d756d206e756d626572206f662076657374696e677320746861742063616e206265206d69677261746564206174206f6e63654c4d6967726174696f6e4d617850726f7869657310100a00000004e0204d6178696d756d206e756d626572206f662076657374696e677320746861742063616e206265206d69677261746564206174206f6e636501a9065f3843726f77646c6f616e436c61696d013843726f77646c6f616e436c61696d2034436f6e747269627574696f6e7300002c040004fc20526f6f74206f662068617368206f66207468652072656c617920636861696e206174207468652074696d65206f6620696e697469616c697a6174696f6e2e204c6f636b656441740000100400004843726f77646c6f616e54726965496e64657800001004000c35012054726965496e646578206f66207468652063726f77646c6f616e2063616d706169676e20696e73696465207468652072656c61792d636861696e2063726f77646c6f616e2070616c6c65742e000d012054686973206973206e656564656420696e206f7264657220746f206275696c642074686520636f7272656374206b65797320666f722070726f6f6620636865636b2e3c50726f636573736564436c61696d7300010402ad06c00400045d012041206d617020636f6e7461696e696e6720746865206c697374206f6620636c61696d7320666f7220726577617264207061796f75747320746861742077657265207375636365737366756c792070726f6365737365642443757272496e6465780100101000000000002450726576496e646578010010100000000000284c6561736553746172740100101000000000002c4c65617365506572696f6401001010000000000001d504010901042050616c6c6574496485062063632f636c61696d0c410120436f6e7374616e7420636f6e66696775726174696f6e20706172616d6574657220746f2073746f7265207468652070616c6c6574206964656e74696669657220666f72207468652070616c6c65742e001d01205468652070616c6c6574206964656e746966696572206d6179206265206f662074686520666f726d2060606050616c6c65744964282a622263632f636c61696d22296060602e01b106603c43726f77646c6f616e526577617264013c43726f77646c6f616e5265776172640c444469726563745061796f7574526174696f010011011000c2eb0b047d0120576869636820726174696f206f6620746865207265776172647320617265207061796564206469726563746c792e205468652072657374206973207472616e736665727265642076696120612076657374696e67207363686564756c652e3456657374696e67506572696f64000010040004c0204f76657220776869636820706572696f64206172652074686520636f6e747269627574696f6e73207665737465642e3056657374696e675374617274000010040004b820417420776869636820626c6f636b206e756d62657220646f6573207468652076657374696e672073746172742e01f104010d01042050616c6c6574496485062063632f726577726454410120436f6e7374616e7420636f6e66696775726174696f6e20706172616d6574657220746f2073746f726520746865206d6f64756c65206964656e74696669657220666f72207468652070616c6c65742e002d0120546865206d6f64756c65206964656e746966696572206d6179206265206f662074686520666f726d2060606050616c6c65744964282a622263632f7277726422296060602e2054686973050120636f6e7374616e7420697320736574207768656e206275696c64696e67207468697320636f6e66696720747261697420666f72207468652072756e74696d652e00282023204578616d706c653c20606060727573742c69676e6f726500d8202f2f20506172616d65746572697a652063726f77646c6f616e207265776172642070616c6c657420636f6e66696775726174696f6e4c20706172616d657465725f747970657321207b1d0120202070756220636f6e73742043726f77646c6f616e52657761726450616c6c657449643a2050616c6c65744964203d2050616c6c65744964282a622263632f7277726422293b08207d002d01202f2f20496d706c656d656e742063726f77646c6f616e207265776172642070616c6c6574277320636f6e66696775726174696f6e20747261697420666f72207468652072756e74696d65d020696d706c2070616c6c65745f63726f77646c6f61726e5f7265776172643a3a436f6e66696720666f722052756e74696d65207b5820202074797065204576656e74203d204576656e743b602020207479706520576569676874496e666f203d2028293bac202020747970652050616c6c65744964203d2043726f77646c6f616e52657761726450616c6c657449643b08207d00102060606001b5066118546f6b656e730001f5040115010001b9066244436f6c6c61746f72416c6c6f776c6973740144436f6c6c61746f72416c6c6f776c6973740424416c6c6f776c69737400010401009c040008682054686520636f6c6c61746f72277320616c6c6f776c6973742e1d01204e6f74653a20576520696d706c656d656e74206974206173206120636c6f73652d656e6f75676820486173685365743a204d61703c56616c696461746f7249642c2028293e2e01f9040121010001bd06632458636d705175657565012458636d7051756575652444496e626f756e6458636d705374617475730100c1060400049420537461747573206f662074686520696e626f756e642058434d50206368616e6e656c732e4c496e626f756e6458636d704d657373616765730101080205d90630040004190120496e626f756e64206167677265676174652058434d50206d657373616765732e2049742063616e206f6e6c79206265206f6e6520706572205061726149642f626c6f636b2e484f7574626f756e6458636d705374617475730100dd060400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d657373616765730101080205e90630040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402310130040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e6669670100ed0668020000000500000001000000821a06000008000700c817a804000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e284f7665727765696768740001040528f106040010050120546865206d657373616765732074686174206578636565646564206d617820696e646976696475616c206d65737361676520776569676874206275646765742e003901205468657365206d657373616765207374617920696e20746869732073746f72616765206d617020756e74696c207468657920617265206d616e75616c6c79206469737061746368656420766961582060736572766963655f6f766572776569676874602e3c4f766572776569676874436f756e7401002820000000000000000008690120546865206e756d626572206f66206f766572776569676874206d657373616765732065766572207265636f7264656420696e20604f766572776569676874602e20416c736f20646f75626c657320617320746865206e6578748420617661696c61626c652066726565206f76657277656967687420696e6465782e38517565756553757370656e6465640100c004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e01fd040125010001f506782c506f6c6b61646f7458636d000101050135010001f906792843756d756c757358636d000001cd010001fd067a20446d7051756575650120446d7051756575651034436f6e66696775726174696f6e010001071c0700e40b540200044c2054686520636f6e66696775726174696f6e2e2450616765496e646578010005074000000000000000000000000000000000044020546865207061676520696e6465782e1450616765730101040210090704000444205468652071756575652070616765732e284f76657277656967687400010402280d070400046420546865206f766572776569676874206d657373616765732e01650501d101000111077b1c58546f6b656e73011c58546f6b656e730001690501d501083053656c664c6f636174696f6e3d0114010100bd1f04542053656c6620636861696e206c6f636174696f6e2e344261736558636d576569676874282000e1f50500000000104420426173652058434d207765696768742e00f8205468652061637475616c6c792077656967687420666f7220616e2058434d206d6573736167652069732060543a3a4261736558636d576569676874202b6c20543a3a576569676865723a3a77656967687428266d736729602e0115077c2c436861696e427269646765012c436861696e427269646765182c436861696e4e6f6e636573000104010828040004fc20416c6c2077686974656c697374656420636861696e7320616e642074686569722072657370656374697665207472616e73616374696f6e20636f756e74735052656c61796572566f74655468726573686f6c64010010100100000004cc204e756d626572206f6620766f74657320726571756972656420666f7220612070726f706f73616c20746f20657865637574652052656c61796572730101040100c00400046c20547261636b732063757272656e742072656c61796572207365743052656c61796572436f756e7401001010000000000468204e756d626572206f662072656c617965727320696e2073657414566f7465730001080101190721070400085420416c6c206b6e6f776e2070726f706f73616c732e2d0120546865206b6579206973207468652068617368206f66207468652063616c6c20616e6420746865206465706f7369742049442c20746f20656e73757265206974277320756e697175652e245265736f75726365730001040104300400041901205574696c697a6564206279207468652062726964676520736f66747761726520746f206d6170207265736f757263652049447320746f2061637475616c206d6574686f647301790501d901101c436861696e4964080401087c20546865206964656e74696669657220666f72207468697320636861696e2e6d012054686973206d75737420626520756e6971756520616e64206d757374206e6f7420636f6c6c6964652077697468206578697374696e67204944732077697468696e206120736574206f66206272696467656420636861696e732e2050616c6c6574496485062063686e627264676510410120436f6e7374616e7420636f6e66696775726174696f6e20706172616d6574657220746f2073746f726520746865206d6f64756c65206964656e74696669657220666f72207468652070616c6c65742e00390120546865206d6f64756c65206964656e746966696572206d6179206265206f662074686520666f726d2060606050616c6c65744964282a622263686e6272646765222960606020616e6420736574a901207573696e6720746865205b60706172616d657465725f7479706573605d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6d6163726f7323706172616d657465725f7479706573294050726f706f73616c4c69666574696d651010f4010000005052656c61796572566f74655468726573686f6c64101001000000040502205479706520666f722073657474696e6720696e697469616c206e756d626572206f6620766f74657320726571756972656420666f7220612070726f706f73616c20746f2062652065786563757465642028736565205b52656c61796572566f74655468726573686f6c645d20696e2073746f726167652073656374696f6e292e01290796284f726d6c546f6b656e7301284f726d6c546f6b656e731034546f74616c49737375616e636501010405190118400000000000000000000000000000000004902054686520746f74616c2069737375616e6365206f66206120746f6b656e20747970652e144c6f636b7301010802052d073107040008d820416e79206c6971756964697479206c6f636b73206f66206120746f6b656e207479706520756e64657220616e206163636f756e742e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e204163636f756e747301010802052d073d07c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018b8205468652062616c616e6365206f66206120746f6b656e207479706520756e64657220616e206163636f756e742e00fc204e4f54453a2049662074686520746f74616c2069732065766572207a65726f2c206465637265617365206163636f756e7420726566206163636f756e742e001901204e4f54453a2054686973206973206f6e6c79207573656420696e20746865206361736520746861742074686973206d6f64756c65206973207573656420746f2073746f7265282062616c616e6365732e20526573657276657301010802052d074107040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e0001e50108204d61784c6f636b73101032000000002c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e014d0797444f726d6c4173736574526567697374727901444f726d6c417373657452656769737472790c204d65746164617461000104051901ed01040004bc20546865206d65746164617461206f6620616e2061737365742c20696e64657865642062792061737365742069642e444c6f636174696f6e546f41737365744964000104053d0119010400080501204d6170732061206d756c74696c6f636174696f6e20746f20616e206173736574206964202d2075736566756c207768656e2070726f63657373696e672078636d28206d657373616765732e2c4c61737441737365744964010019010400040d0120546865206c6173742070726f636573736564206173736574206964202d2075736564207768656e2061737369676e696e6720612073657175656e7469616c2069642e017d0501e90100015107981c4f726d6c58636d011c4f726d6c58636d0001910501010200015507995907042048436865636b4e6f6e5a65726f53656e64657261079c40436865636b5370656356657273696f6e65071038436865636b547856657273696f6e69071030436865636b47656e657369736d072c38436865636b4d6f7274616c69747971072c28436865636b4e6f6e636579079c2c436865636b5765696768747d079c604368617267655472616e73616374696f6e5061796d656e7481079c8507" + CentrifugeMetadataHex = "0x6d6574610e2110000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173653909011450686173650001146576656e7450010445000118746f70696373290301185665633c543e000050084c646576656c6f706d656e745f72756e74696d653052756e74696d654576656e74000105011853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e001400485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e00150044436f6c6c61746f7253656c656374696f6e04009001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0047001c53657373696f6e040098015470616c6c65745f73657373696f6e3a3a4576656e74001f00204d756c746973696704009c017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e003c001450726f78790400ac017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e003d001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e74003e00245363686564756c65720400bc018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e003f001c436f756e63696c0400c401fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e00400024456c656374696f6e730400c801a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4576656e743c52756e74696d653e0041002444656d6f63726163790400d4018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e004200204964656e746974790400e8017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e0043001c56657374696e670400f0017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e0044002054726561737572790400f4017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e0045001c556e69717565730400f8017870616c6c65745f756e69717565733a3a4576656e743c52756e74696d653e00460020507265696d61676504001501017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e00480040436f6e76696374696f6e566f74696e670400190101a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4576656e743c52756e74696d653e005000245265666572656e646104001d01018070616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d653e0051002457686974656c69737404007d07018070616c6c65745f77686974656c6973743a3a4576656e743c52756e74696d653e00530048546563686e6963616c436f6d6d697474656504008d0701fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e00540070546563686e6963616c436f6d6d69747465654d656d626572736869700400910701fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e005500104665657304009507016c70616c6c65745f666565733a3a4576656e743c52756e74696d653e005a0028506f6f6c53797374656d04009907018870616c6c65745f706f6f6c5f73797374656d3a3a4576656e743c52756e74696d653e005f00144c6f616e730400e507017070616c6c65745f6c6f616e733a3a4576656e743c52756e74696d653e0060002c5065726d697373696f6e730400ed07018870616c6c65745f7065726d697373696f6e733a3a4576656e743c52756e74696d653e00610044436f6c6c61746f72416c6c6f776c6973740400f10701a470616c6c65745f636f6c6c61746f725f616c6c6f776c6973743a3a4576656e743c52756e74696d653e00620018546f6b656e730400f50701a070616c6c65745f726573747269637465645f746f6b656e733a3a4576656e743c52756e74696d653e006300184272696467650400f907017470616c6c65745f6272696467653a3a4576656e743c52756e74696d653e0065003c496e7465726573744163637275616c0400fd07019c70616c6c65745f696e7465726573745f6163637275616c3a3a4576656e743c52756e74696d653e006600204b657973746f726504000108017c70616c6c65745f6b657973746f72653a3a4576656e743c52756e74696d653e0068002c496e766573746d656e747304000508018870616c6c65745f696e766573746d656e74733a3a4576656e743c52756e74696d653e006900504c697175696469747952657761726473426173650400210801e470616c6c65745f726577617264733a3a4576656e743c52756e74696d652c2070616c6c65745f726577617264733a3a496e7374616e6365323e006a00404c6971756964697479526577617264730400250801a070616c6c65745f6c69717569646974795f726577617264733a3a4576656e743c52756e74696d653e006b00384c6971756964697479506f6f6c7304004d08019870616c6c65745f6c69717569646974795f706f6f6c733a3a4576656e743c52756e74696d653e006c0030506f6f6c526567697374727904007108019070616c6c65745f706f6f6c5f72656769737472793a3a4576656e743c52756e74696d653e006d0040426c6f636b52657761726473426173650400790801e470616c6c65745f726577617264733a3a4576656e743c52756e74696d652c2070616c6c65745f726577617264733a3a496e7374616e6365313e006e0030426c6f636b5265776172647304007d08019070616c6c65745f626c6f636b5f726577617264733a3a4576656e743c52756e74696d653e006f00445472616e73666572416c6c6f774c6973740400910801a470616c6c65745f7472616e736665725f616c6c6f776c6973743a3a4576656e743c52756e74696d653e007000544c6971756964697479506f6f6c73476174657761790400950801b870616c6c65745f6c69717569646974795f706f6f6c735f676174657761793a3a4576656e743c52756e74696d653e007300244f72646572426f6f6b04009908018470616c6c65745f6f726465725f626f6f6b3a3a4576656e743c52756e74696d653e00740048466f726569676e496e766573746d656e747304009d0801a870616c6c65745f666f726569676e5f696e766573746d656e74733a3a4576656e743c52756e74696d653e0075003c4f7261636c655072696365466565640400ad08018870616c6c65745f6f7261636c655f666565643a3a4576656e743c52756e74696d653e007600544f7261636c655072696365436f6c6c656374696f6e0400b10801a070616c6c65745f6f7261636c655f636f6c6c656374696f6e3a3a4576656e743c52756e74696d653e00770024416e63686f727356320400b508018470616c6c65745f616e63686f72735f76323a3a4576656e743c52756e74696d653e008200684c6971756964697479506f6f6c734761746577617951756575650400b90801d070616c6c65745f6c69717569646974795f706f6f6c735f676174657761795f71756575653a3a4576656e743c52756e74696d653e0083002458636d7051756575650400c10801a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e0078002c506f6c6b61646f7458636d0400c508016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e0079002843756d756c757358636d0400cd08018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e007a003458636d5472616e736163746f720400d108019470616c6c65745f78636d5f7472616e736163746f723a3a4576656e743c52756e74696d653e007d002c4f726d6c58546f6b656e730400d90801706f726d6c5f78746f6b656e733a3a4576656e743c52756e74696d653e007e00304d65737361676551756575650400dd08019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e007f00284f726d6c546f6b656e730400e508016c6f726d6c5f746f6b656e733a3a4576656e743c52756e74696d653e0096002c436861696e4272696467650400e908016c636861696e6272696467653a3a4576656e743c52756e74696d653e009700444f726d6c417373657452656769737472790400ed0801ac6f726d6c5f61737365745f72656769737472793a3a6d6f64756c653a3a4576656e743c52756e74696d653e0098001c4f726d6c58636d0400f10801606f726d6c5f78636d3a3a4576656e743c52756e74696d653e0099000c45564d0400f508016870616c6c65745f65766d3a3a4576656e743c52756e74696d653e00a0001c426173654665650400fd08015870616c6c65745f626173655f6665653a3a4576656e7400a20020457468657265756d04000109015870616c6c65745f657468657265756d3a3a4576656e7400a3006c4c6971756964697479506f6f6c734178656c6172476174657761790400250901a46178656c61725f676174657761795f707265636f6d70696c653a3a4576656e743c52756e74696d653e00a500105375646f04002909016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00c80020506f6f6c4665657304002d09018070616c6c65745f706f6f6c5f666565733a3a4576656e743c52756e74696d653e00fa001c52656d61726b7304003109017870616c6c65745f72656d61726b733a3a4576656e743c52756e74696d653e00fb0020546f6b656e4d757804003509018070616c6c65745f746f6b656e5f6d75783a3a4576656e743c52756e74696d653e00fd0000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564240118576569676874000120646d715f6865616430014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c65739401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940000020000980c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749c0c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e74a0017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e74a0017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c74a401384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e74a0017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a0083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c7533320000a40418526573756c7408045401a8044501640108084f6b0400a8000000000c4572720400640000010000a80000040000ac0c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001143450726f78794578656375746564040118726573756c74a401384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f74797065b00130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e646578b4010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736830013443616c6c486173684f663c543e000204e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065b00130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00030448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065b00130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040450412070726f7879207761732072656d6f7665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b0084c646576656c6f706d656e745f72756e74696d652450726f7879547970650001340c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e6365000200205f5374616b696e67000300204e6f6e50726f787900040018426f72726f7700050018496e766573740006003c50726f78794d616e6167656d656e74000700484b657973746f72654d616e6167656d656e7400080030506f644f7065726174696f6e0009001c506f6441757468000a00505065726d697373696f6e4d616e6167656d656e74000b00205472616e73666572000c0000b40000050400b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74a401384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000118245363686564756c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736bc001785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648001404f7074696f6e3c5461736b4e616d653e000118726573756c74a401384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736bc001785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648001404f7074696f6e3c5461736b4e616d653e00030429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736bc001785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648001404f7074696f6e3c5461736b4e616d653e0004043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e545065726d616e656e746c794f7665727765696768740801107461736bc001785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648001404f7074696f6e3c5461736b4e616d653e000504f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e04304576656e747320747970652ec000000408101000c40c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736830011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736830011c543a3a48617368000114766f746564780110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736830011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736830011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736830011c543a3a48617368000118726573756c74a401384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736830011c543a3a48617368000118726573756c74a401384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736830011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c80c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144576656e7404045400011c1c4e65775465726d04012c6e65775f6d656d62657273cc01ec5665633c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2042616c616e63654f663c543e293e000014450141206e6577207465726d2077697468206e65775f6d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e550174686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e65644501666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e645501736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f2c626567696e20776974682e24456d7074795465726d00010831014e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc8604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f72000204e4496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b65640401186d656d6265720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000308410141206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f723060456d7074795465726d602e2452656e6f756e63656404012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400040498536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0005103901412063616e6469646174652077617320736c617368656420627920616d6f756e742064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722872756e6e65722d75702e00e44e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408012c736561745f686f6c6465720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000604350141207365617420686f6c6465722077617320736c617368656420627920616d6f756e74206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc000002d000d000000408001800d40c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e740404540001442050726f706f73656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000004bc41206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000104d841207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400020494416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c537461727465640801247265665f696e64657810013c5265666572656e64756d496e6465780001247468726573686f6c64d80134566f74655468726573686f6c640003045c41207265666572656e64756d2068617320626567756e2e185061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000404ac412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f745061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000504ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c65640401247265665f696e64657810013c5265666572656e64756d496e6465780006048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e2444656c65676174656408010c77686f000130543a3a4163636f756e744964000118746172676574000130543a3a4163636f756e744964000704dc416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404011c6163636f756e74000130543a3a4163636f756e744964000804e4416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c010c77686f000130543a3a4163636f756e74496400013470726f706f73616c5f6861736830011c543a3a48617368000114756e74696c100144426c6f636b4e756d626572466f723c543e00090494416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e2c426c61636b6c697374656404013470726f706f73616c5f6861736830011c543a3a48617368000a04c4412070726f706f73616c5f6861736820686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e14566f7465640c0114766f746572000130543a3a4163636f756e7449640001247265665f696e64657810013c5265666572656e64756d496e646578000110766f7465dc01644163636f756e74566f74653c42616c616e63654f663c543e3e000b0490416e206163636f756e742068617320766f74656420696e2061207265666572656e64756d205365636f6e6465640801207365636f6e646572000130543a3a4163636f756e74496400012870726f705f696e64657810012450726f70496e646578000c048c416e206163636f756e742068617320736563636f6e64656420612070726f706f73616c4050726f706f73616c43616e63656c656404012870726f705f696e64657810012450726f70496e646578000d0460412070726f706f73616c20676f742063616e63656c65642e2c4d657461646174615365740801146f776e6572e401344d657461646174614f776e6572043c4d65746164617461206f776e65722e01106861736830011c543a3a486173680438507265696d61676520686173682e0e04d44d6574616461746120666f7220612070726f706f73616c206f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c65617265640801146f776e6572e401344d657461646174614f776e6572043c4d65746164617461206f776e65722e01106861736830011c543a3a486173680438507265696d61676520686173682e0f04e44d6574616461746120666f7220612070726f706f73616c206f722061207265666572656e64756d20686173206265656e20636c65617265642e4c4d657461646174615472616e736665727265640c0128707265765f6f776e6572e401344d657461646174614f776e6572046050726576696f7573206d65746164617461206f776e65722e01146f776e6572e401344d657461646174614f776e6572044c4e6577206d65746164617461206f776e65722e01106861736830011c543a3a486173680438507265696d61676520686173682e1004ac4d6574616461746120686173206265656e207472616e7366657272656420746f206e6577206f776e65722e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d80c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f7269747900020000dc0c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f7465e00110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e636500010000e00c4070616c6c65745f64656d6f637261637910766f746510566f74650000040008000000e40c4070616c6c65745f64656d6f6372616379147479706573344d657461646174614f776e657200010c2045787465726e616c0000002050726f706f73616c040010012450726f70496e646578000100285265666572656e64756d040010013c5265666572656e64756d496e64657800020000e80c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001442c4964656e7469747953657404010c77686f000130543a3a4163636f756e744964000004ec41206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e3c4964656e74697479436c656172656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000104cc41206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e384964656e746974794b696c6c656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000204c441206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e484a756467656d656e7452657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780003049c41206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e504a756467656d656e74556e72657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780004048841206a756467656d656e74207265717565737420776173207265747261637465642e384a756467656d656e74476976656e080118746172676574000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780005049441206a756467656d656e742077617320676976656e2062792061207265676973747261722e38526567697374726172416464656404013c7265676973747261725f696e646578100138526567697374726172496e646578000604584120726567697374726172207761732061646465642e405375624964656e7469747941646465640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000704f441207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e485375624964656e7469747952656d6f7665640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e485375624964656e746974795265766f6b65640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000908190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d20746865c86d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e38417574686f726974794164646564040124617574686f72697479000130543a3a4163636f756e744964000a047c4120757365726e616d6520617574686f72697479207761732061646465642e40417574686f7269747952656d6f766564040124617574686f72697479000130543a3a4163636f756e744964000b04844120757365726e616d6520617574686f72697479207761732072656d6f7665642e2c557365726e616d6553657408010c77686f000130543a3a4163636f756e744964000120757365726e616d65ec012c557365726e616d653c543e000c04744120757365726e616d65207761732073657420666f72206077686f602e38557365726e616d655175657565640c010c77686f000130543a3a4163636f756e744964000120757365726e616d65ec012c557365726e616d653c543e00012865787069726174696f6e100144426c6f636b4e756d626572466f723c543e000d0419014120757365726e616d6520776173207175657565642c20627574206077686f60206d75737420616363657074206974207072696f7220746f206065787069726174696f6e602e48507265617070726f76616c4578706972656404011477686f7365000130543a3a4163636f756e744964000e043901412071756575656420757365726e616d6520706173736564206974732065787069726174696f6e20776974686f7574206265696e6720636c61696d656420616e64207761732072656d6f7665642e485072696d617279557365726e616d6553657408010c77686f000130543a3a4163636f756e744964000120757365726e616d65ec012c557365726e616d653c543e000f0401014120757365726e616d6520776173207365742061732061207072696d61727920616e642063616e206265206c6f6f6b65642075702066726f6d206077686f602e5c44616e676c696e67557365726e616d6552656d6f76656408010c77686f000130543a3a4163636f756e744964000120757365726e616d65ec012c557365726e616d653c543e0010085d01412064616e676c696e6720757365726e616d652028617320696e2c206120757365726e616d6520636f72726573706f6e64696e6720746f20616e206163636f756e742074686174206861732072656d6f766564206974736c6964656e746974792920686173206265656e2072656d6f7665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ec0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000f00c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f40c3c70616c6c65745f74726561737572791870616c6c6574144576656e740804540004490001382050726f706f73656404013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000004344e65772070726f706f73616c2e205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000104e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640002047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e2052656a656374656408013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800011c736c617368656418013c42616c616e63654f663c542c20493e000304b0412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00040488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0005042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0006047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640007049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000804cc54686520696e6163746976652066756e6473206f66207468652070616c6c65742068617665206265656e20757064617465642e4841737365745370656e64417070726f766564180114696e6465781001285370656e64496e64657800012861737365745f6b696e64a80130543a3a41737365744b696e64000118616d6f756e74180150417373657442616c616e63654f663c542c20493e00012c62656e6566696369617279000138543a3a42656e656669636961727900012876616c69645f66726f6d100144426c6f636b4e756d626572466f723c543e0001246578706972655f6174100144426c6f636b4e756d626572466f723c543e000904b441206e6577206173736574207370656e642070726f706f73616c20686173206265656e20617070726f7665642e4041737365745370656e64566f69646564040114696e6465781001285370656e64496e646578000a0474416e20617070726f766564207370656e642077617320766f696465642e1050616964080114696e6465781001285370656e64496e6465780001287061796d656e745f6964a801643c543a3a5061796d6173746572206173205061793e3a3a4964000b044c41207061796d656e742068617070656e65642e345061796d656e744661696c6564080114696e6465781001285370656e64496e6465780001287061796d656e745f6964a801643c543a3a5061796d6173746572206173205061793e3a3a4964000c049041207061796d656e74206661696c656420616e642063616e20626520726574726965642e385370656e6450726f636573736564040114696e6465781001285370656e64496e646578000d084d0141207370656e64207761732070726f63657373656420616e642072656d6f7665642066726f6d207468652073746f726167652e204974206d696768742068617665206265656e207375636365737366756c6c797070616964206f72206974206d6179206861766520657870697265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f80c3870616c6c65745f756e69717565731870616c6c6574144576656e7408045400044900016c1c437265617465640c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e1846726f7a656e080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640006045c536f6d6520606974656d60207761732066726f7a656e2e18546861776564080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640007045c536f6d6520606974656d6020776173207468617765642e40436f6c6c656374696f6e46726f7a656e040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400080474536f6d652060636f6c6c656374696f6e60207761732066726f7a656e2e40436f6c6c656374696f6e546861776564040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173207468617765642e304f776e65724368616e676564080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e4964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e744964000b0470546865206d616e6167656d656e74207465616d206368616e6765642e40417070726f7665645472616e73666572100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e444974656d5374617475734368616e676564040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e4964000e041101412060636f6c6c656374696f6e602068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d657461646174615365740c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106461746101010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e780110626f6f6c000f04b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e4964001004b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e2c4d65746164617461536574100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001106461746101010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e780110626f6f6c001104984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e3c4d65746164617461436c6561726564080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d4964001204984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73050101385665633c543a3a4974656d49643e001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e30417474726962757465536574100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d090101444f7074696f6e3c543a3a4974656d49643e00010c6b65790101016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756501010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e00140405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c65617265640c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d090101444f7074696f6e3c543a3a4974656d49643e00010c6b65790101016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0015040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e0d01015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001604c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001704a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e304974656d5072696365536574100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f6275796572110101504f7074696f6e3c543a3a4163636f756e7449643e0018048c546865207072696365207761732073657420666f722074686520696e7374616e63652e404974656d507269636552656d6f766564080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640019049c54686520707269636520666f722074686520696e7374616e6365207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001a044c416e206974656d2077617320626f756768742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fc0c386366675f7072696d697469766573147479706573184974656d49640000040018011075313238000001010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e00000501000002fc00090104184f7074696f6e04045401fc0108104e6f6e6500000010536f6d650400fc00000100000d0104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c0000010000110104184f7074696f6e04045401000108104e6f6e6500000010536f6d65040000000001000015010c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736830011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736830011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736830011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657419010c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144576656e740804540004490001082444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000104f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65741d010c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636bb4013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c2101014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636bb4013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c2101014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c7979070120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7979070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7979070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7979070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7979070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7979070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736830011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736830011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574210110346672616d655f737570706f72741874726169747324707265696d616765731c426f756e6465640804540125010448017107010c184c656761637904011068617368300124483a3a4f757470757400000018496e6c696e65040075070134426f756e646564496e6c696e65000100184c6f6f6b757008011068617368300124483a3a4f757470757400010c6c656e10010c753332000200002501084c646576656c6f706d656e745f72756e74696d652c52756e74696d6543616c6c0001f01853797374656d0400290101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400390101d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400710101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003002042616c616e6365730400750101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00140044436f6c6c61746f7253656c656374696f6e04008d0101d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0047001c53657373696f6e0400910101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e001f00204d756c74697369670400a10101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e003c001450726f78790400a90101a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e003d001c5574696c6974790400b50101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e003e00245363686564756c65720400290201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e003f001c436f756e63696c0400310201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e00400024456c656374696f6e730400350201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e732c2052756e74696d653e0041002444656d6f637261637904003d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e004200204964656e7469747904004d0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e0043001c56657374696e670400090301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e0044002054726561737572790400110301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e0045001c556e69717565730400150301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556e69717565732c2052756e74696d653e00460020507265696d6167650400250301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e00480040436f6e76696374696f6e566f74696e6704002d0301d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e76696374696f6e566f74696e672c2052756e74696d653e005000245265666572656e64610400410301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64612c2052756e74696d653e0051002457686974656c6973740400490301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c57686974656c6973742c2052756e74696d653e00530048546563686e6963616c436f6d6d697474656504004d0301dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e00540070546563686e6963616c436f6d6d69747465654d656d626572736869700400510301050273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465654d656d626572736869702c2052756e74696d653e00550010466565730400550301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466565732c2052756e74696d653e005a0018416e63686f7204005d0301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c416e63686f722c2052756e74696d653e005b0028506f6f6c53797374656d0400650301bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6f6c53797374656d2c2052756e74696d653e005f00144c6f616e730400750301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6f616e732c2052756e74696d653e0060002c5065726d697373696f6e730400110401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5065726d697373696f6e732c2052756e74696d653e00610044436f6c6c61746f72416c6c6f776c6973740400250401d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f72416c6c6f776c6973742c2052756e74696d653e00620018546f6b656e730400290401ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546f6b656e732c2052756e74696d653e0063001842726964676504002d0401ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4272696467652c2052756e74696d653e006500204b657973746f72650400310401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4b657973746f72652c2052756e74696d653e0068002c496e766573746d656e74730400450401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e766573746d656e74732c2052756e74696d653e006900404c69717569646974795265776172647304004d0401d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6971756964697479526577617264732c2052756e74696d653e006b00384c6971756964697479506f6f6c730400510401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6971756964697479506f6f6c732c2052756e74696d653e006c0030506f6f6c52656769737472790400590401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6f6c52656769737472792c2052756e74696d653e006d0030426c6f636b526577617264730400bd0401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426c6f636b526577617264732c2052756e74696d653e006f00445472616e73666572416c6c6f774c6973740400c10401d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73666572416c6c6f774c6973742c2052756e74696d653e007000544c6971756964697479506f6f6c73476174657761790400010501e90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6971756964697479506f6f6c73476174657761792c2052756e74696d653e007300244f72646572426f6f6b04002d0501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f72646572426f6f6b2c2052756e74696d653e0074003c4f7261636c655072696365466565640400390501d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7261636c655072696365466565642c2052756e74696d653e007600544f7261636c655072696365436f6c6c656374696f6e04003d0501e90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7261636c655072696365436f6c6c656374696f6e2c2052756e74696d653e00770024416e63686f727356320400510501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c416e63686f727356322c2052756e74696d653e008200684c6971756964697479506f6f6c734761746577617951756575650400550501fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6971756964697479506f6f6c734761746577617951756575652c2052756e74696d653e0083002458636d7051756575650400590501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e0078002c506f6c6b61646f7458636d04005d0501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e0079001c58546f6b656e730400910601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58546f6b656e732c2052756e74696d653e007c003458636d5472616e736163746f720400a10601c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d5472616e736163746f722c2052756e74696d653e007d00304d65737361676551756575650400c90601c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e007f002c436861696e4272696467650400d10601c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436861696e4272696467652c2052756e74696d653e009700444f726d6c417373657452656769737472790400d50601d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f726d6c417373657452656769737472792c2052756e74696d653e0098001c4f726d6c58636d0400010701b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f726d6c58636d2c2052756e74696d653e0099000c45564d0400050701a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c45564d2c2052756e74696d653e00a0001c426173654665650400150701b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426173654665652c2052756e74696d653e00a20020457468657265756d04001d0701b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c457468657265756d2c2052756e74696d653e00a3006c4c6971756964697479506f6f6c734178656c6172476174657761790400450701010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6971756964697479506f6f6c734178656c6172476174657761792c2052756e74696d653e00a500105375646f04004d0701a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00c80020506f6f6c466565730400510701b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6f6c466565732c2052756e74696d653e00fa001c52656d61726b730400550701b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52656d61726b732c2052756e74696d653e00fb0020546f6b656e4d757804006d0701b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546f6b656e4d75782c2052756e74696d653e00fd000029010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d732d0101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973350101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d010000023101003101000004083434003501000002340039010c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174613d01015450617261636861696e496e686572656e744461746100000490536565205b6050616c6c65743a3a7365745f76616c69646174696f6e5f64617461605d2e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653401345570776172644d657373616765000104a4536565205b6050616c6c65743a3a7375646f5f73656e645f7570776172645f6d657373616765605d2e44617574686f72697a655f75706772616465080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00020488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e60656e6163745f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000304a4536565205b6050616c6c65743a3a656e6163745f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d01089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174614101015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174654901015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765735101016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573590101a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e000041010c4c706f6c6b61646f745f7072696d6974697665730876365c50657273697374656456616c69646174696f6e446174610804480130044e01100010012c706172656e745f6865616445010120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74300104480001306d61785f706f765f73697a6510010c753332000045010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040034011c5665633c75383e000049010c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465734d01014442547265655365743c5665633c75383e3e00004d010420425472656553657404045401340004003501000000510100000255010055010860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736734013c446f776e776172644d65737361676500005901042042547265654d617008044b015d01045601610100040069010000005d010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000610100000265010065010860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746134015073705f7374643a3a7665633a3a5665633c75383e000069010000026d01006d01000004085d0161010071010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75010c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374790101504163636f756e7449644c6f6f6b75704f663c543e00011476616c756585010128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365790101504163636f756e7449644c6f6f6b75704f663c543e00011064657374790101504163636f756e7449644c6f6f6b75704f663c543e00011476616c756585010128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374790101504163636f756e7449644c6f6f6b75704f663c543e00011476616c756585010128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374790101504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f9401445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f6672656585010128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e8901014c41646a7573746d656e74446972656374696f6e00011464656c746185010128543a3a42616c616e6365000904b0536565205b6050616c6c65743a3a666f7263655f61646a7573745f746f74616c5f69737375616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e79010c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801a8011408496404000001244163636f756e74496400000014496e64657804007d0101304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400810101205b75383b2032305d000400007d01000006a80081010000031400000008008501000006180089010c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e637265617365000000204465637265617365000100008d010c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e65779401445665633c543a3a4163636f756e7449643e00000488536565205b6050616c6c65743a3a7365745f696e76756c6e657261626c6573605d2e587365745f646573697265645f63616e6469646174657304010c6d617810010c7533320001049c536565205b6050616c6c65743a3a7365745f646573697265645f63616e64696461746573605d2e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e0002048c536565205b6050616c6c65743a3a7365745f63616e6469646163795f626f6e64605d2e5472656769737465725f61735f63616e64696461746500030498536565205b6050616c6c65743a3a72656769737465725f61735f63616e646964617465605d2e306c656176655f696e74656e7400040474536565205b6050616c6c65743a3a6c656176655f696e74656e74605d2e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400050484536565205b6050616c6c65743a3a6164645f696e76756c6e657261626c65605d2e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400060490536565205b6050616c6c65743a3a72656d6f76655f696e76756c6e657261626c65605d2e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00070470536565205b6050616c6c65743a3a7570646174655f626f6e64605d2e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400080490536565205b6050616c6c65743a3a74616b655f63616e6469646174655f736c6f74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91010c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579739501011c543a3a4b65797300011470726f6f6634011c5665633c75383e00000464536565205b6050616c6c65743a3a7365745f6b657973605d2e2870757267655f6b6579730001046c536565205b6050616c6c65743a3a70757267655f6b657973605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9501084c646576656c6f706d656e745f72756e74696d652c53657373696f6e4b657973000008011061757261990101c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000134626c6f636b5f72657761726473990101e43c426c6f636b52657761726473206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300009901104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c6963000004009d01013c737232353531393a3a5075626c696300009d010c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a1010c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965739401445665633c543a3a4163636f756e7449643e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000494536565205b6050616c6c65743a3a61735f6d756c74695f7468726573686f6c645f31605d2e2061735f6d756c74691401247468726573686f6c64b4010c7531360001446f746865725f7369676e61746f726965739401445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74a50101904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687424011857656967687400010464536565205b6050616c6c65743a3a61735f6d756c7469605d2e40617070726f76655f61735f6d756c74691401247468726573686f6c64b4010c7531360001446f746865725f7369676e61746f726965739401445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74a50101904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f77656967687424011857656967687400020484536565205b6050616c6c65743a3a617070726f76655f61735f6d756c7469605d2e3c63616e63656c5f61735f6d756c74691001247468726573686f6c64b4010c7531360001446f746865725f7369676e61746f726965739401445665633c543a3a4163636f756e7449643e00012474696d65706f696e74a0017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d00030480536565205b6050616c6c65743a3a63616e63656c5f61735f6d756c7469605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea50104184f7074696f6e04045401a00108104e6f6e6500000010536f6d650400a00000010000a9010c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c790101504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065ad0101504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a70726f7879605d2e246164645f70726f78790c012064656c6567617465790101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065b00130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00010468536565205b6050616c6c65743a3a6164645f70726f7879605d2e3072656d6f76655f70726f78790c012064656c6567617465790101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065b00130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00020474536565205b6050616c6c65743a3a72656d6f76655f70726f7879605d2e3872656d6f76655f70726f786965730003047c536565205b6050616c6c65743a3a72656d6f76655f70726f78696573605d2e2c6372656174655f707572650c012870726f78795f74797065b00130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e646578b4010c75313600040470536565205b6050616c6c65743a3a6372656174655f70757265605d2e246b696c6c5f7075726514011c737061776e6572790101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065b00130543a3a50726f787954797065000114696e646578b4010c753136000118686569676874b1010144426c6f636b4e756d626572466f723c543e0001246578745f696e646578b101010c75333200050468536565205b6050616c6c65743a3a6b696c6c5f70757265605d2e20616e6e6f756e63650801107265616c790101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736830013443616c6c486173684f663c543e00060464536565205b6050616c6c65743a3a616e6e6f756e6365605d2e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c790101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736830013443616c6c486173684f663c543e00070490536565205b6050616c6c65743a3a72656d6f76655f616e6e6f756e63656d656e74605d2e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465790101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736830013443616c6c486173684f663c543e00080490536565205b6050616c6c65743a3a72656a6563745f616e6e6f756e63656d656e74605d2e3c70726f78795f616e6e6f756e63656410012064656c6567617465790101504163636f756e7449644c6f6f6b75704f663c543e0001107265616c790101504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065ad0101504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00090480536565205b6050616c6c65743a3a70726f78795f616e6e6f756e636564605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead0104184f7074696f6e04045401b00108104e6f6e6500000010536f6d650400b00000010000b1010000061000b5010c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73b901017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e646578b4010c75313600011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c73b901017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ebd010154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c73b901017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb901000002250100bd01084c646576656c6f706d656e745f72756e74696d65304f726967696e43616c6c65720001241873797374656d0400c10101746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c0400c50101010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e0040001c4f726967696e730400c901017470616c6c65745f637573746f6d5f6f726967696e733a3a4f726967696e00520048546563686e6963616c436f6d6d69747465650400cd0101010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e005400544c6971756964697479506f6f6c73476174657761790400d101019870616c6c65745f6c69717569646974795f706f6f6c735f676174657761793a3a4f726967696e0073002c506f6c6b61646f7458636d0400d901014870616c6c65745f78636d3a3a4f726967696e0079002843756d756c757358636d04001902016863756d756c75735f70616c6c65745f78636d3a3a4f726967696e007a0020457468657265756d04001d02015c70616c6c65745f657468657265756d3a3a4f726967696e00a30010566f69640400250201410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400080000c1010c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000c501084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000c901143872756e74696d655f636f6d6d6f6e1c6f726967696e730c676f765470616c6c65745f637573746f6d5f6f726967696e73184f726967696e0001144457686974656c697374656443616c6c65720000002454726561737572657200010024506f6f6c41646d696e0002004c5265666572656e64756d43616e63656c6c6572000300405265666572656e64756d4b696c6c657200040000cd01084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000d1010c7870616c6c65745f6c69717569646974795f706f6f6c735f67617465776179186f726967696e34476174657761794f726967696e00010418446f6d61696e0400d5010134446f6d61696e4164647265737300000000d5010c246366675f747970657338646f6d61696e5f6164647265737334446f6d61696e416464726573730001082843656e7472696675676504000401205b75383b2033325d0000000c45564d08002c012845564d436861696e49640000810101205b75383b2032305d00010000d9010c2870616c6c65745f78636d1870616c6c6574184f726967696e0001080c58636d0400dd0101204c6f636174696f6e00000020526573706f6e73650400dd0101204c6f636174696f6e00010000dd01102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72e10101244a756e6374696f6e730000e101102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400e50101484172633c5b4a756e6374696f6e3b20315d3e0001000858320400fd0101484172633c5b4a756e6374696f6e3b20325d3e0002000858330400010201484172633c5b4a756e6374696f6e3b20335d3e0003000858340400050201484172633c5b4a756e6374696f6e3b20345d3e0004000858350400090201484172633c5b4a756e6374696f6e3b20355d3e00050008583604000d0201484172633c5b4a756e6374696f6e3b20365d3e0006000858370400110201484172633c5b4a756e6374696f6e3b20375d3e0007000858380400150201484172633c5b4a756e6374696f6e3b20385d3e00080000e50100000301000000e90100e901102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400b101010c7533320000002c4163636f756e744964333208011c6e6574776f726bed0101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bed0101444f7074696f6e3c4e6574776f726b49643e000114696e64657828010c753634000200304163636f756e744b6579323008011c6e6574776f726bed0101444f7074696f6e3c4e6574776f726b49643e00010c6b6579810101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e646578040085010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964f5010118426f6479496400011070617274f9010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400f10101244e6574776f726b496400090000ed0104184f7074696f6e04045401f1010108104e6f6e6500000010536f6d650400f1010000010000f101102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d6265722c010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f696428010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000f501100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040044011c5b75383b20345d00010014496e6465780400b101010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000f901100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74b101010c753332000100204672616374696f6e08010c6e6f6db101010c75333200011464656e6f6db101010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6db101010c75333200011464656e6f6db101010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6db101010c75333200011464656e6f6db101010c75333200040000fd0100000302000000e90100010200000303000000e90100050200000304000000e90100090200000305000000e901000d0200000306000000e90100110200000307000000e90100150200000308000000e9010019020c4863756d756c75735f70616c6c65745f78636d1870616c6c6574184f726967696e0001081452656c6179000000405369626c696e6750617261636861696e04005d010118506172614964000100001d02083c70616c6c65745f657468657265756d245261774f726967696e0001044c457468657265756d5472616e73616374696f6e04002102011048313630000000002102083c7072696d69746976655f7479706573104831363000000400810101205b75383b2032305d00002502081c73705f636f726510566f69640001000029020c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f6469632d0201ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000464536565205b6050616c6c65743a3a7363686564756c65605d2e1863616e63656c0801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001045c536565205b6050616c6c65743a3a63616e63656c605d2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f6469632d0201ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0002047c536565205b6050616c6c65743a3a7363686564756c655f6e616d6564605d2e3063616e63656c5f6e616d656404010869640401205461736b4e616d6500030474536565205b6050616c6c65743a3a63616e63656c5f6e616d6564605d2e387363686564756c655f61667465721001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f6469632d0201ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004047c536565205b6050616c6c65743a3a7363686564756c655f6166746572605d2e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f6469632d0201ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00050494536565205b6050616c6c65743a3a7363686564756c655f6e616d65645f6166746572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d0204184f7074696f6e04045401c00108104e6f6e6500000010536f6d650400c0000001000031020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d626572739401445665633c543a3a4163636f756e7449643e0001147072696d65110101504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e7400000470536565205b6050616c6c65743a3a7365745f6d656d62657273605d2e1c6578656375746508012070726f706f73616c2501017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64b101010c75333200010460536565205b6050616c6c65743a3a65786563757465605d2e1c70726f706f73650c01247468726573686f6c64b101012c4d656d626572436f756e7400012070726f706f73616c2501017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64b101010c75333200020460536565205b6050616c6c65743a3a70726f706f7365605d2e10766f74650c012070726f706f73616c30011c543a3a48617368000114696e646578b101013450726f706f73616c496e64657800011c617070726f7665780110626f6f6c00030454536565205b6050616c6c65743a3a766f7465605d2e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736830011c543a3a4861736800050490536565205b6050616c6c65743a3a646973617070726f76655f70726f706f73616c605d2e14636c6f736510013470726f706f73616c5f6861736830011c543a3a48617368000114696e646578b101013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642401185765696768740001306c656e6774685f626f756e64b101010c75333200060458536565205b6050616c6c65743a3a636c6f7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35020c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c65741043616c6c04045400011810766f7465080114766f7465739401445665633c543a3a4163636f756e7449643e00011476616c75658501013042616c616e63654f663c543e00000454536565205b6050616c6c65743a3a766f7465605d2e3072656d6f76655f766f74657200010474536565205b6050616c6c65743a3a72656d6f76655f766f746572605d2e407375626d69745f63616e64696461637904013c63616e6469646174655f636f756e74b101010c75333200020484536565205b6050616c6c65743a3a7375626d69745f63616e646964616379605d2e4872656e6f756e63655f63616e64696461637904012872656e6f756e63696e673902012852656e6f756e63696e670003048c536565205b6050616c6c65743a3a72656e6f756e63655f63616e646964616379605d2e3472656d6f76655f6d656d6265720c010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e000128736c6173685f626f6e64780110626f6f6c000138726572756e5f656c656374696f6e780110626f6f6c00040478536565205b6050616c6c65743a3a72656d6f76655f6d656d626572605d2e50636c65616e5f646566756e63745f766f746572730801286e756d5f766f7465727310010c75333200012c6e756d5f646566756e637410010c75333200050494536565205b6050616c6c65743a3a636c65616e5f646566756e63745f766f74657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3902086470616c6c65745f656c656374696f6e735f70687261676d656e2852656e6f756e63696e6700010c184d656d6265720000002052756e6e657255700001002443616e6469646174650400b101010c753332000200003d020c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c04045400014c1c70726f706f736508012070726f706f73616c21010140426f756e64656443616c6c4f663c543e00011476616c75658501013042616c616e63654f663c543e00000460536565205b6050616c6c65743a3a70726f706f7365605d2e187365636f6e6404012070726f706f73616cb101012450726f70496e6465780001045c536565205b6050616c6c65743a3a7365636f6e64605d2e10766f74650801247265665f696e646578b101013c5265666572656e64756d496e646578000110766f7465dc01644163636f756e74566f74653c42616c616e63654f663c543e3e00020454536565205b6050616c6c65743a3a766f7465605d2e40656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e64657800030484536565205b6050616c6c65743a3a656d657267656e63795f63616e63656c605d2e4065787465726e616c5f70726f706f736504012070726f706f73616c21010140426f756e64656443616c6c4f663c543e00040484536565205b6050616c6c65743a3a65787465726e616c5f70726f706f7365605d2e6465787465726e616c5f70726f706f73655f6d616a6f7269747904012070726f706f73616c21010140426f756e64656443616c6c4f663c543e000504a8536565205b6050616c6c65743a3a65787465726e616c5f70726f706f73655f6d616a6f72697479605d2e6065787465726e616c5f70726f706f73655f64656661756c7404012070726f706f73616c21010140426f756e64656443616c6c4f663c543e000604a4536565205b6050616c6c65743a3a65787465726e616c5f70726f706f73655f64656661756c74605d2e28666173745f747261636b0c013470726f706f73616c5f6861736830011c543a3a48617368000134766f74696e675f706572696f64100144426c6f636b4e756d626572466f723c543e00011464656c6179100144426c6f636b4e756d626572466f723c543e0007046c536565205b6050616c6c65743a3a666173745f747261636b605d2e347665746f5f65787465726e616c04013470726f706f73616c5f6861736830011c543a3a4861736800080478536565205b6050616c6c65743a3a7665746f5f65787465726e616c605d2e4463616e63656c5f7265666572656e64756d0401247265665f696e646578b101013c5265666572656e64756d496e64657800090488536565205b6050616c6c65743a3a63616e63656c5f7265666572656e64756d605d2e2064656c65676174650c0108746f790101504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6e41020128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000a0464536565205b6050616c6c65743a3a64656c6567617465605d2e28756e64656c6567617465000b046c536565205b6050616c6c65743a3a756e64656c6567617465605d2e58636c6561725f7075626c69635f70726f706f73616c73000c049c536565205b6050616c6c65743a3a636c6561725f7075626c69635f70726f706f73616c73605d2e18756e6c6f636b040118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e000d045c536565205b6050616c6c65743a3a756e6c6f636b605d2e2c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e646578000e0470536565205b6050616c6c65743a3a72656d6f76655f766f7465605d2e4472656d6f76655f6f746865725f766f7465080118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c5265666572656e64756d496e646578000f0488536565205b6050616c6c65743a3a72656d6f76655f6f746865725f766f7465605d2e24626c61636b6c69737408013470726f706f73616c5f6861736830011c543a3a4861736800013c6d617962655f7265665f696e6465784502015c4f7074696f6e3c5265666572656e64756d496e6465783e00100468536565205b6050616c6c65743a3a626c61636b6c697374605d2e3c63616e63656c5f70726f706f73616c04012870726f705f696e646578b101012450726f70496e64657800110480536565205b6050616c6c65743a3a63616e63656c5f70726f706f73616c605d2e307365745f6d657461646174610801146f776e6572e401344d657461646174614f776e65720001286d617962655f686173684902013c4f7074696f6e3c543a3a486173683e00120474536565205b6050616c6c65743a3a7365745f6d65746164617461605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41020c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000450204184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000490204184f7074696f6e04045401300108104e6f6e6500000010536f6d6504003000000100004d020c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c040454000158346164645f72656769737472617204011c6163636f756e74790101504163636f756e7449644c6f6f6b75704f663c543e00000478536565205b6050616c6c65743a3a6164645f726567697374726172605d2e307365745f6964656e74697479040110696e666f5102016c426f783c543a3a4964656e74697479496e666f726d6174696f6e3e00010474536565205b6050616c6c65743a3a7365745f6964656e74697479605d2e207365745f7375627304011073756273e10201645665633c28543a3a4163636f756e7449642c2044617461293e00020464536565205b6050616c6c65743a3a7365745f73756273605d2e38636c6561725f6964656e746974790003047c536565205b6050616c6c65743a3a636c6561725f6964656e74697479605d2e44726571756573745f6a756467656d656e740801247265675f696e646578b1010138526567697374726172496e64657800011c6d61785f6665658501013042616c616e63654f663c543e00040488536565205b6050616c6c65743a3a726571756573745f6a756467656d656e74605d2e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005047c536565205b6050616c6c65743a3a63616e63656c5f72657175657374605d2e1c7365745f666565080114696e646578b1010138526567697374726172496e64657800010c6665658501013042616c616e63654f663c543e00060460536565205b6050616c6c65743a3a7365745f666565605d2e387365745f6163636f756e745f6964080114696e646578b1010138526567697374726172496e64657800010c6e6577790101504163636f756e7449644c6f6f6b75704f663c543e0007047c536565205b6050616c6c65743a3a7365745f6163636f756e745f6964605d2e287365745f6669656c6473080114696e646578b1010138526567697374726172496e6465780001186669656c64732c0129013c543a3a4964656e74697479496e666f726d6174696f6e206173204964656e74697479496e666f726d6174696f6e50726f76696465723e3a3a0a4669656c64734964656e7469666965720008046c536565205b6050616c6c65743a3a7365745f6669656c6473605d2e4470726f766964655f6a756467656d656e741001247265675f696e646578b1010138526567697374726172496e646578000118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e0001246a756467656d656e74e902015c4a756467656d656e743c42616c616e63654f663c543e3e0001206964656e7469747930011c543a3a4861736800090488536565205b6050616c6c65743a3a70726f766964655f6a756467656d656e74605d2e346b696c6c5f6964656e74697479040118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e000a0478536565205b6050616c6c65743a3a6b696c6c5f6964656e74697479605d2e1c6164645f73756208010c737562790101504163636f756e7449644c6f6f6b75704f663c543e000110646174615d02011044617461000b0460536565205b6050616c6c65743a3a6164645f737562605d2e2872656e616d655f73756208010c737562790101504163636f756e7449644c6f6f6b75704f663c543e000110646174615d02011044617461000c046c536565205b6050616c6c65743a3a72656e616d655f737562605d2e2872656d6f76655f73756204010c737562790101504163636f756e7449644c6f6f6b75704f663c543e000d046c536565205b6050616c6c65743a3a72656d6f76655f737562605d2e20717569745f737562000e0464536565205b6050616c6c65743a3a717569745f737562605d2e586164645f757365726e616d655f617574686f726974790c0124617574686f72697479790101504163636f756e7449644c6f6f6b75704f663c543e00011873756666697834011c5665633c75383e000128616c6c6f636174696f6e10010c753332000f049c536565205b6050616c6c65743a3a6164645f757365726e616d655f617574686f72697479605d2e6472656d6f76655f757365726e616d655f617574686f72697479040124617574686f72697479790101504163636f756e7449644c6f6f6b75704f663c543e001004a8536565205b6050616c6c65743a3a72656d6f76655f757365726e616d655f617574686f72697479605d2e407365745f757365726e616d655f666f720c010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e000120757365726e616d6534011c5665633c75383e0001247369676e6174757265ed0201704f7074696f6e3c543a3a4f6666636861696e5369676e61747572653e00110484536565205b6050616c6c65743a3a7365745f757365726e616d655f666f72605d2e3c6163636570745f757365726e616d65040120757365726e616d65ec012c557365726e616d653c543e00120480536565205b6050616c6c65743a3a6163636570745f757365726e616d65605d2e5c72656d6f76655f657870697265645f617070726f76616c040120757365726e616d65ec012c557365726e616d653c543e001304a0536565205b6050616c6c65743a3a72656d6f76655f657870697265645f617070726f76616c605d2e507365745f7072696d6172795f757365726e616d65040120757365726e616d65ec012c557365726e616d653c543e00140494536565205b6050616c6c65743a3a7365745f7072696d6172795f757365726e616d65605d2e6072656d6f76655f64616e676c696e675f757365726e616d65040120757365726e616d65ec012c557365726e616d653c543e001504a4536565205b6050616c6c65743a3a72656d6f76655f64616e676c696e675f757365726e616d65605d2e04704964656e746974792070616c6c6574206465636c61726174696f6e2e51020c3c70616c6c65745f6964656e74697479186c6567616379304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616c55020190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c61795d020110446174610001146c6567616c5d0201104461746100010c7765625d0201104461746100011072696f745d02011044617461000114656d61696c5d0201104461746100013c7067705f66696e6765727072696e74dd0201404f7074696f6e3c5b75383b2032305d3e000114696d6167655d0201104461746100011c747769747465725d02011044617461000055020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015902045300000400d90201185665633c543e00005902000004085d025d02005d020c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e65000000105261773004006102000001001052617731040065020000020010526177320400690200000300105261773304006d0200000400105261773404004400000500105261773504007102000006001052617736040075020000070010526177370400790200000800105261773804007d020000090010526177390400810200000a001452617731300400850200000b001452617731310400890200000c0014526177313204008d0200000d001452617731330400910200000e001452617731340400950200000f00145261773135040099020000100014526177313604009d02000011001452617731370400a102000012001452617731380400a502000013001452617731390400a9020000140014526177323004008101000015001452617732310400ad02000016001452617732320400b102000017001452617732330400b502000018001452617732340400b902000019001452617732350400bd0200001a001452617732360400c10200001b001452617732370400c50200001c001452617732380400c90200001d001452617732390400cd0200001e001452617733300400d10200001f001452617733310400d50200002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c536861546872656532353604000400002500006102000003000000000800650200000301000000080069020000030200000008006d020000030300000008007102000003050000000800750200000306000000080079020000030700000008007d02000003080000000800810200000309000000080085020000030a000000080089020000030b00000008008d020000030c000000080091020000030d000000080095020000030e000000080099020000030f00000008009d02000003100000000800a102000003110000000800a502000003120000000800a902000003130000000800ad02000003150000000800b102000003160000000800b502000003170000000800b902000003180000000800bd02000003190000000800c1020000031a0000000800c5020000031b0000000800c9020000031c0000000800cd020000031d0000000800d1020000031e0000000800d5020000031f0000000800d902000002590200dd0204184f7074696f6e0404540181010108104e6f6e6500000010536f6d65040081010000010000e102000002e50200e50200000408005d0200e9020c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f757300060000ed0204184f7074696f6e04045401f1020108104e6f6e6500000010536f6d650400f1020000010000f102082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400f5020148656432353531393a3a5369676e61747572650000001c537232353531390400fd020148737232353531393a3a5369676e617475726500010014456364736104000103014065636473613a3a5369676e617475726500020000f5020c1c73705f636f72651c65643235353139245369676e617475726500000400f90201205b75383b2036345d0000f902000003400000000800fd020c1c73705f636f72651c73723235353139245369676e617475726500000400f90201205b75383b2036345d000001030c1c73705f636f7265146563647361245369676e6174757265000004000503017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d0000050300000341000000080009030c3870616c6c65745f76657374696e671870616c6c65741043616c6c040454000118107665737400000454536565205b6050616c6c65743a3a76657374605d2e28766573745f6f74686572040118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e0001046c536565205b6050616c6c65743a3a766573745f6f74686572605d2e3c7665737465645f7472616e73666572080118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c650d0301b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00020480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e54666f7263655f7665737465645f7472616e736665720c0118736f75726365790101504163636f756e7449644c6f6f6b75704f663c543e000118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c650d0301b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00030498536565205b6050616c6c65743a3a666f7263655f7665737465645f7472616e73666572605d2e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c75333200040480536565205b6050616c6c65743a3a6d657267655f7363686564756c6573605d2e74666f7263655f72656d6f76655f76657374696e675f7363686564756c650801187461726765747901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001387363686564756c655f696e64657810010c753332000504b8536565205b6050616c6c65743a3a666f7263655f72656d6f76655f76657374696e675f7363686564756c65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d030c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d626572000011030c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001243470726f706f73655f7370656e6408011476616c75658501013c42616c616e63654f663c542c20493e00012c62656e6566696369617279790101504163636f756e7449644c6f6f6b75704f663c543e00000478536565205b6050616c6c65743a3a70726f706f73655f7370656e64605d2e3c72656a6563745f70726f706f73616c04012c70726f706f73616c5f6964b101013450726f706f73616c496e64657800010480536565205b6050616c6c65743a3a72656a6563745f70726f706f73616c605d2e40617070726f76655f70726f706f73616c04012c70726f706f73616c5f6964b101013450726f706f73616c496e64657800020484536565205b6050616c6c65743a3a617070726f76655f70726f706f73616c605d2e2c7370656e645f6c6f63616c080118616d6f756e748501013c42616c616e63654f663c542c20493e00012c62656e6566696369617279790101504163636f756e7449644c6f6f6b75704f663c543e00030470536565205b6050616c6c65743a3a7370656e645f6c6f63616c605d2e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f6964b101013450726f706f73616c496e64657800040480536565205b6050616c6c65743a3a72656d6f76655f617070726f76616c605d2e147370656e6410012861737365745f6b696e64a80144426f783c543a3a41737365744b696e643e000118616d6f756e7485010150417373657442616c616e63654f663c542c20493e00012c62656e6566696369617279000178426f783c42656e65666963696172794c6f6f6b75704f663c542c20493e3e00012876616c69645f66726f6d450201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00050458536565205b6050616c6c65743a3a7370656e64605d2e187061796f7574040114696e6465781001285370656e64496e6465780006045c536565205b6050616c6c65743a3a7061796f7574605d2e30636865636b5f737461747573040114696e6465781001285370656e64496e64657800070474536565205b6050616c6c65743a3a636865636b5f737461747573605d2e28766f69645f7370656e64040114696e6465781001285370656e64496e6465780008046c536565205b6050616c6c65743a3a766f69645f7370656e64605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e15030c3870616c6c65745f756e69717565731870616c6c65741043616c6c08045400044900016818637265617465080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400011461646d696e790101504163636f756e7449644c6f6f6b75704f663c543e0000045c536565205b6050616c6c65743a3a637265617465605d2e30666f7263655f6372656174650c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001146f776e6572790101504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67780110626f6f6c00010474536565205b6050616c6c65743a3a666f7263655f637265617465605d2e1c64657374726f79080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400011c7769746e6573731903013844657374726f795769746e65737300020460536565205b6050616c6c65743a3a64657374726f79605d2e106d696e740c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001146f776e6572790101504163636f756e7449644c6f6f6b75704f663c543e00030454536565205b6050616c6c65743a3a6d696e74605d2e106275726e0c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d496400012c636865636b5f6f776e65721d0301704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00040454536565205b6050616c6c65743a3a6275726e605d2e207472616e736665720c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d496400011064657374790101504163636f756e7449644c6f6f6b75704f663c543e00050464536565205b6050616c6c65743a3a7472616e73666572605d2e2472656465706f736974080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001146974656d73050101385665633c543a3a4974656d49643e00060468536565205b6050616c6c65743a3a72656465706f736974605d2e18667265657a65080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640007045c536565205b6050616c6c65743a3a667265657a65605d2e1074686177080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d496400080454536565205b6050616c6c65743a3a74686177605d2e44667265657a655f636f6c6c656374696f6e040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400090488536565205b6050616c6c65743a3a667265657a655f636f6c6c656374696f6e605d2e3c746861775f636f6c6c656374696f6e040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e4964000a0480536565205b6050616c6c65743a3a746861775f636f6c6c656374696f6e605d2e487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572790101504163636f756e7449644c6f6f6b75704f663c543e000b048c536565205b6050616c6c65743a3a7472616e736665725f6f776e657273686970605d2e207365745f7465616d100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e4964000118697373756572790101504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e790101504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572790101504163636f756e7449644c6f6f6b75704f663c543e000c0464536565205b6050616c6c65743a3a7365745f7465616d605d2e40617070726f76655f7472616e736665720c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d496400012064656c6567617465790101504163636f756e7449644c6f6f6b75704f663c543e000d0484536565205b6050616c6c65743a3a617070726f76655f7472616e73666572605d2e3c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001506d617962655f636865636b5f64656c65676174651d0301704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000e0480536565205b6050616c6c65743a3a63616e63656c5f617070726f76616c605d2e44666f7263655f6974656d5f7374617475731c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001146f776e6572790101504163636f756e7449644c6f6f6b75704f663c543e000118697373756572790101504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e790101504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572790101504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67780110626f6f6c00012469735f66726f7a656e780110626f6f6c000f0488536565205b6050616c6c65743a3a666f7263655f6974656d5f737461747573605d2e347365745f617474726962757465100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d090101444f7074696f6e3c543a3a4974656d49643e00010c6b65790101016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756501010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e00100478536565205b6050616c6c65743a3a7365745f617474726962757465605d2e3c636c6561725f6174747269627574650c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d090101444f7074696f6e3c543a3a4974656d49643e00010c6b65790101016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00110480536565205b6050616c6c65743a3a636c6561725f617474726962757465605d2e307365745f6d65746164617461100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001106461746101010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e780110626f6f6c00120474536565205b6050616c6c65743a3a7365745f6d65746164617461605d2e38636c6561725f6d65746164617461080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640013047c536565205b6050616c6c65743a3a636c6561725f6d65746164617461605d2e5c7365745f636f6c6c656374696f6e5f6d657461646174610c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106461746101010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e780110626f6f6c001404a0536565205b6050616c6c65743a3a7365745f636f6c6c656374696f6e5f6d65746164617461605d2e64636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e4964001504a8536565205b6050616c6c65743a3a636c6561725f636f6c6c656374696f6e5f6d65746164617461605d2e507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e0d01015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e00160494536565205b6050616c6c65743a3a7365745f6163636570745f6f776e657273686970605d2e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001704a8536565205b6050616c6c65743a3a7365745f636f6c6c656374696f6e5f6d61785f737570706c79605d2e247365745f7072696365100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d496400011470726963652103015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f62757965721d0301704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00180468536565205b6050616c6c65743a3a7365745f7072696365605d2e206275795f6974656d0c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e00190464536565205b6050616c6c65743a3a6275795f6974656d605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e19030c3870616c6c65745f756e69717565731474797065733844657374726f795769746e65737300000c01146974656d73b101010c7533320001386974656d5f6d6574616461746173b101010c75333200012861747472696275746573b101010c75333200001d0304184f7074696f6e0404540179010108104e6f6e6500000010536f6d65040079010000010000210304184f7074696f6e04045401180108104e6f6e6500000010536f6d65040018000001000025030c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000114346e6f74655f707265696d616765040114627974657334011c5665633c75383e00000478536565205b6050616c6c65743a3a6e6f74655f707265696d616765605d2e3c756e6e6f74655f707265696d6167650401106861736830011c543a3a4861736800010480536565205b6050616c6c65743a3a756e6e6f74655f707265696d616765605d2e40726571756573745f707265696d6167650401106861736830011c543a3a4861736800020484536565205b6050616c6c65743a3a726571756573745f707265696d616765605d2e48756e726571756573745f707265696d6167650401106861736830011c543a3a486173680003048c536565205b6050616c6c65743a3a756e726571756573745f707265696d616765605d2e38656e737572655f75706461746564040118686173686573290301305665633c543a3a486173683e0004047c536565205b6050616c6c65743a3a656e737572655f75706461746564605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e290300000230002d030c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c65741043616c6c08045400044900011810766f7465080128706f6c6c5f696e646578b1010144506f6c6c496e6465784f663c542c20493e000110766f7465310301704163636f756e74566f74653c42616c616e63654f663c542c20493e3e00000454536565205b6050616c6c65743a3a766f7465605d2e2064656c6567617465100114636c617373b40134436c6173734f663c542c20493e000108746f790101504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6e39030128436f6e76696374696f6e00011c62616c616e636518013c42616c616e63654f663c542c20493e00010464536565205b6050616c6c65743a3a64656c6567617465605d2e28756e64656c6567617465040114636c617373b40134436c6173734f663c542c20493e0002046c536565205b6050616c6c65743a3a756e64656c6567617465605d2e18756e6c6f636b080114636c617373b40134436c6173734f663c542c20493e000118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e0003045c536565205b6050616c6c65743a3a756e6c6f636b605d2e2c72656d6f76655f766f7465080114636c6173733d0301544f7074696f6e3c436c6173734f663c542c20493e3e000114696e646578100144506f6c6c496e6465784f663c542c20493e00040470536565205b6050616c6c65743a3a72656d6f76655f766f7465605d2e4472656d6f76655f6f746865725f766f74650c0118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e000114636c617373b40134436c6173734f663c542c20493e000114696e646578100144506f6c6c496e6465784f663c542c20493e00050488536565205b6050616c6c65743a3a72656d6f76655f6f746865725f766f7465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31030c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652c4163636f756e74566f7465041c42616c616e63650118010c205374616e64617264080110766f746535030110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001003053706c69744162737461696e0c010c61796518011c42616c616e636500010c6e617918011c42616c616e636500011c6162737461696e18011c42616c616e63650002000035030c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746510566f7465000004000800000039030c6070616c6c65745f636f6e76696374696f6e5f766f74696e6728636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b65643678000600003d0304184f7074696f6e04045401b40108104e6f6e6500000010536f6d650400b4000001000041030c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696ebd01015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c2101014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e744503017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e0000045c536565205b6050616c6c65743a3a7375626d6974605d2e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e6465780001049c536565205b6050616c6c65743a3a706c6163655f6465636973696f6e5f6465706f736974605d2e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000204a0536565205b6050616c6c65743a3a726566756e645f6465636973696f6e5f6465706f736974605d2e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003045c536565205b6050616c6c65743a3a63616e63656c605d2e106b696c6c040114696e64657810013c5265666572656e64756d496e64657800040454536565205b6050616c6c65743a3a6b696c6c605d2e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e64657800050484536565205b6050616c6c65743a3a6e756467655f7265666572656e64756d605d2e486f6e655f66657765725f6465636964696e67040114747261636bb4013c547261636b49644f663c542c20493e0006048c536565205b6050616c6c65743a3a6f6e655f66657765725f6465636964696e67605d2e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000704a8536565205b6050616c6c65743a3a726566756e645f7375626d697373696f6e5f6465706f736974605d2e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f686173684902013c4f7074696f6e3c543a3a486173683e00080474536565205b6050616c6c65743a3a7365745f6d65746164617461605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e450310346672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d6265720001000049030c4070616c6c65745f77686974656c6973741870616c6c65741043616c6c0404540001103877686974656c6973745f63616c6c04012463616c6c5f6861736830011c543a3a486173680000047c536565205b6050616c6c65743a3a77686974656c6973745f63616c6c605d2e5c72656d6f76655f77686974656c69737465645f63616c6c04012463616c6c5f6861736830011c543a3a48617368000104a0536565205b6050616c6c65743a3a72656d6f76655f77686974656c69737465645f63616c6c605d2e6464697370617463685f77686974656c69737465645f63616c6c0c012463616c6c5f6861736830011c543a3a4861736800014063616c6c5f656e636f6465645f6c656e10010c75333200014c63616c6c5f7765696768745f7769746e657373240118576569676874000204a8536565205b6050616c6c65743a3a64697370617463685f77686974656c69737465645f63616c6c605d2e9c64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d61676504011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000304e0536565205b6050616c6c65743a3a64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d616765605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d030c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d626572739401445665633c543a3a4163636f756e7449643e0001147072696d65110101504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e7400000470536565205b6050616c6c65743a3a7365745f6d656d62657273605d2e1c6578656375746508012070726f706f73616c2501017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64b101010c75333200010460536565205b6050616c6c65743a3a65786563757465605d2e1c70726f706f73650c01247468726573686f6c64b101012c4d656d626572436f756e7400012070726f706f73616c2501017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64b101010c75333200020460536565205b6050616c6c65743a3a70726f706f7365605d2e10766f74650c012070726f706f73616c30011c543a3a48617368000114696e646578b101013450726f706f73616c496e64657800011c617070726f7665780110626f6f6c00030454536565205b6050616c6c65743a3a766f7465605d2e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736830011c543a3a4861736800050490536565205b6050616c6c65743a3a646973617070726f76655f70726f706f73616c605d2e14636c6f736510013470726f706f73616c5f6861736830011c543a3a48617368000114696e646578b101013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642401185765696768740001306c656e6774685f626f756e64b101010c75333200060458536565205b6050616c6c65743a3a636c6f7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e51030c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e0000046c536565205b6050616c6c65743a3a6164645f6d656d626572605d2e3472656d6f76655f6d656d62657204010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e00010478536565205b6050616c6c65743a3a72656d6f76655f6d656d626572605d2e2c737761705f6d656d62657208011872656d6f7665790101504163636f756e7449644c6f6f6b75704f663c543e00010c616464790101504163636f756e7449644c6f6f6b75704f663c543e00020470536565205b6050616c6c65743a3a737761705f6d656d626572605d2e3472657365745f6d656d6265727304011c6d656d626572739401445665633c543a3a4163636f756e7449643e00030478536565205b6050616c6c65743a3a72657365745f6d656d62657273605d2e286368616e67655f6b657904010c6e6577790101504163636f756e7449644c6f6f6b75704f663c543e0004046c536565205b6050616c6c65743a3a6368616e67655f6b6579605d2e247365745f7072696d6504010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e00050468536565205b6050616c6c65743a3a7365745f7072696d65605d2e2c636c6561725f7072696d6500060470536565205b6050616c6c65743a3a636c6561725f7072696d65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55030c2c70616c6c65745f666565731870616c6c65741043616c6c0404540001041c7365745f66656508010c6b657959030124543a3a4665654b657900010c66656518013042616c616e63654f663c543e00000460536565205b6050616c6c65743a3a7365745f666565605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e59030c246366675f7479706573206665655f6b657973184665654b657900011834416e63686f7273436f6d6d697400000040416e63686f7273507265436f6d6d6974000100504272696467654e61746976655472616e73666572000200484e667450726f6f6656616c69646174696f6e00030044416c6c6f77616e63654372656174696f6e000400584f72646572426f6f6b4f726465724372656174696f6e000500005d030c3870616c6c65745f616e63686f72731870616c6c65741043616c6c040454000110287072655f636f6d6d6974080124616e63686f725f696430011c543a3a486173680001307369676e696e675f726f6f7430011c543a3a486173680000046c536565205b6050616c6c65743a3a7072655f636f6d6d6974605d2e18636f6d6d6974100148616e63686f725f69645f707265696d61676530011c543a3a48617368000120646f635f726f6f7430011c543a3a4861736800011470726f6f6630011c543a3a4861736800014473746f7265645f756e74696c5f646174652c0124543a3a4d6f6d656e740001045c536565205b6050616c6c65743a3a636f6d6d6974605d2e4465766963745f7072655f636f6d6d697473040128616e63686f725f696473610301e4426f756e6465645665633c543a3a486173682c20436f6e73745533323c45564943545f5052455f434f4d4d49545f4c4953545f53495a453e3e00020488536565205b6050616c6c65743a3a65766963745f7072655f636f6d6d697473605d2e3465766963745f616e63686f727300030478536565205b6050616c6c65743a3a65766963745f616e63686f7273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e61030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540130045300000400290301185665633c543e000065030c4870616c6c65745f706f6f6c5f73797374656d1870616c6c65741043616c6c0404540001103c7365745f6d61785f7265736572766508011c706f6f6c5f69642c0124543a3a506f6f6c496400012c6d61785f72657365727665180128543a3a42616c616e636500000480536565205b6050616c6c65743a3a7365745f6d61785f72657365727665605d2e2c636c6f73655f65706f636804011c706f6f6c5f69642c0124543a3a506f6f6c496400010470536565205b6050616c6c65743a3a636c6f73655f65706f6368605d2e3c7375626d69745f736f6c7574696f6e08011c706f6f6c5f69642c0124543a3a506f6f6c4964000120736f6c7574696f6e690301505665633c5472616e636865536f6c7574696f6e3e00020480536565205b6050616c6c65743a3a7375626d69745f736f6c7574696f6e605d2e34657865637574655f65706f636804011c706f6f6c5f69642c0124543a3a506f6f6c496400030478536565205b6050616c6c65743a3a657865637574655f65706f6368605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030000026d03006d030c4870616c6c65745f706f6f6c5f73797374656d207472616e636865733c5472616e636865536f6c7574696f6e0000080148696e766573745f66756c66696c6c6d656e747103012c5065727175696e74696c6c00014872656465656d5f66756c66696c6c6d656e747103012c5065727175696e74696c6c000071030c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c000004002c010c753634000075030c3070616c6c65745f6c6f616e731870616c6c65741043616c6c04045400013c1863726561746508011c706f6f6c5f69642c0124543a3a506f6f6c4964000110696e666f7903012c4c6f616e496e666f3c543e0000045c536565205b6050616c6c65743a3a637265617465605d2e18626f72726f770c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74d90301445072696e636970616c496e7075743c543e0001045c536565205b6050616c6c65743a3a626f72726f77605d2e1472657061790c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74e1030138526570616964496e7075743c543e00020458536565205b6050616c6c65743a3a7265706179605d2e2477726974655f6f666608011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e496400030468536565205b6050616c6c65743a3a77726974655f6f6666605d2e3c61646d696e5f77726974655f6f666610011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e496400012870657263656e746167659503011c543a3a5261746500011c70656e616c74799503011c543a3a5261746500040480536565205b6050616c6c65743a3a61646d696e5f77726974655f6f6666605d2e5470726f706f73655f6c6f616e5f6d75746174696f6e0c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e49640001206d75746174696f6ee50301544c6f616e4d75746174696f6e3c543a3a526174653e00050498536565205b6050616c6c65743a3a70726f706f73655f6c6f616e5f6d75746174696f6e605d2e4c6170706c795f6c6f616e5f6d75746174696f6e08011c706f6f6c5f69642c0124543a3a506f6f6c49640001246368616e67655f696430011c543a3a4861736800060490536565205b6050616c6c65743a3a6170706c795f6c6f616e5f6d75746174696f6e605d2e14636c6f736508011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e496400070458536565205b6050616c6c65743a3a636c6f7365605d2e6070726f706f73655f77726974655f6f66665f706f6c69637908011c706f6f6c5f69642c0124543a3a506f6f6c4964000118706f6c696379ed0301ec426f756e6465645665633c57726974654f666652756c653c543a3a526174653e2c20543a3a4d617857726974654f6666506f6c69637953697a653e000804a4536565205b6050616c6c65743a3a70726f706f73655f77726974655f6f66665f706f6c696379605d2e586170706c795f77726974655f6f66665f706f6c69637908011c706f6f6c5f69642c0124543a3a506f6f6c49640001246368616e67655f696430011c543a3a486173680009049c536565205b6050616c6c65743a3a6170706c795f77726974655f6f66665f706f6c696379605d2e687570646174655f706f7274666f6c696f5f76616c756174696f6e04011c706f6f6c5f69642c0124543a3a506f6f6c4964000a04ac536565205b6050616c6c65743a3a7570646174655f706f7274666f6c696f5f76616c756174696f6e605d2e5470726f706f73655f7472616e736665725f6465627414011c706f6f6c5f69642c0124543a3a506f6f6c496400013066726f6d5f6c6f616e5f69642c0124543a3a4c6f616e4964000128746f5f6c6f616e5f69642c0124543a3a4c6f616e49640001347265706169645f616d6f756e74e1030138526570616964496e7075743c543e000134626f72726f775f616d6f756e74d90301445072696e636970616c496e7075743c543e000b0498536565205b6050616c6c65743a3a70726f706f73655f7472616e736665725f64656274605d2e4c6170706c795f7472616e736665725f6465627408011c706f6f6c5f69642c0124543a3a506f6f6c49640001246368616e67655f696430011c543a3a48617368000c0490536565205b6050616c6c65743a3a6170706c795f7472616e736665725f64656274605d2e34696e6372656173655f646562740c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74d90301445072696e636970616c496e7075743c543e000d0478536565205b6050616c6c65743a3a696e6372656173655f64656274605d2e3464656372656173655f646562740c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74e1030138526570616964496e7075743c543e000e0478536565205b6050616c6c65743a3a64656372656173655f64656274605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7903103070616c6c65745f6c6f616e7320656e746974696573146c6f616e73204c6f616e496e666f04045400001401207363686564756c657d03014452657061796d656e745363686564756c65000128636f6c6c61746572616c8d03012841737365744f663c543e000134696e7465726573745f7261746591030154496e746572657374526174653c543a3a526174653e00011c70726963696e679d03012850726963696e673c543e0001307265737472696374696f6e73cd0301404c6f616e5265737472696374696f6e7300007d03103070616c6c65745f6c6f616e731474797065732063617368666c6f774452657061796d656e745363686564756c6500000c01206d61747572697479810301204d61747572697479000144696e7465726573745f7061796d656e747385030140496e7465726573745061796d656e74730001447061795f646f776e5f7363686564756c658903013c506179446f776e5363686564756c6500008103103070616c6c65745f6c6f616e731474797065732063617368666c6f77204d61747572697479000108144669786564080110646174652c011c5365636f6e6473000124657874656e73696f6e2c011c5365636f6e6473000000104e6f6e65000100008503103070616c6c65745f6c6f616e731474797065732063617368666c6f7740496e7465726573745061796d656e7473000104384f6e636541744d61747572697479000000008903103070616c6c65745f6c6f616e731474797065732063617368666c6f773c506179446f776e5363686564756c65000104104e6f6e65000000008d03000004082cfc0091030c286366675f74726169747320696e74657265737430496e746572657374526174650410526174650195030104144669786564080134726174655f7065725f79656172950301105261746500012c636f6d706f756e64696e679903014c436f6d706f756e64696e675363686564756c650000000095030c246366675f74797065732c66697865645f706f696e74244669786564553132380000040018011075313238000099030c286366675f74726169747320696e7465726573744c436f6d706f756e64696e675363686564756c65000104205365636f6e646c79000000009d03103070616c6c65745f6c6f616e7320656e7469746965731c70726963696e671c50726963696e6704045400010820496e7465726e616c0400a1030170696e7465726e616c3a3a496e7465726e616c50726963696e673c543e0000002045787465726e616c0400b103017065787465726e616c3a3a45787465726e616c50726963696e673c543e00010000a103143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e6720696e7465726e616c3c496e7465726e616c50726963696e6704045400000c0140636f6c6c61746572616c5f76616c7565180128543a3a42616c616e636500014076616c756174696f6e5f6d6574686f64a503016056616c756174696f6e4d6574686f643c543a3a526174653e0001446d61785f626f72726f775f616d6f756e74ad0301604d6178426f72726f77416d6f756e743c543a3a526174653e0000a503103070616c6c65745f6c6f616e731474797065732476616c756174696f6e3c56616c756174696f6e4d6574686f64041052617465019503010c48446973636f756e74656443617368466c6f770400a9030160446973636f756e74656443617368466c6f773c526174653e0000003c4f75747374616e64696e6744656274000100104361736800020000a903103070616c6c65745f6c6f616e731474797065732476616c756174696f6e48446973636f756e74656443617368466c6f77041052617465019503000c015870726f626162696c6974795f6f665f64656661756c7495030110526174650001486c6f73735f676976656e5f64656661756c749503011052617465000134646973636f756e745f7261746591030148496e746572657374526174653c526174653e0000ad03143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e6720696e7465726e616c3c4d6178426f72726f77416d6f756e740410526174650195030108445570546f546f74616c426f72726f776564040130616476616e63655f7261746595030110526174650000004c5570546f4f75747374616e64696e6744656274040130616476616e63655f72617465950301105261746500010000b103143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e672065787465726e616c3c45787465726e616c50726963696e67040454000014012070726963655f6964b5030128543a3a507269636549640001446d61785f626f72726f775f616d6f756e74c50301704d6178426f72726f77416d6f756e743c543a3a5175616e746974793e0001206e6f74696f6e616c180128543a3a42616c616e636500014c6d61785f70726963655f766172696174696f6e9503011c543a3a5261746500014c776974685f6c696e6561725f70726963696e67780110626f6f6c0000b5030c246366675f74797065731c6f7261636c6573244f7261636c654b657900010c104973696e04008d0201104973696e0000003c436f6e76657273696f6e526174696f0800b903012843757272656e637949640000b903012843757272656e6379496400010028506f6f6c4c6f616e496408002c0118506f6f6c496400002c01184c6f616e496400020000b9030c246366675f747970657318746f6b656e732843757272656e63794964000118184e61746976650000001c5472616e63686508002c0118506f6f6c496400009d0201245472616e6368654964000100104155534400030030466f726569676e41737365740400100138466f726569676e417373657449640004001c5374616b696e670400bd03013c5374616b696e6743757272656e6379000500284c6f63616c41737365740400c10301304c6f63616c4173736574496400060000bd030c246366675f747970657318746f6b656e733c5374616b696e6743757272656e637900010430426c6f636b5265776172647300000000c1030c246366675f747970657318746f6b656e73304c6f63616c417373657449640000040010010c7533320000c503143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e672065787465726e616c3c4d6178426f72726f77416d6f756e7404205175616e7469747901c90301081c4e6f4c696d6974000000205175616e746974790400c90301205175616e7469747900010000c9030c246366675f74797065732c66697865645f706f696e742446697865645531323800000400180110753132380000cd030c3070616c6c65745f6c6f616e73147479706573404c6f616e5265737472696374696f6e73000008011c626f72726f7773d1030148426f72726f775265737472696374696f6e7300012872657061796d656e7473d503014452657061795265737472696374696f6e730000d1030c3070616c6c65745f6c6f616e7314747970657348426f72726f775265737472696374696f6e7300010c344e6f745772697474656e4f66660000002046756c6c4f6e63650001004c4f7261636c655072696365526571756972656400020000d5030c3070616c6c65745f6c6f616e731474797065734452657061795265737472696374696f6e73000108104e6f6e650000001046756c6c00010000d903103070616c6c65745f6c6f616e7320656e74697469657314696e707574385072696e636970616c496e70757404045400010820496e7465726e616c0400180128543a3a42616c616e63650000002045787465726e616c0400dd03014445787465726e616c416d6f756e743c543e00010000dd03143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e672065787465726e616c3845787465726e616c416d6f756e7404045400000801207175616e74697479c903012c543a3a5175616e74697479000140736574746c656d656e745f7072696365180128543a3a42616c616e63650000e103103070616c6c65745f6c6f616e7320656e74697469657314696e7075742c526570616964496e70757404045400000c01247072696e636970616cd90301445072696e636970616c496e7075743c543e000120696e746572657374180128543a3a42616c616e636500012c756e7363686564756c6564180128543a3a42616c616e63650000e503103070616c6c65745f6c6f616e7320656e7469746965731c6368616e676573304c6f616e4d75746174696f6e0410526174650195030118204d617475726974790400810301204d61747572697479000000444d61747572697479457874656e73696f6e04002c011c5365636f6e647300010030496e74657265737452617465040091030148496e746572657374526174653c526174653e00020040496e7465726573745061796d656e7473040085030140496e7465726573745061796d656e74730003003c506179446f776e5363686564756c6504008903013c506179446f776e5363686564756c6500040020496e7465726e616c0400e9030158496e7465726e616c4d75746174696f6e3c526174653e00050000e903103070616c6c65745f6c6f616e7320656e7469746965731c6368616e67657340496e7465726e616c4d75746174696f6e04105261746501950301103c56616c756174696f6e4d6574686f640400a503015456616c756174696f6e4d6574686f643c526174653e0000005050726f626162696c6974794f6644656661756c7404009503011052617465000100404c6f7373476976656e44656661756c740400950301105261746500020030446973636f756e7452617465040091030148496e746572657374526174653c526174653e00030000ed030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f1030453000004000d0401185665633c543e0000f103103070616c6c65745f6c6f616e7314747970657318706f6c6963793057726974654f666652756c65041052617465019503000801207472696767657273f50301cc426f756e64656442547265655365743c556e6971756557726974654f6666547269676765722c205472696767657253697a653e0001187374617475730904015057726974654f66665374617475733c526174653e0000f5030c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401f9030453000004000104012c42547265655365743c543e0000f903103070616c6c65745f6c6f616e7314747970657318706f6c69637954556e6971756557726974654f66665472696767657200000400fd03013c57726974654f6666547269676765720000fd03103070616c6c65745f6c6f616e7314747970657318706f6c6963793c57726974654f666654726967676572000108405072696e636970616c4f76657264756504002c011c5365636f6e64730000003450726963654f7574646174656404002c011c5365636f6e64730001000001040420425472656553657404045401f90300040005040000000504000002f903000904103070616c6c65745f6c6f616e7314747970657318706f6c6963793857726974654f66665374617475730410526174650195030008012870657263656e74616765950301105261746500011c70656e616c7479950301105261746500000d04000002f1030011040c4870616c6c65745f7065726d697373696f6e731870616c6c65741043616c6c0404540001100c616464100124776974685f726f6c651504011c543a3a526f6c65000108746f000130543a3a4163636f756e74496400011473636f706521040120543a3a53636f7065000110726f6c651504011c543a3a526f6c6500000450536565205b6050616c6c65743a3a616464605d2e1872656d6f7665100124776974685f726f6c651504011c543a3a526f6c6500011066726f6d000130543a3a4163636f756e74496400011473636f706521040120543a3a53636f7065000110726f6c651504011c543a3a526f6c650001045c536565205b6050616c6c65743a3a72656d6f7665605d2e14707572676504011473636f706521040120543a3a53636f706500020458536565205b6050616c6c65743a3a7075726765605d2e2c61646d696e5f707572676508011066726f6d000130543a3a4163636f756e74496400011473636f706521040120543a3a53636f706500030470536565205b6050616c6c65743a3a61646d696e5f7075726765605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e15040c246366675f74797065732c7065726d697373696f6e7310526f6c6504245472616e6368654964019d02010820506f6f6c526f6c6504001904014c506f6f6c526f6c653c5472616e63686549643e000000605065726d697373696f6e656443757272656e6379526f6c6504001d0401605065726d697373696f6e656443757272656e6379526f6c650001000019040c246366675f74797065732c7065726d697373696f6e7320506f6f6c526f6c6504245472616e6368654964019d02012424506f6f6c41646d696e00000020426f72726f7765720001003050726963696e6741646d696e000200384c697175696469747941646d696e00030034496e766573746f7241646d696e000400244c6f616e41646d696e0005003c5472616e636865496e766573746f7208009d0201245472616e636865496400002c011c5365636f6e647300060034504f44526561644163636573730007005446726f7a656e5472616e636865496e766573746f7204009d0201245472616e6368654964000800001d040c246366675f74797065732c7065726d697373696f6e73605065726d697373696f6e656443757272656e6379526f6c6500010c18486f6c64657204002c011c5365636f6e64730000001c4d616e61676572000100184973737565720002000021040c246366675f74797065732c7065726d697373696f6e733c5065726d697373696f6e53636f70650818506f6f6c4964012c2843757272656e6379496401b903010810506f6f6c04002c0118506f6f6c49640000002043757272656e63790400b903012843757272656e637949640001000025040c6470616c6c65745f636f6c6c61746f725f616c6c6f776c6973741870616c6c65741043616c6c0404540001080c61646404012c636f6c6c61746f725f6964000138543a3a56616c696461746f72496400000450536565205b6050616c6c65743a3a616464605d2e1872656d6f766504012c636f6c6c61746f725f6964000138543a3a56616c696461746f7249640001045c536565205b6050616c6c65743a3a72656d6f7665605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29040c6070616c6c65745f726573747269637465645f746f6b656e731870616c6c65741043616c6c040454000114207472616e736665720c0110646573747901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e7485010128543a3a42616c616e636500000464536565205b6050616c6c65743a3a7472616e73666572605d2e307472616e736665725f616c6c0c0110646573747901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286b6565705f616c697665780110626f6f6c00010474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e4c7472616e736665725f6b6565705f616c6976650c0110646573747901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e7485010128543a3a42616c616e636500020490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e38666f7263655f7472616e73666572100118736f757263657901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646573747901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e7485010128543a3a42616c616e63650003047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e2c7365745f62616c616e636510010c77686f7901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964b9030134543a3a43757272656e637949640001206e65775f6672656585010128543a3a42616c616e63650001306e65775f726573657276656485010128543a3a42616c616e636500040470536565205b6050616c6c65743a3a7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d040c3470616c6c65745f6272696467651870616c6c65741043616c6c04045400010c3c7472616e736665725f6e61746976650c0118616d6f756e7418013042616c616e63654f663c543e000124726563697069656e7434011c5665633c75383e00011c646573745f696408011c436861696e496400000480536565205b6050616c6c65743a3a7472616e736665725f6e6174697665605d2e207472616e736665720c0108746f0001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000110725f69640401285265736f75726365496400010464536565205b6050616c6c65743a3a7472616e73666572605d2e1872656d61726b080110686173683001843c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a48617368000110725f69640401285265736f7572636549640002045c536565205b6050616c6c65743a3a72656d61726b605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31040c3c70616c6c65745f6b657973746f72651870616c6c65741043616c6c04045400010c206164645f6b6579730401106b657973350401505665633c4164644b65793c543a3a486173683e3e00000464536565205b6050616c6c65743a3a6164645f6b657973605d2e2c7265766f6b655f6b6579730801106b657973290301305665633c543a3a486173683e00012c6b65795f707572706f73653d0401284b6579507572706f736500010470536565205b6050616c6c65743a3a7265766f6b655f6b657973605d2e2c7365745f6465706f73697404012c6e65775f6465706f736974180128543a3a42616c616e636500020470536565205b6050616c6c65743a3a7365745f6465706f736974605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35040000023904003904083c70616c6c65745f6b657973746f7265184164644b65790410486173680130000c010c6b65793001104861736800011c707572706f73653d0401284b6579507572706f73650001206b65795f747970654104011c4b65795479706500003d04083c70616c6c65745f6b657973746f7265284b6579507572706f736500010830503250446973636f7665727900000048503250446f63756d656e745369676e696e67000100004104083c70616c6c65745f6b657973746f72651c4b6579547970650001081445434453410000001445444453410001000045040c4870616c6c65745f696e766573746d656e74731870616c6c65741043616c6c0404540001184c7570646174655f696e766573745f6f72646572080134696e766573746d656e745f69644904013c543a3a496e766573746d656e744964000118616d6f756e74180124543a3a416d6f756e7400000490536565205b6050616c6c65743a3a7570646174655f696e766573745f6f72646572605d2e4c7570646174655f72656465656d5f6f72646572080134696e766573746d656e745f69644904013c543a3a496e766573746d656e744964000118616d6f756e74180124543a3a416d6f756e7400010490536565205b6050616c6c65743a3a7570646174655f72656465656d5f6f72646572605d2e4c636f6c6c6563745f696e766573746d656e7473040134696e766573746d656e745f69644904013c543a3a496e766573746d656e74496400020490536565205b6050616c6c65743a3a636f6c6c6563745f696e766573746d656e7473605d2e4c636f6c6c6563745f726564656d7074696f6e73040134696e766573746d656e745f69644904013c543a3a496e766573746d656e74496400030490536565205b6050616c6c65743a3a636f6c6c6563745f726564656d7074696f6e73605d2e5c636f6c6c6563745f696e766573746d656e74735f666f7208010c77686f000130543a3a4163636f756e744964000134696e766573746d656e745f69644904013c543a3a496e766573746d656e744964000404a0536565205b6050616c6c65743a3a636f6c6c6563745f696e766573746d656e74735f666f72605d2e5c636f6c6c6563745f726564656d7074696f6e735f666f7208010c77686f000130543a3a4163636f756e744964000134696e766573746d656e745f69644904013c543a3a496e766573746d656e744964000504a0536565205b6050616c6c65743a3a636f6c6c6563745f726564656d7074696f6e735f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4904000004082c9d02004d040c6070616c6c65745f6c69717569646974795f726577617264731870616c6c65741043616c6c04045400011c147374616b6508012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e636500000458536565205b6050616c6c65743a3a7374616b65605d2e1c756e7374616b6508012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e636500010460536565205b6050616c6c65743a3a756e7374616b65605d2e30636c61696d5f72657761726404012c63757272656e63795f6964b9030134543a3a43757272656e6379496400020474536565205b6050616c6c65743a3a636c61696d5f726577617264605d2e587365745f64697374726962757465645f72657761726404011c62616c616e6365180128543a3a42616c616e63650003049c536565205b6050616c6c65743a3a7365745f64697374726962757465645f726577617264605d2e487365745f65706f63685f6475726174696f6e0401206475726174696f6e2c012c4d6f6d656e744f663c543e0004048c536565205b6050616c6c65743a3a7365745f65706f63685f6475726174696f6e605d2e407365745f67726f75705f77656967687408012067726f75705f6964100128543a3a47726f757049640001187765696768742c0124543a3a57656967687400050484536565205b6050616c6c65743a3a7365745f67726f75705f776569676874605d2e487365745f63757272656e63795f67726f757008012c63757272656e63795f6964b9030134543a3a43757272656e6379496400012067726f75705f6964100128543a3a47726f757049640006048c536565205b6050616c6c65743a3a7365745f63757272656e63795f67726f7570605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e51040c5870616c6c65745f6c69717569646974795f706f6f6c731870616c6c65741043616c6c04045400013c206164645f706f6f6c08011c706f6f6c5f69642c0124543a3a506f6f6c4964000118646f6d61696e55040118446f6d61696e00020464536565205b6050616c6c65743a3a6164645f706f6f6c605d2e2c6164645f7472616e6368650c011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000118646f6d61696e55040118446f6d61696e00030470536565205b6050616c6c65743a3a6164645f7472616e636865605d2e487570646174655f746f6b656e5f707269636510011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e636865496400012c63757272656e63795f6964b9030134543a3a43757272656e6379496400012c64657374696e6174696f6e55040118446f6d61696e0004048c536565205b6050616c6c65743a3a7570646174655f746f6b656e5f7072696365605d2e347570646174655f6d656d62657210011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000138646f6d61696e5f61646472657373d5010134446f6d61696e4164647265737300012c76616c69645f756e74696c2c011c5365636f6e647300050478536565205b6050616c6c65743a3a7570646174655f6d656d626572605d2e5c7472616e736665725f7472616e6368655f746f6b656e7310011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000138646f6d61696e5f61646472657373d5010134446f6d61696e41646472657373000118616d6f756e74180128543a3a42616c616e6365000604a0536565205b6050616c6c65743a3a7472616e736665725f7472616e6368655f746f6b656e73605d2e207472616e736665720c012c63757272656e63795f6964b9030134543a3a43757272656e637949640001207265636569766572d5010134446f6d61696e41646472657373000118616d6f756e74180128543a3a42616c616e636500070464536565205b6050616c6c65743a3a7472616e73666572605d2e306164645f63757272656e637904012c63757272656e63795f6964b9030134543a3a43757272656e6379496400080474536565205b6050616c6c65743a3a6164645f63757272656e6379605d2e64616c6c6f775f696e766573746d656e745f63757272656e637908011c706f6f6c5f69642c0124543a3a506f6f6c496400012c63757272656e63795f6964b9030134543a3a43757272656e63794964000904a8536565205b6050616c6c65743a3a616c6c6f775f696e766573746d656e745f63757272656e6379605d2e407363686564756c655f7570677261646508013065766d5f636861696e5f69642c012845564d436861696e4964000120636f6e7472616374810101205b75383b2032305d000a0484536565205b6050616c6c65743a3a7363686564756c655f75706772616465605d2e3863616e63656c5f7570677261646508013065766d5f636861696e5f69642c012845564d436861696e4964000120636f6e7472616374810101205b75383b2032305d000b047c536565205b6050616c6c65743a3a63616e63656c5f75706772616465605d2e747570646174655f7472616e6368655f746f6b656e5f6d657461646174610c011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000118646f6d61696e55040118446f6d61696e000c04b8536565205b6050616c6c65743a3a7570646174655f7472616e6368655f746f6b656e5f6d65746164617461605d2e70646973616c6c6f775f696e766573746d656e745f63757272656e637908011c706f6f6c5f69642c0124543a3a506f6f6c496400012c63757272656e63795f6964b9030134543a3a43757272656e63794964000d04b4536565205b6050616c6c65743a3a646973616c6c6f775f696e766573746d656e745f63757272656e6379605d2e3c667265657a655f696e766573746f720c011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000138646f6d61696e5f61646472657373d5010134446f6d61696e41646472657373000e0480536565205b6050616c6c65743a3a667265657a655f696e766573746f72605d2e44756e667265657a655f696e766573746f720c011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000138646f6d61696e5f61646472657373d5010134446f6d61696e41646472657373000f0488536565205b6050616c6c65743a3a756e667265657a655f696e766573746f72605d2e4c7570646174655f7472616e6368655f686f6f6b10011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000118646f6d61696e55040118446f6d61696e000110686f6f6b810101205b75383b2032305d00100490536565205b6050616c6c65743a3a7570646174655f7472616e6368655f686f6f6b605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55040c246366675f747970657338646f6d61696e5f6164647265737318446f6d61696e0001082843656e747269667567650000000c45564d04002c012845564d436861696e49640001000059040c5070616c6c65745f706f6f6c5f72656769737472791870616c6c65741043616c6c04045400011020726567697374657220011461646d696e000130543a3a4163636f756e74496400011c706f6f6c5f69642c0124543a3a506f6f6c49640001387472616e6368655f696e707574735d0401585665633c5472616e636865496e7075744f663c543e3e00012063757272656e6379b9030134543a3a43757272656e6379496400012c6d61785f72657365727665180128543a3a42616c616e63650001206d657461646174617504013c4f7074696f6e3c5665633c75383e3e00014077726974655f6f66665f706f6c696379ed03012c506f6c6963794f663c543e000124706f6f6c5f66656573790401585665633c506f6f6c466565496e7075744f663c543e3e00000464536565205b6050616c6c65743a3a7265676973746572605d2e1875706461746508011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6368616e67657395040140506f6f6c4368616e6765734f663c543e0001045c536565205b6050616c6c65743a3a757064617465605d2e38657865637574655f75706461746504011c706f6f6c5f69642c0124543a3a506f6f6c49640002047c536565205b6050616c6c65743a3a657865637574655f757064617465605d2e307365745f6d6574616461746108011c706f6f6c5f69642c0124543a3a506f6f6c49640001206d6574616461746134011c5665633c75383e00030474536565205b6050616c6c65743a3a7365745f6d65746164617461605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5d0400000261040061040c4870616c6c65745f706f6f6c5f73797374656d207472616e63686573305472616e636865496e7075740810526174650195032c537472696e674c696d6974016504000c01307472616e6368655f74797065690401445472616e636865547970653c526174653e00012473656e696f72697479450201444f7074696f6e3c53656e696f726974793e0001206d657461646174616d0401705472616e6368654d657461646174613c537472696e674c696d69743e000065040c246366675f747970657318746f6b656e73404173736574537472696e674c696d69740000000069040c4870616c6c65745f706f6f6c5f73797374656d207472616e636865732c5472616e63686554797065041052617465019503010820526573696475616c0000002c4e6f6e526573696475616c080154696e7465726573745f726174655f7065725f736563950301105261746500013c6d696e5f7269736b5f6275666665727103012c5065727175696e74696c6c000100006d040c246366675f747970657314706f6f6c733c5472616e6368654d65746164617461042c537472696e674c696d697401650400080128746f6b656e5f6e616d657104016c426f756e6465645665633c75382c20537472696e674c696d69743e000130746f6b656e5f73796d626f6c7104016c426f756e6465645665633c75382c20537472696e674c696d69743e000071040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000750404184f7074696f6e04045401340108104e6f6e6500000010536f6d65040034000001000079040000027d04007d0400000408810485040081040c286366675f7472616974730c66656534506f6f6c4665654275636b65740001040c546f700000000085040c246366675f747970657314706f6f6c732c506f6f6c466565496e666f0c244163636f756e74496401001c42616c616e636501181052617465019503000c012c64657374696e6174696f6e0001244163636f756e744964000118656469746f7289040160506f6f6c466565456469746f723c4163636f756e7449643e0001206665655f747970658d040168506f6f6c466565547970653c42616c616e63652c20526174653e000089040c246366675f747970657314706f6f6c7334506f6f6c466565456469746f7204244163636f756e7449640100010810526f6f740000001c4163636f756e7404000001244163636f756e744964000100008d040c246366675f747970657314706f6f6c732c506f6f6c46656554797065081c42616c616e63650118105261746501950301081446697865640401146c696d697491040170506f6f6c466565416d6f756e743c42616c616e63652c20526174653e0000002c436861726765645570546f0401146c696d697491040170506f6f6c466565416d6f756e743c42616c616e63652c20526174653e0001000091040c246366675f747970657314706f6f6c7334506f6f6c466565416d6f756e74081c42616c616e63650118105261746501950301086453686172654f66506f7274666f6c696f56616c756174696f6e040095030110526174650000003c416d6f756e745065725365636f6e64040018011c42616c616e63650001000095040c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f74797065732c506f6f6c4368616e6765730c10526174650195032c537472696e674c696d69740165042c4d61785472616e63686573019904001001207472616e636865739d0401d04368616e67653c426f756e6465645665633c5472616e6368655570646174653c526174653e2c204d61785472616e636865733e3e0001407472616e6368655f6d65746164617461ad0401f44368616e67653c426f756e6465645665633c5472616e6368654d657461646174613c537472696e674c696d69743e2c204d61785472616e636865733e3e0001386d696e5f65706f63685f74696d65b904013c4368616e67653c5365636f6e64733e00012c6d61785f6e61765f616765b904013c4368616e67653c5365636f6e64733e00009904084c646576656c6f706d656e745f72756e74696d652c4d61785472616e63686573000000009d04082c6f726d6c5f747261697473184368616e6765041456616c756501a1040108204e6f4368616e6765000000204e657756616c75650400a104011456616c756500010000a1040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a504045300000400a90401185665633c543e0000a5040c4870616c6c65745f706f6f6c5f73797374656d207472616e63686573345472616e636865557064617465041052617465019503000801307472616e6368655f74797065690401445472616e636865547970653c526174653e00012473656e696f72697479450201444f7074696f6e3c53656e696f726974793e0000a904000002a50400ad04082c6f726d6c5f747261697473184368616e6765041456616c756501b1040108204e6f4368616e6765000000204e657756616c75650400b104011456616c756500010000b1040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016d04045300000400b50401185665633c543e0000b5040000026d0400b904082c6f726d6c5f747261697473184368616e6765041456616c7565012c0108204e6f4368616e6765000000204e657756616c756504002c011456616c756500010000bd040c5070616c6c65745f626c6f636b5f726577617264731870616c6c65741043616c6c04045400010c30636c61696d5f7265776172640401286163636f756e745f6964000130543a3a4163636f756e74496400000474536565205b6050616c6c65743a3a636c61696d5f726577617264605d2e7c7365745f636f6c6c61746f725f7265776172645f7065725f73657373696f6e04016c636f6c6c61746f725f7265776172645f7065725f73657373696f6e180128543a3a42616c616e6365000104c0536565205b6050616c6c65743a3a7365745f636f6c6c61746f725f7265776172645f7065725f73657373696f6e605d2e887365745f616e6e75616c5f74726561737572795f696e666c6174696f6e5f7261746504015c74726561737572795f696e666c6174696f6e5f726174659503011c543a3a52617465000204cc536565205b6050616c6c65743a3a7365745f616e6e75616c5f74726561737572795f696e666c6174696f6e5f72617465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec1040c6470616c6c65745f7472616e736665725f616c6c6f776c6973741870616c6c65741043616c6c04045400011c586164645f7472616e736665725f616c6c6f77616e636508012c63757272656e63795f6964c5040134543a3a43757272656e637949640001207265636569766572c904012c543a3a4c6f636174696f6e0000049c536565205b6050616c6c65743a3a6164645f7472616e736665725f616c6c6f77616e6365605d2e6472656d6f76655f7472616e736665725f616c6c6f77616e636508012c63757272656e63795f6964c5040134543a3a43757272656e637949640001207265636569766572c904012c543a3a4c6f636174696f6e000104a8536565205b6050616c6c65743a3a72656d6f76655f7472616e736665725f616c6c6f77616e6365605d2e6070757267655f7472616e736665725f616c6c6f77616e636508012c63757272656e63795f6964c5040134543a3a43757272656e637949640001207265636569766572c904012c543a3a4c6f636174696f6e000204a4536565205b6050616c6c65743a3a70757267655f7472616e736665725f616c6c6f77616e6365605d2e4c6164645f616c6c6f77616e63655f64656c617908012c63757272656e63795f6964c5040134543a3a43757272656e6379496400011464656c6179100144426c6f636b4e756d626572466f723c543e00030490536565205b6050616c6c65743a3a6164645f616c6c6f77616e63655f64656c6179605d2e587570646174655f616c6c6f77616e63655f64656c617908012c63757272656e63795f6964c5040134543a3a43757272656e6379496400011464656c6179100144426c6f636b4e756d626572466f723c543e0004049c536565205b6050616c6c65743a3a7570646174655f616c6c6f77616e63655f64656c6179605d2eb4746f67676c655f616c6c6f77616e63655f64656c61795f6f6e63655f6675747572655f6d6f6469666961626c6504012c63757272656e63795f6964c5040134543a3a43757272656e63794964000504f8536565205b6050616c6c65743a3a746f67676c655f616c6c6f77616e63655f64656c61795f6f6e63655f6675747572655f6d6f6469666961626c65605d2e5470757267655f616c6c6f77616e63655f64656c617904012c63757272656e63795f6964c5040134543a3a43757272656e6379496400060498536565205b6050616c6c65743a3a70757267655f616c6c6f77616e63655f64656c6179605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec5040c246366675f747970657318746f6b656e733846696c74657243757272656e63790001080c416c6c0000002053706563696669630400b903012843757272656e6379496400010000c9040c246366675f7479706573246c6f636174696f6e7368526573747269637465645472616e736665724c6f636174696f6e00010c144c6f63616c04000001244163636f756e7449640000000c58636d0400cd040158426f783c56657273696f6e65644c6f636174696f6e3e0001001c416464726573730400d5010134446f6d61696e4164647265737300020000cd04080c78636d4456657273696f6e65644c6f636174696f6e00010c0856320400d104014476323a3a4d756c74694c6f636174696f6e0001000856330400ed04014476333a3a4d756c74694c6f636174696f6e0003000856340400dd01013076343a3a4c6f636174696f6e00040000d104100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72d50401244a756e6374696f6e730000d504100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400d90401204a756e6374696f6e0001000858320800d90401204a756e6374696f6e0000d90401204a756e6374696f6e0002000858330c00d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0003000858341000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0004000858351400d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0005000858361800d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0006000858371c00d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0007000858382000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e00080000d904100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400b101010c7533320000002c4163636f756e744964333208011c6e6574776f726bdd0401244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bdd0401244e6574776f726b4964000114696e64657828010c753634000200304163636f756e744b6579323008011c6e6574776f726bdd0401244e6574776f726b496400010c6b6579810101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e646578040085010110753132380005002847656e6572616c4b65790400e10401805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c6974790801086964e5040118426f6479496400011070617274e9040120426f64795061727400080000dd040c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400e10401805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d6100030000e1040c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003401185665633c543e0000e5040c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400e10401805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400b101010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e9040c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74b101010c753332000100204672616374696f6e08010c6e6f6db101010c75333200011464656e6f6db101010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6db101010c75333200011464656e6f6db101010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6db101010c75333200011464656e6f6db101010c75333200040000ed04102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72f10401244a756e6374696f6e730000f104100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400f50401204a756e6374696f6e0001000858320800f50401204a756e6374696f6e0000f50401204a756e6374696f6e0002000858330c00f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0003000858341000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0004000858351400f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0005000858361800f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0006000858371c00f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0007000858382000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e00080000f504100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400b101010c7533320000002c4163636f756e744964333208011c6e6574776f726bf90401444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bf90401444f7074696f6e3c4e6574776f726b49643e000114696e64657828010c753634000200304163636f756e744b6579323008011c6e6574776f726bf90401444f7074696f6e3c4e6574776f726b49643e00010c6b6579810101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e646578040085010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964f5010118426f6479496400011070617274f9010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400fd0401244e6574776f726b496400090000f90404184f7074696f6e04045401fd040108104e6f6e6500000010536f6d650400fd040000010000fd04100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d6265722c010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f696428010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a000001050c7870616c6c65745f6c69717569646974795f706f6f6c735f676174657761791870616c6c65741043616c6c04045400011c447365745f646f6d61696e5f726f75746572080118646f6d61696e55040118446f6d61696e000118726f7574657205050124543a3a526f7574657200000488536565205b6050616c6c65743a3a7365745f646f6d61696e5f726f75746572605d2e306164645f696e7374616e6365040120696e7374616e6365d5010134446f6d61696e4164647265737300010474536565205b6050616c6c65743a3a6164645f696e7374616e6365605d2e3c72656d6f76655f696e7374616e6365040120696e7374616e6365d5010134446f6d61696e4164647265737300020480536565205b6050616c6c65743a3a72656d6f76655f696e7374616e6365605d2e3c726563656976655f6d65737361676504010c6d7367290501a4426f756e6465645665633c75382c20543a3a4d6178496e636f6d696e674d65737361676553697a653e00050480536565205b6050616c6c65743a3a726563656976655f6d657373616765605d2e5c7365745f646f6d61696e5f686f6f6b5f61646472657373080118646f6d61696e55040118446f6d61696e000130686f6f6b5f61646472657373810101205b75383b2032305d000804a0536565205b6050616c6c65743a3a7365745f646f6d61696e5f686f6f6b5f61646472657373605d2e4c73746172745f62617463685f6d65737361676504012c64657374696e6174696f6e55040118446f6d61696e00090490536565205b6050616c6c65743a3a73746172745f62617463685f6d657373616765605d2e44656e645f62617463685f6d65737361676504012c64657374696e6174696f6e55040118446f6d61696e000a0488536565205b6050616c6c65743a3a656e645f62617463685f6d657373616765605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0505087c6c69717569646974795f706f6f6c735f676174657761795f726f757465727330446f6d61696e526f757465720404540109050104244178656c617245564d04000d0501484178656c617245564d526f757465723c543e000000000905084c646576656c6f706d656e745f72756e74696d651c52756e74696d65000000000d05107c6c69717569646974795f706f6f6c735f676174657761795f726f75746572731c726f7574657273286178656c61725f65766d3c4178656c617245564d526f75746572040454010905000c0118726f757465721105013045564d526f757465723c543e00012465766d5f636861696e250501cc426f756e6465645665633c75382c20436f6e73745533323c4d41585f4158454c41525f45564d5f434841494e5f53495a453e3e0001806c69717569646974795f706f6f6c735f636f6e74726163745f61646472657373210201104831363000001105087c6c69717569646974795f706f6f6c735f676174657761795f726f75746572732445564d526f757465720404540109050004012865766d5f646f6d61696e1505012445564d446f6d61696e00001505087c6c69717569646974795f706f6f6c735f676174657761795f726f75746572732445564d446f6d61696e00000c015c7461726765745f636f6e74726163745f6164647265737321020110483136300001507461726765745f636f6e74726163745f68617368300110483235360001286665655f76616c7565731905012446656556616c75657300001905087c6c69717569646974795f706f6f6c735f676174657761795f726f75746572732446656556616c75657300000c011476616c75651d050110553235360001246761735f70726963651d050110553235360001246761735f6c696d69741d0501105532353600001d05083c7072696d69746976655f7479706573105532353600000400210501205b7536343b20345d00002105000003040000002c0025050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000029050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e00002d050c4470616c6c65745f6f726465725f626f6f6b1870616c6c65741043616c6c0404540001142c706c6163655f6f7264657210012c63757272656e63795f696eb9030134543a3a43757272656e6379496400013063757272656e63795f6f7574b9030134543a3a43757272656e63794964000128616d6f756e745f6f7574180134543a3a42616c616e63654f7574000114726174696f310501504f72646572526174696f3c543a3a526174696f3e00000470536565205b6050616c6c65743a3a706c6163655f6f72646572605d2e307570646174655f6f726465720c01206f726465725f69642c013c543a3a4f7264657249644e6f6e6365000128616d6f756e745f6f7574180134543a3a42616c616e63654f7574000114726174696f310501504f72646572526174696f3c543a3a526174696f3e00010474536565205b6050616c6c65743a3a7570646174655f6f72646572605d2e3063616e63656c5f6f726465720401206f726465725f69642c013c543a3a4f7264657249644e6f6e636500020474536565205b6050616c6c65743a3a63616e63656c5f6f72646572605d2e2866696c6c5f6f726465720801206f726465725f69642c013c543a3a4f7264657249644e6f6e6365000128616d6f756e745f6f7574180134543a3a42616c616e63654f75740003046c536565205b6050616c6c65743a3a66696c6c5f6f72646572605d2e447365745f6d61726b65745f6665656465720401246665656465725f69643505012c543a3a466565646572496400040488536565205b6050616c6c65743a3a7365745f6d61726b65745f666565646572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31050c286366675f747261697473147377617073284f72646572526174696f0414526174696f01c9030108184d61726b657400000018437573746f6d0400c9030114526174696f0001000035050c3872756e74696d655f636f6d6d6f6e186f7261636c651846656564657204044f00000400bd0101404f3a3a50616c6c6574734f726967696e000039050c4870616c6c65745f6f7261636c655f666565641870616c6c65741043616c6c040454000104106665656408010c6b6579b5030130543a3a4f7261636c654b657900011476616c7565c9030138543a3a4f7261636c6556616c756500000454536565205b6050616c6c65743a3a66656564605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d050c6070616c6c65745f6f7261636c655f636f6c6c656374696f6e1870616c6c65741043616c6c04045400010c7870726f706f73655f7570646174655f636f6c6c656374696f6e5f696e666f080134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e4964000110696e666f4105016074797065733a3a436f6c6c656374696f6e496e666f3c543e000004bc536565205b6050616c6c65743a3a70726f706f73655f7570646174655f636f6c6c656374696f6e5f696e666f605d2e706170706c795f7570646174655f636f6c6c656374696f6e5f696e666f080134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e49640001246368616e67655f696430011c543a3a48617368000104b4536565205b6050616c6c65743a3a6170706c795f7570646174655f636f6c6c656374696f6e5f696e666f605d2e447570646174655f636f6c6c656374696f6e040134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e496400020488536565205b6050616c6c65743a3a7570646174655f636f6c6c656374696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41050c6070616c6c65745f6f7261636c655f636f6c6c656374696f6e14747970657338436f6c6c656374696f6e496e666f04045400000c013876616c75655f6c69666574696d650d0101504f7074696f6e3c543a3a54696d657374616d703e00012c6d696e5f6665656465727310010c75333200011c66656564657273450501c4426f756e64656442547265655365743c543a3a46656564657249642c20543a3a4d6178466565646572735065724b65793e000045050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540135050453000004004905012c42547265655365743c543e00004905042042547265655365740404540135050004004d050000004d0500000235050051050c4470616c6c65745f616e63686f72735f76321870616c6c65741043616c6c04045400010c287365745f616e63686f720c012c646f63756d656e745f696418011075313238000140646f63756d656e745f76657273696f6e2c010c7536340001106861736830011c543a3a486173680000046c536565205b6050616c6c65743a3a7365745f616e63686f72605d2e3472656d6f76655f616e63686f7208012c646f63756d656e745f696418011075313238000140646f63756d656e745f76657273696f6e2c010c75363400010478536565205b6050616c6c65743a3a72656d6f76655f616e63686f72605d2e447365745f6465706f7369745f76616c756504012c6e65775f6465706f736974180128543a3a42616c616e636500020488536565205b6050616c6c65743a3a7365745f6465706f7369745f76616c7565605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55050c9070616c6c65745f6c69717569646974795f706f6f6c735f676174657761795f71756575651870616c6c65741043616c6c0404540001083c70726f636573735f6d6573736167650401146e6f6e63652c013c543a3a4d6573736167654e6f6e636500000480536565205b6050616c6c65743a3a70726f636573735f6d657373616765605d2e5870726f636573735f6661696c65645f6d6573736167650401146e6f6e63652c013c543a3a4d6573736167654e6f6e63650001049c536565205b6050616c6c65743a3a70726f636573735f6661696c65645f6d657373616765605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e59050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010498536565205b6050616c6c65743a3a73757370656e645f78636d5f657865637574696f6e605d2e50726573756d655f78636d5f657865637574696f6e00020494536565205b6050616c6c65743a3a726573756d655f78636d5f657865637574696f6e605d2e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c753332000304a4536565205b6050616c6c65743a3a7570646174655f73757370656e645f7468726573686f6c64605d2e547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200040498536565205b6050616c6c65743a3a7570646174655f64726f705f7468726573686f6c64605d2e5c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c753332000504a0536565205b6050616c6c65743a3a7570646174655f726573756d655f7468726573686f6c64605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5d050c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001301073656e6408011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676561050154426f783c56657273696f6e656458636d3c28293e3e00000454536565205b6050616c6c65743a3a73656e64605d2e3c74656c65706f72745f61737365747310011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747361060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c75333200010480536565205b6050616c6c65743a3a74656c65706f72745f617373657473605d2e5c726573657276655f7472616e736665725f61737365747310011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747361060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000204a0536565205b6050616c6c65743a3a726573657276655f7472616e736665725f617373657473605d2e1c6578656375746508011c6d657373616765650601b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f77656967687424011857656967687400030460536565205b6050616c6c65743a3a65786563757465605d2e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6edd010134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00040488536565205b6050616c6c65743a3a666f7263655f78636d5f76657273696f6e605d2e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e450201484f7074696f6e3c58636d56657273696f6e3e000504a8536565205b6050616c6c65743a3a666f7263655f64656661756c745f78636d5f76657273696f6e605d2e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ecd040158426f783c56657273696f6e65644c6f636174696f6e3e000604bc536565205b6050616c6c65743a3a666f7263655f7375627363726962655f76657273696f6e5f6e6f74696679605d2e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ecd040158426f783c56657273696f6e65644c6f636174696f6e3e000704c4536565205b6050616c6c65743a3a666f7263655f756e7375627363726962655f76657273696f6e5f6e6f74696679605d2e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747361060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69741106012c5765696768744c696d6974000804c0536565205b6050616c6c65743a3a6c696d697465645f726573657276655f7472616e736665725f617373657473605d2e5c6c696d697465645f74656c65706f72745f61737365747314011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747361060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69741106012c5765696768744c696d6974000904a0536565205b6050616c6c65743a3a6c696d697465645f74656c65706f72745f617373657473605d2e40666f7263655f73757370656e73696f6e04012473757370656e646564780110626f6f6c000a0484536565205b6050616c6c65743a3a666f7263655f73757370656e73696f6e605d2e3c7472616e736665725f61737365747314011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747361060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69741106012c5765696768744c696d6974000b0480536565205b6050616c6c65743a3a7472616e736665725f617373657473605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6105080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204006505015076323a3a58636d3c52756e74696d6543616c6c3e0002000856330400b105015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404001506015076343a3a58636d3c52756e74696d6543616c6c3e0004000065050c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400690501745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e000069050000026d05006d050c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007105012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007105012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007105012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f696428011c51756572794964000120726573706f6e736589050120526573706f6e73650001286d61785f77656967687428010c753634000300345472616e7366657241737365740801186173736574737105012c4d756c746941737365747300012c62656e6566696369617279d10401344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737105012c4d756c746941737365747300011064657374d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065990501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c9d050168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572b101010c7533320001406d61785f6d6573736167655f73697a65b101010c7533320001306d61785f6361706163697479b101010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74b101010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72b101010c75333200011873656e646572b101010c753332000124726563697069656e74b101010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400d5040154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f696428011c5175657279496400011064657374d10401344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f77656967687428010c753634000c00304465706f73697441737365740c0118617373657473a10501404d756c7469417373657446696c7465720001286d61785f617373657473b101010c75333200012c62656e6566696369617279d10401344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473a10501404d756c7469417373657446696c7465720001286d61785f617373657473b101010c75333200011064657374d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e000e003445786368616e6765417373657408011067697665a10501404d756c7469417373657446696c74657200011c726563656976657105012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473a10501404d756c7469417373657446696c74657200011c72657365727665d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473a10501404d756c7469417373657446696c74657200011064657374d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f696428011c5175657279496400011064657374d10401344d756c74694c6f636174696f6e000118617373657473a10501404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f77656967687428010c75363400120030427579457865637574696f6e08011066656573790501284d756c746941737365740001307765696768745f6c696d6974ad05012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204006505014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804006505014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737105012c4d756c74694173736574730001187469636b6574d10401344d756c74694c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f77656967687428010c753634001a0048556e73756273637269626556657273696f6e001b00007105100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007505013c5665633c4d756c746941737365743e000075050000027905007905100c78636d087632286d756c74696173736574284d756c74694173736574000008010869647d05011c4173736574496400010c66756e8105012c46756e676962696c69747900007d05100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400d10401344d756c74694c6f636174696f6e000000204162737472616374040034011c5665633c75383e000100008105100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c65040085010110753132380000002c4e6f6e46756e6769626c650400850501344173736574496e7374616e6365000100008505100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400850101107531323800010018417272617934040044011c5b75383b20345d0002001841727261793804007d02011c5b75383b20385d0003001c4172726179313604009d0201205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040034011c5665633c75383e0006000089050c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007105012c4d756c74694173736574730001003c457865637574696f6e526573756c7404008d0501504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e000300008d0504184f7074696f6e0404540191050108104e6f6e6500000010536f6d65040091050000010000910500000408109505009505100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e73697665001400105472617004002c010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404002c01185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c650019000099050c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300009d050c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656434011c5665633c75383e0000a105100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007105012c4d756c74694173736574730000001057696c640400a505013857696c644d756c7469417373657400010000a505100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869647d05011c4173736574496400010c66756ea905013c57696c6446756e676962696c69747900010000a905100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000ad050c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d69746564040028010c75363400010000b1050c0c78636d0876330c58636d041043616c6c00000400b50501585665633c496e737472756374696f6e3c43616c6c3e3e0000b505000002b90500b9050c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400bd05012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400bd05012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400bd05012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f696428011c51756572794964000120726573706f6e7365d5050120526573706f6e73650001286d61785f77656967687424011857656967687400011c71756572696572fd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473bd05012c4d756c746941737365747300012c62656e6566696369617279ed0401344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473bd05012c4d756c746941737365747300011064657374ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64990501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424011857656967687400011063616c6c9d05014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572b101010c7533320001406d61785f6d6573736167655f73697a65b101010c7533320001306d61785f6361706163697479b101010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74b101010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72b101010c75333200011873656e646572b101010c753332000124726563697069656e74b101010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400f1040154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400010601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473050601404d756c7469417373657446696c74657200012c62656e6566696369617279ed0401344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473050601404d756c7469417373657446696c74657200011064657374ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e000e003445786368616e676541737365740c011067697665050601404d756c7469417373657446696c74657200011077616e74bd05012c4d756c746941737365747300011c6d6178696d616c780110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473050601404d756c7469417373657446696c74657200011c72657365727665ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473050601404d756c7469417373657446696c74657200011064657374ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f010601445175657279526573706f6e7365496e666f000118617373657473050601404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573c50501284d756c746941737365740001307765696768745f6c696d69741106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400b105012458636d3c43616c6c3e0015002c536574417070656e6469780400b105012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473bd05012c4d756c74694173736574730001187469636b6574ed0401344d756c74694c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f776569676874240118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400bd05012c4d756c7469417373657473001c002c45787065637441737365740400bd05012c4d756c7469417373657473001d00304578706563744f726967696e0400fd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400d90501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400f50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6534011c5665633c75383e000134726573706f6e73655f696e666f010601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578b101010c7533320001106e616d6534011c5665633c75383e00012c6d6f64756c655f6e616d6534011c5665633c75383e00012c63726174655f6d616a6f72b101010c75333200013c6d696e5f63726174655f6d696e6f72b101010c753332002200505265706f72745472616e736163745374617475730400010601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400f50401204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bfd0401244e6574776f726b496400012c64657374696e6174696f6ef1040154496e746572696f724d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e002600244c6f636b41737365740801146173736574c50501284d756c74694173736574000120756e6c6f636b6572ed0401344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574c50501284d756c74694173736574000118746172676574ed0401344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574c50501284d756c746941737365740001146f776e6572ed0401344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574c50501284d756c746941737365740001186c6f636b6572ed0401344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177780110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400ed0401344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69741106012c5765696768744c696d6974000130636865636b5f6f726967696efd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e002f0000bd05100c78636d087633286d756c746961737365742c4d756c746941737365747300000400c105013c5665633c4d756c746941737365743e0000c105000002c50500c505100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964c905011c4173736574496400010c66756ecd05012c46756e676962696c6974790000c905100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400ed0401344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000cd05100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c65040085010110753132380000002c4e6f6e46756e6769626c650400d10501344173736574496e7374616e636500010000d105100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400850101107531323800010018417272617934040044011c5b75383b20345d0002001841727261793804007d02011c5b75383b20385d0003001c4172726179313604009d0201205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d5050c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400bd05012c4d756c74694173736574730001003c457865637574696f6e526573756c740400d90501504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f0400e5050198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400f50501384d617962654572726f72436f646500050000d90504184f7074696f6e04045401dd050108104e6f6e6500000010536f6d650400dd050000010000dd050000040810e10500e105100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e73697665001400105472617004002c010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002401185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000e5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e905045300000400f10501185665633c543e0000e9050c0c78636d0876332850616c6c6574496e666f0000180114696e646578b101010c7533320001106e616d65ed050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d65ed050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72b101010c7533320001146d696e6f72b101010c7533320001147061746368b101010c7533320000ed050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000f105000002e90500f5050c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f720400f905018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f720400f905018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e00020000f9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000fd0504184f7074696f6e04045401ed040108104e6f6e6500000010536f6d650400ed04000001000001060c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6eed0401344d756c74694c6f636174696f6e00012071756572795f696428011c517565727949640001286d61785f77656967687424011857656967687400000506100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400bd05012c4d756c74694173736574730000001057696c6404000906013857696c644d756c74694173736574000100000906100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964c905011c4173736574496400010c66756e0d06013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400b101010c75333200020030416c6c4f66436f756e7465640c01086964c905011c4173736574496400010c66756e0d06013c57696c6446756e676962696c697479000114636f756e74b101010c753332000300000d06100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000011060c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002401185765696768740001000015060c2c73746167696e675f78636d0876340c58636d041043616c6c00000400190601585665633c496e737472756374696f6e3c43616c6c3e3e000019060000021d06001d060c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040021060118417373657473000000545265736572766541737365744465706f7369746564040021060118417373657473000100585265636569766554656c65706f727465644173736574040021060118417373657473000200345175657279526573706f6e736510012071756572795f696428011c51756572794964000120726573706f6e736539060120526573706f6e73650001286d61785f77656967687424011857656967687400011c717565726965724d0601404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574732106011841737365747300012c62656e6566696369617279dd0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574732106011841737365747300011064657374dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64990501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424011857656967687400011063616c6c9d05014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572b101010c7533320001406d61785f6d6573736167655f73697a65b101010c7533320001306d61785f6361706163697479b101010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74b101010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72b101010c75333200011873656e646572b101010c753332000124726563697069656e74b101010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400e1010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400510601445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574735506012c417373657446696c74657200012c62656e6566696369617279dd0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574735506012c417373657446696c74657200011064657374dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e000e003445786368616e676541737365740c0110676976655506012c417373657446696c74657200011077616e742106011841737365747300011c6d6178696d616c780110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574735506012c417373657446696c74657200011c72657365727665dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574735506012c417373657446696c74657200011064657374dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f510601445175657279526573706f6e7365496e666f0001186173736574735506012c417373657446696c74657200120030427579457865637574696f6e080110666565732906011441737365740001307765696768745f6c696d69741106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001506012458636d3c43616c6c3e0015002c536574417070656e64697804001506012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473210601184173736574730001187469636b6574dd0101204c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f776569676874240118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040021060118417373657473001c002c4578706563744173736574040021060118417373657473001d00304578706563744f726967696e04004d0601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400d90501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400f50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6534011c5665633c75383e000134726573706f6e73655f696e666f510601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578b101010c7533320001106e616d6534011c5665633c75383e00012c6d6f64756c655f6e616d6534011c5665633c75383e00012c63726174655f6d616a6f72b101010c75333200013c6d696e5f63726174655f6d696e6f72b101010c753332002200505265706f72745472616e736163745374617475730400510601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400e90101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bf10101244e6574776f726b496400012c64657374696e6174696f6ee1010140496e746572696f724c6f636174696f6e00010c78636d1506011c58636d3c28293e002600244c6f636b41737365740801146173736574290601144173736574000120756e6c6f636b6572dd0101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574290601144173736574000118746172676574dd0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365742906011441737365740001146f776e6572dd0101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365742906011441737365740001186c6f636b6572dd0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177780110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400dd0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69741106012c5765696768744c696d6974000130636865636b5f6f726967696e4d0601404f7074696f6e3c4c6f636174696f6e3e002f00002106102c73746167696e675f78636d0876341461737365741841737365747300000400250601285665633c41737365743e000025060000022906002906102c73746167696e675f78636d087634146173736574144173736574000008010869642d06011c4173736574496400010c66756e3106012c46756e676962696c69747900002d06102c73746167696e675f78636d0876341461737365741c4173736574496400000400dd0101204c6f636174696f6e00003106102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c65040085010110753132380000002c4e6f6e46756e6769626c650400350601344173736574496e7374616e6365000100003506102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400850101107531323800010018417272617934040044011c5b75383b20345d0002001841727261793804007d02011c5b75383b20385d0003001c4172726179313604009d0201205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000039060c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400210601184173736574730001003c457865637574696f6e526573756c740400d90501504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d060198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400f50501384d617962654572726f72436f6465000500003d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014106045300000400490601185665633c543e000041060c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578b101010c7533320001106e616d6545060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72b101010c7533320001146d696e6f72b101010c7533320001147061746368b101010c753332000045060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000049060000024106004d0604184f7074696f6e04045401dd010108104e6f6e6500000010536f6d650400dd01000001000051060c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6edd0101204c6f636174696f6e00012071756572795f696428011c517565727949640001286d61785f77656967687424011857656967687400005506102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400210601184173736574730000001057696c6404005906012457696c644173736574000100005906102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869642d06011c4173736574496400010c66756e5d06013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400b101010c75333200020030416c6c4f66436f756e7465640c010869642d06011c4173736574496400010c66756e5d06013c57696c6446756e676962696c697479000114636f756e74b101010c753332000300005d06102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100006106080c78636d3c56657273696f6e656441737365747300010c08563204007105013c76323a3a4d756c74694173736574730001000856330400bd05013c76333a3a4d756c746941737365747300030008563404002106012876343a3a417373657473000400006506080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204006906015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304007906015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404008506015076343a3a58636d3c52756e74696d6543616c6c3e0004000069060c0c78636d0876320c58636d042c52756e74696d6543616c6c000004006d0601745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00006d0600000271060071060c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007105012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007105012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007105012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f696428011c51756572794964000120726573706f6e736589050120526573706f6e73650001286d61785f77656967687428010c753634000300345472616e7366657241737365740801186173736574737105012c4d756c746941737365747300012c62656e6566696369617279d10401344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737105012c4d756c746941737365747300011064657374d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065990501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c75060168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572b101010c7533320001406d61785f6d6573736167655f73697a65b101010c7533320001306d61785f6361706163697479b101010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74b101010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72b101010c75333200011873656e646572b101010c753332000124726563697069656e74b101010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400d5040154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f696428011c5175657279496400011064657374d10401344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f77656967687428010c753634000c00304465706f73697441737365740c0118617373657473a10501404d756c7469417373657446696c7465720001286d61785f617373657473b101010c75333200012c62656e6566696369617279d10401344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473a10501404d756c7469417373657446696c7465720001286d61785f617373657473b101010c75333200011064657374d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e000e003445786368616e6765417373657408011067697665a10501404d756c7469417373657446696c74657200011c726563656976657105012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473a10501404d756c7469417373657446696c74657200011c72657365727665d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473a10501404d756c7469417373657446696c74657200011064657374d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f696428011c5175657279496400011064657374d10401344d756c74694c6f636174696f6e000118617373657473a10501404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f77656967687428010c75363400120030427579457865637574696f6e08011066656573790501284d756c746941737365740001307765696768745f6c696d6974ad05012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204006906014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804006906014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737105012c4d756c74694173736574730001187469636b6574d10401344d756c74694c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f77656967687428010c753634001a0048556e73756273637269626556657273696f6e001b000075060c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656434011c5665633c75383e000079060c0c78636d0876330c58636d041043616c6c000004007d0601585665633c496e737472756374696f6e3c43616c6c3e3e00007d0600000281060081060c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400bd05012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400bd05012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400bd05012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f696428011c51756572794964000120726573706f6e7365d5050120526573706f6e73650001286d61785f77656967687424011857656967687400011c71756572696572fd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473bd05012c4d756c746941737365747300012c62656e6566696369617279ed0401344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473bd05012c4d756c746941737365747300011064657374ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64990501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424011857656967687400011063616c6c7506014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572b101010c7533320001406d61785f6d6573736167655f73697a65b101010c7533320001306d61785f6361706163697479b101010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74b101010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72b101010c75333200011873656e646572b101010c753332000124726563697069656e74b101010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400f1040154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400010601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473050601404d756c7469417373657446696c74657200012c62656e6566696369617279ed0401344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473050601404d756c7469417373657446696c74657200011064657374ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e000e003445786368616e676541737365740c011067697665050601404d756c7469417373657446696c74657200011077616e74bd05012c4d756c746941737365747300011c6d6178696d616c780110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473050601404d756c7469417373657446696c74657200011c72657365727665ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473050601404d756c7469417373657446696c74657200011064657374ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f010601445175657279526573706f6e7365496e666f000118617373657473050601404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573c50501284d756c746941737365740001307765696768745f6c696d69741106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007906012458636d3c43616c6c3e0015002c536574417070656e64697804007906012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473bd05012c4d756c74694173736574730001187469636b6574ed0401344d756c74694c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f776569676874240118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400bd05012c4d756c7469417373657473001c002c45787065637441737365740400bd05012c4d756c7469417373657473001d00304578706563744f726967696e0400fd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400d90501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400f50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6534011c5665633c75383e000134726573706f6e73655f696e666f010601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578b101010c7533320001106e616d6534011c5665633c75383e00012c6d6f64756c655f6e616d6534011c5665633c75383e00012c63726174655f6d616a6f72b101010c75333200013c6d696e5f63726174655f6d696e6f72b101010c753332002200505265706f72745472616e736163745374617475730400010601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400f50401204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bfd0401244e6574776f726b496400012c64657374696e6174696f6ef1040154496e746572696f724d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e002600244c6f636b41737365740801146173736574c50501284d756c74694173736574000120756e6c6f636b6572ed0401344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574c50501284d756c74694173736574000118746172676574ed0401344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574c50501284d756c746941737365740001146f776e6572ed0401344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574c50501284d756c746941737365740001186c6f636b6572ed0401344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177780110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400ed0401344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69741106012c5765696768744c696d6974000130636865636b5f6f726967696efd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000085060c2c73746167696e675f78636d0876340c58636d041043616c6c00000400890601585665633c496e737472756374696f6e3c43616c6c3e3e000089060000028d06008d060c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040021060118417373657473000000545265736572766541737365744465706f7369746564040021060118417373657473000100585265636569766554656c65706f727465644173736574040021060118417373657473000200345175657279526573706f6e736510012071756572795f696428011c51756572794964000120726573706f6e736539060120526573706f6e73650001286d61785f77656967687424011857656967687400011c717565726965724d0601404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574732106011841737365747300012c62656e6566696369617279dd0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574732106011841737365747300011064657374dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64990501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424011857656967687400011063616c6c7506014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572b101010c7533320001406d61785f6d6573736167655f73697a65b101010c7533320001306d61785f6361706163697479b101010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74b101010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72b101010c75333200011873656e646572b101010c753332000124726563697069656e74b101010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400e1010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400510601445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574735506012c417373657446696c74657200012c62656e6566696369617279dd0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574735506012c417373657446696c74657200011064657374dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e000e003445786368616e676541737365740c0110676976655506012c417373657446696c74657200011077616e742106011841737365747300011c6d6178696d616c780110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574735506012c417373657446696c74657200011c72657365727665dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574735506012c417373657446696c74657200011064657374dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f510601445175657279526573706f6e7365496e666f0001186173736574735506012c417373657446696c74657200120030427579457865637574696f6e080110666565732906011441737365740001307765696768745f6c696d69741106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008506012458636d3c43616c6c3e0015002c536574417070656e64697804008506012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473210601184173736574730001187469636b6574dd0101204c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f776569676874240118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040021060118417373657473001c002c4578706563744173736574040021060118417373657473001d00304578706563744f726967696e04004d0601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400d90501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400f50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6534011c5665633c75383e000134726573706f6e73655f696e666f510601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578b101010c7533320001106e616d6534011c5665633c75383e00012c6d6f64756c655f6e616d6534011c5665633c75383e00012c63726174655f6d616a6f72b101010c75333200013c6d696e5f63726174655f6d696e6f72b101010c753332002200505265706f72745472616e736163745374617475730400510601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400e90101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bf10101244e6574776f726b496400012c64657374696e6174696f6ee1010140496e746572696f724c6f636174696f6e00010c78636d1506011c58636d3c28293e002600244c6f636b41737365740801146173736574290601144173736574000120756e6c6f636b6572dd0101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574290601144173736574000118746172676574dd0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365742906011441737365740001146f776e6572dd0101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365742906011441737365740001186c6f636b6572dd0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177780110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400dd0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69741106012c5765696768744c696d6974000130636865636b5f6f726967696e4d0601404f7074696f6e3c4c6f636174696f6e3e002f000091060c6470616c6c65745f726573747269637465645f78746f6b656e731870616c6c65741043616c6c040454000118207472616e7366657210012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e636500011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e000144646573745f7765696768745f6c696d69741106012c5765696768744c696d697400000464536565205b6050616c6c65743a3a7472616e73666572605d2e4c7472616e736665725f6d756c746961737365740c011461737365749506014c426f783c56657273696f6e656441737365743e00011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e000144646573745f7765696768745f6c696d69741106012c5765696768744c696d697400010490536565205b6050616c6c65743a3a7472616e736665725f6d756c74696173736574605d2e447472616e736665725f776974685f66656514012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e636500010c666565180128543a3a42616c616e636500011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e000144646573745f7765696768745f6c696d69741106012c5765696768744c696d697400020488536565205b6050616c6c65743a3a7472616e736665725f776974685f666565605d2e707472616e736665725f6d756c746961737365745f776974685f66656510011461737365749506014c426f783c56657273696f6e656441737365743e00010c6665659506014c426f783c56657273696f6e656441737365743e00011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e000144646573745f7765696768745f6c696d69741106012c5765696768744c696d6974000304b4536565205b6050616c6c65743a3a7472616e736665725f6d756c746961737365745f776974685f666565605d2e607472616e736665725f6d756c746963757272656e6369657310012863757272656e63696573990601805665633c28543a3a43757272656e637949642c20543a3a42616c616e6365293e0001206665655f6974656d10010c75333200011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e000144646573745f7765696768745f6c696d69741106012c5765696768744c696d6974000404a4536565205b6050616c6c65743a3a7472616e736665725f6d756c746963757272656e63696573605d2e507472616e736665725f6d756c746961737365747310011861737365747361060150426f783c56657273696f6e65644173736574733e0001206665655f6974656d10010c75333200011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e000144646573745f7765696768745f6c696d69741106012c5765696768744c696d697400050494536565205b6050616c6c65743a3a7472616e736665725f6d756c7469617373657473605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9506080c78636d3856657273696f6e6564417373657400010c08563204007905013876323a3a4d756c746941737365740001000856330400c505013876333a3a4d756c7469417373657400030008563404002906012476343a3a41737365740004000099060000029d06009d0600000408b9031800a1060c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65741043616c6c04045400012820726567697374657208010c77686f000130543a3a4163636f756e744964000114696e646578b4010c75313600000464536565205b6050616c6c65743a3a7265676973746572605d2e2864657265676973746572040114696e646578b4010c7531360001046c536565205b6050616c6c65743a3a64657265676973746572605d2e6c7472616e736163745f7468726f7567685f6465726976617469766518011064657374a5060134543a3a5472616e736163746f72000114696e646578b4010c75313600010c666565a906018043757272656e63795061796d656e743c43757272656e637949644f663c543e3e000128696e6e65725f63616c6c34011c5665633c75383e00012c7765696768745f696e666fb106013c5472616e7361637457656967687473000118726566756e64780110626f6f6c000204b0536565205b6050616c6c65743a3a7472616e736163745f7468726f7567685f64657269766174697665605d2e687472616e736163745f7468726f7567685f736f7665726569676e1c011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e0001246665655f7061796572110101504f7074696f6e3c543a3a4163636f756e7449643e00010c666565a906018043757272656e63795061796d656e743c43757272656e637949644f663c543e3e00011063616c6c34011c5665633c75383e00012c6f726967696e5f6b696e64990501284f726967696e4b696e6400012c7765696768745f696e666fb106013c5472616e7361637457656967687473000118726566756e64780110626f6f6c000304ac536565205b6050616c6c65743a3a7472616e736163745f7468726f7567685f736f7665726569676e605d2e447365745f7472616e736163745f696e666f1001206c6f636174696f6ecd040158426f783c56657273696f6e65644c6f636174696f6e3e0001547472616e736163745f65787472615f7765696768742401185765696768740001286d61785f7765696768742401185765696768740001707472616e736163745f65787472615f7765696768745f7369676e6564b90601384f7074696f6e3c5765696768743e00040488536565205b6050616c6c65743a3a7365745f7472616e736163745f696e666f605d2e5072656d6f76655f7472616e736163745f696e666f0401206c6f636174696f6ecd040158426f783c56657273696f6e65644c6f636174696f6e3e00050494536565205b6050616c6c65743a3a72656d6f76655f7472616e736163745f696e666f605d2e5c7472616e736163745f7468726f7567685f7369676e656414011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00010c666565a906018043757272656e63795061796d656e743c43757272656e637949644f663c543e3e00011063616c6c34011c5665633c75383e00012c7765696768745f696e666fb106013c5472616e7361637457656967687473000118726566756e64780110626f6f6c000604a0536565205b6050616c6c65743a3a7472616e736163745f7468726f7567685f7369676e6564605d2e487365745f6665655f7065725f7365636f6e6408013861737365745f6c6f636174696f6ecd040158426f783c56657273696f6e65644c6f636174696f6e3e0001386665655f7065725f7365636f6e64180110753132380007048c536565205b6050616c6c65743a3a7365745f6665655f7065725f7365636f6e64605d2e5472656d6f76655f6665655f7065725f7365636f6e6404013861737365745f6c6f636174696f6ecd040158426f783c56657273696f6e65644c6f636174696f6e3e00080498536565205b6050616c6c65743a3a72656d6f76655f6665655f7065725f7365636f6e64605d2e2c68726d705f6d616e6167650c0118616374696f6ebd06013448726d704f7065726174696f6e00010c666565a906018043757272656e63795061796d656e743c43757272656e637949644f663c543e3e00012c7765696768745f696e666fb106013c5472616e736163745765696768747300090470536565205b6050616c6c65743a3a68726d705f6d616e616765605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea5060c3872756e74696d655f636f6d6d6f6e3878636d5f7472616e736163746f72384e756c6c5472616e736163746f7200000000a9060c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65743c43757272656e63795061796d656e74042843757272656e6379496401b9030008012063757272656e6379ad06015043757272656e63793c43757272656e637949643e0001286665655f616d6f756e74210301304f7074696f6e3c753132383e0000ad060c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65742043757272656e6379042843757272656e6379496401b903010830417343757272656e637949640400b903012843757272656e637949640000003c41734d756c74694c6f636174696f6e0400cd040158426f783c56657273696f6e65644c6f636174696f6e3e00010000b1060c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65743c5472616e736163745765696768747300000801807472616e736163745f72657175697265645f7765696768745f61745f6d6f73742401185765696768740001386f766572616c6c5f776569676874b506014c4f7074696f6e3c5765696768744c696d69743e0000b50604184f7074696f6e0404540111060108104e6f6e6500000010536f6d65040011060000010000b90604184f7074696f6e04045401240108104e6f6e6500000010536f6d650400240000010000bd060c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65743448726d704f7065726174696f6e00011020496e69744f70656e0400c106013848726d70496e6974506172616d730000001841636365707404011c706172615f69645d01011850617261496400010014436c6f73650400c506013448726d704368616e6e656c49640002001843616e63656c0801286368616e6e656c5f6964c506013448726d704368616e6e656c49640001346f70656e5f726571756573747310010c75333200030000c1060c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65743848726d70496e6974506172616d7300000c011c706172615f69645d01011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c7533320000c5060c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665733448726d704368616e6e656c4964000008011873656e6465725d0101084964000124726563697069656e745d01010849640000c9060c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ecd0601484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e64657800000468536565205b6050616c6c65743a3a726561705f70616765605d2e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ecd0601484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d69742401185765696768740001048c536565205b6050616c6c65743a3a657865637574655f6f766572776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd06085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e6704005d01011850617261496400020000d1060c2c636861696e6272696467651870616c6c65741043616c6c040454000124347365745f7468726573686f6c640401247468726573686f6c6410010c75333200000478536565205b6050616c6c65743a3a7365745f7468726573686f6c64605d2e307365745f7265736f7572636508010869640401285265736f7572636549640001186d6574686f6434011c5665633c75383e00010474536565205b6050616c6c65743a3a7365745f7265736f75726365605d2e3c72656d6f76655f7265736f7572636504010869640401285265736f75726365496400020480536565205b6050616c6c65743a3a72656d6f76655f7265736f75726365605d2e3c77686974656c6973745f636861696e040108696408011c436861696e496400030480536565205b6050616c6c65743a3a77686974656c6973745f636861696e605d2e2c6164645f72656c6179657204010476000130543a3a4163636f756e74496400040470536565205b6050616c6c65743a3a6164645f72656c61796572605d2e3872656d6f76655f72656c617965720401286163636f756e745f6964000130543a3a4163636f756e7449640005047c536565205b6050616c6c65743a3a72656d6f76655f72656c61796572605d2e5061636b6e6f776c656467655f70726f706f73616c1001146e6f6e63652c01304465706f7369744e6f6e63650001187372635f696408011c436861696e4964000110725f69640401285265736f75726365496400011063616c6c25010170426f783c3c5420617320436f6e6669673e3a3a50726f706f73616c3e00060494536565205b6050616c6c65743a3a61636b6e6f776c656467655f70726f706f73616c605d2e3c72656a6563745f70726f706f73616c1001146e6f6e63652c01304465706f7369744e6f6e63650001187372635f696408011c436861696e4964000110725f69640401285265736f75726365496400011063616c6c25010170426f783c3c5420617320436f6e6669673e3a3a50726f706f73616c3e00070480536565205b6050616c6c65743a3a72656a6563745f70726f706f73616c605d2e3c6576616c5f766f74655f73746174650c01146e6f6e63652c01304465706f7369744e6f6e63650001187372635f696408011c436861696e496400012070726f706f73616c25010170426f783c3c5420617320436f6e6669673e3a3a50726f706f73616c3e00080480536565205b6050616c6c65743a3a6576616c5f766f74655f7374617465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed5060c4c6f726d6c5f61737365745f7265676973747279186d6f64756c651043616c6c0404540001083872656769737465725f61737365740801206d65746164617461d90601f041737365744d657461646174613c543a3a42616c616e63652c20543a3a437573746f6d4d657461646174612c20543a3a537472696e674c696d69743e00012061737365745f6964f10601484f7074696f6e3c543a3a417373657449643e0000047c536565205b6050616c6c65743a3a72656769737465725f6173736574605d2e307570646174655f61737365741c012061737365745f6964b9030128543a3a41737365744964000120646563696d616c734502012c4f7074696f6e3c7533323e0001106e616d65f50601984f7074696f6e3c426f756e6465645665633c75382c20543a3a537472696e674c696d69743e3e00011873796d626f6cf50601984f7074696f6e3c426f756e6465645665633c75382c20543a3a537472696e674c696d69743e3e00014c6578697374656e7469616c5f6465706f736974210301484f7074696f6e3c543a3a42616c616e63653e0001206c6f636174696f6ef90601844f7074696f6e3c4f7074696f6e3c56657273696f6e65644c6f636174696f6e3e3e0001286164646974696f6e616cfd0601644f7074696f6e3c543a3a437573746f6d4d657461646174613e00010474536565205b6050616c6c65743a3a7570646174655f6173736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9060c2c6f726d6c5f7472616974733861737365745f72656769737472793441737365744d657461646174610c1c42616c616e6365011838437573746f6d4d6574616461746101dd062c537472696e674c696d69740000180120646563696d616c7310010c7533320001106e616d657104016c426f756e6465645665633c75382c20537472696e674c696d69743e00011873796d626f6c7104016c426f756e6465645665633c75382c20537472696e674c696d69743e00014c6578697374656e7469616c5f6465706f73697418011c42616c616e63650001206c6f636174696f6eed0601644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001286164646974696f6e616cdd060138437573746f6d4d657461646174610000dd060c246366675f747970657318746f6b656e7338437573746f6d4d65746164617461000014013c7472616e736665726162696c697479e106016443726f7373436861696e5472616e736665726162696c6974790001206d696e7461626c65780110626f6f6c0001307065726d697373696f6e6564780110626f6f6c000134706f6f6c5f63757272656e6379780110626f6f6c0001506c6f63616c5f726570726573656e746174696f6ee90601504f7074696f6e3c4c6f63616c417373657449643e0000e1060c246366675f747970657318746f6b656e736443726f7373436861696e5472616e736665726162696c69747900010c104e6f6e650000000c58636d0400e506012c58636d4d65746164617461000100384c6971756964697479506f6f6c7300020000e5060c246366675f74797065730c78636d2c58636d4d6574616461746100000401386665655f7065725f7365636f6e642103013c4f7074696f6e3c42616c616e63653e0000e90604184f7074696f6e04045401c1030108104e6f6e6500000010536f6d650400c1030000010000ed0604184f7074696f6e04045401cd040108104e6f6e6500000010536f6d650400cd040000010000f10604184f7074696f6e04045401b9030108104e6f6e6500000010536f6d650400b9030000010000f50604184f7074696f6e0404540171040108104e6f6e6500000010536f6d65040071040000010000f90604184f7074696f6e04045401ed060108104e6f6e6500000010536f6d650400ed060000010000fd0604184f7074696f6e04045401dd060108104e6f6e6500000010536f6d650400dd06000001000001070c206f726d6c5f78636d186d6f64756c651043616c6c0404540001044473656e645f61735f736f7665726569676e08011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676561050154426f783c56657273696f6e656458636d3c28293e3e00000488536565205b6050616c6c65743a3a73656e645f61735f736f7665726569676e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e05070c2870616c6c65745f65766d1870616c6c65741043616c6c04045400011020776974686472617708011c61646472657373210201104831363000011476616c756518013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7769746864726177605d2e1063616c6c240118736f7572636521020110483136300001187461726765742102011048313630000114696e70757434011c5665633c75383e00011476616c75651d050110553235360001246761735f6c696d69742c010c75363400013c6d61785f6665655f7065725f6761731d050110553235360001606d61785f7072696f726974795f6665655f7065725f676173090701304f7074696f6e3c553235363e0001146e6f6e6365090701304f7074696f6e3c553235363e00012c6163636573735f6c6973740d0701585665633c28483136302c205665633c483235363e293e00010454536565205b6050616c6c65743a3a63616c6c605d2e18637265617465200118736f757263652102011048313630000110696e697434011c5665633c75383e00011476616c75651d050110553235360001246761735f6c696d69742c010c75363400013c6d61785f6665655f7065725f6761731d050110553235360001606d61785f7072696f726974795f6665655f7065725f676173090701304f7074696f6e3c553235363e0001146e6f6e6365090701304f7074696f6e3c553235363e00012c6163636573735f6c6973740d0701585665633c28483136302c205665633c483235363e293e0002045c536565205b6050616c6c65743a3a637265617465605d2e1c63726561746532240118736f757263652102011048313630000110696e697434011c5665633c75383e00011073616c743001104832353600011476616c75651d050110553235360001246761735f6c696d69742c010c75363400013c6d61785f6665655f7065725f6761731d050110553235360001606d61785f7072696f726974795f6665655f7065725f676173090701304f7074696f6e3c553235363e0001146e6f6e6365090701304f7074696f6e3c553235363e00012c6163636573735f6c6973740d0701585665633c28483136302c205665633c483235363e293e00030460536565205b6050616c6c65743a3a63726561746532605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e090704184f7074696f6e040454011d050108104e6f6e6500000010536f6d6504001d0500000100000d07000002110700110700000408210229030015070c3c70616c6c65745f626173655f6665651870616c6c65741043616c6c040454000108507365745f626173655f6665655f7065725f67617304010c6665651d0501105532353600000494536565205b6050616c6c65743a3a7365745f626173655f6665655f7065725f676173605d2e387365745f656c6173746963697479040128656c61737469636974791907011c5065726d696c6c0001047c536565205b6050616c6c65743a3a7365745f656c6173746963697479605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e19070c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c75333200001d070c3c70616c6c65745f657468657265756d1870616c6c65741043616c6c040454000104207472616e7361637404012c7472616e73616374696f6e2107012c5472616e73616374696f6e00000464536565205b6050616c6c65743a3a7472616e73616374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e21070c20657468657265756d2c7472616e73616374696f6e345472616e73616374696f6e563200010c184c65676163790400250701444c65676163795472616e73616374696f6e0000001c45495032393330040035070148454950323933305472616e73616374696f6e0001001c45495031353539040041070148454950313535395472616e73616374696f6e0002000025070c20657468657265756d2c7472616e73616374696f6e444c65676163795472616e73616374696f6e00001c01146e6f6e63651d050110553235360001246761735f70726963651d050110553235360001246761735f6c696d69741d05011055323536000118616374696f6e290701445472616e73616374696f6e416374696f6e00011476616c75651d05011055323536000114696e70757434011442797465730001247369676e61747572652d0701505472616e73616374696f6e5369676e6174757265000029070c20657468657265756d2c7472616e73616374696f6e445472616e73616374696f6e416374696f6e0001081043616c6c0400210201104831363000000018437265617465000100002d070c20657468657265756d2c7472616e73616374696f6e505472616e73616374696f6e5369676e617475726500000c010476310701545472616e73616374696f6e5265636f76657279496400010472300110483235360001047330011048323536000031070c20657468657265756d2c7472616e73616374696f6e545472616e73616374696f6e5265636f766572794964000004002c010c753634000035070c20657468657265756d2c7472616e73616374696f6e48454950323933305472616e73616374696f6e00002c0120636861696e5f69642c010c7536340001146e6f6e63651d050110553235360001246761735f70726963651d050110553235360001246761735f6c696d69741d05011055323536000118616374696f6e290701445472616e73616374696f6e416374696f6e00011476616c75651d05011055323536000114696e707574340114427974657300012c6163636573735f6c697374390701284163636573734c6973740001306f64645f795f706172697479780110626f6f6c00010472300110483235360001047330011048323536000039070000023d07003d070c20657468657265756d2c7472616e73616374696f6e384163636573734c6973744974656d000008011c616464726573732102011c4164647265737300013073746f726167655f6b657973290301245665633c483235363e000041070c20657468657265756d2c7472616e73616374696f6e48454950313535395472616e73616374696f6e0000300120636861696e5f69642c010c7536340001146e6f6e63651d050110553235360001606d61785f7072696f726974795f6665655f7065725f6761731d0501105532353600013c6d61785f6665655f7065725f6761731d050110553235360001246761735f6c696d69741d05011055323536000118616374696f6e290701445472616e73616374696f6e416374696f6e00011476616c75651d05011055323536000114696e707574340114427974657300012c6163636573735f6c697374390701284163636573734c6973740001306f64645f795f706172697479780110626f6f6c00010472300110483235360001047330011048323536000045070c646178656c61725f676174657761795f707265636f6d70696c651870616c6c65741043616c6c0404540001082c7365745f6761746577617904011c61646472657373210201104831363000000470536565205b6050616c6c65743a3a7365745f67617465776179605d2e347365745f636f6e76657274657208011c69645f6861736830011048323536000124636f6e7665727465724907013c536f75726365436f6e76657274657200010478536565205b6050616c6c65743a3a7365745f636f6e766572746572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e490708646178656c61725f676174657761795f707265636f6d70696c653c536f75726365436f6e7665727465720000040118646f6d61696e55040118446f6d61696e00004d070c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577790101504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e51070c4070616c6c65745f706f6f6c5f666565731870616c6c65741043616c6c0404540001183c70726f706f73655f6e65775f6665650c011c706f6f6c5f69642c0124543a3a506f6f6c49640001186275636b657481040134506f6f6c4665654275636b657400010c66656585040140506f6f6c466565496e666f4f663c543e00000480536565205b6050616c6c65743a3a70726f706f73655f6e65775f666565605d2e346170706c795f6e65775f66656508011c706f6f6c5f69642c0124543a3a506f6f6c49640001246368616e67655f696430011c543a3a4861736800010478536565205b6050616c6c65743a3a6170706c795f6e65775f666565605d2e2872656d6f76655f6665650401186665655f69642c0120543a3a46656549640002046c536565205b6050616c6c65743a3a72656d6f76655f666565605d2e286368617267655f6665650801186665655f69642c0120543a3a4665654964000118616d6f756e74180128543a3a42616c616e63650003046c536565205b6050616c6c65743a3a6368617267655f666565605d2e30756e6368617267655f6665650801186665655f69642c0120543a3a4665654964000118616d6f756e74180128543a3a42616c616e636500040474536565205b6050616c6c65743a3a756e6368617267655f666565605d2e687570646174655f706f7274666f6c696f5f76616c756174696f6e04011c706f6f6c5f69642c0124543a3a506f6f6c4964000504ac536565205b6050616c6c65743a3a7570646174655f706f7274666f6c696f5f76616c756174696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55070c3870616c6c65745f72656d61726b731870616c6c65741043616c6c0404540001041872656d61726b08011c72656d61726b73590701ac426f756e6465645665633c543a3a52656d61726b2c20543a3a4d617852656d61726b7350657243616c6c3e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e59070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d07045300000400690701185665633c543e00005d070c3872756e74696d655f636f6d6d6f6e1c72656d61726b731852656d61726b00010c204970667348617368040061070178426f756e6465645665633c75382c2049706673486173684c656e6774683e000000144e616d6564040065070178426f756e6465645665633c75382c204d61784e616d656452656d61726b3e000100104c6f616e08002c0118506f6f6c496400002c01184c6f616e49640002000061070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000065070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000069070000025d07006d070c4070616c6c65745f746f6b656e5f6d75781870616c6c65741043616c6c04045400010c1c6465706f73697408013063757272656e63795f6f7574b9030134543a3a43757272656e63794964000128616d6f756e745f6f7574180134543a3a42616c616e63654f757400000460536565205b6050616c6c65743a3a6465706f736974605d2e106275726e08013063757272656e63795f6f7574b9030134543a3a43757272656e63794964000128616d6f756e745f6f7574180134543a3a42616c616e63654f757400010454536565205b6050616c6c65743a3a6275726e605d2e286d617463685f737761700801206f726465725f69642c0128543a3a4f726465724964000118616d6f756e74180134543a3a42616c616e63654f75740002046c536565205b6050616c6c65743a3a6d617463685f73776170605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e71070c2873705f72756e74696d65187472616974732c426c616b6554776f3235360000000075070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000079070c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065731454616c6c790814566f746573011814546f74616c00000c011061796573180114566f7465730001106e617973180114566f74657300011c737570706f7274180114566f74657300007d070c4070616c6c65745f77686974656c6973741870616c6c6574144576656e7404045400010c3c43616c6c57686974656c697374656404012463616c6c5f6861736830011c543a3a486173680000005857686974656c697374656443616c6c52656d6f76656404012463616c6c5f6861736830011c543a3a486173680001006457686974656c697374656443616c6c4469737061746368656408012463616c6c5f6861736830011c543a3a48617368000118726573756c74810701684469737061746368526573756c7457697468506f7374496e666f000200047c54686520604576656e746020656e756d206f6620746869732070616c6c657481070418526573756c7408045401850704450189070108084f6b04008507000000000c45727204008907000001000085070c346672616d655f737570706f727420646973706174636840506f73744469737061746368496e666f000008013461637475616c5f776569676874b90601384f7074696f6e3c5765696768743e000120706179735f6665656001105061797300008907082873705f72756e74696d656444697370617463684572726f7257697468506f7374496e666f0410496e666f01850700080124706f73745f696e666f85070110496e666f0001146572726f7264013444697370617463684572726f7200008d070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736830011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736830011c543a3a48617368000114766f746564780110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736830011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736830011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736830011c543a3a48617368000118726573756c74a401384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736830011c543a3a48617368000118726573756c74a401384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736830011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e047c54686520604576656e746020656e756d206f6620746869732070616c6c657491070c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000004e054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f766564000104e854686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d6265727353776170706564000204d854776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740003041501546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000404844f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d790005046c5068616e746f6d206d656d6265722c206e6576657220757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657495070c2c70616c6c65745f666565731870616c6c6574144576656e74040454000110284665654368616e67656408010c6b657959030124543a3a4665654b657900010c66656518013042616c616e63654f663c543e0000002c466565546f417574686f7208011066726f6d000130543a3a4163636f756e74496400011c62616c616e636518013042616c616e63654f663c543e00010024466565546f4275726e08011066726f6d000130543a3a4163636f756e74496400011c62616c616e636518013042616c616e63654f663c543e00020034466565546f547265617375727908011066726f6d000130543a3a4163636f756e74496400011c62616c616e636518013042616c616e63654f663c543e000300047c54686520604576656e746020656e756d206f6620746869732070616c6c657499070c4870616c6c65745f706f6f6c5f73797374656d1870616c6c6574144576656e7404045400012828526562616c616e63656404011c706f6f6c5f69642c0124543a3a506f6f6c496400000474546865207472616e63686573207765726520726562616c616e6365642e344d61785265736572766553657404011c706f6f6c5f69642c0124543a3a506f6f6c496400010470546865206d617820726573657276652077617320757064617465642e2c45706f6368436c6f73656408011c706f6f6c5f69642c0124543a3a506f6f6c496400012065706f63685f6964100128543a3a45706f6368496400020450416e2065706f63682077617320636c6f7365642e44536f6c7574696f6e5375626d69747465640c011c706f6f6c5f69642c0124543a3a506f6f6c496400012065706f63685f6964100128543a3a45706f63684964000120736f6c7574696f6e9d0701a445706f6368536f6c7574696f6e3c543a3a42616c616e63652c20543a3a4d61785472616e636865733e00030458416e2065706f6368207761732065786563757465642e3445706f6368457865637574656408011c706f6f6c5f69642c0124543a3a506f6f6c496400012065706f63685f6964100128543a3a45706f6368496400040458416e2065706f6368207761732065786563757465642e1c4372656174656410011461646d696e000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e74496400011c706f6f6c5f69642c0124543a3a506f6f6c496400011c657373656e6365c5070140506f6f6c457373656e63654f663c543e0005044c4120706f6f6c2077617320637265617465642e1c557064617465640c010869642c0124543a3a506f6f6c496400010c6f6c64c5070140506f6f6c457373656e63654f663c543e00010c6e6577c5070140506f6f6c457373656e63654f663c543e0006044c4120706f6f6c2077617320757064617465642e3850726f706f7365644368616e67650c011c706f6f6c5f69642c0124543a3a506f6f6c49640001246368616e67655f696430011c543a3a486173680001186368616e6765d1070140543a3a52756e74696d654368616e67650007045841206368616e6765207761732070726f706f7365642e3852656c65617365644368616e67650c011c706f6f6c5f69642c0124543a3a506f6f6c49640001246368616e67655f696430011c543a3a486173680001186368616e6765d1070140543a3a52756e74696d654368616e67650008045441206368616e6765207761732072656c6561736564504e6567617469766542616c616e6365536865657410011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6e61765f61756d180128543a3a42616c616e63650001206e61765f66656573180128543a3a42616c616e636500011c72657365727665180128543a3a42616c616e63650009080d0154686520506f6f6c466565734e41562065786365656473207468652073756d206f66207468652041554d20616e642074686520746f74616c2072657365727665206f662074686520706f6f6c047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d070c4870616c6c65745f706f6f6c5f73797374656d20736f6c7574696f6e3445706f6368536f6c7574696f6e081c42616c616e636501182c4d61785472616e6368657301990401081c4865616c7468790400a10701944865616c746879536f6c7574696f6e3c42616c616e63652c204d61785472616e636865733e00000024556e6865616c7468790400a907019c556e6865616c746879536f6c7574696f6e3c42616c616e63652c204d61785472616e636865733e00010000a1070c4870616c6c65745f706f6f6c5f73797374656d20736f6c7574696f6e3c4865616c746879536f6c7574696f6e081c42616c616e636501182c4d61785472616e6368657301990400080120736f6c7574696f6ea50701a0426f756e6465645665633c5472616e636865536f6c7574696f6e2c204d61785472616e636865733e00011473636f726518011c42616c616e63650000a5070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016d03045300000400690301185665633c543e0000a9070c4870616c6c65745f706f6f6c5f73797374656d20736f6c7574696f6e44556e6865616c746879536f6c7574696f6e081c42616c616e636501182c4d61785472616e63686573019904001001147374617465ad07019c426f756e6465645665633c556e6865616c74687953746174652c204d61785472616e636865733e000120736f6c7574696f6ea50701a0426f756e6465645665633c5472616e636865536f6c7574696f6e2c204d61785472616e636865733e0001787269736b5f6275666665725f696d70726f76656d656e745f73636f726573b90701a04f7074696f6e3c426f756e6465645665633c42616c616e63652c204d61785472616e636865733e3e000164726573657276655f696d70726f76656d656e745f73636f72652103013c4f7074696f6e3c42616c616e63653e0000ad070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b107045300000400b50701185665633c543e0000b1070c4870616c6c65745f706f6f6c5f73797374656d20736f6c7574696f6e38556e6865616c7468795374617465000108484d61785265736572766556696f6c61746564000000544d696e5269736b42756666657256696f6c6174656400010000b507000002b10700b90704184f7074696f6e04045401bd070108104e6f6e6500000010536f6d650400bd070000010000bd070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540118045300000400c10701185665633c543e0000c1070000021800c5070c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f74797065732c506f6f6c457373656e6365142843757272656e6379496401b9031c42616c616e636501183c5472616e63686543757272656e637901490410526174650195032c537472696e674c696d69740165040014012063757272656e6379b903012843757272656e6379496400012c6d61785f7265736572766518011c42616c616e636500012c6d61785f6e61765f6167652c011c5365636f6e64730001386d696e5f65706f63685f74696d652c011c5365636f6e64730001207472616e63686573c90701dc5665633c5472616e636865457373656e63653c5472616e63686543757272656e63792c20526174652c20537472696e674c696d69743e3e0000c907000002cd0700cd070c4870616c6c65745f706f6f6c5f73797374656d207472616e63686573385472616e636865457373656e63650c3c5472616e63686543757272656e637901490410526174650195032c537472696e674c696d6974016504000c012063757272656e63794904013c5472616e63686543757272656e63790001087479690401445472616e636865547970653c526174653e0001206d657461646174616d0401705472616e6368654d657461646174613c537472696e674c696d69743e0000d1070c3872756e74696d655f636f6d6d6f6e1c6368616e6765733452756e74696d654368616e67650804540109051c4f7074696f6e7301d5070110144c6f616e730400d90701384c6f616e734368616e67653c543e000000404f7261636c65436f6c6c656374696f6e0400dd0701644f7261636c65436f6c6c656374696f6e4368616e67653c543e0001001c506f6f6c4665650400e1070144506f6f6c466565734368616e67653c543e000200305f556e726561636861626c6500030000d5070c3872756e74696d655f636f6d6d6f6e1c6368616e676573244661737444656c617900000000d907103070616c6c65745f6c6f616e7320656e7469746965731c6368616e676573184368616e676504045400010c104c6f616e08002c0124543a3a4c6f616e49640000e50301544c6f616e4d75746174696f6e3c543a3a526174653e00000018506f6c6963790400ed0301ec426f756e6465645665633c57726974654f666652756c653c543a3a526174653e2c20543a3a4d617857726974654f6666506f6c69637953697a653e000100305472616e736665724465627410002c0124543a3a4c6f616e496400002c0124543a3a4c6f616e49640000e1030138526570616964496e7075743c543e0000d90301445072696e636970616c496e7075743c543e00020000dd070c6070616c6c65745f6f7261636c655f636f6c6c656374696f6e147479706573184368616e676504045400010438436f6c6c656374696f6e496e666f040041050144436f6c6c656374696f6e496e666f3c543e00000000e1070c4070616c6c65745f706f6f6c5f66656573147479706573184368616e676504045400010424417070656e644665650c002c0120543a3a4665654964000081040134506f6f6c4665654275636b6574000085040140506f6f6c466565496e666f4f663c543e00000000e5070c3070616c6c65745f6c6f616e731870616c6c6574144576656e7404045400012c1c437265617465640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e49640001246c6f616e5f696e666f7903012c4c6f616e496e666f3c543e0000044841206c6f616e20776173206372656174656420426f72726f7765640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74d90301445072696e636970616c496e7075743c543e00010484416e20616d6f756e742077617320626f72726f77656420666f722061206c6f616e185265706169640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74e1030138526570616964496e7075743c543e0002047c416e20616d6f756e74207761732072657061696420666f722061206c6f616e285772697474656e4f66660c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e49640001187374617475730904015c57726974654f66665374617475733c543a3a526174653e0003045841206c6f616e20776173207772697474656e206f66661c4d7574617465640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e49640001206d75746174696f6ee50301544c6f616e4d75746174696f6e3c543a3a526174653e00040468416e20616374697665206c6f616e20776173206d75746174656418436c6f7365640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000128636f6c6c61746572616c8d03012841737365744f663c543e0005044441206c6f616e2077617320636c6f73656464506f7274666f6c696f56616c756174696f6e557064617465640c011c706f6f6c5f69642c0124543a3a506f6f6c496400012476616c756174696f6e180128543a3a42616c616e636500012c7570646174655f74797065e9070170506f7274666f6c696f56616c756174696f6e55706461746554797065000604bc54686520706f7274666f6c696f2076616c756174696f6e20666f72206120706f6f6c2077617320757064617465642e5457726974654f6666506f6c6963795570646174656408011c706f6f6c5f69642c0124543a3a506f6f6c4964000118706f6c696379ed0301ec426f756e6465645665633c57726974654f666652756c653c543a3a526174653e2c20543a3a4d617857726974654f6666506f6c69637953697a653e000704b0546865207772697465206f666620706f6c69637920666f72206120706f6f6c2077617320757064617465642e3c446562745472616e7366657272656414011c706f6f6c5f69642c0124543a3a506f6f6c496400013066726f6d5f6c6f616e5f69642c0124543a3a4c6f616e4964000128746f5f6c6f616e5f69642c0124543a3a4c6f616e49640001347265706169645f616d6f756e74e1030138526570616964496e7075743c543e000134626f72726f775f616d6f756e74d90301445072696e636970616c496e7075743c543e000804984465627420686173206265656e207472616e736665726564206265747765656e206c6f616e733444656274496e637265617365640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74d90301445072696e636970616c496e7075743c543e0009048444656274206f662061206c6f616e20686173206265656e20696e6372656173656434446562744465637265617365640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74e1030138526570616964496e7075743c543e000a048444656274206f662061206c6f616e20686173206265656e20646563726561736564047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e9070c246366675f747970657324706f7274666f6c696f70506f7274666f6c696f56616c756174696f6e557064617465547970650001081445786163740000001c496e657861637400010000ed070c4870616c6c65745f7065726d697373696f6e731870616c6c6574144576656e7404045400010c1441646465640c0108746f000130543a3a4163636f756e74496400011473636f706521040120543a3a53636f7065000110726f6c651504011c543a3a526f6c650000001c52656d6f7665640c011066726f6d000130543a3a4163636f756e74496400011473636f706521040120543a3a53636f7065000110726f6c651504011c543a3a526f6c650001001850757267656408011066726f6d000130543a3a4163636f756e74496400011473636f706521040120543a3a53636f7065000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f1070c6470616c6c65745f636f6c6c61746f725f616c6c6f776c6973741870616c6c6574144576656e7404045400010834436f6c6c61746f72416464656404012c636f6c6c61746f725f6964000138543a3a56616c696461746f724964000004a84120636f6c6c61746f7220686173206265656e20616464656420746f2074686520616c6c6f776c6973743c436f6c6c61746f7252656d6f76656404012c636f6c6c61746f725f6964000138543a3a56616c696461746f724964000104b84120636f6c6c61746f7220686173206265656e2072656d6f7665642066726f6d2074686520616c6c6f776c697374047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f5070c6070616c6c65745f726573747269637465645f746f6b656e731870616c6c6574144576656e74040454000108205472616e7366657210012c63757272656e63795f6964b9030134543a3a43757272656e6379496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650000044c5472616e73666572207375636365656465642e2842616c616e636553657410012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500010468412062616c616e6365207761732073657420627920726f6f742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f9070c3470616c6c65745f6272696467651870616c6c6574144576656e740404540001041852656d61726b08003001843c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4861736800000401285265736f757263654964000000047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fd070c5c70616c6c65745f696e7465726573745f6163637275616c1870616c6c6574144576656e74040454000100047c54686520604576656e746020656e756d206f6620746869732070616c6c657401080c3c70616c6c65745f6b657973746f72651870616c6c6574144576656e7404045400010c204b657941646465641001146f776e6572000130543a3a4163636f756e74496400010c6b657930011c543a3a4861736800011c707572706f73653d0401284b6579507572706f73650001206b65795f747970654104011c4b6579547970650000044041206b6579207761732061646465642e284b65795265766f6b65640c01146f776e6572000130543a3a4163636f756e74496400010c6b657930011c543a3a48617368000130626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e0001044841206b657920776173207265766f6b65642e284465706f73697453657404012c6e65775f6465706f736974180128543a3a42616c616e63650002044841206465706f73697420776173207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c657405080c4870616c6c65745f696e766573746d656e74731870616c6c6574144576656e7404045400013054496e766573744f7264657273436f6c6c6563746564140134696e766573746d656e745f69644904013c543a3a496e766573746d656e74496400010c77686f000130543a3a4163636f756e74496400014070726f6365737365645f6f7264657273090801305665633c4f7264657249643e000128636f6c6c656374696f6e0d08016c496e76657374436f6c6c656374696f6e3c543a3a416d6f756e743e00011c6f7574636f6d6511080138436f6c6c6563744f7574636f6d650000088046756c66696c6c6564206f7264657273207765726520636f6c6c65637465642e09015b696e766573746d656e745f69642c2077686f2c20636f6c6c65637465645f6f72646572732c20436f6c6c656374696f6e2c20436f6c6c6563744f7574636f6d655d5452656465656d4f7264657273436f6c6c6563746564140134696e766573746d656e745f69644904013c543a3a496e766573746d656e74496400010c77686f000130543a3a4163636f756e74496400014070726f6365737365645f6f7264657273090801305665633c4f7264657249643e000128636f6c6c656374696f6e1508016c52656465656d436f6c6c656374696f6e3c543a3a416d6f756e743e00011c6f7574636f6d6511080138436f6c6c6563744f7574636f6d650001088046756c66696c6c6564206f7264657273207765726520636f6c6c65637465642e09015b696e766573746d656e745f69642c2077686f2c20636f6c6c65637465645f6f72646572732c20436f6c6c656374696f6e2c20436f6c6c6563744f7574636f6d655d48496e766573744f7264657255706461746564100134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640001307375626d69747465645f61742c011c4f72646572496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180124543a3a416d6f756e740002040d01416e20696e76657374206f726465722077617320757064617465642e205b696e766573746d656e745f69642c206f726465725f69642c2077686f2c20616d6f756e745d4852656465656d4f7264657255706461746564100134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640001307375626d69747465645f61742c011c4f72646572496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180124543a3a416d6f756e740003040d01416e20696e76657374206f726465722077617320757064617465642e205b696e766573746d656e745f69642c206f726465725f69642c2077686f2c20616d6f756e745d4c496e766573744f7264657273436c65617265640c0134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640001206f726465725f69642c011c4f72646572496400012c66756c66696c6c6d656e741908019446756c66696c6c6d656e745769746850726963653c543a3a42616c616e6365526174696f3e0004080d01546f74616c4f7264657273206f6620696e766573746d656e747320776572652066756c66696c6c6564205b696e766573746d656e745f69642c206f726465725f69642c5446756c66696c6c6d656e745769746850726963655d4c52656465656d4f7264657273436c65617265640c0134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640001206f726465725f69642c011c4f72646572496400012c66756c66696c6c6d656e741908019446756c66696c6c6d656e745769746850726963653c543a3a42616c616e6365526174696f3e0005080d01546f74616c4f7264657273206f6620726564656d7074696f6e7320776572652066756c66696c6c6564205b696e766573746d656e745f69642c206f726465725f69642c5446756c66696c6c6d656e745769746850726963655d60496e766573744f7264657273496e50726f63657373696e670c0134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640001206f726465725f69642c011c4f72646572496400012c746f74616c5f6f726465721d080154546f74616c4f726465723c543a3a416d6f756e743e0006080901546f74616c4f7264657273206f6620696e766573746d656e74732061726520696e2070726f63657373696e67207374617465205b696e766573746d656e745f69642c546f726465725f69642c20546f74616c4f726465725d6052656465656d4f7264657273496e50726f63657373696e670c0134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640001206f726465725f69642c011c4f72646572496400012c746f74616c5f6f726465721d080154546f74616c4f726465723c543a3a416d6f756e743e000708f8546f74616c4f7264657273206f6620726564656d7074696f6e7320696e2070726f63657373696e67207374617465205b696e766573746d656e745f69642c546f726465725f69642c20546f74616c4f726465725d90496e76657374436f6c6c6563746564576974686f7574416374697665506f736974696f6e08010c77686f000130543a3a4163636f756e744964000134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640008080d015369676e616c732074686174206120636f6c6c656374206f6620696e766573746d656e74732063616c6c20776173207375636365737366756c2062757420746865726598776173206e6f206f72646572206f662061207573657220746f20636f6c6c6563742066726f6d9052656465656d436f6c6c6563746564576974686f7574416374697665506f736974696f6e08010c77686f000130543a3a4163636f756e744964000134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640009080d015369676e616c732074686174206120636f6c6c656374206f6620726564656d7074696f6e732063616c6c20776173207375636365737366756c2062757420746865726598776173206e6f206f72646572206f662061207573657220746f20636f6c6c6563742066726f6d8c496e76657374436f6c6c6563746564466f724e6f6e436c65617265644f72646572496408010c77686f000130543a3a4163636f756e744964000134696e766573746d656e745f69644904013c543a3a496e766573746d656e744964000a0811014120636f6c6c6563742063616c6c20666f722074686520696e766573746d656e74732068617070656e65642c20627574207468652063757272656e74204f726465724964486973206e6f742079657420636c65617265648c52656465656d436f6c6c6563746564466f724e6f6e436c65617265644f72646572496408010c77686f000130543a3a4163636f756e744964000134696e766573746d656e745f69644904013c543a3a496e766573746d656e744964000b0811014120636f6c6c6563742063616c6c20666f722074686520726564656d7074696f6e732068617070656e65642c20627574207468652063757272656e74204f726465724964486973206e6f742079657420636c6561726564047c54686520604576656e746020656e756d206f6620746869732070616c6c657409080000022c000d080c246366675f74797065732c696e766573746d656e747340496e76657374436f6c6c656374696f6e041c42616c616e63650118000801607061796f75745f696e766573746d656e745f696e7665737418011c42616c616e636500016c72656d61696e696e675f696e766573746d656e745f696e7665737418011c42616c616e636500001108084870616c6c65745f696e766573746d656e747338436f6c6c6563744f7574636f6d650001083846756c6c79436f6c6c6563746564000000485061727469616c6c79436f6c6c65637465640001000015080c246366675f74797065732c696e766573746d656e74734052656465656d436f6c6c656374696f6e041c42616c616e63650118000801607061796f75745f696e766573746d656e745f72656465656d18011c42616c616e636500016c72656d61696e696e675f696e766573746d656e745f72656465656d18011c42616c616e6365000019080c246366675f7479706573186f72646572735046756c66696c6c6d656e74576974685072696365043042616c616e6365526174696f01c903000801246f665f616d6f756e747103012c5065727175696e74696c6c0001147072696365c903013042616c616e6365526174696f00001d080c246366675f7479706573186f726465727328546f74616c4f72646572041c42616c616e6365011800040118616d6f756e7418011c42616c616e6365000021080c3870616c6c65745f726577617264731870616c6c6574144576656e740804540004490001143447726f7570526577617264656408012067726f75705f6964100128543a3a47726f75704964000118616d6f756e7418013c42616c616e63654f663c542c20493e000000385374616b654465706f736974656410012067726f75705f6964100128543a3a47726f7570496400012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e000100385374616b6557697468647261776e10012067726f75705f6964100128543a3a47726f7570496400012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e00020034526577617264436c61696d656410012067726f75705f6964100128543a3a47726f7570496400012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e0003004043757272656e637941747461636865640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400011066726f6d450201484f7074696f6e3c543a3a47726f757049643e000108746f100128543a3a47726f75704964000400047c54686520604576656e746020656e756d206f6620746869732070616c6c657425080c6070616c6c65745f6c69717569646974795f726577617264731870616c6c6574144576656e74040454000104204e657745706f63680c011c656e64735f6f6e2c012c4d6f6d656e744f663c543e000118726577617264180128543a3a42616c616e63650001306c6173745f6368616e6765732908013c45706f63684368616e6765733c543e000000047c54686520604576656e746020656e756d206f6620746869732070616c6c65742908086070616c6c65745f6c69717569646974795f726577617264733045706f63684368616e67657304045400001001206475726174696f6e0d01014c4f7074696f6e3c4d6f6d656e744f663c543e3e000118726577617264210301484f7074696f6e3c543a3a42616c616e63653e00011c776569676874732d0801f4426f756e64656442547265654d61703c543a3a47726f757049642c20543a3a5765696768742c20543a3a4d61784368616e67657350657245706f63683e00012863757272656e636965733d08010501426f756e64656442547265654d61703c543a3a43757272656e637949642c20543a3a47726f757049642c20543a3a4d61784368616e67657350657245706f63683e00002d080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01100456012c0453000004003108013842547265654d61703c4b2c20563e00003108042042547265654d617008044b01100456012c00040035080000003508000002390800390800000408102c003d080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01b903045601100453000004004108013842547265654d61703c4b2c20563e00004108042042547265654d617008044b01b9030456011000040045080000004508000002490800490800000408b90310004d080c5870616c6c65745f6c69717569646974795f706f6f6c731870616c6c6574144576656e740404540001043c496e636f6d696e674d65737361676508011873656e646572d5010134446f6d61696e4164647265737300011c6d6573736167655108011c4d65737361676500000868416e20696e636f6d696e67204c50206d6573736167652077617384646574656374656420616e6420697320667572746865722070726f636573736564047c54686520604576656e746020656e756d206f6620746869732070616c6c657451080c5870616c6c65745f6c69717569646974795f706f6f6c731c6d6573736167651c4d65737361676504304261746368436f6e74656e7401550801741c496e76616c6964000000304d65737361676550726f6f66040110686173680401205b75383b2033325d0001005c496e6974696174654d6573736167655265636f76657279080110686173680401205b75383b2033325d00011c6164647265737304011c4164647265737300020058446973707574654d6573736167655265636f7665727908011c6d6573736167650401205b75383b2033325d000118726f757465720401205b75383b2033325d0003001442617463680400550801304261746368436f6e74656e740004003c5363686564756c6555706772616465040120636f6e7472616374810101205b75383b2032305d0005003443616e63656c55706772616465040120636f6e7472616374810101205b75383b2032305d000600345265636f766572417373657473100120636f6e747261637404011c41646472657373000114617373657404011c41646472657373000124726563697069656e7404011c41646472657373000118616d6f756e741d050110553235360007006055706461746543656e74726966756765476173507269636504011470726963651801107531323800080020416464417373657408012063757272656e63791801107531323800012c65766d5f61646472657373810101205b75383b2032305d0009001c416464506f6f6c04011c706f6f6c5f69642c010c753634000a00284164645472616e63686518011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000128746f6b656e5f6e616d65650801545b75383b20544f4b454e5f4e414d455f53495a455d000130746f6b656e5f73796d626f6c04015c5b75383b20544f4b454e5f53594d424f4c5f53495a455d000120646563696d616c730801087538000110686f6f6b04011c41646472657373000b0028416c6c6f77417373657408011c706f6f6c5f69642c010c75363400012063757272656e637918011075313238000c0034446973616c6c6f77417373657408011c706f6f6c5f69642c010c75363400012063757272656e637918011075313238000d00485570646174655472616e636865507269636514011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e636865496400012063757272656e63791801107531323800011470726963651801107531323800012c636f6d70757465645f61742c011c5365636f6e6473000e00545570646174655472616e6368654d6574616461746110011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000128746f6b656e5f6e616d65650801545b75383b20544f4b454e5f4e414d455f53495a455d000130746f6b656e5f73796d626f6c04015c5b75383b20544f4b454e5f53594d424f4c5f53495a455d000f00445570646174655472616e636865486f6f6b0c011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000110686f6f6b04011c41646472657373001000385472616e736665724173736574730c012063757272656e637918011075313238000120726563656976657204011c41646472657373000118616d6f756e7418011075313238001100545472616e736665725472616e636865546f6b656e7314011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000118646f6d61696e6908014853657269616c697a61626c65446f6d61696e000120726563656976657204011c41646472657373000118616d6f756e7418011075313238001200445570646174655265737472696374696f6e0c011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e63686549640001187570646174656d0801605570646174655265737472696374696f6e4d657373616765001300384465706f7369745265717565737414011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e637918011075313238000118616d6f756e74180110753132380014003452656465656d5265717565737414011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e637918011075313238000118616d6f756e74180110753132380015005c46756c66696c6c65644465706f7369745265717565737418011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e63791801107531323800013c63757272656e63795f7061796f7574180110753132380001547472616e6368655f746f6b656e735f7061796f7574180110753132380016005846756c66696c6c656452656465656d5265717565737418011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e63791801107531323800013c63757272656e63795f7061796f7574180110753132380001547472616e6368655f746f6b656e735f7061796f7574180110753132380017005043616e63656c4465706f7369745265717565737410011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e6379180110753132380018004c43616e63656c52656465656d5265717565737410011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e6379180110753132380019007446756c66696c6c656443616e63656c4465706f7369745265717565737418011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e63791801107531323800013c63757272656e63795f7061796f75741801107531323800015c66756c66696c6c65645f696e766573745f616d6f756e7418011075313238001a007046756c66696c6c656443616e63656c52656465656d5265717565737414011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e6379180110753132380001547472616e6368655f746f6b656e735f7061796f757418011075313238001b00505472696767657252656465656d5265717565737414011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e637918011075313238000118616d6f756e7418011075313238001c000055080c5870616c6c65745f6c69717569646974795f706f6f6c731c6d6573736167653442617463684d6573736167657300000400590801e0426f756e6465645665633c4e6f42617463684d6573736167652c20436f6e73745533323c4d41585f42415443485f4d455353414745533e3e000059080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d08045300000400610801185665633c543e00005d080c5870616c6c65745f6c69717569646974795f706f6f6c731c6d657373616765384e6f42617463684d657373616765000004005108011c4d657373616765000061080000025d0800650800000380000000080069080c5870616c6c65745f6c69717569646974795f706f6f6c731c6d6573736167654853657269616c697a61626c65446f6d61696e00000800080108753800002c010c75363400006d080c5870616c6c65745f6c69717569646974795f706f6f6c731c6d657373616765605570646174655265737472696374696f6e4d6573736167650001101c496e76616c6964000000305570646174654d656d6265720801186d656d62657204011c4164647265737300012c76616c69645f756e74696c2c011c5365636f6e647300010018467265657a6504011c6164647265737304011c4164647265737300020020556e667265657a6504011c6164647265737304011c416464726573730003000071080c5070616c6c65745f706f6f6c5f72656769737472791870616c6c6574144576656e74040454000114285265676973746572656404011c706f6f6c5f69642c0124543a3a506f6f6c4964000004584120706f6f6c2077617320726567697374657265642e405570646174655265676973746572656404011c706f6f6c5f69642c0124543a3a506f6f6c4964000104744120706f6f6c207570646174652077617320726567697374657265642e38557064617465457865637574656404011c706f6f6c5f69642c0124543a3a506f6f6c49640002046c4120706f6f6c20757064617465207761732065786563757465642e3055706461746553746f72656404011c706f6f6c5f69642c0124543a3a506f6f6c4964000304b44120706f6f6c20757064617465207761732073746f72656420666f72206c6174657220657865637574696f6e2e2c4d6574616461746153657408011c706f6f6c5f69642c0124543a3a506f6f6c49640001206d6574616461746175080188426f756e6465645665633c75382c20543a3a4d617853697a654d657461646174613e00040458506f6f6c206d6574616461746120776173207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000079080c3870616c6c65745f726577617264731870616c6c6574144576656e740804540004490001143447726f7570526577617264656408012067726f75705f6964100128543a3a47726f75704964000118616d6f756e7418013c42616c616e63654f663c542c20493e000000385374616b654465706f736974656410012067726f75705f6964100128543a3a47726f7570496400012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e000100385374616b6557697468647261776e10012067726f75705f6964100128543a3a47726f7570496400012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e00020034526577617264436c61696d656410012067726f75705f6964100128543a3a47726f7570496400012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e0003004043757272656e637941747461636865640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400011066726f6d450201484f7074696f6e3c543a3a47726f757049643e000108746f100128543a3a47726f75704964000400047c54686520604576656e746020656e756d206f6620746869732070616c6c65747d080c5070616c6c65745f626c6f636b5f726577617264731870616c6c6574144576656e74040454000108284e657753657373696f6e0c013c636f6c6c61746f725f726577617264180128543a3a42616c616e636500015c74726561737572795f696e666c6174696f6e5f726174659503011c543a3a526174650001306c6173745f6368616e6765738108014453657373696f6e4368616e6765733c543e0000006053657373696f6e416476616e63656d656e744661696c65640401146572726f7264013444697370617463684572726f72000100047c54686520604576656e746020656e756d206f6620746869732070616c6c65748108085070616c6c65745f626c6f636b5f726577617264733853657373696f6e4368616e6765730404540000140124636f6c6c61746f727385080148436f6c6c61746f724368616e6765733c543e000138636f6c6c61746f725f636f756e744502012c4f7074696f6e3c7533323e00013c636f6c6c61746f725f726577617264210301484f7074696f6e3c543a3a42616c616e63653e00015c74726561737572795f696e666c6174696f6e5f726174658d08013c4f7074696f6e3c543a3a526174653e00012c6c6173745f7570646174652c011c5365636f6e647300008508085070616c6c65745f626c6f636b5f726577617264733c436f6c6c61746f724368616e676573040454000008010c696e63890801a4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6c6c61746f72733e00010c6f7574890801a4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6c6c61746f72733e000089080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004009401185665633c543e00008d0804184f7074696f6e0404540195030108104e6f6e6500000010536f6d6504009503000001000091080c6470616c6c65745f7472616e736665725f616c6c6f776c6973741870616c6c6574144576656e7404045400011c605472616e73666572416c6c6f77616e63654372656174656414014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e637949640001207265636569766572c904012c543a3a4c6f636174696f6e000128616c6c6f7765645f6174100144426c6f636b4e756d626572466f723c543e000128626c6f636b65645f6174100144426c6f636b4e756d626572466f723c543e000004d44576656e7420666f72207375636365737366756c206372656174696f6e206f662061207472616e7366657220616c6c6f77616e6365605472616e73666572416c6c6f77616e636552656d6f76656414014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e637949640001207265636569766572c904012c543a3a4c6f636174696f6e000128616c6c6f7765645f6174100144426c6f636b4e756d626572466f723c543e000128626c6f636b65645f6174100144426c6f636b4e756d626572466f723c543e000104e04576656e7420666f72207375636365737366756c2072656d6f76616c206f66207472616e7366657220616c6c6f77616e6365207065726d735c5472616e73666572416c6c6f77616e63655075726765640c014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e637949640001207265636569766572c904012c543a3a4c6f636174696f6e000204e04576656e7420666f72207375636365737366756c2072656d6f76616c206f66207472616e7366657220616c6c6f77616e6365207065726d73645472616e73666572416c6c6f77616e636544656c61794164640c014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e6379496400011464656c6179100144426c6f636b4e756d626572466f723c543e000304884576656e7420666f7220416c6c6f77616e63652064656c6179206372656174696f6e705472616e73666572416c6c6f77616e636544656c61795570646174650c014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e6379496400011464656c6179100144426c6f636b4e756d626572466f723c543e000404804576656e7420666f7220416c6c6f77616e63652064656c617920757064617465b0546f67676c655472616e73666572416c6c6f77616e636544656c61794675747572654d6f6469666961626c650c014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e637949640001546d6f6469666961626c655f6f6e63655f6166746572450201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000504d44576656e7420666f7220416c6c6f77616e63652064656c617920667574757265206d6f64696669636174696f6e20616c6c6f7765646c5472616e73666572416c6c6f77616e636544656c6179507572676508014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e63794964000604844576656e7420666f7220416c6c6f77616e63652064656c61792072656d6f76616c047c54686520604576656e746020656e756d206f6620746869732070616c6c657495080c7870616c6c65745f6c69717569646974795f706f6f6c735f676174657761791870616c6c6574144576656e740404540001103c446f6d61696e526f75746572536574080118646f6d61696e55040118446f6d61696e000118726f7574657205050124543a3a526f757465720000049854686520726f7574657220666f72206120676976656e20646f6d61696e20776173207365742e34496e7374616e63654164646564040120696e7374616e6365d5010134446f6d61696e4164647265737300010488416e20696e7374616e63652077617320616464656420746f206120646f6d61696e2e3c496e7374616e636552656d6f766564040120696e7374616e6365d5010134446f6d61696e4164647265737300020498416e20696e7374616e6365207761732072656d6f7665642066726f6d206120646f6d61696e2e50446f6d61696e486f6f6b41646472657373536574080118646f6d61696e55040118446f6d61696e000130686f6f6b5f61646472657373810101205b75383b2032305d000304cc54686520646f6d61696e20686f6f6b20616464726573732077617320696e697469616c697a6564206f7220757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657499080c4470616c6c65745f6f726465725f626f6f6b1870616c6c6574144576656e74040454000114304f72646572437265617465641c01206f726465725f69642c013c543a3a4f7264657249644e6f6e636500013c63726561746f725f6163636f756e74000130543a3a4163636f756e74496400012c63757272656e63795f696eb9030134543a3a43757272656e6379496400013063757272656e63795f6f7574b9030134543a3a43757272656e63794964000128616d6f756e745f6f7574180134543a3a42616c616e63654f75740001686d696e5f66756c66696c6c6d656e745f616d6f756e745f6f7574180134543a3a42616c616e63654f7574000114726174696f310501504f72646572526174696f3c543a3a526174696f3e0000049c4576656e7420656d6974746564207768656e20616e206f7264657220697320637265617465642e384f7264657243616e63656c6c656408011c6163636f756e74000130543a3a4163636f756e7449640001206f726465725f69642c013c543a3a4f7264657249644e6f6e6365000104a44576656e7420656d6974746564207768656e20616e206f726465722069732063616e63656c6c65642e304f72646572557064617465641401206f726465725f69642c013c543a3a4f7264657249644e6f6e636500011c6163636f756e74000130543a3a4163636f756e744964000128616d6f756e745f6f7574180134543a3a42616c616e63654f7574000114726174696f310501504f72646572526174696f3c543a3a526174696f3e0001686d696e5f66756c66696c6c6d656e745f616d6f756e745f6f7574180134543a3a42616c616e63654f75740002049c4576656e7420656d6974746564207768656e20616e206f7264657220697320757064617465642e404f7264657246756c66696c6c6d656e742001206f726465725f69642c013c543a3a4f7264657249644e6f6e636500013c706c6163696e675f6163636f756e74000130543a3a4163636f756e74496400014866756c66696c6c696e675f6163636f756e74000130543a3a4163636f756e74496400014c7061727469616c5f66756c66696c6c6d656e74780110626f6f6c00014866756c66696c6c6d656e745f616d6f756e74180134543a3a42616c616e63654f757400012c63757272656e63795f696eb9030134543a3a43757272656e6379496400013063757272656e63795f6f7574b9030134543a3a43757272656e63794964000114726174696fc9030120543a3a526174696f000310a44576656e7420656d6974746564207768656e20616e206f726465722069732066756c66696c6c65642ebc43616e20626520666f7220656974686572207061727469616c206f7220746f74616c2066756c66696c6c6d656e742e0501436f6e7461696e7320616d6f756e742066756c66696c6c65642c20616e6420776865746865722066756c66696c6c6d656e7420776173207061727469616c206f721466756c6c2e344665656465724368616e6765640401246665656465725f69643505012c543a3a4665656465724964000404cc4576656e7420656d6974746564207768656e20612076616c69642074726164696e6720706169722069732072656d6f7665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d080c6870616c6c65745f666f726569676e5f696e766573746d656e74731870616c6c6574144576656e7404045400010c5053776170437265617465644f72557064617465640c010c77686f000130543a3a4163636f756e74496400011c737761705f6964a10801245377617049643c543e00011073776170a9080124537761704f663c543e000000385377617046756c6c66696c6c656414010c77686f000130543a3a4163636f756e74496400011c737761705f6964a10801245377617049643c543e00012472656d61696e696e67a9080124537761704f663c543e000128737761707065645f696e180138543a3a5377617042616c616e636500012c737761707065645f6f7574180138543a3a5377617042616c616e6365000100345377617043616e63656c6c65640c010c77686f000130543a3a4163636f756e74496400011c737761705f6964a10801245377617049643c543e00011073776170a9080124537761704f663c543e000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a108000004084904a50800a508086870616c6c65745f666f726569676e5f696e766573746d656e747318416374696f6e00010828496e766573746d656e7400000028526564656d7074696f6e00010000a9080c286366675f74726169747314737761707310537761700818416d6f756e7401182043757272656e637901b903000c012c63757272656e63795f696eb903012043757272656e637900013063757272656e63795f6f7574b903012043757272656e6379000128616d6f756e745f6f7574180118416d6f756e740000ad080c4870616c6c65745f6f7261636c655f666565641870616c6c6574144576656e740404540001040c4665640c0118666565646572bd0101244665656465723c543e00010c6b6579b5030130543a3a4f7261636c654b657900011476616c7565c9030138543a3a4f7261636c6556616c7565000000047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b1080c6070616c6c65745f6f7261636c655f636f6c6c656374696f6e1870616c6c6574144576656e740404540001102041646465644b6579080134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e496400010c6b6579b5030130543a3a4f7261636c654b65790000002852656d6f7665644b6579080134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e496400010c6b6579b5030130543a3a4f7261636c654b65790001005455706461746564436f6c6c656374696f6e496e666f080134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e496400013c636f6c6c656374696f6e5f696e666f4105016074797065733a3a436f6c6c656374696f6e496e666f3c543e0002004455706461746564436f6c6c656374696f6e080134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e49640001306b6579735f7570646174656410010c753332000300047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b5080c4470616c6c65745f616e63686f72735f76321870616c6c6574144576656e7404045400010c2c416e63686f7241646465641401286163636f756e745f6964000130543a3a4163636f756e74496400012c646f63756d656e745f696418011075313238000140646f63756d656e745f76657273696f6e2c010c7536340001106861736830011c543a3a4861736800011c6465706f736974180128543a3a42616c616e636500000450416e20616e63686f72207761732061646465642e34416e63686f7252656d6f7665641401286163636f756e745f6964000130543a3a4163636f756e74496400012c646f63756d656e745f696418011075313238000140646f63756d656e745f76657273696f6e2c010c7536340001106861736830011c543a3a4861736800011c6465706f736974180128543a3a42616c616e636500010458416e20616e63686f72207761732072656d6f7665642e284465706f73697453657404012c6e65775f6465706f736974180128543a3a42616c616e63650002044841206465706f73697420776173207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b9080c9070616c6c65745f6c69717569646974795f706f6f6c735f676174657761795f71756575651870616c6c6574144576656e7404045400010c404d6573736167655375626d69747465640801146e6f6e63652c013c543a3a4d6573736167654e6f6e636500011c6d657373616765bd080128543a3a4d6573736167650000046041206d65737361676520776173207375626d69747465642e5c4d657373616765457865637574696f6e537563636573730801146e6f6e63652c013c543a3a4d6573736167654e6f6e636500011c6d657373616765bd080128543a3a4d657373616765000104684d65737361676520657865637574696f6e20737563636573732e5c4d657373616765457865637574696f6e4661696c7572650c01146e6f6e63652c013c543a3a4d6573736167654e6f6e636500011c6d657373616765bd080128543a3a4d6573736167650001146572726f7264013444697370617463684572726f72000204684d65737361676520657865637574696f6e206661696c7572652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bd080c7870616c6c65745f6c69717569646974795f706f6f6c735f676174657761791c6d65737361676538476174657761794d65737361676508244163636f756e74496401001c4d65737361676501510801081c496e626f756e64080138646f6d61696e5f61646472657373d5010134446f6d61696e4164647265737300011c6d6573736167655108011c4d657373616765000000204f7574626f756e640c011873656e6465720001244163636f756e74496400012c64657374696e6174696f6e55040118446f6d61696e00011c6d6573736167655108011c4d65737361676500010000c1080c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c5080c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65c908015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696edd0101204c6f636174696f6e00012c64657374696e6174696f6edd0101204c6f636174696f6e00011c6d6573736167651506011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696edd0101204c6f636174696f6e00012071756572795f69642c011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f69642c011c51756572794964000120726573706f6e736539060120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f69642c011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f69642c011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687424011857656967687400014c6d61785f62756467657465645f77656967687424011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f69642c011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f69642c011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696edd0101204c6f636174696f6e00012071756572795f69642c011c5175657279496400014465787065637465645f6c6f636174696f6e4d0601404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696edd0101204c6f636174696f6e00012071756572795f69642c011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f69642c011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368300110483235360001186f726967696edd0101204c6f636174696f6e0001186173736574736106013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6edd0101204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374210601184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6edd0101204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6edd0101204c6f636174696f6e00012071756572795f69642c011c517565727949640001146572726f72e105012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ecd04014456657273696f6e65644c6f636174696f6e00012071756572795f69642c011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696edd0101204c6f636174696f6e00012071756572795f69642c011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696edd0101204c6f636174696f6e00012071756572795f69642c011c5175657279496400014065787065637465645f71756572696572dd0101204c6f636174696f6e0001506d617962655f61637475616c5f717565726965724d0601404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6edd0101204c6f636174696f6e000110636f7374210601184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6edd0101204c6f636174696f6e000110636f7374210601184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6edd0101204c6f636174696f6e000110636f7374210601184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67dd0101204c6f636174696f6e0001106665657321060118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368300110483235360001186f726967696edd0101204c6f636174696f6e0001186173736574736106013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c908102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656424011857656967687400000028496e636f6d706c657465080110757365642401185765696768740001146572726f72e10501144572726f72000100144572726f720401146572726f72e10501144572726f7200020000cd080c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000c908011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d1080c5470616c6c65745f78636d5f7472616e736163746f721870616c6c6574144576656e7404045400012c505472616e736163746564446572697661746976651001286163636f756e745f6964000130543a3a4163636f756e74496400011064657374dd0101204c6f636174696f6e00011063616c6c34011c5665633c75383e000114696e646578b4010c75313600000439015472616e7361637465642074686520696e6e65722063616c6c207468726f75676820612064657269766174697665206163636f756e7420696e20612064657374696e6174696f6e20636861696e2e4c5472616e736163746564536f7665726569676e0c01246665655f7061796572110101504f7074696f6e3c543a3a4163636f756e7449643e00011064657374dd0101204c6f636174696f6e00011063616c6c34011c5665633c75383e00010425015472616e736163746564207468652063616c6c207468726f7567682074686520736f7665726569676e206163636f756e7420696e20612064657374696e6174696f6e20636861696e2e405472616e7361637465645369676e65640c01246665655f7061796572000130543a3a4163636f756e74496400011064657374dd0101204c6f636174696f6e00011063616c6c34011c5665633c75383e00020411015472616e736163746564207468652063616c6c207468726f7567682061207369676e6564206163636f756e7420696e20612064657374696e6174696f6e20636861696e2e5052656769737465726564446572697661746976650801286163636f756e745f6964000130543a3a4163636f756e744964000114696e646578b4010c753136000304c0526567697374657265642061206465726976617469766520696e64657820666f7220616e206163636f756e742069642e5844655265676973746572656444657269766174697665040114696e646578b4010c753136000400385472616e736163744661696c65640401146572726f72e105012058636d4572726f720005043c5472616e73616374206661696c65644c5472616e73616374496e666f4368616e6765640801206c6f636174696f6edd0101204c6f636174696f6e00012c72656d6f74655f696e666fd508017c52656d6f74655472616e73616374496e666f576974684d61785765696768740006049c4368616e67656420746865207472616e7361637420696e666f206f662061206c6f636174696f6e4c5472616e73616374496e666f52656d6f7665640401206c6f636174696f6edd0101204c6f636174696f6e0007049c52656d6f76656420746865207472616e7361637420696e666f206f662061206c6f636174696f6e5c446573744665655065725365636f6e644368616e6765640801206c6f636174696f6edd0101204c6f636174696f6e0001386665655f7065725f7365636f6e64180110753132380008045c53657420646573742066656520706572207365636f6e645c446573744665655065725365636f6e6452656d6f7665640401206c6f636174696f6edd0101204c6f636174696f6e0009046852656d6f766520646573742066656520706572207365636f6e644848726d704d616e6167656d656e7453656e74040118616374696f6ebd06013448726d704f7065726174696f6e000a048c48524d50206d616e61676520616374696f6e2073756363657366756c6c792073656e74047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d5080c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65747c52656d6f74655472616e73616374496e666f576974684d617857656967687400000c01547472616e736163745f65787472615f7765696768742401185765696768740001286d61785f7765696768742401185765696768740001707472616e736163745f65787472615f7765696768745f7369676e6564b90601384f7074696f6e3c5765696768743e0000d9080c306f726d6c5f78746f6b656e73186d6f64756c65144576656e74040454000104445472616e7366657272656441737365747310011873656e646572000130543a3a4163636f756e7449640001186173736574732106011841737365747300010c66656529060114417373657400011064657374dd0101204c6f636174696f6e000004745472616e7366657272656420604173736574602077697468206665652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dd080c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643001104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ecd0601484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72e108014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643001104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ecd0601484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656424011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373780110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ecd0601484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ecd0601484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e10810346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400240118576569676874000300145969656c6400040000e5080c2c6f726d6c5f746f6b656e73186d6f64756c65144576656e740404540001441c456e646f7765640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f73740c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000108ec416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77c84578697374656e7469616c4465706f7369742c20726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e7366657210012c63757272656e63795f6964b9030134543a3a43757272656e6379496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2052657365727665640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000304e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e72657365727665640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656414012c63757272656e63795f6964b9030134543a3a43757272656e6379496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500011873746174757388013442616c616e6365537461747573000508f4536f6d652072657365727665642062616c616e63652077617320726570617472696174656420286d6f7665642066726f6d20726573657276656420746f44616e6f74686572206163636f756e74292e2842616c616e636553657410012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500060468412062616c616e6365207761732073657420627920726f6f742e40546f74616c49737375616e636553657408012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e6365000704b854686520746f74616c2069737375616e6365206f6620616e2063757272656e637920686173206265656e207365742457697468647261776e0c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000804ec536f6d652062616c616e63657320776572652077697468647261776e2028652e672e2070617920666f72207472616e73616374696f6e20666565291c536c617368656410012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e74496400012c667265655f616d6f756e74180128543a3a42616c616e636500013c72657365727665645f616d6f756e74180128543a3a42616c616e6365000904d4536f6d652062616c616e636573207765726520736c61736865642028652e672e2064756520746f206d69732d6265686176696f7229244465706f73697465640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a04984465706f736974656420736f6d652062616c616e636520696e746f20616e206163636f756e741c4c6f636b53657410011c6c6f636b5f69647d0201384c6f636b4964656e74696669657200012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b0454536f6d652066756e647320617265206c6f636b65642c4c6f636b52656d6f7665640c011c6c6f636b5f69647d0201384c6f636b4964656e74696669657200012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000c047c536f6d65206c6f636b65642066756e6473207765726520756e6c6f636b6564184c6f636b65640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d0474536f6d6520667265652062616c616e636520776173206c6f636b65642e20556e6c6f636b65640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000e0478536f6d65206c6f636b65642062616c616e6365207761732066726565642e1849737375656408012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e6365000f002452657363696e64656408012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e6365001000047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e9080c2c636861696e6272696467651870616c6c6574144576656e740404540001345c52656c617965725468726573686f6c644368616e676564040010010c753332000004a8566f7465207468726573686f6c6420686173206368616e67656420286e65775f7468726573686f6c642940436861696e57686974656c6973746564040008011c436861696e4964000104b0436861696e206e6f7720617661696c61626c6520666f72207472616e73666572732028636861696e5f6964293052656c6179657241646465640400000130543a3a4163636f756e7449640002045052656c6179657220616464656420746f207365743852656c6179657252656d6f7665640400000130543a3a4163636f756e7449640003046052656c617965722072656d6f7665642066726f6d207365744046756e6769626c655472616e73666572140008011c436861696e496400002c01304465706f7369744e6f6e636500000401285265736f75726365496400001d05011055323536000034011c5665633c75383e000404990146756e676c69626c655472616e7366657220697320666f722072656c6179696e672066756e6769626c65732028646573745f69642c206e6f6e63652c207265736f757263655f69642c20616d6f756e742c20726563697069656e742c206d65746164617461294c4e6f6e46756e6769626c655472616e73666572180008011c436861696e496400002c01304465706f7369744e6f6e636500000401285265736f757263654964000034011c5665633c75383e000034011c5665633c75383e000034011c5665633c75383e00050495014e6f6e46756e6769626c655472616e7366657220697320666f722072656c6179696e67204e4654532028646573745f69642c206e6f6e63652c207265736f757263655f69642c20746f6b656e5f69642c20726563697069656e742c206d65746164617461293c47656e657269635472616e73666572100008011c436861696e496400002c01304465706f7369744e6f6e636500000401285265736f757263654964000034011c5665633c75383e000604550147656e657269635472616e7366657220697320666f7220612067656e657269632064617461207061796c6f61642028646573745f69642c206e6f6e63652c207265736f757263655f69642c206d65746164617461291c566f7465466f720c0008011c436861696e496400002c01304465706f7369744e6f6e63650000000130543a3a4163636f756e74496400070490566f7465207375626d697474656420696e206661766f7572206f662070726f706f73616c2c566f7465416761696e73740c0008011c436861696e496400002c01304465706f7369744e6f6e63650000000130543a3a4163636f756e74496400080478566f74207375626d697474656420616761696e73742070726f706f73616c4050726f706f73616c417070726f766564080008011c436861696e496400002c01304465706f7369744e6f6e636500090480566f74696e67207375636365737366756c20666f7220612070726f706f73616c4050726f706f73616c52656a6563746564080008011c436861696e496400002c01304465706f7369744e6f6e6365000a0468566f74696e672072656a656374656420612070726f706f73616c4450726f706f73616c537563636565646564080008011c436861696e496400002c01304465706f7369744e6f6e6365000b046c457865637574696f6e206f662063616c6c207375636365656465643850726f706f73616c4661696c6564080008011c436861696e496400002c01304465706f7369744e6f6e6365000c0460457865637574696f6e206f662063616c6c206661696c6564047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ed080c4c6f726d6c5f61737365745f7265676973747279186d6f64756c65144576656e740404540001083c52656769737465726564417373657408012061737365745f6964b9030128543a3a417373657449640001206d65746164617461d90601f041737365744d657461646174613c543a3a42616c616e63652c20543a3a437573746f6d4d657461646174612c20543a3a537472696e674c696d69743e0000003055706461746564417373657408012061737365745f6964b9030128543a3a417373657449640001206d65746164617461d90601f041737365744d657461646174613c543a3a42616c616e63652c20543a3a437573746f6d4d657461646174612c20543a3a537472696e674c696d69743e000100047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f1080c206f726d6c5f78636d186d6f64756c65144576656e740404540001041053656e74080108746fdd0101204c6f636174696f6e00011c6d6573736167651506011c58636d3c28293e0000048458434d206d6573736167652073656e742e205c5b746f2c206d6573736167655c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f5080c2870616c6c65745f65766d1870616c6c6574144576656e740404540001140c4c6f6704010c6c6f67f908010c4c6f670000047c457468657265756d206576656e74732066726f6d20636f6e7472616374732e1c4372656174656404011c616464726573732102011048313630000104b44120636f6e747261637420686173206265656e206372656174656420617420676976656e20616464726573732e34437265617465644661696c656404011c61646472657373210201104831363000020405014120636f6e74726163742077617320617474656d7074656420746f20626520637265617465642c206275742074686520657865637574696f6e206661696c65642e20457865637574656404011c616464726573732102011048313630000304f84120636f6e747261637420686173206265656e206578656375746564207375636365737366756c6c79207769746820737461746573206170706c6965642e3845786563757465644661696c656404011c61646472657373210201104831363000040465014120636f6e747261637420686173206265656e2065786563757465642077697468206572726f72732e20537461746573206172652072657665727465642077697468206f6e6c79206761732066656573206170706c6965642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f9080c20657468657265756d0c6c6f670c4c6f6700000c011c616464726573732102011048313630000118746f70696373290301245665633c483235363e0001106461746134011442797465730000fd080c3c70616c6c65745f626173655f6665651870616c6c6574144576656e7400010c404e65774261736546656550657247617304010c6665651d050110553235360000003c426173654665654f766572666c6f77000100344e6577456c6173746963697479040128656c61737469636974791907011c5065726d696c6c000200047c54686520604576656e746020656e756d206f6620746869732070616c6c657401090c3c70616c6c65745f657468657265756d1870616c6c6574144576656e7400010420457865637574656414011066726f6d2102011048313630000108746f21020110483136300001407472616e73616374696f6e5f686173683001104832353600012c657869745f726561736f6e0509012845786974526561736f6e00012865787472615f6461746134011c5665633c75383e000004c8416e20657468657265756d207472616e73616374696f6e20776173207375636365737366756c6c792065786563757465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657405090c2065766d5f636f7265146572726f722845786974526561736f6e0001101c5375636365656404000909012c4578697453756363656564000000144572726f7204000d090124457869744572726f720001001852657665727404001d0901284578697452657665727400020014466174616c04002109012445786974466174616c0003000009090c2065766d5f636f7265146572726f722c457869745375636365656400010c1c53746f707065640000002052657475726e6564000100205375696369646564000200000d090c2065766d5f636f7265146572726f7224457869744572726f7200014038537461636b556e646572666c6f7700000034537461636b4f766572666c6f770001002c496e76616c69644a756d7000020030496e76616c696452616e67650003004444657369676e61746564496e76616c69640004002c43616c6c546f6f446565700005003c437265617465436f6c6c6973696f6e0006004c437265617465436f6e74726163744c696d69740007002c496e76616c6964436f64650400110901184f70636f6465000f002c4f75744f664f6666736574000800204f75744f66476173000900244f75744f6646756e64000a002c5043556e646572666c6f77000b002c437265617465456d707479000c00144f74686572040015090144436f773c277374617469632c207374723e000d00204d61784e6f6e6365000e000011090c2065766d5f636f7265186f70636f6465184f70636f646500000400080108753800001509040c436f770404540119090004001909000000190900000502001d090c2065766d5f636f7265146572726f7228457869745265766572740001042052657665727465640000000021090c2065766d5f636f7265146572726f722445786974466174616c000110304e6f74537570706f7274656400000048556e68616e646c6564496e746572727570740001004043616c6c4572726f724173466174616c04000d090124457869744572726f72000200144f74686572040015090144436f773c277374617469632c207374723e0003000025090c646178656c61725f676174657761795f707265636f6d70696c651870616c6c6574144576656e74040454000108284761746577617953657404011c61646472657373210201104831363000000030436f6e76657274657253657408011c69645f6861736830011048323536000124636f6e7665727465724907013c536f75726365436f6e766572746572000100047c54686520604576656e746020656e756d206f6620746869732070616c6c657429090c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74a401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64110101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74a401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742d090c4070616c6c65745f706f6f6c5f666565731870616c6c6574144576656e740404540001202050726f706f73656410011c706f6f6c5f69642c0124543a3a506f6f6c49640001186665655f69642c0120543a3a46656549640001186275636b657481040134506f6f6c4665654275636b657400010c66656585040140506f6f6c466565496e666f4f663c543e0000047041206e657720706f6f6c20666565207761732070726f706f7365642e14416464656410011c706f6f6c5f69642c0124543a3a506f6f6c49640001186275636b657481040134506f6f6c4665654275636b65740001186665655f69642c0120543a3a466565496400010c66656585040140506f6f6c466565496e666f4f663c543e000104d8412070726576696f75736c792070726f706f73656420616e6420617070726f76656420706f6f6c20666565207761732061646465642e1c52656d6f7665640c011c706f6f6c5f69642c0124543a3a506f6f6c49640001186275636b657481040134506f6f6c4665654275636b65740001186665655f69642c0120543a3a46656549640002045c4120706f6f6c20666565207761732072656d6f7665642e1c4368617267656410011c706f6f6c5f69642c0124543a3a506f6f6c49640001186665655f69642c0120543a3a4665654964000118616d6f756e74180128543a3a42616c616e636500011c70656e64696e67180128543a3a42616c616e63650003045c4120706f6f6c206665652077617320636861726765642e24556e6368617267656410011c706f6f6c5f69642c0124543a3a506f6f6c49640001186665655f69642c0120543a3a4665654964000118616d6f756e74180128543a3a42616c616e636500011c70656e64696e67180128543a3a42616c616e6365000404644120706f6f6c206665652077617320756e636861726765642e105061696410011c706f6f6c5f69642c0124543a3a506f6f6c49640001186665655f69642c0120543a3a4665654964000118616d6f756e74180128543a3a42616c616e636500012c64657374696e6174696f6e000130543a3a4163636f756e744964000504504120706f6f6c206665652077617320706169642e1c4163637275656410011c706f6f6c5f69642c0124543a3a506f6f6c49640001186665655f69642c0120543a3a466565496400011c70656e64696e67180128543a3a42616c616e636500013064697362757273656d656e74180128543a3a42616c616e6365000604604120666978656420706f6f6c20666565206163637275656464506f7274666f6c696f56616c756174696f6e557064617465640c011c706f6f6c5f69642c0124543a3a506f6f6c496400012476616c756174696f6e180128543a3a42616c616e636500012c7570646174655f74797065e9070170506f7274666f6c696f56616c756174696f6e55706461746554797065000704bc54686520706f7274666f6c696f2076616c756174696f6e20666f72206120706f6f6c2077617320757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657431090c3870616c6c65745f72656d61726b731870616c6c6574144576656e740404540001041852656d61726b08011c72656d61726b73590701ac426f756e6465645665633c543a3a52656d61726b2c20543a3a4d617852656d61726b7350657243616c6c3e00011063616c6c250101683c5420617320436f6e6669673e3a3a52756e74696d6543616c6c00000448412072656d61726b20776173206d6164652e047c54686520604576656e746020656e756d206f6620746869732070616c6c657435090c4070616c6c65745f746f6b656e5f6d75781870616c6c6574144576656e7404045400010c244465706f736974656410010c77686f000130543a3a4163636f756e74496400013063757272656e63795f6f7574b9030134543a3a43757272656e6379496400012c63757272656e63795f696eb9030134543a3a43757272656e63794964000118616d6f756e74180134543a3a42616c616e63654f7574000000184275726e656410010c77686f000130543a3a4163636f756e74496400013063757272656e63795f6f7574b9030134543a3a43757272656e6379496400012c63757272656e63795f696eb9030134543a3a43757272656e63794964000118616d6f756e74180134543a3a42616c616e63654f75740001002c537761704d61746368656408010869642c0128543a3a4f726465724964000118616d6f756e74180134543a3a42616c616e63654f7574000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574390908306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200003d09000002c000410908306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6eb101014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d651909016473705f72756e74696d653a3a52756e74696d65537472696e670000450908306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000049090c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c6173734d0901845065724469737061746368436c6173733c57656967687473506572436c6173733e00004d090c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454015109000c01186e6f726d616c510901045400012c6f7065726174696f6e616c51090104540001246d616e6461746f72795109010454000051090c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963b90601384f7074696f6e3c5765696768743e0001246d61785f746f74616cb90601384f7074696f6e3c5765696768743e0001207265736572766564b90601384f7074696f6e3c5765696768743e000055090c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178590901545065724469737061746368436c6173733c7533323e000059090c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005d09082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400006109082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d651909013452756e74696d65537472696e67000124696d706c5f6e616d651909013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736509011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800006509040c436f77040454016909000400690900000069090000026d09006d09000004087d02100071090c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574750900000279090079090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480130000c0138757365645f62616e6477696474687d0901345573656442616e647769647468000138706172615f686561645f68617368490201244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c9109018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00007d090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e678109018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e00008109042042547265654d617008044b015d010456018509000400890900000085090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c753332000089090000028d09008d09000004085d01850900910904184f7074696f6e0404540195090108104e6f6e6500000010536f6d6504009509000001000095090c4c706f6c6b61646f745f7072696d6974697665730876363855706772616465476f41686561640001081441626f72740000001c476f41686561640001000099090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480130000c0138757365645f62616e6477696474687d0901345573656442616e64776964746800013868726d705f77617465726d61726b450201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c9109018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00009d0904184f7074696f6e04045401a1090108104e6f6e6500000010536f6d650400a1090000010000a1090c4c706f6c6b61646f745f7072696d69746976657308763648557067726164655265737472696374696f6e0001041c50726573656e7400000000a5090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616430014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f6361706163697479a909018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73ad0901885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73ad0901885665633c285061726149642c20416272696467656448726d704368616e6e656c293e0000a9090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c7533320000ad09000002b10900b109000004085d01b50900b5090c4c706f6c6b61646f745f7072696d6974697665730876364c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164490201304f7074696f6e3c486173683e0000b9090c4c706f6c6b61646f745f7072696d697469766573087636644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73bd0901484173796e634261636b696e67506172616d730000bd09104c706f6c6b61646f745f7072696d697469766573087636346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c7533320000c109089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040030012452656c6179486173680000c509042042547265654d617008044b015d01045601c109000400c909000000c909000002cd0900cd09000004085d01c10900d109000002d50900d5090860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d65737361676504084964015d0100080124726563697069656e745d01010849640001106461746134015073705f7374643a3a7665633a3a5665633c75383e0000d9090c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000dd090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee1090c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401e509045300000400ed0901185665633c543e0000e5090c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869647d0201384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e909011c526561736f6e730000e9090c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000ed09000002e50900f1090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f509045300000400f90901185665633c543e0000f5090c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572017d021c42616c616e636501180008010869647d020144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f909000002f50900fd090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401010a045300000400150a01185665633c543e0000010a0c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401050a1c42616c616e63650118000801086964050a01084964000118616d6f756e7418011c42616c616e63650000050a084c646576656c6f706d656e745f72756e74696d654452756e74696d65486f6c64526561736f6e00010c20507265696d6167650400090a016c70616c6c65745f707265696d6167653a3a486f6c64526561736f6e00480018546f6b656e7304000d0a019070616c6c65745f726573747269637465645f746f6b656e733a3a486f6c64526561736f6e006300445472616e73666572416c6c6f774c6973740400110a019470616c6c65745f7472616e736665725f616c6c6f776c6973743a3a486f6c64526561736f6e00700000090a0c3c70616c6c65745f707265696d6167651870616c6c657428486f6c64526561736f6e00010420507265696d616765000000000d0a0c6070616c6c65745f726573747269637465645f746f6b656e731870616c6c657428486f6c64526561736f6e0001042c4e6174697665496e64657800000000110a0c6470616c6c65745f7472616e736665725f616c6c6f776c6973741870616c6c657428486f6c64526561736f6e000104445472616e73666572416c6c6f77616e636500000000150a000002010a00190a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d0a045300000400210a01185665633c543e00001d0a0c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401a81c42616c616e63650118000801086964a801084964000118616d6f756e7418011c42616c616e63650000210a0000021d0a00250a0c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e290a086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100002d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004009401185665633c543e0000310a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401350a045300000400390a01185665633c543e0000350a0c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650000390a000002350a003d0a0c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e410a000002450a00450a0000040800950100490a00000210004d0a00000408510a3400510a0c1c73705f636f72651863727970746f244b65795479706549640000040044011c5b75383b20345d0000550a0c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e590a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540199010453000004005d0a01185665633c543e00005d0a000002990100610a084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000650a00000408610a1000690a000004080004006d0a083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656ea0015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73710a018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e0000710a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004009401185665633c543e0000750a0c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e790a000004087d0a18007d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401810a045300000400850a01185665633c543e0000810a083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f78795479706501b02c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f74797065b0012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000850a000002810a00890a000004088d0a18008d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401910a045300000400950a01185665633c543e0000910a083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801302c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683001104861736800011868656967687410012c426c6f636b4e756d6265720000950a000002910a00990a0c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9d0a0c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a50a045300000400ad0a01185665633c543e0000a50a04184f7074696f6e04045401a90a0108104e6f6e6500000010536f6d650400a90a0000010000a90a084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c0121012c426c6f636b4e756d62657201103450616c6c6574734f726967696e01bd01244163636f756e7449640100001401206d617962655f69648001304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2101011043616c6c0001386d617962655f706572696f6469632d0201944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696ebd01013450616c6c6574734f726967696e0000ad0a000002a50a00b10a0c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb50a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540130045300000400290301185665633c543e0000b90a084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e74000110617965739401385665633c4163636f756e7449643e0001106e6179739401385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d6265720000bd0a0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f7208045400044900012c244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d626572048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec10a000002c50a00c50a086470616c6c65745f656c656374696f6e735f70687261676d656e2853656174486f6c64657208244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000c90a086470616c6c65745f656c656374696f6e735f70687261676d656e14566f74657208244163636f756e74496401001c42616c616e63650118000c0114766f7465739401385665633c4163636f756e7449643e0001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000cd0a0c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144572726f7204045400014430556e61626c65546f566f7465000004c043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f746573000104944d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f7465730002048443616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f74657345786365656465640003049843616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e6365000404c443616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e6400050478566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f746572000604404d757374206265206120766f7465722e4c4475706c69636174656443616e646964617465000704804475706c6963617465642063616e646964617465207375626d697373696f6e2e44546f6f4d616e7943616e6469646174657300080498546f6f206d616e792063616e646964617465732068617665206265656e20637265617465642e304d656d6265725375626d6974000904884d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974000a048852756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e6473000b049443616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d626572000c04344e6f742061206d656d6265722e48496e76616c69645769746e65737344617461000d04e05468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e74000e04cc5468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67000f04fc5468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e74001004fc50726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed10a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d50a045300000400d90a01185665633c543e0000d50a0000040c1021010000d90a000002d50a00dd0a00000408e10a1800e10a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004009401185665633c543e0000e50a0c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d62657201102050726f706f73616c0121011c42616c616e6365011801081c4f6e676f696e670400e90a01c05265666572656e64756d5374617475733c426c6f636b4e756d6265722c2050726f706f73616c2c2042616c616e63653e0000002046696e6973686564080120617070726f766564780110626f6f6c00010c656e6410012c426c6f636b4e756d62657200010000e90a0c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d62657201102050726f706f73616c0121011c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200012070726f706f73616c2101012050726f706f73616c0001247468726573686f6c64d80134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c79ed0a013854616c6c793c42616c616e63653e0000ed0a0c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e63650000f10a0c4070616c6c65745f64656d6f637261637910766f746518566f74696e67101c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d6265720110204d6178566f746573000108184469726563740c0114766f746573f50a01f4426f756e6465645665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73010b015044656c65676174696f6e733c42616c616e63653e0001147072696f72050b017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6e41020128436f6e76696374696f6e00012c64656c65676174696f6e73010b015044656c65676174696f6e733c42616c616e63653e0001147072696f72050b017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00010000f50a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f90a045300000400fd0a01185665633c543e0000f90a0000040810dc00fd0a000002f90a00010b0c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000050b0c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000090b000004082101d8000d0b0000040810e10a00110b0c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f720404540001602056616c75654c6f770000043456616c756520746f6f206c6f773c50726f706f73616c4d697373696e670001045c50726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c65640002049443616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c0003045450726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c69737465640004046850726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f72697479000504a84e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c69644861736800060430496e76616c69642068617368284e6f50726f706f73616c000704504e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564000804984964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365445265666572656e64756d496e76616c696400090484566f746520676976656e20666f7220696e76616c6964207265666572656e64756d2c4e6f6e6557616974696e67000a04504e6f2070726f706f73616c732077616974696e67204e6f74566f746572000b04c454686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e000c04c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67000d0488546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e6473000e04fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000f04a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f74657345786973740010085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f776564001104d854686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e73650012049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e6400130450496e76616c696420757070657220626f756e642e3c4d6178566f74657352656163686564001404804d6178696d756d206e756d626572206f6620766f74657320726561636865642e1c546f6f4d616e79001504804d6178696d756d206e756d626572206f66206974656d7320726561636865642e3c566f74696e67506572696f644c6f7700160454566f74696e6720706572696f6420746f6f206c6f7740507265696d6167654e6f7445786973740017047054686520707265696d61676520646f6573206e6f742065786973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e150b00000408190b290b00190b0c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e747300304964656e74697479496e666f015102000c01286a756467656d656e74731d0b01fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666f510201304964656e74697479496e666f00001d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401210b045300000400250b01185665633c543e0000210b0000040810e90200250b000002210b00290b04184f7074696f6e04045401ec0108104e6f6e6500000010536f6d650400ec00000100002d0b0000040818310b00310b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004009401185665633c543e0000350b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401390b045300000400410b01185665633c543e0000390b04184f7074696f6e040454013d0b0108104e6f6e6500000010536f6d6504003d0b00000100003d0b0c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f0c1c42616c616e63650118244163636f756e74496401001c49644669656c64012c000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c64732c011c49644669656c640000410b000002390b00450b0c3c70616c6c65745f6964656e746974791474797065734c417574686f7269747950726f70657274696573041853756666697801490b00080118737566666978490b0118537566666978000128616c6c6f636174696f6e100128416c6c6f636174696f6e0000490b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e00004d0b00000408001000510b0c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400016848546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e44546f6f4d616e7952656769737472617273000b04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000c04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000d047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000e04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e744a756467656d656e74466f72446966666572656e744964656e74697479000f04d05468652070726f7669646564206a756467656d656e742077617320666f72206120646966666572656e74206964656e746974792e584a756467656d656e745061796d656e744661696c6564001004f84572726f722074686174206f6363757273207768656e20746865726520697320616e20697373756520706179696e6720666f72206a756467656d656e742e34496e76616c6964537566666978001104805468652070726f76696465642073756666697820697320746f6f206c6f6e672e504e6f74557365726e616d65417574686f72697479001204e05468652073656e64657220646f6573206e6f742068617665207065726d697373696f6e20746f206973737565206120757365726e616d652e304e6f416c6c6f636174696f6e001304c454686520617574686f726974792063616e6e6f7420616c6c6f6361746520616e79206d6f726520757365726e616d65732e40496e76616c69645369676e6174757265001404a8546865207369676e6174757265206f6e206120757365726e616d6520776173206e6f742076616c69642e4452657175697265735369676e6174757265001504090153657474696e67207468697320757365726e616d652072657175697265732061207369676e61747572652c20627574206e6f6e65207761732070726f76696465642e3c496e76616c6964557365726e616d65001604b054686520757365726e616d6520646f6573206e6f74206d6565742074686520726571756972656d656e74732e34557365726e616d6554616b656e0017047854686520757365726e616d6520697320616c72656164792074616b656e2e284e6f557365726e616d65001804985468652072657175657374656420757365726e616d6520646f6573206e6f742065786973742e284e6f74457870697265640019042d0154686520757365726e616d652063616e6e6f7420626520666f72636566756c6c792072656d6f76656420626563617573652069742063616e207374696c6c2062652061636365707465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e550b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010d03045300000400590b01185665633c543e0000590b0000020d03005d0b083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000610b0c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e650b083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e63650000690b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400490a01185665633c543e00006d0b083c70616c6c65745f74726561737572792c5370656e64537461747573142441737365744b696e6401a830417373657442616c616e636501182c42656e656669636961727901002c426c6f636b4e756d6265720110245061796d656e74496401a80018012861737365745f6b696e64a8012441737365744b696e64000118616d6f756e74180130417373657442616c616e636500012c62656e656669636961727900012c42656e656669636961727900012876616c69645f66726f6d10012c426c6f636b4e756d6265720001246578706972655f617410012c426c6f636b4e756d626572000118737461747573710b015c5061796d656e7453746174653c5061796d656e7449643e0000710b083c70616c6c65745f7472656173757279305061796d656e7453746174650408496401a8010c1c50656e64696e6700000024417474656d707465640401086964a801084964000100184661696c656400020000750b08346672616d655f737570706f72742050616c6c65744964000004007d02011c5b75383b20385d0000790b0c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900013070496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104ac4e6f2070726f706f73616c2c20626f756e7479206f72207370656e64206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300020480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0003084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640004047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e584661696c6564546f436f6e7665727442616c616e636500050451015468652062616c616e6365206f6620746865206173736574206b696e64206973206e6f7420636f6e7665727469626c6520746f207468652062616c616e6365206f6620746865206e61746976652061737365742e305370656e6445787069726564000604b0546865207370656e6420686173206578706972656420616e642063616e6e6f7420626520636c61696d65642e2c4561726c795061796f7574000704a4546865207370656e64206973206e6f742079657420656c696769626c6520666f72207061796f75742e40416c7265616479417474656d707465640008049c546865207061796d656e742068617320616c7265616479206265656e20617474656d707465642e2c5061796f75744572726f72000904cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e304e6f74417474656d70746564000a04a4546865207061796f757420776173206e6f742079657420617474656d707465642f636c61696d65642e30496e636f6e636c7573697665000b04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e04784572726f7220666f72207468652074726561737572792070616c6c65742e7d0b0c3870616c6c65745f756e697175657314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118002801146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000134746f74616c5f6465706f7369741801384465706f73697442616c616e6365000130667265655f686f6c64696e67780110626f6f6c0001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001286174747269627574657310010c75333200012469735f66726f7a656e780110626f6f6c0000810b0000040c002cfc00850b00000408002c00890b0c3870616c6c65745f756e69717565731474797065732c4974656d44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001001146f776e65720001244163636f756e744964000120617070726f766564110101444f7074696f6e3c4163636f756e7449643e00012469735f66726f7a656e780110626f6f6c00011c6465706f7369741801384465706f73697442616c616e636500008d0b0c3870616c6c65745f756e697175657314747970657348436f6c6c656374696f6e4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e6365000110646174610101016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e780110626f6f6c0000910b0c3870616c6c65745f756e6971756573147479706573304974656d4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e6365000110646174610101016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e780110626f6f6c0000950b0000040c2c0901010100990b00000408010118009d0b0000040818110100a10b0c3870616c6c65745f756e69717565731870616c6c6574144572726f72080454000449000148304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e2857726f6e674f776e6572000304e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730004046c496e76616c6964207769746e657373206461746120676976656e2e14496e55736500050474546865206974656d20494420697320616c72656164792074616b656e2e1846726f7a656e00060484546865206974656d206f7220636f6c6c656374696f6e2069732066726f7a656e2e3457726f6e6744656c6567617465000704f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284e6f44656c6567617465000804785468657265206973206e6f2064656c656761746520617070726f7665642e28556e617070726f766564000904c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000a042501546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e657273686970206f662074686520636f6c6c656374696f6e2069732061636365707461626c652e184c6f636b6564000b044c546865206974656d206973206c6f636b65642e404d6178537570706c7952656163686564000c046c416c6c206974656d732068617665206265656e206d696e7465642e4c4d6178537570706c79416c7265616479536574000d0490546865206d617820737570706c792068617320616c7265616479206265656e207365742e444d6178537570706c79546f6f536d616c6c000e0441015468652070726f7669646564206d617820737570706c79206973206c65737320746f2074686520616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d000f047454686520676976656e206974656d20494420697320756e6b6e6f776e2e284e6f74466f7253616c65001004544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001104705468652070726f76696465642062696420697320746f6f206c6f772e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea50b083c70616c6c65745f707265696d616765404f6c645265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f736974d00150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974a90b01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656e4502012c4f7074696f6e3c7533323e00010000a90b04184f7074696f6e04045401d00108104e6f6e6500000010536f6d650400d00000010000ad0b083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e7449640100185469636b657401b10b01082c556e7265717565737465640801187469636b6574b50b014c284163636f756e7449642c205469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b6574b90b016c4f7074696f6e3c284163636f756e7449642c205469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656e4502012c4f7074696f6e3c7533323e00010000b10b14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e10044100044600045200044400000400180128463a3a42616c616e63650000b50b0000040800b10b00b90b04184f7074696f6e04045401b50b0108104e6f6e6500000010536f6d650400b50b0000010000bd0b00000408301000c10b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000c50b0c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400012018546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e1c546f6f4d616e7900060455014d6f7265207468616e20604d41585f484153485f555047524144455f42554c4b5f434f554e54602068617368657320776572652072657175657374656420746f206265207570677261646564206174206f6e63652e18546f6f466577000704e4546f6f206665772068617368657320776572652072657175657374656420746f2062652075706772616465642028692e652e207a65726f292e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec90b0000040800b400cd0b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e670400d10b01c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400e90b01ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e00010000d10b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f746573d50b01dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73e10b015044656c65676174696f6e733c42616c616e63653e0001147072696f72e50b017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000d50b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d90b045300000400dd0b01185665633c543e0000d90b0000040810310300dd0b000002d90b00e10b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000e50b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000e90b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652844656c65676174696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100014011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6e39030128436f6e76696374696f6e00012c64656c65676174696f6e73e10b015044656c65676174696f6e733c42616c616e63653e0001147072696f72e50b017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000ed0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f10b045300000400f50b01185665633c543e0000f10b00000408b41800f50b000002f10b00f90b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144572726f72080454000449000130284e6f744f6e676f696e6700000450506f6c6c206973206e6f74206f6e676f696e672e204e6f74566f746572000104ac54686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e2074686520706f6c6c2e304e6f5065726d697373696f6e000204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e3c4e6f5065726d697373696f6e5965740003045901546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e207269676874206e6f77206275742077696c6c20646f20696e20746865206675747572652e44416c726561647944656c65676174696e6700040488546865206163636f756e7420697320616c72656164792064656c65676174696e672e34416c7265616479566f74696e670005085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e73756666696369656e7446756e6473000604fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000704a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e204e6f6e73656e73650008049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c4d6178566f74657352656163686564000904804d6178696d756d206e756d626572206f6620766f74657320726561636865642e2c436c6173734e6565646564000a04390154686520636c617373206d75737420626520737570706c6965642073696e6365206974206973206e6f7420656173696c792064657465726d696e61626c652066726f6d207468652073746174652e20426164436c617373000b048454686520636c61737320494420737570706c69656420697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742efd0b0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b496401b43452756e74696d654f726967696e01bd01184d6f6d656e7401101043616c6c0121011c42616c616e636501181454616c6c79017907244163636f756e74496401003c5363686564756c654164647265737301c001181c4f6e676f696e670400010c018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e740000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e740000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e740000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e740000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000010c0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b496401b43452756e74696d654f726967696e01bd01184d6f6d656e7401101043616c6c0121011c42616c616e636501181454616c6c79017907244163636f756e74496401003c5363686564756c654164647265737301c0002c0114747261636bb4011c547261636b49640001186f726967696ebd01013452756e74696d654f726967696e00012070726f706f73616c2101011043616c6c000124656e6163746d656e7445030150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974050c016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f736974090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e670d0c01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c797907011454616c6c79000120696e5f7175657565780110626f6f6c000114616c61726d150c01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000050c0c4070616c6c65745f7265666572656e64611474797065731c4465706f73697408244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e744964000118616d6f756e7418011c42616c616e63650000090c04184f7074696f6e04045401050c0108104e6f6e6500000010536f6d650400050c00000100000d0c04184f7074696f6e04045401110c0108104e6f6e6500000010536f6d650400110c0000010000110c0c4070616c6c65745f7265666572656e6461147479706573384465636964696e67537461747573042c426c6f636b4e756d62657201100008011473696e636510012c426c6f636b4e756d626572000128636f6e6669726d696e674502014c4f7074696f6e3c426c6f636b4e756d6265723e0000150c04184f7074696f6e04045401190c0108104e6f6e6500000010536f6d650400190c0000010000190c0000040810c0001d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401210c045300000400250c01185665633c543e0000210c00000408101800250c000002210c00290c0000022d0c002d0c00000408b4310c00310c0c4070616c6c65745f7265666572656e646114747970657324547261636b496e666f081c42616c616e63650118184d6f6d656e740110002401106e616d65190901302627737461746963207374720001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616c350c0114437572766500012c6d696e5f737570706f7274350c011443757276650000350c0c4070616c6c65745f7265666572656e646114747970657314437572766500010c404c696e65617244656372656173696e670c01186c656e677468390c011c50657262696c6c000114666c6f6f72390c011c50657262696c6c0001106365696c390c011c50657262696c6c000000445374657070656444656372656173696e67100114626567696e390c011c50657262696c6c00010c656e64390c011c50657262696c6c00011073746570390c011c50657262696c6c000118706572696f64390c011c50657262696c6c000100285265636970726f63616c0c0118666163746f723d0c01204669786564493634000120785f6f66667365743d0c01204669786564493634000120795f6f66667365743d0c0120466978656449363400020000390c0c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200003d0c0c3473705f61726974686d657469632c66697865645f706f696e7420466978656449363400000400410c010c6936340000410c0000050c00450c0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000134284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e490c0c4070616c6c65745f77686974656c6973741870616c6c6574144572726f720404540001144c556e617661696c61626c65507265496d616765000004c854686520707265696d616765206f66207468652063616c6c206861736820636f756c64206e6f74206265206c6f616465642e3c556e6465636f6461626c6543616c6c000104785468652063616c6c20636f756c64206e6f74206265206465636f6465642e60496e76616c696443616c6c5765696768745769746e657373000204ec54686520776569676874206f6620746865206465636f6465642063616c6c2077617320686967686572207468616e20746865207769746e6573732e5043616c6c49734e6f7457686974656c6973746564000304745468652063616c6c20776173206e6f742077686974656c69737465642e5843616c6c416c726561647957686974656c6973746564000404a05468652063616c6c2077617320616c72656164792077686974656c69737465643b204e6f2d4f702e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e4d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540130045300000400290301185665633c543e0000510c0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f7208045400044900012c244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d626572048054686520604572726f726020656e756d206f6620746869732070616c6c65742e550c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004009401185665633c543e0000590c0c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010c34416c72656164794d656d62657200000444416c72656164792061206d656d6265722e244e6f744d656d626572000104344e6f742061206d656d6265722e38546f6f4d616e794d656d6265727300020444546f6f206d616e79206d656d626572732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d0c083870616c6c65745f616e63686f727334507265436f6d6d6974446174611010486173680130244163636f756e74496401002c426c6f636b4e756d62657201101c42616c616e63650118001001307369676e696e675f726f6f74300110486173680001206964656e746974790001244163636f756e74496400014065787069726174696f6e5f626c6f636b10012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e63650000610c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000650c0c3870616c6c65745f616e63686f72731870616c6c6574144572726f720404540001204c416e63686f72416c726561647945786973747300000490416e63686f72207769746820616e63686f725f696420616c72656164792065786973747354416e63686f7253746f726544617465496e50617374000104a8416e63686f722073746f72652064617465206d75737420626520696e206e6f77206f722066757475726570416e63686f7253746f72654461746541626f76654d61784c696d6974000204d8416e63686f722073746f72652064617465206d757374206e6f74206265206d6f7265207468616e206d61782073746f7265206461746558507265436f6d6d6974416c7265616479457869737473000304645072652d636f6d6d697420616c7265616479206578697374734c4e6f744f776e65724f66507265436f6d6d69740004049453656e646572206973206e6f7420746865206f776e6572206f662070726520636f6d6d697454496e76616c6964507265436f6d6d697450726f6f6600050460496e76616c69642070726520636f6d6d69742070726f6f66484576696374696f6e44617465546f6f426967000604904576696374696f6e206461746520746f6f2062696720666f7220636f6e76657273696f6e684661696c6564546f436f6e7665727445706f6368546f44617973000704944661696c656420746f20636f6e766572742065706f636820696e204d5320746f2064617973048054686520604572726f726020656e756d206f6620746869732070616c6c65742e690c0c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f74797065732c506f6f6c44657461696c73242843757272656e6379496401b9033c5472616e63686543757272656e63790149041c45706f6368496401101c42616c616e63650118105261746501950318576569676874016d0c245472616e6368654964019d0218506f6f6c4964012c2c4d61785472616e636865730199040018012063757272656e6379b903012843757272656e637949640001207472616e63686573710c0141015472616e636865733c42616c616e63652c20526174652c205765696768742c205472616e63686543757272656e63792c205472616e63686549642c20506f6f6c49642c0a4d61785472616e636865733e000128706172616d65746572738d0c0138506f6f6c506172616d6574657273000118737461747573910c0128506f6f6c53746174757300011465706f6368950c014c45706f636853746174653c45706f636849643e00011c72657365727665990c015c5265736572766544657461696c733c42616c616e63653e00006d0c0c386366675f7072696d697469766573147479706573345472616e63686557656967687400000400180110753132380000710c0c4870616c6c65745f706f6f6c5f73797374656d207472616e63686573205472616e636865731c1c42616c616e63650118105261746501950318576569676874016d0c3c5472616e63686543757272656e6379014904245472616e6368654964019d0218506f6f6c4964012c2c4d61785472616e63686573019904000c01207472616e63686573750c012501426f756e6465645665633c5472616e6368653c42616c616e63652c20526174652c205765696768742c205472616e63686543757272656e63793e2c204d61785472616e636865730a3e00010c696473810c0188426f756e6465645665633c5472616e63686549642c204d61785472616e636865733e00011073616c74890c014c5472616e63686553616c743c506f6f6c49643e0000750c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401790c0453000004007d0c01185665633c543e0000790c0c4870616c6c65745f706f6f6c5f73797374656d207472616e636865731c5472616e636865101c42616c616e63650118105261746501950318576569676874016d0c2843757272656e63794964014904002001307472616e6368655f74797065690401445472616e636865547970653c526174653e00012473656e696f7269747910012453656e696f7269747900012063757272656e63794904012843757272656e637949640001106465627418011c42616c616e636500011c7265736572766518011c42616c616e63650001106c6f737318011c42616c616e6365000114726174696f7103012c5065727175696e74696c6c0001546c6173745f757064617465645f696e7465726573742c011c5365636f6e647300007d0c000002790c00810c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019d02045300000400850c01185665633c543e0000850c0000029d0200890c000004082c2c008d0c0c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f747970657338506f6f6c506172616d657465727300000801386d696e5f65706f63685f74696d652c011c5365636f6e647300012c6d61785f6e61765f6167652c011c5365636f6e64730000910c0c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f747970657328506f6f6c537461747573000104104f70656e00000000950c0c246366675f74797065731465706f63682845706f63685374617465041c45706f636849640110000c011c63757272656e7410011c45706f6368496400012c6c6173745f636c6f7365642c011c5365636f6e64730001346c6173745f657865637574656410011c45706f636849640000990c0c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f7479706573385265736572766544657461696c73041c42616c616e63650118000c010c6d617818011c42616c616e6365000114746f74616c18011c42616c616e6365000124617661696c61626c6518011c42616c616e636500009d0c0c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f7479706573585363686564756c656455706461746544657461696c730c10526174650195032c537472696e674c696d69740165042c4d61785472616e636865730199040008011c6368616e676573950401ac506f6f6c4368616e6765733c526174652c20537472696e674c696d69742c204d61785472616e636865733e0001307375626d69747465645f61742c011c5365636f6e64730000a10c0c4870616c6c65745f706f6f6c5f73797374656d20736f6c7574696f6e4845706f6368457865637574696f6e496e666f1c1c42616c616e636501183042616c616e6365526174696f01c9031c45706f63684964011018576569676874016d0c2c426c6f636b4e756d62657201103c5472616e63686543757272656e63790149042c4d61785472616e636865730199040014011465706f636810011c45706f6368496400010c6e6176a50c01304e61763c42616c616e63653e0001207472616e63686573a90c014d0145706f6368457865637574696f6e5472616e636865733c42616c616e63652c2042616c616e6365526174696f2c205765696768742c205472616e63686543757272656e63792c0a4d61785472616e636865733e00013c626573745f7375626d697373696f6eb90c01ac4f7074696f6e3c45706f6368536f6c7574696f6e3c42616c616e63652c204d61785472616e636865733e3e0001506368616c6c656e67655f706572696f645f656e644502014c4f7074696f6e3c426c6f636b4e756d6265723e0000a50c0c4870616c6c65745f706f6f6c5f73797374656d20736f6c7574696f6e0c4e6176041c42616c616e636501180008011c6e61765f61756d18011c42616c616e63650001206e61765f6665657318011c42616c616e63650000a90c0c4870616c6c65745f706f6f6c5f73797374656d207472616e636865735845706f6368457865637574696f6e5472616e63686573141c42616c616e636501183042616c616e6365526174696f01c90318576569676874016d0c3c5472616e63686543757272656e63790149042c4d61785472616e63686573019904000401207472616e63686573ad0c017d01426f756e6465645665633c45706f6368457865637574696f6e5472616e6368653c42616c616e63652c2042616c616e6365526174696f2c205765696768742c0a5472616e63686543757272656e63793e2c204d61785472616e636865732c3e0000ad0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b10c045300000400b50c01185665633c543e0000b10c0c4870616c6c65745f706f6f6c5f73797374656d207472616e636865735445706f6368457865637574696f6e5472616e636865101c42616c616e636501183042616c616e6365526174696f01c90318576569676874016d0c3c5472616e63686543757272656e6379014904001c012063757272656e63794904013c5472616e63686543757272656e6379000118737570706c7918011c42616c616e63650001147072696365c903013042616c616e6365526174696f000118696e7665737418011c42616c616e636500011872656465656d18011c42616c616e636500013c6d696e5f7269736b5f6275666665727103012c5065727175696e74696c6c00012473656e696f7269747910012453656e696f726974790000b50c000002b10c00b90c04184f7074696f6e040454019d070108104e6f6e6500000010536f6d6504009d070000010000bd0c0c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f74797065733c506f6f6c4465706f736974496e666f08244163636f756e74496401001c42616c616e63650118000801246465706f7369746f720001244163636f756e74496400011c6465706f73697418011c42616c616e63650000c10c000004082c3000c50c104870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f74797065731c6368616e6765733c4e6f746564506f6f6c4368616e676504384368616e676550726f706f73616c01d107000801387375626d69747465645f74696d652c011c5365636f6e64730001186368616e6765d10701384368616e676550726f706f73616c0000c90c0c4870616c6c65745f706f6f6c5f73797374656d1870616c6c6574144572726f7204045400018c24506f6f6c496e557365000004944120706f6f6c2077697468207468697320494420697320616c726561647920696e2075736550496e76616c69644a756e696f725472616e636865000104cc417474656d7074656420746f20637265617465206120706f6f6c20776974686f75742061206a756e696f72207472616e6368655c496e76616c69645472616e636865537472756374757265000208b4417474656d7074656420746f206372656174652061207472616e63686520737472756374757265207768657265a82a206e6f6e2d64656372656173696e6720696e746572657374207261746520706572207472616e636865284e6f53756368506f6f6c000304d4417474656d7074656420616e206f7065726174696f6e206f6e206120706f6f6c20776869636820646f6573206e6f74206578697374604d696e45706f636854696d654861734e6f7450617373656400040494417474656d7074656420746f20636c6f736520616e2065706f636820746f6f206561726c79644368616c6c656e676554696d654861734e6f745061737365640005049c417474656d7074656420746f206578656375746520616e2065706f636820746f6f206561726c7948496e5375626d697373696f6e506572696f64000604e443616e6e6f742062652063616c6c6564207768696c652074686520706f6f6c20697320696e2061207375626d697373696f6e20706572696f64244e4156546f6f4f6c64000704cc417474656d7074656420746f20636c6f736520616e2065706f6368207769746820616e206f7574206f662064617465204e4156245472616e6368654964000804b841205472616e6368652049442063616e6e6f7420626520636f6e76657274656420746f20616e20616464726573732057697065644f7574000904dc436c6f73696e67207468652065706f6368206e6f7720776f756c642077697065206f757420746865206a756e696f72207472616e6368653c496e76616c6964536f6c7574696f6e000a04a05468652070726f766964656420736f6c7574696f6e206973206e6f7420612076616c6964206f6e65544e6f74496e5375626d697373696f6e506572696f64000b04f4417474656d7074656420746f20736f6c7665206120706f6f6c207768696368206973206e6f7420696e2061207375626d697373696f6e20706572696f6450496e73756666696369656e7443757272656e6379000c04d4496e73756666696369656e742063757272656e637920617661696c61626c6520666f722064657369726564206f7065726174696f6e485269736b42756666657256696f6c61746564000d04745269736b204275666665722076616c69646174696f6e206661696c6564144e6f4e4156000e0464546865204e415620776173206e6f7420617661696c61626c654c45706f63684e6f744578656375746564596574000f04c445706f6368206e6565647320746f206265206578656375746564206265666f726520796f752063616e20636f6c6c6563746443616e6e6f744164644f7252656d6f76655472616e63686573001004ac416464696e6720262072656d6f76696e67207472616e63686573206973206e6f7420737570706f727465645c496e76616c69645472616e63686553656e696f7269747900110c7c496e76616c6964207472616e6368652073656e696f726974792076616c7565b82a2073656e696f72697479204d55535420626520736d616c6c6572206e756d626572206f66207472616e63686573802a204d55535420626520696e6372656173696e6720706572207472616e63686550496e76616c69645472616e636865557064617465001208c05072652d726571756972656d656e747320666f722061205472616e63686555706461746520617265206e6f74206d6574fc666f72206578616d706c653a205472616e636865206368616e67656420627574206e6f7420697473206d65746164617461206f7220766963652076657273616c4d65746164617461466f7243757272656e63794e6f74466f756e64001304a04e6f206d6574616461746120666f722074686520676976656e2063757272656e637920666f756e645c5472616e636865546f6b656e4e616d65546f6f4c6f6e67001404d454686520676976656e207472616e63686520746f6b656e206e616d65206578636565647320746865206c656e677468206c696d6974605472616e63686553796d626f6c4e616d65546f6f4c6f6e67001504d854686520676976656e207472616e6368652073796d626f6c206e616d65206578636565647320746865206c656e677468206c696d69747c4661696c6564546f52656769737465725472616e6368654d65746164617461001604d45265676973746572696e6720746865206d6574616461746120666f722061207472616e63686520746872657720616e206572726f72744661696c6564546f5570646174655472616e6368654d65746164617461001704c85570646174696e6720746865206d6574616461746120666f722061207472616e63686520746872657720616e206572726f7240496e76616c69645472616e6368654964001804e8496e76616c6964205472616e6368654964207061737365642e20496e206d6f7374206361736573206f75742d6f662d626f756e6420696e6465783c546f6f4d616e795472616e63686573001904e454686520726571756573746564207472616e63686520636f6e66696775726174696f6e2068617320746f6f206d616e79207472616e63686573504e6f744e6577426573745375626d697373696f6e001a04a05375626d697474656420736f6c7574696f6e206973206e6f7420616e20696d70726f76656d656e744c4e6f536f6c7574696f6e417661696c61626c65001b04bc4e6f20736f6c7574696f6e2068617320796574206265656e2070726f766964656420666f72207468652065706f636868506f6f6c506172616d65746572426f756e6456696f6c61746564001c04ec4f6e65206f66207468652072756e74696d652d6c6576656c20706f6f6c20706172616d6574657220626f756e6473207761732076696f6c61746564444e6f5363686564756c6564557064617465001d048c4e6f2075706461746520666f722074686520706f6f6c206973207363686564756c6564645363686564756c656454696d654861734e6f74506173736564001e04bc5363686564756c65642074696d6520666f7220746869732075706461746520697320696e20746865206675747572657c557064617465507265726571756573697465734e6f7446756c66696c6c6564001f04785570646174652063616e6e6f742062652066756c66696c6c6564207965743c496e76616c696443757272656e6379002004e84120757365722068617320747269656420746f20637265617465206120706f6f6c207769746820616e20696e76616c69642063757272656e6379384368616e67654e6f74466f756e64002104f45468652065787465726e616c206368616e676520776173206e6f7420666f756e6420666f722074686520737065636966696564204368616e676549642e384368616e67654e6f74526561647900220409015468652065787465726e616c206368616e67652077617320666f756e6420666f72206973206e6f742072656164792079657420746f2062652072656c65617365642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ecd0c103070616c6c65745f6c6f616e7320656e746974696573146c6f616e732c437265617465644c6f616e0404540000080110696e666f7903012c4c6f616e496e666f3c543e000120626f72726f776572000130543a3a4163636f756e7449640000d10c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d50c045300000400f10c01185665633c543e0000d50c000004082cd90c00d90c103070616c6c65745f6c6f616e7320656e746974696573146c6f616e73284163746976654c6f616e04045400002801207363686564756c657d03014452657061796d656e745363686564756c65000128636f6c6c61746572616c8d03012841737365744f663c543e0001307265737472696374696f6e73cd0301404c6f616e5265737472696374696f6e73000120626f72726f776572000130543a3a4163636f756e74496400015077726974655f6f66665f70657263656e746167659503011c543a3a526174650001406f726967696e6174696f6e5f646174652c011c5365636f6e647300011c70726963696e67dd0c014041637469766550726963696e673c543e000138746f74616c5f626f72726f776564180128543a3a42616c616e6365000130746f74616c5f726570616964ed0c0160526570616964416d6f756e743c543a3a42616c616e63653e00017072657061796d656e74735f6f6e5f7363686564756c655f756e74696c2c011c5365636f6e64730000dd0c103070616c6c65745f6c6f616e7320656e7469746965731c70726963696e673441637469766550726963696e6704045400010820496e7465726e616c0400e10c0188696e7465726e616c3a3a496e7465726e616c41637469766550726963696e673c543e0000002045787465726e616c0400e90c018865787465726e616c3a3a45787465726e616c41637469766550726963696e673c543e00010000e10c143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e6720696e7465726e616c54496e7465726e616c41637469766550726963696e670404540000080110696e666fa1030148496e7465726e616c50726963696e673c543e000120696e746572657374e50c0154416374697665496e746572657374526174653c543e0000e50c103070616c6c65745f6c6f616e7320656e74697469657320696e74657265737448416374697665496e7465726573745261746504045400000c0134696e7465726573745f7261746591030154496e746572657374526174653c543a3a526174653e0001386e6f726d616c697a65645f616363180128543a3a42616c616e636500011c70656e616c74799503011c543a3a526174650000e90c143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e672065787465726e616c5445787465726e616c41637469766550726963696e670404540000140110696e666fb103014845787465726e616c50726963696e673c543e0001506f75747374616e64696e675f7175616e74697479c903012c543a3a5175616e74697479000120696e746572657374e50c0154416374697665496e746572657374526174653c543e00015c6c61746573745f736574746c656d656e745f7072696365180128543a3a42616c616e6365000160736574746c656d656e745f70726963655f757064617465642c011c5365636f6e64730000ed0c0c3070616c6c65745f6c6f616e7314747970657330526570616964416d6f756e74041c42616c616e63650118000c01247072696e636970616c18011c42616c616e6365000120696e74657265737418011c42616c616e636500012c756e7363686564756c656418011c42616c616e63650000f10c000002d50c00f50c103070616c6c65745f6c6f616e7320656e746974696573146c6f616e7328436c6f7365644c6f616e0404540000100124636c6f7365645f6174100144426c6f636b4e756d626572466f723c543e000110696e666f7903012c4c6f616e496e666f3c543e000138746f74616c5f626f72726f776564180128543a3a42616c616e6365000130746f74616c5f726570616964ed0c0160526570616964416d6f756e743c543a3a42616c616e63653e0000f90c0c246366675f747970657324706f7274666f6c696f48506f7274666f6c696f56616c756174696f6e0c1c42616c616e6365011818456c656d4964012c204d6178456c656d7300000c011476616c756518011c42616c616e63650001306c6173745f757064617465642c011c5365636f6e647300011876616c756573fd0c019c426f756e6465645665633c28456c656d49642c2042616c616e6365292c204d6178456c656d733e0000fd0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401010d045300000400050d01185665633c543e0000010d000004082c1800050d000002010d00090d0c3070616c6c65745f6c6f616e731870616c6c6574144572726f7204045400015030506f6f6c4e6f74466f756e6400000474456d697473207768656e20706f6f6c20646f65736e27742065786973745c4c6f616e4e6f744163746976654f724e6f74466f756e64000104d4456d697473207768656e206c6f616e20646f65736e2774206578697374206f722069742773206e6f7420616374697665207965742e4c4e6f56616c696457726974654f666652756c650002080d01456d697473207768656e20612077726974652d6f66662072756c65206973206e6f7420666f756e6420696e206120706f6c69637920666f72206120737065636966696311016c6f616e2e2049742068617070656e73207768656e207468657265206973206e6f20706f6c696379206f7220746865206c6f616e206973206e6f74206f7665726475652e404e46544f776e65724e6f74466f756e6400030494456d697473207768656e20746865204e4654206f776e6572206973206e6f7420666f756e642c4e6f744e46544f776e6572000404d4456d697473207768656e204e4654206f776e657220646f65736e2774206d6174636820746865206578706563746564206f776e65723c4e6f744c6f616e426f72726f7765720005040101456d697473207768656e20746865206170706c6963616e74206163636f756e74206973206e6f742074686520626f72726f776572206f6620746865206c6f616e544d61784163746976654c6f616e7352656163686564000604d4456d697473207768656e20746865206d6178206e756d626572206f6620616374697665206c6f616e73207761732072656163686564384e6f4c6f616e4368616e67654964000704b8546865204368616e676520496420646f6573206e6f742062656c6f6e6720746f2061206c6f616e206368616e676544556e72656c617465644368616e676549640008040d01546865204368616e676520496420657869737473206275742069742773206e6f742072656c6561746564207769746820746865206578706563746564206368616e67655c4d69736d61746368656450726963696e674d6574686f64000904f8456d697473207768656e207468652070726963696e67206d6574686f64206973206e6f7420636f6d70617469626c6520776974682074686520696e7075747c536574746c656d656e74507269636545786365656473566172696174696f6e000a040101456d697473207768656e20736574746c656d656e7420707269636520697320657863656564732074686520636f6e6669677572656420766172696174696f6e2e3c4372656174654c6f616e4572726f7204000d0d013c4372656174654c6f616e4572726f72000b040d01456d697473207768656e20746865206c6f616e20697320696e636f72726563746c792073706563696669656420616e642063616e206e6f7420626520637265617465643c426f72726f774c6f616e4572726f720400110d013c426f72726f774c6f616e4572726f72000c04b0456d697473207768656e20746865206c6f616e2063616e206e6f7420626520626f72726f7765642066726f6d3852657061794c6f616e4572726f720400150d013852657061794c6f616e4572726f72000d04a8456d697473207768656e20746865206c6f616e2063616e206e6f74206265207265706169642066726f6d3c5772697474656e4f66664572726f720400190d013c5772697474656e4f66664572726f72000e04a8456d697473207768656e20746865206c6f616e2063616e206e6f74206265207772697474656e206f666638436c6f73654c6f616e4572726f7204001d0d0138436c6f73654c6f616e4572726f72000f0494456d697473207768656e20746865206c6f616e2063616e206e6f7420626520636c6f736564344d75746174696f6e4572726f720400210d01344d75746174696f6e4572726f7200100498456d697473207768656e20746865206c6f616e2063616e206e6f74206265206d757461746564585472616e7366657244656274546f53616d654c6f616e001104b8456d697473207768656e2064656274206973207472616e73666572656420746f207468652073616d65206c6f616e705472616e7366657244656274416d6f756e744d69736d6174636865640012040901456d697473207768656e2064656274206973207472616e736665726564207769746820646966666572656e74207265706169642f626f72726f7720616d6f756e7473904d61747572697479446174654e6565646564466f7256616c756174696f6e4d6574686f6400130cfc456d697473207768656e20746865206c6f616e20686173206e6f206d617475726974792064617465207365742c20627574207468652076616c756174696f6ee06d6574686f64206e65656473206f6e652e204d616b696e672076616c756174696f6e20616e64206d617475726974792073657474696e677334696e636f6d70617469626c652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d0d0c3070616c6c65745f6c6f616e731474797065733c4372656174654c6f616e4572726f7200011058496e76616c696456616c756174696f6e4d6574686f6400000060496e76616c696452657061796d656e745363686564756c6500010060496e76616c6964426f72726f775265737472696374696f6e0002005c496e76616c696452657061795265737472696374696f6e00030000110d0c3070616c6c65745f6c6f616e731474797065733c426f72726f774c6f616e4572726f72000110444d6178416d6f756e7445786365656465640000002c5265737472696374696f6e000100484d6174757269747944617465506173736564000200385061796d656e744f76657264756500030000150d0c3070616c6c65745f6c6f616e731474797065733852657061794c6f616e4572726f720001082c5265737472696374696f6e000000684d61785072696e636970616c416d6f756e74457863656564656400010000190d0c3070616c6c65745f6c6f616e731474797065733c5772697474656e4f66664572726f72000104384c6573735468616e506f6c696379000000001d0d0c3070616c6c65745f6c6f616e7314747970657338436c6f73654c6f616e4572726f72000104384e6f7446756c6c7952657061696400000000210d0c3070616c6c65745f6c6f616e73147479706573344d75746174696f6e4572726f7200010c68446973636f756e74656443617368466c6f7745787065637465640000005c496e7465726e616c50726963696e6745787065637465640001005c4d61747572697479457874656e646564546f6f4d75636800020000250d0000040800210400290d0c246366675f74797065732c7065726d697373696f6e733c5065726d697373696f6e526f6c6573100c4e6f7701a8204d696e44656c6179012d0d245472616e6368654964019d022c4d61785472616e6368657301990400100128706f6f6c5f61646d696e310d0138506f6f6c41646d696e526f6c657300013863757272656e63795f61646d696e350d014843757272656e637941646d696e526f6c65730001647065726d697373696f6e65645f61737365745f686f6c646572390d01a85065726d697373696f6e656443757272656e6379486f6c646572733c4e6f772c204d696e44656c61793e0001407472616e6368655f696e766573746f72450d01dc5472616e636865496e766573746f72733c4e6f772c204d696e44656c61792c205472616e63686549642c204d61785472616e636865733e00002d0d084c646576656c6f706d656e745f72756e74696d65204d696e44656c617900000000310d0c246366675f74797065732c7065726d697373696f6e7338506f6f6c41646d696e526f6c657300000401106269747310010c7533320000350d0c246366675f74797065732c7065726d697373696f6e734843757272656e637941646d696e526f6c657300000401106269747310010c7533320000390d0c246366675f74797065732c7065726d697373696f6e736c5065726d697373696f6e656443757272656e6379486f6c64657273080c4e6f7701a8204d696e44656c6179012d0d00040110696e666f3d0d01984f7074696f6e3c5065726d697373696f6e656443757272656e6379486f6c646572496e666f3e00003d0d04184f7074696f6e04045401410d0108104e6f6e6500000010536f6d650400410d0000010000410d0c246366675f74797065732c7065726d697373696f6e73785065726d697373696f6e656443757272656e6379486f6c646572496e666f00000401447065726d697373696f6e65645f74696c6c2c011c5365636f6e64730000450d0c246366675f74797065732c7065726d697373696f6e73405472616e636865496e766573746f7273100c4e6f7701a8204d696e44656c6179012d0d245472616e6368654964019d022c4d61785472616e6368657301990400040110696e666f490d01dc426f756e6465645665633c5472616e636865496e766573746f72496e666f3c5472616e63686549643e2c204d61785472616e636865733e0000490d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d0d045300000400510d01185665633c543e00004d0d0c246366675f74797065732c7065726d697373696f6e734c5472616e636865496e766573746f72496e666f04245472616e6368654964019d02000c01287472616e6368655f69649d0201245472616e63686549640001447065726d697373696f6e65645f74696c6c2c011c5365636f6e647300012469735f66726f7a656e780110626f6f6c0000510d0000024d0d00550d0c4870616c6c65745f7065726d697373696f6e731870616c6c6574144572726f7204045400011840526f6c65416c7265616479476976656e00000030526f6c654e6f74476976656e0001001c4e6f526f6c6573000200204e6f456469746f720003003c57726f6e67506172616d657465727300040030546f6f4d616e79526f6c6573000500048054686520604572726f726020656e756d206f6620746869732070616c6c65742e590d0c6470616c6c65745f636f6c6c61746f725f616c6c6f776c6973741870616c6c6574144572726f7204045400010c58436f6c6c61746f72416c7265616479416c6c6f776564000004d454686520636f6c6c61746f722068617320616c7265616479206265656e20616464656420746f2074686520616c6c6f776c6973742e40436f6c6c61746f724e6f745265616479000108e454686520636f6c6c61746f72206973206e6f742072656164792079657420666f6c6c6f77696e6720746f2074686520756e6465726c79696e676860543a3a56616c696461746f72526567697374726174696f6e6048436f6c6c61746f724e6f7450726573656e74000204cc5468652070726f766964656420636f6c6c61746f7220776173206e6f7420666f756e6420696e207468652073746f726167652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d0d0c6070616c6c65745f726573747269637465645f746f6b656e731870616c6c6574144572726f720404540001044c507265436f6e646974696f6e734e6f744d6574000000048054686520604572726f726020656e756d206f6620746869732070616c6c65742e610d0c3470616c6c65745f6272696467651870616c6c6574144572726f720404540001043c496e76616c69645472616e7366657200000440496e76616c6964207472616e73666572048054686520604572726f726020656e756d206f6620746869732070616c6c65742e650d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401690d0453000004006d0d01185665633c543e0000690d085c70616c6c65745f696e7465726573745f6163637275616c2c5261746544657461696c73041052617465019503000c0154696e7465726573745f726174655f7065725f7365639503011052617465000140616363756d756c617465645f72617465950301105261746500013c7265666572656e63655f636f756e7410010c75333200006d0d000002690d00710d0c5c70616c6c65745f696e7465726573745f6163637275616c1870616c6c6574144572726f72040454000114544465627443616c63756c6174696f6e4661696c656400000498456d697473207768656e2074686520646562742063616c63756c6174696f6e206661696c6564504465627441646a7573746d656e744661696c656400010494456d697473207768656e2074686520646562742061646a7573746d656e74206661696c6564284e6f5375636852617465000204a4456d697473207768656e2074686520696e746572657374207261746520776173206e6f7420757365642c496e76616c696452617465000304bc456d697473207768656e20612072617465206973206e6f742077697468696e207468652076616c69642072616e676530546f6f4d616e795261746573000404f0456d697473207768656e20616464696e672061206e6577207261746520776f756c6420657863656564207468652073746f72616765206c696d697473048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750d0000040800790d00790d00000408303d04007d0d083c70616c6c65745f6b657973746f72650c4b6579082c426c6f636b4e756d62657201101c42616c616e636501180010011c707572706f73653d0401284b6579507572706f73650001206b65795f747970654104011c4b6579547970650001287265766f6b65645f61744502014c4f7074696f6e3c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650000810d00000408003d0400850d0c3c70616c6c65745f6b657973746f72651870616c6c6574144572726f72040454000114184e6f4b657973000004584e6f206b65797320776572652070726f76696465642e2c546f6f4d616e794b657973000104a04d6f7265207468616e20543a3a4d61784b657973206b65797320776572652070726f76696465642e404b6579416c72656164794578697374730002045c546865206b657920616c7265616479206578697374732e2c4b65794e6f74466f756e6400030484546865206b657920776173206e6f7420666f756e6420696e2073746f726167652e444b6579416c72656164795265766f6b656400040470546865206b65792077617320616c7265616479207265766f6b65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e890d00000408004904008d0d0c246366675f7479706573186f7264657273144f72646572081c42616c616e636501181c4f726465724964012c00080118616d6f756e7418011c42616c616e63650001307375626d69747465645f61742c011c4f7264657249640000910d0000040849042c00950d0c4870616c6c65745f696e766573746d656e74731870616c6c6574144572726f720404540001283c4f726465724e6f74436c6561726564000008fc546865206f7264657220686173206e6f74206265656e206d61726b656420617320636c65617265642e20497427732065697468657220616374697665206f7234696e2070726f63657373696e67404f726465725374696c6c41637469766500010ce4546865206f726465722061207573657220747269656420746f20636f6c6c65637420666f72206973207374696c6c2061637469766520616e64e06e6565647320746f2062652070757420696e2070726f63657373696e6720616e64207468656e20626520636c6561726564206265666f7265546120636f6c6c65637420697320706f737369626c6544556e6b6e6f776e496e766573746d656e74000204d0496e766573746d656e744d616e6167657220646f6573206e6f74206b6e6f772074686520676976656e20696e766573746d656e743c436f6c6c6563745265717569726564000308bc54686520757365722068617320746f206d616e7920756e636f6c6c6563746564206f72646572732e204265666f7265d87375626d697474696e67206e6577206f72646572732c206120636f6c6c656374206f662074686f73652069732072657175697265642e505a65726f507269636564496e766573746d656e74000408e0412066756c66696c6c6d656e742068617070656e6564207769746820616e20696e766573746d656e74207072696365206f66207a65726f2e6c546865206f726465722077696c6c20626520646973636172646564504f726465724e6f74496e50726f63657373696e67000504d84f72646572206973207374696c6c2061637469766520616e642063616e206e6f742062652070726f6365737365642066757274686572444f72646572496e50726f63657373696e67000608d04f72646572206973206e6f742079657420636c656172656420616e64206d7573742062652070726f6365737365642066697273749c6265666f72652072657175657374696e67206e6577206f726465727320697320616c6c6f776564284e6f4e65774f726465720007048c557064617465206f66206f7264657220776173206e6f742061206e6577206f726465724c4e6f416374697665496e766573744f72646572000804f855736572206861732063757272656e746c79206e6f20696e76657374206f72646572732061637469766520616e642063616e206e6f7420636f6c6c6563744c4e6f41637469766552656465656d4f72646572000904f855736572206861732063757272656e746c79206e6f2072656465656d206f72646572732061637469766520616e642063616e206e6f7420636f6c6c656374048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990d0000040845029d0d009d0d103870616c6c65745f72657761726473246d656368616e69736d0c6761702043757272656e63790404540109050008012c746f74616c5f7374616b65180128543a3a42616c616e636500012c7270745f6368616e676573a10d01b0426f756e6465645665633c543a3a526174652c20543a3a4d617843757272656e63794d6f76656d656e74733e0000a10d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a50d045300000400ad0d01185665633c543e0000a50d0c3473705f61726974686d657469632c66697865645f706f696e742446697865644931323800000400a90d0110693132380000a90d0000050d00ad0d000002a50d00b10d103870616c6c65745f72657761726473246d656368616e69736d0c6761701447726f75700404540109050010012c746f74616c5f7374616b65180128543a3a42616c616e636500014c70656e64696e675f746f74616c5f7374616b65180128543a3a42616c616e636500010c727074a50d011c543a3a5261746500013c646973747269627574696f6e5f6964100144543a3a446973747269627574696f6e49640000b50d0000040800b90300b90d103870616c6c65745f72657761726473246d656368616e69736d0c6761701c4163636f756e74040454010905001401147374616b65180128543a3a42616c616e63650001307265776172645f74616c6c79a90d012c543a3a4942616c616e636500013470656e64696e675f7374616b65180128543a3a42616c616e636500013c646973747269627574696f6e5f6964100144543a3a446973747269627574696f6e49640001586c6173745f63757272656e63795f6d6f76656d656e74b4010c7531360000bd0d0c3870616c6c65745f726577617264731870616c6c6574144572726f7208045400044900010c5043757272656e6379576974686f757447726f75700000004c43757272656e6379496e53616d6547726f75700001006c43757272656e63794d61784d6f76656d656e747352656163686564000200048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec10d086070616c6c65745f6c69717569646974795f726577617264732445706f63684461746104045400000c01206475726174696f6e2c012c4d6f6d656e744f663c543e000118726577617264180128543a3a42616c616e636500011c77656967687473c50d01d0426f756e64656442547265654d61703c543a3a47726f757049642c20543a3a5765696768742c20543a3a4d617847726f7570733e0000c50d0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01100456012c0453000004003108013842547265654d61703c4b2c20563e0000c90d0c6070616c6c65745f6c69717569646974795f726577617264731870616c6c6574144572726f72040454000104644d61784368616e67657350657245706f63685265616368656400000811014c696d6974206f66206d61782063616c6c7320776974682073616d6520696420746f205b6050616c6c65743a3a7365745f67726f75705f7765696768742829605d206f72a45b6050616c6c65743a3a7365745f63757272656e63795f67726f75702829605d20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ecd0d0c5870616c6c65745f6c69717569646974795f706f6f6c731870616c6c6574144572726f720404540001543441737365744e6f74466f756e6400000c11014661696c656420746f206d61702074686520617373657420746f2074686520636f72726573706f6e64696e67204c6971756964697479506f6f6c73272047656e6572616cc8496e64657820726570726573656e746174696f6e20616e6420746875732063616e6e6f74206265207573656420617320616e50696e766573746d656e742063757272656e63792e7041737365744d657461646174614e6f74506f6f6c43757272656e6379000108f4546865206d65746164617461206f662074686520676976656e20617373657420646f6573206e6f74206465636c617265206974206173206120706f6f6cf863757272656e637920616e6420746875732069742063616e6e6f74206265207573656420617320616e20696e766573746d656e742063757272656e63792e8841737365744e6f744c6971756964697479506f6f6c735472616e7366657261626c650002080d01546865206d65746164617461206f662074686520676976656e20617373657420646f6573206e6f74206465636c617265206974206173207472616e7366657261626c6550766961204c6971756964697479506f6f6c73272e8841737365744e6f744c6971756964697479506f6f6c7357726170706564546f6b656e000308d4546865206173736574206973206e6f7420612061207772617070656420746f6b656e20616e6420746875732063616e6e6f74206265807472616e7366657272656420766961206c697175696469747920706f6f6c732e30506f6f6c4e6f74466f756e64000404684120706f6f6c20636f756c64206e6f7420626520666f756e642e3c5472616e6368654e6f74466f756e640005047441207472616e63686520636f756c64206e6f7420626520666f756e642e5c5472616e6368654d657461646174614e6f74466f756e64000604bc436f756c64206e6f742066696e6420746865206d65746164617461206f662061207472616e63686520746f6b656e2e4c4d697373696e675472616e636865507269636500070c984661696c656420746f2066657463682061207472616e63686520746f6b656e2070726963652ed4546869732063616e206f6363757220696620605472616e6368654e6f74466f756e6460206f72206966206566666563746976656c79c074686520707269636520666f722074686973207472616e63686520686173206e6f7420796574206265656e207365742e54496e76616c69645472616e73666572416d6f756e74000804845472616e7366657220616d6f756e74206d757374206265206e6f6e2d7a65726f2e3442616c616e6365546f6f4c6f77000904cc53656e646572732062616c616e636520697320696e73756666696369656e7420666f72207472616e7366657220616d6f756e7450556e617574686f72697a65645472616e73666572000a04e841207472616e7366657220746f2061206e6f6e2d77686974656c69737465642064657374696e6174696f6e2077617320617474656d707465642e58496e76616c6964496e636f6d696e674d657373616765000b04944661696c656420746f206465636f646520616e20696e636f6d696e67206d6573736167652e34496e76616c6964446f6d61696e000c04885468652064657374696e6174696f6e20646f6d61696e20697320696e76616c69642e78496e76616c69645472616e636865496e766573746f7256616c6964697479000d04705468652076616c696469747920697320696e2074686520706173742e5c496e76616c69645472616e7366657243757272656e6379000e0405015468652063757272656e6379206973206e6f7420616c6c6f77656420746f206265207472616e7366657272656420766961204c6971756964697479506f6f6c732e7c496e766573746f72446f6d61696e416464726573734e6f74414d656d626572000f080501546865206163636f756e7420646572697665642066726f6d20746865205b446f6d61696e5d20616e64205b446f6d61696e416464726573735d20686173206e6f74986265656e2077686974656c69737465642061732061205472616e636865496e766573746f722e6c496e766573746f72446f6d61696e4164647265737346726f7a656e0010080d01546865206163636f756e7420646572697665642066726f6d20746865205b446f6d61696e5d20616e64205b446f6d61696e416464726573735d2069732066726f7a656eb4616e642063616e6e6f74207472616e73666572207472616e63686520746f6b656e73207468657265666f72652e78496e766573746f72446f6d61696e416464726573734e6f7446726f7a656e0011080101546865206163636f756e7420646572697665642066726f6d20746865205b446f6d61696e5d20616e64205b446f6d61696e416464726573735d206973206e6f74a066726f7a656e20616e642063616e6e6f7420626520756e66726f7a656e207468657265666f72652e304e6f74506f6f6c41646d696e001204c44f6e6c792074686520506f6f6c41646d696e2063616e2065786563757465206120676976656e206f7065726174696f6e2e64446f6d61696e486f6f6b416464726573734e6f74466f756e64001304ac54686520646f6d61696e20686f6f6b206164647265737320636f756c64206e6f7420626520666f756e642e5c556e737570706f7274656442617463684d6573736167650014080101546869732070616c6c657420646f6573206e6f742065787065637420746f20726563656976652064697265636c74792061206261746368206d6573736167652cfc696e73746561642069742065787065637473207365766572616c2063616c6c7320746f206974207769746820646966666572656e74206d657373616765732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed10d0c246366675f747970657314706f6f6c7330506f6f6c4d6574616461746104204d65746153697a6501d50d000401206d6574616461746175080160426f756e6465645665633c75382c204d65746153697a653e0000d50d084c646576656c6f706d656e745f72756e74696d653c4d617853697a654d6574616461746100000000d90d0c246366675f747970657314706f6f6c7358506f6f6c526567697374726174696f6e537461747573000108285265676973746572656400000030556e7265676973746572656400010000dd0d0c5070616c6c65745f706f6f6c5f72656769737472791870616c6c6574144572726f720404540001182c4261644d657461646174610000045c496e76616c6964206d657461646174612070617373656454506f6f6c416c726561647952656769737465726564000104ec4120506f6f6c20776974682074686520676976656e2049442077617320616c7265616479207265676973746572656420696e2074686520706173746c4d65746164617461466f7243757272656e63794e6f74466f756e64000204a04e6f206d6574616461746120666f722074686520676976656e2063757272656e637920666f756e64484e6f53756368506f6f6c4d65746164617461000304984e6f204d6574616461746120666f756e6420666f722074686520676976656e20506f6f6c49645c5472616e636865546f6b656e4e616d65546f6f4c6f6e67000404d454686520676976656e207472616e63686520746f6b656e206e616d65206578636565647320746865206c656e677468206c696d6974605472616e63686553796d626f6c4e616d65546f6f4c6f6e67000504d854686520676976656e207472616e6368652073796d626f6c206e616d65206578636565647320746865206c656e677468206c696d6974048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee10d000004084502e50d00e50d103870616c6c65745f72657761726473246d656368616e69736d10626173652043757272656e63790c1c42616c616e63650118105261746501a50d304d61784d6f76656d656e747301e90d0008012c746f74616c5f7374616b6518011c42616c616e636500012c7270745f6368616e676573ed0d0178426f756e6465645665633c526174652c204d61784d6f76656d656e74733e0000e90d0c3872756e74696d655f636f6d6d6f6e1c726577617264735853696e676c6543757272656e63794d6f76656d656e7400000000ed0d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a50d045300000400ad0d01185665633c543e0000f10d103870616c6c65745f72657761726473246d656368616e69736d10626173651447726f7570081c42616c616e63650118105261746501a50d0008012c746f74616c5f7374616b6518011c42616c616e636500010c727074a50d0110526174650000f50d103870616c6c65745f72657761726473246d656368616e69736d10626173651c4163636f756e74081c42616c616e63650118204942616c616e636501a90d000c01147374616b6518011c42616c616e63650001307265776172645f74616c6c79a90d01204942616c616e63650001586c6173745f63757272656e63795f6d6f76656d656e74b4010c7531360000f90d0c3870616c6c65745f726577617264731870616c6c6574144572726f7208045400044900010c5043757272656e6379576974686f757447726f75700000004c43757272656e6379496e53616d6547726f75700001006c43757272656e63794d61784d6f76656d656e747352656163686564000200048054686520604572726f726020656e756d206f6620746869732070616c6c65742efd0d085070616c6c65745f626c6f636b5f726577617264732c53657373696f6e44617461040454000010013c636f6c6c61746f725f726577617264180128543a3a42616c616e6365000138636f6c6c61746f725f636f756e7410010c75333200015c74726561737572795f696e666c6174696f6e5f726174659503011c543a3a5261746500012c6c6173745f7570646174652c011c5365636f6e64730000010e0c5070616c6c65745f626c6f636b5f726577617264731870616c6c6574144572726f72040454000100048054686520604572726f726020656e756d206f6620746869732070616c6c65742e050e0000040800c50400090e0c6470616c6c65745f7472616e736665725f616c6c6f776c6973741870616c6c657444416c6c6f77616e63654d65746164617461042c426c6f636b4e756d6265720110000c013c616c6c6f77616e63655f636f756e742c010c75363400013463757272656e745f64656c61794502014c4f7074696f6e3c426c6f636b4e756d6265723e0001546f6e63655f6d6f6469666961626c655f61667465724502014c4f7074696f6e3c426c6f636b4e756d6265723e00000d0e0000040c00c504c90400110e0c6470616c6c65745f7472616e736665725f616c6c6f776c6973741870616c6c657440416c6c6f77616e636544657461696c73042c426c6f636b4e756d626572011000080128616c6c6f7765645f617410012c426c6f636b4e756d626572000128626c6f636b65645f617410012c426c6f636b4e756d6265720000150e0c6470616c6c65745f7472616e736665725f616c6c6f776c6973741870616c6c6574144572726f720404540001203c4e6f416c6c6f77616e636573536574000008ec416e206f7065726174696f6e20657870656374696e67206f6e65206f72206d6f726520616c6c6f77616e63657320666f7220612073656e64696e67a04163636f756e742f43757272656e6379207365742c207768657265206e6f6e652070726573656e74484475706c6963617465416c6c6f77616e6365000108ec417474656d7074656420746f2063726561746520616c6c6f77616e636520666f72206578697374696e672053656e64696e67204163636f756e742c8843757272656e63792c20616e6420526563656976657220636f6d62696e6174696f6e4c4e6f4d61746368696e67416c6c6f77616e6365000204ac4e6f206d61746368696e6720616c6c6f77616e636520666f72204c6f636174696f6e2f43757272656e63793c4e6f4d61746368696e6744656c61790003080d014e6f206d61746368696e672064656c617920666f72207468652073656e64696e67206163636f756e7420616e642063757272656e637920636f6d62696e6174696f6e2e8843616e6e6f742064656c6574652061206e6f6e2d6578697374616e7420656e747279384475706c696361746544656c61790004045044656c617920616c7265616479206578697374734444656c6179556e6d6f6469666961626c65000508090144656c617920686173206e6f74206265656e2073657420746f206d6f6469666965642c206f722064656c6179206174207768696368206d6f64696669636174696f6e88686173206265656e2073657420686173206e6f74206265656e20726561636865642e58416c6c6f77616e63654861734e6f74457870697265640006048c417474656d7074656420746f20636c6561722061637469766520616c6c6f77616e6365644e6f416c6c6f77616e6365466f7244657374696e6174696f6e000708e45472616e736665722066726f6d2073656e64696e67206163636f756e7420616e642063757272656e6379206e6f7420616c6c6f77656420746f2c64657374696e6174696f6e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e190e143870616c6c65745f72657761726473246d656368616e69736d0c6761701870616c6c6574144572726f72040454000104705472794d6f76656d656e74416674657250656e64696e675374617465000000048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d0e000004085504d50100210e0000040800550400250e0c7870616c6c65745f6c69717569646974795f706f6f6c735f676174657761791870616c6c6574144572726f7204045400012440526f75746572496e69744661696c656400000474526f7574657220696e697469616c697a6174696f6e206661696c65642e50496e76616c69644d6573736167654f726967696e000104d4546865206f726967696e206f6620746865206d65737361676520746f2062652070726f63657373656420697320696e76616c69642e48446f6d61696e4e6f74537570706f727465640002047054686520646f6d61696e206973206e6f7420737570706f727465642e50496e7374616e6365416c72656164794164646564000304a4496e7374616e63652077617320616c726561647920616464656420746f2074686520646f6d61696e2e484d6178446f6d61696e496e7374616e636573000404d44d6178696d756d206e756d626572206f6620696e7374616e63657320666f72206120646f6d61696e2077617320726561636865642e3c556e6b6e6f776e496e7374616e636500050444556e6b6e6f776e20696e7374616e63652e38526f757465724e6f74466f756e6400060444526f75746572206e6f7420666f756e642e704d6573736167655061636b696e67416c7265616479537461727465640007080d01456d6974746564207768656e20796f752063616c6c206073746172745f62617463685f6d657373616765732829602062757420746861742077617320616c72656164790d0163616c6c65642e20596f752073686f756c642066696e616c697a6520746865206d65737361676520776974682060656e645f62617463685f6d65737361676573282960604d6573736167655061636b696e674e6f74537461727465640008080901456d6974746564207768656e20796f752063616e2060656e645f62617463685f6d6573736167652829602062757420746865207061636b696e672070726f63657373ac776173206e6f742073746172746564206279206073746172745f62617463685f6d6573736167652829602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e290e0c4470616c6c65745f6f726465725f626f6f6b1870616c6c6574144f7264657204045400002001206f726465725f69642c013c543a3a4f7264657249644e6f6e636500013c706c6163696e675f6163636f756e74000130543a3a4163636f756e74496400012c63757272656e63795f696eb9030134543a3a43757272656e6379496400013063757272656e63795f6f7574b9030134543a3a43757272656e63794964000124616d6f756e745f696e180130543a3a42616c616e6365496e000128616d6f756e745f6f7574180134543a3a42616c616e63654f7574000148616d6f756e745f6f75745f696e697469616c180134543a3a42616c616e63654f7574000114726174696f310501504f72646572526174696f3c543a3a526174696f3e00002d0e0c4470616c6c65745f6f726465725f626f6f6b1870616c6c6574144572726f720404540001203c53616d6543757272656e63794964730000080d014572726f72207768656e206f7264657220697320706c6163656420617474656d7074696e6720746f2065786368616e67652063757272656e63696573206f66207468652873616d6520747970652e6442656c6f774d696e46756c66696c6c6d656e74416d6f756e74000104f04572726f72207768656e20616e206163636f756e742063616e6e6f742072657365727665206f72207472616e736665722074686520616d6f756e742e44496e76616c696443757272656e6379496400020801014572726f72207768656e20616e206f7264657220697320706c61636564207769746820612063757272656e63792074686174206973206e6f7420696e20746865406041737365745265676973747279602e344f726465724e6f74466f756e6400030809014572726f72207768656e20616e206f7065726174696f6e20697320617474656d70746564206f6e20616e206f726465722069642074686174206973206e6f7420696e2073746f726167652e30556e617574686f7269736564000408f44572726f72207768656e2061207573657220617474656d70747320616e20616374696f6e206f6e20616e206f72646572207468657920617265206e6f740501617574686f726973656420746f20706572666f726d2c20737563682061732063616e63656c6c696e6720616e6f74686572206163636f756e7473206f726465722e5446756c66696c6c416d6f756e74546f6f4c61726765000508f84572726f72207768656e207468652070726f766964656420616d6f756e7420746f2066756c66696c6c20697320746f6f206c6172676520666f7220746865186f726465722e504d61726b65744665656465724e6f74466f756e64000604d05468657265206973206e6f74206665656465722073657420666f72206d61726b657420636f6e76657273696f6e20726174696f734c4d61726b6574526174696f4e6f74466f756e64000704e445787065637465642061206d61726b657420726174696f20666f722074686520676976656e2070616972206f662063757272656e636965732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e310e0c6870616c6c65745f666f726569676e5f696e766573746d656e747320656e74697469657338496e766573746d656e74496e666f0404540000100140666f726569676e5f63757272656e6379b9030134543a3a43757272656e63794964000138666f726569676e5f616d6f756e74180144543a3a466f726569676e42616c616e636500017c64656372656173655f737761707065645f666f726569676e5f616d6f756e74180144543a3a466f726569676e42616c616e63650001206f726465725f69640d0101484f7074696f6e3c543a3a4f7264657249643e0000350e0c6870616c6c65745f666f726569676e5f696e766573746d656e747320656e74697469657338526564656d7074696f6e496e666f0404540000100140666f726569676e5f63757272656e6379b9030134543a3a43757272656e63794964000138737761707065645f616d6f756e74180144543a3a466f726569676e42616c616e6365000160636f6c6c65637465645f7472616e6368655f746f6b656e73180144543a3a5472616e63686542616c616e63650001206f726465725f69640d0101484f7074696f6e3c543a3a4f7264657249643e0000390e0000040800a108003d0e0c6870616c6c65745f666f726569676e5f696e766573746d656e74731870616c6c6574144572726f7204045400011030496e666f4e6f74466f756e64000004ac4661696c656420746f207265747269657665207468652060466f726569676e496e76657374496e666f602e30506f6f6c4e6f74466f756e64000104c84661696c656420746f2072657472696576652074686520706f6f6c20666f722074686520676976656e20706f6f6c2069642e644d69736d617463686564466f726569676e43757272656e63790002100901416e20616374696f6e20666f72206120646966666572656e7420666f726569676e2063757272656e63792069732063757272656e746c7920696e2070726f63657373d0666f72207468652073616d6520706f6f6c2063757272656e63792c206163636f756e742c20616e6420696e766573746d656e742e11015468652063757272656e637420666f726569676e20616374696f6e73206d7573742062652066696e6973686564206265666f7265207374617274696e6720776974682061cc646966666572656e7420666f726569676e2063757272656e637920696e766573746d656e74202f20726564656d7074696f6e2e5843616e63656c6c6174696f6e496e50726f6772657373000308f0412063616e63656c20616374696f6e20697320696e2070726f677265737320616e64206974206e6565647320746f2066696e697368206265666f726540696e6372656173696e6720616761696e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e410e00000408bd01b50300450e00000408c9032c00490e0c6070616c6c65745f6f7261636c655f636f6c6c656374696f6e14747970657340436163686564436f6c6c656374696f6e04045400000c011c636f6e74656e744d0e012101426f756e64656442547265654d61703c543a3a4f7261636c654b65792c204f7261636c6556616c7565506169723c543e2c20543a3a0a4d6178436f6c6c656374696f6e53697a653e0001546f6c6465725f76616c75655f74696d657374616d702c0130543a3a54696d657374616d700001306c6173745f757064617465642c0130543a3a54696d657374616d7000004d0e0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01b503045601510e045300000400550e013842547265654d61703c4b2c20563e0000510e00000408182c00550e042042547265654d617008044b01b503045601510e000400590e000000590e0000025d0e005d0e00000408b503510e00610e000004082cb50300650e0c6070616c6c65745f6f7261636c655f636f6c6c656374696f6e1870616c6c6574144572726f7204045400011c2849734e6f7441646d696e000004f4546865206163636f756e742077686f20747269676765722074686520616374696f6e206973206e6f74206120636f6c6c656374696f6e2061646d696e2e484b65794e6f74496e436f6c6c656374696f6e00010484546865206b6579206973206e6f7420696e2074686520636f6c6c656374696f6e2e404b65794e6f745265676973746572656400020464546865206b6579206973206e6f742072656769737465726564444d6178436f6c6c656374696f6e53697a650003045c436f6c6c656374696f6e2073697a652072656163686564684e6f4f7261636c65436f6c6c656374696f6e4368616e676549640004040101546865206368616e676520696420646f6573206e6f7420636f72726573706f6e6420746f20616e206f7261636c6520636f6c6c656374696f6e206368616e67654c4f7261636c6556616c75654f75746461746564000504cc546865206f7261636c652076616c756520686173207061737365642074686520636f6c6c656374696f6e206d6178206167652e404e6f74456e6f75676846656564657273000604b454686520616d6f756e74206f66206665656465727320666f722061206b6579206973206e6f7420656e6f756768048054686520604572726f726020656e756d206f6620746869732070616c6c65742e690e084470616c6c65745f616e63686f72735f763218416e63686f7204045400001401286163636f756e745f6964000130543a3a4163636f756e74496400012c646f63756d656e745f6964180128446f63756d656e744964000140646f63756d656e745f76657273696f6e2c013c446f63756d656e7456657273696f6e0001106861736830011c543a3a4861736800011c6465706f736974180128543a3a42616c616e636500006d0e0000040800510e00710e0c4470616c6c65745f616e63686f72735f76321870616c6c6574144572726f720404540001104c416e63686f72416c72656164794578697374730000046854686520616e63686f7220616c7265616479206578697374732e6c506572736f6e616c416e63686f72416c72656164794578697374730001048c54686520706572736f6e616c20616e63686f7220616c7265616479206578697374732e38416e63686f724e6f74466f756e640002049054686520616e63686f7220776173206e6f7420666f756e6420696e2073746f726167652e58506572736f6e616c416e63686f724e6f74466f756e64000304b454686520706572736f6e616c20616e63686f7220776173206e6f7420666f756e6420696e2073746f726167652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750e00000408bd086400790e0c9070616c6c65745f6c69717569646974795f706f6f6c735f676174657761795f71756575651870616c6c6574144572726f720404540001043c4d6573736167654e6f74466f756e64000004484d657373616765206e6f7420666f756e642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7d0e0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e6465644254726565536574080454015d01045300000400810e012c42547265655365743c543e0000810e04204254726565536574040454015d01000400850e000000850e0000025d0100890e0000028d0e008d0e086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e745d0101185061726149640001147374617465910e01344f7574626f756e6453746174650001347369676e616c735f6578697374780110626f6f6c00012c66697273745f696e646578b4010c7531360001286c6173745f696e646578b4010c7531360000910e086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000950e000004085d01b400990e086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c75333200009d0e0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10e0c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572cd04014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572ed0601644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679a50e01404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ecd04014456657273696f6e65644c6f636174696f6e00012469735f616374697665780110626f6f6c000100145265616479080120726573706f6e7365ad0e014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000a50e04184f7074696f6e04045401a90e0108104e6f6e6500000010536f6d650400a90e0000010000a90e00000408080800ad0e080c78636d4456657273696f6e6564526573706f6e736500010c08563204008905013076323a3a526573706f6e73650002000856330400d505013076333a3a526573706f6e736500030008563404003906013076343a3a526573706f6e736500040000b10e0000040810cd0400b50e0000040c2c241000b90e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd0e045300000400c10e01185665633c543e0000bd0e00000408cd041000c10e000002bd0e00c50e0c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e745461726765747304007504013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000c90e0000040c1000cd0e00cd0e080c78636d4056657273696f6e6564417373657449640001080856330400c905012c76333a3a4173736574496400030008563404002d06012c76343a3a4173736574496400040000d10e0c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e74696669657201a8304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572cd04014456657273696f6e65644c6f636174696f6e0001186c6f636b6572cd04014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273d50e01d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000d50e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d90e045300000400dd0e01185665633c543e0000d90e00000408a81800dd0e000002d90e00e10e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e50e045300000400e90e01185665633c543e0000e50e0000040818cd0400e90e000002e50e00ed0e0c2870616c6c65745f78636d1870616c6c6574144572726f720404540001642c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e5c496e76616c696441737365744e6f74436f6e63726574650014046c496e76616c6964206e6f6e2d636f6e63726574652061737365742e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef10e0c6470616c6c65745f726573747269637465645f78746f6b656e731870616c6c6574144572726f720404540001042842616456657273696f6e000000048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef50e0c5470616c6c65745f78636d5f7472616e736163746f723472656c61795f696e64696365734452656c6179436861696e496e6469636573000048011c7374616b696e67080108753800011c7574696c697479080108753800011068726d700801087538000110626f6e640801087538000128626f6e645f65787472610801087538000118756e626f6e64080108753800014477697468647261775f756e626f6e646564080108753800012076616c696461746508010875380001206e6f6d696e61746508010875380001146368696c6c08010875380001247365745f706179656508010875380001387365745f636f6e74726f6c6c657208010875380001187265626f6e64080108753800013461735f646572697661746976650801087538000144696e69745f6f70656e5f6368616e6e656c080108753800014c6163636570745f6f70656e5f6368616e6e656c0801087538000134636c6f73655f6368616e6e656c080108753800014c63616e63656c5f6f70656e5f7265717565737408010875380000f90e0c5470616c6c65745f78636d5f7472616e736163746f721870616c6c6574144572726f7204045400016c4c496e646578416c7265616479436c61696d656400000038556e636c61696d6564496e646578000100204e6f744f776e657200020048556e776569676861626c654d6573736167650003003843616e6e6f745265616e63686f720004004441737365744861734e6f526573657276650005002c496e76616c696444657374000600544e6f7443726f7373436861696e5472616e7366657200070078417373657449734e6f7452657365727665496e44657374696e6174696f6e0008006044657374696e6174696f6e4e6f74496e7665727469626c650009003c4572726f7244656c69766572696e67000a008c44697370617463685765696768744269676765725468616e546f74616c576569676874000b00385765696768744f766572666c6f77000c0038416d6f756e744f766572666c6f77000d00505472616e736163746f72496e666f4e6f74536574000e00844e6f7443726f7373436861696e5472616e7366657261626c6543757272656e6379000f003c58636d457865637574654572726f720010002842616456657273696f6e001100604d61785765696768745472616e736163745265616368656400120054556e61626c65546f57697468647261774173736574001300484665655065725365636f6e644e6f74536574001400985369676e65645472616e736163744e6f74416c6c6f776564466f7244657374696e6174696f6e001500744661696c65644d756c74694c6f636174696f6e546f4a756e6374696f6e0016006448726d7048616e646c65724e6f74496d706c656d656e74656400170038546f6f4d756368466565557365640018003c4572726f7256616c69646174696e6700190088526566756e644e6f74537570706f72746564576974685472616e73616374496e666f001a00040d01416e206572726f7220746861742063616e206f63637572207768696c6520657865637574696e6720746865206d617070696e672070616c6c65742773206c6f6769632efd0e0c306f726d6c5f78746f6b656e73186d6f64756c65144572726f7204045400014c4441737365744861734e6f5265736572766500000478417373657420686173206e6f2072657365727665206c6f636174696f6e2e544e6f7443726f7373436861696e5472616e73666572000104644e6f742063726f73732d636861696e207472616e736665722e2c496e76616c69644465737400020474496e76616c6964207472616e736665722064657374696e6174696f6e2e844e6f7443726f7373436861696e5472616e7366657261626c6543757272656e6379000304a443757272656e6379206973206e6f742063726f73732d636861696e207472616e7366657261626c652e48556e776569676861626c654d657373616765000404b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e4858636d457865637574696f6e4661696c65640005045458434d20657865637574696f6e206661696c65642e3843616e6e6f745265616e63686f72000608e8436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468654864657374696e6174696f6e20636861696e2e3c496e76616c6964416e636573747279000704c4436f756c64206e6f742067657420616e636573747279206f662061737365742072657365727665206c6f636174696f6e2e30496e76616c696441737365740008045454686520417373657420697320696e76616c69642e6044657374696e6174696f6e4e6f74496e7665727469626c65000904dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e2842616456657273696f6e000a08ec5468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626530696e7465727072657465642e7444697374696e637452657365727665466f724173736574416e64466565000b08fc57652074726965642073656e64696e672064697374696e637420617373657420616e6420666565206275742074686579206861766520646966666572656e743c7265736572766520636861696e732e1c5a65726f466565000c044054686520666565206973207a65726f2e285a65726f416d6f756e74000d0494546865207472616e73666572696e6720617373657420616d6f756e74206973207a65726f2e58546f6f4d616e794173736574734265696e6753656e74000e04d0546865206e756d626572206f662061737365747320746f2062652073656e74206973206f76657220746865206d6178696d756d2e544173736574496e6465784e6f6e4578697374656e74000f04d85468652073706563696669656420696e64657820646f6573206e6f7420657869737420696e206120417373657473207374727563742e304665654e6f74456e6f75676800100448466565206973206e6f7420656e6f7567682e504e6f74537570706f727465644c6f636174696f6e001104584e6f7420737570706f72746564204c6f636174696f6e4c4d696e58636d4665654e6f74446566696e6564001204d44d696e58636d466565206e6f74207265676973746572656420666f72206365727461696e2072657365727665206c6f636174696f6e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e010f085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01cd0600180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273050f01844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e742c010c75363400011073697a652c010c7536340000050f04184f7074696f6e04045401090f0108104e6f6e6500000010536f6d650400090f0000010000090f085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01cd060008011070726576cd0601344d6573736167654f726967696e0001106e657874cd0601344d6573736167654f726967696e00000d0f00000408cd061000110f085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170150f019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000150f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000190f0c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d0f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401210f045300000400250f01185665633c543e0000210f082c6f726d6c5f746f6b656e732c42616c616e63654c6f636b041c42616c616e636501180008010869647d0201384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e63650000250f000002210f00290f082c6f726d6c5f746f6b656e732c4163636f756e7444617461041c42616c616e63650118000c01106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e636500002d0f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401310f045300000400350f01185665633c543e0000310f082c6f726d6c5f746f6b656e732c52657365727665446174610844526573657276654964656e746966696572017d021c42616c616e636501180008010869647d020144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000350f000002310f00390f0c2c6f726d6c5f746f6b656e73186d6f64756c65144572726f720404540001203442616c616e6365546f6f4c6f77000004585468652062616c616e636520697320746f6f206c6f775c416d6f756e74496e746f42616c616e63654661696c65640001049c43616e6e6f7420636f6e7665727420416d6f756e7420696e746f2042616c616e63652074797065544c69717569646974795265737472696374696f6e73000204d04661696c65642062656361757365206c6971756964697479207265737472696374696f6e732064756520746f206c6f636b696e67404d61784c6f636b734578636565646564000304b44661696c6564206265636175736520746865206d6178696d756d206c6f636b7320776173206578636565646564244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e74484578697374656e7469616c4465706f736974000504e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000700048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3d0f0000040808410f00410f000004082c250100450f0c2c636861696e6272696467651474797065733450726f706f73616c566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000100124766f7465735f666f729401385665633c4163636f756e7449643e000134766f7465735f616761696e73749401385665633c4163636f756e7449643e000118737461747573490f013850726f706f73616c53746174757300011865787069727910012c426c6f636b4e756d6265720000490f0c2c636861696e6272696467651474797065733850726f706f73616c53746174757300010c24496e6974696174656400000020417070726f7665640001002052656a6563746564000200004d0f0c2c636861696e6272696467651870616c6c6574144572726f7204045400013c3c5468726573686f6c644e6f745365740000046452656c61796572207468726573686f6c64206e6f742073657438496e76616c6964436861696e49640001047850726f766964656420636861696e204964206973206e6f742076616c696440496e76616c69645468726573686f6c640002047452656c61796572207468726573686f6c642063616e6e6f7420626520304c436861696e4e6f7457686974656c6973746564000304b4496e746572616374696f6e732077697468207468697320636861696e206973206e6f74207065726d69747465645c436861696e416c726561647957686974656c697374656400040478436861696e2068617320616c7265616479206265656e20656e61626c6564505265736f75726365446f65734e6f744578697374000504b45265736f757263652049442070726f76696465642069736e2774206d617070656420746f20616e797468696e675052656c61796572416c72656164794578697374730006045852656c6179657220616c726561647920696e207365743852656c61796572496e76616c69640007048c50726f7669646564206163636f756e744964206973206e6f7420612072656c61796572344d757374426552656c61796572000804c450726f746563746564206f7065726174696f6e2c206d75737420626520706572666f726d65642062792072656c617965724c52656c61796572416c7265616479566f746564000904e452656c617965722068617320616c7265616479207375626d697474656420736f6d6520766f746520666f7220746869732070726f706f73616c5450726f706f73616c416c7265616479457869737473000a04ec412070726f706f73616c207769746820746865736520706172616d65746572732068617320616c7265616479206265656e207375626d69747465645050726f706f73616c446f65734e6f744578697374000b04844e6f2070726f706f73616c2077697468207468652049442077617320666f756e644c50726f706f73616c4e6f74436f6d706c657465000c04a843616e6e6f7420636f6d706c6574652070726f706f73616c2c206e65656473206d6f726520766f7465735c50726f706f73616c416c7265616479436f6d706c657465000d049c50726f706f73616c2068617320656974686572206661696c6564206f72207375636365656465643c50726f706f73616c45787069726564000e04984c69666574696d65206f662070726f706f73616c20686173206265656e206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e510f0c4c6f726d6c5f61737365745f7265676973747279186d6f64756c65144572726f720404540001183441737365744e6f74466f756e6400000450417373657420776173206e6f7420666f756e642e2842616456657273696f6e000108f45468652076657273696f6e206f6620746865206056657273696f6e65644c6f636174696f6e602076616c75652075736564206973206e6f742061626c6548746f20626520696e7465727072657465642e38496e76616c6964417373657449640002046054686520617373657420696420697320696e76616c69642e4c436f6e666c696374696e674c6f636174696f6e000304d8416e6f746865722061737365742077617320616c726561647920726567697374657220776974682074686973206c6f636174696f6e2e48436f6e666c696374696e6741737365744964000404d8416e6f746865722061737365742077617320616c7265616479207265676973746572207769746820746869732061737365742069642e48496e76616c69644173736574537472696e670005046c4e616d65206f722073796d626f6c20697320746f6f206c6f6e672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e550f0c206f726d6c5f78636d186d6f64756c65144572726f7204045400010c2c556e726561636861626c650000080d01546865206d65737361676520616e642064657374696e6174696f6e20636f6d62696e6174696f6e20776173206e6f74207265636f676e697a6564206173206265696e6728726561636861626c652e2c53656e644661696c7572650001080501546865206d65737361676520616e642064657374696e6174696f6e20776173207265636f676e697a6564206173206265696e6720726561636861626c652062757494746865206f7065726174696f6e20636f756c64206e6f7420626520636f6d706c657465642e2842616456657273696f6e000208ec5468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626530696e7465727072657465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e590f082870616c6c65745f65766d30436f64654d65746164617461000008011073697a652c010c753634000110686173683001104832353600005d0f0000040821023000610f0c2870616c6c65745f65766d1870616c6c6574144572726f720404540001382842616c616e63654c6f77000004904e6f7420656e6f7567682062616c616e636520746f20706572666f726d20616374696f6e2c4665654f766572666c6f770001048043616c63756c6174696e6720746f74616c20666565206f766572666c6f7765643c5061796d656e744f766572666c6f770002049043616c63756c6174696e6720746f74616c207061796d656e74206f766572666c6f7765643857697468647261774661696c65640003044c576974686472617720666565206661696c6564384761735072696365546f6f4c6f770004045447617320707269636520697320746f6f206c6f772e30496e76616c69644e6f6e6365000504404e6f6e636520697320696e76616c6964384761734c696d6974546f6f4c6f7700060454476173206c696d697420697320746f6f206c6f772e3c4761734c696d6974546f6f4869676800070458476173206c696d697420697320746f6f20686967682e38496e76616c6964436861696e49640008046054686520636861696e20696420697320696e76616c69642e40496e76616c69645369676e617475726500090464746865207369676e617475726520697320696e76616c69642e285265656e7472616e6379000a043845564d207265656e7472616e6379685472616e73616374696f6e4d757374436f6d6546726f6d454f41000b04244549502d333630372c48496e76616c69645472616e73616374696f6e000c044c496e76616c6964205472616e73616374696f6e24556e646566696e6564000d0440556e646566696e6564206572726f722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e650f000002690f00690f0000040c21076d0f810f006d0f081866705f727063445472616e73616374696f6e53746174757300001c01407472616e73616374696f6e5f68617368300110483235360001447472616e73616374696f6e5f696e64657810010c75333200011066726f6d2102011048313630000108746f710f01304f7074696f6e3c483136303e000140636f6e74726163745f61646472657373710f01304f7074696f6e3c483136303e0001106c6f6773750f01205665633c4c6f673e0001286c6f67735f626c6f6f6d790f0114426c6f6f6d0000710f04184f7074696f6e0404540121020108104e6f6e6500000010536f6d65040021020000010000750f000002f90800790f0820657468626c6f6f6d14426c6f6f6d000004007d0f01405b75383b20424c4f4f4d5f53495a455d00007d0f000003000100000800810f0c20657468657265756d1c726563656970742452656365697074563300010c184c65676163790400850f014445495036353852656365697074446174610000001c454950323933300400850f01484549503239333052656365697074446174610001001c454950313535390400850f014845495031353539526563656970744461746100020000850f0c20657468657265756d1c72656365697074444549503635385265636569707444617461000010012c7374617475735f636f64650801087538000120757365645f6761731d050110553235360001286c6f67735f626c6f6f6d790f0114426c6f6f6d0001106c6f6773750f01205665633c4c6f673e0000890f0c20657468657265756d14626c6f636b14426c6f636b040454012107000c01186865616465728d0f01184865616465720001307472616e73616374696f6e73950f01185665633c543e0001186f6d6d657273990f012c5665633c4865616465723e00008d0f0c20657468657265756d186865616465721848656164657200003c012c706172656e745f686173683001104832353600012c6f6d6d6572735f686173683001104832353600012c62656e6566696369617279210201104831363000012873746174655f726f6f74300110483235360001447472616e73616374696f6e735f726f6f743001104832353600013472656365697074735f726f6f74300110483235360001286c6f67735f626c6f6f6d790f0114426c6f6f6d000128646966666963756c74791d050110553235360001186e756d6265721d050110553235360001246761735f6c696d69741d050110553235360001206761735f757365641d0501105532353600012474696d657374616d702c010c75363400012865787472615f6461746134011442797465730001206d69785f68617368300110483235360001146e6f6e6365910f010c4836340000910f0c38657468657265756d5f747970657310686173680c483634000004007d02011c5b75383b20385d0000950f000002210700990f0000028d0f009d0f000002810f00a10f0000026d0f00a50f0c3c70616c6c65745f657468657265756d1870616c6c6574144572726f7204045400010840496e76616c69645369676e6174757265000004545369676e617475726520697320696e76616c69642e305072654c6f67457869737473000104d85072652d6c6f672069732070726573656e742c207468657265666f7265207472616e73616374206973206e6f7420616c6c6f7765642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea90f0c6c70616c6c65745f657468657265756d5f7472616e73616374696f6e1870616c6c6574144572726f720404540001044845766d457865637574696f6e4661696c6564000000048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead0f0c646178656c61725f676174657761795f707265636f6d70696c651870616c6c6574144572726f72040454000108504e6f436f6e766572746572466f72536f75726365000004110154686520676976656e20646f6d61696e206973206e6f742079657420616c6c6f776c69737465642c2061732077652068617665206e6f20636f6e76657274657220796574744163636f756e7442797465734d69736d61746368466f72446f6d61696e00010805014120676976656e20646f6d61696e2065787065637473206120676976656e2073747275637475726520666f72206163636f756e7420627974657320616e642069744c776173206e6f7420676976656e20686572652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb10f0c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742eb50f000004082c810400b90f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012c045300000400090801185665633c543e0000bd0f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c10f045300000400cd0f01185665633c543e0000c10f0c246366675f747970657314706f6f6c731c506f6f6c4665650c244163636f756e7449640100144665654964012c28466565416d6f756e747301c50f0010012c64657374696e6174696f6e0001244163636f756e744964000118656469746f7289040160506f6f6c466565456469746f723c4163636f756e7449643e00011c616d6f756e7473c50f0128466565416d6f756e747300010869642c011446656549640000c50f0c246366675f747970657314706f6f6c7338506f6f6c466565416d6f756e7473081c42616c616e636501181052617465019503001001206665655f747970658d040168506f6f6c466565547970653c42616c616e63652c20526174653e00011c70656e64696e6718011c42616c616e636500013064697362757273656d656e7418011c42616c616e636500011c70617961626c65c90f016450617961626c65466565416d6f756e743c42616c616e63653e0000c90f0c246366675f747970657314706f6f6c734050617961626c65466565416d6f756e74041c42616c616e63650118010828416c6c50656e64696e67000000105570546f040018011c42616c616e636500010000cd0f000002c10f00d10f0c246366675f747970657324706f7274666f6c696f48506f7274666f6c696f56616c756174696f6e0c1c42616c616e6365011818456c656d4964012c204d6178456c656d7300000c011476616c756518011c42616c616e63650001306c6173745f757064617465642c011c5365636f6e647300011876616c756573d50f019c426f756e6465645665633c28456c656d49642c2042616c616e6365292c204d6178456c656d733e0000d50f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401010d045300000400050d01185665633c543e0000d90f0c4070616c6c65745f706f6f6c5f666565731870616c6c6574144572726f7204045400012c484665654964416c7265616479457869737473000004bc417474656d7074656420746f2061646420612066656520696420776869636820616c7265616479206578697374732e2c4665654e6f74466f756e6400010464412066656520636f756c64206e6f7420626520666f756e642e30506f6f6c4e6f74466f756e64000204684120706f6f6c20636f756c64206e6f7420626520666f756e642e304e6f74506f6f6c41646d696e000304c44f6e6c792074686520506f6f6c41646d696e2063616e2065786563757465206120676976656e206f7065726174696f6e2e504d6178506f6f6c466565735065724275636b6574000404c854686520706f6f6c206275636b657420686173207265616368656420746865206d6178696d756d20666565732073697a652e4c4368616e676549644e6f74506f6f6c46656573000504d0546865206368616e676520696420646f6573206e6f742062656c6f6e6720746f206120706f6f6c2066656573206368616e67652e48556e617574686f72697a6564436861726765000604bc546865206665652063616e206f6e6c792062652063686172676564206279207468652064657374696e6174696f6e2e40556e617574686f72697a656445646974000704d0546865206665652063616e206f6e6c7920626520656469746564206f722072656d6f7665642062792074686520656469746f722e3c43616e6e6f74426543686172676564000804bc417474656d7074656420746f20636861726765206120666565206f6620756e63686172676561626c6520747970652e384e6f7468696e674368617267656400090490417474656d7074656420746f206368617267652077697468207a65726f20616d6f756e74404e6f7468696e67556e63686172676564000a0498417474656d7074656420746f20756e6368617267652077697468207a65726f20616d6f756e74048054686520604572726f726020656e756d206f6620746869732070616c6c65742edd0f0c3870616c6c65745f72656d61726b731870616c6c6574144572726f72040454000104244e6f52656d61726b73000004644e6f2072656d61726b7320776572652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee10f0c4070616c6c65745f746f6b656e5f6d75781870616c6c6574144572726f72040454000118404d657461646174614e6f74466f756e640000049c54686520676976656e2063757272656e637920686173206e6f206d65746164617461207365742e544e6f4c6f63616c526570726573656e746174696f6e0001080d0154686520676976656e2063757272656e637920686173206e6f206c6f63616c20726570726573656e746174696f6e20616e642063616e2068656e6365206e6f74206265b06465706f736974656420746f20726563656976652061206c6f63616c20726570726573656e746174696f6e2e30537761704e6f74466f756e64000204745377617020636f756c64206e6f7420626520666f756e64206279206964404e6f744964656e746963616c5377617000030409014d61746368696e67206f726465727320646f6573206f6e6c7920776f726b2069662074686572652069732061206f6e652d746f2d6f6e6520636f6e76657273696f6e54496e76616c69645377617043757272656e63696573000408f454686973206d65616e7320746865207377617020697320656974686572206e6f742061206c6f63616c20746f2076617269616e74206f72206e6f7420615476617269616e7420746f206c6f63616c20737761703c446563696d616c4d69736d617463680005080d0156617269616e7420616e64206c6f63616c20726570726573656e746174696f6e2068617665206d69736d61746368696e6720646563696d616c7320696e207468656972d86d657461646174612e204120636f6e76657273696f6e206265747765656e207468652074776f206973206e6f7420706f737369626c65048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee50f0c4466705f73656c665f636f6e7461696e65644c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730179011043616c6c012501245369676e617475726501f10214457874726101e90f0004001d1001250173705f72756e74696d653a3a67656e657269633a3a556e636865636b656445787472696e7369633c416464726573732c2043616c6c2c205369676e61747572652c2045787472610a3e0000e90f00000428ed0ff10ff50ff90ffd0f051009100d101110191000ed0f10306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000f10f10306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000f50f10306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f90f10306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000fd0f10306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004000110010c45726100000110102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000051010306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400b1010120543a3a4e6f6e63650000091010306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000d10086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e74040454000004008501013042616c616e63654f663c543e0000111008746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465151001104d6f64650000151008746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c65640001000019100c3872756e74696d655f636f6d6d6f6e3c7472616e736665725f66696c7465726c50726542616c616e63655472616e73666572457874656e73696f6e040454000000001d10102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730179011043616c6c012501245369676e617475726501f10214457874726101e90f000400340000002d011853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402303d090400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000410904000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500003909040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500004509040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01290101541830426c6f636b5765696768747349096d01025b1f5d00070088526a7402004001c2a0a91d000107d0c33576510200e000010700e6bd4f570200f000010000c2a0a91d000107d065ca906e0200300101070088526a7402004001010700a2941a1d02005000c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746855093000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768745d094040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e6109c1044063656e747269667567652d646576656c4063656e747269667567652d646576656c010000007a0500000100000054df6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000dd718d5cc53262d401000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000ea93e3f16f3d696202000000c937d79c92c4e872010000009ce8a204acbb1235010000008f5c2d0094ecd0470100000022b97323b9e853da03000000639021f9c79c4897010000009c62715b4dcff733010000006575ae9c9f645c5001000000a03b94ae2668f24301000000582211f65bb14b8905000000e65b00e46cedd0aa02000000fbc577b9d747efd60100000002000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978b408880014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017109003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e74010075090400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000990904000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010034040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000340400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000410104000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010078040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c01009d0904001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401009109040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600004901040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000a50904001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e0000b9090400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100c10980000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d716348656164730100c509040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100d10904000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100350104000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301003501040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100d90940000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000240400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000240400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003404000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e013901017c0001dd09012454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0171010004344d696e696d756d506572696f642c207017000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00033450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e496401005d0110640000000000000000042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200e109040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200f109040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c64730101040200fd090400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200190a0400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e017501018410484578697374656e7469616c4465706f73697418400010a5d4e8000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e284d6178467265657a657310100a00000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01250a14485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100d90940000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100290a04000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e001544436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c657301002d0a04000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c6973740100310a0400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e018d01019000013d0a4728417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001e1c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100940400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010078040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100410a0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100490a0400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050095010400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e6572000104054d0a00040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01910101980001550a1f1041757261011041757261082c417574686f7269746965730100590a0400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f740100610a2000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000000201c41757261457874011c41757261457874082c417574686f7269746965730100590a040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000650a04000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e0000000021204d756c746973696701204d756c746973696704244d756c7469736967730001080502690a6d0a040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01a101019c0c2c4465706f73697442617365184000009e1869d02904000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f7218400000c52ebca2b10000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01750a3c1450726f7879011450726f7879081c50726f786965730101040500790a4400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500890a44000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01a90101ac184050726f78794465706f73697442617365184000009e1869d02904000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218400000c52ebca2b100000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f73697442617365184000007f80a935be08000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000008cde04bff436000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01990a3d1c5574696c6974790001b50101b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019d0a3e245363686564756c657201245363686564756c65720c3c496e636f6d706c65746553696e6365000010040000184167656e64610101040510a10a0400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001040504c0040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01290201bc08344d6178696d756d57656967687424280700a0db215d0200000104290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e01b10a3f1c436f756e63696c011c436f756e63696c182450726f706f73616c730100b50a040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406302501040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040630b90a040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100940400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01310201c404444d617850726f706f73616c576569676874242807004429353a0200a00004250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e01bd0a4024456c656374696f6e730124456c656374696f6e73141c4d656d626572730100c10a04000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100c10a04001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100cc0400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301001010000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e670101040500c90a840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e01350201c8282050616c6c657449647d0220706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e6418400000a0dec5adc935360000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e644261736518400000b2d3595bf006000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f7218400000b2d3595bf00600000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d626572731010070000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355701010030000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e1010e0c400000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e344d617843616e6469646174657310101400000018e420546865206d6178696d756d206e756d626572206f662063616e6469646174657320696e20612070687261676d656e20656c656374696f6e2e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e003101205768656e2074686973206c696d69742069732072656163686564206e6f206d6f72652063616e646964617465732061726520616363657074656420696e2074686520656c656374696f6e2e244d6178566f7465727310106400000018f820546865206d6178696d756d206e756d626572206f6620766f7465727320746f20616c6c6f7720696e20612070687261676d656e20656c656374696f6e2e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e00d8205768656e20746865206c696d6974206973207265616368656420746865206e657720766f74657273206172652069676e6f7265642e404d6178566f746573506572566f7465721010050000001090204d6178696d756d206e756d62657273206f6620766f7465732070657220766f7465722e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e01cd0a412444656d6f6372616379012444656d6f6372616379303c5075626c696350726f70436f756e74010010100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100d10a040004050120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c2e244465706f7369744f660001040510dd0a04000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e3c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b6564010010100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001040510e50a04000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f660101040500f10ad8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e544c6173745461626c656457617345787465726e616c0100780400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c0000090b040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c69737400010406300d0b04000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101040630780400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e284d657461646174614f6600010402e430040018ec2047656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720616e792070726f706f73616c206f72207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e013d0201d4303c456e6163746d656e74506572696f64101000e1000014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f641010e0c4000004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f641010e0c4000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f64101000e10000109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f73697418400000e8890423c78a000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f7765647804000c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6410108403000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f641010e0c4000004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e204d6178566f74657310106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c73101064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e2c4d61784465706f73697473101064000000041d0120546865206d6178696d756d206e756d626572206f66206465706f736974732061207075626c69632070726f706f73616c206d6179206861766520617420616e792074696d652e384d6178426c61636b6c697374656410106400000004d820546865206d6178696d756d206e756d626572206f66206974656d732077686963682063616e20626520626c61636b6c69737465642e01110b42204964656e7469747901204964656e746974791c284964656e746974794f660001040500150b040010690120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e204669727374206974656d20697320746865e020726567697374726174696f6e2c207365636f6e6420697320746865206163636f756e742773207072696d61727920757365726e616d652e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f660001040200e5020400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010405002d0b44000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100350b0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e4c557365726e616d65417574686f7269746965730001040500450b040004f42041206d6170206f6620746865206163636f756e74732077686f2061726520617574686f72697a656420746f206772616e7420757365726e616d65732e444163636f756e744f66557365726e616d6500010402ec000400146d012052657665727365206c6f6f6b75702066726f6d2060757365726e616d656020746f2074686520604163636f756e7449646020746861742068617320726567697374657265642069742e205468652076616c75652073686f756c6465012062652061206b657920696e2074686520604964656e746974794f6660206d61702c20627574206974206d6179206e6f742069662074686520757365722068617320636c6561726564207468656972206964656e746974792e006901204d756c7469706c6520757365726e616d6573206d6179206d617020746f207468652073616d6520604163636f756e744964602c2062757420604964656e746974794f66602077696c6c206f6e6c79206d617020746f206f6e6548207072696d61727920757365726e616d652e4050656e64696e67557365726e616d657300010402ec4d0b0400186d0120557365726e616d6573207468617420616e20617574686f7269747920686173206772616e7465642c20627574207468617420746865206163636f756e7420636f6e74726f6c6c657220686173206e6f7420636f6e6669726d65647101207468617420746865792077616e742069742e2055736564207072696d6172696c7920696e2063617365732077686572652074686520604163636f756e744964602063616e6e6f742070726f766964652061207369676e61747572655d012062656361757365207468657920617265206120707572652070726f78792c206d756c74697369672c206574632e20496e206f7264657220746f20636f6e6669726d2069742c20746865792073686f756c642063616c6c6c205b6043616c6c3a3a6163636570745f757365726e616d65605d2e001d01204669727374207475706c65206974656d20697320746865206163636f756e7420616e64207365636f6e642069732074686520616363657074616e636520646561646c696e652e014d0201e8203042617369634465706f7369741840000010632d5ec76b050000000000000004d82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e746974792e2c427974654465706f73697418400000869eae29d5000000000000000000041d012054686520616d6f756e742068656c64206f6e206465706f7369742070657220656e636f646564206279746520666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f73697418400000d01309468e1501000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e344d617852656769737472617273101014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e6450656e64696e67557365726e616d6545787069726174696f6e1010e0c4000004150120546865206e756d626572206f6620626c6f636b732077697468696e207768696368206120757365726e616d65206772616e74206d7573742062652061636365707465642e3c4d61785375666669784c656e677468101007000000048020546865206d6178696d756d206c656e677468206f662061207375666669782e444d6178557365726e616d654c656e67746810102000000004610120546865206d6178696d756d206c656e677468206f66206120757365726e616d652c20696e636c7564696e67206974732073756666697820616e6420616e792073797374656d2d61646465642064656c696d69746572732e01510b431c56657374696e67011c56657374696e67081c56657374696e670001040200550b040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e01005d0b04000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01090301f008444d696e5665737465645472616e7366657218400000e8890423c78a000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001610b4420547265617375727901205472656173757279183450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001040510650b0400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e2c4465616374697661746564010018400000000000000000000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e24417070726f76616c730100690b040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e285370656e64436f756e74010010100000000004a42054686520636f756e74206f66207370656e647320746861742068617665206265656e206d6164652e185370656e647300010405106d0b040004d0205370656e647320746861742068617665206265656e20617070726f76656420616e64206265696e672070726f6365737365642e01110301f4203050726f706f73616c426f6e6419071050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d1840000010632d5ec76b0500000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4c50726f706f73616c426f6e644d6178696d756d21034401000050efe2d6e41a1b00000000000000044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f641010c04b0300048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e190710102700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c65744964750b2070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c731010640000000c150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e305061796f7574506572696f641010c04b03000419012054686520706572696f6420647572696e6720776869636820616e20617070726f766564207472656173757279207370656e642068617320746f20626520636c61696d65642e01790b451c556e6971756573011c556e69717565732814436c617373000104022c7d0b040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402002c04000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202810ba8040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e30436c6173734163636f756e740001080202850ba804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e14417373657400010802028d03890b040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e3c436c6173734d657461646174614f66000104022c8d0b04000468204d65746164617461206f66206120636f6c6c656374696f6e2e48496e7374616e63654d657461646174614f6600010802028d03910b04000454204d65746164617461206f6620616e206974656d2e2441747472696275746500010c020202950b990b040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802028d039d0b04000470205072696365206f6620616e20617373657420696e7374616e63652e4c436f6c6c656374696f6e4d6178537570706c79000104022c10040004f0204b6565707320747261636b206f6620746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e206d6967687420686176652e01150301f82044436f6c6c656374696f6e4465706f7369741840000064a7b3b6e00d00000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f736974184000008a5d78456301000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000008a5d784563010000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000008a5d7845630100000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400000c16ff2862300000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410100001000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e01a10b4620507265696d6167650120507265696d6167650c24537461747573466f720001040630a50b0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e4052657175657374537461747573466f720001040630ad0b0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f7200010406bd0bc10b0400000125030115010001c50b4840436f6e76696374696f6e566f74696e670140436f6e76696374696f6e566f74696e670824566f74696e67466f720101080505c90bcd0bd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008750120416c6c20766f74696e6720666f72206120706172746963756c617220766f74657220696e206120706172746963756c617220766f74696e6720636c6173732e2057652073746f7265207468652062616c616e636520666f72207468659c206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e34436c6173734c6f636b73466f720101040500ed0b04000c69012054686520766f74696e6720636c617373657320776869636820686176652061206e6f6e2d7a65726f206c6f636b20726571756972656d656e7420616e6420746865206c6f636b20616d6f756e747320776869636820746865796d0120726571756972652e205468652061637475616c20616d6f756e74206c6f636b6564206f6e20626568616c66206f6620746869732070616c6c65742073686f756c6420616c7761797320626520746865206d6178696d756d206f662c2074686973206c6973742e012d0301190108204d6178566f74657310100002000010f020546865206d6178696d756d206e756d626572206f6620636f6e63757272656e7420766f74657320616e206163636f756e74206d617920686176652e00550120416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206c617267652076616c75652063616e206c65616420746f2065787472696e736963732077697468206c61726765c02077656967687420657374696d6174696f6e3a20736565206064656c65676174656020666f7220696e7374616e63652e44566f74654c6f636b696e67506572696f64101000e10000109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e01f90b50245265666572656e646101245265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210fd0b040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b517565756501010405b41d0c0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405b410100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021030040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e014103011d0114445375626d697373696f6e4465706f73697418400000e8890423c78a000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f757410104600000008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b73290c450818000010726f6f7402000000000080e3e0a35708873f000000000000050000000500000005000000050000000000ca9a3b0065cd1d00ca9a3b02d7c0770000000000eddf77000000000020750f000000000001004877686974656c69737465645f63616c6c6572140000000000a0dec5adc9353600000000000000050000000500000005000000050000000000ca9a3b0065cd1d00ca9a3b0295c8010000000000229103000000000026beffffffffffff0a0028706f6f6c5f61646d696e050000000000a0dec5adc9353600000000000000050000000500000005000000050000000000ca9a3b0027b92900ca9a3b02dae35a0000000000f7c8b50000000000f6340000000000000b002474726561737572657202000000000040b2bac9e0191e02000000000000050000000500000005000000050000000000ca9a3b0027b92900ca9a3b0037eb3735809698000065cd1d1400507265666572656e64756d5f63616e63656c6c6572140000000000407ba5f06381960a000000000000050000000500000005000000050000000000ca9a3b0027b92900ca9a3b02dae35a0000000000f7c8b50000000000f6340000000000001500447265666572656e64756d5f6b696c6c6572140000000000e038f8e815c2e10f000000000000050000000500000005000000050000000000ca9a3b0027b92900ca9a3b02dae35a0000000000f7c8b50000000000f63400000000000004e020496e666f726d6174696f6e20636f6e6365726e696e672074686520646966666572656e74207265666572656e64756d20747261636b732e01450c512457686974656c697374012457686974656c697374043c57686974656c697374656443616c6c0001040530a8040000014903017d070001490c5348546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c7301004d0c040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406302501040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040630b90a040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100940400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e014d03018d0704444d617850726f706f73616c576569676874242807004429353a0200a00004250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e01510c5470546563686e6963616c436f6d6d69747465654d656d626572736869700170546563686e6963616c436f6d6d69747465654d656d62657273686970081c4d656d626572730100550c040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000000040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e0151030191070001590c551046656573011046656573042c46656542616c616e6365730101040159031840000064a7b3b6e00d000000000000000004e82053746f72657320746865206665652062616c616e636573206173736f636961746564207769746820612048617368206964656e74696669657201550301950700005a18416e63686f720118416e63686f721c28507265436f6d6d69747300010401305d0c040008250120507265436f6d6d6974732073746f726520746865206d6170206f6620616e63686f7220496420746f20746865207072652d636f6d6d69742c2077686963682069732061206c6f636b98206f6e20616e20616e63686f7220696420746f20626520636f6d6d6974746564206c6174657240416e63686f7245766963744461746573000104013010040004c4204d617020746f2066696e6420746865206576696374696f6e206461746520676976656e20616e20616e63686f7220696434416e63686f72496e6465786573000104012c3004000478204d617020746f2066696e6420616e63686f72494420627920696e646578444c6174657374416e63686f72496e64657800002c040004b4204c617465737420616e63686f72656420696e64657820746861742077617320726563656e746c792075736564604c617465737445766963746564416e63686f72496e64657800002c04000c2501204c6174657374206576696374656420616e63686f7220696e6465782e205468697320776f756c64206b65657020747261636b206f6620746865206c61746573742065766963746564210120616e63686f7220696e64657820736f20746861742077652063616e207374617274207468652072656d6f76616c206f6620416e63686f724576696374446174657320696e64657819012066726f6d207468617420696e646578206f6e77617264732e20476f696e672066726f6d20416e63686f72496e6465786573203d3e20416e63686f7245766963744461746573444c6174657374457669637465644461746500001004000c0d01205468697320697320746f206b65657020747261636b206f66207468652064617465207768656e2061206368696c642074726965206f6620616e63686f72732077617319012065766963746564206c6173742e20497420697320746f20657669637420686973746f72696320616e63686f722064617461206368696c6420747269657320696620746865799020776572656e2774206576696374656420696e20612074696d656c79206d616e6e65722e4845766963746564416e63686f72526f6f74730001040110610c04001009012053746f7261676520666f72206576696374656420616e63686f72206368696c64207472696520726f6f74732e20416e63686f72732077697468206120676976656e1901206578706972792f6576696374696f6e2064617465206172652073746f726564206f6e2d636861696e20696e20612073696e676c65206368696c6420747269652e20546869732501206368696c6420747269652069732072656d6f766564206166746572207468652065787069727920646174652068617320706173736564207768696c652069747320726f6f7420697309012073746f726564207065726d616e656e746c7920666f722070726f76696e6720616e206578697374656e6365206f6620616e206576696374656420616e63686f722e015d03000001650c5b28506f6f6c53797374656d0128506f6f6c53797374656d1810506f6f6c000104022c690c0400003c5363686564756c6564557064617465000104022c9d0c0400003845706f6368457865637574696f6e000104022ca10c040000384163636f756e744465706f7369740101040200184000000000000000000000000000000000002c506f6f6c4465706f736974000104022cbd0c0400002c4e6f7465644368616e67650001080202c10cc50c040000016503019907302050616c6c65744964750b20726f632f706f6f6c002c50616c6c6574496e64657808045f0801012054686520696d6d757461626c6520696e646578206f6620746869732070616c6c6574207768656e20696e7374616e7469617465642077697468696e207468659c20636f6e74657874206f6620612072756e74696d6520776865726520697420697320757365642e344368616c6c656e676554696d6510100a000000043c204368616c6c656e67652074696d654c44656661756c744d696e45706f636854696d652c200000000000000000046020506f6f6c20706172616d657465722064656661756c74734044656661756c744d61784e41564167652c203c0000000000000000584d696e45706f636854696d654c6f776572426f756e642c200000000000000000045820506f6f6c20706172616d6574657220626f756e6473584d696e45706f636854696d655570706572426f756e642c20008d270000000000004c4d61784e41564167655570706572426f756e642c20100e00000000000000384d696e55706461746544656c61792c200100000000000000045420506f6f6c207570646174652073657474696e67732c537472696e674c696d6974101080000000002c4d61785472616e63686573101005000000045c204d6178206e756d626572206f66205472616e636865732c506f6f6c4465706f7369741840000010632d5ec76b050000000000000004c82054686520616d6f756e742074686174206d75737420626520726573657276656420746f20637265617465206120706f6f6c01c90c5f144c6f616e7301144c6f616e7318284c6173744c6f616e4964010104022c2c200000000000000000049020436f6e7461696e7320746865206c617374206c6f616e2069642067656e6572617465642c437265617465644c6f616e0001080202890ccd0c04000409012053746f7261676520666f72206c6f616e73207468617420686173206265656e20637265617465642062757420617265206e6f74207374696c6c206163746976652e2c4163746976654c6f616e73010104022cd10c040010682053746f7261676520666f7220616374697665206c6f616e732ef42054686520696e6465786174696f6e206f6620746869732073746f7261676520646966666572732066726f6d2060437265617465644c6f616e60206f7219012060436c6f7365644c6f616e60206265636175736520686572652077652074727920746f206d696e696d697a652074686520697465726174696f6e207370656564206f7665727020616c6c20616374697665206c6f616e7320696e206120706f6f6c2e28436c6f7365644c6f616e0001080202890cf50c04000c682053746f7261676520666f7220636c6f736564206c6f616e732eac204e6f206d75746174696f6e732061726520657870656374656420696e20746869732073746f726167652ebc204c6f616e73206172652073746f726564206865726520666f7220686973746f726963616c20707572706f7365732e3857726974654f6666506f6c696379010104022ced03040004a82053746f726573207772697465206f666620706f6c696379207573656420696e206561636820706f6f6c48506f7274666f6c696f56616c756174696f6e010104022cf90c6400000000000000000000000000000000ccfed666000000000004dc2053746f7265732074686520706f7274666f6c696f2076616c756174696f6e206173736f63696174656420746f206561636820706f6f6c01750301e50708544d61784163746976654c6f616e73506572506f6f6c1010e80300000494204d6178206e756d626572206f6620616374697665206c6f616e732070657220706f6f6c2e544d617857726974654f6666506f6c69637953697a6510100a00000004a4204d6178206e756d626572206f662077726974652d6f66662067726f7570732070657220706f6f6c2e01090d602c5065726d697373696f6e73012c5065726d697373696f6e7308285065726d697373696f6e0001080202250d290d0400003c5065726d697373696f6e436f756e740001040221041004000001110401ed0704404d6178526f6c657350657253636f70651010e80300000001550d6144436f6c6c61746f72416c6c6f776c6973740144436f6c6c61746f72416c6c6f776c6973740424416c6c6f776c6973740001040100a8040008682054686520636f6c6c61746f72277320616c6c6f776c6973742e1d01204e6f74653a20576520696d706c656d656e74206974206173206120636c6f73652d656e6f75676820486173685365743a204d61703c56616c696461746f7249642c2028293e2e01250401f1070001590d6218546f6b656e730001290401f50700015d0d6318427269646765011842726964676500012d0401f907083842726964676550616c6c65744964750b2063686e62726467650c4c2050616c6c6574206964656e7469666965722e00a420546865206d6f64756c65206964656e746966696572206d6179206265206f662074686520666f726d344e6174697665546f6b656e4964048000000000000000000000000000000009e974040e705c10fb4de576d6cc2619010001610d653c496e7465726573744163637275616c013c496e7465726573744163637275616c081452617465730100650d0400002c4c6173745570646174656401002c200000000000000000000001fd070001710d66204b657973746f726501204b657973746f72650c104b6579730001080202750d7d0d04000480204b6579732074686174206172652063757272656e746c792073746f7265642e404c6173744b65794279507572706f73650001080202810d30040004c42053746f72616765207573656420666f722072657472696576696e67206c617374206b657920627920707572706f73652e284b65794465706f73697401001840000010632d5ec76b05000000000000000405012053746f726573207468652063757272656e74206465706f73697420746861742077696c6c2062652074616b656e207768656e20736176696e672061206b65792e013104010108041c4d61784b65797310100a00000004d0204d6178696d756d206e756d626572206f66206b65797320746861742063616e20626520616464656420617420612074696d652e01850d682c496e766573746d656e7473012c496e766573746d656e74732834496e766573744f7264657249640101040249042c200000000000000000003452656465656d4f7264657249640101040249042c2000000000000000000030496e766573744f72646572730001080202890d8d0d0400003052656465656d4f72646572730001080202890d8d0d04000048416374697665496e766573744f72646572730101040249041d084000000000000000000000000000000000004841637469766552656465656d4f72646572730101040249041d0840000000000000000000000000000000000060496e50726f63657373696e67496e766573744f72646572730001040249041d0804000060496e50726f63657373696e6752656465656d4f72646572730001040249041d080400004c436c6561726564496e766573744f72646572730001080205910d19080400004c436c656172656452656465656d4f72646572730001080205910d190804000001450401050804584d61784f75747374616e64696e67436f6c6c6563747310100a00000008d82054686520626f756e64206f6e20686f77206d616e792066756c66696c6c6564206f726465727320776520636163686520756e74696c80207468652075736572206e6565647320746f20636f6c6c656374207468656d2e01950d69504c6971756964697479526577617264734261736501504c697175696469747952657761726473426173650c2043757272656e637901010402b903990d48000000000000000000000000000000000000001447726f75700101040210b10dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000305374616b654163636f756e740101080202b50db90dd80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012108042050616c6c65744964750b206366672f626c72770c1501204964656e746966696572206f6620746869732070616c6c6574207573656420617320616e206163636f756e742077686572652073746f7265732074686520726577617264f02074686174206973206e6f7420636c61696d65642e205768656e20796f752064697374726962757465207265776172642c2074686520616d6f756e745c20646973747269627574656420676f657320686572652e01bd0d6a404c69717569646974795265776172647301404c6971756964697479526577617264730c28456e644f6645706f636801002c20000000000000000004f020436f6e7461696e73207468652074696d657374616d70207768656e207468652063757272656e742065706f63682069732066696e616c697a65642e3c41637469766545706f6368446174610100c10d6460ea000000000000000000000000000000000000000000000004982044617461206173736f63696174656420746f207468652063757272656e742065706f63682e404e65787445706f63684368616e67657301002908100000000008ec2050656e64696e672075706461746520646174612075736564207768656e207468652063757272656e742065706f63682066696e616c697a65732eac204f6e63652069742773207573656420666f7220746865207570646174652c20697427732072657365742e014d040125080c244d617847726f7570731010140000000c80204d61782067726f757073207573656420627920746869732070616c6c65742ef42049662074686973206c696d697420697320726561636865642c207468652065786365656465642067726f7570732061726520656974686572206e6f746420636f6d707574656420616e64206e6f742073746f7265642e484d61784368616e67657350657245706f63681010320000000c1501204d6178206e756d626572206f66206368616e676573206f66207468652073616d65207479706520656e71756575656420746f206170706c7920696e20746865206e657874e42065706f63682e204d61782063616c6c7320746f205b6050616c6c65743a3a7365745f67726f75705f7765696768742829605d206f7220746fcc205b6050616c6c65743a3a7365745f63757272656e63795f67726f75702829605d2077697468207468652073616d652069642e50496e697469616c45706f63684475726174696f6e2c2060ea0000000000000c6020496e697469616c2065706f6368206475726174696f6e2e9820546869732076616c75652063616e2062652075706461746564206c61746572207573696e678c205b6050616c6c65743a3a7365745f65706f63685f6475726174696f6e2829605d602e01c90d6b384c6971756964697479506f6f6c7301384c6971756964697479506f6f6c7300015104014d08085447656e6572616c43757272656e63795072656669788d0230b64fd1c3a60c260188389850040101205468652070726566697820666f722063757272656e636965732061646465642076696120746865204c6971756964697479506f6f6c7320666561747572652e3c54726561737572794163636f756e7400806d6f646c70792f7472737279000000000000000000000000000000000000000018f420546865207479706520666f7220706179696e6720746865207472616e73616374696f6e206665657320666f7220746865206469737061746368206f66b4206046756c66696c6c65642a6020616e6420605363686564756c655570677261646560206d657373616765732e00f4204e4f54453a205765206e65656420746f206d616b65207375726520746f20636f6c6c6563742074686520617070726f70726961746520616d6f756e74f4206265666f726568616e642061732070617274206f6620726563656976696e672074686520636f72726573706f6e64696e6720696e766573746d656e7424206d6573736167652e01cd0d6c30506f6f6c52656769737472790130506f6f6c52656769737472790830506f6f6c4d65746164617461000104022cd10d04000014506f6f6c73000104022cd90d040000015904017108082c4d61785472616e63686573101005000000045c204d6178206e756d626572206f66205472616e636865733c4d617853697a654d6574616461746110102e0000000454204d61782073697a65206f66204d6574616461746101dd0d6d40426c6f636b52657761726473426173650140426c6f636b52657761726473426173650c2043757272656e637901010402b903e10d48000000000000000000000000000000000000001447726f75700101040210f10d80000000000000000000000000000000000000000000000000000000000000000000305374616b654163636f756e740101080202b50df50d88000000000000000000000000000000000000000000000000000000000000000000000000017908042050616c6c65744964750b206366672f626c72770c1501204964656e746966696572206f6620746869732070616c6c6574207573656420617320616e206163636f756e742077686572652073746f7265732074686520726577617264f02074686174206973206e6f7420636c61696d65642e205768656e20796f752064697374726962757465207265776172642c2074686520616d6f756e745c20646973747269627574656420676f657320686572652e01f90d6e30426c6f636b526577617264730130426c6f636b52657761726473084441637469766553657373696f6e446174610100fd0db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a02044617461206173736f63696174656420746f207468652063757272656e742073657373696f6e2e484e65787453657373696f6e4368616e67657301008108340000000000000000000000000008f42050656e64696e672075706461746520646174612075736564207768656e207468652063757272656e742073657373696f6e2066696e616c697a65732eac204f6e63652069742773207573656420666f7220746865207570646174652c20697427732072657365742e01bd04017d08103c5374616b6543757272656e63794964b90308050008050120546865206964656e746966696572206f6620746865206172746966696369616c20626c6f636b20726577617264732063757272656e637920776869636820697384206d696e74656420616e64206275726e656420666f7220636f6c6c61746f72732e2c5374616b65416d6f756e741840000064a7b3b6e00d00000000000000000811012054686520616d6f756e74206f6620746865206172746966696369616c20626c6f636b20726577617264732063757272656e6379207768696368206973206d696e7465646820616e64206275726e656420666f7220636f6c6c61746f72732e305374616b6547726f75704964101001000000049820546865206964656e746966696572206f662074686520636f6c6c61746f722067726f75702e304d6178436f6c6c61746f72731010200000000001010e6f445472616e73666572416c6c6f774c69737401445472616e73666572416c6c6f774c69737408844163636f756e7443757272656e63795472616e73666572436f756e7444656c61790001080505050e090e04005811012053746f72616765206974656d20636f6e7461696e696e67206e756d626572206f6620616c6c6f77616e636573207365742c2064656c617920666f722073656e64696e671d01206163636f756e742f63757272656e63792c20616e6420626c6f636b206e756d6265722064656c6179206973206d6f6469666961626c652061742e20436f6e7461696e7320616ef420696e7374616e6365206f6620416c6c6f77616e63654d65746164617461207769746820616c6c6f77616e636520636f756e742061732060753634602c0d012063757272656e745f64656c617920617320604f7074696f6e3c426c6f636b4e756d626572466f723c543e3e602c20616e64206d6f6469666961626c655f61742061731d0120604f7074696f6e3c426c6f636b4e756d626572466f723c543e3e602e20496620612064656c6179206973207365742c20627574206e6f20616c6c6f77616e63657320686176652501206265656e20637265617465642c2060616c6c6f77616e63655f636f756e74602077696c6c2062652073657420746f206030602e204120646f75626c65206d617020697320757365640d012068657265206173207765206e65656420746f206b6e6f7720776865746865722074686572652069732061207265737472696374696f6e2073657420666f72207468650501206163636f756e7420616e642063757272656e637920696e207468652063617365207768657265207468657265206973206e6f20616c6c6f77616e636520666f7225012064657374696e6174696f6e206c6f636174696f6e2e205573696e6720616e2053746f726167654e4d617020776f756c64206e6f7420616c6c6f7720757320746f206c6f6f6b20757019012077686574686572207468657265207761732061207265737472696374696f6e20666f72207468652073656e64696e67206163636f756e7420616e642063757272656e63792c3020676976656e20746861743a2501202d20776527726520636865636b696e672077686574686572207468657265277320616e20616c6c6f77616e63652073706563696669656420666f72207468652072656365697665722c2020206c6f636174696f6e21012020202d20776520776f756c64206f6e6c792066696e6420776865746865722061207265737472696374696f6e207761732073657420666f7220746865206163636f756e7420696e4820202020207468697320636173652069663a250120202020202d20616e20616c6c6f77616e6365207761732073706563696669656420666f722074686520726563656976696e67206c6f636174696f6e2c20776869636820776f756c64a82020202020202072656e64657220626c6f636b6564207265737472696374696f6e73207573656c6573730101202d20776520776f756c64206f7468657277697365206e65656420746f2073746f7265206120766563206f66206c6f636174696f6e732c207768696368206973f820202070726f626c656d6174696320676976656e20746861742074686572652069736e2774206120736574206c696d6974206f6e207265636569766572731d012049662061207472616e73666572207265737472696374696f6e20697320696e20706c6163652c207468656e2061207365636f6e64206c6f6f6b757020697320646f6e65206f6e0901204163636f756e7443757272656e6379416c6c6f77616e63657320746f2073656520696620746865726520697320616e20616c6c6f77616e636520666f72207468652501207265636569766572205468697320616c6c6f777320757320746f206b6565702073746f72616765206d61702076616c7320746f206b6e6f776e2f626f756e6465642073697a65732e804163636f756e7443757272656e63795472616e73666572416c6c6f77616e636500010c0505020d0e110e04000819012053746f72616765206974656d20666f7220616c6c6f77616e6365732073706563696669656420666f7220612073656e64696e67206163636f756e742c2063757272656e637970207479706520616e6420726563656976696e67206c6f636174696f6e01c1040191080001150e70484761705265776172644d656368616e69736d01484761705265776172644d656368616e69736d0828527074486973746f72790001040210a50d040000484c617374446973747269627574696f6e496401001010000000000000000001190e72544c6971756964697479506f6f6c734761746577617901544c6971756964697479506f6f6c73476174657761791034446f6d61696e526f7574657273000104025504050504000c702053746f7261676520666f7220646f6d61696e20726f75746572732e008820546869732063616e206f6e6c792062652073657420627920616e2061646d696e2e24416c6c6f776c69737400010802021d0ea80400100d012053746f72616765207468617420636f6e7461696e732061206c696d69746564206e756d626572206f662077686974656c697374656420696e7374616e636573206f66c8206465706c6f796564206c697175696469747920706f6f6c7320666f72206120706172746963756c617220646f6d61696e2e009c20546869732063616e206f6e6c79206265206d6f64696669656420627920616e2061646d696e2e44446f6d61696e486f6f6b41646472657373000104025504810104001425012053746f7265732074686520686f6f6b2061646472657373206f66206120646f6d61696e20726571756972656420666f7220706172746963756c6172204c50206d657373616765732e0060204c69666574696d653a20496e646566696e6974656c792e00c4204e4f54453a204d757374206f6e6c79206265206368616e676561626c6520766961206041646d696e4f726967696e602e345061636b65644d65737361676500010402210e510804000cd42053746f7265732061206261746368206d6573736167652c206e6f742072656164792079657420746f20626520656e71756575652e1901204c69666574696d652068616e646c6564206279206073746172745f62617463685f6d65737361676528296020616e642060656e645f62617463685f6d657373616765282960302065787472696e736963732e01010501950808584d6178496e636f6d696e674d65737361676553697a651010000400000494204d6178696d756d2073697a65206f6620616e20696e636f6d696e67206d6573736167652e1853656e64657200807369626cd007000000000000000000000000000000000000000007d045564d0008e8205468652073656e646572206163636f756e7420746861742077696c6c206265207573656420696e20746865204f7574626f756e6451756575654020696d706c656d656e746174696f6e2e01250e73244f72646572426f6f6b01244f72646572426f6f6b10184f7264657273000104052c290e08010304cc204d6170206f66204f726465727320746f206c6f6f6b207570206f7264657273206279207468656972206f726465722069642e28557365724f72646572730001080505850ba80801030c90204d6170206f66206f726465727320666f72206120706172746963756c61722075736572d4205573656420746f207175657279206f726465727320666f72206120706172746963756c61722075736572207573696e672074686584206163636f756e74206964206f6620746865207573657220617320707265666978444f7264657249644e6f6e636553746f726501002c20000000000000000014982053746f726573204f7264657249644e6f6e636520666f72206f726465727320706c616365641d0120476976656e2074686174204f7264657249644e6f6e636520697320746f20656e73757265207468617420616c6c206f72646572732068617665206120756e697175652049442c21012077652063616e20757365206a757374206f6e65204f7264657249644e6f6e63652c207768696368206d65616e732074686174207765206f6e6c792068617665206f6e652076616c090120696e2073746f726167652c20616e6420776520646f6e2774206861766520746f20696e73657274206e6577206d61702076616c7565732075706f6e2061206e657784206163636f756e742f63757272656e6379206f72646572206372656174696f6e2e384d61726b65744665656465724964000035050801060419012053746f72657320746865206d61726b657420666565646572206964207573656420746f207365742077697468206d61726b657420636f6e76657273696f6e20726174696f73012d0501990808684d696e46756c66696c6c6d656e74416d6f756e744e617469766518400000e8890423c78a000000000000000014cc205468652064656661756c74206d696e696d756d2066756c66696c6c6d656e7420616d6f756e7420666f72206f72646572732e000d01204e4f54453a2054686520616d6f756e7420697320657870656374656420746f2062652064656e6f6d696e6174656420696e206e61746976652063757272656e63792e0901205768656e206170706c79696e6720746f20612073776170206f726465722c2069742077696c6c2062652072652d64656e6f6d696e6174656420696e746f2074686544207461726765742063757272656e63792e384e6174697665446563696d616c7310101200000000012d0e7448466f726569676e496e766573746d656e74730148466f726569676e496e766573746d656e74730c54466f726569676e496e766573746d656e74496e666f0001080202890d310e04000cfc20436f6e7461696e732074686520696e666f726d6174696f6e2061626f75742074686520666f726569676e20696e766573746d656e742070726f636573732e0501205468652073746f72616765206973206b696c6c6564206f6e63652074686520696e766573746d656e742069732066756c6c7920636f6c6c65637465642c206f722c206465637265617365642e54466f726569676e526564656d7074696f6e496e666f0001080202890d350e04000cfc20436f6e7461696e732074686520696e666f726d6174696f6e2061626f75742074686520666f726569676e20726564656d7074696f6e2070726f636573732e0501205468652073746f72616765206973206b696c6c6564206f6e63652074686520726564656d7074696f6e2069732066756c6c7920636f6c6c656374656420616e646c2066756c6c792073776170706564206f72206465637265617365643c4f726465724964546f537761704964000104022c390e0400080101204d617073206120604f7264657249646020746f2069747320636f72726573706f6e64696e6720604163636f756e7449646020616e642060537761704964602eec205468652073746f72616765206973206b696c6c6564207768656e207468652073776170206f72646572206e6f206c6f6e6765722065786973747300019d0800013d0e753c4f7261636c65507269636546656564013c4f7261636c65507269636546656564042446656456616c7565730001080202410e450e040004a82053746f726520616c6c206f7261636c652076616c75657320696e64657865642062792066656564657201390501ad08000076544f7261636c655072696365436f6c6c656374696f6e01544f7261636c655072696365436f6c6c656374696f6e1028436f6c6c656374696f6e010104022c490e4400e04cd3b791010000e04cd3b79101000004a82053746f726520616c6c206f7261636c652076616c75657320696e646578656420627920666565646572104b6579730101080202610e10100000000008d42053746f726520746865206b65797320746861742061726520726567697374656420666f72207468697320636f6c6c656374696f6e2101204f6e6c79206b657973207265676973746572656420696e20746869732073746f72652063616e206265207573656420746f206372656174652074686520636f6c6c656374696f6e38436f6c6c656374696f6e496e666f010104022c41051800000000000004a82053746f726520616c6c206f7261636c652076616c75657320696e64657865642062792066656564657248436f6c6c656374696f6e4b6579436f756e74010104022c10100000000004a82053746f726520616c6c206f7261636c652076616c75657320696e646578656420627920666565646572013d0501b10808444d6178436f6c6c656374696f6e53697a651010640000000478204d61782073697a65206f662061206461746120636f6c6c656374696f6e404d6178466565646572735065724b65791010050000000468204d6178206e756d626572206f6620636f6c6c656374696f6e7301650e7724416e63686f727356320124416e63686f727356320c1c416e63686f727300010401510e690e040004782053746f7261676520666f7220646f63756d656e7420616e63686f72732e3c506572736f6e616c416e63686f727300010801016d0ea8040004d42053746f7261676520666f7220646f63756d656e7420616e63686f727320737065636966696320746f20616e206163636f756e742e34416e63686f724465706f73697401001840000010632d5ec76b05000000000000000419012053746f726573207468652063757272656e74206465706f73697420746861742077696c6c2062652074616b656e207768656e2073746f72696e6720616e20616e63686f722e01510501b5080001710e82684c6971756964697479506f6f6c7347617465776179517565756501684c6971756964697479506f6f6c734761746577617951756575650c444d6573736167654e6f6e636553746f726501002c20000000000000000000304d6573736167655175657565000104022cbd080400041d012053746f7261676520666f72206d6573736167657320746861742077696c6c2062652070726f63657373656420647572696e672074686520606f6e5f69646c656020686f6f6b2e484661696c65644d6573736167655175657565000104022c750e040004d02053746f7261676520666f72206d657373616765732074686174206661696c656420647572696e672070726f63657373696e672e01550501b9080001790e832458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e64656401007d0e0400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d705374617475730100890e0400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d657373616765730101080205950e34040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d65737361676573010104025d0134040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e6669670100990e302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401007804000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f72010104055d01d90940000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e01590501c108044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e019d0e782c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e74657201002c200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c51756572696573000104022ca10e0400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040630101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502b10e10040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502b10e2c040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502b10eb50e04000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100b90e04000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000c50e0400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202c90ed10e040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200e10e040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010078040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e015d0501c5080001ed0e792843756d756c757358636d000001cd0800007a1c58546f6b656e7300019106000001f10e7c3458636d5472616e736163746f72013458636d5472616e736163746f721038496e646578546f4163636f756e7400010402b40004000c45012053696e636520776520617265207573696e672070616c6c65742d7574696c69747920666f72206163636f756e742064657269766174696f6e20287468726f75676820417344657269766174697665292c6d01207765206e65656420746f2070726f7669646520616e20696e64657820666f7220746865206163636f756e742064657269766174696f6e2e20546869732073746f72616765206974656d2073746f7265732074686520696e64657879012061737369676e656420666f72206120676976656e206c6f63616c206163636f756e742e20546865736520696e64696365732061726520757361626c65206173206465726976617469766520696e207468652072656c617920636861696e6c5472616e73616374496e666f576974685765696768744c696d697400010402dd01d50804000c59012053746f72657320746865207472616e7361637420696e666f206f662061204c6f636174696f6e2e205468697320646566696e657320686f77206d75636820657874726120776569676874207765206e65656420746f6d0120616464207768656e2077652077616e7420746f207472616e7361637420696e207468652064657374696e6174696f6e20636861696e20616e64206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656464206279207468652064657374696e6174696f6e20636861696e7044657374696e6174696f6e41737365744665655065725365636f6e6400010405dd01180400085d012053746f726573207468652066656520706572207365636f6e6420666f7220616e20617373657420696e20697473207265736572766520636861696e2e205468697320616c6c6f777320757320746f20636f6e766572744c2066726f6d2077656967687420746f206665653052656c6179496e64696365730100f50e4800000000000000000000000000000000000004a82053746f7265732074686520696e6469636573206f662072656c617920636861696e2070616c6c65747301a10601d108083053656c664c6f636174696f6edd0114010100411f04542053656c6620636861696e206c6f636174696f6e2e344261736558636d57656967687424140284d717000c00f0205468652061637475616c2077656967687420666f7220616e2058434d206d6573736167652069732060543a3a4261736558636d576569676874202b6c20543a3a576569676865723a3a77656967687428266d736729602e01f90e7d2c4f726d6c58546f6b656e73000001d908083053656c664c6f636174696f6edd0114010100411f04542053656c6620636861696e206c6f636174696f6e2e344261736558636d57656967687424140284d71700104420426173652058434d207765696768742e00f8205468652061637475616c6c792077656967687420666f7220616e2058434d206d6573736167652069732060543a3a4261736558636d576569676874202b6c20543a3a576569676865723a3a77656967687428266d736729602e01fd0e7e304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405cd06010f74000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000cd06040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e14506167657300010805050d0f110f0400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01c90601dd080c204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874b9062c01070016d0be28020070001441012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f726820736572766963696e6720656e717565756564206974656d732e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6ca82060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c792e01190f7f284f726d6c546f6b656e7301284f726d6c546f6b656e731034546f74616c49737375616e636501010405b90318400000000000000000000000000000000004902054686520746f74616c2069737375616e6365206f66206120746f6b656e20747970652e144c6f636b730101080205b50d1d0f040008d820416e79206c6971756964697479206c6f636b73206f66206120746f6b656e207479706520756e64657220616e206163636f756e742e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e204163636f756e74730101080205b50d290fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018b8205468652062616c616e6365206f66206120746f6b656e207479706520756e64657220616e206163636f756e742e00fc204e4f54453a2049662074686520746f74616c2069732065766572207a65726f2c206465637265617365206163636f756e7420726566206163636f756e742e001901204e4f54453a2054686973206973206f6e6c79207573656420696e20746865206361736520746861742074686973206d6f64756c65206973207573656420746f2073746f7265282062616c616e6365732e2052657365727665730101080205b50d2d0f040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e0001e50808204d61784c6f636b73101032000000002c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01390f962c436861696e427269646765012c436861696e427269646765182c436861696e4e6f6e63657300010401082c040004fc20416c6c2077686974656c697374656420636861696e7320616e642074686569722072657370656374697665207472616e73616374696f6e20636f756e74735052656c61796572566f74655468726573686f6c64010010100100000004cc204e756d626572206f6620766f74657320726571756972656420666f7220612070726f706f73616c20746f20657865637574652052656c61796572730101040100780400046c20547261636b732063757272656e742072656c61796572207365743052656c61796572436f756e7401001010000000000468204e756d626572206f662072656c617965727320696e2073657414566f74657300010801013d0f450f0400085420416c6c206b6e6f776e2070726f706f73616c732e2d0120546865206b6579206973207468652068617368206f66207468652063616c6c20616e6420746865206465706f7369742049442c20746f20656e73757265206974277320756e697175652e245265736f75726365730001040104340400041901205574696c697a6564206279207468652062726964676520736f66747761726520746f206d6170207265736f757263652049447320746f2061637475616c206d6574686f647301d10601e908101c436861696e4964080401087c20546865206964656e74696669657220666f72207468697320636861696e2e6d012054686973206d75737420626520756e6971756520616e64206d757374206e6f7420636f6c6c6964652077697468206578697374696e67204944732077697468696e206120736574206f66206272696467656420636861696e732e2050616c6c65744964750b2063686e627264676510410120436f6e7374616e7420636f6e66696775726174696f6e20706172616d6574657220746f2073746f726520746865206d6f64756c65206964656e74696669657220666f72207468652070616c6c65742e00390120546865206d6f64756c65206964656e746966696572206d6179206265206f662074686520666f726d2060606050616c6c65744964282a622263686e6272646765222960606020616e6420736574a901207573696e6720746865205b60706172616d657465725f7479706573605d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6d6163726f7323706172616d657465725f7479706573294050726f706f73616c4c69666574696d651010f4010000005052656c61796572566f74655468726573686f6c64101001000000040502205479706520666f722073657474696e6720696e697469616c206e756d626572206f6620766f74657320726571756972656420666f7220612070726f706f73616c20746f2062652065786563757465642028736565205b52656c61796572566f74655468726573686f6c645d20696e2073746f726167652073656374696f6e292e014d0f97444f726d6c4173736574526567697374727901444f726d6c417373657452656769737472790c204d6574616461746100010405b903d906040004bc20546865206d65746164617461206f6620616e2061737365742c20696e64657865642062792061737365742069642e444c6f636174696f6e546f4173736574496400010405ed04b903040008f0204d6170732061206c6f636174696f6e20746f20616e206173736574206964202d2075736566756c207768656e2070726f63657373696e672078636d28206d657373616765732e2c4c617374417373657449640100b9030400040d0120546865206c6173742070726f636573736564206173736574206964202d2075736564207768656e2061737369676e696e6720612073657175656e7469616c2069642e01d50601ed08042c537472696e674c696d697410108000000004a020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2e01510f981c4f726d6c58636d011c4f726d6c58636d0001010701f1080001550f990c45564d010c45564d10304163636f756e74436f64657301010402210234040000504163636f756e74436f6465734d65746164617461000104022102590f0400003c4163636f756e7453746f726167657301010802025d0f3080000000000000000000000000000000000000000000000000000000000000000000205375696369646564000104022102a804000001050701f5080001610fa02845564d436861696e4964012845564d436861696e4964041c436861696e496401002c2000000000000000000448205468652045564d20636861696e2049442e00000000a11c42617365466565011c4261736546656508344261736546656550657247617301001d058000ca9a3b000000000000000000000000000000000000000000000000000000000028456c6173746963697479010019071048e801000001150701fd080000a220457468657265756d0120457468657265756d141c50656e64696e670100650f040004d02043757272656e74206275696c64696e6720626c6f636b2773207472616e73616374696f6e7320616e642072656365697074732e3043757272656e74426c6f636b0000890f04000470205468652063757272656e7420457468657265756d20626c6f636b2e3c43757272656e74526563656970747300009d0f0400047c205468652063757272656e7420457468657265756d2072656365697074732e6843757272656e745472616e73616374696f6e53746174757365730000a10f04000488205468652063757272656e74207472616e73616374696f6e2073746174757365732e24426c6f636b48617368010104051d053080000000000000000000000000000000000000000000000000000000000000000000011d070101090001a50fa34c457468657265756d5472616e73616374696f6e014c457468657265756d5472616e73616374696f6e04144e6f6e636501001d05800000000000000000000000000000000000000000000000000000000000000000044c2053746f7261676520666f72206e6f6e63652e00000001a90fa46c4c6971756964697479506f6f6c734178656c617247617465776179016c4c6971756964697479506f6f6c734178656c617247617465776179083c47617465776179436f6e7472616374010021025000000000000000000000000000000000000000000040536f75726365436f6e76657273696f6e0001040530490704000819012060536f75726365436f6e76657273696f6e6020697320612060686173685f6f66285665633c75383e29602077686572652074686520605665633c75383e6020697320746865250120626c616b653235362d68617368206f662074686520736f757263652d636861696e206964656e746966696572207573656420627920746865204178656c6172206e6574776f726b2e0145070125090001ad0fa5105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e014d070129090001b10fc820506f6f6c466565730120506f6f6c4665657318184665654964730101080202b50fb90f0400100101204d617073206120706f6f6c20746f20746865697220636f72726573706f6e64696e6720666565206964732077697468205b506f6f6c4665654275636b65745d34206772616e756c61726974792e001101204c69666574696d65206f6620612073746f7261676520656e7472793a20466f72657665722c20696e686572697465642066726f6d20706f6f6c206c69666574696d652e244c617374466565496401002c2000000000000000000cd420536f75726365206f6620747275746820666f7220746865206c617374206372656174656420666565206964656e7469666965722e004c204c69666574696d653a20466f72657665722e48466565496473546f506f6f6c4275636b6574000104022cb50f04000c1501204d617073206120666565206964656e74696669657220746f2074686520636f72726573706f6e64696e6720706f6f6c20616e64205b506f6f6c4665654275636b65745d2e001101204c69666574696d65206f6620612073746f7261676520656e7472793a20466f72657665722c20696e686572697465642066726f6d20706f6f6c206c69666574696d652e28416374697665466565730101080202b50fbd0f040014210120526570726573656e74732074686520616374697665206665657320666f72206120676976656e20706f6f6c20696420616e6420666565206275636b65742e20466f7220656163682101206665652c20746865206c696d69742061732077656c6c2061732070656e64696e672c2064697362757273656d656e7420616e642070617961626c6520616d6f756e7473206172652820696e636c756465642e001101204c69666574696d65206f6620612073746f7261676520656e7472793a20466f72657665722c20696e686572697465642066726f6d20706f6f6c206c69666574696d652e48506f7274666f6c696f56616c756174696f6e010104022cd10f6400000000000000000000000000000000ccfed66600000000001009012053746f7265732074686520286e656761746976652920706f7274666f6c696f2076616c756174696f6e206173736f63696174656420746f206561636820706f6f6c9820646572697665642066726f6d207468652070656e64696e672066656520616d6f756e74732e001101204c69666574696d65206f6620612073746f7261676520656e7472793a20466f72657665722c20696e686572697465642066726f6d20706f6f6c206c69666574696d652e54417373657473556e6465724d616e6167656d656e74010104022c1840000000000000000000000000000000001009012053746f726573207468652028706f7369746976652920706f7274666f6c696f2076616c756174696f6e206173736f63696174656420746f206561636820706f6f6cb020646572697665642066726f6d207468652041554d206f66207468652070726576696f75732065706f63682e001101204c69666574696d65206f6620612073746f7261676520656e7472793a20466f72657665722c20696e686572697465642066726f6d20706f6f6c206c69666574696d652e015107012d09042050616c6c65744964750b206366672f706c667308fc204964656e746966696572206f6620746869732070616c6c6574207573656420617320616e206163636f756e742077686963682074656d706f726172696c7909012073746f7265732064697362757273696e67206665657320696e206265747765656e20636c6f73696e6720616e6420657865637574696e6720616e2065706f63682e01d90ffa1c52656d61726b73000155070131090001dd0ffb20546f6b656e4d75780120546f6b656e4d757800016d07013509042050616c6c65744964750b206366672f746d75780001e10ffde50f042848436865636b4e6f6e5a65726f53656e646572ed0fa840436865636b5370656356657273696f6ef10f1038436865636b547856657273696f6ef50f1030436865636b47656e65736973f90f3038436865636b4d6f7274616c697479fd0f3028436865636b4e6f6e63650510a82c436865636b5765696768740910a8604368617267655472616e73616374696f6e5061796d656e740d10a844436865636b4d65746164617461486173681110806c50726542616c616e63655472616e73666572457874656e73696f6e1910a80905" ) diff --git a/rpc/author/author.go b/rpc/author/author.go index b2a89f146..0ff4aff42 100644 --- a/rpc/author/author.go +++ b/rpc/author/author.go @@ -21,12 +21,13 @@ package author import ( "github.com/centrifuge/go-substrate-rpc-client/v4/client" "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic" ) type Author interface { - SubmitAndWatchExtrinsic(xt types.Extrinsic) (*ExtrinsicStatusSubscription, error) - PendingExtrinsics() ([]types.Extrinsic, error) - SubmitExtrinsic(xt types.Extrinsic) (types.Hash, error) + SubmitAndWatchExtrinsic(xt extrinsic.Extrinsic) (*ExtrinsicStatusSubscription, error) + SubmitExtrinsic(xt extrinsic.Extrinsic) (types.Hash, error) + PendingExtrinsics() ([]string, error) } // author exposes methods for authoring of network items diff --git a/rpc/author/mocks/author.go b/rpc/author/mocks/author.go index 4c4f45c21..68e89e45c 100644 --- a/rpc/author/mocks/author.go +++ b/rpc/author/mocks/author.go @@ -4,6 +4,8 @@ package mocks import ( author "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/author" + extrinsic "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic" + mock "github.com/stretchr/testify/mock" types "github.com/centrifuge/go-substrate-rpc-client/v4/types" @@ -15,15 +17,15 @@ type Author struct { } // PendingExtrinsics provides a mock function with given fields: -func (_m *Author) PendingExtrinsics() ([]types.Extrinsic, error) { +func (_m *Author) PendingExtrinsics() ([]string, error) { ret := _m.Called() - var r0 []types.Extrinsic - if rf, ok := ret.Get(0).(func() []types.Extrinsic); ok { + var r0 []string + if rf, ok := ret.Get(0).(func() []string); ok { r0 = rf() } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]types.Extrinsic) + r0 = ret.Get(0).([]string) } } @@ -38,11 +40,11 @@ func (_m *Author) PendingExtrinsics() ([]types.Extrinsic, error) { } // SubmitAndWatchExtrinsic provides a mock function with given fields: xt -func (_m *Author) SubmitAndWatchExtrinsic(xt types.Extrinsic) (*author.ExtrinsicStatusSubscription, error) { +func (_m *Author) SubmitAndWatchExtrinsic(xt extrinsic.Extrinsic) (*author.ExtrinsicStatusSubscription, error) { ret := _m.Called(xt) var r0 *author.ExtrinsicStatusSubscription - if rf, ok := ret.Get(0).(func(types.Extrinsic) *author.ExtrinsicStatusSubscription); ok { + if rf, ok := ret.Get(0).(func(extrinsic.Extrinsic) *author.ExtrinsicStatusSubscription); ok { r0 = rf(xt) } else { if ret.Get(0) != nil { @@ -51,7 +53,7 @@ func (_m *Author) SubmitAndWatchExtrinsic(xt types.Extrinsic) (*author.Extrinsic } var r1 error - if rf, ok := ret.Get(1).(func(types.Extrinsic) error); ok { + if rf, ok := ret.Get(1).(func(extrinsic.Extrinsic) error); ok { r1 = rf(xt) } else { r1 = ret.Error(1) @@ -61,11 +63,11 @@ func (_m *Author) SubmitAndWatchExtrinsic(xt types.Extrinsic) (*author.Extrinsic } // SubmitExtrinsic provides a mock function with given fields: xt -func (_m *Author) SubmitExtrinsic(xt types.Extrinsic) (types.Hash, error) { +func (_m *Author) SubmitExtrinsic(xt extrinsic.Extrinsic) (types.Hash, error) { ret := _m.Called(xt) var r0 types.Hash - if rf, ok := ret.Get(0).(func(types.Extrinsic) types.Hash); ok { + if rf, ok := ret.Get(0).(func(extrinsic.Extrinsic) types.Hash); ok { r0 = rf(xt) } else { if ret.Get(0) != nil { @@ -74,7 +76,7 @@ func (_m *Author) SubmitExtrinsic(xt types.Extrinsic) (types.Hash, error) { } var r1 error - if rf, ok := ret.Get(1).(func(types.Extrinsic) error); ok { + if rf, ok := ret.Get(1).(func(extrinsic.Extrinsic) error); ok { r1 = rf(xt) } else { r1 = ret.Error(1) diff --git a/rpc/author/pending_extrinsics.go b/rpc/author/pending_extrinsics.go index 164c25962..4b4b8339b 100644 --- a/rpc/author/pending_extrinsics.go +++ b/rpc/author/pending_extrinsics.go @@ -16,25 +16,13 @@ package author -import ( - "github.com/centrifuge/go-substrate-rpc-client/v4/types" - "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" -) - -// PendingExtrinsics returns all pending extrinsics, potentially grouped by sender -func (a *author) PendingExtrinsics() ([]types.Extrinsic, error) { - var res []string - err := a.client.Call(&res, "author_pendingExtrinsics") +// PendingExtrinsics returns all pending extrinsics. +func (a *author) PendingExtrinsics() ([]string, error) { + var extrinsics []string + err := a.client.Call(&extrinsics, "author_pendingExtrinsics") if err != nil { return nil, err } - xts := make([]types.Extrinsic, len(res)) - for i, re := range res { - err = codec.DecodeFromHex(re, &xts[i]) - if err != nil { - return nil, err - } - } - return xts, err + return extrinsics, nil } diff --git a/rpc/author/pending_extrinsics_test.go b/rpc/author/pending_extrinsics_test.go index 296c5e206..33691a41c 100644 --- a/rpc/author/pending_extrinsics_test.go +++ b/rpc/author/pending_extrinsics_test.go @@ -17,7 +17,6 @@ package author_test import ( - "fmt" "testing" gsrpc "github.com/centrifuge/go-substrate-rpc-client/v4" @@ -28,9 +27,6 @@ import ( func TestAuthor_PendingExtrinsics(t *testing.T) { api, err := gsrpc.NewSubstrateAPI(config.Default().RPCURL) assert.NoError(t, err) - res, err := api.RPC.Author.PendingExtrinsics() + _, err = api.RPC.Author.PendingExtrinsics() assert.NoError(t, err) - for _, ext := range res { - fmt.Printf("Pending txn from %v with nonce %v\n", ext.Signature.Signer, ext.Signature.Nonce) - } } diff --git a/rpc/author/submit_and_watch_extrinsic.go b/rpc/author/submit_and_watch_extrinsic.go index 8a9f16918..5d45a1dbb 100644 --- a/rpc/author/submit_and_watch_extrinsic.go +++ b/rpc/author/submit_and_watch_extrinsic.go @@ -24,6 +24,7 @@ import ( gethrpc "github.com/centrifuge/go-substrate-rpc-client/v4/gethrpc" "github.com/centrifuge/go-substrate-rpc-client/v4/types" "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic" ) // ExtrinsicStatusSubscription is a subscription established through one of the Client's subscribe methods. @@ -63,19 +64,23 @@ func (s *ExtrinsicStatusSubscription) Unsubscribe() { // SubmitAndWatchExtrinsic will submit and subscribe to watch an extrinsic until unsubscribed, returning a subscription // that will receive server notifications containing the extrinsic status updates. -func (a *author) SubmitAndWatchExtrinsic(xt types.Extrinsic) (*ExtrinsicStatusSubscription, error) { //nolint:lll +func (a *author) SubmitAndWatchExtrinsic(xt extrinsic.Extrinsic) (*ExtrinsicStatusSubscription, error) { //nolint:lll + hexEncodedExtrinsic, err := codec.EncodeToHex(xt) + if err != nil { + return nil, err + } + + return a.submitAndWatchExtrinsic(hexEncodedExtrinsic) +} + +func (a *author) submitAndWatchExtrinsic(hexEncodedExtrinsic string) (*ExtrinsicStatusSubscription, error) { //nolint:lll ctx, cancel := context.WithTimeout(context.Background(), config.Default().SubscribeTimeout) defer cancel() c := make(chan types.ExtrinsicStatus) - enc, err := codec.EncodeToHex(xt) - if err != nil { - return nil, err - } - sub, err := a.client.Subscribe(ctx, "author", "submitAndWatchExtrinsic", "unwatchExtrinsic", "extrinsicUpdate", - c, enc) + c, hexEncodedExtrinsic) if err != nil { return nil, err } diff --git a/rpc/author/submit_and_watch_extrinsic_test.go b/rpc/author/submit_and_watch_extrinsic_test.go index 4e3f342aa..ed46d8697 100644 --- a/rpc/author/submit_and_watch_extrinsic_test.go +++ b/rpc/author/submit_and_watch_extrinsic_test.go @@ -1,6 +1,7 @@ package author_test import ( + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic" "testing" gsrpc "github.com/centrifuge/go-substrate-rpc-client/v4" @@ -30,7 +31,7 @@ func TestAuthor_SubmitAndWatchExtrinsic(t *testing.T) { var sub *author.ExtrinsicStatusSubscription for { // Create the extrinsic - ext := types.NewExtrinsic(c) + ext := extrinsic.NewExtrinsic(c) genesisHash, err := api.RPC.Chain.GetBlockHash(0) assert.NoError(t, err) @@ -46,20 +47,17 @@ func TestAuthor_SubmitAndWatchExtrinsic(t *testing.T) { assert.NoError(t, err) assert.True(t, ok) nonce := uint32(accountInfo.Nonce) - o := types.SignatureOptions{ - BlockHash: genesisHash, - Era: types.ExtrinsicEra{IsMortalEra: false}, - GenesisHash: genesisHash, - Nonce: types.NewUCompactFromUInt(uint64(nonce)), - SpecVersion: rv.SpecVersion, - Tip: types.NewUCompactFromUInt(0), - TransactionVersion: rv.TransactionVersion, - } t.Logf("Sending %v from %#x to %#x with nonce %v\n", amount, signature.TestKeyringPairAlice.PublicKey, bob.AsID, nonce) // Sign the transaction using Alice's default account - err = ext.Sign(signature.TestKeyringPairAlice, o) + err = ext.Sign(signature.TestKeyringPairAlice, meta, extrinsic.WithEra(types.ExtrinsicEra{IsImmortalEra: true}, genesisHash), + extrinsic.WithNonce(types.NewUCompactFromUInt(uint64(nonce))), + extrinsic.WithTip(types.NewUCompactFromUInt(0)), + extrinsic.WithSpecVersion(rv.SpecVersion), + extrinsic.WithTransactionVersion(rv.TransactionVersion), + extrinsic.WithGenesisHash(genesisHash), + ) assert.NoError(t, err) // Do the transfer and track the actual status diff --git a/rpc/author/submit_extrinsic.go b/rpc/author/submit_extrinsic.go index 3c51099e1..0254f25ff 100644 --- a/rpc/author/submit_extrinsic.go +++ b/rpc/author/submit_extrinsic.go @@ -19,10 +19,11 @@ package author import ( "github.com/centrifuge/go-substrate-rpc-client/v4/types" "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic" ) // SubmitExtrinsic will submit a fully formatted extrinsic for block inclusion -func (a *author) SubmitExtrinsic(xt types.Extrinsic) (types.Hash, error) { +func (a *author) SubmitExtrinsic(xt extrinsic.Extrinsic) (types.Hash, error) { enc, err := codec.EncodeToHex(xt) if err != nil { return types.Hash{}, err diff --git a/rpc/author/submit_extrinsic_test.go b/rpc/author/submit_extrinsic_test.go index e19d10f3e..7c00fef5f 100644 --- a/rpc/author/submit_extrinsic_test.go +++ b/rpc/author/submit_extrinsic_test.go @@ -18,6 +18,7 @@ package author_test import ( "fmt" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic" "testing" gsrpc "github.com/centrifuge/go-substrate-rpc-client/v4" @@ -46,7 +47,7 @@ func TestAuthor_SubmitExtrinsic(t *testing.T) { for { // Create the extrinsic - ext := types.NewExtrinsic(c) + ext := extrinsic.NewExtrinsic(c) genesisHash, err := api.RPC.Chain.GetBlockHash(0) assert.NoError(t, err) @@ -62,21 +63,18 @@ func TestAuthor_SubmitExtrinsic(t *testing.T) { assert.NoError(t, err) assert.True(t, ok) nonce := uint32(accountInfo.Nonce) - o := types.SignatureOptions{ - BlockHash: genesisHash, - Era: types.ExtrinsicEra{IsMortalEra: false}, - GenesisHash: genesisHash, - Nonce: types.NewUCompactFromUInt(uint64(nonce)), - SpecVersion: rv.SpecVersion, - Tip: types.NewUCompactFromUInt(0), - TransactionVersion: rv.TransactionVersion, - } fmt.Printf("Sending %v from %#x to %#x with nonce %v\n", amount, signature.TestKeyringPairAlice.PublicKey, bob.AsID, nonce) // Sign the transaction using Alice's default account - err = ext.Sign(signature.TestKeyringPairAlice, o) + err = ext.Sign(signature.TestKeyringPairAlice, meta, extrinsic.WithEra(types.ExtrinsicEra{IsImmortalEra: true}, genesisHash), + extrinsic.WithNonce(types.NewUCompactFromUInt(uint64(nonce))), + extrinsic.WithTip(types.NewUCompactFromUInt(0)), + extrinsic.WithSpecVersion(rv.SpecVersion), + extrinsic.WithTransactionVersion(rv.TransactionVersion), + extrinsic.WithGenesisHash(genesisHash), + ) assert.NoError(t, err) res, err := api.RPC.Author.SubmitExtrinsic(ext) diff --git a/rpc/chain/chain.go b/rpc/chain/chain.go index 7a773643e..c32269e2d 100644 --- a/rpc/chain/chain.go +++ b/rpc/chain/chain.go @@ -21,16 +21,19 @@ package chain import ( "github.com/centrifuge/go-substrate-rpc-client/v4/client" "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/block" ) +//go:generate mockery --name Chain --filename chain.go + type Chain interface { SubscribeFinalizedHeads() (*FinalizedHeadsSubscription, error) SubscribeNewHeads() (*NewHeadsSubscription, error) GetBlockHash(blockNumber uint64) (types.Hash, error) GetBlockHashLatest() (types.Hash, error) GetFinalizedHead() (types.Hash, error) - GetBlock(blockHash types.Hash) (*types.SignedBlock, error) - GetBlockLatest() (*types.SignedBlock, error) + GetBlock(blockHash types.Hash) (*block.SignedBlock, error) + GetBlockLatest() (*block.SignedBlock, error) GetHeader(blockHash types.Hash) (*types.Header, error) GetHeaderLatest() (*types.Header, error) } diff --git a/rpc/chain/generic/block.go b/rpc/chain/generic/block.go deleted file mode 100644 index 38b86be7b..000000000 --- a/rpc/chain/generic/block.go +++ /dev/null @@ -1,265 +0,0 @@ -package generic - -import ( - "encoding/json" - "fmt" - "strings" - - "github.com/centrifuge/go-substrate-rpc-client/v4/scale" - "github.com/centrifuge/go-substrate-rpc-client/v4/types" - "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" -) - -// DefaultGenericSignedBlock is the SignedBlock with defaults for the generic types: -// -// Address - types.MultiAddress -// Signature - types.MultiSignature -// PaymentFields - DefaultPaymentFields -type DefaultGenericSignedBlock = SignedBlock[ - types.MultiAddress, - types.MultiSignature, - DefaultPaymentFields, -] - -// GenericSignedBlock is the interface that represents the block of a particular chain. -// -// This interface is generic over types A, S, P, please check GenericExtrinsicSignature for more -// information about these generic types. -// -//nolint:revive -type GenericSignedBlock[A, S, P any] interface { - GetGenericBlock() GenericBlock[A, S, P] - GetJustification() []byte -} - -// GenericBlock is the interface that holds information about the header and extrinsics of a block. -// -// This interface is generic over types A, S, P, please check GenericExtrinsicSignature for more -// information about these generic types. -// -//nolint:revive -type GenericBlock[A, S, P any] interface { - GetHeader() types.Header - GetExtrinsics() []GenericExtrinsic[A, S, P] -} - -// GenericExtrinsic is the interface that holds the extrinsic information. -// -// This interface is generic over types A, S, P, please check GenericExtrinsicSignature for more -// information about these generic types. -// -//nolint:revive -type GenericExtrinsic[A, S, P any] interface { - GetVersion() byte - GetSignature() GenericExtrinsicSignature[A, S, P] - GetCall() types.Call -} - -// GenericExtrinsicSignature is the interface that holds the extrinsic signature information. -// -// This interface is generic over the following types: -// -// A - Signer, the default implementation for this is the types.MultiAddress type -// which can support a variable number of addresses. -// -// S - Signature, the default implementation for this is the types.MultiSignature type which can support -// multiple signature curves. -// -// P - PaymentFields (ChargeAssetTx in substrate), the default implementation for this is the DefaultPaymentFields which -// holds information about the tip sent for the extrinsic. -// -//nolint:revive -type GenericExtrinsicSignature[A, S, P any] interface { - GetSigner() A - GetSignature() S - GetEra() types.ExtrinsicEra - GetNonce() types.UCompact - GetPaymentFields() P -} - -// SignedBlock implements the GenericSignedBlock interface. -type SignedBlock[A, S, P any] struct { - Block *Block[A, S, P] `json:"block"` - Justification []byte `json:"justification"` -} - -func (s *SignedBlock[A, S, P]) GetGenericBlock() GenericBlock[A, S, P] { - return s.Block -} - -func (s *SignedBlock[A, S, P]) GetJustification() []byte { - return s.Justification -} - -// Block implements the GenericBlock interface. -type Block[A, S, P any] struct { - Header types.Header `json:"header"` - Extrinsics []*Extrinsic[A, S, P] `json:"extrinsics"` -} - -//nolint:revive -func (b *Block[A, S, P]) GetHeader() types.Header { - return b.Header -} - -//nolint:revive -func (b *Block[A, S, P]) GetExtrinsics() []GenericExtrinsic[A, S, P] { - var res []GenericExtrinsic[A, S, P] - - for _, ext := range b.Extrinsics { - res = append(res, ext) - } - return res -} - -// Extrinsic implements the GenericExtrinsic interface. -type Extrinsic[A, S, P any] struct { - // Version is the encoded version flag (which encodes the raw transaction version and signing information in one byte) - Version byte `json:"version"` - // Signature is the ExtrinsicSignature, its presence depends on the Version flag - Signature *ExtrinsicSignature[A, S, P] `json:"signature"` - // Method is the call this extrinsic wraps - Method types.Call `json:"method"` -} - -//nolint:revive -func (e *Extrinsic[A, S, P]) GetVersion() byte { - return e.Version -} - -//nolint:revive -func (e *Extrinsic[A, S, P]) GetSignature() GenericExtrinsicSignature[A, S, P] { - return e.Signature -} - -//nolint:revive -func (e *Extrinsic[A, S, P]) GetCall() types.Call { - return e.Method -} - -// UnmarshalJSON fills Extrinsic with the JSON encoded byte array given by bz -//nolint:revive -func (e *Extrinsic[A, S, P]) UnmarshalJSON(bz []byte) error { - var tmp string - if err := json.Unmarshal(bz, &tmp); err != nil { - return err - } - - var l types.UCompact - - if err := codec.DecodeFromHex(tmp, &l); err != nil { - return err - } - - prefix, err := codec.EncodeToHex(l) - if err != nil { - return err - } - - // determine whether length prefix is there - if strings.HasPrefix(tmp, prefix) { - return codec.DecodeFromHex(tmp, e) - } - - // not there, prepend with compact encoded length prefix - dec, err := codec.HexDecodeString(tmp) - if err != nil { - return err - } - length := types.NewUCompactFromUInt(uint64(len(dec))) - bprefix, err := codec.Encode(length) - if err != nil { - return err - } - bprefix = append(bprefix, dec...) - return codec.Decode(bprefix, e) -} - -// IsSigned returns true if the extrinsic is signed. -//nolint:revive -func (e *Extrinsic[A, S, P]) IsSigned() bool { - return e.Version&types.ExtrinsicBitSigned == types.ExtrinsicBitSigned -} - -// Type returns the raw transaction version. -//nolint:revive -func (e *Extrinsic[A, S, P]) Type() uint8 { - return e.Version & types.ExtrinsicUnmaskVersion -} - -// Decode decodes the extrinsic based on the data present in the decoder. -//nolint:revive -func (e *Extrinsic[A, S, P]) Decode(decoder scale.Decoder) error { - // compact length encoding (1, 2, or 4 bytes) (may not be there for Extrinsics older than Jan 11 2019) - if _, err := decoder.DecodeUintCompact(); err != nil { - return err - } - - if err := decoder.Decode(&e.Version); err != nil { - return err - } - - if e.IsSigned() { - if e.Type() != types.ExtrinsicVersion4 { - return fmt.Errorf("unsupported extrinsic version: %v (isSigned: %v, type: %v)", e.Version, e.IsSigned(), - e.Type()) - } - - e.Signature = new(ExtrinsicSignature[A, S, P]) - - if err := decoder.Decode(&e.Signature); err != nil { - return err - } - } - - if err := decoder.Decode(&e.Method); err != nil { - return err - } - - return nil -} - -// ExtrinsicSignature implements the GenericExtrinsicSignature interface. -type ExtrinsicSignature[A, S, P any] struct { - Signer A - Signature S - Era types.ExtrinsicEra - Nonce types.UCompact - PaymentFields P -} - -//nolint:revive -func (e *ExtrinsicSignature[A, S, P]) GetSigner() A { - return e.Signer -} - -//nolint:revive -func (e *ExtrinsicSignature[A, S, P]) GetSignature() S { - return e.Signature -} - -//nolint:revive -func (e *ExtrinsicSignature[A, S, P]) GetEra() types.ExtrinsicEra { - return e.Era -} - -//nolint:revive -func (e *ExtrinsicSignature[A, S, P]) GetNonce() types.UCompact { - return e.Nonce -} - -//nolint:revive -func (e *ExtrinsicSignature[A, S, P]) GetPaymentFields() P { - return e.PaymentFields -} - -// DefaultPaymentFields represents the default payment fields found in the extrinsics of most substrate chains. -type DefaultPaymentFields struct { - Tip types.UCompact -} - -// PaymentFieldsWithAssetID represents the payment fields found on chains that require an asset ID, such as statemint. -type PaymentFieldsWithAssetID struct { - Tip types.UCompact - AssetID types.Option[types.UCompact] -} diff --git a/rpc/chain/generic/chain.go b/rpc/chain/generic/chain.go deleted file mode 100644 index b82b19458..000000000 --- a/rpc/chain/generic/chain.go +++ /dev/null @@ -1,91 +0,0 @@ -package generic - -import ( - "github.com/centrifuge/go-substrate-rpc-client/v4/client" - libErr "github.com/centrifuge/go-substrate-rpc-client/v4/error" - "github.com/centrifuge/go-substrate-rpc-client/v4/types" -) - -const ( - ErrGetBlockCall = libErr.Error("get block call") -) - -//go:generate mockery --name Chain --structname ChainMock --filename chain_mock.go --inpackage - -// Chain defines an interface for a client that can return a generic block B. -// -// The generic block B allows for multiple implementation of the block that can differ -// for each substrate chain implementation. -type Chain[ - A, S, P any, - B GenericSignedBlock[A, S, P], -] interface { - GetBlock(blockHash types.Hash) (B, error) - GetBlockLatest() (B, error) -} - -// genericChain implements the Chain interface. -type genericChain[ - A, S, P any, - B GenericSignedBlock[A, S, P], -] struct { - client client.Client -} - -// NewChain creates a new instance of Chain. -func NewChain[ - A, S, P any, - B GenericSignedBlock[A, S, P], -](client client.Client) Chain[A, S, P, B] { - return &genericChain[A, S, P, B]{ - client: client, - } -} - -// DefaultChain is the Chain interface with defaults for the generic types: -// -// Address - types.MultiAddress -// Signature - types.MultiSignature -// PaymentFields - DefaultPaymentFields -// Block - *DefaultGenericSignedBlock -type DefaultChain = Chain[ - types.MultiAddress, - types.MultiSignature, - DefaultPaymentFields, - *DefaultGenericSignedBlock, -] - -// NewDefaultChain creates a new DefaultChain. -func NewDefaultChain(client client.Client) DefaultChain { - return NewChain[ - types.MultiAddress, - types.MultiSignature, - DefaultPaymentFields, - *DefaultGenericSignedBlock, - ](client) -} - -// GetBlock retrieves a generic block B found at blockHash. -func (g *genericChain[A, S, P, B]) GetBlock(blockHash types.Hash) (B, error) { - return g.getBlock(&blockHash) -} - -// GetBlockLatest returns the latest generic block B. -func (g *genericChain[A, S, P, B]) GetBlockLatest() (B, error) { - return g.getBlock(nil) -} - -const ( - getBlockMethod = "chain_getBlock" -) - -// getBlock retrieves the generic block B. -func (g *genericChain[A, S, P, B]) getBlock(blockHash *types.Hash) (B, error) { - block := new(B) - - if err := client.CallWithBlockHash(g.client, block, getBlockMethod, blockHash); err != nil { - return *block, ErrGetBlockCall.Wrap(err) - } - - return *block, nil -} diff --git a/rpc/chain/generic/chain_mock.go b/rpc/chain/generic/chain_mock.go deleted file mode 100644 index 8b902fec8..000000000 --- a/rpc/chain/generic/chain_mock.go +++ /dev/null @@ -1,70 +0,0 @@ -// Code generated by mockery v2.13.0-beta.1. DO NOT EDIT. - -package generic - -import ( - types "github.com/centrifuge/go-substrate-rpc-client/v4/types" - mock "github.com/stretchr/testify/mock" -) - -// ChainMock is an autogenerated mock type for the Chain type -type ChainMock[A interface{}, S interface{}, P interface{}, B GenericSignedBlock[A, S, P]] struct { - mock.Mock -} - -// GetBlock provides a mock function with given fields: blockHash -func (_m *ChainMock[A, S, P, B]) GetBlock(blockHash types.Hash) (B, error) { - ret := _m.Called(blockHash) - - var r0 B - if rf, ok := ret.Get(0).(func(types.Hash) B); ok { - r0 = rf(blockHash) - } else { - r0 = ret.Get(0).(B) - } - - var r1 error - if rf, ok := ret.Get(1).(func(types.Hash) error); ok { - r1 = rf(blockHash) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// GetBlockLatest provides a mock function with given fields: -func (_m *ChainMock[A, S, P, B]) GetBlockLatest() (B, error) { - ret := _m.Called() - - var r0 B - if rf, ok := ret.Get(0).(func() B); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(B) - } - - var r1 error - if rf, ok := ret.Get(1).(func() error); ok { - r1 = rf() - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -type NewChainMockT interface { - mock.TestingT - Cleanup(func()) -} - -// NewChainMock creates a new instance of ChainMock. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewChainMock[A interface{}, S interface{}, P interface{}, B GenericSignedBlock[A, S, P]](t NewChainMockT) *ChainMock[A, S, P, B] { - mock := &ChainMock[A, S, P, B]{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/rpc/chain/generic/chain_test.go b/rpc/chain/generic/chain_test.go deleted file mode 100644 index 46a795fc4..000000000 --- a/rpc/chain/generic/chain_test.go +++ /dev/null @@ -1,292 +0,0 @@ -package generic - -import ( - "context" - "errors" - "fmt" - "testing" - - "github.com/centrifuge/go-substrate-rpc-client/v4/client/mocks" - "github.com/centrifuge/go-substrate-rpc-client/v4/types" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/mock" -) - -func TestGenericDefaultChain_GetBlock(t *testing.T) { - clientMock := mocks.NewClient(t) - - genericChain := NewDefaultChain(clientMock) - - blockHash := types.Hash{1, 2, 3} - - blockJustification := []byte{4, 5, 6} - - clientMock.On("CallContext", context.Background(), mock.Anything, mock.Anything, mock.Anything). - Run( - func(args mock.Arguments) { - target, ok := args.Get(1).(**DefaultGenericSignedBlock) - assert.True(t, ok) - - *target = new(DefaultGenericSignedBlock) - (**target).Justification = blockJustification - - method, ok := args.Get(2).(string) - assert.True(t, ok) - assert.Equal(t, getBlockMethod, method) - - hashStr, ok := args.Get(3).(string) - assert.True(t, ok) - - encodedBlockHash := hexutil.Encode(blockHash[:]) - assert.Equal(t, encodedBlockHash, hashStr) - }, - ).Return(nil) - - res, err := genericChain.GetBlock(blockHash) - assert.NoError(t, err) - assert.Equal(t, blockJustification, res.GetJustification()) -} - -func TestGenericDefaultChain_GetBlock_BlockCallError(t *testing.T) { - clientMock := mocks.NewClient(t) - - genericChain := NewDefaultChain(clientMock) - - blockHash := types.Hash{1, 2, 3} - - clientMock.On("CallContext", context.Background(), mock.Anything, mock.Anything, mock.Anything). - Run( - func(args mock.Arguments) { - _, ok := args.Get(1).(**DefaultGenericSignedBlock) - assert.True(t, ok) - - method, ok := args.Get(2).(string) - assert.True(t, ok) - assert.Equal(t, getBlockMethod, method) - - hashStr, ok := args.Get(3).(string) - assert.True(t, ok) - - encodedBlockHash := hexutil.Encode(blockHash[:]) - assert.Equal(t, encodedBlockHash, hashStr) - }, - ).Return(errors.New("error")) - - res, err := genericChain.GetBlock(blockHash) - assert.ErrorIs(t, err, ErrGetBlockCall) - assert.Nil(t, res) -} - -func TestGenericDefaultChain_GetBlockLatest(t *testing.T) { - clientMock := mocks.NewClient(t) - - genericChain := NewDefaultChain(clientMock) - - blockJustification := []byte{4, 5, 6} - - clientMock.On("CallContext", context.Background(), mock.Anything, mock.Anything, mock.Anything). - Run( - func(args mock.Arguments) { - target, ok := args.Get(1).(**DefaultGenericSignedBlock) - assert.True(t, ok) - - *target = new(DefaultGenericSignedBlock) - (**target).Justification = blockJustification - - method, ok := args.Get(2).(string) - assert.True(t, ok) - assert.Equal(t, getBlockMethod, method) - }, - ).Return(nil) - - res, err := genericChain.GetBlockLatest() - assert.NoError(t, err) - assert.Equal(t, blockJustification, res.Justification) -} - -func TestGenericDefaultChain_GetBlockLatest_BlockCallError(t *testing.T) { - clientMock := mocks.NewClient(t) - - genericChain := NewDefaultChain(clientMock) - - clientMock.On("CallContext", context.Background(), mock.Anything, mock.Anything, mock.Anything). - Run( - func(args mock.Arguments) { - _, ok := args.Get(1).(**DefaultGenericSignedBlock) - assert.True(t, ok) - - method, ok := args.Get(2).(string) - assert.True(t, ok) - assert.Equal(t, getBlockMethod, method) - }, - ).Return(errors.New("error")) - - res, err := genericChain.GetBlockLatest() - assert.ErrorIs(t, err, ErrGetBlockCall) - assert.Nil(t, res) -} - -type testRunner interface { - runTest(t *testing.T) -} - -type testBlockData[ - A any, - S any, - P any, -] struct{} - -func (td *testBlockData[A, S, P]) getGenericTestTypeNames() string { - var ( - a A - s S - p P - ) - - return fmt.Sprintf("%T - %T - %T", a, s, p) -} - -func (td *testBlockData[A, S, P]) getTestName(testName string) string { - return fmt.Sprintf("%s with: %s", testName, td.getGenericTestTypeNames()) -} - -func (td *testBlockData[A, S, P]) runTest(t *testing.T) { - t.Run(td.getTestName("Get block"), func(t *testing.T) { - clientMock := mocks.NewClient(t) - - genericChain := NewChain[A, S, P, *SignedBlock[A, S, P]](clientMock) - - blockHash := types.Hash{1, 2, 3} - - blockJustification := []byte{4, 5, 6} - - clientMock.On("CallContext", context.Background(), mock.Anything, mock.Anything, mock.Anything). - Run( - func(args mock.Arguments) { - target, ok := args.Get(1).(**SignedBlock[A, S, P]) - assert.True(t, ok) - - *target = new(SignedBlock[A, S, P]) - (*target).Justification = blockJustification - - method, ok := args.Get(2).(string) - assert.True(t, ok) - assert.Equal(t, getBlockMethod, method) - - hashStr, ok := args.Get(3).(string) - assert.True(t, ok) - - encodedBlockHash := hexutil.Encode(blockHash[:]) - assert.Equal(t, encodedBlockHash, hashStr) - }, - ).Return(nil) - - res, err := genericChain.GetBlock(blockHash) - assert.NoError(t, err) - assert.Equal(t, blockJustification, res.GetJustification()) - }) - - t.Run(td.getTestName("Get block - block call error"), func(t *testing.T) { - clientMock := mocks.NewClient(t) - - genericChain := NewChain[A, S, P, *SignedBlock[A, S, P]](clientMock) - - blockHash := types.Hash{1, 2, 3} - - clientMock.On("CallContext", context.Background(), mock.Anything, mock.Anything, mock.Anything). - Run( - func(args mock.Arguments) { - _, ok := args.Get(1).(**SignedBlock[A, S, P]) - assert.True(t, ok) - - method, ok := args.Get(2).(string) - assert.True(t, ok) - assert.Equal(t, getBlockMethod, method) - - hashStr, ok := args.Get(3).(string) - assert.True(t, ok) - - encodedBlockHash := hexutil.Encode(blockHash[:]) - assert.Equal(t, encodedBlockHash, hashStr) - }, - ).Return(errors.New("error")) - - res, err := genericChain.GetBlock(blockHash) - assert.ErrorIs(t, err, ErrGetBlockCall) - assert.Nil(t, res) - }) - - t.Run(td.getTestName("Get latest block"), func(t *testing.T) { - clientMock := mocks.NewClient(t) - - genericChain := NewChain[A, S, P, *SignedBlock[A, S, P]](clientMock) - - blockJustification := []byte{4, 5, 6} - - clientMock.On("CallContext", context.Background(), mock.Anything, mock.Anything, mock.Anything). - Run( - func(args mock.Arguments) { - target, ok := args.Get(1).(**SignedBlock[A, S, P]) - assert.True(t, ok) - - *target = new(SignedBlock[A, S, P]) - (*target).Justification = blockJustification - - method, ok := args.Get(2).(string) - assert.True(t, ok) - assert.Equal(t, getBlockMethod, method) - }, - ).Return(nil) - - res, err := genericChain.GetBlockLatest() - assert.NoError(t, err) - assert.Equal(t, blockJustification, res.GetJustification()) - }) - - t.Run(td.getTestName("Get latest block - block call error"), func(t *testing.T) { - clientMock := mocks.NewClient(t) - - genericChain := NewChain[A, S, P, *SignedBlock[A, S, P]](clientMock) - - clientMock.On("CallContext", context.Background(), mock.Anything, mock.Anything, mock.Anything). - Run( - func(args mock.Arguments) { - _, ok := args.Get(1).(**SignedBlock[A, S, P]) - assert.True(t, ok) - - method, ok := args.Get(2).(string) - assert.True(t, ok) - assert.Equal(t, getBlockMethod, method) - }, - ).Return(errors.New("error")) - - res, err := genericChain.GetBlockLatest() - assert.ErrorIs(t, err, ErrGetBlockCall) - assert.Nil(t, res) - }) -} - -func TestGenericChain(t *testing.T) { - testRunners := []testRunner{ - &testBlockData[ - types.MultiAddress, - types.MultiSignature, - DefaultPaymentFields, - ]{}, - &testBlockData[ - types.MultiAddress, - types.MultiSignature, - PaymentFieldsWithAssetID, - ]{}, - &testBlockData[ - [20]byte, - [65]byte, - DefaultPaymentFields, - ]{}, - } - - for _, test := range testRunners { - test.runTest(t) - } -} diff --git a/rpc/chain/get_block.go b/rpc/chain/get_block.go index 40c0dc8d7..2da3fc1d3 100644 --- a/rpc/chain/get_block.go +++ b/rpc/chain/get_block.go @@ -19,23 +19,25 @@ package chain import ( "github.com/centrifuge/go-substrate-rpc-client/v4/client" "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/block" ) // GetBlock returns the header and body of the relay chain block with the given hash -func (c *chain) GetBlock(blockHash types.Hash) (*types.SignedBlock, error) { +func (c *chain) GetBlock(blockHash types.Hash) (*block.SignedBlock, error) { return c.getBlock(&blockHash) } // GetBlockLatest returns the header and body of the latest relay chain block -func (c *chain) GetBlockLatest() (*types.SignedBlock, error) { +func (c *chain) GetBlockLatest() (*block.SignedBlock, error) { return c.getBlock(nil) } -func (c *chain) getBlock(blockHash *types.Hash) (*types.SignedBlock, error) { - var SignedBlock types.SignedBlock - err := client.CallWithBlockHash(c.client, &SignedBlock, "chain_getBlock", blockHash) +func (c *chain) getBlock(blockHash *types.Hash) (*block.SignedBlock, error) { + var res block.SignedBlock + err := client.CallWithBlockHash(c.client, &res, "chain_getBlock", blockHash) if err != nil { return nil, err } - return &SignedBlock, err + + return &res, nil } diff --git a/rpc/chain/mocks/chain.go b/rpc/chain/mocks/chain.go index e41b2ccaf..97d00a936 100644 --- a/rpc/chain/mocks/chain.go +++ b/rpc/chain/mocks/chain.go @@ -4,6 +4,8 @@ package mocks import ( chain "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain" + block "github.com/centrifuge/go-substrate-rpc-client/v4/types/block" + mock "github.com/stretchr/testify/mock" types "github.com/centrifuge/go-substrate-rpc-client/v4/types" @@ -15,15 +17,15 @@ type Chain struct { } // GetBlock provides a mock function with given fields: blockHash -func (_m *Chain) GetBlock(blockHash types.Hash) (*types.SignedBlock, error) { +func (_m *Chain) GetBlock(blockHash types.Hash) (*block.SignedBlock, error) { ret := _m.Called(blockHash) - var r0 *types.SignedBlock - if rf, ok := ret.Get(0).(func(types.Hash) *types.SignedBlock); ok { + var r0 *block.SignedBlock + if rf, ok := ret.Get(0).(func(types.Hash) *block.SignedBlock); ok { r0 = rf(blockHash) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*types.SignedBlock) + r0 = ret.Get(0).(*block.SignedBlock) } } @@ -84,15 +86,15 @@ func (_m *Chain) GetBlockHashLatest() (types.Hash, error) { } // GetBlockLatest provides a mock function with given fields: -func (_m *Chain) GetBlockLatest() (*types.SignedBlock, error) { +func (_m *Chain) GetBlockLatest() (*block.SignedBlock, error) { ret := _m.Called() - var r0 *types.SignedBlock - if rf, ok := ret.Get(0).(func() *types.SignedBlock); ok { + var r0 *block.SignedBlock + if rf, ok := ret.Get(0).(func() *block.SignedBlock); ok { r0 = rf() } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*types.SignedBlock) + r0 = ret.Get(0).(*block.SignedBlock) } } diff --git a/rpc/state/get_metadata_test.go b/rpc/state/get_metadata_test.go index eda9fc3ba..cde7d36e3 100644 --- a/rpc/state/get_metadata_test.go +++ b/rpc/state/get_metadata_test.go @@ -17,19 +17,31 @@ package state import ( + "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" "testing" "github.com/stretchr/testify/assert" ) func TestState_GetMetadataLatest(t *testing.T) { + var meta types.Metadata + + err := codec.DecodeFromHex(types.MetadataV14Data, &meta) + assert.NoError(t, err) + md, err := testState.GetMetadataLatest() assert.NoError(t, err) - assert.Equal(t, *mockSrv.metadata, *md) + assert.Equal(t, meta, *md) } func TestState_GetMetadata(t *testing.T) { + var meta types.Metadata + + err := codec.DecodeFromHex(types.MetadataV14Data, &meta) + assert.NoError(t, err) + md, err := testState.GetMetadata(mockSrv.blockHashLatest) assert.NoError(t, err) - assert.Equal(t, *mockSrv.metadata, *md) + assert.Equal(t, meta, *md) } diff --git a/rpc/state/state_test.go b/rpc/state/state_test.go index f5bc92826..96d1fdb76 100644 --- a/rpc/state/state_test.go +++ b/rpc/state/state_test.go @@ -51,7 +51,6 @@ func TestMain(m *testing.M) { type MockSrv struct { blockHashLatest types.Hash metadataString string - metadata *types.Metadata runtimeVersion types.RuntimeVersion storageKeyHex string storageKeyHexEmpty string @@ -177,8 +176,7 @@ type ChildStorageTrieTestVal struct { // config.Default().RPCURL var mockSrv = MockSrv{ blockHashLatest: types.Hash{1, 2, 3}, - metadata: types.ExamplaryMetadataV4, - metadataString: types.ExamplaryMetadataV4String, + metadataString: types.MetadataV14Data, runtimeVersion: types.RuntimeVersion{APIs: []types.RuntimeVersionAPI{{APIID: "0xdf6acb689907609b", Version: 0x2}, {APIID: "0x37e397fc7c91f5e4", Version: 0x1}, {APIID: "0x40fe3ad401f8959a", Version: 0x3}, {APIID: "0xd2bc9897eed08f15", Version: 0x1}, {APIID: "0xf78b278be53f454c", Version: 0x1}, {APIID: "0xed99c5acb25eedf5", Version: 0x2}, {APIID: "0xdd718d5cc53262d4", Version: 0x1}, {APIID: "0x7801759919ee83e5", Version: 0x1}}, AuthoringVersion: 0xa, ImplName: "substrate-node", ImplVersion: 0x3e, SpecName: "node", SpecVersion: 0x3c}, //nolint:lll storageKeyHex: "0x0e4944cfd98d6f4cc374d16f5a4e3f9c", storageKeyHexEmpty: "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", diff --git a/teste2e/author_submit_and_watch_extrinsic_test.go b/teste2e/author_submit_and_watch_extrinsic_test.go index 1e97cafa0..2a131a811 100644 --- a/teste2e/author_submit_and_watch_extrinsic_test.go +++ b/teste2e/author_submit_and_watch_extrinsic_test.go @@ -18,6 +18,7 @@ package teste2e import ( "fmt" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic" "testing" "time" @@ -49,10 +50,9 @@ func TestAuthor_SubmitAndWatchExtrinsic(t *testing.T) { c, err := types.NewCall(meta, "Balances.transfer", bob, types.NewUCompactFromUInt(6969)) assert.NoError(t, err) - ext := types.NewExtrinsic(c) + ext := extrinsic.NewExtrinsic(c) assert.NoError(t, err) - era := types.ExtrinsicEra{IsMortalEra: false} genesisHash, err := api.RPC.Chain.GetBlockHash(0) assert.NoError(t, err) @@ -71,18 +71,14 @@ func TestAuthor_SubmitAndWatchExtrinsic(t *testing.T) { assert.True(t, ok) nonce := uint32(accountInfo.Nonce) - o := types.SignatureOptions{ - // BlockHash: blockHash, - BlockHash: genesisHash, // BlockHash needs to == GenesisHash if era is immortal. // TODO: add an error? - Era: era, - GenesisHash: genesisHash, - Nonce: types.NewUCompactFromUInt(uint64(nonce)), - SpecVersion: rv.SpecVersion, - Tip: types.NewUCompactFromUInt(0), - TransactionVersion: rv.TransactionVersion, - } - err = ext.Sign(from, o) + err = ext.Sign(from, meta, extrinsic.WithEra(types.ExtrinsicEra{IsImmortalEra: true}, genesisHash), + extrinsic.WithNonce(types.NewUCompactFromUInt(uint64(nonce))), + extrinsic.WithTip(types.NewUCompactFromUInt(0)), + extrinsic.WithSpecVersion(rv.SpecVersion), + extrinsic.WithTransactionVersion(rv.TransactionVersion), + extrinsic.WithGenesisHash(genesisHash), + ) assert.NoError(t, err) sub, err = api.RPC.Author.SubmitAndWatchExtrinsic(ext) diff --git a/teste2e/author_submit_extrinsic_test.go b/teste2e/author_submit_extrinsic_test.go index 843d9ee93..1315345b2 100644 --- a/teste2e/author_submit_extrinsic_test.go +++ b/teste2e/author_submit_extrinsic_test.go @@ -17,6 +17,7 @@ package teste2e import ( + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic" "testing" gsrpc "github.com/centrifuge/go-substrate-rpc-client/v4" @@ -71,8 +72,7 @@ func TestChain_SubmitExtrinsic(t *testing.T) { c, err := types.NewCall(meta, "Balances.transfer", bob, types.NewUCompactFromUInt(6969)) assert.NoError(t, err) - ext := types.NewExtrinsic(c) - era := types.ExtrinsicEra{IsMortalEra: false} + ext := extrinsic.NewExtrinsic(c) genesisHash, err := api.RPC.Chain.GetBlockHash(0) assert.NoError(t, err) @@ -91,20 +91,15 @@ func TestChain_SubmitExtrinsic(t *testing.T) { nonce := uint32(accountInfo.Nonce) var txn types.Hash for { - o := types.SignatureOptions{ - // BlockHash: blockHash, - BlockHash: genesisHash, // BlockHash needs to == GenesisHash if era is immortal. // TODO: add an error? - Era: era, - GenesisHash: genesisHash, - Nonce: types.NewUCompactFromUInt(uint64(nonce)), - SpecVersion: rv.SpecVersion, - Tip: types.NewUCompactFromUInt(0), - TransactionVersion: rv.TransactionVersion, - } - extI := ext - err = extI.Sign(from, o) + err = extI.Sign(from, meta, extrinsic.WithEra(types.ExtrinsicEra{IsImmortalEra: true}, genesisHash), + extrinsic.WithNonce(types.NewUCompactFromUInt(uint64(nonce))), + extrinsic.WithTip(types.NewUCompactFromUInt(0)), + extrinsic.WithSpecVersion(rv.SpecVersion), + extrinsic.WithTransactionVersion(rv.TransactionVersion), + extrinsic.WithGenesisHash(genesisHash), + ) assert.NoError(t, err) txn, err = api.RPC.Author.SubmitExtrinsic(extI) diff --git a/types/block/block.go b/types/block/block.go new file mode 100644 index 000000000..5cc4a52f2 --- /dev/null +++ b/types/block/block.go @@ -0,0 +1,39 @@ +package block + +import ( + "errors" + + "github.com/centrifuge/go-substrate-rpc-client/v4/registry" + "github.com/centrifuge/go-substrate-rpc-client/v4/types" +) + +type SignedBlock struct { + Block Block `json:"block"` + Justification types.Justification `json:"justification"` +} + +type Block struct { + Header types.Header `json:"header"` + Extrinsics []string `json:"extrinsics"` +} + +// DecodeExtrinsics attempts to decode the extrinsics using the provided decoder. +func (s *SignedBlock) DecodeExtrinsics(decoder *registry.ExtrinsicDecoder) ([]*registry.DecodedExtrinsic, error) { + if s == nil { + return nil, errors.New("nil SignedBlock") + } + + var decodedExtrinsics []*registry.DecodedExtrinsic + + for _, hexEncodedExtrinsic := range s.Block.Extrinsics { + decodedExtrinsic, err := decoder.DecodeHex(hexEncodedExtrinsic) + + if err != nil { + return nil, err + } + + decodedExtrinsics = append(decodedExtrinsics, decodedExtrinsic) + } + + return decodedExtrinsics, nil +} diff --git a/types/call.go b/types/call.go new file mode 100644 index 000000000..526dcfe5a --- /dev/null +++ b/types/call.go @@ -0,0 +1,107 @@ +// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls +// +// Copyright 2019 Centrifuge GmbH +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package types + +import ( + "io" + + "github.com/centrifuge/go-substrate-rpc-client/v4/scale" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" +) + +// Call is the extrinsic function descriptor +type Call struct { + CallIndex CallIndex + Args Args +} + +func NewCall(m *Metadata, call string, args ...interface{}) (Call, error) { + c, err := m.FindCallIndex(call) + if err != nil { + return Call{}, err + } + + var a []byte + for _, arg := range args { + e, err := codec.Encode(arg) + if err != nil { + return Call{}, err + } + a = append(a, e...) + } + + return Call{c, a}, nil +} + +// Callindex is a 16 bit wrapper around the `[sectionIndex, methodIndex]` value that uniquely identifies a method +type CallIndex struct { + SectionIndex uint8 + MethodIndex uint8 +} + +func (m *CallIndex) Decode(decoder scale.Decoder) error { + err := decoder.Decode(&m.SectionIndex) + if err != nil { + return err + } + + err = decoder.Decode(&m.MethodIndex) + if err != nil { + return err + } + + return nil +} + +func (m CallIndex) Encode(encoder scale.Encoder) error { + err := encoder.Encode(m.SectionIndex) + if err != nil { + return err + } + + err = encoder.Encode(m.MethodIndex) + if err != nil { + return err + } + + return nil +} + +// Args are the encoded arguments for a Call +type Args []byte + +// Encode implements encoding for Args, which just unwraps the bytes of Args +func (a Args) Encode(encoder scale.Encoder) error { + return encoder.Write(a) +} + +// Decode implements decoding for Args, which just reads all the remaining bytes into Args +func (a *Args) Decode(decoder scale.Decoder) error { + for i := 0; true; i++ { + b, err := decoder.ReadOneByte() + if err == io.EOF { + break + } + if err != nil { + return err + } + *a = append((*a)[:i], b) + } + return nil +} + +type Justification Bytes diff --git a/types/call_test.go b/types/call_test.go new file mode 100644 index 000000000..235184609 --- /dev/null +++ b/types/call_test.go @@ -0,0 +1,36 @@ +package types_test + +import ( + . "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" + "github.com/stretchr/testify/assert" + "testing" +) + +func TestCall(t *testing.T) { + c := Call{CallIndex{6, 1}, Args{0, 0, 0}} + + enc, err := codec.EncodeToHex(c) + assert.NoError(t, err) + assert.Equal(t, "0x0601000000", enc) +} + +func TestNewCallV7(t *testing.T) { + c, err := NewCall(&exampleMetadataV7, "Module2.my function", U8(3)) + assert.NoError(t, err) + + enc, err := codec.EncodeToHex(c) + assert.NoError(t, err) + + assert.Equal(t, "0x010003", enc) +} + +func TestNewCallV8(t *testing.T) { + c, err := NewCall(&exampleMetadataV8, "Module2.my function", U8(3)) + assert.NoError(t, err) + + enc, err := codec.EncodeToHex(c) + assert.NoError(t, err) + + assert.Equal(t, "0x010003", enc) +} diff --git a/types/event_record.go b/types/event_record.go index 323fdd918..7ad60b490 100644 --- a/types/event_record.go +++ b/types/event_record.go @@ -33,6 +33,9 @@ import ( // Be careful using this in your own structs – it only works as the last value in a struct since it will consume the // remainder of the encoded data. The reason for this is that it does not contain any length encoding, so it would // not know where to stop. +// +// Deprecated: EventRecordsRaw relies on static event definition that is no longer maintained, +// please check retriever.EventRetriever. type EventRecordsRaw []byte // Encode implements encoding for Data, which just unwraps the bytes of Data @@ -63,414 +66,414 @@ func (e *EventRecordsRaw) Decode(decoder scale.Decoder) error { // //nolint:stylecheck,lll,revive type EventRecords struct { - Auctions_AuctionStarted []EventAuctionsAuctionStarted `test-gen-blockchain:"polkadot"` - Auctions_AuctionClosed []EventAuctionsAuctionClosed `test-gen-blockchain:"polkadot"` - Auctions_Reserved []EventAuctionsReserved `test-gen-blockchain:"polkadot"` - Auctions_Unreserved []EventAuctionsUnreserved `test-gen-blockchain:"polkadot"` - Auctions_ReserveConfiscated []EventAuctionsReserveConfiscated `test-gen-blockchain:"polkadot"` - Auctions_BidAccepted []EventAuctionsBidAccepted `test-gen-blockchain:"polkadot"` - Auctions_WinningOffset []EventAuctionsWinningOffset `test-gen-blockchain:"polkadot"` - - Assets_Created []EventAssetCreated `test-gen-skip:"true"` - Assets_Issued []EventAssetIssued `test-gen-skip:"true"` - Assets_Transferred []EventAssetTransferred `test-gen-skip:"true"` - Assets_Burned []EventAssetBurned `test-gen-skip:"true"` - Assets_TeamChanged []EventAssetTeamChanged `test-gen-skip:"true"` - Assets_OwnerChanged []EventAssetOwnerChanged `test-gen-skip:"true"` - Assets_Frozen []EventAssetFrozen `test-gen-skip:"true"` - Assets_Thawed []EventAssetThawed `test-gen-skip:"true"` - Assets_AssetFrozen []EventAssetAssetFrozen `test-gen-skip:"true"` - Assets_AssetThawed []EventAssetAssetThawed `test-gen-skip:"true"` - Assets_Destroyed []EventAssetDestroyed `test-gen-skip:"true"` - Assets_ForceCreated []EventAssetForceCreated `test-gen-skip:"true"` - Assets_MetadataSet []EventAssetMetadataSet `test-gen-skip:"true"` - Assets_MetadataCleared []EventAssetMetadataCleared `test-gen-skip:"true"` - Assets_ApprovedTransfer []EventAssetApprovedTransfer `test-gen-skip:"true"` - Assets_ApprovalCancelled []EventAssetApprovalCancelled `test-gen-skip:"true"` - Assets_TransferredApproved []EventAssetTransferredApproved `test-gen-skip:"true"` - Assets_AssetStatusChanged []EventAssetAssetStatusChanged `test-gen-skip:"true"` - - BagsList_Rebagged []EventBagsListRebagged `test-gen-blockchain:"polkadot"` - - Balances_BalanceSet []EventBalancesBalanceSet `test-gen-blockchain:"centrifuge-parachain"` - Balances_Deposit []EventBalancesDeposit `test-gen-blockchain:"centrifuge-parachain"` - Balances_DustLost []EventBalancesDustLost `test-gen-blockchain:"centrifuge-parachain"` - Balances_Endowed []EventBalancesEndowed `test-gen-blockchain:"centrifuge-parachain"` - Balances_Reserved []EventBalancesReserved `test-gen-blockchain:"centrifuge-parachain"` - Balances_ReserveRepatriated []EventBalancesReserveRepatriated `test-gen-blockchain:"centrifuge-parachain"` - Balances_Slashed []EventBalancesSlashed `test-gen-blockchain:"centrifuge-parachain"` - Balances_Transfer []EventBalancesTransfer `test-gen-blockchain:"centrifuge-parachain"` - Balances_Unreserved []EventBalancesUnreserved `test-gen-blockchain:"centrifuge-parachain"` - Balances_Withdraw []EventBalancesWithdraw `test-gen-blockchain:"centrifuge-parachain"` - - Bounties_BountyProposed []EventBountiesBountyProposed `test-gen-blockchain:"polkadot"` - Bounties_BountyRejected []EventBountiesBountyRejected `test-gen-blockchain:"polkadot"` - Bounties_BountyBecameActive []EventBountiesBountyBecameActive `test-gen-blockchain:"polkadot"` - Bounties_BountyAwarded []EventBountiesBountyAwarded `test-gen-blockchain:"polkadot"` - Bounties_BountyClaimed []EventBountiesBountyClaimed `test-gen-blockchain:"polkadot"` - Bounties_BountyCanceled []EventBountiesBountyCanceled `test-gen-blockchain:"polkadot"` - Bounties_BountyExtended []EventBountiesBountyExtended `test-gen-blockchain:"polkadot"` - - ChildBounties_Added []EventChildBountiesAdded `test-gen-skip:"true"` - ChildBounties_Awarded []EventChildBountiesAwarded `test-gen-skip:"true"` - ChildBounties_Claimed []EventChildBountiesClaimed `test-gen-skip:"true"` - ChildBounties_Canceled []EventChildBountiesCanceled `test-gen-skip:"true"` - - Claims_Claimed []EventClaimsClaimed `test-gen-blockchain:"polkadot"` - - CollatorSelection_NewInvulnerables []EventCollatorSelectionNewInvulnerables `test-gen-blockchain:"altair"` - CollatorSelection_NewDesiredCandidates []EventCollatorSelectionNewDesiredCandidates `test-gen-blockchain:"altair"` - CollatorSelection_NewCandidacyBond []EventCollatorSelectionNewCandidacyBond `test-gen-blockchain:"altair"` - CollatorSelection_CandidateAdded []EventCollatorSelectionCandidateAdded `test-gen-blockchain:"altair"` - CollatorSelection_CandidateRemoved []EventCollatorSelectionCandidateRemoved `test-gen-blockchain:"altair"` - - Contracts_CodeRemoved []EventContractsCodeRemoved `test-gen-skip:"true"` - Contracts_CodeStored []EventContractsCodeStored `test-gen-skip:"true"` - Contracts_ContractCodeUpdated []EventContractsContractCodeUpdated `test-gen-skip:"true"` - Contracts_ContractEmitted []EventContractsContractEmitted `test-gen-skip:"true"` - Contracts_Instantiated []EventContractsInstantiated `test-gen-skip:"true"` - Contracts_Terminated []EventContractsTerminated `test-gen-skip:"true"` - - ConvictionVoting_Delegated []EventConvictionVotingDelegated `test-gen-skip:"true"` - ConvictionVoting_Undelegated []EventConvictionVotingUndelegated `test-gen-skip:"true"` - - Council_Approved []EventCouncilApproved `test-gen-blockchain:"centrifuge-parachain"` - Council_Closed []EventCouncilClosed `test-gen-blockchain:"centrifuge-parachain"` - Council_Disapproved []EventCouncilDisapproved `test-gen-blockchain:"centrifuge-parachain"` - Council_Executed []EventCouncilExecuted `test-gen-blockchain:"centrifuge-parachain"` - Council_MemberExecuted []EventCouncilMemberExecuted `test-gen-blockchain:"centrifuge-parachain"` - Council_Proposed []EventCouncilProposed `test-gen-blockchain:"centrifuge-parachain"` - Council_Voted []EventCouncilVoted `test-gen-blockchain:"centrifuge-parachain"` - - Crowdloan_Created []EventCrowdloanCreated `test-gen-blockchain:"polkadot"` - Crowdloan_Contributed []EventCrowdloanContributed `test-gen-blockchain:"polkadot"` - Crowdloan_Withdrew []EventCrowdloanWithdrew `test-gen-blockchain:"polkadot"` - Crowdloan_PartiallyRefunded []EventCrowdloanPartiallyRefunded `test-gen-blockchain:"polkadot"` - Crowdloan_AllRefunded []EventCrowdloanAllRefunded `test-gen-blockchain:"polkadot"` - Crowdloan_Dissolved []EventCrowdloanDissolved `test-gen-blockchain:"polkadot"` - Crowdloan_HandleBidResult []EventCrowdloanHandleBidResult `test-gen-blockchain:"polkadot"` - Crowdloan_Edited []EventCrowdloanEdited `test-gen-blockchain:"polkadot"` - Crowdloan_MemoUpdated []EventCrowdloanMemoUpdated `test-gen-blockchain:"polkadot"` - Crowdloan_AddedToNewRaise []EventCrowdloanAddedToNewRaise `test-gen-blockchain:"polkadot"` - - Democracy_Blacklisted []EventDemocracyBlacklisted `test-gen-blockchain:"centrifuge-parachain"` - Democracy_Cancelled []EventDemocracyCancelled `test-gen-blockchain:"centrifuge-parachain"` - Democracy_Delegated []EventDemocracyDelegated `test-gen-blockchain:"centrifuge-parachain"` - Democracy_Executed []EventDemocracyExecuted `test-gen-blockchain:"centrifuge-parachain"` - Democracy_ExternalTabled []EventDemocracyExternalTabled `test-gen-blockchain:"centrifuge-parachain"` - Democracy_NotPassed []EventDemocracyNotPassed `test-gen-blockchain:"centrifuge-parachain"` - Democracy_Passed []EventDemocracyPassed `test-gen-blockchain:"centrifuge-parachain"` - Democracy_PreimageInvalid []EventDemocracyPreimageInvalid `test-gen-blockchain:"centrifuge-parachain"` - Democracy_PreimageMissing []EventDemocracyPreimageMissing `test-gen-blockchain:"centrifuge-parachain"` - Democracy_PreimageNoted []EventDemocracyPreimageNoted `test-gen-blockchain:"centrifuge-parachain"` - Democracy_PreimageReaped []EventDemocracyPreimageReaped `test-gen-blockchain:"centrifuge-parachain"` - Democracy_PreimageUsed []EventDemocracyPreimageUsed `test-gen-blockchain:"centrifuge-parachain"` - Democracy_Proposed []EventDemocracyProposed `test-gen-blockchain:"centrifuge-parachain"` - Democracy_Seconded []EventDemocracySeconded `test-gen-blockchain:"centrifuge-parachain"` - Democracy_Started []EventDemocracyStarted `test-gen-blockchain:"centrifuge-parachain"` - Democracy_Tabled []EventDemocracyTabled `test-gen-blockchain:"centrifuge-parachain"` - Democracy_Undelegated []EventDemocracyUndelegated `test-gen-blockchain:"centrifuge-parachain"` - Democracy_Vetoed []EventDemocracyVetoed `test-gen-blockchain:"centrifuge-parachain"` - Democracy_Voted []EventDemocracyVoted `test-gen-blockchain:"centrifuge-parachain"` - - ElectionProviderMultiPhase_SolutionStored []EventElectionProviderMultiPhaseSolutionStored `test-gen-blockchain:"polkadot"` - ElectionProviderMultiPhase_ElectionFinalized []EventElectionProviderMultiPhaseElectionFinalized `test-gen-blockchain:"polkadot"` - ElectionProviderMultiPhase_Rewarded []EventElectionProviderMultiPhaseRewarded `test-gen-blockchain:"polkadot"` - ElectionProviderMultiPhase_Slashed []EventElectionProviderMultiPhaseSlashed `test-gen-blockchain:"polkadot"` - ElectionProviderMultiPhase_SignedPhaseStarted []EventElectionProviderMultiPhaseSignedPhaseStarted `test-gen-blockchain:"polkadot"` - ElectionProviderMultiPhase_UnsignedPhaseStarted []EventElectionProviderMultiPhaseUnsignedPhaseStarted `test-gen-blockchain:"polkadot"` - - Elections_CandidateSlashed []EventElectionsCandidateSlashed `test-gen-blockchain:"altair"` - Elections_ElectionError []EventElectionsElectionError `test-gen-blockchain:"altair"` - Elections_EmptyTerm []EventElectionsEmptyTerm `test-gen-blockchain:"altair"` - Elections_MemberKicked []EventElectionsMemberKicked `test-gen-blockchain:"altair"` - Elections_NewTerm []EventElectionsNewTerm `test-gen-blockchain:"altair"` - Elections_Renounced []EventElectionsRenounced `test-gen-blockchain:"altair"` - Elections_SeatHolderSlashed []EventElectionsSeatHolderSlashed `test-gen-blockchain:"altair"` - - Gilt_BidPlaced []EventGiltBidPlaced `test-gen-skip:"true"` - Gilt_BidRetracted []EventGiltBidRetracted `test-gen-skip:"true"` - Gilt_GiltIssued []EventGiltGiltIssued `test-gen-skip:"true"` - Gilt_GiltThawed []EventGiltGiltThawed `test-gen-skip:"true"` - - Grandpa_NewAuthorities []EventGrandpaNewAuthorities `test-gen-blockchain:"polkadot"` - Grandpa_Paused []EventGrandpaPaused `test-gen-blockchain:"polkadot"` - Grandpa_Resumed []EventGrandpaResumed `test-gen-blockchain:"polkadot"` - - Hrmp_OpenChannelRequested []EventHRMPOpenChannelRequested `test-gen-blockchain:"polkadot"` - Hrmp_OpenChannelCanceled []EventHRMPOpenChannelCanceled `test-gen-blockchain:"polkadot"` - Hrmp_OpenChannelAccepted []EventHRMPOpenChannelAccepted `test-gen-blockchain:"polkadot"` - Hrmp_ChannelClosed []EventHRMPChannelClosed `test-gen-blockchain:"polkadot"` - - Identity_IdentityCleared []EventIdentityCleared `test-gen-blockchain:"centrifuge-parachain"` - Identity_IdentityKilled []EventIdentityKilled `test-gen-blockchain:"centrifuge-parachain"` - Identity_IdentitySet []EventIdentitySet `test-gen-blockchain:"centrifuge-parachain"` - Identity_JudgementGiven []EventIdentityJudgementGiven `test-gen-blockchain:"centrifuge-parachain"` - Identity_JudgementRequested []EventIdentityJudgementRequested `test-gen-blockchain:"centrifuge-parachain"` - Identity_JudgementUnrequested []EventIdentityJudgementUnrequested `test-gen-blockchain:"centrifuge-parachain"` - Identity_RegistrarAdded []EventIdentityRegistrarAdded `test-gen-blockchain:"centrifuge-parachain"` - Identity_SubIdentityAdded []EventIdentitySubIdentityAdded `test-gen-blockchain:"centrifuge-parachain"` - Identity_SubIdentityRemoved []EventIdentitySubIdentityRemoved `test-gen-blockchain:"centrifuge-parachain"` - Identity_SubIdentityRevoked []EventIdentitySubIdentityRevoked `test-gen-blockchain:"centrifuge-parachain"` - - ImOnline_AllGood []EventImOnlineAllGood `test-gen-blockchain:"polkadot"` - ImOnline_HeartbeatReceived []EventImOnlineHeartbeatReceived `test-gen-blockchain:"polkadot"` - ImOnline_SomeOffline []EventImOnlineSomeOffline `test-gen-blockchain:"polkadot"` - - Indices_IndexAssigned []EventIndicesIndexAssigned `test-gen-blockchain:"polkadot"` - Indices_IndexFreed []EventIndicesIndexFreed `test-gen-blockchain:"polkadot"` - Indices_IndexFrozen []EventIndicesIndexFrozen `test-gen-blockchain:"polkadot"` - - Lottery_LotteryStarted []EventLotteryLotteryStarted `test-gen-skip:"true"` - Lottery_CallsUpdated []EventLotteryCallsUpdated `test-gen-skip:"true"` - Lottery_Winner []EventLotteryWinner `test-gen-skip:"true"` - Lottery_TicketBought []EventLotteryTicketBought `test-gen-skip:"true"` - - Multisig_MultisigApproval []EventMultisigApproval `test-gen-blockchain:"altair"` - Multisig_MultisigCancelled []EventMultisigCancelled `test-gen-blockchain:"altair"` - Multisig_MultisigExecuted []EventMultisigExecuted `test-gen-blockchain:"altair"` - Multisig_NewMultisig []EventMultisigNewMultisig `test-gen-blockchain:"altair"` - - NftSales_ForSale []EventNftSalesForSale `test-gen-blockchain:"altair"` - NftSales_Removed []EventNftSalesRemoved `test-gen-blockchain:"altair"` - NftSales_Sold []EventNftSalesSold `test-gen-blockchain:"altair"` - - Offences_Offence []EventOffencesOffence `test-gen-blockchain:"polkadot"` - - OrmlAssetRegistry_RegisteredAsset []EventOrmlAssetRegistryRegisteredAsset `test-gen-blockchain:"polkadot"` - OrmlAssetRegistry_UpdatedAsset []EventOrmlAssetRegistryUpdatedAsset `test-gen-blockchain:"polkadot"` - - OrmlTokens_Endowed []EventOrmlTokensEndowed `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_DustLost []EventOrmlTokensDustLost `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_Transfer []EventOrmlTokensTransfer `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_Reserved []EventOrmlTokensReserved `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_Unreserved []EventOrmlTokensUnreserved `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_ReserveRepatriated []EventOrmlTokensReserveRepatriated `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_BalanceSet []EventOrmlTokensBalanceSet `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_TotalIssuanceSet []EventOrmlTokensTotalIssuanceSet `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_Withdrawn []EventOrmlTokensWithdrawn `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_Slashed []EventOrmlTokensSlashed `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_Deposited []EventOrmlTokensDeposited `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_LockSet []EventOrmlTokensLockSet `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_LockRemoved []EventOrmlTokensLockRemoved `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_Locked []EventOrmlTokensLocked `test-gen-blockchain:"centrifuge-parachain"` - OrmlTokens_Unlocked []EventOrmlTokensUnlocked `test-gen-blockchain:"centrifuge-parachain"` - - Paras_CurrentCodeUpdated []EventParasCurrentCodeUpdated `test-gen-blockchain:"polkadot"` - Paras_CurrentHeadUpdated []EventParasCurrentHeadUpdated `test-gen-blockchain:"polkadot"` - Paras_CodeUpgradeScheduled []EventParasCodeUpgradeScheduled `test-gen-blockchain:"polkadot"` - Paras_NewHeadNoted []EventParasNewHeadNoted `test-gen-blockchain:"polkadot"` - Paras_ActionQueued []EventParasActionQueued `test-gen-blockchain:"polkadot"` - Paras_PvfCheckStarted []EventParasPvfCheckStarted `test-gen-blockchain:"polkadot"` - Paras_PvfCheckAccepted []EventParasPvfCheckAccepted `test-gen-blockchain:"polkadot"` - Paras_PvfCheckRejected []EventParasPvfCheckRejected `test-gen-blockchain:"polkadot"` - - ParasDisputes_DisputeInitiated []EventParasDisputesDisputeInitiated `test-gen-skip:"true"` - ParasDisputes_DisputeConcluded []EventParasDisputesDisputeConcluded `test-gen-skip:"true"` - ParasDisputes_DisputeTimedOut []EventParasDisputesDisputeTimedOut `test-gen-skip:"true"` - ParasDisputes_Revert []EventParasDisputesRevert `test-gen-skip:"true"` - - ParaInclusion_CandidateBacked []EventParaInclusionCandidateBacked `test-gen-blockchain:"polkadot"` - ParaInclusion_CandidateIncluded []EventParaInclusionCandidateIncluded `test-gen-blockchain:"polkadot"` - ParaInclusion_CandidateTimedOut []EventParaInclusionCandidateTimedOut `test-gen-blockchain:"polkadot"` - - ParachainSystem_ValidationFunctionStored []EventParachainSystemValidationFunctionStored `test-gen-blockchain:"centrifuge-parachain"` - ParachainSystem_ValidationFunctionApplied []EventParachainSystemValidationFunctionApplied `test-gen-blockchain:"centrifuge-parachain"` - ParachainSystem_ValidationFunctionDiscarded []EventParachainSystemValidationFunctionDiscarded `test-gen-blockchain:"centrifuge-parachain"` - ParachainSystem_UpgradeAuthorized []EventParachainSystemUpgradeAuthorized `test-gen-blockchain:"centrifuge-parachain"` - ParachainSystem_DownwardMessagesReceived []EventParachainSystemDownwardMessagesReceived `test-gen-blockchain:"centrifuge-parachain"` - ParachainSystem_DownwardMessagesProcessed []EventParachainSystemDownwardMessagesProcessed `test-gen-blockchain:"centrifuge-parachain"` - - Preimage_Cleared []EventPreimageCleared `test-gen-skip:"true"` - Preimage_Noted []EventPreimageNoted `test-gen-skip:"true"` - Preimage_Requested []EventPreimageRequested `test-gen-skip:"true"` - - Proxy_Announced []EventProxyAnnounced `test-gen-blockchain:"centrifuge-parachain"` - Proxy_PureCreated []EventProxyPureCreated `test-gen-blockchain:"centrifuge-parachain"` - Proxy_ProxyAdded []EventProxyProxyAdded `test-gen-blockchain:"centrifuge-parachain"` - Proxy_ProxyExecuted []EventProxyProxyExecuted `test-gen-blockchain:"centrifuge-parachain"` - Proxy_ProxyRemoved []EventProxyProxyRemoved `test-gen-blockchain:"centrifuge-parachain"` - - Recovery_AccountRecovered []EventRecoveryAccountRecovered `test-gen-skip:"true"` - Recovery_RecoveryClosed []EventRecoveryClosed `test-gen-skip:"true"` - Recovery_RecoveryCreated []EventRecoveryCreated `test-gen-skip:"true"` - Recovery_RecoveryInitiated []EventRecoveryInitiated `test-gen-skip:"true"` - Recovery_RecoveryRemoved []EventRecoveryRemoved `test-gen-skip:"true"` - Recovery_RecoveryVouched []EventRecoveryVouched `test-gen-skip:"true"` - - Registrar_Registered []EventRegistrarRegistered `test-gen-skip:"true"` - Registrar_Deregistered []EventRegistrarDeregistered `test-gen-skip:"true"` - Registrar_Reserved []EventRegistrarReserved `test-gen-skip:"true"` - - Referenda_Submitted []EventReferendaSubmitted `test-gen-skip:"true"` - Referenda_DecisionDepositPlaced []EventReferendaDecisionDepositPlaced `test-gen-skip:"true"` - Referenda_DecisionDepositRefunded []EventReferendaDecisionDepositRefunded `test-gen-skip:"true"` - Referenda_DepositSlashed []EventReferendaDecisionSlashed `test-gen-skip:"true"` - Referenda_DecisionStarted []EventReferendaDecisionStarted `test-gen-skip:"true"` - Referenda_ConfirmStarted []EventReferendaConfirmStarted `test-gen-skip:"true"` - Referenda_ConfirmAborted []EventReferendaConfirmAborted `test-gen-skip:"true"` - Referenda_Confirmed []EventReferendaConfirmed `test-gen-skip:"true"` - Referenda_Approved []EventReferendaApproved `test-gen-skip:"true"` - Referenda_Rejected []EventReferendaRejected `test-gen-skip:"true"` - Referenda_TimedOut []EventReferendaTimedOut `test-gen-skip:"true"` - Referenda_Cancelled []EventReferendaCancelled `test-gen-skip:"true"` - Referenda_Killed []EventReferendaKilled `test-gen-skip:"true"` - - Scheduler_CallLookupFailed []EventSchedulerCallLookupFailed `test-gen-blockchain:"polkadot"` - Scheduler_Canceled []EventSchedulerCanceled `test-gen-blockchain:"polkadot"` - Scheduler_Dispatched []EventSchedulerDispatched `test-gen-blockchain:"polkadot"` - Scheduler_Scheduled []EventSchedulerScheduled `test-gen-blockchain:"polkadot"` - - Session_NewSession []EventSessionNewSession `test-gen-blockchain:"centrifuge-parachain"` - - Slots_NewLeasePeriod []EventSlotsNewLeasePeriod `test-gen-blockchain:"polkadot"` - Slots_Leased []EventSlotsLeased `test-gen-blockchain:"polkadot"` - - Society_AutoUnbid []EventSocietyAutoUnbid `test-gen-skip:"true"` - Society_Bid []EventSocietyBid `test-gen-skip:"true"` - Society_CandidateSuspended []EventSocietyCandidateSuspended `test-gen-skip:"true"` - Society_Challenged []EventSocietyChallenged `test-gen-skip:"true"` - Society_DefenderVote []EventSocietyDefenderVote `test-gen-skip:"true"` - Society_Deposit []EventSocietyDeposit `test-gen-skip:"true"` - Society_Founded []EventSocietyFounded `test-gen-skip:"true"` - Society_Inducted []EventSocietyInducted `test-gen-skip:"true"` - Society_MemberSuspended []EventSocietyMemberSuspended `test-gen-skip:"true"` - Society_NewMaxMembers []EventSocietyNewMaxMembers `test-gen-skip:"true"` - Society_SuspendedMemberJudgement []EventSocietySuspendedMemberJudgement `test-gen-skip:"true"` - Society_Unbid []EventSocietyUnbid `test-gen-skip:"true"` - Society_Unfounded []EventSocietyUnfounded `test-gen-skip:"true"` - Society_Unvouch []EventSocietyUnvouch `test-gen-skip:"true"` - Society_Vote []EventSocietyVote `test-gen-skip:"true"` - Society_Vouch []EventSocietyVouch `test-gen-skip:"true"` - - Staking_Bonded []EventStakingBonded `test-gen-blockchain:"polkadot"` - Staking_Chilled []EventStakingChilled `test-gen-blockchain:"polkadot"` - Staking_EraPaid []EventStakingEraPaid `test-gen-blockchain:"polkadot"` - Staking_Kicked []EventStakingKicked `test-gen-blockchain:"polkadot"` - Staking_OldSlashingReportDiscarded []EventStakingOldSlashingReportDiscarded `test-gen-blockchain:"polkadot"` - Staking_PayoutStarted []EventStakingPayoutStarted `test-gen-blockchain:"polkadot"` - Staking_Rewarded []EventStakingRewarded `test-gen-blockchain:"polkadot"` - Staking_Slashed []EventStakingSlashed `test-gen-blockchain:"polkadot"` - Staking_StakersElected []EventStakingStakersElected `test-gen-blockchain:"polkadot"` - Staking_StakingElectionFailed []EventStakingStakingElectionFailed `test-gen-blockchain:"polkadot"` - Staking_Unbonded []EventStakingUnbonded `test-gen-blockchain:"polkadot"` - Staking_Withdrawn []EventStakingWithdrawn `test-gen-blockchain:"polkadot"` - - StateTrieMigration_Migrated []EventStateTrieMigrationMigrated `test-gen-skip:"true"` - StateTrieMigration_Slashed []EventStateTrieMigrationSlashed `test-gen-skip:"true"` - StateTrieMigration_AutoMigrationFinished []EventStateTrieMigrationAutoMigrationFinished `test-gen-skip:"true"` - StateTrieMigration_Halted []EventStateTrieMigrationHalted `test-gen-skip:"true"` - - Sudo_KeyChanged []EventSudoKeyChanged `test-gen-skip:"true"` - Sudo_Sudid []EventSudoSudid `test-gen-skip:"true"` - Sudo_SudoAsDone []EventSudoAsDone `test-gen-skip:"true"` - - System_CodeUpdated []EventSystemCodeUpdated `test-gen-blockchain:"centrifuge-parachain"` - System_ExtrinsicFailed []EventSystemExtrinsicFailed `test-gen-blockchain:"centrifuge-parachain"` - System_ExtrinsicSuccess []EventSystemExtrinsicSuccess `test-gen-blockchain:"centrifuge-parachain"` - System_KilledAccount []EventSystemKilledAccount `test-gen-blockchain:"centrifuge-parachain"` - System_NewAccount []EventSystemNewAccount `test-gen-blockchain:"centrifuge-parachain"` - System_Remarked []EventSystemRemarked `test-gen-blockchain:"centrifuge-parachain"` - - TechnicalCommittee_Approved []EventTechnicalCommitteeApproved `test-gen-blockchain:"polkadot"` - TechnicalCommittee_Closed []EventTechnicalCommitteeClosed `test-gen-blockchain:"polkadot"` - TechnicalCommittee_Disapproved []EventTechnicalCommitteeDisapproved `test-gen-blockchain:"polkadot"` - TechnicalCommittee_Executed []EventTechnicalCommitteeExecuted `test-gen-blockchain:"polkadot"` - TechnicalCommittee_MemberExecuted []EventTechnicalCommitteeMemberExecuted `test-gen-blockchain:"polkadot"` - TechnicalCommittee_Proposed []EventTechnicalCommitteeProposed `test-gen-blockchain:"polkadot"` - TechnicalCommittee_Voted []EventTechnicalCommitteeVoted `test-gen-blockchain:"polkadot"` - - TechnicalMembership_Dummy []EventTechnicalMembershipDummy `test-gen-blockchain:"polkadot"` - TechnicalMembership_KeyChanged []EventTechnicalMembershipKeyChanged `test-gen-blockchain:"polkadot"` - TechnicalMembership_MemberAdded []EventTechnicalMembershipMemberAdded `test-gen-blockchain:"polkadot"` - TechnicalMembership_MemberRemoved []EventTechnicalMembershipMemberRemoved `test-gen-blockchain:"polkadot"` - TechnicalMembership_MembersReset []EventTechnicalMembershipMembersReset `test-gen-blockchain:"polkadot"` - TechnicalMembership_MembersSwapped []EventTechnicalMembershipMembersSwapped `test-gen-blockchain:"polkadot"` - - Tips_NewTip []EventTipsNewTip `test-gen-blockchain:"polkadot"` - Tips_TipClosed []EventTipsTipClosed `test-gen-blockchain:"polkadot"` - Tips_TipClosing []EventTipsTipClosing `test-gen-blockchain:"polkadot"` - Tips_TipRetracted []EventTipsTipRetracted `test-gen-blockchain:"polkadot"` - Tips_TipSlashed []EventTipsTipSlashed `test-gen-blockchain:"polkadot"` - - TransactionStorage_Stored []EventTransactionStorageStored `test-gen-skip:"true"` - TransactionStorage_Renewed []EventTransactionStorageRenewed `test-gen-skip:"true"` - TransactionStorage_ProofChecked []EventTransactionStorageProofChecked `test-gen-skip:"true"` - - TransactionPayment_TransactionFeePaid []EventTransactionPaymentTransactionFeePaid `test-gen-blockchain:"westend"` - - Treasury_Proposed []EventTreasuryProposed `test-gen-blockchain:"altair"` - Treasury_Spending []EventTreasurySpending `test-gen-blockchain:"altair"` - Treasury_Awarded []EventTreasuryAwarded `test-gen-blockchain:"altair"` - Treasury_Rejected []EventTreasuryRejected `test-gen-blockchain:"altair"` - Treasury_Burnt []EventTreasuryBurnt `test-gen-blockchain:"altair"` - Treasury_Rollover []EventTreasuryRollover `test-gen-blockchain:"altair"` - Treasury_Deposit []EventTreasuryDeposit `test-gen-blockchain:"altair"` - Treasury_SpendApproved []EventTreasurySpendApproved `test-gen-blockchain:"altair"` - Treasury_UpdatedInactive []EventTreasuryUpdatedInactive `test-gen-blockchain:"altair"` - - Uniques_ApprovalCancelled []EventUniquesApprovalCancelled `test-gen-blockchain:"altair"` - Uniques_ApprovedTransfer []EventUniquesApprovedTransfer `test-gen-blockchain:"altair"` - Uniques_AssetStatusChanged []EventUniquesAssetStatusChanged `test-gen-blockchain:"altair"` - Uniques_AttributeCleared []EventUniquesAttributeCleared `test-gen-blockchain:"altair"` - Uniques_AttributeSet []EventUniquesAttributeSet `test-gen-blockchain:"altair"` - Uniques_Burned []EventUniquesBurned `test-gen-blockchain:"altair"` - Uniques_ClassFrozen []EventUniquesClassFrozen `test-gen-blockchain:"altair"` - Uniques_ClassMetadataCleared []EventUniquesClassMetadataCleared `test-gen-blockchain:"altair"` - Uniques_ClassMetadataSet []EventUniquesClassMetadataSet `test-gen-blockchain:"altair"` - Uniques_ClassThawed []EventUniquesClassThawed `test-gen-blockchain:"altair"` - Uniques_Created []EventUniquesCreated `test-gen-blockchain:"altair"` - Uniques_Destroyed []EventUniquesDestroyed `test-gen-blockchain:"altair"` - Uniques_ForceCreated []EventUniquesForceCreated `test-gen-blockchain:"altair"` - Uniques_Frozen []EventUniquesFrozen `test-gen-blockchain:"altair"` - Uniques_Issued []EventUniquesIssued `test-gen-blockchain:"altair"` - Uniques_MetadataCleared []EventUniquesMetadataCleared `test-gen-blockchain:"altair"` - Uniques_MetadataSet []EventUniquesMetadataSet `test-gen-blockchain:"altair"` - Uniques_OwnerChanged []EventUniquesOwnerChanged `test-gen-blockchain:"altair"` - Uniques_Redeposited []EventUniquesRedeposited `test-gen-blockchain:"altair"` - Uniques_TeamChanged []EventUniquesTeamChanged `test-gen-blockchain:"altair"` - Uniques_Thawed []EventUniquesThawed `test-gen-blockchain:"altair"` - Uniques_Transferred []EventUniquesTransferred `test-gen-blockchain:"altair"` - - Ump_InvalidFormat []EventUMPInvalidFormat `test-gen-blockchain:"polkadot"` - Ump_UnsupportedVersion []EventUMPUnsupportedVersion `test-gen-blockchain:"polkadot"` - Ump_ExecutedUpward []EventUMPExecutedUpward `test-gen-blockchain:"polkadot"` - Ump_WeightExhausted []EventUMPWeightExhausted `test-gen-blockchain:"polkadot"` - Ump_UpwardMessagesReceived []EventUMPUpwardMessagesReceived `test-gen-blockchain:"polkadot"` - Ump_OverweightEnqueued []EventUMPOverweightEnqueued `test-gen-blockchain:"polkadot"` - Ump_OverweightServiced []EventUMPOverweightServiced `test-gen-blockchain:"polkadot"` - - Utility_BatchCompleted []EventUtilityBatchCompleted `test-gen-blockchain:"centrifuge-parachain"` - Utility_BatchInterrupted []EventUtilityBatchInterrupted `test-gen-blockchain:"centrifuge-parachain"` - Utility_DispatchedAs []EventUtilityBatchInterrupted `test-gen-blockchain:"centrifuge-parachain"` - Utility_ItemCompleted []EventUtilityItemCompleted `test-gen-blockchain:"centrifuge-parachain"` - - Vesting_VestingCompleted []EventVestingVestingCompleted `test-gen-blockchain:"centrifuge-parachain"` - Vesting_VestingUpdated []EventVestingVestingUpdated `test-gen-blockchain:"centrifuge-parachain"` - - VoterList_Rebagged []EventVoterListRebagged `test-gen-blockchain:"polkadot"` - VoterList_ScoreUpdated []EventVoterListScoreUpdated `test-gen-blockchain:"polkadot"` - - Whitelist_CallWhitelisted []EventWhitelistCallWhitelisted `test-gen-skip:"true"` - Whitelist_WhitelistedCallRemoved []EventWhitelistWhitelistedCallRemoved `test-gen-skip:"true"` - Whitelist_WhitelistedCallDispatched []EventWhitelistWhitelistedCallRemoved `test-gen-skip:"true"` - - XcmPallet_Attempted []EventXcmPalletAttempted `test-gen-blockchain:"polkadot"` - XcmPallet_Sent []EventXcmPalletSent `test-gen-blockchain:"polkadot"` - XcmPallet_UnexpectedResponse []EventXcmPalletUnexpectedResponse `test-gen-blockchain:"polkadot"` - XcmPallet_ResponseReady []EventXcmPalletResponseReady `test-gen-blockchain:"polkadot"` - XcmPallet_Notified []EventXcmPalletNotified `test-gen-blockchain:"polkadot"` - XcmPallet_NotifyOverweight []EventXcmPalletNotifyOverweight `test-gen-blockchain:"polkadot"` - XcmPallet_NotifyDispatchError []EventXcmPalletNotifyDispatchError `test-gen-blockchain:"polkadot"` - XcmPallet_NotifyDecodeFailed []EventXcmPalletNotifyDecodeFailed `test-gen-blockchain:"polkadot"` - XcmPallet_InvalidResponder []EventXcmPalletInvalidResponder `test-gen-blockchain:"polkadot"` - XcmPallet_InvalidResponderVersion []EventXcmPalletInvalidResponderVersion `test-gen-blockchain:"polkadot"` - XcmPallet_ResponseTaken []EventXcmPalletResponseTaken `test-gen-blockchain:"polkadot"` - XcmPallet_AssetsTrapped []EventXcmPalletAssetsTrapped `test-gen-blockchain:"polkadot"` - XcmPallet_VersionChangeNotified []EventXcmPalletVersionChangeNotified `test-gen-blockchain:"polkadot"` - XcmPallet_SupportedVersionChanged []EventXcmPalletSupportedVersionChanged `test-gen-blockchain:"polkadot"` - XcmPallet_NotifyTargetSendFail []EventXcmPalletNotifyTargetSendFail `test-gen-blockchain:"polkadot"` - XcmPallet_NotifyTargetMigrationFail []EventXcmPalletNotifyTargetMigrationFail `test-gen-blockchain:"polkadot"` + Auctions_AuctionStarted []EventAuctionsAuctionStarted + Auctions_AuctionClosed []EventAuctionsAuctionClosed + Auctions_Reserved []EventAuctionsReserved + Auctions_Unreserved []EventAuctionsUnreserved + Auctions_ReserveConfiscated []EventAuctionsReserveConfiscated + Auctions_BidAccepted []EventAuctionsBidAccepted + Auctions_WinningOffset []EventAuctionsWinningOffset + + Assets_Created []EventAssetCreated + Assets_Issued []EventAssetIssued + Assets_Transferred []EventAssetTransferred + Assets_Burned []EventAssetBurned + Assets_TeamChanged []EventAssetTeamChanged + Assets_OwnerChanged []EventAssetOwnerChanged + Assets_Frozen []EventAssetFrozen + Assets_Thawed []EventAssetThawed + Assets_AssetFrozen []EventAssetAssetFrozen + Assets_AssetThawed []EventAssetAssetThawed + Assets_Destroyed []EventAssetDestroyed + Assets_ForceCreated []EventAssetForceCreated + Assets_MetadataSet []EventAssetMetadataSet + Assets_MetadataCleared []EventAssetMetadataCleared + Assets_ApprovedTransfer []EventAssetApprovedTransfer + Assets_ApprovalCancelled []EventAssetApprovalCancelled + Assets_TransferredApproved []EventAssetTransferredApproved + Assets_AssetStatusChanged []EventAssetAssetStatusChanged + + BagsList_Rebagged []EventBagsListRebagged + + Balances_BalanceSet []EventBalancesBalanceSet + Balances_Deposit []EventBalancesDeposit + Balances_DustLost []EventBalancesDustLost + Balances_Endowed []EventBalancesEndowed + Balances_Reserved []EventBalancesReserved + Balances_ReserveRepatriated []EventBalancesReserveRepatriated + Balances_Slashed []EventBalancesSlashed + Balances_Transfer []EventBalancesTransfer + Balances_Unreserved []EventBalancesUnreserved + Balances_Withdraw []EventBalancesWithdraw + + Bounties_BountyProposed []EventBountiesBountyProposed + Bounties_BountyRejected []EventBountiesBountyRejected + Bounties_BountyBecameActive []EventBountiesBountyBecameActive + Bounties_BountyAwarded []EventBountiesBountyAwarded + Bounties_BountyClaimed []EventBountiesBountyClaimed + Bounties_BountyCanceled []EventBountiesBountyCanceled + Bounties_BountyExtended []EventBountiesBountyExtended + + ChildBounties_Added []EventChildBountiesAdded + ChildBounties_Awarded []EventChildBountiesAwarded + ChildBounties_Claimed []EventChildBountiesClaimed + ChildBounties_Canceled []EventChildBountiesCanceled + + Claims_Claimed []EventClaimsClaimed + + CollatorSelection_NewInvulnerables []EventCollatorSelectionNewInvulnerables + CollatorSelection_NewDesiredCandidates []EventCollatorSelectionNewDesiredCandidates + CollatorSelection_NewCandidacyBond []EventCollatorSelectionNewCandidacyBond + CollatorSelection_CandidateAdded []EventCollatorSelectionCandidateAdded + CollatorSelection_CandidateRemoved []EventCollatorSelectionCandidateRemoved + + Contracts_CodeRemoved []EventContractsCodeRemoved + Contracts_CodeStored []EventContractsCodeStored + Contracts_ContractCodeUpdated []EventContractsContractCodeUpdated + Contracts_ContractEmitted []EventContractsContractEmitted + Contracts_Instantiated []EventContractsInstantiated + Contracts_Terminated []EventContractsTerminated + + ConvictionVoting_Delegated []EventConvictionVotingDelegated + ConvictionVoting_Undelegated []EventConvictionVotingUndelegated + + Council_Approved []EventCouncilApproved + Council_Closed []EventCouncilClosed + Council_Disapproved []EventCouncilDisapproved + Council_Executed []EventCouncilExecuted + Council_MemberExecuted []EventCouncilMemberExecuted + Council_Proposed []EventCouncilProposed + Council_Voted []EventCouncilVoted + + Crowdloan_Created []EventCrowdloanCreated + Crowdloan_Contributed []EventCrowdloanContributed + Crowdloan_Withdrew []EventCrowdloanWithdrew + Crowdloan_PartiallyRefunded []EventCrowdloanPartiallyRefunded + Crowdloan_AllRefunded []EventCrowdloanAllRefunded + Crowdloan_Dissolved []EventCrowdloanDissolved + Crowdloan_HandleBidResult []EventCrowdloanHandleBidResult + Crowdloan_Edited []EventCrowdloanEdited + Crowdloan_MemoUpdated []EventCrowdloanMemoUpdated + Crowdloan_AddedToNewRaise []EventCrowdloanAddedToNewRaise + + Democracy_Blacklisted []EventDemocracyBlacklisted + Democracy_Cancelled []EventDemocracyCancelled + Democracy_Delegated []EventDemocracyDelegated + Democracy_Executed []EventDemocracyExecuted + Democracy_ExternalTabled []EventDemocracyExternalTabled + Democracy_NotPassed []EventDemocracyNotPassed + Democracy_Passed []EventDemocracyPassed + Democracy_PreimageInvalid []EventDemocracyPreimageInvalid + Democracy_PreimageMissing []EventDemocracyPreimageMissing + Democracy_PreimageNoted []EventDemocracyPreimageNoted + Democracy_PreimageReaped []EventDemocracyPreimageReaped + Democracy_PreimageUsed []EventDemocracyPreimageUsed + Democracy_Proposed []EventDemocracyProposed + Democracy_Seconded []EventDemocracySeconded + Democracy_Started []EventDemocracyStarted + Democracy_Tabled []EventDemocracyTabled + Democracy_Undelegated []EventDemocracyUndelegated + Democracy_Vetoed []EventDemocracyVetoed + Democracy_Voted []EventDemocracyVoted + + ElectionProviderMultiPhase_SolutionStored []EventElectionProviderMultiPhaseSolutionStored + ElectionProviderMultiPhase_ElectionFinalized []EventElectionProviderMultiPhaseElectionFinalized + ElectionProviderMultiPhase_Rewarded []EventElectionProviderMultiPhaseRewarded + ElectionProviderMultiPhase_Slashed []EventElectionProviderMultiPhaseSlashed + ElectionProviderMultiPhase_SignedPhaseStarted []EventElectionProviderMultiPhaseSignedPhaseStarted + ElectionProviderMultiPhase_UnsignedPhaseStarted []EventElectionProviderMultiPhaseUnsignedPhaseStarted + + Elections_CandidateSlashed []EventElectionsCandidateSlashed + Elections_ElectionError []EventElectionsElectionError + Elections_EmptyTerm []EventElectionsEmptyTerm + Elections_MemberKicked []EventElectionsMemberKicked + Elections_NewTerm []EventElectionsNewTerm + Elections_Renounced []EventElectionsRenounced + Elections_SeatHolderSlashed []EventElectionsSeatHolderSlashed + + Gilt_BidPlaced []EventGiltBidPlaced + Gilt_BidRetracted []EventGiltBidRetracted + Gilt_GiltIssued []EventGiltGiltIssued + Gilt_GiltThawed []EventGiltGiltThawed + + Grandpa_NewAuthorities []EventGrandpaNewAuthorities + Grandpa_Paused []EventGrandpaPaused + Grandpa_Resumed []EventGrandpaResumed + + Hrmp_OpenChannelRequested []EventHRMPOpenChannelRequested + Hrmp_OpenChannelCanceled []EventHRMPOpenChannelCanceled + Hrmp_OpenChannelAccepted []EventHRMPOpenChannelAccepted + Hrmp_ChannelClosed []EventHRMPChannelClosed + + Identity_IdentityCleared []EventIdentityCleared + Identity_IdentityKilled []EventIdentityKilled + Identity_IdentitySet []EventIdentitySet + Identity_JudgementGiven []EventIdentityJudgementGiven + Identity_JudgementRequested []EventIdentityJudgementRequested + Identity_JudgementUnrequested []EventIdentityJudgementUnrequested + Identity_RegistrarAdded []EventIdentityRegistrarAdded + Identity_SubIdentityAdded []EventIdentitySubIdentityAdded + Identity_SubIdentityRemoved []EventIdentitySubIdentityRemoved + Identity_SubIdentityRevoked []EventIdentitySubIdentityRevoked + + ImOnline_AllGood []EventImOnlineAllGood + ImOnline_HeartbeatReceived []EventImOnlineHeartbeatReceived + ImOnline_SomeOffline []EventImOnlineSomeOffline + + Indices_IndexAssigned []EventIndicesIndexAssigned + Indices_IndexFreed []EventIndicesIndexFreed + Indices_IndexFrozen []EventIndicesIndexFrozen + + Lottery_LotteryStarted []EventLotteryLotteryStarted + Lottery_CallsUpdated []EventLotteryCallsUpdated + Lottery_Winner []EventLotteryWinner + Lottery_TicketBought []EventLotteryTicketBought + + Multisig_MultisigApproval []EventMultisigApproval + Multisig_MultisigCancelled []EventMultisigCancelled + Multisig_MultisigExecuted []EventMultisigExecuted + Multisig_NewMultisig []EventMultisigNewMultisig + + NftSales_ForSale []EventNftSalesForSale + NftSales_Removed []EventNftSalesRemoved + NftSales_Sold []EventNftSalesSold + + Offences_Offence []EventOffencesOffence + + OrmlAssetRegistry_RegisteredAsset []EventOrmlAssetRegistryRegisteredAsset + OrmlAssetRegistry_UpdatedAsset []EventOrmlAssetRegistryUpdatedAsset + + OrmlTokens_Endowed []EventOrmlTokensEndowed + OrmlTokens_DustLost []EventOrmlTokensDustLost + OrmlTokens_Transfer []EventOrmlTokensTransfer + OrmlTokens_Reserved []EventOrmlTokensReserved + OrmlTokens_Unreserved []EventOrmlTokensUnreserved + OrmlTokens_ReserveRepatriated []EventOrmlTokensReserveRepatriated + OrmlTokens_BalanceSet []EventOrmlTokensBalanceSet + OrmlTokens_TotalIssuanceSet []EventOrmlTokensTotalIssuanceSet + OrmlTokens_Withdrawn []EventOrmlTokensWithdrawn + OrmlTokens_Slashed []EventOrmlTokensSlashed + OrmlTokens_Deposited []EventOrmlTokensDeposited + OrmlTokens_LockSet []EventOrmlTokensLockSet + OrmlTokens_LockRemoved []EventOrmlTokensLockRemoved + OrmlTokens_Locked []EventOrmlTokensLocked + OrmlTokens_Unlocked []EventOrmlTokensUnlocked + + Paras_CurrentCodeUpdated []EventParasCurrentCodeUpdated + Paras_CurrentHeadUpdated []EventParasCurrentHeadUpdated + Paras_CodeUpgradeScheduled []EventParasCodeUpgradeScheduled + Paras_NewHeadNoted []EventParasNewHeadNoted + Paras_ActionQueued []EventParasActionQueued + Paras_PvfCheckStarted []EventParasPvfCheckStarted + Paras_PvfCheckAccepted []EventParasPvfCheckAccepted + Paras_PvfCheckRejected []EventParasPvfCheckRejected + + ParasDisputes_DisputeInitiated []EventParasDisputesDisputeInitiated + ParasDisputes_DisputeConcluded []EventParasDisputesDisputeConcluded + ParasDisputes_DisputeTimedOut []EventParasDisputesDisputeTimedOut + ParasDisputes_Revert []EventParasDisputesRevert + + ParaInclusion_CandidateBacked []EventParaInclusionCandidateBacked + ParaInclusion_CandidateIncluded []EventParaInclusionCandidateIncluded + ParaInclusion_CandidateTimedOut []EventParaInclusionCandidateTimedOut + + ParachainSystem_ValidationFunctionStored []EventParachainSystemValidationFunctionStored + ParachainSystem_ValidationFunctionApplied []EventParachainSystemValidationFunctionApplied + ParachainSystem_ValidationFunctionDiscarded []EventParachainSystemValidationFunctionDiscarded + ParachainSystem_UpgradeAuthorized []EventParachainSystemUpgradeAuthorized + ParachainSystem_DownwardMessagesReceived []EventParachainSystemDownwardMessagesReceived + ParachainSystem_DownwardMessagesProcessed []EventParachainSystemDownwardMessagesProcessed + + Preimage_Cleared []EventPreimageCleared + Preimage_Noted []EventPreimageNoted + Preimage_Requested []EventPreimageRequested + + Proxy_Announced []EventProxyAnnounced + Proxy_PureCreated []EventProxyPureCreated + Proxy_ProxyAdded []EventProxyProxyAdded + Proxy_ProxyExecuted []EventProxyProxyExecuted + Proxy_ProxyRemoved []EventProxyProxyRemoved + + Recovery_AccountRecovered []EventRecoveryAccountRecovered + Recovery_RecoveryClosed []EventRecoveryClosed + Recovery_RecoveryCreated []EventRecoveryCreated + Recovery_RecoveryInitiated []EventRecoveryInitiated + Recovery_RecoveryRemoved []EventRecoveryRemoved + Recovery_RecoveryVouched []EventRecoveryVouched + + Registrar_Registered []EventRegistrarRegistered + Registrar_Deregistered []EventRegistrarDeregistered + Registrar_Reserved []EventRegistrarReserved + + Referenda_Submitted []EventReferendaSubmitted + Referenda_DecisionDepositPlaced []EventReferendaDecisionDepositPlaced + Referenda_DecisionDepositRefunded []EventReferendaDecisionDepositRefunded + Referenda_DepositSlashed []EventReferendaDecisionSlashed + Referenda_DecisionStarted []EventReferendaDecisionStarted + Referenda_ConfirmStarted []EventReferendaConfirmStarted + Referenda_ConfirmAborted []EventReferendaConfirmAborted + Referenda_Confirmed []EventReferendaConfirmed + Referenda_Approved []EventReferendaApproved + Referenda_Rejected []EventReferendaRejected + Referenda_TimedOut []EventReferendaTimedOut + Referenda_Cancelled []EventReferendaCancelled + Referenda_Killed []EventReferendaKilled + + Scheduler_CallLookupFailed []EventSchedulerCallLookupFailed + Scheduler_Canceled []EventSchedulerCanceled + Scheduler_Dispatched []EventSchedulerDispatched + Scheduler_Scheduled []EventSchedulerScheduled + + Session_NewSession []EventSessionNewSession + + Slots_NewLeasePeriod []EventSlotsNewLeasePeriod + Slots_Leased []EventSlotsLeased + + Society_AutoUnbid []EventSocietyAutoUnbid + Society_Bid []EventSocietyBid + Society_CandidateSuspended []EventSocietyCandidateSuspended + Society_Challenged []EventSocietyChallenged + Society_DefenderVote []EventSocietyDefenderVote + Society_Deposit []EventSocietyDeposit + Society_Founded []EventSocietyFounded + Society_Inducted []EventSocietyInducted + Society_MemberSuspended []EventSocietyMemberSuspended + Society_NewMaxMembers []EventSocietyNewMaxMembers + Society_SuspendedMemberJudgement []EventSocietySuspendedMemberJudgement + Society_Unbid []EventSocietyUnbid + Society_Unfounded []EventSocietyUnfounded + Society_Unvouch []EventSocietyUnvouch + Society_Vote []EventSocietyVote + Society_Vouch []EventSocietyVouch + + Staking_Bonded []EventStakingBonded + Staking_Chilled []EventStakingChilled + Staking_EraPaid []EventStakingEraPaid + Staking_Kicked []EventStakingKicked + Staking_OldSlashingReportDiscarded []EventStakingOldSlashingReportDiscarded + Staking_PayoutStarted []EventStakingPayoutStarted + Staking_Rewarded []EventStakingRewarded + Staking_Slashed []EventStakingSlashed + Staking_StakersElected []EventStakingStakersElected + Staking_StakingElectionFailed []EventStakingStakingElectionFailed + Staking_Unbonded []EventStakingUnbonded + Staking_Withdrawn []EventStakingWithdrawn + + StateTrieMigration_Migrated []EventStateTrieMigrationMigrated + StateTrieMigration_Slashed []EventStateTrieMigrationSlashed + StateTrieMigration_AutoMigrationFinished []EventStateTrieMigrationAutoMigrationFinished + StateTrieMigration_Halted []EventStateTrieMigrationHalted + + Sudo_KeyChanged []EventSudoKeyChanged + Sudo_Sudid []EventSudoSudid + Sudo_SudoAsDone []EventSudoAsDone + + System_CodeUpdated []EventSystemCodeUpdated + System_ExtrinsicFailed []EventSystemExtrinsicFailed + System_ExtrinsicSuccess []EventSystemExtrinsicSuccess + System_KilledAccount []EventSystemKilledAccount + System_NewAccount []EventSystemNewAccount + System_Remarked []EventSystemRemarked + + TechnicalCommittee_Approved []EventTechnicalCommitteeApproved + TechnicalCommittee_Closed []EventTechnicalCommitteeClosed + TechnicalCommittee_Disapproved []EventTechnicalCommitteeDisapproved + TechnicalCommittee_Executed []EventTechnicalCommitteeExecuted + TechnicalCommittee_MemberExecuted []EventTechnicalCommitteeMemberExecuted + TechnicalCommittee_Proposed []EventTechnicalCommitteeProposed + TechnicalCommittee_Voted []EventTechnicalCommitteeVoted + + TechnicalMembership_Dummy []EventTechnicalMembershipDummy + TechnicalMembership_KeyChanged []EventTechnicalMembershipKeyChanged + TechnicalMembership_MemberAdded []EventTechnicalMembershipMemberAdded + TechnicalMembership_MemberRemoved []EventTechnicalMembershipMemberRemoved + TechnicalMembership_MembersReset []EventTechnicalMembershipMembersReset + TechnicalMembership_MembersSwapped []EventTechnicalMembershipMembersSwapped + + Tips_NewTip []EventTipsNewTip + Tips_TipClosed []EventTipsTipClosed + Tips_TipClosing []EventTipsTipClosing + Tips_TipRetracted []EventTipsTipRetracted + Tips_TipSlashed []EventTipsTipSlashed + + TransactionStorage_Stored []EventTransactionStorageStored + TransactionStorage_Renewed []EventTransactionStorageRenewed + TransactionStorage_ProofChecked []EventTransactionStorageProofChecked + + TransactionPayment_TransactionFeePaid []EventTransactionPaymentTransactionFeePaid + + Treasury_Proposed []EventTreasuryProposed + Treasury_Spending []EventTreasurySpending + Treasury_Awarded []EventTreasuryAwarded + Treasury_Rejected []EventTreasuryRejected + Treasury_Burnt []EventTreasuryBurnt + Treasury_Rollover []EventTreasuryRollover + Treasury_Deposit []EventTreasuryDeposit + Treasury_SpendApproved []EventTreasurySpendApproved + Treasury_UpdatedInactive []EventTreasuryUpdatedInactive + + Uniques_ApprovalCancelled []EventUniquesApprovalCancelled + Uniques_ApprovedTransfer []EventUniquesApprovedTransfer + Uniques_AssetStatusChanged []EventUniquesAssetStatusChanged + Uniques_AttributeCleared []EventUniquesAttributeCleared + Uniques_AttributeSet []EventUniquesAttributeSet + Uniques_Burned []EventUniquesBurned + Uniques_ClassFrozen []EventUniquesClassFrozen + Uniques_ClassMetadataCleared []EventUniquesClassMetadataCleared + Uniques_ClassMetadataSet []EventUniquesClassMetadataSet + Uniques_ClassThawed []EventUniquesClassThawed + Uniques_Created []EventUniquesCreated + Uniques_Destroyed []EventUniquesDestroyed + Uniques_ForceCreated []EventUniquesForceCreated + Uniques_Frozen []EventUniquesFrozen + Uniques_Issued []EventUniquesIssued + Uniques_MetadataCleared []EventUniquesMetadataCleared + Uniques_MetadataSet []EventUniquesMetadataSet + Uniques_OwnerChanged []EventUniquesOwnerChanged + Uniques_Redeposited []EventUniquesRedeposited + Uniques_TeamChanged []EventUniquesTeamChanged + Uniques_Thawed []EventUniquesThawed + Uniques_Transferred []EventUniquesTransferred + + Ump_InvalidFormat []EventUMPInvalidFormat + Ump_UnsupportedVersion []EventUMPUnsupportedVersion + Ump_ExecutedUpward []EventUMPExecutedUpward + Ump_WeightExhausted []EventUMPWeightExhausted + Ump_UpwardMessagesReceived []EventUMPUpwardMessagesReceived + Ump_OverweightEnqueued []EventUMPOverweightEnqueued + Ump_OverweightServiced []EventUMPOverweightServiced + + Utility_BatchCompleted []EventUtilityBatchCompleted + Utility_BatchInterrupted []EventUtilityBatchInterrupted + Utility_DispatchedAs []EventUtilityBatchInterrupted + Utility_ItemCompleted []EventUtilityItemCompleted + + Vesting_VestingCompleted []EventVestingVestingCompleted + Vesting_VestingUpdated []EventVestingVestingUpdated + + VoterList_Rebagged []EventVoterListRebagged + VoterList_ScoreUpdated []EventVoterListScoreUpdated + + Whitelist_CallWhitelisted []EventWhitelistCallWhitelisted + Whitelist_WhitelistedCallRemoved []EventWhitelistWhitelistedCallRemoved + Whitelist_WhitelistedCallDispatched []EventWhitelistWhitelistedCallRemoved + + XcmPallet_Attempted []EventXcmPalletAttempted + XcmPallet_Sent []EventXcmPalletSent + XcmPallet_UnexpectedResponse []EventXcmPalletUnexpectedResponse + XcmPallet_ResponseReady []EventXcmPalletResponseReady + XcmPallet_Notified []EventXcmPalletNotified + XcmPallet_NotifyOverweight []EventXcmPalletNotifyOverweight + XcmPallet_NotifyDispatchError []EventXcmPalletNotifyDispatchError + XcmPallet_NotifyDecodeFailed []EventXcmPalletNotifyDecodeFailed + XcmPallet_InvalidResponder []EventXcmPalletInvalidResponder + XcmPallet_InvalidResponderVersion []EventXcmPalletInvalidResponderVersion + XcmPallet_ResponseTaken []EventXcmPalletResponseTaken + XcmPallet_AssetsTrapped []EventXcmPalletAssetsTrapped + XcmPallet_VersionChangeNotified []EventXcmPalletVersionChangeNotified + XcmPallet_SupportedVersionChanged []EventXcmPalletSupportedVersionChanged + XcmPallet_NotifyTargetSendFail []EventXcmPalletNotifyTargetSendFail + XcmPallet_NotifyTargetMigrationFail []EventXcmPalletNotifyTargetMigrationFail } // DecodeEventRecords decodes the events records from an EventRecordRaw into a target t using the given Metadata m diff --git a/types/event_record_test.go b/types/event_record_test.go index cfa8ff598..95d5bb12e 100644 --- a/types/event_record_test.go +++ b/types/event_record_test.go @@ -17,12 +17,8 @@ package types_test import ( - "bytes" - "fmt" - "math/big" "testing" - "github.com/centrifuge/go-substrate-rpc-client/v4/scale" . "github.com/centrifuge/go-substrate-rpc-client/v4/types" . "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" . "github.com/centrifuge/go-substrate-rpc-client/v4/types/test_utils" @@ -92,231 +88,6 @@ func TestEventSystemExtrinsicSuccess_Decode(t *testing.T) { assert.Equal(t, exampleEventApp, decoded) } -func TestEventRecordsRaw_Decode_FailsNumFields(t *testing.T) { - e := EventRecordsRaw(MustHexDecodeString("0x0400020000000302d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48266d00000000000000000000000000000010a5d4e8000000000000000000000000")) //nolint:lll - - events := struct { - Balances_Transfer []struct{ Abc uint8 } //nolint:stylecheck,golint - }{} - err := e.DecodeEventRecords(ExamplaryMetadataV8, &events) - assert.EqualError(t, err, "expected event #0 with EventID [3 2], field Balances_Transfer to have at least 2 fields (for Phase and Topics), but has 1 fields") //nolint:lll -} - -func TestEventRecordsRaw_Decode_FailsFirstNotPhase(t *testing.T) { - e := EventRecordsRaw(MustHexDecodeString("0x0400020000000302d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48266d00000000000000000000000000000010a5d4e8000000000000000000000000")) //nolint:lll - - events := struct { - Balances_Transfer []struct { //nolint:stylecheck,golint - P uint8 - Other uint32 - T []Hash - } - }{} - err := e.DecodeEventRecords(ExamplaryMetadataV8, &events) - assert.EqualError(t, err, "expected the first field of event #0 with EventID [3 2], field Balances_Transfer to be of type types.Phase, but got uint8") //nolint:lll -} - -func TestEventRecordsRaw_Decode_FailsLastNotHash(t *testing.T) { - e := EventRecordsRaw(MustHexDecodeString("0x0400020000000302d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48266d00000000000000000000000000000010a5d4e8000000000000000000000000")) //nolint:lll - - events := struct { - Balances_Transfer []struct { //nolint:stylecheck,golint - P Phase - Other uint32 - T Phase - } - }{} - err := e.DecodeEventRecords(ExamplaryMetadataV8, &events) - assert.EqualError(t, err, "expected the last field of event #0 with EventID [3 2], field Balances_Transfer to be of type []types.Hash for Topics, but got types.Phase") //nolint:lll -} - -func ExampleEventRecordsRaw_Decode() { - e := EventRecordsRaw(MustHexDecodeString( - "0x10" + - "0000000000" + - "0000" + - "2ce909" + // Weight - "01" + // Operational - "01" + // PaysFee - "00" + - "0001000000" + - "0000" + - "2ce909" + // Weight - "01" + // operational - "01" + // PaysFee - "00" + - "0001000000" + // ApplyExtrinsic(1) - "0302" + // Balances_Transfer - "d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d" + // From - "8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48" + // To - "391b0000000000000000000000000000" + // Value - "00" + // Topics - - "0002000000" + - "0000" + - "2ce909" + // Weight - "00" + // Normal - "01" + // PaysFee - "00", - )) - - events := EventRecords{} - err := e.DecodeEventRecords(ExamplaryMetadataV8, &events) - if err != nil { - panic(err) - } - - fmt.Printf("Got %v System_ExtrinsicSuccess events\n", len(events.System_ExtrinsicSuccess)) - fmt.Printf("Got %v Balances_Transfer events\n", len(events.Balances_Transfer)) - t := events.Balances_Transfer[0] - fmt.Printf("Transfer: %v tokens from %#x to\n%#x", t.Value, t.From, t.To) - - // Output: Got 3 System_ExtrinsicSuccess events - // Got 1 Balances_Transfer events - // Transfer: 6969 tokens from 0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d to - // 0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48 -} - -func TestEventRecordsRaw_Decode(t *testing.T) { - e := EventRecordsRaw(MustHexDecodeString( - "0x40" + // (len 16) << 2 - - "0000000000" + // ApplyExtrinsic(0) - "0600" + // Balances_Endowed - "d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d" + // Who - "676b95d82b0400000000000000000000" + // Balance U128 - "00" + // Topics - - "0000000000" + // ApplyExtrinsic(0) - "0601" + // Balances_DustLost - "d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d" + // Who - "676b95d82b0400000000000000000000" + // Balance U128 - "00" + // Topics - - "0001000000" + // ApplyExtrinsic(1) - "0602" + // Balances_Transfer - "d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d" + // From - "8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48" + // To - "391b0000000000000000000000000000" + // Value - "00" + // Topics - - "0000000000" + // ApplyExtrinsic(0) - "0603" + // Balances_BalanceSet - "d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d" + // Who - "676b95d82b0400000000000000000000" + // Free U128 - "676b95d82b0400000000000000000000" + // Reserved U128 - "00" + // Topics - - "0000000000" + // ApplyExtrinsic(0) - "0607" + // Balances_Deposit - "d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d" + // Who - "676b95d82b0400000000000000000000" + // Balance U128 - "00" + // Topics - - "0000000000" + // ApplyExtrinsic(0) - "0500" + // Indices_IndexAssigned - "8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48" + // Who - "39300000" + // AccountIndex - "00" + // Topics - - "0000000000" + // ApplyExtrinsic(0) - "0501" + // Indices_IndexFreed - "39300000" + // AccountIndex - "00" + // Topics - - "0000000000" + // ApplyExtrinsic(0) - "1700" + // Offences_Offence - "696d2d6f6e6c696e653a6f66666c696e" + // Kind - "10c5000000" + // OpaqueTimeSlot - "00" + // Topics - - "0000000000" + // ApplyExtrinsic(0) - "0A00" + // Staking_EraPaid - "c6000000" + // Era Index U32 - "676b95d82b0400000000000000000000" + // Balance U128 - "00000000000000000000000000000000" + // Remainder U128 - "00" + // Topics - - "0000000000" + // ApplyExtrinsic(0) - "0B00" + // Session_NewSession - "c6000000" + // SessionIndex U32 - "00" + // Topics - - "0000000000" + // ApplyExtrinsic(0) - "0000" + // System_ExtrinsicSuccess - "2ce909" + // Weight - "01" + // DispatchClass: Operational - "00" + // PaysFees - "00" + // Topics - - "0001000000" + // ApplyExtrinsic(1) - "0000" + // System_ExtrinsicSuccess - "2ce909" + // Weight - "00" + // DispatchClass: Normal - "00" + // PaysFees - "00" + // Topics - - "0002000000" + // ApplyExtrinsic(2) - "0001" + // System_ExtrinsicFailed - "03" + // HasModule - "0b" + // Module - "01020304" + // Error - "2ce909" + // Weight - "01" + // DispatchClass: Operational - "00" + // PaysFees - "00" + // Topics - - "0000000000" + // ApplyExtrinsic(0) - "0002" + // System_CodeUpdated - "00" + // Topics - - "0000000000" + // ApplyExtrinsic(0) - "0003" + // System_NewAccount - "8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48" + // Who - "00" + // Topics - - "0000000000" + // ApplyExtrinsic(0) - "0004" + // System_KilledAccount - "8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48" + // Who - "00", // Topics - )) //nolint:lll - - var b []byte - - buf := bytes.NewBuffer(b) - - err := e.Encode(*scale.NewEncoder(buf)) - assert.Nil(t, err) - assert.True(t, len(buf.Bytes()) > 0) - - var metadata Metadata - err = DecodeFromHex(MetadataV14Data, &metadata) - if err != nil { - panic(err) - } - events := EventRecords{} - err = e.DecodeEventRecords(&metadata, &events) - if err != nil { - panic(err) - } - - exp := EventRecords{ - Balances_Endowed: []EventBalancesEndowed{EventBalancesEndowed{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x0, IsFinalization: false}, Who: AccountID{0xd4, 0x35, 0x93, 0xc7, 0x15, 0xfd, 0xd3, 0x1c, 0x61, 0x14, 0x1a, 0xbd, 0x4, 0xa9, 0x9f, 0xd6, 0x82, 0x2c, 0x85, 0x58, 0x85, 0x4c, 0xcd, 0xe3, 0x9a, 0x56, 0x84, 0xe7, 0xa5, 0x6d, 0xa2, 0x7d}, Balance: NewU128(*big.NewInt(4586363775847)), Topics: []Hash(nil)}}, - Balances_DustLost: []EventBalancesDustLost{EventBalancesDustLost{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x0, IsFinalization: false}, Who: AccountID{0xd4, 0x35, 0x93, 0xc7, 0x15, 0xfd, 0xd3, 0x1c, 0x61, 0x14, 0x1a, 0xbd, 0x4, 0xa9, 0x9f, 0xd6, 0x82, 0x2c, 0x85, 0x58, 0x85, 0x4c, 0xcd, 0xe3, 0x9a, 0x56, 0x84, 0xe7, 0xa5, 0x6d, 0xa2, 0x7d}, Balance: NewU128(*big.NewInt(4586363775847)), Topics: []Hash(nil)}}, - Balances_Transfer: []EventBalancesTransfer{EventBalancesTransfer{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x1, IsFinalization: false}, From: AccountID{0xd4, 0x35, 0x93, 0xc7, 0x15, 0xfd, 0xd3, 0x1c, 0x61, 0x14, 0x1a, 0xbd, 0x4, 0xa9, 0x9f, 0xd6, 0x82, 0x2c, 0x85, 0x58, 0x85, 0x4c, 0xcd, 0xe3, 0x9a, 0x56, 0x84, 0xe7, 0xa5, 0x6d, 0xa2, 0x7d}, To: AccountID{0x8e, 0xaf, 0x4, 0x15, 0x16, 0x87, 0x73, 0x63, 0x26, 0xc9, 0xfe, 0xa1, 0x7e, 0x25, 0xfc, 0x52, 0x87, 0x61, 0x36, 0x93, 0xc9, 0x12, 0x90, 0x9c, 0xb2, 0x26, 0xaa, 0x47, 0x94, 0xf2, 0x6a, 0x48}, Value: NewU128(*big.NewInt(6969)), Topics: []Hash(nil)}}, - Balances_BalanceSet: []EventBalancesBalanceSet{EventBalancesBalanceSet{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x0, IsFinalization: false}, Who: AccountID{0xd4, 0x35, 0x93, 0xc7, 0x15, 0xfd, 0xd3, 0x1c, 0x61, 0x14, 0x1a, 0xbd, 0x4, 0xa9, 0x9f, 0xd6, 0x82, 0x2c, 0x85, 0x58, 0x85, 0x4c, 0xcd, 0xe3, 0x9a, 0x56, 0x84, 0xe7, 0xa5, 0x6d, 0xa2, 0x7d}, Free: NewU128(*big.NewInt(4586363775847)), Reserved: NewU128(*big.NewInt(4586363775847)), Topics: []Hash(nil)}}, - Balances_Deposit: []EventBalancesDeposit{EventBalancesDeposit{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x0, IsFinalization: false}, Who: AccountID{0xd4, 0x35, 0x93, 0xc7, 0x15, 0xfd, 0xd3, 0x1c, 0x61, 0x14, 0x1a, 0xbd, 0x4, 0xa9, 0x9f, 0xd6, 0x82, 0x2c, 0x85, 0x58, 0x85, 0x4c, 0xcd, 0xe3, 0x9a, 0x56, 0x84, 0xe7, 0xa5, 0x6d, 0xa2, 0x7d}, Balance: NewU128(*big.NewInt(4586363775847)), Topics: []Hash(nil)}}, - Balances_Reserved: []EventBalancesReserved(nil), - Balances_Unreserved: []EventBalancesUnreserved(nil), - Balances_ReserveRepatriated: []EventBalancesReserveRepatriated(nil), - Grandpa_NewAuthorities: []EventGrandpaNewAuthorities(nil), - Grandpa_Paused: []EventGrandpaPaused(nil), - Grandpa_Resumed: []EventGrandpaResumed(nil), ImOnline_HeartbeatReceived: []EventImOnlineHeartbeatReceived(nil), ImOnline_AllGood: []EventImOnlineAllGood(nil), ImOnline_SomeOffline: []EventImOnlineSomeOffline(nil), Indices_IndexAssigned: []EventIndicesIndexAssigned{EventIndicesIndexAssigned{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x0, IsFinalization: false}, AccountID: AccountID{0x8e, 0xaf, 0x4, 0x15, 0x16, 0x87, 0x73, 0x63, 0x26, 0xc9, 0xfe, 0xa1, 0x7e, 0x25, 0xfc, 0x52, 0x87, 0x61, 0x36, 0x93, 0xc9, 0x12, 0x90, 0x9c, 0xb2, 0x26, 0xaa, 0x47, 0x94, 0xf2, 0x6a, 0x48}, AccountIndex: 0x3039, Topics: []Hash(nil)}}, Indices_IndexFreed: []EventIndicesIndexFreed{EventIndicesIndexFreed{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x0, IsFinalization: false}, AccountIndex: 0x3039, Topics: []Hash(nil)}}, Indices_IndexFrozen: []EventIndicesIndexFrozen(nil), Offences_Offence: []EventOffencesOffence{EventOffencesOffence{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x0, IsFinalization: false}, Kind: Bytes16{0x69, 0x6d, 0x2d, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x3a, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e}, OpaqueTimeSlot: Bytes{0xc5, 0x0, 0x0, 0x0}, Topics: []Hash(nil)}}, Session_NewSession: []EventSessionNewSession{EventSessionNewSession{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x0, IsFinalization: false}, SessionIndex: 0xc6, Topics: []Hash(nil)}}, Staking_EraPaid: []EventStakingEraPaid{EventStakingEraPaid{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x0, IsFinalization: false}, EraIndex: 0xc6, ValidatorPayout: NewU128(*big.NewInt(4586363775847)), Remainder: NewU128(*big.NewInt(0)), Topics: []Hash(nil)}}, Staking_Rewarded: []EventStakingRewarded(nil), Staking_Slashed: []EventStakingSlashed(nil), Staking_OldSlashingReportDiscarded: []EventStakingOldSlashingReportDiscarded(nil), Staking_StakersElected: []EventStakingStakersElected(nil), Staking_Bonded: []EventStakingBonded(nil), Staking_Unbonded: []EventStakingUnbonded(nil), Staking_Withdrawn: []EventStakingWithdrawn(nil), System_ExtrinsicSuccess: []EventSystemExtrinsicSuccess{EventSystemExtrinsicSuccess{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x0, IsFinalization: false}, DispatchInfo: DispatchInfo{Weight: testWeight, Class: DispatchClass{IsNormal: false, IsOperational: true}, PaysFee: Pays{IsYes: true}}, Topics: []Hash(nil)}, EventSystemExtrinsicSuccess{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x1, IsFinalization: false}, DispatchInfo: DispatchInfo{Weight: testWeight, Class: DispatchClass{IsNormal: true, IsOperational: false}, PaysFee: Pays{IsYes: true}}, Topics: []Hash(nil)}}, System_ExtrinsicFailed: []EventSystemExtrinsicFailed{EventSystemExtrinsicFailed{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x2, IsFinalization: false}, DispatchError: DispatchError{IsModule: true, ModuleError: ModuleError{Index: 0xb, Error: [4]U8{1, 2, 3, 4}}}, DispatchInfo: DispatchInfo{Weight: testWeight, Class: DispatchClass{IsNormal: false, IsOperational: true}, PaysFee: Pays{IsYes: true}}, Topics: []Hash(nil)}}, System_CodeUpdated: []EventSystemCodeUpdated{EventSystemCodeUpdated{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x0, IsFinalization: false}, Topics: []Hash(nil)}}, System_NewAccount: []EventSystemNewAccount{EventSystemNewAccount{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x0, IsFinalization: false}, Who: AccountID{0x8e, 0xaf, 0x4, 0x15, 0x16, 0x87, 0x73, 0x63, 0x26, 0xc9, 0xfe, 0xa1, 0x7e, 0x25, 0xfc, 0x52, 0x87, 0x61, 0x36, 0x93, 0xc9, 0x12, 0x90, 0x9c, 0xb2, 0x26, 0xaa, 0x47, 0x94, 0xf2, 0x6a, 0x48}, Topics: []Hash(nil)}}, System_KilledAccount: []EventSystemKilledAccount{EventSystemKilledAccount{Phase: Phase{IsApplyExtrinsic: true, AsApplyExtrinsic: 0x0, IsFinalization: false}, Who: AccountID{0x8e, 0xaf, 0x4, 0x15, 0x16, 0x87, 0x73, 0x63, 0x26, 0xc9, 0xfe, 0xa1, 0x7e, 0x25, 0xfc, 0x52, 0x87, 0x61, 0x36, 0x93, 0xc9, 0x12, 0x90, 0x9c, 0xb2, 0x26, 0xaa, 0x47, 0x94, 0xf2, 0x6a, 0x48}, Topics: []Hash(nil)}}, Assets_Issued: []EventAssetIssued(nil), Assets_Transferred: []EventAssetTransferred(nil), Assets_Destroyed: []EventAssetDestroyed(nil), Democracy_Proposed: []EventDemocracyProposed(nil), Democracy_Tabled: []EventDemocracyTabled(nil), Democracy_ExternalTabled: []EventDemocracyExternalTabled(nil), Democracy_Started: []EventDemocracyStarted(nil), Democracy_Passed: []EventDemocracyPassed(nil), Democracy_NotPassed: []EventDemocracyNotPassed(nil), Democracy_Cancelled: []EventDemocracyCancelled(nil), Democracy_Executed: []EventDemocracyExecuted(nil), Democracy_Delegated: []EventDemocracyDelegated(nil), Democracy_Undelegated: []EventDemocracyUndelegated(nil), Democracy_Vetoed: []EventDemocracyVetoed(nil), Democracy_PreimageNoted: []EventDemocracyPreimageNoted(nil), Democracy_PreimageUsed: []EventDemocracyPreimageUsed(nil), Democracy_PreimageInvalid: []EventDemocracyPreimageInvalid(nil), Democracy_PreimageMissing: []EventDemocracyPreimageMissing(nil), Democracy_PreimageReaped: []EventDemocracyPreimageReaped(nil), Council_Proposed: []EventCouncilProposed(nil), Council_Voted: []EventCouncilVoted(nil), Council_Approved: []EventCouncilApproved(nil), Council_Disapproved: []EventCouncilDisapproved(nil), Council_Executed: []EventCouncilExecuted(nil), Council_MemberExecuted: []EventCouncilMemberExecuted(nil), Council_Closed: []EventCouncilClosed(nil), TechnicalCommittee_Proposed: []EventTechnicalCommitteeProposed(nil), TechnicalCommittee_Voted: []EventTechnicalCommitteeVoted(nil), TechnicalCommittee_Approved: []EventTechnicalCommitteeApproved(nil), TechnicalCommittee_Disapproved: []EventTechnicalCommitteeDisapproved(nil), TechnicalCommittee_Executed: []EventTechnicalCommitteeExecuted(nil), TechnicalCommittee_MemberExecuted: []EventTechnicalCommitteeMemberExecuted(nil), TechnicalCommittee_Closed: []EventTechnicalCommitteeClosed(nil), Elections_NewTerm: []EventElectionsNewTerm(nil), Elections_EmptyTerm: []EventElectionsEmptyTerm(nil), Elections_MemberKicked: []EventElectionsMemberKicked(nil), Elections_Renounced: []EventElectionsRenounced(nil), Identity_IdentitySet: []EventIdentitySet(nil), Identity_IdentityCleared: []EventIdentityCleared(nil), Identity_IdentityKilled: []EventIdentityKilled(nil), Identity_JudgementRequested: []EventIdentityJudgementRequested(nil), Identity_JudgementUnrequested: []EventIdentityJudgementUnrequested(nil), Identity_JudgementGiven: []EventIdentityJudgementGiven(nil), Identity_RegistrarAdded: []EventIdentityRegistrarAdded(nil), Identity_SubIdentityAdded: []EventIdentitySubIdentityAdded(nil), Identity_SubIdentityRemoved: []EventIdentitySubIdentityRemoved(nil), Identity_SubIdentityRevoked: []EventIdentitySubIdentityRevoked(nil), Society_Founded: []EventSocietyFounded(nil), Society_Bid: []EventSocietyBid(nil), Society_Vouch: []EventSocietyVouch(nil), Society_AutoUnbid: []EventSocietyAutoUnbid(nil), Society_Unbid: []EventSocietyUnbid(nil), Society_Unvouch: []EventSocietyUnvouch(nil), Society_Inducted: []EventSocietyInducted(nil), Society_SuspendedMemberJudgement: []EventSocietySuspendedMemberJudgement(nil), Society_CandidateSuspended: []EventSocietyCandidateSuspended(nil), Society_MemberSuspended: []EventSocietyMemberSuspended(nil), Society_Challenged: []EventSocietyChallenged(nil), Society_Vote: []EventSocietyVote(nil), Society_DefenderVote: []EventSocietyDefenderVote(nil), Society_NewMaxMembers: []EventSocietyNewMaxMembers(nil), Society_Unfounded: []EventSocietyUnfounded(nil), Society_Deposit: []EventSocietyDeposit(nil), Recovery_RecoveryCreated: []EventRecoveryCreated(nil), Recovery_RecoveryInitiated: []EventRecoveryInitiated(nil), Recovery_RecoveryVouched: []EventRecoveryVouched(nil), Recovery_RecoveryClosed: []EventRecoveryClosed(nil), Recovery_AccountRecovered: []EventRecoveryAccountRecovered(nil), Recovery_RecoveryRemoved: []EventRecoveryRemoved(nil), Vesting_VestingUpdated: []EventVestingVestingUpdated(nil), Vesting_VestingCompleted: []EventVestingVestingCompleted(nil), Scheduler_Scheduled: []EventSchedulerScheduled(nil), Scheduler_Canceled: []EventSchedulerCanceled(nil), Scheduler_Dispatched: []EventSchedulerDispatched(nil), Proxy_ProxyExecuted: []EventProxyProxyExecuted(nil), Proxy_PureCreated: []EventProxyPureCreated(nil), Sudo_Sudid: []EventSudoSudid(nil), Sudo_KeyChanged: []EventSudoKeyChanged(nil), Sudo_SudoAsDone: []EventSudoAsDone(nil), Treasury_Proposed: []EventTreasuryProposed(nil), Treasury_Spending: []EventTreasurySpending(nil), Treasury_Awarded: []EventTreasuryAwarded(nil), Treasury_Rejected: []EventTreasuryRejected(nil), Treasury_Burnt: []EventTreasuryBurnt(nil), Treasury_Rollover: []EventTreasuryRollover(nil), Treasury_Deposit: []EventTreasuryDeposit(nil), Tips_NewTip: []EventTipsNewTip(nil), Tips_TipClosing: []EventTipsTipClosing(nil), Tips_TipClosed: []EventTipsTipClosed(nil), Tips_TipRetracted: []EventTipsTipRetracted(nil), Contracts_Instantiated: []EventContractsInstantiated(nil), Contracts_ContractEmitted: []EventContractsContractEmitted(nil), Contracts_ContractCodeUpdated: []EventContractsContractCodeUpdated(nil), Contracts_CodeStored: []EventContractsCodeStored(nil), Utility_BatchInterrupted: []EventUtilityBatchInterrupted(nil), Utility_BatchCompleted: []EventUtilityBatchCompleted(nil), Multisig_NewMultisig: []EventMultisigNewMultisig(nil), Multisig_MultisigApproval: []EventMultisigApproval(nil), Multisig_MultisigExecuted: []EventMultisigExecuted(nil), Multisig_MultisigCancelled: []EventMultisigCancelled(nil)} - //nolint:lll - - assert.Equal(t, exp, events) -} - func TestDispatchError(t *testing.T) { AssertRoundTripFuzz[DispatchError](t, 1000, dispatchErrorFuzzOpts...) AssertDecodeNilData[DispatchError](t) diff --git a/types/extrinsic.go b/types/extrinsic.go deleted file mode 100644 index ecb437f47..000000000 --- a/types/extrinsic.go +++ /dev/null @@ -1,355 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -import ( - "bytes" - "encoding/json" - "fmt" - "io" - "math/big" - "strings" - - "github.com/centrifuge/go-substrate-rpc-client/v4/scale" - "github.com/centrifuge/go-substrate-rpc-client/v4/signature" - "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" -) - -const ( - ExtrinsicBitSigned = 0x80 - ExtrinsicBitUnsigned = 0 - ExtrinsicUnmaskVersion = 0x7f - ExtrinsicDefaultVersion = 1 - ExtrinsicVersionUnknown = 0 // v0 is unknown - ExtrinsicVersion1 = 1 - ExtrinsicVersion2 = 2 - ExtrinsicVersion3 = 3 - ExtrinsicVersion4 = 4 -) - -// Extrinsic is a piece of Args bundled into a block that expresses something from the "external" (i.e. off-chain) -// world. There are, broadly speaking, two types of extrinsic: transactions (which tend to be signed) and -// inherents (which don't). -type Extrinsic struct { - // Version is the encoded version flag (which encodes the raw transaction version and signing information in one byte) - Version byte - // Signature is the ExtrinsicSignatureV4, it's presence depends on the Version flag - Signature ExtrinsicSignatureV4 - // Method is the call this extrinsic wraps - Method Call -} - -// NewExtrinsic creates a new Extrinsic from the provided Call -func NewExtrinsic(c Call) Extrinsic { - return Extrinsic{ - Version: ExtrinsicVersion4, - Method: c, - } -} - -// UnmarshalJSON fills Extrinsic with the JSON encoded byte array given by bz -func (e *Extrinsic) UnmarshalJSON(bz []byte) error { - var tmp string - if err := json.Unmarshal(bz, &tmp); err != nil { - return err - } - - // HACK 11 Jan 2019 - before https://github.com/paritytech/substrate/pull/1388 - // extrinsics didn't have the length, cater for both approaches. This is very - // inconsistent with any other `Vec` implementation - var l UCompact - err := codec.DecodeFromHex(tmp, &l) - if err != nil { - return err - } - - prefix, err := codec.EncodeToHex(l) - if err != nil { - return err - } - - // determine whether length prefix is there - if strings.HasPrefix(tmp, prefix) { - return codec.DecodeFromHex(tmp, e) - } - - // not there, prepend with compact encoded length prefix - dec, err := codec.HexDecodeString(tmp) - if err != nil { - return err - } - length := NewUCompactFromUInt(uint64(len(dec))) - bprefix, err := codec.Encode(length) - if err != nil { - return err - } - bprefix = append(bprefix, dec...) - return codec.Decode(bprefix, e) -} - -// MarshalJSON returns a JSON encoded byte array of Extrinsic -func (e Extrinsic) MarshalJSON() ([]byte, error) { - s, err := codec.EncodeToHex(e) - if err != nil { - return nil, err - } - return json.Marshal(s) -} - -// IsSigned returns true if the extrinsic is signed -func (e Extrinsic) IsSigned() bool { - return e.Version&ExtrinsicBitSigned == ExtrinsicBitSigned -} - -// Type returns the raw transaction version (not flagged with signing information) -func (e Extrinsic) Type() uint8 { - return e.Version & ExtrinsicUnmaskVersion -} - -// Sign adds a signature to the extrinsic -func (e *Extrinsic) Sign(signer signature.KeyringPair, o SignatureOptions) error { - if e.Type() != ExtrinsicVersion4 { - return fmt.Errorf("unsupported extrinsic version: %v (isSigned: %v, type: %v)", e.Version, e.IsSigned(), e.Type()) - } - - mb, err := codec.Encode(e.Method) - if err != nil { - return err - } - - era := o.Era - if !o.Era.IsMortalEra { - era = ExtrinsicEra{IsImmortalEra: true} - } - - payload := ExtrinsicPayloadV4{ - ExtrinsicPayloadV3: ExtrinsicPayloadV3{ - Method: mb, - Era: era, - Nonce: o.Nonce, - Tip: o.Tip, - SpecVersion: o.SpecVersion, - GenesisHash: o.GenesisHash, - BlockHash: o.BlockHash, - }, - TransactionVersion: o.TransactionVersion, - } - - signerPubKey, err := NewMultiAddressFromAccountID(signer.PublicKey) - - if err != nil { - return err - } - - sig, err := payload.Sign(signer) - if err != nil { - return err - } - - extSig := ExtrinsicSignatureV4{ - Signer: signerPubKey, - Signature: MultiSignature{IsSr25519: true, AsSr25519: sig}, - Era: era, - Nonce: o.Nonce, - Tip: o.Tip, - } - - e.Signature = extSig - - // mark the extrinsic as signed - e.Version |= ExtrinsicBitSigned - - return nil -} - -func (e *Extrinsic) Decode(decoder scale.Decoder) error { - // compact length encoding (1, 2, or 4 bytes) (may not be there for Extrinsics older than Jan 11 2019) - _, err := decoder.DecodeUintCompact() - if err != nil { - return err - } - - // version, signature bitmask (1 byte) - err = decoder.Decode(&e.Version) - if err != nil { - return err - } - - // signature - if e.IsSigned() { - if e.Type() != ExtrinsicVersion4 { - return fmt.Errorf("unsupported extrinsic version: %v (isSigned: %v, type: %v)", e.Version, e.IsSigned(), - e.Type()) - } - - err = decoder.Decode(&e.Signature) - if err != nil { - return err - } - } - - // call - err = decoder.Decode(&e.Method) - if err != nil { - return err - } - - return nil -} - -func (e Extrinsic) Encode(encoder scale.Encoder) error { - if e.Type() != ExtrinsicVersion4 { - return fmt.Errorf("unsupported extrinsic version: %v (isSigned: %v, type: %v)", e.Version, e.IsSigned(), - e.Type()) - } - - // create a temporary buffer that will receive the plain encoded transaction (version, signature (optional), - // method/call) - var bb = bytes.Buffer{} - tempEnc := scale.NewEncoder(&bb) - - // encode the version of the extrinsic - err := tempEnc.Encode(e.Version) - if err != nil { - return err - } - - // encode the signature if signed - if e.IsSigned() { - err = tempEnc.Encode(e.Signature) - if err != nil { - return err - } - } - - // encode the method - err = tempEnc.Encode(e.Method) - if err != nil { - return err - } - - // take the temporary buffer to determine length, write that as prefix - eb := bb.Bytes() - err = encoder.EncodeUintCompact(*big.NewInt(0).SetUint64(uint64(len(eb)))) - if err != nil { - return err - } - - // write the actual encoded transaction - err = encoder.Write(eb) - if err != nil { - return err - } - - return nil -} - -// Call is the extrinsic function descriptor -type Call struct { - CallIndex CallIndex - Args Args -} - -func NewCall(m *Metadata, call string, args ...interface{}) (Call, error) { - c, err := m.FindCallIndex(call) - if err != nil { - return Call{}, err - } - - var a []byte - for _, arg := range args { - e, err := codec.Encode(arg) - if err != nil { - return Call{}, err - } - a = append(a, e...) - } - - return Call{c, a}, nil -} - -// Callindex is a 16 bit wrapper around the `[sectionIndex, methodIndex]` value that uniquely identifies a method -type CallIndex struct { - SectionIndex uint8 - MethodIndex uint8 -} - -func (m *CallIndex) Decode(decoder scale.Decoder) error { - err := decoder.Decode(&m.SectionIndex) - if err != nil { - return err - } - - err = decoder.Decode(&m.MethodIndex) - if err != nil { - return err - } - - return nil -} - -func (m CallIndex) Encode(encoder scale.Encoder) error { - err := encoder.Encode(m.SectionIndex) - if err != nil { - return err - } - - err = encoder.Encode(m.MethodIndex) - if err != nil { - return err - } - - return nil -} - -// Args are the encoded arguments for a Call -type Args []byte - -// Encode implements encoding for Args, which just unwraps the bytes of Args -func (a Args) Encode(encoder scale.Encoder) error { - return encoder.Write(a) -} - -// Decode implements decoding for Args, which just reads all the remaining bytes into Args -func (a *Args) Decode(decoder scale.Decoder) error { - for i := 0; true; i++ { - b, err := decoder.ReadOneByte() - if err == io.EOF { - break - } - if err != nil { - return err - } - *a = append((*a)[:i], b) - } - return nil -} - -type Justification Bytes - -type SignaturePayload struct { - Address Address - BlockHash Hash - BlockNumber BlockNumber - Era ExtrinsicEra - GenesisHash Hash - Method Call - Nonce UCompact - RuntimeVersion RuntimeVersion - Tip UCompact - Version uint8 -} diff --git a/types/extrinsic/extensions/check_metadata.go b/types/extrinsic/extensions/check_metadata.go new file mode 100644 index 000000000..4e860b1c3 --- /dev/null +++ b/types/extrinsic/extensions/check_metadata.go @@ -0,0 +1,40 @@ +package extensions + +import ( + "errors" + + "github.com/centrifuge/go-substrate-rpc-client/v4/scale" + "github.com/centrifuge/go-substrate-rpc-client/v4/types" +) + +type CheckMetadataMode byte + +var ( + CheckMetadataModeDisabled CheckMetadataMode + CheckMetadataModeEnabled CheckMetadataMode = 1 +) + +func (m CheckMetadataMode) Encode(encoder scale.Encoder) error { + switch m { + case CheckMetadataModeDisabled: + return encoder.PushByte(0) + case CheckMetadataModeEnabled: + return encoder.PushByte(1) + default: + return errors.New("unsupported check metadata mode") + } +} + +type CheckMetadataHash struct { + Hash types.Option[types.H256] +} + +func (c CheckMetadataHash) Encode(encoder *scale.Encoder) error { + if c.Hash.HasValue() { + _, hash := c.Hash.Unwrap() + + return encoder.Encode(hash) + } + + return encoder.PushByte(0) +} diff --git a/types/extrinsic/extensions/names.go b/types/extrinsic/extensions/names.go new file mode 100644 index 000000000..57aa42254 --- /dev/null +++ b/types/extrinsic/extensions/names.go @@ -0,0 +1,22 @@ +package extensions + +// SignedExtensionName is the type for the signed extension name present in the metadata. +type SignedExtensionName string + +const ( + CheckNonZeroSenderSignedExtension SignedExtensionName = "CheckNonZeroSender" + CheckMortalitySignedExtension SignedExtensionName = "CheckMortality" + CheckEraSignedExtension SignedExtensionName = "CheckEra" + CheckNonceSignedExtension SignedExtensionName = "CheckNonce" + ChargeTransactionPaymentSignedExtension SignedExtensionName = "ChargeTransactionPayment" + ChargeAssetTxPaymentSignedExtension SignedExtensionName = "ChargeAssetTxPayment" + CheckMetadataHashSignedExtension SignedExtensionName = "CheckMetadataHash" + CheckSpecVersionSignedExtension SignedExtensionName = "CheckSpecVersion" + CheckTxVersionSignedExtension SignedExtensionName = "CheckTxVersion" + CheckGenesisSignedExtension SignedExtensionName = "CheckGenesis" + CheckWeightSignedExtension SignedExtensionName = "CheckWeight" + PreBalanceTransferExtensionSignedExtension SignedExtensionName = "PreBalanceTransferExtension" + StorageWeightReclaimSignedExtension SignedExtensionName = "StorageWeightReclaim" + PrevalidateAttestsSignedExtension SignedExtensionName = "PrevalidateAttests" + CheckNetworkMembershipSignedExtension SignedExtensionName = "CheckNetworkMembership" +) diff --git a/types/extrinsic/extrinsic.go b/types/extrinsic/extrinsic.go new file mode 100644 index 000000000..e251a157f --- /dev/null +++ b/types/extrinsic/extrinsic.go @@ -0,0 +1,173 @@ +package extrinsic + +import ( + "bytes" + "encoding/json" + "fmt" + "math/big" + + libErr "github.com/centrifuge/go-substrate-rpc-client/v4/error" + "github.com/centrifuge/go-substrate-rpc-client/v4/scale" + "github.com/centrifuge/go-substrate-rpc-client/v4/signature" + "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" +) + +const ( + ErrEncodeToHex = libErr.Error("encode to hex") + ErrScaleEncode = libErr.Error("scale encode") + ErrInvalidVersion = libErr.Error("invalid version") + ErrPayloadCreation = libErr.Error("payload creation") + ErrPayloadMutation = libErr.Error("payload mutation") + ErrMultiAddressCreation = libErr.Error("multi address creation") + ErrPayloadSigning = libErr.Error("payload signing") +) + +const ( + BitSigned = 0x80 + BitUnsigned = 0 + + UnmaskVersion = 0x7f + + DefaultVersion = 1 + VersionUnknown = 0 // v0 is unknown + Version1 = 1 + Version2 = 2 + Version3 = 3 + Version4 = 4 +) + +// Extrinsic is an extrinsic type that can be used on chains that +// have a custom signed extension logic. +type Extrinsic struct { + // Version is the encoded version flag (which encodes the raw transaction version + // and signing information in one byte). + Version byte + // Signature is the extrinsic signature. + Signature *Signature + // Method is the call this extrinsic wraps + Method types.Call +} + +// NewExtrinsic creates a new Extrinsic from the provided Call. +func NewExtrinsic(c types.Call) Extrinsic { + return Extrinsic{ + Version: Version4, + Method: c, + } +} + +// MarshalJSON returns a JSON encoded byte array of Extrinsic. +func (e Extrinsic) MarshalJSON() ([]byte, error) { + s, err := codec.EncodeToHex(e) + if err != nil { + return nil, ErrEncodeToHex.Wrap(err) + } + return json.Marshal(s) +} + +// IsSigned returns true if the extrinsic is signed +func (e Extrinsic) IsSigned() bool { + return e.Version&BitSigned == BitSigned +} + +// Type returns the raw transaction version (not flagged with signing information) +func (e Extrinsic) Type() uint8 { + return e.Version & UnmaskVersion +} + +// Sign adds a signature to the extrinsic. +func (e *Extrinsic) Sign(signer signature.KeyringPair, meta *types.Metadata, opts ...SigningOption) error { + if e.Type() != Version4 { + //nolint:lll + return ErrInvalidVersion.WithMsg("unsupported extrinsic version: %v (isSigned: %v, type: %v)", e.Version, e.IsSigned(), e.Type()) + } + + encodedMethod, err := codec.Encode(e.Method) + if err != nil { + return ErrScaleEncode.Wrap(err) + } + + fieldValues := SignedFieldValues{} + + for _, opt := range opts { + opt(fieldValues) + } + + payload, err := createPayload(meta, encodedMethod) + + if err != nil { + return ErrPayloadCreation.Wrap(err) + } + + if err := payload.MutateSignedFields(fieldValues); err != nil { + return ErrPayloadMutation.Wrap(err) + } + + signerPubKey, err := types.NewMultiAddressFromAccountID(signer.PublicKey) + + if err != nil { + return ErrMultiAddressCreation.Wrap(err) + } + + sig, err := payload.Sign(signer) + if err != nil { + return ErrPayloadSigning.Wrap(err) + } + + extSignature := &Signature{ + Signer: signerPubKey, + Signature: types.MultiSignature{IsSr25519: true, AsSr25519: sig}, + SignedFields: payload.SignedFields, + } + + e.Signature = extSignature + + // mark the extrinsic as signed + e.Version |= BitSigned + + return nil +} + +func (e Extrinsic) Encode(encoder scale.Encoder) error { + if e.Type() != Version4 { + return fmt.Errorf("unsupported extrinsic version: %v (isSigned: %v, type: %v)", e.Version, e.IsSigned(), + e.Type()) + } + + var bb = bytes.Buffer{} + tempEnc := scale.NewEncoder(&bb) + + err := tempEnc.Encode(e.Version) + if err != nil { + return err + } + + if e.IsSigned() { + err = tempEnc.Encode(e.Signature) + if err != nil { + return err + } + } + + // encode the method + err = tempEnc.Encode(e.Method) + if err != nil { + return err + } + + // take the temporary buffer to determine length, write that as prefix + eb := bb.Bytes() + err = encoder.EncodeUintCompact(*big.NewInt(0).SetUint64(uint64(len(eb)))) + if err != nil { + return err + } + + // write the actual encoded transaction + err = encoder.Write(eb) + if err != nil { + return err + } + + return nil +} diff --git a/types/extrinsic/extrinsic_test.go b/types/extrinsic/extrinsic_test.go new file mode 100644 index 000000000..2889c7781 --- /dev/null +++ b/types/extrinsic/extrinsic_test.go @@ -0,0 +1,207 @@ +// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls +// +// Copyright 2019 Centrifuge GmbH +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package extrinsic + +import ( + "github.com/centrifuge/go-substrate-rpc-client/v4/signature" + "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic/extensions" + "github.com/stretchr/testify/assert" + "strings" + "testing" +) + +func TestExtrinsic_Unsigned_Encode(t *testing.T) { + var meta types.Metadata + + err := codec.DecodeFromHex(types.MetadataV14Data, &meta) + assert.NoError(t, err) + + c, err := types.NewCall(&meta, "System.remark", []byte("test")) + assert.NoError(t, err) + + ext := NewExtrinsic(c) + + extEnc, err := codec.EncodeToHex(ext) + assert.NoError(t, err) + + assert.Equal(t, "0x"+ + "20"+ // length prefix, compact + "04"+ // version + "0000"+ // call index + "10"+"74657374", // remark + extEnc, + ) +} + +func TestExtrinsic_Signed_Encode(t *testing.T) { + var meta types.Metadata + + err := codec.DecodeFromHex(types.MetadataV14Data, &meta) + assert.NoError(t, err) + + c, err := types.NewCall(&meta, "System.remark", []byte("test")) + assert.NoError(t, err) + + ext := NewExtrinsic(c) + + var genesisHash types.Hash + + err = codec.Decode([]byte("0xc787b4dfaa5c0b163fa24eeeb8bf2d06188f81c1beb7ebea76e581549f55254d"), &genesisHash) + assert.NoError(t, err) + + specVersion := types.U32(1402) + txVersion := types.U32(2) + + err = ext.Sign(signature.TestKeyringPairAlice, &meta, + WithEra(types.ExtrinsicEra{IsImmortalEra: true}, genesisHash), + WithNonce(types.NewUCompactFromUInt(uint64(1))), + WithTip(types.NewUCompactFromUInt(0)), + WithSpecVersion(specVersion), + WithTransactionVersion(txVersion), + WithGenesisHash(genesisHash), + WithMetadataMode(extensions.CheckMetadataModeDisabled, extensions.CheckMetadataHash{Hash: types.NewEmptyOption[types.H256]()}), + ) + assert.NoError(t, err) + + encodedSignature, err := codec.EncodeToHex(ext.Signature) + assert.NoError(t, err) + + assert.True(t, strings.HasPrefix( + encodedSignature, + "0x"+ + "00"+"d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", // signer + ), + ) + + assert.True(t, strings.HasSuffix( + encodedSignature, + "00"+ // era + "04"+ // nonce compact + "00"+ // tip + "00", // mode + ), + ) + + extEnc, err := codec.EncodeToHex(ext) + assert.NoError(t, err) + + assert.Equal( + t, + extEnc, + "0x"+ + "b901"+"84"+ // prefix + strings.TrimPrefix(encodedSignature, "0x")+ // signature + "0000"+ // call index + "10"+"74657374", // remark + ) +} + +func TestExtrinsic_Sign(t *testing.T) { + call := types.Call{} + extrinsic := NewExtrinsic(call) + + var meta types.Metadata + + err := codec.DecodeFromHex(types.MetadataV14Data, &meta) + assert.NoError(t, err) + + err = extrinsic.Sign(signature.TestKeyringPairAlice, &meta, + WithEra(types.ExtrinsicEra{IsImmortalEra: true}, types.Hash{}), + WithNonce(types.NewUCompactFromUInt(uint64(0))), + WithTip(types.NewUCompactFromUInt(0)), + WithSpecVersion(123), + WithTransactionVersion(456), + WithGenesisHash(types.Hash{}), + WithMetadataMode(extensions.CheckMetadataModeDisabled, extensions.CheckMetadataHash{Hash: types.NewEmptyOption[types.H256]()}), + ) + assert.NoError(t, err) + assert.True(t, extrinsic.Version&BitSigned > 1) + assert.NotNil(t, extrinsic.Signature) +} + +func TestExtrinsic_Sign_InvalidVersionError(t *testing.T) { + extrinsic := &Extrinsic{} + + var meta types.Metadata + + err := codec.DecodeFromHex(types.MetadataV14Data, &meta) + assert.NoError(t, err) + + err = extrinsic.Sign(signature.TestKeyringPairAlice, &meta, + WithEra(types.ExtrinsicEra{IsImmortalEra: true}, types.Hash{}), + WithNonce(types.NewUCompactFromUInt(uint64(0))), + WithTip(types.NewUCompactFromUInt(0)), + WithSpecVersion(123), + WithTransactionVersion(456), + WithGenesisHash(types.Hash{}), + WithMetadataMode(extensions.CheckMetadataModeDisabled, extensions.CheckMetadataHash{Hash: types.NewEmptyOption[types.H256]()}), + ) + assert.ErrorIs(t, err, ErrInvalidVersion) +} + +func TestExtrinsic_Sign_PayloadCreationError(t *testing.T) { + call := types.Call{} + extrinsic := NewExtrinsic(call) + + var meta types.Metadata + + err := codec.DecodeFromHex(types.MetadataV14Data, &meta) + assert.NoError(t, err) + + meta.AsMetadataV14.Extrinsic.SignedExtensions = append( + meta.AsMetadataV14.Extrinsic.SignedExtensions, + types.SignedExtensionMetadataV14{ + Identifier: "unsupported_extension", + Type: types.Si1LookupTypeID{}, + AdditionalSigned: types.Si1LookupTypeID{}, + }, + ) + + err = extrinsic.Sign(signature.TestKeyringPairAlice, &meta, + WithEra(types.ExtrinsicEra{IsImmortalEra: true}, types.Hash{}), + WithNonce(types.NewUCompactFromUInt(uint64(0))), + WithTip(types.NewUCompactFromUInt(0)), + WithSpecVersion(123), + WithTransactionVersion(456), + WithGenesisHash(types.Hash{}), + WithMetadataMode(extensions.CheckMetadataModeDisabled, extensions.CheckMetadataHash{Hash: types.NewEmptyOption[types.H256]()}), + ) + assert.ErrorIs(t, err, ErrPayloadCreation) +} + +func TestExtrinsic_Sign_MultiAddressCreationError(t *testing.T) { + call := types.Call{} + extrinsic := NewExtrinsic(call) + + var meta types.Metadata + + err := codec.DecodeFromHex(types.MetadataV14Data, &meta) + assert.NoError(t, err) + + err = extrinsic.Sign(signature.KeyringPair{}, &meta, + WithEra(types.ExtrinsicEra{IsImmortalEra: true}, types.Hash{}), + WithNonce(types.NewUCompactFromUInt(uint64(0))), + WithTip(types.NewUCompactFromUInt(0)), + WithSpecVersion(123), + WithTransactionVersion(456), + WithGenesisHash(types.Hash{}), + WithMetadataMode(extensions.CheckMetadataModeDisabled, extensions.CheckMetadataHash{Hash: types.NewEmptyOption[types.H256]()}), + ) + assert.ErrorIs(t, err, ErrMultiAddressCreation) +} diff --git a/types/extrinsic/options.go b/types/extrinsic/options.go new file mode 100644 index 000000000..1a5d75a7a --- /dev/null +++ b/types/extrinsic/options.go @@ -0,0 +1,70 @@ +package extrinsic + +import ( + "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic/extensions" +) + +// SignedFieldValues is a map that holds a value for a particular SignedFieldName. +type SignedFieldValues map[SignedFieldName]any + +// SigningOption is the type used for providing values to a SignedFieldValues map. +type SigningOption func(vals SignedFieldValues) + +// WithEra returns a SigningOption that is used to add the era and block hash to a Payload. +func WithEra(era types.ExtrinsicEra, blockHash types.Hash) SigningOption { + return func(vals SignedFieldValues) { + vals[EraSignedField] = era + vals[BlockHashSignedField] = blockHash + } +} + +// WithNonce returns a SigningOption that is used to add the nonce to a Payload. +func WithNonce(nonce types.UCompact) SigningOption { + return func(vals SignedFieldValues) { + vals[NonceSignedField] = nonce + } +} + +// WithMetadataMode returns a SigningOption that is used to add the check metadata mode and hash to a Payload. +func WithMetadataMode(mode extensions.CheckMetadataMode, metadataHash extensions.CheckMetadataHash) SigningOption { + return func(vals SignedFieldValues) { + vals[CheckMetadataHashModeSignedField] = mode + vals[CheckMetadataHashSignedField] = metadataHash + } +} + +// WithTip returns a SigningOption that is used to add the tip to a Payload. +func WithTip(tip types.UCompact) SigningOption { + return func(vals SignedFieldValues) { + vals[TipSignedField] = tip + } +} + +// WithAssetID returns a SigningOption that is used to add the asset ID to a Payload. +func WithAssetID(assetID types.Option[types.AssetID]) SigningOption { + return func(vals SignedFieldValues) { + vals[AssetIDSignedField] = assetID + } +} + +// WithSpecVersion returns a SigningOption that is used to add the spec version to a Payload. +func WithSpecVersion(specVersion types.U32) SigningOption { + return func(vals SignedFieldValues) { + vals[SpecVersionSignedField] = specVersion + } +} + +// WithTransactionVersion returns a SigningOption that is used to add the transaction version to a Payload. +func WithTransactionVersion(transactionVersion types.U32) SigningOption { + return func(vals SignedFieldValues) { + vals[TransactionVersionSignedField] = transactionVersion + } +} + +// WithGenesisHash returns a SigningOption that is used to add the genesis hash to a Payload. +func WithGenesisHash(genesisHash types.Hash) SigningOption { + return func(vals SignedFieldValues) { + vals[GenesisHashSignedField] = genesisHash + } +} diff --git a/types/extrinsic/payload.go b/types/extrinsic/payload.go new file mode 100644 index 000000000..cc7c8f552 --- /dev/null +++ b/types/extrinsic/payload.go @@ -0,0 +1,258 @@ +package extrinsic + +import ( + libErr "github.com/centrifuge/go-substrate-rpc-client/v4/error" + + "github.com/centrifuge/go-substrate-rpc-client/v4/scale" + "github.com/centrifuge/go-substrate-rpc-client/v4/signature" + "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/extrinsic/extensions" +) + +const ( + ErrCallEncoding = libErr.Error("call encoding") + ErrSignedFieldNotMutated = libErr.Error("signed field not mutated") + ErrPayloadSignedFieldEncoding = libErr.Error("signed field encoding") + ErrSignedExtraFieldNotMutated = libErr.Error("signed extra field not mutated") + ErrSignedExtraFieldEncoding = libErr.Error("signed extra field encoding") + ErrPayloadNil = libErr.Error("payload is nil") + ErrPayloadEncoding = libErr.Error("payload encoding") + ErrSignedExtensionTypeNotDefined = libErr.Error("signed extension type not defined") + ErrSignedExtensionTypeNotSupported = libErr.Error("signed extension type not supported") +) + +// SignedField represents a field used in the Payload. +type SignedField struct { + // Name of the field, this is omitted when the extrinsic is signed. + Name SignedFieldName + + // Value of the field used when the extrinsic is signed. + Value any + + // Mutated is used to keep track of changes done to the field. + Mutated bool +} + +// Payload holds the encoded types.Call and the fields that are used for generating +// the Extrinsic payload and signature. +// +// Notes - the ordering of the SignedFields and SignedExtraFields is the order in which they are provided in +// the metadata. +type Payload struct { + EncodedCall types.BytesBare + SignedFields []*SignedField + SignedExtraFields []*SignedField +} + +// Encode the call bytes and the signed fields in the order that is provided during creation +// from the metadata. +// +// The function also performs an extra check to ensure that all required fields were mutated. +func (p *Payload) Encode(encoder scale.Encoder) error { + if err := encoder.Encode(p.EncodedCall); err != nil { + return ErrCallEncoding.Wrap(err) + } + + for _, signedField := range p.SignedFields { + if !signedField.Mutated { + return ErrSignedFieldNotMutated.WithMsg("signed field '%s'", signedField.Name) + } + + if err := encoder.Encode(signedField.Value); err != nil { + return ErrPayloadSignedFieldEncoding.Wrap(err) + } + } + + for _, signedExtraField := range p.SignedExtraFields { + if !signedExtraField.Mutated { + return ErrSignedExtraFieldNotMutated.WithMsg("signed extra field '%s'", signedExtraField.Name) + } + + if err := encoder.Encode(signedExtraField.Value); err != nil { + return ErrSignedExtraFieldEncoding.Wrap(err) + } + } + + return nil +} + +// MutateSignedFields is mutating the payload's SignedFields and SignedExtraFields +// based on the provided SignedFieldValues. +func (p *Payload) MutateSignedFields(vals SignedFieldValues) error { + if p == nil { + return ErrPayloadNil + } + + for _, signedField := range p.SignedFields { + signedFieldVal, ok := vals[signedField.Name] + + if !ok { + continue + } + + signedField.Value = signedFieldVal + signedField.Mutated = true + } + + for _, signedExtraField := range p.SignedExtraFields { + signedFieldVal, ok := vals[signedExtraField.Name] + + if !ok { + continue + } + + signedExtraField.Value = signedFieldVal + signedExtraField.Mutated = true + } + + return nil +} + +// Sign encodes the payload and then signs the encoded bytes using the provided signer. +func (p *Payload) Sign(signer signature.KeyringPair) (sig types.SignatureHash, err error) { + b, err := codec.Encode(p) + if err != nil { + return sig, ErrPayloadEncoding.Wrap(err) + } + + signatureBytes, err := signature.Sign(b, signer.URI) + if err != nil { + return sig, ErrPayloadSigning.Wrap(err) + } + + sig = types.NewSignature(signatureBytes) + + return sig, nil +} + +// SignedFieldName is the type used for representing a field name. +type SignedFieldName string + +const ( + EraSignedField SignedFieldName = "era" + BlockHashSignedField SignedFieldName = "block_hash" + NonceSignedField SignedFieldName = "nonce" + TipSignedField SignedFieldName = "tip" + AssetIDSignedField SignedFieldName = "asset_id" + CheckMetadataHashModeSignedField SignedFieldName = "check_metadata_hash_mode" + CheckMetadataHashSignedField SignedFieldName = "check_metadata_hash" + SpecVersionSignedField SignedFieldName = "spec_version" + TransactionVersionSignedField SignedFieldName = "transaction_version" + GenesisHashSignedField SignedFieldName = "genesis_hash" +) + +// PayloadMutatorFn is the type used for mutating the Payload during creation. +type PayloadMutatorFn func(payload *Payload) + +// PayloadMutatorFns is a map that holds a PayloadMutatorFn for each supported signed extension. +var PayloadMutatorFns = map[extensions.SignedExtensionName]PayloadMutatorFn{ + extensions.CheckMortalitySignedExtension: func(payload *Payload) { + payload.SignedFields = append(payload.SignedFields, &SignedField{ + Name: EraSignedField, + Value: &types.ExtrinsicEra{}, + }) + payload.SignedExtraFields = append(payload.SignedExtraFields, &SignedField{ + Name: BlockHashSignedField, + Value: &types.Hash{}, + }) + }, + extensions.CheckEraSignedExtension: func(payload *Payload) { + payload.SignedFields = append(payload.SignedFields, &SignedField{ + Name: EraSignedField, + Value: &types.ExtrinsicEra{}, + }) + payload.SignedExtraFields = append(payload.SignedExtraFields, &SignedField{ + Name: BlockHashSignedField, + Value: &types.Hash{}, + }) + }, + extensions.CheckNonceSignedExtension: func(payload *Payload) { + payload.SignedFields = append(payload.SignedFields, &SignedField{ + Name: NonceSignedField, + Value: types.U32(0), + }) + }, + extensions.ChargeTransactionPaymentSignedExtension: func(payload *Payload) { + payload.SignedFields = append(payload.SignedFields, &SignedField{ + Name: TipSignedField, + Value: types.NewUCompactFromUInt(0), + }) + }, + extensions.ChargeAssetTxPaymentSignedExtension: func(payload *Payload) { + payload.SignedFields = append(payload.SignedFields, &SignedField{ + Name: TipSignedField, + Value: types.NewUCompactFromUInt(0), + }) + payload.SignedFields = append(payload.SignedFields, &SignedField{ + Name: AssetIDSignedField, + Value: types.NewEmptyOption[types.AssetID](), + }) + }, + extensions.CheckMetadataHashSignedExtension: func(payload *Payload) { + payload.SignedFields = append(payload.SignedFields, &SignedField{ + Name: CheckMetadataHashModeSignedField, + Value: extensions.CheckMetadataModeDisabled, + }) + payload.SignedExtraFields = append(payload.SignedExtraFields, &SignedField{ + Name: CheckMetadataHashSignedField, + Value: &extensions.CheckMetadataHash{}, + }) + }, + extensions.CheckSpecVersionSignedExtension: func(payload *Payload) { + payload.SignedExtraFields = append(payload.SignedExtraFields, &SignedField{ + Name: SpecVersionSignedField, + Value: types.U32(0), + }) + }, + extensions.CheckTxVersionSignedExtension: func(payload *Payload) { + payload.SignedExtraFields = append(payload.SignedExtraFields, &SignedField{ + Name: TransactionVersionSignedField, + Value: types.U32(0), + }) + }, + extensions.CheckGenesisSignedExtension: func(payload *Payload) { + payload.SignedExtraFields = append(payload.SignedExtraFields, &SignedField{ + Name: GenesisHashSignedField, + Value: &types.Hash{}, + }) + }, + // There's nothing that we can add in the payload or signature in the following cases, however, these are added to + // ensure that the extension is acknowledged and that the mutator check is passing. + extensions.CheckNonZeroSenderSignedExtension: func(payload *Payload) {}, + extensions.CheckWeightSignedExtension: func(payload *Payload) {}, + extensions.PreBalanceTransferExtensionSignedExtension: func(payload *Payload) {}, + extensions.StorageWeightReclaimSignedExtension: func(payload *Payload) {}, + extensions.PrevalidateAttestsSignedExtension: func(payload *Payload) {}, + extensions.CheckNetworkMembershipSignedExtension: func(payload *Payload) {}, +} + +// createPayload iterates over all signed extensions provided in the metadata and +// attempts to load and use a PayloadMutatorFn for each one. +// +// If a PayloadMutatorFn is not found for a specific signed extension, it means that it is not currently supported. +func createPayload(meta *types.Metadata, encodedCall []byte) (*Payload, error) { + payload := &Payload{ + EncodedCall: encodedCall, + } + + for _, signedExtension := range meta.AsMetadataV14.Extrinsic.SignedExtensions { + signedExtensionType, ok := meta.AsMetadataV14.EfficientLookup[signedExtension.Type.Int64()] + + if !ok { + return nil, ErrSignedExtensionTypeNotDefined.WithMsg("lookup ID - '%d'", signedExtension.Type.Int64()) + } + + signedExtensionName := extensions.SignedExtensionName(signedExtensionType.Path[len(signedExtensionType.Path)-1]) + + payloadMutatorFn, ok := PayloadMutatorFns[signedExtensionName] + + if !ok { + return nil, ErrSignedExtensionTypeNotSupported.WithMsg("signed extension '%s'", signedExtensionName) + } + + payloadMutatorFn(payload) + } + + return payload, nil +} diff --git a/types/extrinsic/payload_test.go b/types/extrinsic/payload_test.go new file mode 100644 index 000000000..e18dc078f --- /dev/null +++ b/types/extrinsic/payload_test.go @@ -0,0 +1,207 @@ +package extrinsic + +import ( + "bytes" + "github.com/centrifuge/go-substrate-rpc-client/v4/scale" + "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" + "github.com/stretchr/testify/assert" + "testing" +) + +func TestPayload_Encode(t *testing.T) { + b := bytes.NewBuffer(nil) + + encoder := scale.NewEncoder(b) + + call := types.BytesBare([]byte{1, 2, 3}) + signedFieldValue := uint64(1) + signedExtraFieldValue := "test" + + encodedCall, err := codec.Encode(call) + assert.NoError(t, err) + encodedSignedFieldValue, err := codec.Encode(signedFieldValue) + assert.NoError(t, err) + encodedSignedExtraFieldValue, err := codec.Encode(signedExtraFieldValue) + assert.NoError(t, err) + + expectedResult := append(encodedCall, append(encodedSignedFieldValue, encodedSignedExtraFieldValue...)...) + + payload := Payload{ + EncodedCall: call, + SignedFields: []*SignedField{ + { + Name: "signed field 1", + Value: signedFieldValue, + Mutated: true, + }, + }, + SignedExtraFields: []*SignedField{ + { + Name: "signed extra field 1", + Value: signedExtraFieldValue, + Mutated: true, + }, + }, + } + + err = payload.Encode(*encoder) + assert.NoError(t, err) + + assert.Equal(t, expectedResult, b.Bytes()) +} + +func TestPayload_Encode_SignedFieldNotMutatedError(t *testing.T) { + b := bytes.NewBuffer(nil) + + encoder := scale.NewEncoder(b) + + call := types.BytesBare([]byte{1, 2, 3}) + signedFieldValue := uint64(1) + signedExtraFieldValue := "test" + + payload := Payload{ + EncodedCall: call, + SignedFields: []*SignedField{ + { + Name: "signed field 1", + Value: signedFieldValue, + Mutated: false, + }, + }, + SignedExtraFields: []*SignedField{ + { + Name: "signed extra field 1", + Value: signedExtraFieldValue, + Mutated: true, + }, + }, + } + + err := payload.Encode(*encoder) + assert.ErrorIs(t, err, ErrSignedFieldNotMutated) +} + +func TestPayload_Encode_SignedExtraFieldNotMutatedError(t *testing.T) { + b := bytes.NewBuffer(nil) + + encoder := scale.NewEncoder(b) + + call := types.BytesBare([]byte{1, 2, 3}) + signedFieldValue := uint64(1) + signedExtraFieldValue := "test" + + payload := Payload{ + EncodedCall: call, + SignedFields: []*SignedField{ + { + Name: "signed field 1", + Value: signedFieldValue, + Mutated: true, + }, + }, + SignedExtraFields: []*SignedField{ + { + Name: "signed extra field 1", + Value: signedExtraFieldValue, + Mutated: false, + }, + }, + } + + err := payload.Encode(*encoder) + assert.ErrorIs(t, err, ErrSignedExtraFieldNotMutated) +} + +func TestPayload_MutateSignedFields(t *testing.T) { + var payload *Payload + + err := payload.MutateSignedFields(nil) + assert.ErrorIs(t, err, ErrPayloadNil) + + signedFieldName := SignedFieldName("signed field 1") + signedFieldValue := uint64(1) + + signedExtraFieldName := SignedFieldName("signed extra field 1") + signedExtraFieldValue := "test" + + payload = &Payload{ + SignedFields: []*SignedField{ + { + Name: signedFieldName, + Value: signedFieldValue, + Mutated: true, + }, + }, + SignedExtraFields: []*SignedField{ + { + Name: signedExtraFieldName, + Value: signedExtraFieldValue, + Mutated: true, + }, + }, + } + assert.Equal(t, signedFieldValue, payload.SignedFields[0].Value) + assert.Equal(t, signedExtraFieldValue, payload.SignedExtraFields[0].Value) + + newSignedFieldValue := uint64(2) + newSignedExtraFieldValue := "testtest" + + vals := map[SignedFieldName]any{ + signedFieldName: newSignedFieldValue, + signedExtraFieldName: newSignedExtraFieldValue, + } + + err = payload.MutateSignedFields(vals) + assert.NoError(t, err) + + assert.Equal(t, newSignedFieldValue, payload.SignedFields[0].Value) + assert.Equal(t, newSignedExtraFieldValue, payload.SignedExtraFields[0].Value) +} + +func TestPayload_createPayload(t *testing.T) { + call := types.BytesBare([]byte{1, 2, 3}) + + var meta types.Metadata + + err := codec.DecodeFromHex(types.MetadataV14Data, &meta) + assert.NoError(t, err) + + payload, err := createPayload(&meta, call) + assert.NoError(t, err) + assert.NotNil(t, payload) +} + +func TestPayload_createPayload_SignedExtensionNotDefinedError(t *testing.T) { + call := types.BytesBare([]byte{1, 2, 3}) + + var meta types.Metadata + + err := codec.DecodeFromHex(types.MetadataV14Data, &meta) + assert.NoError(t, err) + + delete(meta.AsMetadataV14.EfficientLookup, meta.AsMetadataV14.Extrinsic.SignedExtensions[0].Type.Int64()) + + payload, err := createPayload(&meta, call) + assert.ErrorIs(t, err, ErrSignedExtensionTypeNotDefined) + assert.Nil(t, payload) +} + +func TestPayload_createPayload_SignedExtensionNotSupportedError(t *testing.T) { + call := types.BytesBare([]byte{1, 2, 3}) + + var meta types.Metadata + + err := codec.DecodeFromHex(types.MetadataV14Data, &meta) + assert.NoError(t, err) + + meta.AsMetadataV14.Extrinsic.SignedExtensions = append(meta.AsMetadataV14.Extrinsic.SignedExtensions, types.SignedExtensionMetadataV14{ + Identifier: "unsupported_extension", + Type: types.Si1LookupTypeID{}, + AdditionalSigned: types.Si1LookupTypeID{}, + }) + + payload, err := createPayload(&meta, call) + assert.ErrorIs(t, err, ErrSignedExtensionTypeNotSupported) + assert.Nil(t, payload) +} diff --git a/types/extrinsic/signature.go b/types/extrinsic/signature.go new file mode 100644 index 000000000..f7a9ce698 --- /dev/null +++ b/types/extrinsic/signature.go @@ -0,0 +1,40 @@ +package extrinsic + +import ( + libErr "github.com/centrifuge/go-substrate-rpc-client/v4/error" + "github.com/centrifuge/go-substrate-rpc-client/v4/scale" + "github.com/centrifuge/go-substrate-rpc-client/v4/types" +) + +const ( + ErrSignatureFieldEncoding = libErr.Error("signature field encoding failed") +) + +// Signature holds all the relevant fields for an extrinsic signature. +type Signature struct { + Signer types.MultiAddress + Signature types.MultiSignature + SignedFields []*SignedField +} + +// Encode is encoding the Signer, Signature, and SignedFields. +// +// Note - the ordering of the SignedFields is the order in which they are provided in +// the metadata. +func (s Signature) Encode(encoder scale.Encoder) error { + if err := encoder.Encode(s.Signer); err != nil { + return err + } + + if err := encoder.Encode(s.Signature); err != nil { + return err + } + + for _, signedField := range s.SignedFields { + if err := encoder.Encode(signedField.Value); err != nil { + return ErrSignatureFieldEncoding.Wrap(err) + } + } + + return nil +} diff --git a/types/extrinsic/signature_test.go b/types/extrinsic/signature_test.go new file mode 100644 index 000000000..e3d678030 --- /dev/null +++ b/types/extrinsic/signature_test.go @@ -0,0 +1,48 @@ +package extrinsic + +import ( + "bytes" + "github.com/centrifuge/go-substrate-rpc-client/v4/scale" + "github.com/centrifuge/go-substrate-rpc-client/v4/signature" + "github.com/centrifuge/go-substrate-rpc-client/v4/types" + "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" + "github.com/stretchr/testify/assert" + "testing" +) + +func TestSignature_Encode(t *testing.T) { + signer, err := types.NewMultiAddressFromAccountID(signature.TestKeyringPairAlice.PublicKey) + assert.NoError(t, err) + + multiSignature := types.MultiSignature{IsSr25519: true, AsSr25519: types.SignatureHash{}} + + signedField := &SignedField{ + Name: "signed_field", + Value: uint64(1), + Mutated: true, + } + + signature := Signature{ + Signer: signer, + Signature: multiSignature, + SignedFields: []*SignedField{signedField}, + } + + encodedSigner, err := codec.Encode(signer) + assert.NoError(t, err) + encodedMultiSignature, err := codec.Encode(multiSignature) + assert.NoError(t, err) + encodedSignedFieldValue, err := codec.Encode(signedField.Value) + assert.NoError(t, err) + + expectedResult := append(encodedSigner, append(encodedMultiSignature, encodedSignedFieldValue...)...) + + b := bytes.NewBuffer(nil) + + encoder := scale.NewEncoder(b) + + err = signature.Encode(*encoder) + assert.NoError(t, err) + + assert.Equal(t, expectedResult, b.Bytes()) +} diff --git a/types/extrinsic_examplary.go b/types/extrinsic_examplary.go deleted file mode 100644 index d39235cca..000000000 --- a/types/extrinsic_examplary.go +++ /dev/null @@ -1,21 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -import "math/big" - -var ExamplaryExtrinsic = Extrinsic{Version: 0x84, Signature: ExtrinsicSignatureV4{Signer: MultiAddress{IsID: true, AsID: AccountID{0xd4, 0x35, 0x93, 0xc7, 0x15, 0xfd, 0xd3, 0x1c, 0x61, 0x14, 0x1a, 0xbd, 0x4, 0xa9, 0x9f, 0xd6, 0x82, 0x2c, 0x85, 0x58, 0x85, 0x4c, 0xcd, 0xe3, 0x9a, 0x56, 0x84, 0xe7, 0xa5, 0x6d, 0xa2, 0x7d}}, Signature: MultiSignature{IsSr25519: true, AsSr25519: Signature{0x5c, 0x77, 0x1d, 0xd5, 0x6a, 0xe0, 0xce, 0xed, 0x68, 0xd, 0xb3, 0xbb, 0x4c, 0x40, 0x7a, 0x38, 0x96, 0x99, 0x97, 0xae, 0xb6, 0xa, 0x2c, 0x62, 0x39, 0x1, 0x6, 0x2f, 0x7f, 0x8e, 0xbf, 0x2f, 0xe7, 0x73, 0x3a, 0x61, 0x3c, 0xf1, 0x6b, 0x78, 0xf6, 0x10, 0xc6, 0x52, 0x32, 0xa2, 0x3c, 0xc5, 0xce, 0x25, 0xda, 0x29, 0xa3, 0xd5, 0x84, 0x85, 0xd8, 0x7b, 0xd8, 0x3d, 0xb8, 0x18, 0x3f, 0x8}}, Era: ExtrinsicEra{IsImmortalEra: true, IsMortalEra: false, AsMortalEra: MortalEra{First: 0x0, Second: 0x0}}, Nonce: UCompact(*big.NewInt(1)), Tip: UCompact(*big.NewInt(2))}, Method: Call{CallIndex: CallIndex{SectionIndex: 0x3, MethodIndex: 0x0}, Args: Args{0xff, 0x8e, 0xaf, 0x4, 0x15, 0x16, 0x87, 0x73, 0x63, 0x26, 0xc9, 0xfe, 0xa1, 0x7e, 0x25, 0xfc, 0x52, 0x87, 0x61, 0x36, 0x93, 0xc9, 0x12, 0x90, 0x9c, 0xb2, 0x26, 0xaa, 0x47, 0x94, 0xf2, 0x6a, 0x48, 0xe5, 0x6c}}} //nolint:lll diff --git a/types/extrinsic_payload.go b/types/extrinsic_payload.go deleted file mode 100644 index 2a9894f8e..000000000 --- a/types/extrinsic_payload.go +++ /dev/null @@ -1,162 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -import ( - "fmt" - - "github.com/centrifuge/go-substrate-rpc-client/v4/scale" - "github.com/centrifuge/go-substrate-rpc-client/v4/signature" - "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" -) - -// ExtrinsicPayloadV3 is a signing payload for an Extrinsic. For the final encoding, it is variable length based on -// the contents included. Note that `BytesBare` is absolutely critical – we don't want the method (Bytes) -// to have the length prefix included. This means that the data-as-signed is un-decodable, -// but is also doesn't need the extra information, only the pure data (and is not decoded) -// ... The same applies to V1 & V1, if we have a V4, carry move this comment to latest -type ExtrinsicPayloadV3 struct { - Method BytesBare - Era ExtrinsicEra // extra via system::CheckEra - Nonce UCompact // extra via system::CheckNonce (Compact where Index is u32) - Tip UCompact // extra via balances::TakeFees (Compact where Balance is u128) - SpecVersion U32 // additional via system::CheckVersion - GenesisHash Hash // additional via system::CheckGenesis - BlockHash Hash // additional via system::CheckEra -} - -// Sign the extrinsic payload with the given derivation path -func (e ExtrinsicPayloadV3) Sign(signer signature.KeyringPair) (Signature, error) { - b, err := codec.Encode(e) - if err != nil { - return Signature{}, err - } - - sig, err := signature.Sign(b, signer.URI) - return NewSignature(sig), err -} - -// Encode implements encoding for ExtrinsicPayloadV3, which just unwraps the bytes of ExtrinsicPayloadV3 without -// adding a compact length prefix -func (e ExtrinsicPayloadV3) Encode(encoder scale.Encoder) error { - err := encoder.Encode(e.Method) - if err != nil { - return err - } - - err = encoder.Encode(e.Era) - if err != nil { - return err - } - - err = encoder.Encode(e.Nonce) - if err != nil { - return err - } - - err = encoder.Encode(e.Tip) - if err != nil { - return err - } - - err = encoder.Encode(e.SpecVersion) - if err != nil { - return err - } - - err = encoder.Encode(e.GenesisHash) - if err != nil { - return err - } - - err = encoder.Encode(e.BlockHash) - if err != nil { - return err - } - - return nil -} - -// Decode does nothing and always returns an error. ExtrinsicPayloadV3 is only used for encoding, not for decoding -func (e *ExtrinsicPayloadV3) Decode(decoder scale.Decoder) error { - return fmt.Errorf("decoding of ExtrinsicPayloadV3 is not supported") -} - -type ExtrinsicPayloadV4 struct { - ExtrinsicPayloadV3 - TransactionVersion U32 -} - -// Sign the extrinsic payload with the given derivation path -func (e ExtrinsicPayloadV4) Sign(signer signature.KeyringPair) (Signature, error) { - b, err := codec.Encode(e) - if err != nil { - return Signature{}, err - } - - sig, err := signature.Sign(b, signer.URI) - return NewSignature(sig), err -} - -func (e ExtrinsicPayloadV4) Encode(encoder scale.Encoder) error { - err := encoder.Encode(e.Method) - if err != nil { - return err - } - - err = encoder.Encode(e.Era) - if err != nil { - return err - } - - err = encoder.Encode(e.Nonce) - if err != nil { - return err - } - - err = encoder.Encode(e.Tip) - if err != nil { - return err - } - - err = encoder.Encode(e.SpecVersion) - if err != nil { - return err - } - - err = encoder.Encode(e.TransactionVersion) - if err != nil { - return err - } - - err = encoder.Encode(e.GenesisHash) - if err != nil { - return err - } - - err = encoder.Encode(e.BlockHash) - if err != nil { - return err - } - - return nil -} - -// Decode does nothing and always returns an error. ExtrinsicPayloadV4 is only used for encoding, not for decoding -func (e *ExtrinsicPayloadV4) Decode(decoder scale.Decoder) error { - return fmt.Errorf("decoding of ExtrinsicPayloadV4 is not supported") -} diff --git a/types/extrinsic_payload_test.go b/types/extrinsic_payload_test.go deleted file mode 100644 index 768e393c8..000000000 --- a/types/extrinsic_payload_test.go +++ /dev/null @@ -1,111 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types_test - -import ( - "bytes" - "testing" - - "github.com/centrifuge/go-substrate-rpc-client/v4/scale" - "github.com/centrifuge/go-substrate-rpc-client/v4/signature" - . "github.com/centrifuge/go-substrate-rpc-client/v4/types" - . "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" - fuzz "github.com/google/gofuzz" - "github.com/stretchr/testify/assert" -) - -var ( - extrinsicPayloadV3FuzzOpts = extrinsicEraFuzzOpts -) - -func TestExtrinsicPayloadV3_EncodeDecode(t *testing.T) { - f := fuzz.New().NilChance(0) - - for _, opt := range extrinsicPayloadV3FuzzOpts { - opt(f) - } - - var ext ExtrinsicPayloadV3 - f.Fuzz(&ext) - - var b []byte - - buf := bytes.NewBuffer(b) - - err := ext.Encode(*scale.NewEncoder(buf)) - assert.NoError(t, err) - assert.True(t, len(buf.Bytes()) > 0) - - err = ext.Decode(*scale.NewDecoder(bytes.NewReader(nil))) - assert.NotNil(t, err) -} - -var examplaryExtrinsicPayload = ExtrinsicPayloadV4{ExtrinsicPayloadV3: ExtrinsicPayloadV3{Method: BytesBare{0x6, 0x0, 0xff, 0xd7, 0x56, 0x8e, 0x5f, 0xa, 0x7e, 0xda, 0x67, 0xa8, 0x26, 0x91, 0xff, 0x37, 0x9a, 0xc4, 0xbb, 0xa4, 0xf9, 0xc9, 0xb8, 0x59, 0xfe, 0x77, 0x9b, 0x5d, 0x46, 0x36, 0x3b, 0x61, 0xad, 0x2d, 0xb9, 0xe5, 0x6c}, Era: ExtrinsicEra{IsImmortalEra: false, IsMortalEra: true, AsMortalEra: MortalEra{First: 0x7, Second: 0x3}}, Nonce: NewUCompactFromUInt(0x1234), Tip: NewUCompactFromUInt(0x5678), SpecVersion: 0x7b, GenesisHash: Hash{0xdc, 0xd1, 0x34, 0x67, 0x1, 0xca, 0x83, 0x96, 0x49, 0x6e, 0x52, 0xaa, 0x27, 0x85, 0xb1, 0x74, 0x8d, 0xeb, 0x6d, 0xb0, 0x95, 0x51, 0xb7, 0x21, 0x59, 0xdc, 0xb3, 0xe0, 0x89, 0x91, 0x2, 0x5b}, BlockHash: Hash{0xde, 0x8f, 0x69, 0xee, 0xb5, 0xe0, 0x65, 0xe1, 0x8c, 0x69, 0x50, 0xff, 0x70, 0x8d, 0x7e, 0x55, 0x1f, 0x68, 0xdc, 0x9b, 0xf5, 0x9a, 0x7, 0xc5, 0x23, 0x67, 0xc0, 0x28, 0xf, 0x80, 0x5e, 0xc7}}, TransactionVersion: 1} //nolint:lll - -func TestExtrinsicPayload(t *testing.T) { - var era ExtrinsicEra - err := DecodeFromHex("0x0703", &era) - assert.NoError(t, err) - - p := ExtrinsicPayloadV4{ - ExtrinsicPayloadV3: ExtrinsicPayloadV3{ - Method: MustHexDecodeString( - "0x0600ffd7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9e56c"), - Era: era, - Nonce: NewUCompactFromUInt(4660), - Tip: NewUCompactFromUInt(22136), - SpecVersion: 123, - GenesisHash: NewHash(MustHexDecodeString("0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b")), - BlockHash: NewHash(MustHexDecodeString("0xde8f69eeb5e065e18c6950ff708d7e551f68dc9bf59a07c52367c0280f805ec7")), - }, - TransactionVersion: 1, - } - - assert.Equal(t, examplaryExtrinsicPayload, p) - - enc, err := EncodeToHex(examplaryExtrinsicPayload) - assert.NoError(t, err) - - assert.Equal(t, "0x"+ - "0600ffd7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9e56c"+ // Method - "0703"+ // Era - "d148"+ // Nonce - "e2590100"+ // Tip - "7b000000"+ // Spec version - "01000000"+ // Tx version - "dcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b"+ // Genesis Hash - "de8f69eeb5e065e18c6950ff708d7e551f68dc9bf59a07c52367c0280f805ec7", // BlockHash - enc) - - // b := bytes.NewBuffer(MustHexDecodeString()) - - var dec ExtrinsicPayloadV4 - err = DecodeFromHex(enc, &dec) - assert.Error(t, err) -} - -func TestExtrinsicPayload_Sign(t *testing.T) { - sig, err := examplaryExtrinsicPayload.Sign(signature.TestKeyringPairAlice) - assert.NoError(t, err) - - // verify sig - b, err := Encode(examplaryExtrinsicPayload) - assert.NoError(t, err) - ok, err := signature.Verify(b, sig[:], signature.TestKeyringPairAlice.URI) - assert.NoError(t, err) - assert.True(t, ok) -} diff --git a/types/extrinsic_signature.go b/types/extrinsic_signature.go deleted file mode 100644 index 3f8cc5c3a..000000000 --- a/types/extrinsic_signature.go +++ /dev/null @@ -1,43 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -type ExtrinsicSignatureV3 struct { - Signer Address - Signature Signature - Era ExtrinsicEra // extra via system::CheckEra - Nonce UCompact // extra via system::CheckNonce (Compact where Index is u32)) - Tip UCompact // extra via balances::TakeFees (Compact where Balance is u128)) -} - -type ExtrinsicSignatureV4 struct { - Signer MultiAddress - Signature MultiSignature - Era ExtrinsicEra // extra via system::CheckEra - Nonce UCompact // extra via system::CheckNonce (Compact where Index is u32)) - Tip UCompact // extra via balances::TakeFees (Compact where Balance is u128)) -} - -type SignatureOptions struct { - Era ExtrinsicEra // extra via system::CheckEra - Nonce UCompact // extra via system::CheckNonce (Compact where Index is u32) - Tip UCompact // extra via balances::TakeFees (Compact where Balance is u128) - SpecVersion U32 // additional via system::CheckSpecVersion - GenesisHash Hash // additional via system::CheckGenesis - BlockHash Hash // additional via system::CheckEra - TransactionVersion U32 // additional via system::CheckTxVersion -} diff --git a/types/extrinsic_signature_test.go b/types/extrinsic_signature_test.go deleted file mode 100644 index 8e6164f88..000000000 --- a/types/extrinsic_signature_test.go +++ /dev/null @@ -1,101 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types_test - -import ( - "bytes" - "testing" - - "github.com/centrifuge/go-substrate-rpc-client/v4/scale" - . "github.com/centrifuge/go-substrate-rpc-client/v4/types" - . "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" - . "github.com/centrifuge/go-substrate-rpc-client/v4/types/test_utils" - "github.com/stretchr/testify/assert" -) - -var ( - extrinsicSignatureV3FuzzOpts = CombineFuzzOpts( - addressFuzzOpts, - extrinsicEraFuzzOpts, - ) -) - -func TestExtrinsicSignatureV3_EncodeDecode(t *testing.T) { - sig := ExtrinsicSignatureV3{Signer: Address{IsAccountID: true, AsAccountID: AccountID{0xd4, 0x35, 0x93, 0xc7, 0x15, 0xfd, 0xd3, 0x1c, 0x61, 0x14, 0x1a, 0xbd, 0x4, 0xa9, 0x9f, 0xd6, 0x82, 0x2c, 0x85, 0x58, 0x85, 0x4c, 0xcd, 0xe3, 0x9a, 0x56, 0x84, 0xe7, 0xa5, 0x6d, 0xa2, 0x7d}, IsAccountIndex: false, AsAccountIndex: 0x0}, Signature: Signature{0x5c, 0x77, 0x1d, 0xd5, 0x6a, 0xe0, 0xce, 0xed, 0x68, 0xd, 0xb3, 0xbb, 0x4c, 0x40, 0x7a, 0x38, 0x96, 0x99, 0x97, 0xae, 0xb6, 0xa, 0x2c, 0x62, 0x39, 0x1, 0x6, 0x2f, 0x7f, 0x8e, 0xbf, 0x2f, 0xe7, 0x73, 0x3a, 0x61, 0x3c, 0xf1, 0x6b, 0x78, 0xf6, 0x10, 0xc6, 0x52, 0x32, 0xa2, 0x3c, 0xc5, 0xce, 0x25, 0xda, 0x29, 0xa3, 0xd5, 0x84, 0x85, 0xd8, 0x7b, 0xd8, 0x3d, 0xb8, 0x18, 0x3f, 0x8}, Era: ExtrinsicEra{IsImmortalEra: true, IsMortalEra: false, AsMortalEra: MortalEra{First: 0x0, Second: 0x0}}, Nonce: NewUCompactFromUInt(1), Tip: NewUCompactFromUInt(2)} //nolint:lll - - sigEnc, err := EncodeToHex(sig) - assert.NoError(t, err) - - var sigDec ExtrinsicSignatureV3 - err = DecodeFromHex(sigEnc, &sigDec) - assert.NoError(t, err) - - assert.Equal(t, sig, sigDec) - - AssertRoundTripFuzz[ExtrinsicSignatureV3](t, 1000, extrinsicSignatureV3FuzzOpts...) - AssertDecodeNilData[ExtrinsicSignatureV3](t) - AssertEncodeEmptyObj[ExtrinsicSignatureV3](t, 69) -} - -var ( - extrinsicSignatureV4FuzzOpts = CombineFuzzOpts( - multiAddressFuzzOpts, - multiSignatureFuzzOpts, - extrinsicEraFuzzOpts, - ) -) - -func TestExtrinsicSignatureV4_EncodeDecode(t *testing.T) { - sig := ExtrinsicSignatureV4{Signer: MultiAddress{IsID: true, AsID: AccountID{0xd4, 0x35, 0x93, 0xc7, 0x15, - 0xfd, 0xd3, 0x1c, 0x61, 0x14, 0x1a, 0xbd, 0x4, 0xa9, 0x9f, 0xd6, 0x82, 0x2c, 0x85, 0x58, 0x85, 0x4c, 0xcd, 0xe3, 0x9a, 0x56, 0x84, 0xe7, 0xa5, 0x6d, 0xa2, 0x7d}}, Signature: MultiSignature{IsEd25519: true, AsEd25519: Signature{0x5c, 0x77, 0x1d, 0xd5, 0x6a, 0xe0, 0xce, 0xed, 0x68, 0xd, 0xb3, 0xbb, 0x4c, 0x40, 0x7a, 0x38, 0x96, 0x99, 0x97, 0xae, 0xb6, 0xa, 0x2c, 0x62, 0x39, 0x1, 0x6, 0x2f, 0x7f, 0x8e, 0xbf, 0x2f, 0xe7, 0x73, 0x3a, 0x61, 0x3c, 0xf1, 0x6b, 0x78, 0xf6, 0x10, 0xc6, 0x52, 0x32, 0xa2, 0x3c, 0xc5, 0xce, 0x25, 0xda, 0x29, 0xa3, 0xd5, 0x84, 0x85, 0xd8, 0x7b, 0xd8, 0x3d, 0xb8, 0x18, 0x3f, 0x8}}, Era: ExtrinsicEra{IsImmortalEra: true, IsMortalEra: false, AsMortalEra: MortalEra{First: 0x0, Second: 0x0}}, Nonce: NewUCompactFromUInt(1), Tip: NewUCompactFromUInt(2)} //nolint:lll - - sigEnc, err := EncodeToHex(sig) - assert.NoError(t, err) - - var sigDec ExtrinsicSignatureV4 - err = DecodeFromHex(sigEnc, &sigDec) - assert.NoError(t, err) - - assert.Equal(t, sig, sigDec) - - AssertRoundTripFuzz[ExtrinsicSignatureV4](t, 1000, extrinsicSignatureV4FuzzOpts...) - AssertDecodeNilData[ExtrinsicSignatureV4](t) - - var ( - ext ExtrinsicSignatureV4 - b []byte - ) - - err = scale.NewEncoder(bytes.NewBuffer(b)).Encode(ext) - assert.NoError(t, err) -} - -func TestExtrinsicSignatureV4_EncodeDecodeWithOpts(t *testing.T) { - SetSerDeOptions(SerDeOptions{NoPalletIndices: true}) - defer SetSerDeOptions(SerDeOptions{NoPalletIndices: false}) - sig := ExtrinsicSignatureV4{Signer: MultiAddress{IsID: true, AsID: AccountID{0xd4, 0x35, 0x93, 0xc7, 0x15, - 0xfd, 0xd3, 0x1c, 0x61, 0x14, 0x1a, 0xbd, 0x4, 0xa9, 0x9f, 0xd6, 0x82, 0x2c, 0x85, 0x58, 0x85, 0x4c, 0xcd, 0xe3, 0x9a, 0x56, 0x84, 0xe7, 0xa5, 0x6d, 0xa2, 0x7d}}, Signature: MultiSignature{IsEd25519: true, AsEd25519: Signature{0x5c, 0x77, 0x1d, 0xd5, 0x6a, 0xe0, 0xce, 0xed, 0x68, 0xd, 0xb3, 0xbb, 0x4c, 0x40, 0x7a, 0x38, 0x96, 0x99, 0x97, 0xae, 0xb6, 0xa, 0x2c, 0x62, 0x39, 0x1, 0x6, 0x2f, 0x7f, 0x8e, 0xbf, 0x2f, 0xe7, 0x73, 0x3a, 0x61, 0x3c, 0xf1, 0x6b, 0x78, 0xf6, 0x10, 0xc6, 0x52, 0x32, 0xa2, 0x3c, 0xc5, 0xce, 0x25, 0xda, 0x29, 0xa3, 0xd5, 0x84, 0x85, 0xd8, 0x7b, 0xd8, 0x3d, 0xb8, 0x18, 0x3f, 0x8}}, Era: ExtrinsicEra{IsImmortalEra: true, IsMortalEra: false, AsMortalEra: MortalEra{First: 0x0, Second: 0x0}}, Nonce: NewUCompactFromUInt(1), Tip: NewUCompactFromUInt(2)} //nolint:lll - - sigEnc, err := EncodeToHex(sig) - assert.NoError(t, err) - - var sigDec ExtrinsicSignatureV4 - err = DecodeFromHex(sigEnc, &sigDec) - assert.NoError(t, err) - - assert.Equal(t, sig, sigDec) -} diff --git a/types/extrinsic_test.go b/types/extrinsic_test.go deleted file mode 100644 index 58e61ac14..000000000 --- a/types/extrinsic_test.go +++ /dev/null @@ -1,243 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types_test - -import ( - "fmt" - "testing" - - "github.com/centrifuge/go-substrate-rpc-client/v4/signature" - . "github.com/centrifuge/go-substrate-rpc-client/v4/types" - . "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" - . "github.com/centrifuge/go-substrate-rpc-client/v4/types/test_utils" - "github.com/stretchr/testify/assert" -) - -func TestExtrinsic_Unsigned_EncodeDecode(t *testing.T) { - addr, err := NewAddressFromHexAccountID("0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48") - assert.NoError(t, err) - - c, err := NewCall(ExamplaryMetadataV4, "balances.transfer", addr, NewUCompactFromUInt(6969)) - assert.NoError(t, err) - - ext := NewExtrinsic(c) - - extEnc, err := EncodeToHex(ext) - assert.NoError(t, err) - - assert.Equal(t, "0x"+ - "98"+ // length prefix, compact - "04"+ // version - "0300"+ // call index (section index and method index) - "ff"+ - "8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48"+ // target address - "e56c", // amount, compact - extEnc) - - var extDec Extrinsic - err = DecodeFromHex(extEnc, &extDec) - assert.NoError(t, err) - - assert.Equal(t, ext, extDec) -} - -func TestExtrinsic_Signed_EncodeDecode(t *testing.T) { - extEnc, err := EncodeToHex(ExamplaryExtrinsic) - assert.NoError(t, err) - - var extDec Extrinsic - err = DecodeFromHex(extEnc, &extDec) - assert.NoError(t, err) - - assert.Equal(t, ExamplaryExtrinsic, extDec) -} - -func TestExtrinsic_Sign(t *testing.T) { - c, err := NewCall( - ExamplaryMetadataV4, - "balances.transfer", - newTestAddress(), - NewUCompactFromUInt(6969), - ) - assert.NoError(t, err) - - ext := NewExtrinsic(c) - - o := SignatureOptions{ - BlockHash: NewHash(MustHexDecodeString("0xec7afaf1cca720ce88c1d1b689d81f0583cc15a97d621cf046dd9abf605ef22f")), - // Era: ExtrinsicEra{IsImmortalEra: true}, - GenesisHash: NewHash(MustHexDecodeString("0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b")), - Nonce: NewUCompactFromUInt(1), - SpecVersion: 123, - Tip: NewUCompactFromUInt(2), - TransactionVersion: 1, - } - - assert.False(t, ext.IsSigned()) - - err = ext.Sign(signature.TestKeyringPairAlice, o) - assert.NoError(t, err) - - // fmt.Printf("%#v", ext) - - assert.True(t, ext.IsSigned()) - - extEnc, err := EncodeToHex(ext) - assert.NoError(t, err) - - // extEnc will have the structure of the following. It can't be tested, since the signature is different on every - // call to sign. Instead we verify here. - // "0x"+ - // "2902"+ // length prefix, compact - // "83"+ // version - // "ff"+ - // "d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"+ // signer address - // "6667a2afe5272b327c3886036d2906ceac90fe959377a2d47fa92b6ebe345318379fff37e48a4e8fd552221796dd6329d028f80237"+ - // "ebc0abb229ca2235778308"+ // signature - // "000408"+ // era, nonce, tip - // "0300" + // call index (section index and method index) - // "ff"+ - // "8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48"+ // target address - // "e56c", // amount, compact - - var extDec Extrinsic - err = DecodeFromHex(extEnc, &extDec) - assert.NoError(t, err) - - assert.Equal(t, uint8(ExtrinsicVersion4), extDec.Type()) - assert.Equal(t, signature.TestKeyringPairAlice.PublicKey, extDec.Signature.Signer.AsID[:]) - - mb, err := Encode(extDec.Method) - assert.NoError(t, err) - - verifyPayload := ExtrinsicPayloadV4{ - ExtrinsicPayloadV3: ExtrinsicPayloadV3{ - Method: mb, - Era: extDec.Signature.Era, - Nonce: extDec.Signature.Nonce, - Tip: extDec.Signature.Tip, - SpecVersion: o.SpecVersion, - GenesisHash: o.GenesisHash, - BlockHash: o.BlockHash, - }, - TransactionVersion: 1, - } - - // verify sig - b, err := Encode(verifyPayload) - assert.NoError(t, err) - ok, err := signature.Verify(b, extDec.Signature.Signature.AsSr25519[:], signature.TestKeyringPairAlice.URI) - assert.NoError(t, err) - assert.True(t, ok) -} - -func ExampleExtrinsic() { - bob, err := NewAddressFromHexAccountID("0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48") - if err != nil { - panic(err) - } - - c, err := NewCall(ExamplaryMetadataV4, "balances.transfer", bob, NewUCompactFromUInt(6969)) - if err != nil { - panic(err) - } - - ext := NewExtrinsic(c) - - ext.Method.CallIndex.SectionIndex = 5 - ext.Method.CallIndex.MethodIndex = 0 - - era := ExtrinsicEra{IsMortalEra: true, AsMortalEra: MortalEra{0x95, 0x00}} - - o := SignatureOptions{ - BlockHash: NewHash(MustHexDecodeString("0x223e3eb79416e6258d262b3a76e827aa0886b884a96bf96395cdd1c52d0eeb45")), - Era: era, - GenesisHash: NewHash(MustHexDecodeString("0x81ad0bfe2a0bccd91d2e89852d79b7ff696d4714758e5f7c6f17ec7527e1f550")), - Nonce: NewUCompactFromUInt(1), - SpecVersion: 170, - Tip: NewUCompactFromUInt(0), - } - - err = ext.Sign(signature.TestKeyringPairAlice, o) - if err != nil { - panic(err) - } - - fmt.Printf("%#v", ext) - - extEnc, err := EncodeToHex(ext) - if err != nil { - panic(err) - } - - fmt.Printf("%#v", extEnc) -} - -func TestExtrinsic_JSONMarshalUnmarshal(t *testing.T) { - c, err := NewCall( - ExamplaryMetadataV4, - "balances.transfer", - newTestAddress(), - NewUCompactFromUInt(6969), - ) - assert.NoError(t, err) - - ext := NewExtrinsic(c) - - AssertJSONRoundTrip(t, &ext) -} - -func TestCall(t *testing.T) { - c := Call{CallIndex{6, 1}, Args{0, 0, 0}} - - enc, err := EncodeToHex(c) - assert.NoError(t, err) - assert.Equal(t, "0x0601000000", enc) -} - -func TestNewCallV4(t *testing.T) { - addr, err := NewAddressFromHexAccountID("0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48") - assert.NoError(t, err) - - c, err := NewCall(ExamplaryMetadataV4, "balances.transfer", addr, NewUCompactFromUInt(1000)) - assert.NoError(t, err) - - enc, err := EncodeToHex(c) - assert.NoError(t, err) - - assert.Equal(t, "0x0300ff8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48a10f", enc) -} - -func TestNewCallV7(t *testing.T) { - c, err := NewCall(&exampleMetadataV7, "Module2.my function", U8(3)) - assert.NoError(t, err) - - enc, err := EncodeToHex(c) - assert.NoError(t, err) - - assert.Equal(t, "0x010003", enc) -} - -func TestNewCallV8(t *testing.T) { - c, err := NewCall(&exampleMetadataV8, "Module2.my function", U8(3)) - assert.NoError(t, err) - - enc, err := EncodeToHex(c) - assert.NoError(t, err) - - assert.Equal(t, "0x010003", enc) -} diff --git a/types/metadataV10_examplary.go b/types/metadataV10_examplary.go deleted file mode 100644 index a23b1ffa9..000000000 --- a/types/metadataV10_examplary.go +++ /dev/null @@ -1,29 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -// ExamplaryMetadataV10 is example metadata v10 -var ExamplaryMetadataV10 = &Metadata{MagicNumber: 0x6174656d, Version: 0xa, AsMetadataV4: MetadataV4{Modules: []ModuleMetadataV4(nil)}, AsMetadataV7: MetadataV7{Modules: []ModuleMetadataV7(nil)}, AsMetadataV8: MetadataV8{Modules: []ModuleMetadataV8(nil)}, AsMetadataV9: MetadataV9{Modules: []ModuleMetadataV8(nil)}, AsMetadataV10: MetadataV10{Modules: []ModuleMetadataV10{ModuleMetadataV10{Name: "System", HasStorage: true, Storage: StorageMetadataV10{Prefix: "System", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "AccountNonce", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Index", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Extrinsics nonce for accounts."}}, StorageFunctionMetadataV10{Name: "ExtrinsicCount", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total extrinsics count for the current block."}}, StorageFunctionMetadataV10{Name: "AllExtrinsicsWeight", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Weight", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total weight for all extrinsics put together, for the current block."}}, StorageFunctionMetadataV10{Name: "AllExtrinsicsLen", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total length (in bytes) for all extrinsics put together, for the current block."}}, StorageFunctionMetadataV10{Name: "BlockHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::BlockNumber", Value: "T::Hash", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Map of block numbers to block hashes."}}, StorageFunctionMetadataV10{Name: "ExtrinsicData", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "u32", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Extrinsics data for the current block (maps an extrinsic's index to its data)."}}, StorageFunctionMetadataV10{Name: "Number", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current block number being processed. Set by `execute_block`."}}, StorageFunctionMetadataV10{Name: "ParentHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Hash of the previous block."}}, StorageFunctionMetadataV10{Name: "ExtrinsicsRoot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Extrinsics root of the current block, also part of the block header."}}, StorageFunctionMetadataV10{Name: "Digest", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "DigestOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Digest of the current block, also part of the block header."}}, StorageFunctionMetadataV10{Name: "Events", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Events deposited for the current block."}}, StorageFunctionMetadataV10{Name: "EventCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "EventIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of events in the `Events` list."}}, StorageFunctionMetadataV10{Name: "EventTopics", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "()", Key2: "T::Hash", Value: "Vec<(T::BlockNumber, EventIndex)>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Mapping between a topic (represented by T::Hash) and a vector of indexes", " of events in the `>` list.", "", " The first key serves no purpose. This field is declared as double_map just", " for convenience of using `remove_prefix`.", "", " All topic vectors have deterministic storage locations depending on the topic. This", " allows light-clients to leverage the changes trie storage tracking mechanism and", " in case of changes fetch the list of events of interest.", "", " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", " the `EventIndex` then in case if the topic has the same contents on the next block", " no notification will be triggered thus the event might be lost."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "fill_block", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" A big dispatch that will disallow any other transaction to be included."}}, FunctionMetadataV4{Name: "remark", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "_remark", Type: "Vec"}}, Documentation: []Text{" Make some on-chain remark."}}, FunctionMetadataV4{Name: "set_heap_pages", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "pages", Type: "u64"}}, Documentation: []Text{" Set the number of pages in the WebAssembly environment's heap."}}, FunctionMetadataV4{Name: "set_code", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "Vec"}}, Documentation: []Text{" Set the new code."}}, FunctionMetadataV4{Name: "set_storage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "items", Type: "Vec"}}, Documentation: []Text{" Set some items of storage."}}, FunctionMetadataV4{Name: "kill_storage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "keys", Type: "Vec"}}, Documentation: []Text{" Kill some items from storage."}}, FunctionMetadataV4{Name: "kill_prefix", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "prefix", Type: "Key"}}, Documentation: []Text{" Kill all storage items with a key that starts with the given prefix."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "ExtrinsicSuccess", Args: []Type{"DispatchInfo"}, Documentation: []Text{" An extrinsic completed successfully."}}, EventMetadataV4{Name: "ExtrinsicFailed", Args: []Type{"DispatchError", "DispatchInfo"}, Documentation: []Text{" An extrinsic failed."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Utility", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Utility", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Multisigs", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true}, Key1: "T::AccountId", Key2: "[u8; 32]", Value: "Multisig, T::AccountId>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of open multisig operations."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "batch", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "calls", Type: "Vec<::Call>"}}, Documentation: []Text{" Send a batch of dispatch calls.", "", " This will execute until the first one fails and then stop.", "", " May be called from any origin.", "", " - `calls`: The calls to be dispatched from the same origin.", "", " # ", " - The sum of the weights of the `calls`.", " - One event.", " # ", "", " This will return `Ok` in all circumstances. To determine the success of the batch, an", " event is deposited. If a call failed and the batch was interrupted, then the", " `BatchInterrupted` event is deposited, along with the number of successful calls made", " and the error of the failed call. If all were successful, then the `BatchCompleted`", " event is deposited."}}, FunctionMetadataV4{Name: "as_sub", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "u16"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Send a call through an indexed pseudonym of the sender.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - The weight of the `call`.", " # "}}, FunctionMetadataV4{Name: "as_multi", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "maybe_timepoint", Type: "Option>"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Register approval for a dispatch to be made from a deterministic composite account if", " approved by a total of `threshold - 1` of `other_signatories`.", "", " If there are enough, then dispatch the call.", "", " Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus", " `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or", " is cancelled.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", " not the first approval, then it must be `Some`, with the timepoint (block number and", " transaction index) of the first approval transaction.", " - `call`: The call to be executed.", "", " NOTE: Unless this is the final approval, you will generally want to use", " `approve_as_multi` instead, since it only requires a hash of the call.", "", " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", " on success, result is `Ok` and the result from the interior call, if it was executed,", " may be found in the deposited `MultisigExecuted` event.", "", " # ", " - `O(S + Z + Call)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", " - One encode & hash, both of complexity `O(S)`.", " - Up to one binary search and insert (`O(logS + S)`).", " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", " - One event.", " - The weight of the `call`.", " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", " deposit taken for its lifetime of", " `MultisigDepositBase + threshold * MultisigDepositFactor`.", " # "}}, FunctionMetadataV4{Name: "approve_as_multi", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "maybe_timepoint", Type: "Option>"}, FunctionArgumentMetadata{Name: "call_hash", Type: "[u8; 32]"}}, Documentation: []Text{" Register approval for a dispatch to be made from a deterministic composite account if", " approved by a total of `threshold - 1` of `other_signatories`.", "", " Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus", " `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or", " is cancelled.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", " not the first approval, then it must be `Some`, with the timepoint (block number and", " transaction index) of the first approval transaction.", " - `call_hash`: The hash of the call to be executed.", "", " NOTE: If this is the final approval, you will want to use `as_multi` instead.", "", " # ", " - `O(S)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One encode & hash, both of complexity `O(S)`.", " - Up to one binary search and insert (`O(logS + S)`).", " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", " - One event.", " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", " deposit taken for its lifetime of", " `MultisigDepositBase + threshold * MultisigDepositFactor`.", " # "}}, FunctionMetadataV4{Name: "cancel_as_multi", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "timepoint", Type: "Timepoint"}, FunctionArgumentMetadata{Name: "call_hash", Type: "[u8; 32]"}}, Documentation: []Text{" Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", " for this operation will be unreserved on success.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `timepoint`: The timepoint (block number and transaction index) of the first approval", " transaction for this dispatch.", " - `call_hash`: The hash of the call to be executed.", "", " # ", " - `O(S)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One encode & hash, both of complexity `O(S)`.", " - One event.", " - I/O: 1 read `O(S)`, one remove.", " - Storage: removes one item.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "BatchInterrupted", Args: []Type{"u32", "DispatchError"}, Documentation: []Text{" Batch of dispatches did not complete fully. Index of first failing dispatch given, as", " well as the error."}}, EventMetadataV4{Name: "BatchCompleted", Args: []Type(nil), Documentation: []Text{" Batch of dispatches completed fully with no error."}}, EventMetadataV4{Name: "NewMultisig", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" A new multisig operation has begun. First param is the account that is approving,", " second is the multisig account."}}, EventMetadataV4{Name: "MultisigApproval", Args: []Type{"AccountId", "Timepoint", "AccountId"}, Documentation: []Text{" A multisig operation has been approved by someone. First param is the account that is", " approving, third is the multisig account."}}, EventMetadataV4{Name: "MultisigExecuted", Args: []Type{"AccountId", "Timepoint", "AccountId", "DispatchResult"}, Documentation: []Text{" A multisig operation has been executed. First param is the account that is", " approving, third is the multisig account."}}, EventMetadataV4{Name: "MultisigCancelled", Args: []Type{"AccountId", "Timepoint", "AccountId"}, Documentation: []Text{" A multisig operation has been cancelled. First param is the account that is", " cancelling, third is the multisig account."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Babe", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Babe", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "EpochIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current epoch index."}}, StorageFunctionMetadataV10{Name: "Authorities", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(AuthorityId, BabeAuthorityWeight)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Current epoch authorities."}}, StorageFunctionMetadataV10{Name: "GenesisSlot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The slot at which the first epoch actually started. This is 0", " until the first block of the chain."}}, StorageFunctionMetadataV10{Name: "CurrentSlot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current slot number."}}, StorageFunctionMetadataV10{Name: "Randomness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "[u8; 32]", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The epoch randomness for the *current* epoch.", "", " # Security", "", " This MUST NOT be used for gambling, as it can be influenced by a", " malicious validator in the short term. It MAY be used in many", " cryptographic protocols, however, so long as one remembers that this", " (like everything else on-chain) it is public. For example, it can be", " used where a number is needed that cannot have been chosen by an", " adversary, for purposes such as public-coin zero-knowledge proofs."}}, StorageFunctionMetadataV10{Name: "NextRandomness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "[u8; 32]", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Next epoch randomness."}}, StorageFunctionMetadataV10{Name: "SegmentIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Randomness under construction.", "", " We make a tradeoff between storage accesses and list length.", " We store the under-construction randomness in segments of up to", " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", "", " Once a segment reaches this length, we begin the next one.", " We reset all segments and return to `0` at the beginning of every", " epoch."}}, StorageFunctionMetadataV10{Name: "UnderConstruction", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "u32", Value: "Vec<[u8; 32]>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}, StorageFunctionMetadataV10{Name: "Initialized", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "MaybeVrf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Temporary value (cleared at block finalization) which is `Some`", " if per-block initialization has already been called for current block."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "EpochDuration", Type: "u64", Value: Bytes{0xc8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of **slots** that an epoch takes. We couple sessions to", " epochs, i.e. we start a new session once the new epoch begins."}}, ModuleConstantMetadataV6{Name: "ExpectedBlockTime", Type: "T::Moment", Value: Bytes{0xb8, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The expected average block time at which BABE should be creating", " blocks. Since BABE is probabilistic it is not trivial to figure out", " what the expected average block time should be based on the slot", " duration and the security parameter `c` (where `1 - c` represents", " the probability of a slot being empty)."}}}, Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Timestamp", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Timestamp", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Now", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::Moment", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current time for the current block."}}, StorageFunctionMetadataV10{Name: "DidUpdate", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Did the timestamp get updated in this block?"}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "now", Type: "Compact"}}, Documentation: []Text{" Set the current time.", "", " This call should be invoked exactly once per block. It will panic at the finalization", " phase, if this call hasn't been invoked by that time.", "", " The timestamp should be greater than the previous one by the amount specified by", " `MinimumPeriod`.", "", " The dispatch origin for this call must be `Inherent`."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "MinimumPeriod", Type: "T::Moment", Value: Bytes{0xdc, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum period between blocks. Beware that this is different to the *expected* period", " that the block production apparatus provides. Your chosen consensus system will generally", " work with this to determine a sensible block time. e.g. For Aura, it will be double this", " period on default settings."}}}, Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Authorship", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Authorship", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Uncles", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Uncles"}}, StorageFunctionMetadataV10{Name: "Author", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Author of current block."}}, StorageFunctionMetadataV10{Name: "DidSetUncles", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Whether uncles were already set in this block."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_uncles", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_uncles", Type: "Vec"}}, Documentation: []Text{" Provide a set of uncles."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidUncleParent", Documentation: []Text{" The uncle parent not in the chain."}}, ErrorMetadataV8{Name: "UnclesAlreadySet", Documentation: []Text{" Uncles already set in the block."}}, ErrorMetadataV8{Name: "TooManyUncles", Documentation: []Text{" Too many uncles."}}, ErrorMetadataV8{Name: "GenesisUncle", Documentation: []Text{" The uncle is genesis."}}, ErrorMetadataV8{Name: "TooHighUncle", Documentation: []Text{" The uncle is too high in chain."}}, ErrorMetadataV8{Name: "UncleAlreadyIncluded", Documentation: []Text{" The uncle is already included."}}, ErrorMetadataV8{Name: "OldUncle", Documentation: []Text{" The uncle isn't recent enough to be included."}}}}, ModuleMetadataV10{Name: "Indices", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Indices", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "NextEnumSet", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::AccountIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next free enumeration set."}}, StorageFunctionMetadataV10{Name: "EnumSet", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountIndex", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The enumeration sets."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewAccountIndex", Args: []Type{"AccountId", "AccountIndex"}, Documentation: []Text{" A new account index was assigned.", "", " This event is not triggered when an existing index is reassigned", " to another `AccountId`."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Balances", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Balances", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "TotalIssuance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::Balance", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total units issued in the system."}}, StorageFunctionMetadataV10{Name: "Vesting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "VestingSchedule", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information regarding the vesting of a given account."}}, StorageFunctionMetadataV10{Name: "FreeBalance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Balance", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The 'free' balance of a given account.", "", " This is the only balance that matters in terms of most operations on tokens. It", " alone is used to determine the balance when in the contract execution environment. When this", " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback", " is invoked, giving a chance to external modules to clean up data associated with", " the deleted account.", "", " `frame_system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", " collapsed to zero if it ever becomes less than `ExistentialDeposit`."}}, StorageFunctionMetadataV10{Name: "ReservedBalance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Balance", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of the balance of a given account that is externally reserved; this can still get", " slashed, but gets slashed last of all.", "", " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", " that are still 'owned' by the account holder, but which are suspendable.", "", " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", " is deleted: specifically, `ReservedBalance`.", "", " `frame_system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)"}}, StorageFunctionMetadataV10{Name: "Locks", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Vec>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any liquidity locks on some account balances."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact"}}, Documentation: []Text{" Transfer some liquid free balance to another account.", "", " `transfer` will set the `FreeBalance` of the sender and receiver.", " It will decrease the total issuance of the system by the `TransferFee`.", " If the sender's account is below the existential deposit as a result", " of the transfer, the account will be reaped.", "", " The dispatch origin for this call must be `Signed` by the transactor.", "", " # ", " - Dependent on arguments but not critical, given proper implementations for", " input config types. See related functions below.", " - It contains a limited number of reads and writes internally and no complex computation.", "", " Related functions:", "", " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", " - Transferring balances to accounts that did not exist before will cause", " `T::OnNewAccount::on_new_account` to be called.", " - Removing enough funds from an account will trigger", " `T::DustRemoval::on_unbalanced` and `T::OnFreeBalanceZero::on_free_balance_zero`.", " - `transfer_keep_alive` works the same way as `transfer`, but has an additional", " check that the transfer will not kill the origin account.", "", " # "}}, FunctionMetadataV4{Name: "set_balance", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "::Source"}, FunctionArgumentMetadata{Name: "new_free", Type: "Compact"}, FunctionArgumentMetadata{Name: "new_reserved", Type: "Compact"}}, Documentation: []Text{" Set the balances of a given account.", "", " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", " also decrease the total issuance of the system (`TotalIssuance`).", " If the new free or reserved balance is below the existential deposit,", " it will reset the account nonce (`frame_system::AccountNonce`).", "", " The dispatch origin for this call is `root`.", "", " # ", " - Independent of the arguments.", " - Contains a limited number of reads and writes.", " # "}}, FunctionMetadataV4{Name: "force_transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "source", Type: "::Source"}, FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact"}}, Documentation: []Text{" Exactly as `transfer`, except the origin must be root and the source account may be", " specified."}}, FunctionMetadataV4{Name: "transfer_keep_alive", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact"}}, Documentation: []Text{" Same as the [`transfer`] call, but with a check that the transfer will not kill the", " origin account.", "", " 99% of the time you want [`transfer`] instead.", "", " [`transfer`]: struct.Module.html#method.transfer"}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewAccount", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A new account was created."}}, EventMetadataV4{Name: "ReapedAccount", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" An account was reaped."}}, EventMetadataV4{Name: "Transfer", Args: []Type{"AccountId", "AccountId", "Balance", "Balance"}, Documentation: []Text{" Transfer succeeded (from, to, value, fees)."}}, EventMetadataV4{Name: "BalanceSet", Args: []Type{"AccountId", "Balance", "Balance"}, Documentation: []Text{" A balance was set by root (who, free, reserved)."}}, EventMetadataV4{Name: "Deposit", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" Some amount was deposited (e.g. for transaction fees)."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "ExistentialDeposit", Type: "T::Balance", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount required to keep an account open."}}, ModuleConstantMetadataV6{Name: "TransferFee", Type: "T::Balance", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to make a transfer."}}, ModuleConstantMetadataV6{Name: "CreationFee", Type: "T::Balance", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to create an account."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "VestingBalance", Documentation: []Text{" Vesting balance too high to send value"}}, ErrorMetadataV8{Name: "LiquidityRestrictions", Documentation: []Text{" Account liquidity restrictions prevent withdrawal"}}, ErrorMetadataV8{Name: "Overflow", Documentation: []Text{" Got an overflow after adding"}}, ErrorMetadataV8{Name: "InsufficientBalance", Documentation: []Text{" Balance too low to send value"}}, ErrorMetadataV8{Name: "ExistentialDeposit", Documentation: []Text{" Value too low to create account due to existential deposit"}}, ErrorMetadataV8{Name: "KeepAlive", Documentation: []Text{" Transfer/payment would kill account"}}, ErrorMetadataV8{Name: "ExistingVestingSchedule", Documentation: []Text{" A vesting schedule already exists for this account"}}, ErrorMetadataV8{Name: "DeadAccount", Documentation: []Text{" Beneficiary account must pre-exist"}}}}, ModuleMetadataV10{Name: "TransactionPayment", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Balances", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "NextFeeMultiplier", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Multiplier", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}}}, HasCalls: false, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "TransactionBaseFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the base."}}, ModuleConstantMetadataV6{Name: "TransactionByteFee", Type: "BalanceOf", Value: Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the per-byte portion."}}}, Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Staking", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Staking", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "ValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The ideal number of staking participants."}}, StorageFunctionMetadataV10{Name: "MinimumValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x4, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum number of staking participants before emergency conditions are imposed."}}, StorageFunctionMetadataV10{Name: "Invulnerables", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", " easy to initialize and the performance hit is minimal (we expect no more than four", " invulnerables) and restricted to testnets."}}, StorageFunctionMetadataV10{Name: "Bonded", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all locked \"stash\" accounts to the controller account."}}, StorageFunctionMetadataV10{Name: "Ledger", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "StakingLedger>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all (unlocked) \"controller\" accounts to the info regarding the staking."}}, StorageFunctionMetadataV10{Name: "Payee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "RewardDestination", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Where the reward payment should be made. Keyed by stash."}}, StorageFunctionMetadataV10{Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "ValidatorPrefs", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The map from (wannabe) validator stash key to the preferences of that validator."}}, StorageFunctionMetadataV10{Name: "Nominators", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Nominations", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The map from nominator stash key to the set of stash keys of all validators to nominate.", "", " NOTE: is private so that we can ensure upgraded before all typical accesses.", " Direct storage APIs can still bypass this protection."}}, StorageFunctionMetadataV10{Name: "Stakers", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Exposure>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0}, Documentation: []Text{" Nominators for a particular account that is in action right now. You can't iterate", " through validators here, but you can find them in the Session module.", "", " This is keyed by the stash account."}}, StorageFunctionMetadataV10{Name: "CurrentElected", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The currently elected validator set keyed by stash account ID."}}, StorageFunctionMetadataV10{Name: "CurrentEra", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "EraIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current era index."}}, StorageFunctionMetadataV10{Name: "CurrentEraStart", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "MomentOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The start of the current era."}}, StorageFunctionMetadataV10{Name: "CurrentEraStartSessionIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "SessionIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The session index at which the current era started."}}, StorageFunctionMetadataV10{Name: "CurrentEraPointsEarned", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "EraPoints", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Rewards for the current era. Using indices of current elected set."}}, StorageFunctionMetadataV10{Name: "SlotStake", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of balance actively at stake for each validator slot, currently.", "", " This is used to derive rewards and punishments."}}, StorageFunctionMetadataV10{Name: "ForceEra", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Forcing", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the next session change will be a new era regardless of index."}}, StorageFunctionMetadataV10{Name: "SlashRewardFraction", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Perbill", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The percentage of the slash that is distributed to reporters.", "", " The rest of the slashed value is handled by the `Slash`."}}, StorageFunctionMetadataV10{Name: "CanceledSlashPayout", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of currency given to reporters of a slash event which was", " canceled by extraordinary circumstances (e.g. governance)."}}, StorageFunctionMetadataV10{Name: "UnappliedSlashes", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "EraIndex", Value: "Vec>>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All unapplied slashes that are queued for later."}}, StorageFunctionMetadataV10{Name: "BondedEras", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(EraIndex, SessionIndex)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from still-bonded eras to the first session index of that era."}}, StorageFunctionMetadataV10{Name: "ValidatorSlashInEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "(Perbill, BalanceOf)", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: true, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All slashing events on validators, mapped by era to the highest slash proportion", " and slash value of the era."}}, StorageFunctionMetadataV10{Name: "NominatorSlashInEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "BalanceOf", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: true, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All slashing events on nominators, mapped by era to the highest slash value of the era."}}, StorageFunctionMetadataV10{Name: "SlashingSpans", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "slashing::SlashingSpans", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Slashing spans for stash accounts."}}, StorageFunctionMetadataV10{Name: "SpanSlash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "(T::AccountId, slashing::SpanIndex)", Value: "slashing::SpanRecord>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Records information about the maximum slash of a stash within a slashing span,", " as well as how much reward has been paid out."}}, StorageFunctionMetadataV10{Name: "EarliestUnappliedSlash", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "EraIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The earliest era for which we have a pending, unapplied slash."}}, StorageFunctionMetadataV10{Name: "StorageVersion", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The version of storage for upgrade."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "bond", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "controller", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}, FunctionArgumentMetadata{Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" Take the origin account as a stash and lock up `value` of its balance. `controller` will", " be the account that controls it.", "", " `value` must be more than the `minimum_balance` specified by `T::Currency`.", "", " The dispatch origin for this call must be _Signed_ by the stash account.", "", " # ", " - Independent of the arguments. Moderate complexity.", " - O(1).", " - Three extra DB entries.", "", " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned unless", " the `origin` falls below _existential deposit_ and gets removed as dust.", " # "}}, FunctionMetadataV4{Name: "bond_extra", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "max_additional", Type: "Compact>"}}, Documentation: []Text{" Add some extra amount that have appeared in the stash `free_balance` into the balance up", " for staking.", "", " Use this if there are additional funds in your stash account that you wish to bond.", " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount", " that can be added.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - O(1).", " - One DB entry.", " # "}}, FunctionMetadataV4{Name: "unbond", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Schedule a portion of the stash to be unlocked ready for transfer out after the bond", " period ends. If this leaves an amount actively bonded less than", " T::Currency::minimum_balance(), then it is increased to the full amount.", "", " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", " the funds out of management ready for transfer.", "", " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", " to be called first to remove some of the chunks (if possible).", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " See also [`Call::withdraw_unbonded`].", "", " # ", " - Independent of the arguments. Limited but potentially exploitable complexity.", " - Contains a limited number of reads.", " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)", " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.", " The only way to clean the aforementioned storage item is also user-controlled via `withdraw_unbonded`.", " - One DB entry.", " "}}, FunctionMetadataV4{Name: "withdraw_unbonded", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove any unlocked chunks from the `unlocking` queue from our management.", "", " This essentially frees up that balance to be used by the stash account to do", " whatever it wants.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " See also [`Call::unbond`].", "", " # ", " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.", " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is", " indirectly user-controlled. See [`unbond`] for more detail.", " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.", " - Writes are limited to the `origin` account key.", " # "}}, FunctionMetadataV4{Name: "validate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "prefs", Type: "ValidatorPrefs"}}, Documentation: []Text{" Declare the desire to validate for the origin controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " # "}}, FunctionMetadataV4{Name: "nominate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "targets", Type: "Vec<::Source>"}}, Documentation: []Text{" Declare the desire to nominate `targets` for the origin controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - The transaction's complexity is proportional to the size of `targets`,", " which is capped at `MAX_NOMINATIONS`.", " - Both the reads and writes follow a similar pattern.", " # "}}, FunctionMetadataV4{Name: "chill", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Declare no desire to either validate or nominate.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains one read.", " - Writes are limited to the `origin` account key.", " # "}}, FunctionMetadataV4{Name: "set_payee", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" (Re-)set the payment target for a controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " # "}}, FunctionMetadataV4{Name: "set_controller", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "controller", Type: "::Source"}}, Documentation: []Text{" (Re-)set the controller of a stash.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " # "}}, FunctionMetadataV4{Name: "set_validator_count", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "Compact"}}, Documentation: []Text{" The ideal number of validators."}}, FunctionMetadataV4{Name: "force_no_eras", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be no new eras indefinitely.", "", " # ", " - No arguments.", " # "}}, FunctionMetadataV4{Name: "force_new_era", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be a new era at the end of the next session. After this, it will be", " reset to normal (non-forced) behaviour.", "", " # ", " - No arguments.", " # "}}, FunctionMetadataV4{Name: "set_invulnerables", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "validators", Type: "Vec"}}, Documentation: []Text{" Set the validators who cannot be slashed (if any)."}}, FunctionMetadataV4{Name: "force_unstake", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "stash", Type: "T::AccountId"}}, Documentation: []Text{" Force a current staker to become completely unstaked, immediately."}}, FunctionMetadataV4{Name: "force_new_era_always", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be a new era at the end of sessions indefinitely.", "", " # ", " - One storage write", " # "}}, FunctionMetadataV4{Name: "cancel_deferred_slash", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "era", Type: "EraIndex"}, FunctionArgumentMetadata{Name: "slash_indices", Type: "Vec"}}, Documentation: []Text{" Cancel enactment of a deferred slash. Can be called by either the root origin or", " the `T::SlashCancelOrigin`.", " passing the era and indices of the slashes for that era to kill.", "", " # ", " - One storage write.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Reward", Args: []Type{"Balance", "Balance"}, Documentation: []Text{" All validators have been rewarded by the first balance; the second is the remainder", " from the maximum amount of reward."}}, EventMetadataV4{Name: "Slash", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" One validator (and its nominators) has been slashed by the given amount."}}, EventMetadataV4{Name: "OldSlashingReportDiscarded", Args: []Type{"SessionIndex"}, Documentation: []Text{" An old slashing report from a prior era was discarded because it could", " not be processed."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "SessionsPerEra", Type: "SessionIndex", Value: Bytes{0x6, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of sessions per era."}}, ModuleConstantMetadataV6{Name: "BondingDuration", Type: "EraIndex", Value: Bytes{0xa0, 0x2, 0x0, 0x0}, Documentation: []Text{" Number of eras that staked funds must remain bonded for."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotController", Documentation: []Text{" Not a controller account."}}, ErrorMetadataV8{Name: "NotStash", Documentation: []Text{" Not a stash account."}}, ErrorMetadataV8{Name: "AlreadyBonded", Documentation: []Text{" Stash is already bonded."}}, ErrorMetadataV8{Name: "AlreadyPaired", Documentation: []Text{" Controller is already paired."}}, ErrorMetadataV8{Name: "EmptyTargets", Documentation: []Text{" Targets cannot be empty."}}, ErrorMetadataV8{Name: "DuplicateIndex", Documentation: []Text{" Duplicate index."}}, ErrorMetadataV8{Name: "InvalidSlashIndex", Documentation: []Text{" Slash record index out of bounds."}}, ErrorMetadataV8{Name: "InsufficientValue", Documentation: []Text{" Can not bond with value less than minimum balance."}}, ErrorMetadataV8{Name: "NoMoreChunks", Documentation: []Text{" Can not schedule more unlock chunks."}}}}, ModuleMetadataV10{Name: "Session", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Session", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of validators."}}, StorageFunctionMetadataV10{Name: "CurrentIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "SessionIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current index of the session."}}, StorageFunctionMetadataV10{Name: "QueuedChanged", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the underlying economic identities or weighting behind the validators", " has changed in the queued validator set."}}, StorageFunctionMetadataV10{Name: "QueuedKeys", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(T::ValidatorId, T::Keys)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."}}, StorageFunctionMetadataV10{Name: "DisabledValidators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Indices of disabled validators.", "", " The set is cleared when `on_session_ending` returns a new set of identities."}}, StorageFunctionMetadataV10{Name: "NextKeys", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true}, Key1: "Vec", Key2: "T::ValidatorId", Value: "T::Keys", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The next session keys for a validator.", "", " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", " the trie. Having all data in the same branch should prevent slowing down other queries."}}, StorageFunctionMetadataV10{Name: "KeyOwner", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true}, Key1: "Vec", Key2: "(KeyTypeId, Vec)", Value: "T::ValidatorId", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The owner of a key. The second key is the `KeyTypeId` + the encoded key.", "", " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", " the trie. Having all data in the same branch should prevent slowing down other queries."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_keys", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "keys", Type: "T::Keys"}, FunctionArgumentMetadata{Name: "proof", Type: "Vec"}}, Documentation: []Text{" Sets the session key(s) of the function caller to `key`.", " Allows an account to set its session key prior to becoming a validator.", " This doesn't take effect until the next session.", "", " The dispatch origin of this function must be signed.", "", " # ", " - O(log n) in number of accounts.", " - One extra DB entry.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewSession", Args: []Type{"SessionIndex"}, Documentation: []Text{" New session has happened. Note that the argument is the session index, not the block", " number as the type might suggest."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "DEDUP_KEY_PREFIX", Type: "&[u8]", Value: Bytes{0x34, 0x3a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6b, 0x65, 0x79, 0x73}, Documentation: []Text{" Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch", " of the trie."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidProof", Documentation: []Text{" Invalid ownership proof."}}, ErrorMetadataV8{Name: "NoAssociatedValidatorId", Documentation: []Text{" No associated validator ID for account."}}, ErrorMetadataV8{Name: "DuplicatedKey", Documentation: []Text{" Registered duplicate key."}}}}, ModuleMetadataV10{Name: "Democracy", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Democracy", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "PublicPropCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "PropIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of (public) proposals that have been made so far."}}, StorageFunctionMetadataV10{Name: "PublicProps", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(PropIndex, T::Hash, T::AccountId)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The public proposals. Unsorted. The second item is the proposal's hash."}}, StorageFunctionMetadataV10{Name: "Preimages", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "(Vec, T::AccountId, BalanceOf, T::BlockNumber)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map of hashes to the proposal preimage, along with who registered it and their deposit.", " The block number is the block at which it was deposited."}}, StorageFunctionMetadataV10{Name: "DepositOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "PropIndex", Value: "(BalanceOf, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Those who have locked a deposit."}}, StorageFunctionMetadataV10{Name: "ReferendumCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next free referendum index, aka the number of referenda started so far."}}, StorageFunctionMetadataV10{Name: "LowestUnbaked", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The lowest referendum index representing an unbaked referendum. Equal to", " `ReferendumCount` if there isn't a unbaked referendum."}}, StorageFunctionMetadataV10{Name: "ReferendumInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReferendumIndex", Value: "ReferendumInfo", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information concerning any given referendum."}}, StorageFunctionMetadataV10{Name: "DispatchQueue", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(T::BlockNumber, T::Hash, ReferendumIndex)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Queue of successful referenda to be dispatched. Stored ordered by block number."}}, StorageFunctionMetadataV10{Name: "VotersFor", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReferendumIndex", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Get the voters for the current proposal."}}, StorageFunctionMetadataV10{Name: "VoteOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "(ReferendumIndex, T::AccountId)", Value: "Vote", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Get the vote in a given referendum of a particular voter. The result is meaningful only", " if `voters_for` includes the voter when called with the referendum (you'll get the", " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can", " also check for simple existence with `VoteOf::exists` first."}}, StorageFunctionMetadataV10{Name: "Proxy", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Who is able to vote for whom. Value is the fund-holding account, key is the", " vote-transaction-sending account."}}, StorageFunctionMetadataV10{Name: "Delegations", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "(T::AccountId, Conviction)", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Get the account (and lock periods) to which another account is delegating vote."}}, StorageFunctionMetadataV10{Name: "LastTabledWasExternal", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the last referendum tabled was submitted externally. False if it was a public", " proposal."}}, StorageFunctionMetadataV10{Name: "NextExternal", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "(T::Hash, VoteThreshold)", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The referendum to be tabled whenever it would be valid to table an external proposal.", " This happens when a referendum needs to be tabled and one of two conditions are met:", " - `LastTabledWasExternal` is `false`; or", " - `PublicProps` is empty."}}, StorageFunctionMetadataV10{Name: "Blacklist", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "(T::BlockNumber, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A record of who vetoed what. Maps proposal hash to a possible existent block number", " (until when it may not be resubmitted) and who vetoed it."}}, StorageFunctionMetadataV10{Name: "Cancellations", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "bool", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Record of all proposals that have been subject to emergency cancellation."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Propose a sensitive action to be taken.", "", " # ", " - O(1).", " - Two DB changes, one DB entry.", " # "}}, FunctionMetadataV4{Name: "second", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "Compact"}}, Documentation: []Text{" Propose a sensitive action to be taken.", "", " # ", " - O(1).", " - One DB entry.", " # "}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "vote", Type: "Vote"}}, Documentation: []Text{" Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", " otherwise it is a vote to keep the status quo.", "", " # ", " - O(1).", " - One DB change, one DB entry.", " # "}}, FunctionMetadataV4{Name: "proxy_vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "vote", Type: "Vote"}}, Documentation: []Text{" Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact", " the proposal; otherwise it is a vote to keep the status quo.", "", " # ", " - O(1).", " - One DB change, one DB entry.", " # "}}, FunctionMetadataV4{Name: "emergency_cancel", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "ReferendumIndex"}}, Documentation: []Text{" Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", " referendum."}}, FunctionMetadataV4{Name: "external_propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a referendum to be tabled once it is legal to schedule an external", " referendum."}}, FunctionMetadataV4{Name: "external_propose_majority", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a majority-carries referendum to be tabled next once it is legal to schedule", " an external referendum.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call."}}, FunctionMetadataV4{Name: "external_propose_default", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", " schedule an external referendum.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call."}}, FunctionMetadataV4{Name: "fast_track", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "voting_period", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "delay", Type: "T::BlockNumber"}}, Documentation: []Text{" Schedule the currently externally-proposed majority-carries referendum to be tabled", " immediately. If there is no externally-proposed referendum currently, or if there is one", " but it is not a majority-carries referendum then it fails.", "", " - `proposal_hash`: The hash of the current external proposal.", " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", " `EmergencyVotingPeriod` if too low.", " - `delay`: The number of block after voting has ended in approval and this should be", " enacted. This doesn't have a minimum amount."}}, FunctionMetadataV4{Name: "veto_external", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Veto and blacklist the external proposal hash."}}, FunctionMetadataV4{Name: "cancel_referendum", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "Compact"}}, Documentation: []Text{" Remove a referendum."}}, FunctionMetadataV4{Name: "cancel_queued", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "which", Type: "ReferendumIndex"}}, Documentation: []Text{" Cancel a proposal queued for enactment."}}, FunctionMetadataV4{Name: "set_proxy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proxy", Type: "T::AccountId"}}, Documentation: []Text{" Specify a proxy. Called by the stash.", "", " # ", " - One extra DB entry.", " # "}}, FunctionMetadataV4{Name: "resign_proxy", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Clear the proxy. Called by the proxy.", "", " # ", " - One DB clear.", " # "}}, FunctionMetadataV4{Name: "remove_proxy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proxy", Type: "T::AccountId"}}, Documentation: []Text{" Clear the proxy. Called by the stash.", "", " # ", " - One DB clear.", " # "}}, FunctionMetadataV4{Name: "delegate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "to", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "conviction", Type: "Conviction"}}, Documentation: []Text{" Delegate vote.", "", " # ", " - One extra DB entry.", " # "}}, FunctionMetadataV4{Name: "undelegate", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Undelegate vote.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name: "clear_public_proposals", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Veto and blacklist the proposal hash. Must be from Root origin."}}, FunctionMetadataV4{Name: "note_preimage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Register the preimage for an upcoming proposal. This doesn't require the proposal to be", " in the dispatch queue but does require a deposit, returned once enacted."}}, FunctionMetadataV4{Name: "note_imminent_preimage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Register the preimage for an upcoming proposal. This requires the proposal to be", " in the dispatch queue. No deposit is needed."}}, FunctionMetadataV4{Name: "reap_preimage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Remove an expired proposal preimage and collect the deposit.", "", " This will only work after `VotingPeriod` blocks from the time that the preimage was", " noted, if it's the same account doing it. If it's a different account, then it'll only", " work an additional `EnactmentPeriod` later."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"PropIndex", "Balance"}, Documentation: []Text{" A motion has been proposed by a public account."}}, EventMetadataV4{Name: "Tabled", Args: []Type{"PropIndex", "Balance", "Vec"}, Documentation: []Text{" A public proposal has been tabled for referendum vote."}}, EventMetadataV4{Name: "ExternalTabled", Args: []Type(nil), Documentation: []Text{" An external proposal has been tabled."}}, EventMetadataV4{Name: "Started", Args: []Type{"ReferendumIndex", "VoteThreshold"}, Documentation: []Text{" A referendum has begun."}}, EventMetadataV4{Name: "Passed", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A proposal has been approved by referendum."}}, EventMetadataV4{Name: "NotPassed", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A proposal has been rejected by referendum."}}, EventMetadataV4{Name: "Cancelled", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A referendum has been cancelled."}}, EventMetadataV4{Name: "Executed", Args: []Type{"ReferendumIndex", "bool"}, Documentation: []Text{" A proposal has been enacted."}}, EventMetadataV4{Name: "Delegated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" An account has delegated their vote to another account."}}, EventMetadataV4{Name: "Undelegated", Args: []Type{"AccountId"}, Documentation: []Text{" An account has cancelled a previous delegation operation."}}, EventMetadataV4{Name: "Vetoed", Args: []Type{"AccountId", "Hash", "BlockNumber"}, Documentation: []Text{" An external proposal has been vetoed."}}, EventMetadataV4{Name: "PreimageNoted", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A proposal's preimage was noted, and the deposit taken."}}, EventMetadataV4{Name: "PreimageUsed", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A proposal preimage was removed and used (the deposit was returned)."}}, EventMetadataV4{Name: "PreimageInvalid", Args: []Type{"Hash", "ReferendumIndex"}, Documentation: []Text{" A proposal could not be executed because its preimage was invalid."}}, EventMetadataV4{Name: "PreimageMissing", Args: []Type{"Hash", "ReferendumIndex"}, Documentation: []Text{" A proposal could not be executed because its preimage was missing."}}, EventMetadataV4{Name: "PreimageReaped", Args: []Type{"Hash", "AccountId", "Balance", "AccountId"}, Documentation: []Text{" A registered preimage was removed and the deposit collected by the reaper (last item)."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "EnactmentPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x2f, 0xd, 0x0}, Documentation: []Text{" The minimum period of locking and the period between a proposal being approved and enacted.", "", " It should generally be a little more than the unstake period to ensure that", " voting stakers have an opportunity to remove themselves from the system in the case where", " they are on the losing side of a vote."}}, ModuleConstantMetadataV6{Name: "LaunchPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" How often (in blocks) new public referenda are launched."}}, ModuleConstantMetadataV6{Name: "VotingPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" How often (in blocks) to check for new votes."}}, ModuleConstantMetadataV6{Name: "MinimumDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount to be used as a deposit for a public referendum proposal."}}, ModuleConstantMetadataV6{Name: "EmergencyVotingPeriod", Type: "T::BlockNumber", Value: Bytes{0x80, 0x51, 0x1, 0x0}, Documentation: []Text{" Minimum voting period allowed for an emergency referendum."}}, ModuleConstantMetadataV6{Name: "CooloffPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" Period in blocks where an external proposal may not be re-submitted after being vetoed."}}, ModuleConstantMetadataV6{Name: "PreimageByteDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of balance that must be deposited per byte of preimage stored."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "ValueLow", Documentation: []Text{" Value too low"}}, ErrorMetadataV8{Name: "ProposalMissing", Documentation: []Text{" Proposal does not exist"}}, ErrorMetadataV8{Name: "NotProxy", Documentation: []Text{" Not a proxy"}}, ErrorMetadataV8{Name: "BadIndex", Documentation: []Text{" Unknown index"}}, ErrorMetadataV8{Name: "AlreadyCanceled", Documentation: []Text{" Cannot cancel the same proposal twice"}}, ErrorMetadataV8{Name: "DuplicateProposal", Documentation: []Text{" Proposal already made"}}, ErrorMetadataV8{Name: "ProposalBlacklisted", Documentation: []Text{" Proposal still blacklisted"}}, ErrorMetadataV8{Name: "NotSimpleMajority", Documentation: []Text{" Next external proposal not simple majority"}}, ErrorMetadataV8{Name: "InvalidHash", Documentation: []Text{" Invalid hash"}}, ErrorMetadataV8{Name: "NoProposal", Documentation: []Text{" No external proposal"}}, ErrorMetadataV8{Name: "AlreadyVetoed", Documentation: []Text{" Identity may not veto a proposal twice"}}, ErrorMetadataV8{Name: "AlreadyProxy", Documentation: []Text{" Already a proxy"}}, ErrorMetadataV8{Name: "WrongProxy", Documentation: []Text{" Wrong proxy"}}, ErrorMetadataV8{Name: "NotDelegated", Documentation: []Text{" Not delegated"}}, ErrorMetadataV8{Name: "DuplicatePreimage", Documentation: []Text{" Preimage already noted"}}, ErrorMetadataV8{Name: "NotImminent", Documentation: []Text{" Not imminent"}}, ErrorMetadataV8{Name: "Early", Documentation: []Text{" Too early"}}, ErrorMetadataV8{Name: "Imminent", Documentation: []Text{" Imminent"}}, ErrorMetadataV8{Name: "PreimageMissing", Documentation: []Text{" Preimage not found"}}, ErrorMetadataV8{Name: "ReferendumInvalid", Documentation: []Text{" Vote given for invalid referendum"}}, ErrorMetadataV8{Name: "PreimageInvalid", Documentation: []Text{" Invalid preimage"}}, ErrorMetadataV8{Name: "NoneWaiting", Documentation: []Text{" No proposals waiting"}}}}, ModuleMetadataV10{Name: "Council", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Instance1Collective", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The hashes of the active proposals."}}, StorageFunctionMetadataV10{Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: ">::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Actual proposal for a given hash, if it's current."}}, StorageFunctionMetadataV10{Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "Votes", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes on a given proposal, if it is ongoing."}}, StorageFunctionMetadataV10{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proposals so far."}}, StorageFunctionMetadataV10{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current members of the collective. This is stored sorted (just by value)."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_members", Type: "Vec"}}, Documentation: []Text{" Set the collective's membership manually to `new_members`. Be nice to the chain and", " provide it pre-sorted.", "", " Requires root origin."}}, FunctionMetadataV4{Name: "execute", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective."}}, FunctionMetadataV4{Name: "propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "Compact"}, FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" # ", " - Bounded storage reads and writes.", " - Argument `threshold` has bearing on weight.", " # "}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "approve", Type: "bool"}}, Documentation: []Text{" # ", " - Bounded storage read and writes.", " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`)."}}, EventMetadataV4{Name: "Voted", Args: []Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`)."}}, EventMetadataV4{Name: "Approved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was approved by the required threshold."}}, EventMetadataV4{Name: "Disapproved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was not approved by the required threshold."}}, EventMetadataV4{Name: "Executed", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A motion was executed; `bool` is true if returned without error."}}, EventMetadataV4{Name: "MemberExecuted", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A single member did some action; `bool` is true if returned without error."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" Account is not a member"}}, ErrorMetadataV8{Name: "DuplicateProposal", Documentation: []Text{" Duplicate proposals not allowed"}}, ErrorMetadataV8{Name: "ProposalMissing", Documentation: []Text{" Proposal must exist"}}, ErrorMetadataV8{Name: "WrongIndex", Documentation: []Text{" Mismatched index"}}, ErrorMetadataV8{Name: "DuplicateVote", Documentation: []Text{" Duplicate vote ignored"}}, ErrorMetadataV8{Name: "AlreadyInitialized", Documentation: []Text{" Members are already initialized!"}}}}, ModuleMetadataV10{Name: "TechnicalCommittee", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Instance2Collective", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The hashes of the active proposals."}}, StorageFunctionMetadataV10{Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: ">::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Actual proposal for a given hash, if it's current."}}, StorageFunctionMetadataV10{Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "Votes", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes on a given proposal, if it is ongoing."}}, StorageFunctionMetadataV10{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proposals so far."}}, StorageFunctionMetadataV10{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current members of the collective. This is stored sorted (just by value)."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_members", Type: "Vec"}}, Documentation: []Text{" Set the collective's membership manually to `new_members`. Be nice to the chain and", " provide it pre-sorted.", "", " Requires root origin."}}, FunctionMetadataV4{Name: "execute", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective."}}, FunctionMetadataV4{Name: "propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "Compact"}, FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" # ", " - Bounded storage reads and writes.", " - Argument `threshold` has bearing on weight.", " # "}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "approve", Type: "bool"}}, Documentation: []Text{" # ", " - Bounded storage read and writes.", " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`)."}}, EventMetadataV4{Name: "Voted", Args: []Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`)."}}, EventMetadataV4{Name: "Approved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was approved by the required threshold."}}, EventMetadataV4{Name: "Disapproved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was not approved by the required threshold."}}, EventMetadataV4{Name: "Executed", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A motion was executed; `bool` is true if returned without error."}}, EventMetadataV4{Name: "MemberExecuted", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A single member did some action; `bool` is true if returned without error."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" Account is not a member"}}, ErrorMetadataV8{Name: "DuplicateProposal", Documentation: []Text{" Duplicate proposals not allowed"}}, ErrorMetadataV8{Name: "ProposalMissing", Documentation: []Text{" Proposal must exist"}}, ErrorMetadataV8{Name: "WrongIndex", Documentation: []Text{" Mismatched index"}}, ErrorMetadataV8{Name: "DuplicateVote", Documentation: []Text{" Duplicate vote ignored"}}, ErrorMetadataV8{Name: "AlreadyInitialized", Documentation: []Text{" Members are already initialized!"}}}}, ModuleMetadataV10{Name: "Elections", HasStorage: true, Storage: StorageMetadataV10{Prefix: "PhragmenElection", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(T::AccountId, BalanceOf)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current elected membership. Sorted based on account id."}}, StorageFunctionMetadataV10{Name: "RunnersUp", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(T::AccountId, BalanceOf)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current runners_up. Sorted based on low to high merit (worse to best runner)."}}, StorageFunctionMetadataV10{Name: "ElectionRounds", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total number of vote rounds that have happened, excluding the upcoming one."}}, StorageFunctionMetadataV10{Name: "VotesOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Vec", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes of a particular voter, with the round index of the votes."}}, StorageFunctionMetadataV10{Name: "StakeOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "BalanceOf", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Locked stake of a voter."}}, StorageFunctionMetadataV10{Name: "Candidates", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The present candidate list. Sorted based on account id. A current member can never enter", " this vector and is always implicitly assumed to be a candidate."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "votes", Type: "Vec"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Vote for a set of candidates for the upcoming round of election.", "", " The `votes` should:", " - not be empty.", " - be less than the number of candidates.", "", " Upon voting, `value` units of `who`'s balance is locked and a bond amount is reserved.", " It is the responsibility of the caller to not place all of their balance into the lock", " and keep some for further transactions.", "", " # ", " #### State", " Reads: O(1)", " Writes: O(V) given `V` votes. V is bounded by 16.", " # "}}, FunctionMetadataV4{Name: "remove_voter", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove `origin` as a voter. This removes the lock and returns the bond.", "", " # ", " #### State", " Reads: O(1)", " Writes: O(1)", " # "}}, FunctionMetadataV4{Name: "report_defunct_voter", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "::Source"}}, Documentation: []Text{" Report `target` for being an defunct voter. In case of a valid report, the reporter is", " rewarded by the bond amount of `target`. Otherwise, the reporter itself is removed and", " their bond is slashed.", "", " A defunct voter is defined to be:", " - a voter whose current submitted votes are all invalid. i.e. all of them are no", " longer a candidate nor an active member.", "", " # ", " #### State", " Reads: O(NLogM) given M current candidates and N votes for `target`.", " Writes: O(1)", " # "}}, FunctionMetadataV4{Name: "submit_candidacy", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Submit oneself for candidacy.", "", " A candidate will either:", " - Lose at the end of the term and forfeit their deposit.", " - Win and become a member. Members will eventually get their stash back.", " - Become a runner-up. Runners-ups are reserved members in case one gets forcefully", " removed.", "", " # ", " #### State", " Reads: O(LogN) Given N candidates.", " Writes: O(1)", " # "}}, FunctionMetadataV4{Name: "renounce_candidacy", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Renounce one's intention to be a candidate for the next election round. 3 potential", " outcomes exist:", " - `origin` is a candidate and not elected in any set. In this case, the bond is", " unreserved, returned and origin is removed as a candidate.", " - `origin` is a current runner up. In this case, the bond is unreserved, returned and", " origin is removed as a runner.", " - `origin` is a current member. In this case, the bond is unreserved and origin is", " removed as a member, consequently not being a candidate for the next round anymore.", " Similar to [`remove_voter`], if replacement runners exists, they are immediately used."}}, FunctionMetadataV4{Name: "remove_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "::Source"}}, Documentation: []Text{" Remove a particular member from the set. This is effective immediately and the bond of", " the outgoing member is slashed.", "", " If a runner-up is available, then the best runner-up will be removed and replaces the", " outgoing member. Otherwise, a new phragmen round is started.", "", " Note that this does not affect the designated block number of the next election.", "", " # ", " #### State", " Reads: O(do_phragmen)", " Writes: O(do_phragmen)", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewTerm", Args: []Type{"Vec<(AccountId, Balance)>"}, Documentation: []Text{" A new term with new members. This indicates that enough candidates existed, not that", " enough have has been elected. The inner value must be examined for this purpose."}}, EventMetadataV4{Name: "EmptyTerm", Args: []Type(nil), Documentation: []Text{" No (or not enough) candidates existed for this round."}}, EventMetadataV4{Name: "MemberKicked", Args: []Type{"AccountId"}, Documentation: []Text{" A member has been removed. This should always be followed by either `NewTerm` ot", " `EmptyTerm`."}}, EventMetadataV4{Name: "MemberRenounced", Args: []Type{"AccountId"}, Documentation: []Text{" A member has renounced their candidacy."}}, EventMetadataV4{Name: "VoterReported", Args: []Type{"AccountId", "AccountId", "bool"}, Documentation: []Text{" A voter (first element) was reported (byt the second element) with the the report being", " successful or not (third element)."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "CandidacyBond", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, ModuleConstantMetadataV6{Name: "VotingBond", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, ModuleConstantMetadataV6{Name: "DesiredMembers", Type: "u32", Value: Bytes{0xd, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, ModuleConstantMetadataV6{Name: "DesiredRunnersUp", Type: "u32", Value: Bytes{0x7, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, ModuleConstantMetadataV6{Name: "TermDuration", Type: "T::BlockNumber", Value: Bytes{0x80, 0x13, 0x3, 0x0}, Documentation: []Text(nil)}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "UnableToVote", Documentation: []Text{" Cannot vote when no candidates or members exist."}}, ErrorMetadataV8{Name: "NoVotes", Documentation: []Text{" Must vote for at least one candidate."}}, ErrorMetadataV8{Name: "TooManyVotes", Documentation: []Text{" Cannot vote more than candidates."}}, ErrorMetadataV8{Name: "MaximumVotesExceeded", Documentation: []Text{" Cannot vote more than maximum allowed."}}, ErrorMetadataV8{Name: "LowBalance", Documentation: []Text{" Cannot vote with stake less than minimum balance."}}, ErrorMetadataV8{Name: "UnableToPayBond", Documentation: []Text{" Voter can not pay voting bond."}}, ErrorMetadataV8{Name: "MustBeVoter", Documentation: []Text{" Must be a voter."}}, ErrorMetadataV8{Name: "ReportSelf", Documentation: []Text{" Cannot report self."}}, ErrorMetadataV8{Name: "DuplicatedCandidate", Documentation: []Text{" Duplicated candidate submission."}}, ErrorMetadataV8{Name: "MemberSubmit", Documentation: []Text{" Member cannot re-submit candidacy."}}, ErrorMetadataV8{Name: "RunnerSubmit", Documentation: []Text{" Runner cannot re-submit candidacy."}}, ErrorMetadataV8{Name: "InsufficientCandidateFunds", Documentation: []Text{" Candidate does not have enough funds."}}, ErrorMetadataV8{Name: "InvalidOrigin", Documentation: []Text{" Origin is not a candidate, member or a runner up."}}, ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" Not a member."}}}}, ModuleMetadataV10{Name: "TechnicalMembership", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Instance1Membership", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current membership, stored as an ordered Vec."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "add_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Add a member `who` to the set.", "", " May only be called from `AddOrigin` or root."}}, FunctionMetadataV4{Name: "remove_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Remove a member `who` from the set.", "", " May only be called from `RemoveOrigin` or root."}}, FunctionMetadataV4{Name: "swap_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "remove", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "add", Type: "T::AccountId"}}, Documentation: []Text{" Swap out one member `remove` for another `add`.", "", " May only be called from `SwapOrigin` or root."}}, FunctionMetadataV4{Name: "reset_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "members", Type: "Vec"}}, Documentation: []Text{" Change the membership to a new set, disregarding the existing membership. Be nice and", " pass `members` pre-sorted.", "", " May only be called from `ResetOrigin` or root."}}, FunctionMetadataV4{Name: "change_key", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "T::AccountId"}}, Documentation: []Text{" Swap out the sending member for some other key `new`.", "", " May only be called from `Signed` origin of a current member."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "MemberAdded", Args: []Type(nil), Documentation: []Text{" The given member was added; see the transaction for who."}}, EventMetadataV4{Name: "MemberRemoved", Args: []Type(nil), Documentation: []Text{" The given member was removed; see the transaction for who."}}, EventMetadataV4{Name: "MembersSwapped", Args: []Type(nil), Documentation: []Text{" Two members were swapped; see the transaction for who."}}, EventMetadataV4{Name: "MembersReset", Args: []Type(nil), Documentation: []Text{" The membership was reset; see the transaction for who the new set is."}}, EventMetadataV4{Name: "KeyChanged", Args: []Type(nil), Documentation: []Text{" One of the members' keys changed."}}, EventMetadataV4{Name: "Dummy", Args: []Type{"sp_std::marker::PhantomData<(AccountId, Event)>"}, Documentation: []Text{" Phantom member, never used."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "FinalityTracker", HasStorage: false, Storage: StorageMetadataV10{Prefix: "", Items: []StorageFunctionMetadataV10(nil)}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "final_hint", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "hint", Type: "Compact"}}, Documentation: []Text{" Hint that the author of this block thinks the best finalized", " block is the given number."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "WindowSize", Type: "T::BlockNumber", Value: Bytes{0x65, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of recent samples to keep from this chain. Default is 101."}}, ModuleConstantMetadataV6{Name: "ReportLatency", Type: "T::BlockNumber", Value: Bytes{0xe8, 0x3, 0x0, 0x0}, Documentation: []Text{" The delay after which point things become suspicious. Default is 1000."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "AlreadyUpdated", Documentation: []Text{" Final hint must be updated only once in the block"}}, ErrorMetadataV8{Name: "BadHint", Documentation: []Text{" Finalized height above block number"}}}}, ModuleMetadataV10{Name: "Grandpa", HasStorage: true, Storage: StorageMetadataV10{Prefix: "GrandpaFinality", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Authorities", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "AuthorityList", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" DEPRECATED", "", " This used to store the current authority set, which has been migrated to the well-known", " GRANDPA_AUTHORITES_KEY unhashed key."}}, StorageFunctionMetadataV10{Name: "State", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "StoredState", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" State of the current authority set."}}, StorageFunctionMetadataV10{Name: "PendingChange", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "StoredPendingChange", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Pending change: (signaled at, scheduled change)."}}, StorageFunctionMetadataV10{Name: "NextForced", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" next block number where we can force a change."}}, StorageFunctionMetadataV10{Name: "Stalled", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "(T::BlockNumber, T::BlockNumber)", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" `true` if we are currently stalled."}}, StorageFunctionMetadataV10{Name: "CurrentSetId", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "SetId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of changes (both in terms of keys and underlying economic responsibilities)", " in the \"set\" of Grandpa validators from genesis."}}, StorageFunctionMetadataV10{Name: "SetIdSession", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "SetId", Value: "SessionIndex", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from grandpa set ID to the index of the *most recent* session for which its members were responsible."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "report_misbehavior", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "_report", Type: "Vec"}}, Documentation: []Text{" Report some misbehavior."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewAuthorities", Args: []Type{"AuthorityList"}, Documentation: []Text{" New authority set has been applied."}}, EventMetadataV4{Name: "Paused", Args: []Type(nil), Documentation: []Text{" Current authority set has been paused."}}, EventMetadataV4{Name: "Resumed", Args: []Type(nil), Documentation: []Text{" Current authority set has been resumed."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "PauseFailed", Documentation: []Text{" Attempt to signal GRANDPA pause when the authority set isn't live", " (either paused or already pending pause)."}}, ErrorMetadataV8{Name: "ResumeFailed", Documentation: []Text{" Attempt to signal GRANDPA resume when the authority set isn't paused", " (either live or already pending resume)."}}, ErrorMetadataV8{Name: "ChangePending", Documentation: []Text{" Attempt to signal GRANDPA change with one already pending."}}, ErrorMetadataV8{Name: "TooSoon", Documentation: []Text{" Cannot signal forced change so soon after last."}}}}, ModuleMetadataV10{Name: "Treasury", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Treasury", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ProposalIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of proposals that have been made."}}, StorageFunctionMetadataV10{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ProposalIndex", Value: "Proposal>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposals that have been made."}}, StorageFunctionMetadataV10{Name: "Approvals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposal indices that have been approved but not yet awarded."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "propose_spend", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "Compact>"}, FunctionArgumentMetadata{Name: "beneficiary", Type: "::Source"}}, Documentation: []Text{" Put forward a suggestion for spending. A deposit proportional to the value", " is reserved and slashed if the proposal is rejected. It is returned once the", " proposal is awarded.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change, one extra DB entry.", " # "}}, FunctionMetadataV4{Name: "reject_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Reject a proposed spend. The original deposit will be slashed.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB clear.", " # "}}, FunctionMetadataV4{Name: "approve_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", " and the original deposit will be returned.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"ProposalIndex"}, Documentation: []Text{" New proposal."}}, EventMetadataV4{Name: "Spending", Args: []Type{"Balance"}, Documentation: []Text{" We have ended a spend period and will now allocate funds."}}, EventMetadataV4{Name: "Awarded", Args: []Type{"ProposalIndex", "Balance", "AccountId"}, Documentation: []Text{" Some funds have been allocated."}}, EventMetadataV4{Name: "Rejected", Args: []Type{"ProposalIndex", "Balance"}, Documentation: []Text{" A proposal was rejected; funds were slashed."}}, EventMetadataV4{Name: "Burnt", Args: []Type{"Balance"}, Documentation: []Text{" Some of our funds have been burnt."}}, EventMetadataV4{Name: "Rollover", Args: []Type{"Balance"}, Documentation: []Text{" Spending has finished; this is the amount that rolls over until next spend."}}, EventMetadataV4{Name: "Deposit", Args: []Type{"Balance"}, Documentation: []Text{" Some funds have been deposited."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "ProposalBond", Type: "Permill", Value: Bytes{0x50, 0xc3, 0x0, 0x0}, Documentation: []Text{" Fraction of a proposal's value that should be bonded in order to place the proposal.", " An accepted proposal gets these back. A rejected proposal does not."}}, ModuleConstantMetadataV6{Name: "ProposalBondMinimum", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum amount of funds that should be placed in a deposit for making a proposal."}}, ModuleConstantMetadataV6{Name: "SpendPeriod", Type: "T::BlockNumber", Value: Bytes{0x80, 0x70, 0x0, 0x0}, Documentation: []Text{" Period between successive spends."}}, ModuleConstantMetadataV6{Name: "Burn", Type: "Permill", Value: Bytes{0x20, 0xa1, 0x7, 0x0}, Documentation: []Text{" Percentage of spare funds (if any) that are burnt per spend period."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InsufficientProposersBalance", Documentation: []Text{" Proposer's balance is too low."}}, ErrorMetadataV8{Name: "InvalidProposalIndex", Documentation: []Text{" No proposal at that index."}}}}, ModuleMetadataV10{Name: "Contracts", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Contract", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "GasSpent", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Gas", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Gas spent so far in this block."}}, StorageFunctionMetadataV10{Name: "CurrentSchedule", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Schedule", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x87, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0}, Documentation: []Text{" Current cost schedule for contracts."}}, StorageFunctionMetadataV10{Name: "PristineCode", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "CodeHash", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from an original code hash to the original code, untouched by instrumentation."}}, StorageFunctionMetadataV10{Name: "CodeStorage", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "CodeHash", Value: "wasm::PrefabWasmModule", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping between an original code hash and instrumented wasm code, ready for execution."}}, StorageFunctionMetadataV10{Name: "AccountCounter", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The subtrie counter."}}, StorageFunctionMetadataV10{Name: "ContractInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "ContractInfo", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The code associated with a given account."}}, StorageFunctionMetadataV10{Name: "GasPrice", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The price of one unit of gas."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "update_schedule", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "schedule", Type: "Schedule"}}, Documentation: []Text{" Updates the schedule for metering contracts.", "", " The schedule must have a greater version than the stored schedule."}}, FunctionMetadataV4{Name: "put_code", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "gas_limit", Type: "Compact"}, FunctionArgumentMetadata{Name: "code", Type: "Vec"}}, Documentation: []Text{" Stores the given binary Wasm code into the chain's storage and returns its `codehash`.", " You can instantiate contracts only with stored code."}}, FunctionMetadataV4{Name: "call", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}, FunctionArgumentMetadata{Name: "gas_limit", Type: "Compact"}, FunctionArgumentMetadata{Name: "data", Type: "Vec"}}, Documentation: []Text{" Makes a call to an account, optionally transferring some balance.", "", " * If the account is a smart-contract account, the associated code will be", " executed and any value will be transferred.", " * If the account is a regular account, any value will be transferred.", " * If no account exists and the call value is not less than `existential_deposit`,", " a regular account will be created and any value will be transferred."}}, FunctionMetadataV4{Name: "instantiate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "endowment", Type: "Compact>"}, FunctionArgumentMetadata{Name: "gas_limit", Type: "Compact"}, FunctionArgumentMetadata{Name: "code_hash", Type: "CodeHash"}, FunctionArgumentMetadata{Name: "data", Type: "Vec"}}, Documentation: []Text{" Instantiates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", "", " Instantiation is executed as follows:", "", " - The destination address is computed based on the sender and hash of the code.", " - The smart-contract account is created at the computed address.", " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned", " after the execution is saved as the `code` of the account. That code will be invoked", " upon any call received by this account.", " - The contract is initialized."}}, FunctionMetadataV4{Name: "claim_surcharge", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "aux_sender", Type: "Option"}}, Documentation: []Text{" Allows block producers to claim a small reward for evicting a contract. If a block producer", " fails to do so, a regular users will be allowed to claim the reward.", "", " If contract is not evicted as a result of this call, no actions are taken and", " the sender is not eligible for the reward."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Transfer", Args: []Type{"AccountId", "AccountId", "Balance"}, Documentation: []Text{" Transfer happened `from` to `to` with given `value` as part of a `call` or `instantiate`."}}, EventMetadataV4{Name: "Instantiated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" Contract deployed by address at the specified address."}}, EventMetadataV4{Name: "CodeStored", Args: []Type{"Hash"}, Documentation: []Text{" Code with the specified hash has been stored."}}, EventMetadataV4{Name: "ScheduleUpdated", Args: []Type{"u32"}, Documentation: []Text{" Triggered when the current schedule is updated."}}, EventMetadataV4{Name: "Dispatched", Args: []Type{"AccountId", "bool"}, Documentation: []Text{" A call was dispatched from the given account. The bool signals whether it was", " successful execution or not."}}, EventMetadataV4{Name: "Contract", Args: []Type{"AccountId", "Vec"}, Documentation: []Text{" An event from contract of account."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "SignedClaimHandicap", Type: "T::BlockNumber", Value: Bytes{0x2, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of block delay an extrinsic claim surcharge has.", "", " When claim surcharge is called by an extrinsic the rent is checked", " for current_block - delay"}}, ModuleConstantMetadataV6{Name: "TombstoneDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount required to generate a tombstone."}}, ModuleConstantMetadataV6{Name: "StorageSizeOffset", Type: "u32", Value: Bytes{0x8, 0x0, 0x0, 0x0}, Documentation: []Text{" Size of a contract at the time of instantiaion. This is a simple way to ensure that", " empty contracts eventually gets deleted."}}, ModuleConstantMetadataV6{Name: "RentByteFee", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Price of a byte of storage per one block interval. Should be greater than 0."}}, ModuleConstantMetadataV6{Name: "RentDepositOffset", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0x8a, 0x5d, 0x78, 0x45, 0x63, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of funds a contract should deposit in order to offset", " the cost of one byte.", "", " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,", " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.", " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,", " then it would pay 500 BU/day."}}, ModuleConstantMetadataV6{Name: "SurchargeReward", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xa1, 0xa7, 0x6b, 0x4a, 0x35, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Reward that is received by the party whose touch has led", " to removal of a contract."}}, ModuleConstantMetadataV6{Name: "TransferFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to make a transfer."}}, ModuleConstantMetadataV6{Name: "CreationFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to create an account."}}, ModuleConstantMetadataV6{Name: "TransactionBaseFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the base."}}, ModuleConstantMetadataV6{Name: "TransactionByteFee", Type: "BalanceOf", Value: Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the per-byte portion."}}, ModuleConstantMetadataV6{Name: "ContractFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to instantiate a contract instance. A reasonable default value", " is 21."}}, ModuleConstantMetadataV6{Name: "CallBaseFee", Type: "Gas", Value: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base fee charged for calling into a contract. A reasonable default", " value is 135."}}, ModuleConstantMetadataV6{Name: "InstantiateBaseFee", Type: "Gas", Value: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base fee charged for instantiating a contract. A reasonable default value", " is 175."}}, ModuleConstantMetadataV6{Name: "MaxDepth", Type: "u32", Value: Bytes{0x20, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum nesting level of a call/instantiate stack. A reasonable default", " value is 100."}}, ModuleConstantMetadataV6{Name: "MaxValueSize", Type: "u32", Value: Bytes{0x0, 0x40, 0x0, 0x0}, Documentation: []Text{" The maximum size of a storage value in bytes. A reasonable default is 16 KiB."}}, ModuleConstantMetadataV6{Name: "BlockGasLimit", Type: "Gas", Value: Bytes{0x80, 0x96, 0x98, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum amount of gas that could be expended per block. A reasonable", " default value is 10_000_000."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidScheduleVersion", Documentation: []Text{" A new schedule must have a greater version than the current one."}}, ErrorMetadataV8{Name: "InvalidSurchargeClaim", Documentation: []Text{" An origin must be signed or inherent and auxiliary sender only provided on inherent."}}, ErrorMetadataV8{Name: "InvalidSourceContract", Documentation: []Text{" Cannot restore from nonexisting or tombstone contract."}}, ErrorMetadataV8{Name: "InvalidDestinationContract", Documentation: []Text{" Cannot restore to nonexisting or alive contract."}}, ErrorMetadataV8{Name: "InvalidTombstone", Documentation: []Text{" Tombstones don't match."}}, ErrorMetadataV8{Name: "InvalidContractOrigin", Documentation: []Text{" An origin TrieId written in the current block."}}}}, ModuleMetadataV10{Name: "Sudo", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Sudo", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Key", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The `AccountId` of the sudo key."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "sudo", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "Box"}}, Documentation: []Text{" Authenticates the sudo key and dispatches a function call with `Root` origin.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB write (event).", " - Unknown weight of derivative `proposal` execution.", " # "}}, FunctionMetadataV4{Name: "set_key", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "::Source"}}, Documentation: []Text{" Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change.", " # "}}, FunctionMetadataV4{Name: "sudo_as", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "::Source"}, FunctionArgumentMetadata{Name: "proposal", Type: "Box"}}, Documentation: []Text{" Authenticates the sudo key and dispatches a function call with `Signed` origin from", " a given account.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB write (event).", " - Unknown weight of derivative `proposal` execution.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Sudid", Args: []Type{"bool"}, Documentation: []Text{" A sudo just took place."}}, EventMetadataV4{Name: "KeyChanged", Args: []Type{"AccountId"}, Documentation: []Text{" The sudoer just switched identity; the old key is supplied."}}, EventMetadataV4{Name: "SudoAsDone", Args: []Type{"bool"}, Documentation: []Text{" A sudo just took place."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "RequireSudo", Documentation: []Text{" Sender must be the Sudo account"}}}}, ModuleMetadataV10{Name: "ImOnline", HasStorage: true, Storage: StorageMetadataV10{Prefix: "ImOnline", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "GossipAt", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The block number when we should gossip."}}, StorageFunctionMetadataV10{Name: "Keys", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of keys that may issue a heartbeat."}}, StorageFunctionMetadataV10{Name: "ReceivedHeartbeats", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "SessionIndex", Key2: "AuthIndex", Value: "Vec", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" For each session index, we keep a mapping of `AuthIndex`", " to `offchain::OpaqueNetworkState`."}}, StorageFunctionMetadataV10{Name: "AuthoredBlocks", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "SessionIndex", Key2: "T::ValidatorId", Value: "u32", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" For each session index, we keep a mapping of `T::ValidatorId` to the", " number of blocks authored by the given authority."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "heartbeat", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "heartbeat", Type: "Heartbeat"}, FunctionArgumentMetadata{Name: "_signature", Type: "::Signature"}}, Documentation: []Text(nil)}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "HeartbeatReceived", Args: []Type{"AuthorityId"}, Documentation: []Text{" A new heartbeat was received from `AuthorityId`"}}, EventMetadataV4{Name: "AllGood", Args: []Type(nil), Documentation: []Text{" At the end of the session, no offence was committed."}}, EventMetadataV4{Name: "SomeOffline", Args: []Type{"Vec"}, Documentation: []Text{" At the end of the session, at least once validator was found to be offline."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidKey", Documentation: []Text{" Non existent public key."}}, ErrorMetadataV8{Name: "DuplicatedHeartbeat", Documentation: []Text{" Duplicated heartbeat."}}}}, ModuleMetadataV10{Name: "AuthorityDiscovery", HasStorage: false, Storage: StorageMetadataV10{Prefix: "", Items: []StorageFunctionMetadataV10(nil)}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Offences", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Offences", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Reports", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReportIdOf", Value: "OffenceDetails", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The primary structure that holds all offence records keyed by report identifiers."}}, StorageFunctionMetadataV10{Name: "ConcurrentReportsIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "Kind", Key2: "OpaqueTimeSlot", Value: "Vec>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A vector of reports of the same kind that happened at the same time slot."}}, StorageFunctionMetadataV10{Name: "ReportsByKindIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "Kind", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Enumerates all reports of a kind along with the time they happened.", "", " All reports are sorted by the time of offence.", "", " Note that the actual type of this mapping is `Vec`, this is because values of", " different types are not supported at the moment so we are doing the manual serialization."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Offence", Args: []Type{"Kind", "OpaqueTimeSlot"}, Documentation: []Text{" There is an offence reported of the given `kind` happened at the `session_index` and", " (kind-specific) time slot. This event is not deposited for duplicate slashes."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "RandomnessCollectiveFlip", HasStorage: true, Storage: StorageMetadataV10{Prefix: "RandomnessCollectiveFlip", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "RandomMaterial", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Series of block headers from the last 81 blocks that acts as random seed material. This", " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", " the oldest hash."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Nicks", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Sudo", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "NameOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "(Vec, BalanceOf)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The lookup table for names."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_name", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "name", Type: "Vec"}}, Documentation: []Text{" Set an account's name. The name should be a UTF-8-encoded string by convention, though", " we don't check it.", "", " The name may not be more than `T::MaxLength` bytes, nor less than `T::MinLength` bytes.", "", " If the account doesn't already have a name, then a fee of `ReservationFee` is reserved", " in the account.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - At most one balance operation.", " - One storage read/write.", " - One event.", " # "}}, FunctionMetadataV4{Name: "clear_name", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Clear an account's name and return the deposit. Fails if the account was not named.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - One balance operation.", " - One storage read/write.", " - One event.", " # "}}, FunctionMetadataV4{Name: "kill_name", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "::Source"}}, Documentation: []Text{" Remove an account's name and take charge of the deposit.", "", " Fails if `who` has not been named. The deposit is dealt with through `T::Slashed`", " imbalance handler.", "", " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.", "", " # ", " - O(1).", " - One unbalanced handler (probably a balance transfer)", " - One storage read/write.", " - One event.", " # "}}, FunctionMetadataV4{Name: "force_name", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "::Source"}, FunctionArgumentMetadata{Name: "name", Type: "Vec"}}, Documentation: []Text{" Set a third-party account's name with no deposit.", "", " No length checking is done on the name.", "", " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.", "", " # ", " - O(1).", " - At most one balance operation.", " - One storage read/write.", " - One event.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NameSet", Args: []Type{"AccountId"}, Documentation: []Text{" A name was set."}}, EventMetadataV4{Name: "NameForced", Args: []Type{"AccountId"}, Documentation: []Text{" A name was forcibly set."}}, EventMetadataV4{Name: "NameChanged", Args: []Type{"AccountId"}, Documentation: []Text{" A name was changed."}}, EventMetadataV4{Name: "NameCleared", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A name was cleared, and the given balance returned."}}, EventMetadataV4{Name: "NameKilled", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A name was removed and the given balance slashed."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "ReservationFee", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Reservation fee."}}, ModuleConstantMetadataV6{Name: "MinLength", Type: "u32", Value: Bytes{0x3, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum length a name may be."}}, ModuleConstantMetadataV6{Name: "MaxLength", Type: "u32", Value: Bytes{0x10, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum length a name may be."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "TooShort", Documentation: []Text{" A name is too short."}}, ErrorMetadataV8{Name: "TooLong", Documentation: []Text{" A name is too long."}}, ErrorMetadataV8{Name: "Unnamed", Documentation: []Text{" An account in't named."}}}}}}} //nolint:lll,dupl - -// ExamplaryMetadataV10String is example metadata v10 encoded in a hex string -var ExamplaryMetadataV10String = "0x6d6574610a641853797374656d011853797374656d34304163636f756e744e6f6e636501010130543a3a4163636f756e74496420543a3a496e646578001000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e4c416c6c45787472696e73696373576569676874000018576569676874040004150120546f74616c2077656967687420666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101010c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730102010828291c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e010400342501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e002d0120546865206669727374206b657920736572766573206e6f20707572706f73652e2054686973206669656c64206973206465636c6172656420617320646f75626c655f6d6170206a757374a820666f7220636f6e76656e69656e6365206f66207573696e67206072656d6f76655f707265666978602e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e011c2866696c6c5f626c6f636b0004210120412062696720646973706174636820746861742077696c6c20646973616c6c6f7720616e79206f74686572207472616e73616374696f6e20746f20626520696e636c756465642e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697804187072656669780c4b6579041501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e01084045787472696e7369635375636365737304304469737061746368496e666f049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f045420416e2065787472696e736963206661696c65642e00001c5574696c697479011c5574696c69747904244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e0114146261746368041463616c6c735c5665633c3c542061732054726169743e3a3a43616c6c3e48802053656e642061206261746368206f662064697370617463682063616c6c732e00ec20546869732077696c6c206578656375746520756e74696c20746865206669727374206f6e65206661696c7320616e64207468656e2073746f702e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e002c2023203c7765696768743ea4202d205468652073756d206f66207468652077656967687473206f6620746865206063616c6c73602e34202d204f6e65206576656e742e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e1861735f7375620814696e6465780c7531361063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e1ce02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e70202d2054686520776569676874206f6620746865206063616c6c602e302023203c2f7765696768743e2061735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3ea4590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e005101205061796d656e743a20604d756c74697369674465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573610120607468726573686f6c64602074696d657320604d756c74697369674465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66f4202020604d756c74697369674465706f73697442617365202b207468726573686f6c64202a204d756c74697369674465706f736974466163746f72602e302023203c2f7765696768743e40617070726f76655f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d80590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e005101205061796d656e743a20604d756c74697369674465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573610120607468726573686f6c64602074696d657320604d756c74697369674465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66f4202020604d756c74697369674465706f73697442617365202b207468726573686f6c64202a204d756c74697369674465706f736974466163746f72602e302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d5859012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e302023203c2f7765696768743e0118404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734c2077656c6c20617320746865206572726f722e384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e2c4e65774d756c746973696708244163636f756e744964244163636f756e7449640849012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e20466972737420706172616d20697320746865206163636f756e74207468617420697320617070726f76696e672c80207365636f6e6420697320746865206d756c7469736967206163636f756e742e404d756c7469736967417070726f76616c0c244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449640859012041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e20466972737420706172616d20697320746865206163636f756e742074686174206973a820617070726f76696e672c20746869726420697320746865206d756c7469736967206163636f756e742e404d756c7469736967457865637574656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e744964384469737061746368526573756c74082d012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e20466972737420706172616d20697320746865206163636f756e742074686174206973a820617070726f76696e672c20746869726420697320746865206d756c7469736967206163636f756e742e444d756c746973696743616e63656c6c65640c244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449640831012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e20466972737420706172616d20697320746865206163636f756e742074686174206973ac2063616e63656c6c696e672c20746869726420697320746865206d756c7469736967206163636f756e742e00001042616265011042616265242845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401000c75363420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401000c75363420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100205b75383b2033325d80000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e384e65787452616e646f6d6e6573730100205b75383b2033325d800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101010c753332345665633c5b75383b2033325d3e000400002c496e697469616c697a65640000204d6179626556726604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e010000083445706f63684475726174696f6e0c75363420c800000000000000080d0120546865206e756d626572206f66202a2a736c6f74732a2a207468617420616e2065706f63682074616b65732e20576520636f75706c652073657373696f6e7320746ffc2065706f6368732c20692e652e2077652073746172742061206e65772073657373696f6e206f6e636520746865206e65772065706f636820626567696e732e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e002454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e245820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0028417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e1c496e6469636573011c496e6469636573082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d5365740101013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e00002042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c56657374696e6700010130543a3a4163636f756e744964ac56657374696e675363686564756c653c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e00750120606672616d655f73797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e00650120606672616d655f73797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b7301010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e64d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642edc2020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765725901202020202060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e6365646020616e642060543a3a4f6e4672656542616c616e63655a65726f3a3a6f6e5f667265655f62616c616e63655f7a65726f602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e00302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e349420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e0851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e4d6f64756c652e68746d6c236d6574686f642e7472616e736665720114284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7408244163636f756e7449641c42616c616e6365045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504c420412062616c616e6365207761732073657420627920726f6f74202877686f2c20667265652c207265736572766564292e1c4465706f73697408244163636f756e7449641c42616c616e636504dc20536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e0c484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e7366657246656528543a3a42616c616e6365400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656528543a3a42616c616e6365400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c204f766572666c6f77047420476f7420616e206f766572666c6f7720616674657220616464696e674c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d6578697374485472616e73616374696f6e5061796d656e74012042616c616e63657304444e6578744665654d756c7469706c6965720100284d756c7469706c69657220000000000000000000000008485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e001c5374616b696e67011c5374616b696e67683856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010130543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010130543a3a4163636f756e7449643856616c696461746f72507265667301040004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010130543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e01040010650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e003501204e4f54453a206973207072697661746520736f20746861742077652063616e20656e73757265207570677261646564206265666f726520616c6c207479706963616c2061636365737365732ed8204469726563742073746f7261676520415049732063616e207374696c6c2062797061737320746869732070726f74656374696f6e2e1c5374616b65727301010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c000000104d01204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e277420697465726174651901207468726f7567682076616c696461746f727320686572652c2062757420796f752063616e2066696e64207468656d20696e207468652053657373696f6e206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010020457261496e6465781000000000045c205468652063757272656e742065726120696e6465782e3c43757272656e74457261537461727401002c4d6f6d656e744f663c543e200000000000000000047820546865207374617274206f66207468652063757272656e74206572612e6c43757272656e74457261537461727453657373696f6e496e64657801003053657373696f6e496e646578100000000004d0205468652073657373696f6e20696e646578206174207768696368207468652063757272656e742065726120737461727465642e5843757272656e74457261506f696e74734561726e6564010024457261506f696e7473140000000000040d01205265776172647320666f72207468652063757272656e74206572612e205573696e6720696e6469636573206f662063757272656e7420656c6563746564207365742e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e20466f72636545726101001c466f7263696e670400041d01205472756520696620746865206e6578742073657373696f6e206368616e67652077696c6c2062652061206e657720657261207265676172646c657373206f6620696e6465782e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010120457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04000425012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e4c56616c696461746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2903040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e03040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010130543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101018c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e3853746f7261676556657273696f6e01000c75333210000000000490205468652076657273696f6e206f662073746f7261676520666f7220757067726164652e014010626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e3c65012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e006d01204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e656420756e6c65737325012074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3865012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652ea501202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c656420766961206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e28203c2f7765696768743e4477697468647261775f756e626f6e64656400402d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f7250726566732ce8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e2501202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f66206074617267657473602c982077686963682069732063617070656420617420604d41585f4e4f4d494e4154494f4e53602ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965654452657761726444657374696e6174696f6e2cb8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c90202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e6f5f657261730014b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e34666f7263655f6e65775f65726100184d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e34666f7263655f756e7374616b650414737461736830543a3a4163636f756e744964040d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e50666f7263655f6e65775f6572615f616c776179730014050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e002c2023203c7765696768743e50202d204f6e652073746f72616765207772697465302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e1c45012043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e2043616e2062652063616c6c6564206279206569746865722074686520726f6f74206f726967696e206f7270207468652060543a3a536c61736843616e63656c4f726967696e602e05012070617373696e67207468652065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e54202d204f6e652073746f726167652077726974652e302023203c2f7765696768743e010c18526577617264081c42616c616e63651c42616c616e636508510120416c6c2076616c696461746f72732068617665206265656e207265776172646564206279207468652066697273742062616c616e63653b20746865207365636f6e64206973207468652072656d61696e6465728c2066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e14536c61736808244163636f756e7449641c42616c616e6365042501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6448206e6f742062652070726f6365737365642e083853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e24344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e44496e73756666696369656e7456616c756504cc2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e1c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b6579730002051c5665633c75383e38543a3a56616c696461746f7249641c543a3a4b657973010400109c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e204b65794f776e65720002051c5665633c75383e50284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496401040010250120546865206f776e6572206f662061206b65792e20546865207365636f6e64206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e0104207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e28e42053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b6579602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e88202d204f286c6f67206e2920696e206e756d626572206f66206163636f756e74732e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e044044454455505f4b45595f50524546495814265b75385d38343a73657373696f6e3a6b6579730865012055736564206173206669727374206b657920666f7220604e6578744b6579736020616e6420604b65794f776e65726020746f2070757420616c6c20746865206461746120696e746f207468652073616d65206272616e636834206f662074686520747269652e0c30496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e2444656d6f6372616379012444656d6f6372616379403c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e24507265696d616765730001011c543a3a48617368d4285665633c75383e2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d62657229000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e244465706f7369744f660001012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001013c5265666572656e64756d496e6465789c5265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173683e00040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e34446973706174636851756575650100bc5665633c28543a3a426c6f636b4e756d6265722c20543a3a486173682c205265666572656e64756d496e646578293e0400044101205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e2053746f726564206f72646572656420627920626c6f636b206e756d6265722e24566f74657273466f720101013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f660101017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f7465000400106101204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c794d012069662060766f746572735f666f726020696e636c756465732074686520766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468655d012064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b2060766f746572735f666f72602c207468656e20796f752063616ef420616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e2c44656c65676174696f6e7301010130543a3a4163636f756e7449646828543a3a4163636f756e7449642c20436f6e76696374696f6e2901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101011c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e01541c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e80202d2054776f204442206368616e6765732c206f6e6520444220656e7472792e302023203c2f7765696768743e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e2870726f78795f766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c510120566f746520696e2061207265666572656e64756d206f6e20626568616c66206f6620612073746173682e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374f8207468652070726f706f73616c3b20206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578085101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368083101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a48617368145901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e6065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a48617368144901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e28666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d626572245101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9820202060456d657267656e6379566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736804bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e64657804a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e247365745f70726f7879041470726f787930543a3a4163636f756e7449641498205370656369667920612070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3072657369676e5f70726f787900149820436c656172207468652070726f78792e2043616c6c6564206279207468652070726f78792e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e3072656d6f76655f70726f7879041470726f787930543a3a4163636f756e744964149820436c656172207468652070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e2064656c65676174650808746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e143c2044656c656761746520766f74652e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e28756e64656c656761746500144420556e64656c656761746520766f74652e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e58636c6561725f7075626c69635f70726f706f73616c7300040101205665746f20616e6420626c61636b6c697374207468652070726f706f73616c20686173682e204d7573742062652066726f6d20526f6f74206f726967696e2e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e0861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e0845012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265b420696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e34726561705f707265696d616765043470726f706f73616c5f686173681c543a3a4861736814f42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e01402050726f706f736564082450726f70496e6465781c42616c616e636504c02041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e04dc2041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404602041207265666572656e64756d2068617320626567756e2e18506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f74506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c6564043c5265666572656e64756d496e64657804842041207265666572656e64756d20686173206265656e2063616e63656c6c65642e204578656375746564083c5265666572656e64756d496e64657810626f6f6c047420412070726f706f73616c20686173206265656e20656e61637465642e2444656c65676174656408244163636f756e744964244163636f756e74496404e020416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404244163636f756e74496404e820416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d626572049820416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504e020412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636504150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964045d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c6563746564206279207468652072656170657220286c617374206974656d292e1c3c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e54456d657267656e6379566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e582056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f74206578697374204e6f7450726f78790430204e6f7420612070726f787920426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c20747769636530416c726561647950726f7879044020416c726561647920612070726f78792857726f6e6750726f787904302057726f6e672070726f7879304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e74144561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e671c436f756e63696c014c496e7374616e636531436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0018244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642148546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0018244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642124456c656374696f6e73014050687261676d656e456c656374696f6e181c4d656d626572730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e040004f0205468652063757272656e7420656c6563746564206d656d626572736869702e20536f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400044901205468652063757272656e742072756e6e6572735f75702e20536f72746564206261736564206f6e206c6f7720746f2068696768206d657269742028776f72736520746f20626573742072756e6e6572292e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e1c566f7465734f6601010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004010120566f746573206f66206120706172746963756c617220766f7465722c20776974682074686520726f756e6420696e646578206f662074686520766f7465732e1c5374616b654f6601010130543a3a4163636f756e7449643042616c616e63654f663c543e0040000000000000000000000000000000000464204c6f636b6564207374616b65206f66206120766f7465722e2843616e646964617465730100445665633c543a3a4163636f756e7449643e0400086501205468652070726573656e742063616e646964617465206c6973742e20536f72746564206261736564206f6e206163636f756e742069642e20412063757272656e74206d656d6265722063616e206e6576657220656e7465720101207468697320766563746f7220616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e3c050120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792eac2020202d206265206c657373207468616e20746865206e756d626572206f662063616e646964617465732e005d012055706f6e20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e64206120626f6e6420616d6f756e742069732072657365727665642e5d012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f206e6f7420706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865206c6f636ba020616e64206b65657020736f6d6520666f722066757274686572207472616e73616374696f6e732e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f283129c8205772697465733a204f28562920676976656e2060566020766f7465732e205620697320626f756e6465642062792031362e302023203c2f7765696768743e3072656d6f76655f766f746572001c21012052656d6f766520606f726967696e60206173206120766f7465722e20546869732072656d6f76657320746865206c6f636b20616e642072657475726e732074686520626f6e642e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f28312934205772697465733a204f283129302023203c2f7765696768743e507265706f72745f646566756e63745f766f74657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d01205265706f727420607461726765746020666f72206265696e6720616e20646566756e637420766f7465722e20496e2063617365206f6620612076616c6964207265706f72742c20746865207265706f727465722069735d012072657761726465642062792074686520626f6e6420616d6f756e74206f662060746172676574602e204f74686572776973652c20746865207265706f7274657220697473656c662069732072656d6f76656420616e645c20746865697220626f6e6420697320736c61736865642e0088204120646566756e637420766f74657220697320646566696e656420746f2062653a4d012020202d206120766f7465722077686f73652063757272656e74207375626d697474656420766f7465732061726520616c6c20696e76616c69642e20692e652e20616c6c206f66207468656d20617265206e6fb420202020206c6f6e67657220612063616e646964617465206e6f7220616e20616374697665206d656d6265722e002c2023203c7765696768743e2c202323232320537461746515012052656164733a204f284e4c6f674d2920676976656e204d2063757272656e742063616e6469646174657320616e64204e20766f74657320666f722060746172676574602e34205772697465733a204f283129302023203c2f7765696768743e407375626d69745f63616e646964616379003478205375626d6974206f6e6573656c6620666f722063616e6469646163792e006420412063616e6469646174652077696c6c206569746865723aec2020202d204c6f73652061742074686520656e64206f6620746865207465726d20616e6420666f7266656974207468656972206465706f7369742e2d012020202d2057696e20616e64206265636f6d652061206d656d6265722e204d656d626572732077696c6c206576656e7475616c6c7920676574207468656972207374617368206261636b2e55012020202d204265636f6d6520612072756e6e65722d75702e2052756e6e6572732d75707320617265207265736572766564206d656d6265727320696e2063617365206f6e65206765747320666f72636566756c6c7934202020202072656d6f7665642e002c2023203c7765696768743e2c20232323232053746174658c2052656164733a204f284c6f674e2920476976656e204e2063616e646964617465732e34205772697465733a204f283129302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379002451012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a4101202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c2074686520626f6e64206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e5901202d20606f726967696e6020697320612063757272656e742072756e6e65722075702e20496e207468697320636173652c2074686520626f6e6420697320756e72657365727665642c2072657475726e656420616e64842020206f726967696e2069732072656d6f76656420617320612072756e6e65722e4d01202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c2074686520626f6e6420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f766f746572605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c7920757365642e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865f4206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20726f756e6420697320737461727465642e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e2c2023232323205374617465582052656164733a204f28646f5f70687261676d656e295c205772697465733a204f28646f5f70687261676d656e29302023203c2f7765696768743e01141c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e0855012041206e6577207465726d2077697468206e6577206d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e6469646174657320657869737465642c206e6f742074686174450120656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e656420666f72207468697320707572706f73652e24456d7074795465726d0004d8204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e304d656d6265724b69636b656404244163636f756e7449640845012041206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f74342060456d7074795465726d602e3c4d656d62657252656e6f756e63656404244163636f756e74496404a02041206d656d626572206861732072656e6f756e6365642074686569722063616e6469646163792e34566f7465725265706f727465640c244163636f756e744964244163636f756e74496410626f6f6c086101204120766f7465722028666972737420656c656d656e742920776173207265706f72746564202862797420746865207365636f6e6420656c656d656e742920776974682074686520746865207265706f7274206265696e678c207375636365737366756c206f72206e6f742028746869726420656c656d656e74292e143443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d030000000000000000000028566f74696e67426f6e643042616c616e63654f663c543e4000407a10f35a000000000000000000000038446573697265644d656d626572730c753332100d00000000404465736972656452756e6e65727355700c753332100700000000305465726d4475726174696f6e38543a3a426c6f636b4e756d6265721080130300003830556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3052756e6e65725375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e34496e76616c69644f726967696e04c8204f726967696e206973206e6f7420612063616e6469646174652c206d656d626572206f7220612072756e6e65722075702e244e6f744d656d6265720438204e6f742061206d656d6265722e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970041c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e0114286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00b4204d6179206f6e6c792062652063616c6c65642066726f6d20604164644f726967696e60206f7220726f6f742e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00c0204d6179206f6e6c792062652063616c6c65642066726f6d206052656d6f76654f726967696e60206f7220726f6f742e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e7449640cc02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00b8204d6179206f6e6c792062652063616c6c65642066726f6d2060537761704f726967696e60206f7220726f6f742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00bc204d6179206f6e6c792062652063616c6c65642066726f6d206052657365744f726967696e60206f7220726f6f742e286368616e67655f6b6579040c6e657730543a3a4163636f756e7449640cd82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e00003c46696e616c697479547261636b65720001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d626572106500000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657210e8030000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e0838416c72656164795570646174656404c82046696e616c2068696e74206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b1c42616448696e7404902046696e616c697a6564206865696768742061626f766520626c6f636b206e756d6265721c4772616e647061013c4772616e64706146696e616c6974791c2c417574686f726974696573010034417574686f726974794c6973740400102c20444550524543415445440061012054686973207573656420746f2073746f7265207468652063757272656e7420617574686f72697479207365742c20776869636820686173206265656e206d6967726174656420746f207468652077656c6c2d6b6e6f776e94204752414e4450415f415554484f52495445535f4b455920756e686173686564206b65792e14537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001011453657449643053657373696f6e496e64657800040004c1012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f7220776869636820697473206d656d62657273207765726520726573706f6e7369626c652e0104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e010c384e6577417574686f7269746965730434417574686f726974794c6973740490204e657720617574686f726974792073657420686173206265656e206170706c6965642e1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e00102c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e205472656173757279012054726561737572790c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e94202d204f6e65204442206368616e67652c206f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e1cfc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e205d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e011c2050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504b420412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f736974041c42616c616e6365048020536f6d652066756e64732068617665206265656e206465706f73697465642e103050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3042616c616e63654f663c543e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e0870496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e50496e76616c696450726f706f73616c496e646578046c204e6f2070726f706f73616c206174207468617420696e6465782e24436f6e7472616374730120436f6e74726163741c204761735370656e7401000c476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100205363686564756c65c5010000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af000000000000000100000000000000010000000000000004000000000001001000000000400000002000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001012c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010130543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e20476173507269636501003042616c616e63654f663c543e4001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e01143c7570646174655f7363686564756c6504207363686564756c65205363686564756c650cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d697430436f6d706163743c4761733e10636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e74696174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28bd0120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e0118205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365046901205472616e736665722068617070656e6564206066726f6d6020746f2060746f60207769746820676976656e206076616c7565602061732070617274206f662061206063616c6c60206f722060696e7374616e7469617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e20436f6e747261637408244163636f756e7449641c5665633c75383e048c20416e206576656e742066726f6d20636f6e7472616374206f66206163636f756e742e404c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f66667365740c75333210080000000851012053697a65206f66206120636f6e7472616374206174207468652074696d65206f6620696e7374616e746961696f6e2e205468697320697320612073696d706c652077617920746f20656e737572652074686174a420656d70747920636f6e747261637473206576656e7475616c6c7920676574732064656c657465642e2c52656e74427974654665653042616c616e63654f663c543e4000407a10f35a00000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f66667365743042616c616e63654f663c543e4000008a5d7845630100000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c5375726368617267655265776172643042616c616e63654f663c543e400080a1a76b4a3500000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e2c5472616e736665724665653042616c616e63654f663c543e400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e4665653042616c616e63654f663c543e400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c436f6e74726163744665653042616c616e63654f663c543e400010a5d4e80000000000000000000000084101205468652066656520726571756972656420746f20696e7374616e7469617465206120636f6e747261637420696e7374616e63652e204120726561736f6e61626c652064656661756c742076616c75651c2069732032312e2c43616c6c426173654665650c47617320e803000000000000081d0120546865206261736520666565206368617267656420666f722063616c6c696e6720696e746f206120636f6e74726163742e204120726561736f6e61626c652064656661756c74382076616c7565206973203133352e48496e7374616e7469617465426173654665650c47617320e80300000000000008390120546865206261736520666565206368617267656420666f7220696e7374616e74696174696e67206120636f6e74726163742e204120726561736f6e61626c652064656661756c742076616c756520206973203137352e204d617844657074680c753332102000000008310120546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f696e7374616e746961746520737461636b2e204120726561736f6e61626c652064656661756c74382076616c7565206973203130302e304d617856616c756553697a650c753332100040000004390120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520696e2062797465732e204120726561736f6e61626c652064656661756c74206973203136204b69422e34426c6f636b4761734c696d69740c47617320809698000000000008250120546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204120726561736f6e61626c65742064656661756c742076616c75652069732031305f3030305f3030302e1858496e76616c69645363686564756c6556657273696f6e0405012041206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e54496e76616c6964537572636861726765436c61696d04550120416e206f726967696e206d757374206265207369676e6564206f7220696e686572656e7420616e6420617578696c696172792073656e646572206f6e6c792070726f7669646564206f6e20696e686572656e742e54496e76616c6964536f75726365436f6e747261637404dc2043616e6e6f7420726573746f72652066726f6d206e6f6e6578697374696e67206f7220746f6d6273746f6e6520636f6e74726163742e68496e76616c696444657374696e6174696f6e436f6e747261637404c42043616e6e6f7420726573746f726520746f206e6f6e6578697374696e67206f7220616c69766520636f6e74726163742e40496e76616c6964546f6d6273746f6e65046020546f6d6273746f6e657320646f6e2774206d617463682e54496e76616c6964436f6e74726163744f726967696e04bc20416e206f726967696e20547269654964207772697474656e20696e207468652063757272656e7420626c6f636b2e105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e010c107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652070726f706f73616c40426f783c543a3a50726f706f73616c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e010c1453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e650410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e7420496d4f6e6c696e650120496d4f6e6c696e651020476f737369704174010038543a3a426c6f636b4e756d626572100000000004a02054686520626c6f636b206e756d626572207768656e2077652073686f756c6420676f737369702e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002013053657373696f6e496e6465782441757468496e6465781c5665633c75383e01040008e420466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e646578608c20746f20606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102013053657373696f6e496e64657838543a3a56616c696461746f7249640c75333201100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f662060543a3a56616c696461746f7249646020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500010c444865617274626561745265636569766564042c417574686f72697479496404c02041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964601c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e0431012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e63652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e48417574686f72697479446973636f76657279000100000000204f6666656e63657301204f6666656e6365730c1c5265706f727473000101345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010201104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010101104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e636508104b696e64384f706171756554696d65536c6f7408550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e00006052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e0100000000144e69636b7301105375646f04184e616d654f6600010130543a3a4163636f756e7449645c285665633c75383e2c2042616c616e63654f663c543e29000400047020546865206c6f6f6b7570207461626c6520666f72206e616d65732e0110207365745f6e616d6504106e616d651c5665633c75383e405d012053657420616e206163636f756e742773206e616d652e20546865206e616d652073686f756c642062652061205554462d382d656e636f64656420737472696e6720627920636f6e76656e74696f6e2c2074686f7567684c20776520646f6e277420636865636b2069742e00610120546865206e616d65206d6179206e6f74206265206d6f7265207468616e2060543a3a4d61784c656e677468602062797465732c206e6f72206c657373207468616e2060543a3a4d696e4c656e677468602062797465732e005d0120496620746865206163636f756e7420646f65736e277420616c726561647920686176652061206e616d652c207468656e206120666565206f6620605265736572766174696f6e466565602069732072657365727665644020696e20746865206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e84202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e2e68202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e28636c6561725f6e616d650028510120436c65617220616e206163636f756e742773206e616d6520616e642072657475726e20746865206465706f7369742e204661696c7320696620746865206163636f756e7420776173206e6f74206e616d65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204f6e652062616c616e6365206f7065726174696f6e2e68202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e246b696c6c5f6e616d6504187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636534e42052656d6f766520616e206163636f756e742773206e616d6520616e642074616b6520636861726765206f6620746865206465706f7369742e004901204661696c73206966206077686f6020686173206e6f74206265656e206e616d65642e20546865206465706f736974206973206465616c742077697468207468726f7567682060543a3a536c6173686564604c20696d62616c616e63652068616e646c65722e00310120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f206f72206d617463682060543a3a466f7263654f726967696e602e002c2023203c7765696768743e20202d204f2831292edc202d204f6e6520756e62616c616e6365642068616e646c6572202870726f6261626c7920612062616c616e6365207472616e736665722968202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e28666f7263655f6e616d6508187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106e616d651c5665633c75383e30c82053657420612074686972642d7061727479206163636f756e742773206e616d652077697468206e6f206465706f7369742e00a0204e6f206c656e67746820636865636b696e6720697320646f6e65206f6e20746865206e616d652e00310120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f206f72206d617463682060543a3a466f7263654f726967696e602e002c2023203c7765696768743e20202d204f2831292e84202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e2e68202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e01141c4e616d6553657404244163636f756e74496404402041206e616d6520776173207365742e284e616d65466f7263656404244163636f756e74496404642041206e616d652077617320666f726369626c79207365742e2c4e616d654368616e67656404244163636f756e74496404502041206e616d6520776173206368616e6765642e2c4e616d65436c656172656408244163636f756e7449641c42616c616e636504d02041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e284e616d654b696c6c656408244163636f756e7449641c42616c616e636504c82041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e0c385265736572766174696f6e4665653042616c616e63654f663c543e4000407a10f35a000000000000000000000444205265736572766174696f6e206665652e244d696e4c656e6774680c7533321003000000048820546865206d696e696d756d206c656e6774682061206e616d65206d61792062652e244d61784c656e6774680c7533321010000000048820546865206d6178696d756d206c656e6774682061206e616d65206d61792062652e0c20546f6f53686f727404542041206e616d6520697320746f6f2073686f72742e1c546f6f4c6f6e6704502041206e616d6520697320746f6f206c6f6e672e1c556e6e616d6564045c20416e206163636f756e7420696e2774206e616d65642e" //nolint:lll - -// ExamplaryMetadataV10Polkadot is example metadata v10 from Polkadot -var ExamplaryMetadataV10Polkadot = &Metadata{MagicNumber: 0x6174656d, Version: 0xa, AsMetadataV4: MetadataV4{Modules: []ModuleMetadataV4(nil)}, AsMetadataV7: MetadataV7{Modules: []ModuleMetadataV7(nil)}, AsMetadataV8: MetadataV8{Modules: []ModuleMetadataV8(nil)}, AsMetadataV9: MetadataV9{Modules: []ModuleMetadataV8(nil)}, AsMetadataV10: MetadataV10{Modules: []ModuleMetadataV10{ModuleMetadataV10{Name: "System", HasStorage: true, Storage: StorageMetadataV10{Prefix: "System", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "AccountNonce", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Index", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Extrinsics nonce for accounts."}}, StorageFunctionMetadataV10{Name: "ExtrinsicCount", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total extrinsics count for the current block."}}, StorageFunctionMetadataV10{Name: "AllExtrinsicsWeight", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Weight", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total weight for all extrinsics put together, for the current block."}}, StorageFunctionMetadataV10{Name: "AllExtrinsicsLen", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total length (in bytes) for all extrinsics put together, for the current block."}}, StorageFunctionMetadataV10{Name: "BlockHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::BlockNumber", Value: "T::Hash", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Map of block numbers to block hashes."}}, StorageFunctionMetadataV10{Name: "ExtrinsicData", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "u32", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Extrinsics data for the current block (maps an extrinsic's index to its data)."}}, StorageFunctionMetadataV10{Name: "Number", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current block number being processed. Set by `execute_block`."}}, StorageFunctionMetadataV10{Name: "ParentHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Hash of the previous block."}}, StorageFunctionMetadataV10{Name: "ExtrinsicsRoot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Extrinsics root of the current block, also part of the block header."}}, StorageFunctionMetadataV10{Name: "Digest", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "DigestOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Digest of the current block, also part of the block header."}}, StorageFunctionMetadataV10{Name: "Events", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Events deposited for the current block."}}, StorageFunctionMetadataV10{Name: "EventCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "EventIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of events in the `Events` list."}}, StorageFunctionMetadataV10{Name: "EventTopics", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "Vec<(T::BlockNumber, EventIndex)>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Mapping between a topic (represented by T::Hash) and a vector of indexes", " of events in the `>` list.", "", " All topic vectors have deterministic storage locations depending on the topic. This", " allows light-clients to leverage the changes trie storage tracking mechanism and", " in case of changes fetch the list of events of interest.", "", " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", " the `EventIndex` then in case if the topic has the same contents on the next block", " no notification will be triggered thus the event might be lost."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "fill_block", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" A big dispatch that will disallow any other transaction to be included."}}, FunctionMetadataV4{Name: "remark", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "_remark", Type: "Vec"}}, Documentation: []Text{" Make some on-chain remark."}}, FunctionMetadataV4{Name: "set_heap_pages", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "pages", Type: "u64"}}, Documentation: []Text{" Set the number of pages in the WebAssembly environment's heap."}}, FunctionMetadataV4{Name: "set_code", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "Vec"}}, Documentation: []Text{" Set the new code."}}, FunctionMetadataV4{Name: "set_storage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "items", Type: "Vec"}}, Documentation: []Text{" Set some items of storage."}}, FunctionMetadataV4{Name: "kill_storage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "keys", Type: "Vec"}}, Documentation: []Text{" Kill some items from storage."}}, FunctionMetadataV4{Name: "kill_prefix", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "prefix", Type: "Key"}}, Documentation: []Text{" Kill all storage items with a key that starts with the given prefix."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "ExtrinsicSuccess", Args: []Type{"DispatchInfo"}, Documentation: []Text{" An extrinsic completed successfully."}}, EventMetadataV4{Name: "ExtrinsicFailed", Args: []Type{"DispatchError", "DispatchInfo"}, Documentation: []Text{" An extrinsic failed."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "RandomnessCollectiveFlip", HasStorage: true, Storage: StorageMetadataV10{Prefix: "RandomnessCollectiveFlip", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "RandomMaterial", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Series of block headers from the last 81 blocks that acts as random seed material. This", " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", " the oldest hash."}}}}, HasCalls: false, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Babe", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Babe", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "EpochIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current epoch index."}}, StorageFunctionMetadataV10{Name: "Authorities", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(AuthorityId, BabeAuthorityWeight)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Current epoch authorities."}}, StorageFunctionMetadataV10{Name: "GenesisSlot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The slot at which the first epoch actually started. This is 0", " until the first block of the chain."}}, StorageFunctionMetadataV10{Name: "CurrentSlot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current slot number."}}, StorageFunctionMetadataV10{Name: "Randomness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "[u8; 32]", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The epoch randomness for the *current* epoch.", "", " # Security", "", " This MUST NOT be used for gambling, as it can be influenced by a", " malicious validator in the short term. It MAY be used in many", " cryptographic protocols, however, so long as one remembers that this", " (like everything else on-chain) it is public. For example, it can be", " used where a number is needed that cannot have been chosen by an", " adversary, for purposes such as public-coin zero-knowledge proofs."}}, StorageFunctionMetadataV10{Name: "NextRandomness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "[u8; 32]", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Next epoch randomness."}}, StorageFunctionMetadataV10{Name: "SegmentIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Randomness under construction.", "", " We make a tradeoff between storage accesses and list length.", " We store the under-construction randomness in segments of up to", " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", "", " Once a segment reaches this length, we begin the next one.", " We reset all segments and return to `0` at the beginning of every", " epoch."}}, StorageFunctionMetadataV10{Name: "UnderConstruction", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "u32", Value: "Vec<[u8; 32]>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}, StorageFunctionMetadataV10{Name: "Initialized", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "MaybeVrf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Temporary value (cleared at block finalization) which is `Some`", " if per-block initialization has already been called for current block."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "EpochDuration", Type: "u64", Value: Bytes{0x58, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of **slots** that an epoch takes. We couple sessions to", " epochs, i.e. we start a new session once the new epoch begins."}}, ModuleConstantMetadataV6{Name: "ExpectedBlockTime", Type: "T::Moment", Value: Bytes{0x70, 0x17, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The expected average block time at which BABE should be creating", " blocks. Since BABE is probabilistic it is not trivial to figure out", " what the expected average block time should be based on the slot", " duration and the security parameter `c` (where `1 - c` represents", " the probability of a slot being empty)."}}}, Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Timestamp", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Timestamp", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Now", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::Moment", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current time for the current block."}}, StorageFunctionMetadataV10{Name: "DidUpdate", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Did the timestamp get updated in this block?"}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "now", Type: "Compact"}}, Documentation: []Text{" Set the current time.", "", " This call should be invoked exactly once per block. It will panic at the finalization", " phase, if this call hasn't been invoked by that time.", "", " The timestamp should be greater than the previous one by the amount specified by", " `MinimumPeriod`.", "", " The dispatch origin for this call must be `Inherent`."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "MinimumPeriod", Type: "T::Moment", Value: Bytes{0xb8, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum period between blocks. Beware that this is different to the *expected* period", " that the block production apparatus provides. Your chosen consensus system will generally", " work with this to determine a sensible block time. e.g. For Aura, it will be double this", " period on default settings."}}}, Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Indices", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Indices", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "NextEnumSet", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::AccountIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next free enumeration set."}}, StorageFunctionMetadataV10{Name: "EnumSet", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountIndex", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The enumeration sets."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewAccountIndex", Args: []Type{"AccountId", "AccountIndex"}, Documentation: []Text{" A new account index was assigned.", "", " This event is not triggered when an existing index is reassigned", " to another `AccountId`."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Balances", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Balances", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "TotalIssuance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::Balance", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total units issued in the system."}}, StorageFunctionMetadataV10{Name: "Vesting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "VestingSchedule", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information regarding the vesting of a given account."}}, StorageFunctionMetadataV10{Name: "FreeBalance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Balance", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The 'free' balance of a given account.", "", " This is the only balance that matters in terms of most operations on tokens. It", " alone is used to determine the balance when in the contract execution environment. When this", " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback", " is invoked, giving a chance to external modules to clean up data associated with", " the deleted account.", "", " `frame_system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", " collapsed to zero if it ever becomes less than `ExistentialDeposit`."}}, StorageFunctionMetadataV10{Name: "ReservedBalance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Balance", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of the balance of a given account that is externally reserved; this can still get", " slashed, but gets slashed last of all.", "", " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", " that are still 'owned' by the account holder, but which are suspendable.", "", " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", " is deleted: specifically, `ReservedBalance`.", "", " `frame_system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)"}}, StorageFunctionMetadataV10{Name: "Locks", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Vec>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any liquidity locks on some account balances."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact"}}, Documentation: []Text{" Transfer some liquid free balance to another account.", "", " `transfer` will set the `FreeBalance` of the sender and receiver.", " It will decrease the total issuance of the system by the `TransferFee`.", " If the sender's account is below the existential deposit as a result", " of the transfer, the account will be reaped.", "", " The dispatch origin for this call must be `Signed` by the transactor.", "", " # ", " - Dependent on arguments but not critical, given proper implementations for", " input config types. See related functions below.", " - It contains a limited number of reads and writes internally and no complex computation.", "", " Related functions:", "", " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", " - Transferring balances to accounts that did not exist before will cause", " `T::OnNewAccount::on_new_account` to be called.", " - Removing enough funds from an account will trigger", " `T::DustRemoval::on_unbalanced` and `T::OnFreeBalanceZero::on_free_balance_zero`.", " - `transfer_keep_alive` works the same way as `transfer`, but has an additional", " check that the transfer will not kill the origin account.", "", " # "}}, FunctionMetadataV4{Name: "set_balance", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "::Source"}, FunctionArgumentMetadata{Name: "new_free", Type: "Compact"}, FunctionArgumentMetadata{Name: "new_reserved", Type: "Compact"}}, Documentation: []Text{" Set the balances of a given account.", "", " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", " also decrease the total issuance of the system (`TotalIssuance`).", " If the new free or reserved balance is below the existential deposit,", " it will reset the account nonce (`frame_system::AccountNonce`).", "", " The dispatch origin for this call is `root`.", "", " # ", " - Independent of the arguments.", " - Contains a limited number of reads and writes.", " # "}}, FunctionMetadataV4{Name: "force_transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "source", Type: "::Source"}, FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact"}}, Documentation: []Text{" Exactly as `transfer`, except the origin must be root and the source account may be", " specified."}}, FunctionMetadataV4{Name: "transfer_keep_alive", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact"}}, Documentation: []Text{" Same as the [`transfer`] call, but with a check that the transfer will not kill the", " origin account.", "", " 99% of the time you want [`transfer`] instead.", "", " [`transfer`]: struct.Module.html#method.transfer"}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewAccount", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A new account was created."}}, EventMetadataV4{Name: "ReapedAccount", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" An account was reaped."}}, EventMetadataV4{Name: "Transfer", Args: []Type{"AccountId", "AccountId", "Balance", "Balance"}, Documentation: []Text{" Transfer succeeded (from, to, value, fees)."}}, EventMetadataV4{Name: "BalanceSet", Args: []Type{"AccountId", "Balance", "Balance"}, Documentation: []Text{" A balance was set by root (who, free, reserved)."}}, EventMetadataV4{Name: "Deposit", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" Some amount was deposited (e.g. for transaction fees)."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "ExistentialDeposit", Type: "T::Balance", Value: Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount required to keep an account open."}}, ModuleConstantMetadataV6{Name: "TransferFee", Type: "T::Balance", Value: Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to make a transfer."}}, ModuleConstantMetadataV6{Name: "CreationFee", Type: "T::Balance", Value: Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to create an account."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "VestingBalance", Documentation: []Text{" Vesting balance too high to send value"}}, ErrorMetadataV8{Name: "LiquidityRestrictions", Documentation: []Text{" Account liquidity restrictions prevent withdrawal"}}, ErrorMetadataV8{Name: "Overflow", Documentation: []Text{" Got an overflow after adding"}}, ErrorMetadataV8{Name: "InsufficientBalance", Documentation: []Text{" Balance too low to send value"}}, ErrorMetadataV8{Name: "ExistentialDeposit", Documentation: []Text{" Value too low to create account due to existential deposit"}}, ErrorMetadataV8{Name: "KeepAlive", Documentation: []Text{" Transfer/payment would kill account"}}, ErrorMetadataV8{Name: "ExistingVestingSchedule", Documentation: []Text{" A vesting schedule already exists for this account"}}, ErrorMetadataV8{Name: "DeadAccount", Documentation: []Text{" Beneficiary account must pre-exist"}}}}, ModuleMetadataV10{Name: "TransactionPayment", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Balances", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "NextFeeMultiplier", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Multiplier", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}}}, HasCalls: false, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "TransactionBaseFee", Type: "BalanceOf", Value: Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the base."}}, ModuleConstantMetadataV6{Name: "TransactionByteFee", Type: "BalanceOf", Value: Bytes{0x0, 0xe1, 0xf5, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the per-byte portion."}}}, Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Authorship", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Authorship", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Uncles", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Uncles"}}, StorageFunctionMetadataV10{Name: "Author", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Author of current block."}}, StorageFunctionMetadataV10{Name: "DidSetUncles", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Whether uncles were already set in this block."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_uncles", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_uncles", Type: "Vec"}}, Documentation: []Text{" Provide a set of uncles."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidUncleParent", Documentation: []Text{" The uncle parent not in the chain."}}, ErrorMetadataV8{Name: "UnclesAlreadySet", Documentation: []Text{" Uncles already set in the block."}}, ErrorMetadataV8{Name: "TooManyUncles", Documentation: []Text{" Too many uncles."}}, ErrorMetadataV8{Name: "GenesisUncle", Documentation: []Text{" The uncle is genesis."}}, ErrorMetadataV8{Name: "TooHighUncle", Documentation: []Text{" The uncle is too high in chain."}}, ErrorMetadataV8{Name: "UncleAlreadyIncluded", Documentation: []Text{" The uncle is already included."}}, ErrorMetadataV8{Name: "OldUncle", Documentation: []Text{" The uncle isn't recent enough to be included."}}}}, ModuleMetadataV10{Name: "Staking", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Staking", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "ValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The ideal number of staking participants."}}, StorageFunctionMetadataV10{Name: "MinimumValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x4, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum number of staking participants before emergency conditions are imposed."}}, StorageFunctionMetadataV10{Name: "Invulnerables", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", " easy to initialize and the performance hit is minimal (we expect no more than four", " invulnerables) and restricted to testnets."}}, StorageFunctionMetadataV10{Name: "Bonded", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all locked \"stash\" accounts to the controller account."}}, StorageFunctionMetadataV10{Name: "Ledger", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "StakingLedger>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all (unlocked) \"controller\" accounts to the info regarding the staking."}}, StorageFunctionMetadataV10{Name: "Payee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "RewardDestination", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Where the reward payment should be made. Keyed by stash."}}, StorageFunctionMetadataV10{Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "ValidatorPrefs", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The map from (wannabe) validator stash key to the preferences of that validator."}}, StorageFunctionMetadataV10{Name: "Nominators", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Nominations", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The map from nominator stash key to the set of stash keys of all validators to nominate.", "", " NOTE: is private so that we can ensure upgraded before all typical accesses.", " Direct storage APIs can still bypass this protection."}}, StorageFunctionMetadataV10{Name: "Stakers", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Exposure>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0}, Documentation: []Text{" Nominators for a particular account that is in action right now. You can't iterate", " through validators here, but you can find them in the Session module.", "", " This is keyed by the stash account."}}, StorageFunctionMetadataV10{Name: "CurrentElected", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The currently elected validator set keyed by stash account ID."}}, StorageFunctionMetadataV10{Name: "CurrentEra", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "EraIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current era index."}}, StorageFunctionMetadataV10{Name: "CurrentEraStart", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "MomentOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The start of the current era."}}, StorageFunctionMetadataV10{Name: "CurrentEraStartSessionIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "SessionIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The session index at which the current era started."}}, StorageFunctionMetadataV10{Name: "CurrentEraPointsEarned", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "EraPoints", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Rewards for the current era. Using indices of current elected set."}}, StorageFunctionMetadataV10{Name: "SlotStake", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of balance actively at stake for each validator slot, currently.", "", " This is used to derive rewards and punishments."}}, StorageFunctionMetadataV10{Name: "ForceEra", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Forcing", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the next session change will be a new era regardless of index."}}, StorageFunctionMetadataV10{Name: "SlashRewardFraction", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Perbill", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The percentage of the slash that is distributed to reporters.", "", " The rest of the slashed value is handled by the `Slash`."}}, StorageFunctionMetadataV10{Name: "CanceledSlashPayout", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of currency given to reporters of a slash event which was", " canceled by extraordinary circumstances (e.g. governance)."}}, StorageFunctionMetadataV10{Name: "UnappliedSlashes", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "EraIndex", Value: "Vec>>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All unapplied slashes that are queued for later."}}, StorageFunctionMetadataV10{Name: "BondedEras", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(EraIndex, SessionIndex)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from still-bonded eras to the first session index of that era."}}, StorageFunctionMetadataV10{Name: "ValidatorSlashInEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "(Perbill, BalanceOf)", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: true, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All slashing events on validators, mapped by era to the highest slash proportion", " and slash value of the era."}}, StorageFunctionMetadataV10{Name: "NominatorSlashInEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "BalanceOf", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: true, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All slashing events on nominators, mapped by era to the highest slash value of the era."}}, StorageFunctionMetadataV10{Name: "SlashingSpans", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "slashing::SlashingSpans", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Slashing spans for stash accounts."}}, StorageFunctionMetadataV10{Name: "SpanSlash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "(T::AccountId, slashing::SpanIndex)", Value: "slashing::SpanRecord>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Records information about the maximum slash of a stash within a slashing span,", " as well as how much reward has been paid out."}}, StorageFunctionMetadataV10{Name: "EarliestUnappliedSlash", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "EraIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The earliest era for which we have a pending, unapplied slash."}}, StorageFunctionMetadataV10{Name: "StorageVersion", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The version of storage for upgrade."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "bond", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "controller", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}, FunctionArgumentMetadata{Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" Take the origin account as a stash and lock up `value` of its balance. `controller` will", " be the account that controls it.", "", " `value` must be more than the `minimum_balance` specified by `T::Currency`.", "", " The dispatch origin for this call must be _Signed_ by the stash account.", "", " # ", " - Independent of the arguments. Moderate complexity.", " - O(1).", " - Three extra DB entries.", "", " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned unless", " the `origin` falls below _existential deposit_ and gets removed as dust.", " # "}}, FunctionMetadataV4{Name: "bond_extra", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "max_additional", Type: "Compact>"}}, Documentation: []Text{" Add some extra amount that have appeared in the stash `free_balance` into the balance up", " for staking.", "", " Use this if there are additional funds in your stash account that you wish to bond.", " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount", " that can be added.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - O(1).", " - One DB entry.", " # "}}, FunctionMetadataV4{Name: "unbond", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Schedule a portion of the stash to be unlocked ready for transfer out after the bond", " period ends. If this leaves an amount actively bonded less than", " T::Currency::minimum_balance(), then it is increased to the full amount.", "", " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", " the funds out of management ready for transfer.", "", " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", " to be called first to remove some of the chunks (if possible).", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " See also [`Call::withdraw_unbonded`].", "", " # ", " - Independent of the arguments. Limited but potentially exploitable complexity.", " - Contains a limited number of reads.", " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)", " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.", " The only way to clean the aforementioned storage item is also user-controlled via `withdraw_unbonded`.", " - One DB entry.", " "}}, FunctionMetadataV4{Name: "rebond", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Rebond a portion of the stash scheduled to be unlocked.", "", " # ", " - Time complexity: O(1). Bounded by `MAX_UNLOCKING_CHUNKS`.", " - Storage changes: Can't increase storage, only decrease it.", " # "}}, FunctionMetadataV4{Name: "withdraw_unbonded", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove any unlocked chunks from the `unlocking` queue from our management.", "", " This essentially frees up that balance to be used by the stash account to do", " whatever it wants.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " See also [`Call::unbond`].", "", " # ", " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.", " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is", " indirectly user-controlled. See [`unbond`] for more detail.", " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.", " - Writes are limited to the `origin` account key.", " # "}}, FunctionMetadataV4{Name: "validate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "prefs", Type: "ValidatorPrefs"}}, Documentation: []Text{" Declare the desire to validate for the origin controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " # "}}, FunctionMetadataV4{Name: "nominate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "targets", Type: "Vec<::Source>"}}, Documentation: []Text{" Declare the desire to nominate `targets` for the origin controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - The transaction's complexity is proportional to the size of `targets`,", " which is capped at `MAX_NOMINATIONS`.", " - Both the reads and writes follow a similar pattern.", " # "}}, FunctionMetadataV4{Name: "chill", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Declare no desire to either validate or nominate.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains one read.", " - Writes are limited to the `origin` account key.", " # "}}, FunctionMetadataV4{Name: "set_payee", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" (Re-)set the payment target for a controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " # "}}, FunctionMetadataV4{Name: "set_controller", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "controller", Type: "::Source"}}, Documentation: []Text{" (Re-)set the controller of a stash.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " # "}}, FunctionMetadataV4{Name: "set_validator_count", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "Compact"}}, Documentation: []Text{" The ideal number of validators."}}, FunctionMetadataV4{Name: "force_no_eras", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be no new eras indefinitely.", "", " # ", " - No arguments.", " # "}}, FunctionMetadataV4{Name: "force_new_era", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be a new era at the end of the next session. After this, it will be", " reset to normal (non-forced) behaviour.", "", " # ", " - No arguments.", " # "}}, FunctionMetadataV4{Name: "set_invulnerables", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "validators", Type: "Vec"}}, Documentation: []Text{" Set the validators who cannot be slashed (if any)."}}, FunctionMetadataV4{Name: "force_unstake", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "stash", Type: "T::AccountId"}}, Documentation: []Text{" Force a current staker to become completely unstaked, immediately."}}, FunctionMetadataV4{Name: "force_new_era_always", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be a new era at the end of sessions indefinitely.", "", " # ", " - One storage write", " # "}}, FunctionMetadataV4{Name: "cancel_deferred_slash", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "era", Type: "EraIndex"}, FunctionArgumentMetadata{Name: "slash_indices", Type: "Vec"}}, Documentation: []Text{" Cancel enactment of a deferred slash. Can be called by either the root origin or", " the `T::SlashCancelOrigin`.", " passing the era and indices of the slashes for that era to kill.", "", " # ", " - One storage write.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Reward", Args: []Type{"Balance", "Balance"}, Documentation: []Text{" All validators have been rewarded by the first balance; the second is the remainder", " from the maximum amount of reward."}}, EventMetadataV4{Name: "Slash", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" One validator (and its nominators) has been slashed by the given amount."}}, EventMetadataV4{Name: "OldSlashingReportDiscarded", Args: []Type{"SessionIndex"}, Documentation: []Text{" An old slashing report from a prior era was discarded because it could", " not be processed."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "SessionsPerEra", Type: "SessionIndex", Value: Bytes{0x6, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of sessions per era."}}, ModuleConstantMetadataV6{Name: "BondingDuration", Type: "EraIndex", Value: Bytes{0x1c, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of eras that staked funds must remain bonded for."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotController", Documentation: []Text{" Not a controller account."}}, ErrorMetadataV8{Name: "NotStash", Documentation: []Text{" Not a stash account."}}, ErrorMetadataV8{Name: "AlreadyBonded", Documentation: []Text{" Stash is already bonded."}}, ErrorMetadataV8{Name: "AlreadyPaired", Documentation: []Text{" Controller is already paired."}}, ErrorMetadataV8{Name: "EmptyTargets", Documentation: []Text{" Targets cannot be empty."}}, ErrorMetadataV8{Name: "DuplicateIndex", Documentation: []Text{" Duplicate index."}}, ErrorMetadataV8{Name: "InvalidSlashIndex", Documentation: []Text{" Slash record index out of bounds."}}, ErrorMetadataV8{Name: "InsufficientValue", Documentation: []Text{" Can not bond with value less than minimum balance."}}, ErrorMetadataV8{Name: "NoMoreChunks", Documentation: []Text{" Can not schedule more unlock chunks."}}, ErrorMetadataV8{Name: "NoUnlockChunk", Documentation: []Text{" Can not rebond without unlocking chunks."}}}}, ModuleMetadataV10{Name: "Offences", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Offences", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Reports", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReportIdOf", Value: "OffenceDetails", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The primary structure that holds all offence records keyed by report identifiers."}}, StorageFunctionMetadataV10{Name: "ConcurrentReportsIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "Kind", Key2: "OpaqueTimeSlot", Value: "Vec>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A vector of reports of the same kind that happened at the same time slot."}}, StorageFunctionMetadataV10{Name: "ReportsByKindIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "Kind", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Enumerates all reports of a kind along with the time they happened.", "", " All reports are sorted by the time of offence.", "", " Note that the actual type of this mapping is `Vec`, this is because values of", " different types are not supported at the moment so we are doing the manual serialization."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Offence", Args: []Type{"Kind", "OpaqueTimeSlot"}, Documentation: []Text{" There is an offence reported of the given `kind` happened at the `session_index` and", " (kind-specific) time slot. This event is not deposited for duplicate slashes."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Session", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Session", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of validators."}}, StorageFunctionMetadataV10{Name: "CurrentIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "SessionIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current index of the session."}}, StorageFunctionMetadataV10{Name: "QueuedChanged", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the underlying economic identities or weighting behind the validators", " has changed in the queued validator set."}}, StorageFunctionMetadataV10{Name: "QueuedKeys", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(T::ValidatorId, T::Keys)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."}}, StorageFunctionMetadataV10{Name: "DisabledValidators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Indices of disabled validators.", "", " The set is cleared when `on_session_ending` returns a new set of identities."}}, StorageFunctionMetadataV10{Name: "NextKeys", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true}, Key1: "Vec", Key2: "T::ValidatorId", Value: "T::Keys", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The next session keys for a validator.", "", " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", " the trie. Having all data in the same branch should prevent slowing down other queries."}}, StorageFunctionMetadataV10{Name: "KeyOwner", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true}, Key1: "Vec", Key2: "(KeyTypeId, Vec)", Value: "T::ValidatorId", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The owner of a key. The second key is the `KeyTypeId` + the encoded key.", "", " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", " the trie. Having all data in the same branch should prevent slowing down other queries."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_keys", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "keys", Type: "T::Keys"}, FunctionArgumentMetadata{Name: "proof", Type: "Vec"}}, Documentation: []Text{" Sets the session key(s) of the function caller to `key`.", " Allows an account to set its session key prior to becoming a validator.", " This doesn't take effect until the next session.", "", " The dispatch origin of this function must be signed.", "", " # ", " - O(log n) in number of accounts.", " - One extra DB entry.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewSession", Args: []Type{"SessionIndex"}, Documentation: []Text{" New session has happened. Note that the argument is the session index, not the block", " number as the type might suggest."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "DEDUP_KEY_PREFIX", Type: "&[u8]", Value: Bytes{0x34, 0x3a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6b, 0x65, 0x79, 0x73}, Documentation: []Text{" Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch", " of the trie."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidProof", Documentation: []Text{" Invalid ownership proof."}}, ErrorMetadataV8{Name: "NoAssociatedValidatorId", Documentation: []Text{" No associated validator ID for account."}}, ErrorMetadataV8{Name: "DuplicatedKey", Documentation: []Text{" Registered duplicate key."}}}}, ModuleMetadataV10{Name: "FinalityTracker", HasStorage: false, Storage: StorageMetadataV10{Prefix: "", Items: []StorageFunctionMetadataV10(nil)}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "final_hint", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "hint", Type: "Compact"}}, Documentation: []Text{" Hint that the author of this block thinks the best finalized", " block is the given number."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "WindowSize", Type: "T::BlockNumber", Value: Bytes{0x65, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of recent samples to keep from this chain. Default is 101."}}, ModuleConstantMetadataV6{Name: "ReportLatency", Type: "T::BlockNumber", Value: Bytes{0xe8, 0x3, 0x0, 0x0}, Documentation: []Text{" The delay after which point things become suspicious. Default is 1000."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "AlreadyUpdated", Documentation: []Text{" Final hint must be updated only once in the block"}}, ErrorMetadataV8{Name: "BadHint", Documentation: []Text{" Finalized height above block number"}}}}, ModuleMetadataV10{Name: "Grandpa", HasStorage: true, Storage: StorageMetadataV10{Prefix: "GrandpaFinality", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Authorities", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "AuthorityList", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" DEPRECATED", "", " This used to store the current authority set, which has been migrated to the well-known", " GRANDPA_AUTHORITES_KEY unhashed key."}}, StorageFunctionMetadataV10{Name: "State", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "StoredState", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" State of the current authority set."}}, StorageFunctionMetadataV10{Name: "PendingChange", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "StoredPendingChange", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Pending change: (signaled at, scheduled change)."}}, StorageFunctionMetadataV10{Name: "NextForced", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" next block number where we can force a change."}}, StorageFunctionMetadataV10{Name: "Stalled", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "(T::BlockNumber, T::BlockNumber)", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" `true` if we are currently stalled."}}, StorageFunctionMetadataV10{Name: "CurrentSetId", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "SetId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of changes (both in terms of keys and underlying economic responsibilities)", " in the \"set\" of Grandpa validators from genesis."}}, StorageFunctionMetadataV10{Name: "SetIdSession", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "SetId", Value: "SessionIndex", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from grandpa set ID to the index of the *most recent* session for which its members were responsible."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "report_misbehavior", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "_report", Type: "Vec"}}, Documentation: []Text{" Report some misbehavior."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewAuthorities", Args: []Type{"AuthorityList"}, Documentation: []Text{" New authority set has been applied."}}, EventMetadataV4{Name: "Paused", Args: []Type(nil), Documentation: []Text{" Current authority set has been paused."}}, EventMetadataV4{Name: "Resumed", Args: []Type(nil), Documentation: []Text{" Current authority set has been resumed."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "PauseFailed", Documentation: []Text{" Attempt to signal GRANDPA pause when the authority set isn't live", " (either paused or already pending pause)."}}, ErrorMetadataV8{Name: "ResumeFailed", Documentation: []Text{" Attempt to signal GRANDPA resume when the authority set isn't paused", " (either live or already pending resume)."}}, ErrorMetadataV8{Name: "ChangePending", Documentation: []Text{" Attempt to signal GRANDPA change with one already pending."}}, ErrorMetadataV8{Name: "TooSoon", Documentation: []Text{" Cannot signal forced change so soon after last."}}}}, ModuleMetadataV10{Name: "ImOnline", HasStorage: true, Storage: StorageMetadataV10{Prefix: "ImOnline", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "GossipAt", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The block number when we should gossip."}}, StorageFunctionMetadataV10{Name: "Keys", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of keys that may issue a heartbeat."}}, StorageFunctionMetadataV10{Name: "ReceivedHeartbeats", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "SessionIndex", Key2: "AuthIndex", Value: "Vec", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" For each session index, we keep a mapping of `AuthIndex`", " to `offchain::OpaqueNetworkState`."}}, StorageFunctionMetadataV10{Name: "AuthoredBlocks", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "SessionIndex", Key2: "T::ValidatorId", Value: "u32", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" For each session index, we keep a mapping of `T::ValidatorId` to the", " number of blocks authored by the given authority."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "heartbeat", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "heartbeat", Type: "Heartbeat"}, FunctionArgumentMetadata{Name: "_signature", Type: "::Signature"}}, Documentation: []Text(nil)}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "HeartbeatReceived", Args: []Type{"AuthorityId"}, Documentation: []Text{" A new heartbeat was received from `AuthorityId`"}}, EventMetadataV4{Name: "AllGood", Args: []Type(nil), Documentation: []Text{" At the end of the session, no offence was committed."}}, EventMetadataV4{Name: "SomeOffline", Args: []Type{"Vec"}, Documentation: []Text{" At the end of the session, at least once validator was found to be offline."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidKey", Documentation: []Text{" Non existent public key."}}, ErrorMetadataV8{Name: "DuplicatedHeartbeat", Documentation: []Text{" Duplicated heartbeat."}}}}, ModuleMetadataV10{Name: "AuthorityDiscovery", HasStorage: false, Storage: StorageMetadataV10{Prefix: "", Items: []StorageFunctionMetadataV10(nil)}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Democracy", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Democracy", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "PublicPropCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "PropIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of (public) proposals that have been made so far."}}, StorageFunctionMetadataV10{Name: "PublicProps", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(PropIndex, T::Hash, T::AccountId)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The public proposals. Unsorted. The second item is the proposal's hash."}}, StorageFunctionMetadataV10{Name: "Preimages", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "(Vec, T::AccountId, BalanceOf, T::BlockNumber)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map of hashes to the proposal preimage, along with who registered it and their deposit.", " The block number is the block at which it was deposited."}}, StorageFunctionMetadataV10{Name: "DepositOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "PropIndex", Value: "(BalanceOf, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Those who have locked a deposit."}}, StorageFunctionMetadataV10{Name: "ReferendumCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next free referendum index, aka the number of referenda started so far."}}, StorageFunctionMetadataV10{Name: "LowestUnbaked", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The lowest referendum index representing an unbaked referendum. Equal to", " `ReferendumCount` if there isn't a unbaked referendum."}}, StorageFunctionMetadataV10{Name: "ReferendumInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReferendumIndex", Value: "ReferendumInfo", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information concerning any given referendum."}}, StorageFunctionMetadataV10{Name: "DispatchQueue", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(T::BlockNumber, T::Hash, ReferendumIndex)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Queue of successful referenda to be dispatched. Stored ordered by block number."}}, StorageFunctionMetadataV10{Name: "VotersFor", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReferendumIndex", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Get the voters for the current proposal."}}, StorageFunctionMetadataV10{Name: "VoteOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "(ReferendumIndex, T::AccountId)", Value: "Vote", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Get the vote in a given referendum of a particular voter. The result is meaningful only", " if `voters_for` includes the voter when called with the referendum (you'll get the", " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can", " also check for simple existence with `VoteOf::exists` first."}}, StorageFunctionMetadataV10{Name: "Proxy", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Who is able to vote for whom. Value is the fund-holding account, key is the", " vote-transaction-sending account."}}, StorageFunctionMetadataV10{Name: "Delegations", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "(T::AccountId, Conviction)", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Get the account (and lock periods) to which another account is delegating vote."}}, StorageFunctionMetadataV10{Name: "LastTabledWasExternal", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the last referendum tabled was submitted externally. False if it was a public", " proposal."}}, StorageFunctionMetadataV10{Name: "NextExternal", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "(T::Hash, VoteThreshold)", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The referendum to be tabled whenever it would be valid to table an external proposal.", " This happens when a referendum needs to be tabled and one of two conditions are met:", " - `LastTabledWasExternal` is `false`; or", " - `PublicProps` is empty."}}, StorageFunctionMetadataV10{Name: "Blacklist", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "(T::BlockNumber, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A record of who vetoed what. Maps proposal hash to a possible existent block number", " (until when it may not be resubmitted) and who vetoed it."}}, StorageFunctionMetadataV10{Name: "Cancellations", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "bool", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Record of all proposals that have been subject to emergency cancellation."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Propose a sensitive action to be taken.", "", " # ", " - O(1).", " - Two DB changes, one DB entry.", " # "}}, FunctionMetadataV4{Name: "second", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "Compact"}}, Documentation: []Text{" Propose a sensitive action to be taken.", "", " # ", " - O(1).", " - One DB entry.", " # "}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "vote", Type: "Vote"}}, Documentation: []Text{" Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", " otherwise it is a vote to keep the status quo.", "", " # ", " - O(1).", " - One DB change, one DB entry.", " # "}}, FunctionMetadataV4{Name: "proxy_vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "vote", Type: "Vote"}}, Documentation: []Text{" Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact", " the proposal; otherwise it is a vote to keep the status quo.", "", " # ", " - O(1).", " - One DB change, one DB entry.", " # "}}, FunctionMetadataV4{Name: "emergency_cancel", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "ReferendumIndex"}}, Documentation: []Text{" Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", " referendum."}}, FunctionMetadataV4{Name: "external_propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a referendum to be tabled once it is legal to schedule an external", " referendum."}}, FunctionMetadataV4{Name: "external_propose_majority", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a majority-carries referendum to be tabled next once it is legal to schedule", " an external referendum.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call."}}, FunctionMetadataV4{Name: "external_propose_default", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", " schedule an external referendum.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call."}}, FunctionMetadataV4{Name: "fast_track", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "voting_period", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "delay", Type: "T::BlockNumber"}}, Documentation: []Text{" Schedule the currently externally-proposed majority-carries referendum to be tabled", " immediately. If there is no externally-proposed referendum currently, or if there is one", " but it is not a majority-carries referendum then it fails.", "", " - `proposal_hash`: The hash of the current external proposal.", " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", " `EmergencyVotingPeriod` if too low.", " - `delay`: The number of block after voting has ended in approval and this should be", " enacted. This doesn't have a minimum amount."}}, FunctionMetadataV4{Name: "veto_external", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Veto and blacklist the external proposal hash."}}, FunctionMetadataV4{Name: "cancel_referendum", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "Compact"}}, Documentation: []Text{" Remove a referendum."}}, FunctionMetadataV4{Name: "cancel_queued", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "which", Type: "ReferendumIndex"}}, Documentation: []Text{" Cancel a proposal queued for enactment."}}, FunctionMetadataV4{Name: "set_proxy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proxy", Type: "T::AccountId"}}, Documentation: []Text{" Specify a proxy. Called by the stash.", "", " # ", " - One extra DB entry.", " # "}}, FunctionMetadataV4{Name: "resign_proxy", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Clear the proxy. Called by the proxy.", "", " # ", " - One DB clear.", " # "}}, FunctionMetadataV4{Name: "remove_proxy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proxy", Type: "T::AccountId"}}, Documentation: []Text{" Clear the proxy. Called by the stash.", "", " # ", " - One DB clear.", " # "}}, FunctionMetadataV4{Name: "delegate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "to", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "conviction", Type: "Conviction"}}, Documentation: []Text{" Delegate vote.", "", " # ", " - One extra DB entry.", " # "}}, FunctionMetadataV4{Name: "undelegate", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Undelegate vote.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name: "clear_public_proposals", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Veto and blacklist the proposal hash. Must be from Root origin."}}, FunctionMetadataV4{Name: "note_preimage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Register the preimage for an upcoming proposal. This doesn't require the proposal to be", " in the dispatch queue but does require a deposit, returned once enacted."}}, FunctionMetadataV4{Name: "note_imminent_preimage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Register the preimage for an upcoming proposal. This requires the proposal to be", " in the dispatch queue. No deposit is needed."}}, FunctionMetadataV4{Name: "reap_preimage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Remove an expired proposal preimage and collect the deposit.", "", " This will only work after `VotingPeriod` blocks from the time that the preimage was", " noted, if it's the same account doing it. If it's a different account, then it'll only", " work an additional `EnactmentPeriod` later."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"PropIndex", "Balance"}, Documentation: []Text{" A motion has been proposed by a public account."}}, EventMetadataV4{Name: "Tabled", Args: []Type{"PropIndex", "Balance", "Vec"}, Documentation: []Text{" A public proposal has been tabled for referendum vote."}}, EventMetadataV4{Name: "ExternalTabled", Args: []Type(nil), Documentation: []Text{" An external proposal has been tabled."}}, EventMetadataV4{Name: "Started", Args: []Type{"ReferendumIndex", "VoteThreshold"}, Documentation: []Text{" A referendum has begun."}}, EventMetadataV4{Name: "Passed", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A proposal has been approved by referendum."}}, EventMetadataV4{Name: "NotPassed", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A proposal has been rejected by referendum."}}, EventMetadataV4{Name: "Cancelled", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A referendum has been cancelled."}}, EventMetadataV4{Name: "Executed", Args: []Type{"ReferendumIndex", "bool"}, Documentation: []Text{" A proposal has been enacted."}}, EventMetadataV4{Name: "Delegated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" An account has delegated their vote to another account."}}, EventMetadataV4{Name: "Undelegated", Args: []Type{"AccountId"}, Documentation: []Text{" An account has cancelled a previous delegation operation."}}, EventMetadataV4{Name: "Vetoed", Args: []Type{"AccountId", "Hash", "BlockNumber"}, Documentation: []Text{" An external proposal has been vetoed."}}, EventMetadataV4{Name: "PreimageNoted", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A proposal's preimage was noted, and the deposit taken."}}, EventMetadataV4{Name: "PreimageUsed", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A proposal preimage was removed and used (the deposit was returned)."}}, EventMetadataV4{Name: "PreimageInvalid", Args: []Type{"Hash", "ReferendumIndex"}, Documentation: []Text{" A proposal could not be executed because its preimage was invalid."}}, EventMetadataV4{Name: "PreimageMissing", Args: []Type{"Hash", "ReferendumIndex"}, Documentation: []Text{" A proposal could not be executed because its preimage was missing."}}, EventMetadataV4{Name: "PreimageReaped", Args: []Type{"Hash", "AccountId", "Balance", "AccountId"}, Documentation: []Text{" A registered preimage was removed and the deposit collected by the reaper (last item)."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "EnactmentPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0xc2, 0x1, 0x0}, Documentation: []Text{" The minimum period of locking and the period between a proposal being approved and enacted.", "", " It should generally be a little more than the unstake period to ensure that", " voting stakers have an opportunity to remove themselves from the system in the case where", " they are on the losing side of a vote."}}, ModuleConstantMetadataV6{Name: "LaunchPeriod", Type: "T::BlockNumber", Value: Bytes{0xc0, 0x89, 0x1, 0x0}, Documentation: []Text{" How often (in blocks) new public referenda are launched."}}, ModuleConstantMetadataV6{Name: "VotingPeriod", Type: "T::BlockNumber", Value: Bytes{0xc0, 0x89, 0x1, 0x0}, Documentation: []Text{" How often (in blocks) to check for new votes."}}, ModuleConstantMetadataV6{Name: "MinimumDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount to be used as a deposit for a public referendum proposal."}}, ModuleConstantMetadataV6{Name: "EmergencyVotingPeriod", Type: "T::BlockNumber", Value: Bytes{0x8, 0x7, 0x0, 0x0}, Documentation: []Text{" Minimum voting period allowed for an emergency referendum."}}, ModuleConstantMetadataV6{Name: "CooloffPeriod", Type: "T::BlockNumber", Value: Bytes{0xc0, 0x89, 0x1, 0x0}, Documentation: []Text{" Period in blocks where an external proposal may not be re-submitted after being vetoed."}}, ModuleConstantMetadataV6{Name: "PreimageByteDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0xe1, 0xf5, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of balance that must be deposited per byte of preimage stored."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "ValueLow", Documentation: []Text{" Value too low"}}, ErrorMetadataV8{Name: "ProposalMissing", Documentation: []Text{" Proposal does not exist"}}, ErrorMetadataV8{Name: "NotProxy", Documentation: []Text{" Not a proxy"}}, ErrorMetadataV8{Name: "BadIndex", Documentation: []Text{" Unknown index"}}, ErrorMetadataV8{Name: "AlreadyCanceled", Documentation: []Text{" Cannot cancel the same proposal twice"}}, ErrorMetadataV8{Name: "DuplicateProposal", Documentation: []Text{" Proposal already made"}}, ErrorMetadataV8{Name: "ProposalBlacklisted", Documentation: []Text{" Proposal still blacklisted"}}, ErrorMetadataV8{Name: "NotSimpleMajority", Documentation: []Text{" Next external proposal not simple majority"}}, ErrorMetadataV8{Name: "InvalidHash", Documentation: []Text{" Invalid hash"}}, ErrorMetadataV8{Name: "NoProposal", Documentation: []Text{" No external proposal"}}, ErrorMetadataV8{Name: "AlreadyVetoed", Documentation: []Text{" Identity may not veto a proposal twice"}}, ErrorMetadataV8{Name: "AlreadyProxy", Documentation: []Text{" Already a proxy"}}, ErrorMetadataV8{Name: "WrongProxy", Documentation: []Text{" Wrong proxy"}}, ErrorMetadataV8{Name: "NotDelegated", Documentation: []Text{" Not delegated"}}, ErrorMetadataV8{Name: "DuplicatePreimage", Documentation: []Text{" Preimage already noted"}}, ErrorMetadataV8{Name: "NotImminent", Documentation: []Text{" Not imminent"}}, ErrorMetadataV8{Name: "Early", Documentation: []Text{" Too early"}}, ErrorMetadataV8{Name: "Imminent", Documentation: []Text{" Imminent"}}, ErrorMetadataV8{Name: "PreimageMissing", Documentation: []Text{" Preimage not found"}}, ErrorMetadataV8{Name: "ReferendumInvalid", Documentation: []Text{" Vote given for invalid referendum"}}, ErrorMetadataV8{Name: "PreimageInvalid", Documentation: []Text{" Invalid preimage"}}, ErrorMetadataV8{Name: "NoneWaiting", Documentation: []Text{" No proposals waiting"}}}}, ModuleMetadataV10{Name: "Council", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Instance1Collective", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The hashes of the active proposals."}}, StorageFunctionMetadataV10{Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: ">::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Actual proposal for a given hash, if it's current."}}, StorageFunctionMetadataV10{Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "Votes", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes on a given proposal, if it is ongoing."}}, StorageFunctionMetadataV10{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proposals so far."}}, StorageFunctionMetadataV10{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current members of the collective. This is stored sorted (just by value)."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_members", Type: "Vec"}}, Documentation: []Text{" Set the collective's membership manually to `new_members`. Be nice to the chain and", " provide it pre-sorted.", "", " Requires root origin."}}, FunctionMetadataV4{Name: "execute", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective."}}, FunctionMetadataV4{Name: "propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "Compact"}, FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" # ", " - Bounded storage reads and writes.", " - Argument `threshold` has bearing on weight.", " # "}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "approve", Type: "bool"}}, Documentation: []Text{" # ", " - Bounded storage read and writes.", " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`)."}}, EventMetadataV4{Name: "Voted", Args: []Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`)."}}, EventMetadataV4{Name: "Approved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was approved by the required threshold."}}, EventMetadataV4{Name: "Disapproved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was not approved by the required threshold."}}, EventMetadataV4{Name: "Executed", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A motion was executed; `bool` is true if returned without error."}}, EventMetadataV4{Name: "MemberExecuted", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A single member did some action; `bool` is true if returned without error."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" Account is not a member"}}, ErrorMetadataV8{Name: "DuplicateProposal", Documentation: []Text{" Duplicate proposals not allowed"}}, ErrorMetadataV8{Name: "ProposalMissing", Documentation: []Text{" Proposal must exist"}}, ErrorMetadataV8{Name: "WrongIndex", Documentation: []Text{" Mismatched index"}}, ErrorMetadataV8{Name: "DuplicateVote", Documentation: []Text{" Duplicate vote ignored"}}, ErrorMetadataV8{Name: "AlreadyInitialized", Documentation: []Text{" Members are already initialized!"}}}}, ModuleMetadataV10{Name: "TechnicalCommittee", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Instance2Collective", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The hashes of the active proposals."}}, StorageFunctionMetadataV10{Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: ">::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Actual proposal for a given hash, if it's current."}}, StorageFunctionMetadataV10{Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "Votes", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes on a given proposal, if it is ongoing."}}, StorageFunctionMetadataV10{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proposals so far."}}, StorageFunctionMetadataV10{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current members of the collective. This is stored sorted (just by value)."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_members", Type: "Vec"}}, Documentation: []Text{" Set the collective's membership manually to `new_members`. Be nice to the chain and", " provide it pre-sorted.", "", " Requires root origin."}}, FunctionMetadataV4{Name: "execute", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective."}}, FunctionMetadataV4{Name: "propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "Compact"}, FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" # ", " - Bounded storage reads and writes.", " - Argument `threshold` has bearing on weight.", " # "}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "approve", Type: "bool"}}, Documentation: []Text{" # ", " - Bounded storage read and writes.", " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`)."}}, EventMetadataV4{Name: "Voted", Args: []Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`)."}}, EventMetadataV4{Name: "Approved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was approved by the required threshold."}}, EventMetadataV4{Name: "Disapproved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was not approved by the required threshold."}}, EventMetadataV4{Name: "Executed", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A motion was executed; `bool` is true if returned without error."}}, EventMetadataV4{Name: "MemberExecuted", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A single member did some action; `bool` is true if returned without error."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" Account is not a member"}}, ErrorMetadataV8{Name: "DuplicateProposal", Documentation: []Text{" Duplicate proposals not allowed"}}, ErrorMetadataV8{Name: "ProposalMissing", Documentation: []Text{" Proposal must exist"}}, ErrorMetadataV8{Name: "WrongIndex", Documentation: []Text{" Mismatched index"}}, ErrorMetadataV8{Name: "DuplicateVote", Documentation: []Text{" Duplicate vote ignored"}}, ErrorMetadataV8{Name: "AlreadyInitialized", Documentation: []Text{" Members are already initialized!"}}}}, ModuleMetadataV10{Name: "ElectionsPhragmen", HasStorage: true, Storage: StorageMetadataV10{Prefix: "PhragmenElection", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(T::AccountId, BalanceOf)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current elected membership. Sorted based on account id."}}, StorageFunctionMetadataV10{Name: "RunnersUp", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(T::AccountId, BalanceOf)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current runners_up. Sorted based on low to high merit (worse to best runner)."}}, StorageFunctionMetadataV10{Name: "ElectionRounds", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total number of vote rounds that have happened, excluding the upcoming one."}}, StorageFunctionMetadataV10{Name: "VotesOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Vec", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes of a particular voter, with the round index of the votes."}}, StorageFunctionMetadataV10{Name: "StakeOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "BalanceOf", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Locked stake of a voter."}}, StorageFunctionMetadataV10{Name: "Candidates", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The present candidate list. Sorted based on account id. A current member can never enter", " this vector and is always implicitly assumed to be a candidate."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "votes", Type: "Vec"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Vote for a set of candidates for the upcoming round of election.", "", " The `votes` should:", " - not be empty.", " - be less than the number of candidates.", "", " Upon voting, `value` units of `who`'s balance is locked and a bond amount is reserved.", " It is the responsibility of the caller to not place all of their balance into the lock", " and keep some for further transactions.", "", " # ", " #### State", " Reads: O(1)", " Writes: O(V) given `V` votes. V is bounded by 16.", " # "}}, FunctionMetadataV4{Name: "remove_voter", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove `origin` as a voter. This removes the lock and returns the bond.", "", " # ", " #### State", " Reads: O(1)", " Writes: O(1)", " # "}}, FunctionMetadataV4{Name: "report_defunct_voter", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "::Source"}}, Documentation: []Text{" Report `target` for being an defunct voter. In case of a valid report, the reporter is", " rewarded by the bond amount of `target`. Otherwise, the reporter itself is removed and", " their bond is slashed.", "", " A defunct voter is defined to be:", " - a voter whose current submitted votes are all invalid. i.e. all of them are no", " longer a candidate nor an active member.", "", " # ", " #### State", " Reads: O(NLogM) given M current candidates and N votes for `target`.", " Writes: O(1)", " # "}}, FunctionMetadataV4{Name: "submit_candidacy", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Submit oneself for candidacy.", "", " A candidate will either:", " - Lose at the end of the term and forfeit their deposit.", " - Win and become a member. Members will eventually get their stash back.", " - Become a runner-up. Runners-ups are reserved members in case one gets forcefully", " removed.", "", " # ", " #### State", " Reads: O(LogN) Given N candidates.", " Writes: O(1)", " # "}}, FunctionMetadataV4{Name: "renounce_candidacy", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Renounce one's intention to be a candidate for the next election round. 3 potential", " outcomes exist:", " - `origin` is a candidate and not elected in any set. In this case, the bond is", " unreserved, returned and origin is removed as a candidate.", " - `origin` is a current runner up. In this case, the bond is unreserved, returned and", " origin is removed as a runner.", " - `origin` is a current member. In this case, the bond is unreserved and origin is", " removed as a member, consequently not being a candidate for the next round anymore.", " Similar to [`remove_voter`], if replacement runners exists, they are immediately used."}}, FunctionMetadataV4{Name: "remove_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "::Source"}}, Documentation: []Text{" Remove a particular member from the set. This is effective immediately and the bond of", " the outgoing member is slashed.", "", " If a runner-up is available, then the best runner-up will be removed and replaces the", " outgoing member. Otherwise, a new phragmen round is started.", "", " Note that this does not affect the designated block number of the next election.", "", " # ", " #### State", " Reads: O(do_phragmen)", " Writes: O(do_phragmen)", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewTerm", Args: []Type{"Vec<(AccountId, Balance)>"}, Documentation: []Text{" A new term with new members. This indicates that enough candidates existed, not that", " enough have has been elected. The inner value must be examined for this purpose."}}, EventMetadataV4{Name: "EmptyTerm", Args: []Type(nil), Documentation: []Text{" No (or not enough) candidates existed for this round."}}, EventMetadataV4{Name: "MemberKicked", Args: []Type{"AccountId"}, Documentation: []Text{" A member has been removed. This should always be followed by either `NewTerm` ot", " `EmptyTerm`."}}, EventMetadataV4{Name: "MemberRenounced", Args: []Type{"AccountId"}, Documentation: []Text{" A member has renounced their candidacy."}}, EventMetadataV4{Name: "VoterReported", Args: []Type{"AccountId", "AccountId", "bool"}, Documentation: []Text{" A voter (first element) was reported (byt the second element) with the the report being", " successful or not (third element)."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "CandidacyBond", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, ModuleConstantMetadataV6{Name: "VotingBond", Type: "BalanceOf", Value: Bytes{0x0, 0x74, 0x3b, 0xa4, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, ModuleConstantMetadataV6{Name: "DesiredMembers", Type: "u32", Value: Bytes{0xd, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, ModuleConstantMetadataV6{Name: "DesiredRunnersUp", Type: "u32", Value: Bytes{0x7, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, ModuleConstantMetadataV6{Name: "TermDuration", Type: "T::BlockNumber", Value: Bytes{0x40, 0x38, 0x0, 0x0}, Documentation: []Text(nil)}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "UnableToVote", Documentation: []Text{" Cannot vote when no candidates or members exist."}}, ErrorMetadataV8{Name: "NoVotes", Documentation: []Text{" Must vote for at least one candidate."}}, ErrorMetadataV8{Name: "TooManyVotes", Documentation: []Text{" Cannot vote more than candidates."}}, ErrorMetadataV8{Name: "MaximumVotesExceeded", Documentation: []Text{" Cannot vote more than maximum allowed."}}, ErrorMetadataV8{Name: "LowBalance", Documentation: []Text{" Cannot vote with stake less than minimum balance."}}, ErrorMetadataV8{Name: "UnableToPayBond", Documentation: []Text{" Voter can not pay voting bond."}}, ErrorMetadataV8{Name: "MustBeVoter", Documentation: []Text{" Must be a voter."}}, ErrorMetadataV8{Name: "ReportSelf", Documentation: []Text{" Cannot report self."}}, ErrorMetadataV8{Name: "DuplicatedCandidate", Documentation: []Text{" Duplicated candidate submission."}}, ErrorMetadataV8{Name: "MemberSubmit", Documentation: []Text{" Member cannot re-submit candidacy."}}, ErrorMetadataV8{Name: "RunnerSubmit", Documentation: []Text{" Runner cannot re-submit candidacy."}}, ErrorMetadataV8{Name: "InsufficientCandidateFunds", Documentation: []Text{" Candidate does not have enough funds."}}, ErrorMetadataV8{Name: "InvalidOrigin", Documentation: []Text{" Origin is not a candidate, member or a runner up."}}, ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" Not a member."}}}}, ModuleMetadataV10{Name: "TechnicalMembership", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Instance1Membership", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current membership, stored as an ordered Vec."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "add_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Add a member `who` to the set.", "", " May only be called from `AddOrigin` or root."}}, FunctionMetadataV4{Name: "remove_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Remove a member `who` from the set.", "", " May only be called from `RemoveOrigin` or root."}}, FunctionMetadataV4{Name: "swap_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "remove", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "add", Type: "T::AccountId"}}, Documentation: []Text{" Swap out one member `remove` for another `add`.", "", " May only be called from `SwapOrigin` or root."}}, FunctionMetadataV4{Name: "reset_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "members", Type: "Vec"}}, Documentation: []Text{" Change the membership to a new set, disregarding the existing membership. Be nice and", " pass `members` pre-sorted.", "", " May only be called from `ResetOrigin` or root."}}, FunctionMetadataV4{Name: "change_key", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "T::AccountId"}}, Documentation: []Text{" Swap out the sending member for some other key `new`.", "", " May only be called from `Signed` origin of a current member."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "MemberAdded", Args: []Type(nil), Documentation: []Text{" The given member was added; see the transaction for who."}}, EventMetadataV4{Name: "MemberRemoved", Args: []Type(nil), Documentation: []Text{" The given member was removed; see the transaction for who."}}, EventMetadataV4{Name: "MembersSwapped", Args: []Type(nil), Documentation: []Text{" Two members were swapped; see the transaction for who."}}, EventMetadataV4{Name: "MembersReset", Args: []Type(nil), Documentation: []Text{" The membership was reset; see the transaction for who the new set is."}}, EventMetadataV4{Name: "KeyChanged", Args: []Type(nil), Documentation: []Text{" One of the members' keys changed."}}, EventMetadataV4{Name: "Dummy", Args: []Type{"sp_std::marker::PhantomData<(AccountId, Event)>"}, Documentation: []Text{" Phantom member, never used."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Treasury", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Treasury", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ProposalIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of proposals that have been made."}}, StorageFunctionMetadataV10{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ProposalIndex", Value: "Proposal>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposals that have been made."}}, StorageFunctionMetadataV10{Name: "Approvals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposal indices that have been approved but not yet awarded."}}, StorageFunctionMetadataV10{Name: "Tips", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true}, Key: "T::Hash", Value: "OpenTip, T::BlockNumber, T::Hash>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Tips that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", " This has the insecure enumerable hash function since the key itself is already", " guaranteed to be a secure hash."}}, StorageFunctionMetadataV10{Name: "Reasons", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true}, Key: "T::Hash", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Simple preimage lookup from the reason's hash to the original data. Again, has an", " insecure enumerable hash since the key is guaranteed to be the result of a secure hash."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "report_awesome", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reason", Type: "Vec"}, FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Report something `reason` that deserves a tip and claim any eventual the finder's fee.", "", " The dispatch origin for this call must be _Signed_.", "", " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", " `TipReportDepositPerByte` for each byte in `reason`.", "", " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", " a UTF-8-encoded URL.", " - `who`: The account which should be credited for the tip.", "", " Emits `NewTip` if successful.", "", " # ", " - `O(R)` where `R` length of `reason`.", " - One balance operation.", " - One storage mutation (codec `O(R)`).", " - One event.", " # "}}, FunctionMetadataV4{Name: "retract_tip", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "hash", Type: "T::Hash"}}, Documentation: []Text{" Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", "", " If successful, the original deposit will be unreserved.", "", " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", " must have been reported by the signing account through `report_awesome` (and not", " through `tip_new`).", "", " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", "", " Emits `TipRetracted` if successful.", "", " # ", " - `O(T)`", " - One balance operation.", " - Two storage removals (one read, codec `O(T)`).", " - One event.", " # "}}, FunctionMetadataV4{Name: "tip_new", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reason", Type: "Vec"}, FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "tip_value", Type: "BalanceOf"}}, Documentation: []Text{" Give a tip for something new; no finder's fee will be taken.", "", " The dispatch origin for this call must be _Signed_ and the signing account must be a", " member of the `Tippers` set.", "", " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", " a UTF-8-encoded URL.", " - `who`: The account which should be credited for the tip.", " - `tip_value`: The amount of tip that the sender would like to give. The median tip", " value of active tippers will be given to the `who`.", "", " Emits `NewTip` if successful.", "", " # ", " - `O(R + T)` where `R` length of `reason`, `T` is the number of tippers. `T` is", " naturally capped as a membership set, `R` is limited through transaction-size.", " - Two storage insertions (codecs `O(R)`, `O(T)`), one read `O(1)`.", " - One event.", " # "}}, FunctionMetadataV4{Name: "tip", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "tip_value", Type: "BalanceOf"}}, Documentation: []Text{" Declare a tip value for an already-open tip.", "", " The dispatch origin for this call must be _Signed_ and the signing account must be a", " member of the `Tippers` set.", "", " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", " account ID.", " - `tip_value`: The amount of tip that the sender would like to give. The median tip", " value of active tippers will be given to the `who`.", "", " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", " has started.", "", " # ", " - `O(T)`", " - One storage mutation (codec `O(T)`), one storage read `O(1)`.", " - Up to one event.", " # "}}, FunctionMetadataV4{Name: "close_tip", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "hash", Type: "T::Hash"}}, Documentation: []Text{" Close and payout a tip.", "", " The dispatch origin for this call must be _Signed_.", "", " The tip identified by `hash` must have finished its countdown period.", "", " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", "", " # ", " - `O(T)`", " - One storage retrieval (codec `O(T)`) and two removals.", " - Up to three balance operations.", " # "}}, FunctionMetadataV4{Name: "propose_spend", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "Compact>"}, FunctionArgumentMetadata{Name: "beneficiary", Type: "::Source"}}, Documentation: []Text{" Put forward a suggestion for spending. A deposit proportional to the value", " is reserved and slashed if the proposal is rejected. It is returned once the", " proposal is awarded.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change, one extra DB entry.", " # "}}, FunctionMetadataV4{Name: "reject_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Reject a proposed spend. The original deposit will be slashed.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB clear.", " # "}}, FunctionMetadataV4{Name: "approve_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", " and the original deposit will be returned.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"ProposalIndex"}, Documentation: []Text{" New proposal."}}, EventMetadataV4{Name: "Spending", Args: []Type{"Balance"}, Documentation: []Text{" We have ended a spend period and will now allocate funds."}}, EventMetadataV4{Name: "Awarded", Args: []Type{"ProposalIndex", "Balance", "AccountId"}, Documentation: []Text{" Some funds have been allocated."}}, EventMetadataV4{Name: "Rejected", Args: []Type{"ProposalIndex", "Balance"}, Documentation: []Text{" A proposal was rejected; funds were slashed."}}, EventMetadataV4{Name: "Burnt", Args: []Type{"Balance"}, Documentation: []Text{" Some of our funds have been burnt."}}, EventMetadataV4{Name: "Rollover", Args: []Type{"Balance"}, Documentation: []Text{" Spending has finished; this is the amount that rolls over until next spend."}}, EventMetadataV4{Name: "Deposit", Args: []Type{"Balance"}, Documentation: []Text{" Some funds have been deposited."}}, EventMetadataV4{Name: "NewTip", Args: []Type{"Hash"}, Documentation: []Text{" A new tip suggestion has been opened."}}, EventMetadataV4{Name: "TipClosing", Args: []Type{"Hash"}, Documentation: []Text{" A tip suggestion has reached threshold and is closing."}}, EventMetadataV4{Name: "TipClosed", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A tip suggestion has been closed."}}, EventMetadataV4{Name: "TipRetracted", Args: []Type{"Hash"}, Documentation: []Text{" A tip suggestion has been retracted."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "ProposalBond", Type: "Permill", Value: Bytes{0x50, 0xc3, 0x0, 0x0}, Documentation: []Text{" Fraction of a proposal's value that should be bonded in order to place the proposal.", " An accepted proposal gets these back. A rejected proposal does not."}}, ModuleConstantMetadataV6{Name: "ProposalBondMinimum", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0xe5, 0x9c, 0x30, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum amount of funds that should be placed in a deposit for making a proposal."}}, ModuleConstantMetadataV6{Name: "SpendPeriod", Type: "T::BlockNumber", Value: Bytes{0x80, 0x51, 0x1, 0x0}, Documentation: []Text{" Period between successive spends."}}, ModuleConstantMetadataV6{Name: "Burn", Type: "Permill", Value: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Percentage of spare funds (if any) that are burnt per spend period."}}, ModuleConstantMetadataV6{Name: "TipCountdown", Type: "T::BlockNumber", Value: Bytes{0x40, 0x38, 0x0, 0x0}, Documentation: []Text{" The period for which a tip remains open after is has achieved threshold tippers."}}, ModuleConstantMetadataV6{Name: "TipFindersFee", Type: "Percent", Value: Bytes{0x14}, Documentation: []Text{" The amount of the final tip which goes to the original reporter of the tip."}}, ModuleConstantMetadataV6{Name: "TipReportDepositBase", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit for placing a tip report."}}, ModuleConstantMetadataV6{Name: "TipReportDepositPerByte", Type: "BalanceOf", Value: Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit per byte within the tip report reason."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InsufficientProposersBalance", Documentation: []Text{" Proposer's balance is too low."}}, ErrorMetadataV8{Name: "InvalidProposalIndex", Documentation: []Text{" No proposal at that index."}}, ErrorMetadataV8{Name: "ReasonTooBig", Documentation: []Text{" The reason given is just too big."}}, ErrorMetadataV8{Name: "AlreadyKnown", Documentation: []Text{" The tip was already found/started."}}, ErrorMetadataV8{Name: "UnknownTip", Documentation: []Text{" The tip hash is unknown."}}, ErrorMetadataV8{Name: "NotFinder", Documentation: []Text{" The account attempting to retract the tip is not the finder of the tip."}}, ErrorMetadataV8{Name: "StillOpen", Documentation: []Text{" The tip cannot be claimed/closed because there are not enough tippers yet."}}, ErrorMetadataV8{Name: "Premature", Documentation: []Text{" The tip cannot be claimed/closed because it's still in the countdown period."}}}}, ModuleMetadataV10{Name: "Claims", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Claims", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Claims", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "EthereumAddress", Value: "BalanceOf", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}, StorageFunctionMetadataV10{Name: "Total", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, StorageFunctionMetadataV10{Name: "Vesting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "EthereumAddress", Value: "(BalanceOf, BalanceOf, T::BlockNumber)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Vesting schedule for a claim.", " First balance is the total amount that should be held for vesting.", " Second balance is how much should be unlocked per block.", " The block number is when the vesting should start."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "claim", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "ethereum_signature", Type: "EcdsaSignature"}}, Documentation: []Text{" Make a claim."}}, FunctionMetadataV4{Name: "mint_claim", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "EthereumAddress"}, FunctionArgumentMetadata{Name: "value", Type: "BalanceOf"}, FunctionArgumentMetadata{Name: "vesting_schedule", Type: "Option<(BalanceOf, BalanceOf, T::BlockNumber)>"}}, Documentation: []Text{" Add a new claim, if you are root."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Claimed", Args: []Type{"AccountId", "EthereumAddress", "Balance"}, Documentation: []Text{" Someone claimed some DOTs."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "Prefix", Type: "&[u8]", Value: Bytes{0x7c, 0x50, 0x61, 0x79, 0x20, 0x4b, 0x53, 0x4d, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4b, 0x75, 0x73, 0x61, 0x6d, 0x61, 0x20, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a}, Documentation: []Text{" The Prefix that is used in signed Ethereum messages for this network"}}}, Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Parachains", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Parachains", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Authorities", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All authorities' keys at the moment."}}, StorageFunctionMetadataV10{Name: "Code", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ParaId", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The parachains registered at present."}}, StorageFunctionMetadataV10{Name: "Heads", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ParaId", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The heads of the parachains registered at present."}}, StorageFunctionMetadataV10{Name: "Watermarks", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ParaId", Value: "T::BlockNumber", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The watermark heights of the parachains registered at present.", " For every parachain, this is the block height from which all messages targeting", " that parachain have been processed. Can be `None` only if the parachain doesn't exist."}}, StorageFunctionMetadataV10{Name: "UnroutedIngress", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "(T::BlockNumber, ParaId)", Value: "Vec<(ParaId, Hash)>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Unrouted ingress. Maps (BlockNumber, to_chain) pairs to [(from_chain, egress_root)].", "", " There may be an entry under (i, p) in this map for every i between the parachain's", " watermark and the current block."}}, StorageFunctionMetadataV10{Name: "RelayDispatchQueue", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ParaId", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Messages ready to be dispatched onto the relay chain. It is subject to", " `MAX_MESSAGE_COUNT` and `WATERMARK_MESSAGE_SIZE`."}}, StorageFunctionMetadataV10{Name: "RelayDispatchQueueSize", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ParaId", Value: "(u32, u32)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Size of the dispatch queues. Separated from actual data in order to avoid costly", " decoding when checking receipt validity. First item in tuple is the count of messages", "\tsecond if the total length (in bytes) of the message payloads."}}, StorageFunctionMetadataV10{Name: "NeedsDispatch", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The ordered list of ParaIds that have a `RelayDispatchQueue` entry."}}, StorageFunctionMetadataV10{Name: "DidUpdate", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Some if the parachain heads get updated in this block, along with the parachain IDs that", " did update. Ordered in the same way as `registrar::Active` (i.e. by ParaId).", "", " None if not yet updated."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_heads", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "heads", Type: "Vec"}}, Documentation: []Text{" Provide candidate receipts for parachains, in ascending order by id."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Attestations", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Attestations", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "RecentParaBlocks", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::BlockNumber", Value: "IncludedBlocks", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from modular block number (n % AttestationPeriod)", " to session index and the list of candidate hashes."}}, StorageFunctionMetadataV10{Name: "ParaBlockAttestations", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "T::BlockNumber", Key2: "Hash", Value: "BlockAttestations", Key2Hasher: StorageHasherV10{IsBlake2_128: true, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Attestations on a recent parachain block."}}, StorageFunctionMetadataV10{Name: "DidUpdate", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "more_attestations", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "_more", Type: "MoreAttestations"}}, Documentation: []Text{" Provide candidate receipts for parachains, in ascending order by id."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Slots", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Slots", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "AuctionCounter", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "AuctionIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of auctions that have been started so far."}}, StorageFunctionMetadataV10{Name: "ManagedIds", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Ordered list of all `ParaId` values that are managed by this module. This includes", " chains that are not yet deployed (but have won an auction in the future)."}}, StorageFunctionMetadataV10{Name: "Deposits", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ParaId", Value: "Vec>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Various amounts on deposit for each parachain. An entry in `ManagedIds` implies a non-", " default entry here.", "", " The actual amount locked on its behalf at any time is the maximum item in this list. The", " first item in the list is the amount locked for the current Lease Period. Following", " items are for the subsequent lease periods.", "", " The default value (an empty list) implies that the parachain no longer exists (or never", " existed) as far as this module is concerned.", "", " If a parachain doesn't exist *yet* but is scheduled to exist in the future, then it", " will be left-padded with one or more zeroes to denote the fact that nothing is held on", " deposit for the non-existent chain currently, but is held at some point in the future."}}, StorageFunctionMetadataV10{Name: "AuctionInfo", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "(LeasePeriodOf, T::BlockNumber)", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information relating to the current auction, if there is one.", "", " The first item in the tuple is the lease period index that the first of the four", " contiguous lease periods on auction is for. The second is the block number when the", " auction will \"begin to end\", i.e. the first block of the Ending Period of the auction."}}, StorageFunctionMetadataV10{Name: "Winning", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::BlockNumber", Value: "WinningData", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The winning bids for each of the 10 ranges at each block in the final Ending Period of", " the current auction. The map's key is the 0-based index into the Ending Period. The", " first block of the ending period is 0; the last is `EndingPeriod - 1`."}}, StorageFunctionMetadataV10{Name: "ReservedAmounts", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "Bidder", Value: "BalanceOf", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Amounts currently reserved in the accounts of the bidders currently winning", " (sub-)ranges."}}, StorageFunctionMetadataV10{Name: "OnboardQueue", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "LeasePeriodOf", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of Para IDs that have won and need to be on-boarded at an upcoming lease-period.", " This is cleared out on the first block of the lease period."}}, StorageFunctionMetadataV10{Name: "Onboarding", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ParaId", Value: "(LeasePeriodOf, IncomingParachain)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The actual on-boarding information. Only exists when one of the following is true:", " - It is before the lease period that the parachain should be on-boarded.", " - The full on-boarding information has not yet been provided and the parachain is not", " yet due to be off-boarded."}}, StorageFunctionMetadataV10{Name: "Offboarding", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ParaId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Off-boarding account; currency held on deposit for the parachain gets placed here if the", " parachain gets off-boarded; i.e. its lease period is up and it isn't renewed."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "new_auction", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "duration", Type: "Compact"}, FunctionArgumentMetadata{Name: "lease_period_index", Type: "Compact>"}}, Documentation: []Text{" Create a new auction.", "", " This can only happen when there isn't already an auction in progress and may only be", " called by the root origin. Accepts the `duration` of this auction and the", " `lease_period_index` of the initial lease period of the four that are to be auctioned."}}, FunctionMetadataV4{Name: "bid", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "sub", Type: "Compact"}, FunctionArgumentMetadata{Name: "auction_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "first_slot", Type: "Compact>"}, FunctionArgumentMetadata{Name: "last_slot", Type: "Compact>"}, FunctionArgumentMetadata{Name: "amount", Type: "Compact>"}}, Documentation: []Text{" Make a new bid from an account (including a parachain account) for deploying a new", " parachain.", "", " Multiple simultaneous bids from the same bidder are allowed only as long as all active", " bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted.", "", " - `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and", " funded by) the same account.", " - `auction_index` is the index of the auction to bid on. Should just be the present", " value of `AuctionCounter`.", " - `first_slot` is the first lease period index of the range to bid on. This is the", " absolute lease period index value, not an auction-specific offset.", " - `last_slot` is the last lease period index of the range to bid on. This is the", " absolute lease period index value, not an auction-specific offset.", " - `amount` is the amount to bid to be held as deposit for the parachain should the", " bid win. This amount is held throughout the range."}}, FunctionMetadataV4{Name: "bid_renew", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "auction_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "first_slot", Type: "Compact>"}, FunctionArgumentMetadata{Name: "last_slot", Type: "Compact>"}, FunctionArgumentMetadata{Name: "amount", Type: "Compact>"}}, Documentation: []Text{" Make a new bid from a parachain account for renewing that (pre-existing) parachain.", "", " The origin *must* be a parachain account.", "", " Multiple simultaneous bids from the same bidder are allowed only as long as all active", " bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted.", "", " - `auction_index` is the index of the auction to bid on. Should just be the present", " value of `AuctionCounter`.", " - `first_slot` is the first lease period index of the range to bid on. This is the", " absolute lease period index value, not an auction-specific offset.", " - `last_slot` is the last lease period index of the range to bid on. This is the", " absolute lease period index value, not an auction-specific offset.", " - `amount` is the amount to bid to be held as deposit for the parachain should the", " bid win. This amount is held throughout the range."}}, FunctionMetadataV4{Name: "set_offboarding", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "::Source"}}, Documentation: []Text{" Set the off-boarding information for a parachain.", "", " The origin *must* be a parachain account.", "", " - `dest` is the destination account to receive the parachain's deposit."}}, FunctionMetadataV4{Name: "fix_deploy_data", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "sub", Type: "Compact"}, FunctionArgumentMetadata{Name: "para_id", Type: "Compact"}, FunctionArgumentMetadata{Name: "code_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "initial_head_data", Type: "Vec"}}, Documentation: []Text{" Set the deploy information for a successful bid to deploy a new parachain.", "", " - `origin` must be the successful bidder account.", " - `sub` is the sub-bidder ID of the bidder.", " - `para_id` is the parachain ID allotted to the winning bidder.", " - `code_hash` is the hash of the parachain's Wasm validation function.", " - `initial_head_data` is the parachain's initial head data."}}, FunctionMetadataV4{Name: "elaborate_deploy_data", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "para_id", Type: "Compact"}, FunctionArgumentMetadata{Name: "code", Type: "Vec"}}, Documentation: []Text{" Note a new parachain's code.", "", " This must be called after `fix_deploy_data` and `code` must be the preimage of the", " `code_hash` passed there for the same `para_id`.", "", " This may be called before or after the beginning of the parachain's first lease period.", " If called before then the parachain will become active at the first block of its", " starting lease period. If after, then it will become active immediately after this call.", "", " - `_origin` is irrelevant.", " - `para_id` is the parachain ID whose code will be elaborated.", " - `code` is the preimage of the registered `code_hash` of `para_id`."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewLeasePeriod", Args: []Type{"LeasePeriod"}, Documentation: []Text{" A new lease period is beginning."}}, EventMetadataV4{Name: "AuctionStarted", Args: []Type{"AuctionIndex", "LeasePeriod", "BlockNumber"}, Documentation: []Text{" An auction started. Provides its index and the block number where it will begin to", " close and the first lease period of the quadruplet that is auctioned."}}, EventMetadataV4{Name: "AuctionClosed", Args: []Type{"AuctionIndex"}, Documentation: []Text{" An auction ended. All funds become unreserved."}}, EventMetadataV4{Name: "WonDeploy", Args: []Type{"NewBidder", "SlotRange", "ParaId", "Balance"}, Documentation: []Text{" Someone won the right to deploy a parachain. Balance amount is deducted for deposit."}}, EventMetadataV4{Name: "WonRenewal", Args: []Type{"ParaId", "SlotRange", "Balance", "Balance"}, Documentation: []Text{" An existing parachain won the right to continue.", " First balance is the extra amount reseved. Second is the total amount reserved."}}, EventMetadataV4{Name: "Reserved", Args: []Type{"AccountId", "Balance", "Balance"}, Documentation: []Text{" Funds were reserved for a winning bid. First balance is the extra amount reserved.", " Second is the total."}}, EventMetadataV4{Name: "Unreserved", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" Funds were unreserved since bidder is no longer active."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Registrar", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Registrar", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Parachains", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}, StorageFunctionMetadataV10{Name: "ThreadCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of threads to schedule per block."}}, StorageFunctionMetadataV10{Name: "SelectedThreads", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" An array of the queue of set of threads scheduled for the coming blocks; ordered by", " ascending para ID. There can be no duplicates of para ID in each list item."}}, StorageFunctionMetadataV10{Name: "Active", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(ParaId, Option<(CollatorId, Retriable)>)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Parathreads/chains scheduled for execution this block. If the collator ID is set, then", " a particular collator has already been chosen for the next block, and no other collator", " may provide the block. In this case we allow the possibility of the combination being", " retried in a later block, expressed by `Retriable`.", "", " Ordered by ParaId."}}, StorageFunctionMetadataV10{Name: "NextFreeId", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ParaId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0xe8, 0x3, 0x0, 0x0}, Documentation: []Text{" The next unused ParaId value. Start this high in order to keep low numbers for", " system-level chains."}}, StorageFunctionMetadataV10{Name: "PendingSwap", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ParaId", Value: "ParaId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Pending swap operations."}}, StorageFunctionMetadataV10{Name: "Paras", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ParaId", Value: "ParaInfo", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map of all registered parathreads/chains."}}, StorageFunctionMetadataV10{Name: "RetryQueue", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current queue for parathreads that should be retried."}}, StorageFunctionMetadataV10{Name: "Debtors", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ParaId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Users who have paid a parathread's deposit"}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "register_para", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "info", Type: "ParaInfo"}, FunctionArgumentMetadata{Name: "code", Type: "Vec"}, FunctionArgumentMetadata{Name: "initial_head_data", Type: "Vec"}}, Documentation: []Text{" Register a parachain with given code.", " Fails if given ID is already used."}}, FunctionMetadataV4{Name: "deregister_para", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}}, Documentation: []Text{" Deregister a parachain with given id"}}, FunctionMetadataV4{Name: "set_thread_count", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "count", Type: "u32"}}, Documentation: []Text{" Reset the number of parathreads that can pay to be scheduled in a single block.", "", " - `count`: The number of parathreads.", "", " Must be called from Root origin."}}, FunctionMetadataV4{Name: "register_parathread", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "code", Type: "Vec"}, FunctionArgumentMetadata{Name: "initial_head_data", Type: "Vec"}}, Documentation: []Text{" Register a parathread for immediate use.", "", " Must be sent from a Signed origin that is able to have ParathreadDeposit reserved.", " `code` and `initial_head_data` are used to initialize the parathread's state."}}, FunctionMetadataV4{Name: "select_parathread", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "_id", Type: "Compact"}, FunctionArgumentMetadata{Name: "_collator", Type: "CollatorId"}, FunctionArgumentMetadata{Name: "_head_hash", Type: "T::Hash"}}, Documentation: []Text{" Place a bid for a parathread to be progressed in the next block.", "", " This is a kind of special transaction that should be heavily prioritized in the", " transaction pool according to the `value`; only `ThreadCount` of them may be presented", " in any single block."}}, FunctionMetadataV4{Name: "deregister_parathread", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Deregister a parathread and retrieve the deposit.", "", " Must be sent from a `Parachain` origin which is currently a parathread.", "", " Ensure that before calling this that any funds you want emptied from the parathread's", " account is moved out; after this it will be impossible to retrieve them (without", " governance intervention)."}}, FunctionMetadataV4{Name: "swap", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "other", Type: "Compact"}}, Documentation: []Text{" Swap a parachain with another parachain or parathread. The origin must be a `Parachain`.", " The swap will happen only if there is already an opposite swap pending. If there is not,", " the swap will be stored in the pending swaps map, ready for a later confirmatory swap.", "", " The `ParaId`s remain mapped to the same head data and code so external code can rely on", " `ParaId` to be a long-term identifier of a notional \"parachain\". However, their", " scheduling info (i.e. whether they're a parathread or parachain), auction information", " and the auction deposit are switched."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "ParathreadRegistered", Args: []Type{"ParaId"}, Documentation: []Text{" A parathread was registered; its new ID is supplied."}}, EventMetadataV4{Name: "ParathreadDeregistered", Args: []Type{"ParaId"}, Documentation: []Text{" The parathread of the supplied ID was de-registered."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Utility", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Utility", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Multisigs", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true}, Key1: "T::AccountId", Key2: "[u8; 32]", Value: "Multisig, T::AccountId>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of open multisig operations."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "batch", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "calls", Type: "Vec<::Call>"}}, Documentation: []Text{" Send a batch of dispatch calls.", "", " This will execute until the first one fails and then stop.", "", " May be called from any origin.", "", " - `calls`: The calls to be dispatched from the same origin.", "", " # ", " - The sum of the weights of the `calls`.", " - One event.", " # ", "", " This will return `Ok` in all circumstances. To determine the success of the batch, an", " event is deposited. If a call failed and the batch was interrupted, then the", " `BatchInterrupted` event is deposited, along with the number of successful calls made", " and the error of the failed call. If all were successful, then the `BatchCompleted`", " event is deposited."}}, FunctionMetadataV4{Name: "as_sub", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "u16"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Send a call through an indexed pseudonym of the sender.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - The weight of the `call`.", " # "}}, FunctionMetadataV4{Name: "as_multi", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "maybe_timepoint", Type: "Option>"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Register approval for a dispatch to be made from a deterministic composite account if", " approved by a total of `threshold - 1` of `other_signatories`.", "", " If there are enough, then dispatch the call.", "", " Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus", " `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or", " is cancelled.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", " not the first approval, then it must be `Some`, with the timepoint (block number and", " transaction index) of the first approval transaction.", " - `call`: The call to be executed.", "", " NOTE: Unless this is the final approval, you will generally want to use", " `approve_as_multi` instead, since it only requires a hash of the call.", "", " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", " on success, result is `Ok` and the result from the interior call, if it was executed,", " may be found in the deposited `MultisigExecuted` event.", "", " # ", " - `O(S + Z + Call)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", " - One encode & hash, both of complexity `O(S)`.", " - Up to one binary search and insert (`O(logS + S)`).", " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", " - One event.", " - The weight of the `call`.", " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", " deposit taken for its lifetime of", " `MultisigDepositBase + threshold * MultisigDepositFactor`.", " # "}}, FunctionMetadataV4{Name: "approve_as_multi", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "maybe_timepoint", Type: "Option>"}, FunctionArgumentMetadata{Name: "call_hash", Type: "[u8; 32]"}}, Documentation: []Text{" Register approval for a dispatch to be made from a deterministic composite account if", " approved by a total of `threshold - 1` of `other_signatories`.", "", " Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus", " `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or", " is cancelled.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", " not the first approval, then it must be `Some`, with the timepoint (block number and", " transaction index) of the first approval transaction.", " - `call_hash`: The hash of the call to be executed.", "", " NOTE: If this is the final approval, you will want to use `as_multi` instead.", "", " # ", " - `O(S)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One encode & hash, both of complexity `O(S)`.", " - Up to one binary search and insert (`O(logS + S)`).", " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", " - One event.", " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", " deposit taken for its lifetime of", " `MultisigDepositBase + threshold * MultisigDepositFactor`.", " # "}}, FunctionMetadataV4{Name: "cancel_as_multi", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "timepoint", Type: "Timepoint"}, FunctionArgumentMetadata{Name: "call_hash", Type: "[u8; 32]"}}, Documentation: []Text{" Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", " for this operation will be unreserved on success.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `timepoint`: The timepoint (block number and transaction index) of the first approval", " transaction for this dispatch.", " - `call_hash`: The hash of the call to be executed.", "", " # ", " - `O(S)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One encode & hash, both of complexity `O(S)`.", " - One event.", " - I/O: 1 read `O(S)`, one remove.", " - Storage: removes one item.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "BatchInterrupted", Args: []Type{"u32", "DispatchError"}, Documentation: []Text{" Batch of dispatches did not complete fully. Index of first failing dispatch given, as", " well as the error."}}, EventMetadataV4{Name: "BatchCompleted", Args: []Type(nil), Documentation: []Text{" Batch of dispatches completed fully with no error."}}, EventMetadataV4{Name: "NewMultisig", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" A new multisig operation has begun. First param is the account that is approving,", " second is the multisig account."}}, EventMetadataV4{Name: "MultisigApproval", Args: []Type{"AccountId", "Timepoint", "AccountId"}, Documentation: []Text{" A multisig operation has been approved by someone. First param is the account that is", " approving, third is the multisig account."}}, EventMetadataV4{Name: "MultisigExecuted", Args: []Type{"AccountId", "Timepoint", "AccountId", "DispatchResult"}, Documentation: []Text{" A multisig operation has been executed. First param is the account that is", " approving, third is the multisig account."}}, EventMetadataV4{Name: "MultisigCancelled", Args: []Type{"AccountId", "Timepoint", "AccountId"}, Documentation: []Text{" A multisig operation has been cancelled. First param is the account that is", " cancelling, third is the multisig account."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Identity", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Sudo", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "IdentityOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Registration>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information that is pertinent to identify the entity behind an account."}}, StorageFunctionMetadataV10{Name: "SuperOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "(T::AccountId, Data)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The super-identity of an alternative \"sub\" identity together with its name, within that", " context. If the account is not some other account's sub-identity, then just `None`."}}, StorageFunctionMetadataV10{Name: "SubsOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: true, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "(BalanceOf, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Alternative \"sub\" identities of this account.", "", " The first item is the deposit, the second is a vector of the accounts."}}, StorageFunctionMetadataV10{Name: "Registrars", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec, T::AccountId>>>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of registrars. Not expected to get very big as can only be added through a", " special origin (likely a council motion).", "", " The index into this can be cast to `RegistrarIndex` to get a valid value."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "add_registrar", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "account", Type: "T::AccountId"}}, Documentation: []Text{" Add a registrar to the system.", "", " The dispatch origin for this call must be `RegistrarOrigin` or `Root`.", "", " - `account`: the account of the registrar.", "", " Emits `RegistrarAdded` if successful.", "", " # ", " - `O(R)` where `R` registrar-count (governance-bounded).", " - One storage mutation (codec `O(R)`).", " - One event.", " # "}}, FunctionMetadataV4{Name: "set_identity", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "info", Type: "IdentityInfo"}}, Documentation: []Text{" Set an account's identity information and reserve the appropriate deposit.", "", " If the account already has identity information, the deposit is taken as part payment", " for the new deposit.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " identity.", "", " - `info`: The identity information.", "", " Emits `IdentitySet` if successful.", "", " # ", " - `O(X + R)` where `X` additional-field-count (deposit-bounded).", " - At most two balance operations.", " - One storage mutation (codec `O(X + R)`).", " - One event.", " # "}}, FunctionMetadataV4{Name: "set_subs", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "subs", Type: "Vec<(T::AccountId, Data)>"}}, Documentation: []Text{" Set the sub-accounts of the sender.", "", " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " identity.", "", " - `subs`: The identity's sub-accounts.", "", " # ", " - `O(S)` where `S` subs-count (hard- and deposit-bounded).", " - At most two balance operations.", " - At most O(2 * S + 1) storage mutations; codec complexity `O(1 * S + S * 1)`);", " one storage-exists.", " # "}}, FunctionMetadataV4{Name: "clear_identity", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Clear an account's identity info and all sub-account and return all deposits.", "", " Payment: All reserved balances on the account are returned.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " identity.", "", " Emits `IdentityCleared` if successful.", "", " # ", " - `O(R + S + X)`.", " - One balance-reserve operation.", " - `S + 2` storage deletions.", " - One event.", " # "}}, FunctionMetadataV4{Name: "request_judgement", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reg_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "max_fee", Type: "Compact>"}}, Documentation: []Text{" Request a judgement from a registrar.", "", " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", " given.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a", " registered identity.", "", " - `reg_index`: The index of the registrar whose judgement is requested.", " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", "", " ```nocompile", " Self::registrars(reg_index).uwnrap().fee", " ```", "", " Emits `JudgementRequested` if successful.", "", " # ", " - `O(R + X)`.", " - One balance-reserve operation.", " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.", " - One event.", " # "}}, FunctionMetadataV4{Name: "cancel_request", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reg_index", Type: "RegistrarIndex"}}, Documentation: []Text{" Cancel a previous request.", "", " Payment: A previously reserved deposit is returned on success.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a", " registered identity.", "", " - `reg_index`: The index of the registrar whose judgement is no longer requested.", "", " Emits `JudgementUnrequested` if successful.", "", " # ", " - `O(R + X)`.", " - One balance-reserve operation.", " - One storage mutation `O(R + X)`.", " - One event.", " # "}}, FunctionMetadataV4{Name: "set_fee", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "fee", Type: "Compact>"}}, Documentation: []Text{" Set the fee required for a judgement to be requested from a registrar.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `index`.", "", " - `index`: the index of the registrar whose fee is to be set.", " - `fee`: the new fee.", "", " # ", " - `O(R)`.", " - One storage mutation `O(R)`.", " # "}}, FunctionMetadataV4{Name: "set_account_id", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "new", Type: "T::AccountId"}}, Documentation: []Text{" Change the account associated with a registrar.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `index`.", "", " - `index`: the index of the registrar whose fee is to be set.", " - `new`: the new account ID.", "", " # ", " - `O(R)`.", " - One storage mutation `O(R)`.", " # "}}, FunctionMetadataV4{Name: "set_fields", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "fields", Type: "IdentityFields"}}, Documentation: []Text{" Set the field information for a registrar.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `index`.", "", " - `index`: the index of the registrar whose fee is to be set.", " - `fields`: the fields that the registrar concerns themselves with.", "", " # ", " - `O(R)`.", " - One storage mutation `O(R)`.", " # "}}, FunctionMetadataV4{Name: "provide_judgement", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reg_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "target", Type: "::Source"}, FunctionArgumentMetadata{Name: "judgement", Type: "Judgement>"}}, Documentation: []Text{" Provide a judgement for an account's identity.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `reg_index`.", "", " - `reg_index`: the index of the registrar whose judgement is being made.", " - `target`: the account whose identity the judgement is upon. This must be an account", " with a registered identity.", " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.", "", " Emits `JudgementGiven` if successful.", "", " # ", " - `O(R + X)`.", " - One balance-transfer operation.", " - Up to one account-lookup operation.", " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.", " - One event.", " # "}}, FunctionMetadataV4{Name: "kill_identity", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "::Source"}}, Documentation: []Text{" Remove an account's identity and sub-account information and slash the deposits.", "", " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", " `Slash`. Verification request deposits are not returned; they should be cancelled", " manually using `cancel_request`.", "", " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.", "", " - `target`: the account whose identity the judgement is upon. This must be an account", " with a registered identity.", "", " Emits `IdentityKilled` if successful.", "", " # ", " - `O(R + S + X)`.", " - One balance-reserve operation.", " - `S + 2` storage mutations.", " - One event.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "IdentitySet", Args: []Type{"AccountId"}, Documentation: []Text{" A name was set or reset (which will remove all judgements)."}}, EventMetadataV4{Name: "IdentityCleared", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A name was cleared, and the given balance returned."}}, EventMetadataV4{Name: "IdentityKilled", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A name was removed and the given balance slashed."}}, EventMetadataV4{Name: "JudgementRequested", Args: []Type{"AccountId", "RegistrarIndex"}, Documentation: []Text{" A judgement was asked from a registrar."}}, EventMetadataV4{Name: "JudgementUnrequested", Args: []Type{"AccountId", "RegistrarIndex"}, Documentation: []Text{" A judgement request was retracted."}}, EventMetadataV4{Name: "JudgementGiven", Args: []Type{"AccountId", "RegistrarIndex"}, Documentation: []Text{" A judgement was given by a registrar."}}, EventMetadataV4{Name: "RegistrarAdded", Args: []Type{"RegistrarIndex"}, Documentation: []Text{" A registrar was added."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "TooManySubAccounts", Documentation: []Text{" Too many subs-accounts."}}, ErrorMetadataV8{Name: "NotFound", Documentation: []Text{" Account isn't found."}}, ErrorMetadataV8{Name: "NotNamed", Documentation: []Text{" Account isn't named."}}, ErrorMetadataV8{Name: "EmptyIndex", Documentation: []Text{" Empty index."}}, ErrorMetadataV8{Name: "FeeChanged", Documentation: []Text{" Fee is changed."}}, ErrorMetadataV8{Name: "NoIdentity", Documentation: []Text{" No identity found."}}, ErrorMetadataV8{Name: "StickyJudgement", Documentation: []Text{" Sticky judgement."}}, ErrorMetadataV8{Name: "JudgementGiven", Documentation: []Text{" Judgement given."}}, ErrorMetadataV8{Name: "InvalidJudgement", Documentation: []Text{" Invalid judgement."}}, ErrorMetadataV8{Name: "InvalidIndex", Documentation: []Text{" The index is invalid."}}, ErrorMetadataV8{Name: "InvalidTarget", Documentation: []Text{" The target is invalid."}}}}}}} //nolint:lll - -// ExamplaryMetadataV10PolkadotString is example metadata v10 from Polkadot encoded in a hex string -var ExamplaryMetadataV10PolkadotString = "0x6d6574610a701853797374656d011853797374656d34304163636f756e744e6f6e636501010130543a3a4163636f756e74496420543a3a496e646578001000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e4c416c6c45787472696e73696373576569676874000018576569676874040004150120546f74616c2077656967687420666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101010c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101011c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e011c2866696c6c5f626c6f636b0004210120412062696720646973706174636820746861742077696c6c20646973616c6c6f7720616e79206f74686572207472616e73616374696f6e20746f20626520696e636c756465642e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697804187072656669780c4b6579041501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e01084045787472696e7369635375636365737304304469737061746368496e666f049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f045420416e2065787472696e736963206661696c65642e00006052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e000000001042616265011042616265242845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401000c75363420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401000c75363420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100205b75383b2033325d80000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e384e65787452616e646f6d6e6573730100205b75383b2033325d800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101010c753332345665633c5b75383b2033325d3e000400002c496e697469616c697a65640000204d6179626556726604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e010000083445706f63684475726174696f6e0c753634205802000000000000080d0120546865206e756d626572206f66202a2a736c6f74732a2a207468617420616e2065706f63682074616b65732e20576520636f75706c652073657373696f6e7320746ffc2065706f6368732c20692e652e2077652073746172742061206e65772073657373696f6e206f6e636520746865206e65772065706f636820626567696e732e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e002454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e245820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420b80b00000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e001c496e6469636573011c496e6469636573082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d5365740101013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e00002042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c56657374696e6700010130543a3a4163636f756e744964ac56657374696e675363686564756c653c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e00750120606672616d655f73797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e00650120606672616d655f73797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b7301010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e64d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642edc2020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765725901202020202060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e6365646020616e642060543a3a4f6e4672656542616c616e63655a65726f3a3a6f6e5f667265655f62616c616e63655f7a65726f602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e00302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e349420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e0851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e4d6f64756c652e68746d6c236d6574686f642e7472616e736665720114284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7408244163636f756e7449641c42616c616e6365045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504c420412062616c616e6365207761732073657420627920726f6f74202877686f2c20667265652c207265736572766564292e1c4465706f73697408244163636f756e7449641c42616c616e636504dc20536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e0c484578697374656e7469616c4465706f73697428543a3a42616c616e63654000e40b5402000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e7366657246656528543a3a42616c616e63654000e40b540200000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656528543a3a42616c616e63654000e40b54020000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c204f766572666c6f77047420476f7420616e206f766572666c6f7720616674657220616464696e674c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d6578697374485472616e73616374696f6e5061796d656e74012042616c616e63657304444e6578744665654d756c7469706c6965720100284d756c7469706c69657220000000000000000000000008485472616e73616374696f6e426173654665653042616c616e63654f663c543e4000e40b5402000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e1f505000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e0028417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e1c5374616b696e67011c5374616b696e67683856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010130543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010130543a3a4163636f756e7449643856616c696461746f72507265667301040004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010130543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e01040010650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e003501204e4f54453a206973207072697661746520736f20746861742077652063616e20656e73757265207570677261646564206265666f726520616c6c207479706963616c2061636365737365732ed8204469726563742073746f7261676520415049732063616e207374696c6c2062797061737320746869732070726f74656374696f6e2e1c5374616b65727301010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c000000104d01204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e277420697465726174651901207468726f7567682076616c696461746f727320686572652c2062757420796f752063616e2066696e64207468656d20696e207468652053657373696f6e206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010020457261496e6465781000000000045c205468652063757272656e742065726120696e6465782e3c43757272656e74457261537461727401002c4d6f6d656e744f663c543e200000000000000000047820546865207374617274206f66207468652063757272656e74206572612e6c43757272656e74457261537461727453657373696f6e496e64657801003053657373696f6e496e646578100000000004d0205468652073657373696f6e20696e646578206174207768696368207468652063757272656e742065726120737461727465642e5843757272656e74457261506f696e74734561726e6564010024457261506f696e7473140000000000040d01205265776172647320666f72207468652063757272656e74206572612e205573696e6720696e6469636573206f662063757272656e7420656c6563746564207365742e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e20466f72636545726101001c466f7263696e670400041d01205472756520696620746865206e6578742073657373696f6e206368616e67652077696c6c2062652061206e657720657261207265676172646c657373206f6620696e6465782e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010120457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04000425012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e4c56616c696461746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2903040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e03040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010130543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101018c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e3853746f7261676556657273696f6e01000c75333210000000000490205468652076657273696f6e206f662073746f7261676520666f7220757067726164652e014410626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e3c65012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e006d01204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e656420756e6c65737325012074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3865012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652ea501202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c656420766961206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e28203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e18e0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e002c2023203c7765696768743ef0202d2054696d6520636f6d706c65786974793a204f2831292e20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e302023203c2f7765696768743e4477697468647261775f756e626f6e64656400402d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f7250726566732ce8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e2501202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f66206074617267657473602c982077686963682069732063617070656420617420604d41585f4e4f4d494e4154494f4e53602ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965654452657761726444657374696e6174696f6e2cb8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c90202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e6f5f657261730014b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e34666f7263655f6e65775f65726100184d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e34666f7263655f756e7374616b650414737461736830543a3a4163636f756e744964040d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e50666f7263655f6e65775f6572615f616c776179730014050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e002c2023203c7765696768743e50202d204f6e652073746f72616765207772697465302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e1c45012043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e2043616e2062652063616c6c6564206279206569746865722074686520726f6f74206f726967696e206f7270207468652060543a3a536c61736843616e63656c4f726967696e602e05012070617373696e67207468652065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e54202d204f6e652073746f726167652077726974652e302023203c2f7765696768743e010c18526577617264081c42616c616e63651c42616c616e636508510120416c6c2076616c696461746f72732068617665206265656e207265776172646564206279207468652066697273742062616c616e63653b20746865207365636f6e64206973207468652072656d61696e6465728c2066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e14536c61736808244163636f756e7449641c42616c616e6365042501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6448206e6f742062652070726f6365737365642e083853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e646578101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e28344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e44496e73756666696369656e7456616c756504cc2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e204f6666656e63657301204f6666656e6365730c1c5265706f727473000101345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010201104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010101104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e636508104b696e64384f706171756554696d65536c6f7408550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e00001c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b6579730002051c5665633c75383e38543a3a56616c696461746f7249641c543a3a4b657973010400109c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e204b65794f776e65720002051c5665633c75383e50284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496401040010250120546865206f776e6572206f662061206b65792e20546865207365636f6e64206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e0104207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e28e42053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b6579602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e88202d204f286c6f67206e2920696e206e756d626572206f66206163636f756e74732e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e044044454455505f4b45595f50524546495814265b75385d38343a73657373696f6e3a6b6579730865012055736564206173206669727374206b657920666f7220604e6578744b6579736020616e6420604b65794f776e65726020746f2070757420616c6c20746865206461746120696e746f207468652073616d65206272616e636834206f662074686520747269652e0c30496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e3c46696e616c697479547261636b65720001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d626572106500000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657210e8030000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e0838416c72656164795570646174656404c82046696e616c2068696e74206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b1c42616448696e7404902046696e616c697a6564206865696768742061626f766520626c6f636b206e756d6265721c4772616e647061013c4772616e64706146696e616c6974791c2c417574686f726974696573010034417574686f726974794c6973740400102c20444550524543415445440061012054686973207573656420746f2073746f7265207468652063757272656e7420617574686f72697479207365742c20776869636820686173206265656e206d6967726174656420746f207468652077656c6c2d6b6e6f776e94204752414e4450415f415554484f52495445535f4b455920756e686173686564206b65792e14537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001011453657449643053657373696f6e496e64657800040004c1012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f7220776869636820697473206d656d62657273207765726520726573706f6e7369626c652e0104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e010c384e6577417574686f7269746965730434417574686f726974794c6973740490204e657720617574686f726974792073657420686173206265656e206170706c6965642e1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e00102c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e20496d4f6e6c696e650120496d4f6e6c696e651020476f737369704174010038543a3a426c6f636b4e756d626572100000000004a02054686520626c6f636b206e756d626572207768656e2077652073686f756c6420676f737369702e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002013053657373696f6e496e6465782441757468496e6465781c5665633c75383e01040008e420466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e646578608c20746f20606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102013053657373696f6e496e64657838543a3a56616c696461746f7249640c75333201100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f662060543a3a56616c696461746f7249646020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500010c444865617274626561745265636569766564042c417574686f72697479496404c02041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964601c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e0431012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e63652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e48417574686f72697479446973636f766572790001000000002444656d6f6372616379012444656d6f6372616379403c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e24507265696d616765730001011c543a3a48617368d4285665633c75383e2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d62657229000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e244465706f7369744f660001012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001013c5265666572656e64756d496e6465789c5265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173683e00040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e34446973706174636851756575650100bc5665633c28543a3a426c6f636b4e756d6265722c20543a3a486173682c205265666572656e64756d496e646578293e0400044101205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e2053746f726564206f72646572656420627920626c6f636b206e756d6265722e24566f74657273466f720101013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f660101017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f7465000400106101204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c794d012069662060766f746572735f666f726020696e636c756465732074686520766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468655d012064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b2060766f746572735f666f72602c207468656e20796f752063616ef420616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e2c44656c65676174696f6e7301010130543a3a4163636f756e7449646828543a3a4163636f756e7449642c20436f6e76696374696f6e2901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101011c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e01541c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e80202d2054776f204442206368616e6765732c206f6e6520444220656e7472792e302023203c2f7765696768743e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e2870726f78795f766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c510120566f746520696e2061207265666572656e64756d206f6e20626568616c66206f6620612073746173682e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374f8207468652070726f706f73616c3b20206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578085101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368083101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a48617368145901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e6065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a48617368144901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e28666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d626572245101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9820202060456d657267656e6379566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736804bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e64657804a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e247365745f70726f7879041470726f787930543a3a4163636f756e7449641498205370656369667920612070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3072657369676e5f70726f787900149820436c656172207468652070726f78792e2043616c6c6564206279207468652070726f78792e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e3072656d6f76655f70726f7879041470726f787930543a3a4163636f756e744964149820436c656172207468652070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e2064656c65676174650808746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e143c2044656c656761746520766f74652e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e28756e64656c656761746500144420556e64656c656761746520766f74652e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e58636c6561725f7075626c69635f70726f706f73616c7300040101205665746f20616e6420626c61636b6c697374207468652070726f706f73616c20686173682e204d7573742062652066726f6d20526f6f74206f726967696e2e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e0861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e0845012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265b420696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e34726561705f707265696d616765043470726f706f73616c5f686173681c543a3a4861736814f42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e01402050726f706f736564082450726f70496e6465781c42616c616e636504c02041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e04dc2041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404602041207265666572656e64756d2068617320626567756e2e18506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f74506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c6564043c5265666572656e64756d496e64657804842041207265666572656e64756d20686173206265656e2063616e63656c6c65642e204578656375746564083c5265666572656e64756d496e64657810626f6f6c047420412070726f706f73616c20686173206265656e20656e61637465642e2444656c65676174656408244163636f756e744964244163636f756e74496404e020416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404244163636f756e74496404e820416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d626572049820416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504e020412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636504150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964045d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c6563746564206279207468652072656170657220286c617374206974656d292e1c3c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d6265721000c2010014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210c089010004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210c089010004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400010a5d4e8000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e54456d657267656e6379566f74696e67506572696f6438543a3a426c6f636b4e756d626572100807000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210c089010004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e4000e1f5050000000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e582056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f74206578697374204e6f7450726f78790430204e6f7420612070726f787920426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c20747769636530416c726561647950726f7879044020416c726561647920612070726f78792857726f6e6750726f787904302057726f6e672070726f7879304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e74144561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e671c436f756e63696c014c496e7374616e636531436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0018244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642148546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0018244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642144456c656374696f6e7350687261676d656e014050687261676d656e456c656374696f6e181c4d656d626572730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e040004f0205468652063757272656e7420656c6563746564206d656d626572736869702e20536f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400044901205468652063757272656e742072756e6e6572735f75702e20536f72746564206261736564206f6e206c6f7720746f2068696768206d657269742028776f72736520746f20626573742072756e6e6572292e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e1c566f7465734f6601010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004010120566f746573206f66206120706172746963756c617220766f7465722c20776974682074686520726f756e6420696e646578206f662074686520766f7465732e1c5374616b654f6601010130543a3a4163636f756e7449643042616c616e63654f663c543e0040000000000000000000000000000000000464204c6f636b6564207374616b65206f66206120766f7465722e2843616e646964617465730100445665633c543a3a4163636f756e7449643e0400086501205468652070726573656e742063616e646964617465206c6973742e20536f72746564206261736564206f6e206163636f756e742069642e20412063757272656e74206d656d6265722063616e206e6576657220656e7465720101207468697320766563746f7220616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e3c050120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792eac2020202d206265206c657373207468616e20746865206e756d626572206f662063616e646964617465732e005d012055706f6e20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e64206120626f6e6420616d6f756e742069732072657365727665642e5d012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f206e6f7420706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865206c6f636ba020616e64206b65657020736f6d6520666f722066757274686572207472616e73616374696f6e732e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f283129c8205772697465733a204f28562920676976656e2060566020766f7465732e205620697320626f756e6465642062792031362e302023203c2f7765696768743e3072656d6f76655f766f746572001c21012052656d6f766520606f726967696e60206173206120766f7465722e20546869732072656d6f76657320746865206c6f636b20616e642072657475726e732074686520626f6e642e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f28312934205772697465733a204f283129302023203c2f7765696768743e507265706f72745f646566756e63745f766f74657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d01205265706f727420607461726765746020666f72206265696e6720616e20646566756e637420766f7465722e20496e2063617365206f6620612076616c6964207265706f72742c20746865207265706f727465722069735d012072657761726465642062792074686520626f6e6420616d6f756e74206f662060746172676574602e204f74686572776973652c20746865207265706f7274657220697473656c662069732072656d6f76656420616e645c20746865697220626f6e6420697320736c61736865642e0088204120646566756e637420766f74657220697320646566696e656420746f2062653a4d012020202d206120766f7465722077686f73652063757272656e74207375626d697474656420766f7465732061726520616c6c20696e76616c69642e20692e652e20616c6c206f66207468656d20617265206e6fb420202020206c6f6e67657220612063616e646964617465206e6f7220616e20616374697665206d656d6265722e002c2023203c7765696768743e2c202323232320537461746515012052656164733a204f284e4c6f674d2920676976656e204d2063757272656e742063616e6469646174657320616e64204e20766f74657320666f722060746172676574602e34205772697465733a204f283129302023203c2f7765696768743e407375626d69745f63616e646964616379003478205375626d6974206f6e6573656c6620666f722063616e6469646163792e006420412063616e6469646174652077696c6c206569746865723aec2020202d204c6f73652061742074686520656e64206f6620746865207465726d20616e6420666f7266656974207468656972206465706f7369742e2d012020202d2057696e20616e64206265636f6d652061206d656d6265722e204d656d626572732077696c6c206576656e7475616c6c7920676574207468656972207374617368206261636b2e55012020202d204265636f6d6520612072756e6e65722d75702e2052756e6e6572732d75707320617265207265736572766564206d656d6265727320696e2063617365206f6e65206765747320666f72636566756c6c7934202020202072656d6f7665642e002c2023203c7765696768743e2c20232323232053746174658c2052656164733a204f284c6f674e2920476976656e204e2063616e646964617465732e34205772697465733a204f283129302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379002451012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a4101202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c2074686520626f6e64206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e5901202d20606f726967696e6020697320612063757272656e742072756e6e65722075702e20496e207468697320636173652c2074686520626f6e6420697320756e72657365727665642c2072657475726e656420616e64842020206f726967696e2069732072656d6f76656420617320612072756e6e65722e4d01202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c2074686520626f6e6420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f766f746572605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c7920757365642e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865f4206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20726f756e6420697320737461727465642e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e2c2023232323205374617465582052656164733a204f28646f5f70687261676d656e295c205772697465733a204f28646f5f70687261676d656e29302023203c2f7765696768743e01141c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e0855012041206e6577207465726d2077697468206e6577206d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e6469646174657320657869737465642c206e6f742074686174450120656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e656420666f72207468697320707572706f73652e24456d7074795465726d0004d8204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e304d656d6265724b69636b656404244163636f756e7449640845012041206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f74342060456d7074795465726d602e3c4d656d62657252656e6f756e63656404244163636f756e74496404a02041206d656d626572206861732072656e6f756e6365642074686569722063616e6469646163792e34566f7465725265706f727465640c244163636f756e744964244163636f756e74496410626f6f6c086101204120766f7465722028666972737420656c656d656e742920776173207265706f72746564202862797420746865207365636f6e6420656c656d656e742920776974682074686520746865207265706f7274206265696e678c207375636365737366756c206f72206e6f742028746869726420656c656d656e74292e143443616e646964616379426f6e643042616c616e63654f663c543e400010a5d4e800000000000000000000000028566f74696e67426f6e643042616c616e63654f663c543e4000743ba40b00000000000000000000000038446573697265644d656d626572730c753332100d00000000404465736972656452756e6e65727355700c753332100700000000305465726d4475726174696f6e38543a3a426c6f636b4e756d6265721040380000003830556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3052756e6e65725375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e34496e76616c69644f726967696e04c8204f726967696e206973206e6f7420612063616e6469646174652c206d656d626572206f7220612072756e6e65722075702e244e6f744d656d6265720438204e6f742061206d656d6265722e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970041c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e0114286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00b4204d6179206f6e6c792062652063616c6c65642066726f6d20604164644f726967696e60206f7220726f6f742e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00c0204d6179206f6e6c792062652063616c6c65642066726f6d206052656d6f76654f726967696e60206f7220726f6f742e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e7449640cc02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00b8204d6179206f6e6c792062652063616c6c65642066726f6d2060537761704f726967696e60206f7220726f6f742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00bc204d6179206f6e6c792062652063616c6c65642066726f6d206052657365744f726967696e60206f7220726f6f742e286368616e67655f6b6579040c6e657730543a3a4163636f756e7449640cd82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e000020547265617375727901205472656173757279143450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e10546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c59012054697073207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001051c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e0120387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173d420605469705265706f72744465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e9c202d20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e64202d204f6e652062616c616e6365206f7065726174696f6e2e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e24202d20604f2854296064202d204f6e652062616c616e6365206f7065726174696f6e2ec4202d2054776f2073746f726167652072656d6f76616c7320286f6e6520726561642c20636f64656320604f28542960292e34202d204f6e65206576656e742e302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c75653042616c616e63654f663c543e4cf4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e4101202d20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e2060546020697345012020206e61747572616c6c79206361707065642061732061206d656d62657273686970207365742c20605260206973206c696d69746564207468726f756768207472616e73616374696f6e2d73697a652e0d01202d2054776f2073746f7261676520696e73657274696f6e732028636f6465637320604f285229602c20604f28542960292c206f6e65207265616420604f283129602e34202d204f6e65206576656e742e302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c75653042616c616e63654f663c543e4cb4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743e24202d20604f285429600101202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28542960292c206f6e652073746f72616765207265616420604f283129602e4c202d20557020746f206f6e65206576656e742e302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368386020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743e24202d20604f28542960e4202d204f6e652073746f726167652072657472696576616c2028636f64656320604f285429602920616e642074776f2072656d6f76616c732e88202d20557020746f2074687265652062616c616e6365206f7065726174696f6e732e302023203c2f7765696768743e3470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e94202d204f6e65204442206368616e67652c206f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e1cfc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e205d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e012c2050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504b420412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f736974041c42616c616e6365048020536f6d652066756e64732068617665206265656e206465706f73697465642e184e657754697004104861736804982041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e28546970436c6f73696e6704104861736804dc2041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504882041207469702073756767657374696f6e20686173206265656e20636c6f7365642e3054697052657472616374656404104861736804942041207469702073756767657374696f6e20686173206265656e207265747261637465642e203050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3042616c616e63654f663c543e400040e59c301200000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080510100048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c10000000000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e30546970436f756e74646f776e38543a3a426c6f636b4e756d62657210403800000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e7404140431012054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e400010a5d4e8000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e5c5469705265706f72744465706f736974506572427974653042616c616e63654f663c543e4000e40b540200000000000000000000000409012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e2e2070496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e50496e76616c696450726f706f73616c496e646578046c204e6f2070726f706f73616c206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e18436c61696d730118436c61696d730c18436c61696d730001013c457468657265756d416464726573733042616c616e63654f663c543e0004000014546f74616c01003042616c616e63654f663c543e4000000000000000000000000000000000001c56657374696e670001013c457468657265756d41646472657373b02842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722900040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e010814636c61696d08106465737430543a3a4163636f756e74496448657468657265756d5f7369676e61747572653845636473615369676e61747572650438204d616b65206120636c61696d2e286d696e745f636c61696d0c0c77686f3c457468657265756d416464726573731476616c75653042616c616e63654f663c543e4076657374696e675f7363686564756c65d04f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d626572293e0488204164642061206e657720636c61696d2c20696620796f752061726520726f6f742e01041c436c61696d65640c244163636f756e7449643c457468657265756d416464726573731c42616c616e6365046c20536f6d656f6e6520636c61696d656420736f6d6520444f54732e041850726566697814265b75385d807c506179204b534d7320746f20746865204b7573616d61206163636f756e743a04150120546865205072656669782074686174206973207573656420696e207369676e656420457468657265756d206d6573736167657320666f722074686973206e6574776f726b002850617261636861696e73012850617261636861696e73242c417574686f7269746965730100405665633c56616c696461746f7249643e0400049420416c6c20617574686f72697469657327206b65797320617420746865206d6f6d656e742e10436f6465000101185061726149641c5665633c75383e0004000498205468652070617261636861696e7320726567697374657265642061742070726573656e742e144865616473000101185061726149641c5665633c75383e00040004cc20546865206865616473206f66207468652070617261636861696e7320726567697374657265642061742070726573656e742e2857617465726d61726b730001011850617261496438543a3a426c6f636b4e756d6265720004000cfc205468652077617465726d61726b2068656967687473206f66207468652070617261636861696e7320726567697374657265642061742070726573656e742e410120466f722065766572792070617261636861696e2c20746869732069732074686520626c6f636b206865696768742066726f6d20776869636820616c6c206d6573736167657320746172676574696e675d0120746861742070617261636861696e2068617665206265656e2070726f6365737365642e2043616e20626520604e6f6e6560206f6e6c79206966207468652070617261636861696e20646f65736e27742065786973742e3c556e726f75746564496e67726573730001016028543a3a426c6f636b4e756d6265722c20506172614964294c5665633c285061726149642c2048617368293e00040010550120556e726f7574656420696e67726573732e204d6170732028426c6f636b4e756d6265722c20746f5f636861696e2920706169727320746f205b2866726f6d5f636861696e2c206567726573735f726f6f74295d2e004d01205468657265206d617920626520616e20656e74727920756e6465722028692c20702920696e2074686973206d617020666f722065766572792069206265747765656e207468652070617261636861696e2773842077617465726d61726b20616e64207468652063757272656e7420626c6f636b2e4852656c61794469737061746368517565756501010118506172614964485665633c5570776172644d6573736167653e000400081d01204d6573736167657320726561647920746f2062652064697370617463686564206f6e746f207468652072656c617920636861696e2e204974206973207375626a65637420746fc820604d41585f4d4553534147455f434f554e546020616e64206057415445524d41524b5f4d4553534147455f53495a45602e5852656c61794469737061746368517565756553697a650101011850617261496428287533322c2075333229002000000000000000000c45012053697a65206f6620746865206469737061746368207175657565732e205365706172617465642066726f6d2061637475616c206461746120696e206f7264657220746f2061766f696420636f73746c795901206465636f64696e67207768656e20636865636b696e6720726563656970742076616c69646974792e204669727374206974656d20696e207475706c652069732074686520636f756e74206f66206d65737361676573fc097365636f6e642069662074686520746f74616c206c656e6774682028696e20627974657329206f6620746865206d657373616765207061796c6f6164732e344e65656473446973706174636801002c5665633c5061726149643e040004110120546865206f726465726564206c697374206f662050617261496473207468617420686176652061206052656c6179446973706174636851756575656020656e7472792e2444696455706461746500002c5665633c5061726149643e040010650120536f6d65206966207468652070617261636861696e20686561647320676574207570646174656420696e207468697320626c6f636b2c20616c6f6e672077697468207468652070617261636861696e204944732074686174350120646964207570646174652e204f72646572656420696e207468652073616d652077617920617320607265676973747261723a3a416374697665602028692e652e20627920506172614964292e0064204e6f6e65206966206e6f742079657420757064617465642e0104247365745f686561647304146865616473585665633c417474657374656443616e6469646174653e0415012050726f766964652063616e64696461746520726563656970747320666f722070617261636861696e732c20696e20617363656e64696e67206f726465722062792069642e000000304174746573746174696f6e7301304174746573746174696f6e730c40526563656e7450617261426c6f636b7300010138543a3a426c6f636b4e756d62657244496e636c75646564426c6f636b733c543e00040008f02041206d617070696e672066726f6d206d6f64756c617220626c6f636b206e756d62657220286e2025204174746573746174696f6e506572696f6429cc20746f2073657373696f6e20696e64657820616e6420746865206c697374206f662063616e646964617465206861736865732e5450617261426c6f636b4174746573746174696f6e7300020138543a3a426c6f636b4e756d626572104861736850426c6f636b4174746573746174696f6e733c543e00040004a8204174746573746174696f6e73206f6e206120726563656e742070617261636861696e20626c6f636b2e24446964557064617465010010626f6f6c0400000104446d6f72655f6174746573746174696f6e7304145f6d6f7265404d6f72654174746573746174696f6e730415012050726f766964652063616e64696461746520726563656970747320666f722070617261636861696e732c20696e20617363656e64696e67206f726465722062792069642e00000014536c6f74730114536c6f7473243841756374696f6e436f756e74657201003041756374696f6e496e646578100000000004d820546865206e756d626572206f662061756374696f6e7320746861742068617665206265656e207374617274656420736f206661722e284d616e6167656449647301002c5665633c5061726149643e0400084d01204f726465726564206c697374206f6620616c6c2060506172614964602076616c756573207468617420617265206d616e616765642062792074686973206d6f64756c652e205468697320696e636c75646573290120636861696e73207468617420617265206e6f7420796574206465706c6f7965642028627574206861766520776f6e20616e2061756374696f6e20696e2074686520667574757265292e204465706f7369747301010118506172614964445665633c42616c616e63654f663c543e3e000400345d0120566172696f757320616d6f756e7473206f6e206465706f73697420666f7220656163682070617261636861696e2e20416e20656e74727920696e20604d616e616765644964736020696d706c6965732061206e6f6e2d502064656661756c7420656e74727920686572652e006501205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620617420616e792074696d6520697320746865206d6178696d756d206974656d20696e2074686973206c6973742e205468655101206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652070617261636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572b4206578697374656429206173206661722061732074686973206d6f64756c6520697320636f6e6365726e65642e00510120496620612070617261636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e2069745d012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f7265207a65726f657320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e2c41756374696f6e496e666f000088284c65617365506572696f644f663c543e2c20543a3a426c6f636b4e756d62657229040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e1c57696e6e696e6700010138543a3a426c6f636b4e756d6265723857696e6e696e67446174613c543e0004000c5d01205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e676573206174206561636820626c6f636b20696e207468652066696e616c20456e64696e6720506572696f64206f665101207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f2074686520456e64696e6720506572696f642e205468651d0120666972737420626c6f636b206f662074686520656e64696e6720706572696f6420697320303b20746865206c6173742069732060456e64696e67506572696f64202d2031602e3c5265736572766564416d6f756e7473000101504269646465723c543a3a4163636f756e7449643e3042616c616e63654f663c543e00040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e304f6e626f6172645175657565010101404c65617365506572696f644f663c543e2c5665633c5061726149643e0004000865012054686520736574206f662050617261204944732074686174206861766520776f6e20616e64206e65656420746f206265206f6e2d626f617264656420617420616e207570636f6d696e67206c656173652d706572696f642ef0205468697320697320636c6561726564206f7574206f6e2074686520666972737420626c6f636b206f6620746865206c6561736520706572696f642e284f6e626f617264696e6700010118506172614964f0284c65617365506572696f644f663c543e2c20496e636f6d696e6750617261636861696e3c543a3a4163636f756e7449642c20543a3a486173683e29000400104d01205468652061637475616c206f6e2d626f617264696e6720696e666f726d6174696f6e2e204f6e6c7920657869737473207768656e206f6e65206f662074686520666f6c6c6f77696e6720697320747275653a2501202d204974206973206265666f726520746865206c6561736520706572696f642074686174207468652070617261636861696e2073686f756c64206265206f6e2d626f61726465642e5901202d205468652066756c6c206f6e2d626f617264696e6720696e666f726d6174696f6e20686173206e6f7420796574206265656e2070726f766964656420616e64207468652070617261636861696e206973206e6f746c207965742064756520746f206265206f66662d626f61726465642e2c4f6666626f617264696e670101011850617261496430543a3a4163636f756e74496400800000000000000000000000000000000000000000000000000000000000000000086501204f66662d626f617264696e67206163636f756e743b2063757272656e63792068656c64206f6e206465706f73697420666f72207468652070617261636861696e206765747320706c6163656420686572652069662074686539012070617261636861696e2067657473206f66662d626f61726465643b20692e652e20697473206c6561736520706572696f6420697320757020616e642069742069736e27742072656e657765642e01182c6e65775f61756374696f6e08206475726174696f6e5c436f6d706163743c543a3a426c6f636b4e756d6265723e486c656173655f706572696f645f696e64657864436f6d706163743c4c65617365506572696f644f663c543e3e1458204372656174652061206e65772061756374696f6e2e00550120546869732063616e206f6e6c792068617070656e207768656e2074686572652069736e277420616c726561647920616e2061756374696f6e20696e2070726f677265737320616e64206d6179206f6e6c7920626529012063616c6c65642062792074686520726f6f74206f726967696e2e20416363657074732074686520606475726174696f6e60206f6620746869732061756374696f6e20616e64207468655d0120606c656173655f706572696f645f696e64657860206f662074686520696e697469616c206c6561736520706572696f64206f662074686520666f757220746861742061726520746f2062652061756374696f6e65642e0c626964140c73756238436f6d706163743c53756249643e3461756374696f6e5f696e64657854436f6d706163743c41756374696f6e496e6465783e2866697273745f736c6f7464436f6d706163743c4c65617365506572696f644f663c543e3e246c6173745f736c6f7464436f6d706163743c4c65617365506572696f644f663c543e3e18616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e404d01204d616b652061206e6577206269642066726f6d20616e206163636f756e742028696e636c7564696e6720612070617261636861696e206163636f756e742920666f72206465706c6f79696e672061206e65772c2070617261636861696e2e005d01204d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c2061637469766541012062696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e005901202d20607375626020697320746865207375622d6269646465722049442c20616c6c6f77696e6720666f72206d756c7469706c6520636f6d706574696e67206269647320746f206265206d6164652062792028616e64742066756e64656420627929207468652073616d65206163636f756e742e5101202d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746c2076616c7565206f66206041756374696f6e436f756e746572602e4d01202d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e2054686973206973207468650d01206162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e4501202d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e2054686973206973207468650d01206162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e4d01202d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865cc206269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e246269645f72656e6577103461756374696f6e5f696e64657854436f6d706163743c41756374696f6e496e6465783e2866697273745f736c6f7464436f6d706163743c4c65617365506572696f644f663c543e3e246c6173745f736c6f7464436f6d706163743c4c65617365506572696f644f663c543e3e18616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e3c5101204d616b652061206e6577206269642066726f6d20612070617261636861696e206163636f756e7420666f722072656e6577696e67207468617420287072652d6578697374696e67292070617261636861696e2e00a820546865206f726967696e202a6d7573742a20626520612070617261636861696e206163636f756e742e005d01204d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c2061637469766541012062696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e005101202d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746c2076616c7565206f66206041756374696f6e436f756e746572602e4d01202d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e2054686973206973207468650d01206162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e4501202d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e2054686973206973207468650d01206162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e4d01202d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865cc206269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e3c7365745f6f6666626f617264696e670410646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514c82053657420746865206f66662d626f617264696e6720696e666f726d6174696f6e20666f7220612070617261636861696e2e00a820546865206f726967696e202a6d7573742a20626520612070617261636861696e206163636f756e742e002101202d20606465737460206973207468652064657374696e6174696f6e206163636f756e7420746f2072656365697665207468652070617261636861696e2773206465706f7369742e3c6669785f6465706c6f795f64617461100c73756238436f6d706163743c53756249643e1c706172615f69643c436f6d706163743c5061726149643e24636f64655f686173681c543a3a4861736844696e697469616c5f686561645f646174611c5665633c75383e1c2d012053657420746865206465706c6f7920696e666f726d6174696f6e20666f722061207375636365737366756c2062696420746f206465706c6f792061206e65772070617261636861696e2e00c8202d20606f726967696e60206d75737420626520746865207375636365737366756c20626964646572206163636f756e742eb0202d20607375626020697320746865207375622d626964646572204944206f6620746865206269646465722e0101202d2060706172615f696460206973207468652070617261636861696e20494420616c6c6f7474656420746f207468652077696e6e696e67206269646465722e1d01202d2060636f64655f6861736860206973207468652068617368206f66207468652070617261636861696e2773205761736d2076616c69646174696f6e2066756e6374696f6e2ef0202d2060696e697469616c5f686561645f6461746160206973207468652070617261636861696e277320696e697469616c206865616420646174612e54656c61626f726174655f6465706c6f795f64617461081c706172615f69643c436f6d706163743c5061726149643e10636f64651c5665633c75383e3074204e6f74652061206e65772070617261636861696e277320636f64652e004d012054686973206d7573742062652063616c6c656420616674657220606669785f6465706c6f795f646174616020616e642060636f646560206d7573742062652074686520707265696d616765206f6620746865c42060636f64655f68617368602070617373656420746865726520666f72207468652073616d652060706172615f6964602e0061012054686973206d61792062652063616c6c6564206265666f7265206f722061667465722074686520626567696e6e696e67206f66207468652070617261636861696e2773206669727374206c6561736520706572696f642e45012049662063616c6c6564206265666f7265207468656e207468652070617261636861696e2077696c6c206265636f6d65206163746976652061742074686520666972737420626c6f636b206f66206974736501207374617274696e67206c6561736520706572696f642e2049662061667465722c207468656e2069742077696c6c206265636f6d652061637469766520696d6d6564696174656c7920616674657220746869732063616c6c2e006c202d20605f6f726967696e6020697320697272656c6576616e742efc202d2060706172615f696460206973207468652070617261636861696e2049442077686f736520636f64652077696c6c20626520656c61626f72617465642e1501202d2060636f6465602069732074686520707265696d616765206f662074686520726567697374657265642060636f64655f6861736860206f662060706172615f6964602e011c384e65774c65617365506572696f64042c4c65617365506572696f6404842041206e6577206c6561736520706572696f6420697320626567696e6e696e672e3841756374696f6e537461727465640c3041756374696f6e496e6465782c4c65617365506572696f642c426c6f636b4e756d626572084d0120416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f190120636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642e3441756374696f6e436c6f736564043041756374696f6e496e64657804bc20416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e24576f6e4465706c6f7910504e65774269646465723c4163636f756e7449643e24536c6f7452616e6765185061726149641c42616c616e636504550120536f6d656f6e6520776f6e2074686520726967687420746f206465706c6f7920612070617261636861696e2e2042616c616e636520616d6f756e7420697320646564756374656420666f72206465706f7369742e28576f6e52656e6577616c101850617261496424536c6f7452616e67651c42616c616e63651c42616c616e636508c420416e206578697374696e672070617261636861696e20776f6e2074686520726967687420746f20636f6e74696e75652e41012046697273742062616c616e63652069732074686520657874726120616d6f756e7420726573657665642e205365636f6e642069732074686520746f74616c20616d6f756e742072657365727665642e2052657365727665640c244163636f756e7449641c42616c616e63651c42616c616e6365084d012046756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642e54205365636f6e642069732074686520746f74616c2e28556e726573657276656408244163636f756e7449641c42616c616e636504e02046756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e0000245265676973747261720124526567697374726172242850617261636861696e7301002c5665633c5061726149643e0400002c546872656164436f756e7401000c753332100000000004b420546865206e756d626572206f66207468726561647320746f207363686564756c652070657220626c6f636b2e3c53656c6563746564546872656164730100785665633c5665633c285061726149642c20436f6c6c61746f724964293e3e040008510120416e206172726179206f6620746865207175657565206f6620736574206f662074687265616473207363686564756c656420666f722074686520636f6d696e6720626c6f636b733b206f726465726564206279310120617363656e64696e6720706172612049442e2054686572652063616e206265206e6f206475706c696361746573206f66207061726120494420696e2065616368206c697374206974656d2e184163746976650100b85665633c285061726149642c204f7074696f6e3c28436f6c6c61746f7249642c20526574726961626c65293e293e0400185d012050617261746872656164732f636861696e73207363686564756c656420666f7220657865637574696f6e207468697320626c6f636b2e2049662074686520636f6c6c61746f72204944206973207365742c207468656e6101206120706172746963756c617220636f6c6c61746f722068617320616c7265616479206265656e2063686f73656e20666f7220746865206e65787420626c6f636b2c20616e64206e6f206f7468657220636f6c6c61746f725901206d61792070726f766964652074686520626c6f636b2e20496e2074686973206361736520776520616c6c6f772074686520706f73736962696c697479206f662074686520636f6d62696e6174696f6e206265696e67d0207265747269656420696e2061206c6174657220626c6f636b2c206578707265737365642062792060526574726961626c65602e004c204f726465726564206279205061726149642e284e65787446726565496401001850617261496410e8030000083d0120546865206e65787420756e75736564205061726149642076616c75652e2053746172742074686973206869676820696e206f7264657220746f206b656570206c6f77206e756d6265727320666f72542073797374656d2d6c6576656c20636861696e732e2c50656e64696e6753776170000101185061726149641850617261496400040004642050656e64696e672073776170206f7065726174696f6e732e145061726173000101185061726149642050617261496e666f00040004a8204d6170206f6620616c6c20726567697374657265642070617261746872656164732f636861696e732e28526574727951756575650100785665633c5665633c285061726149642c20436f6c6c61746f724964293e3e040004e8205468652063757272656e7420717565756520666f7220706172617468726561647320746861742073686f756c6420626520726574726965642e1c446562746f72730101011850617261496430543a3a4163636f756e7449640080000000000000000000000000000000000000000000000000000000000000000004ac2055736572732077686f20686176652070616964206120706172617468726561642773206465706f736974011c3472656769737465725f70617261100869643c436f6d706163743c5061726149643e10696e666f2050617261496e666f10636f64651c5665633c75383e44696e697469616c5f686561645f646174611c5665633c75383e089820526567697374657220612070617261636861696e207769746820676976656e20636f64652e8c204661696c7320696620676976656e20494420697320616c726561647920757365642e3c646572656769737465725f70617261040869643c436f6d706163743c5061726149643e0494204465726567697374657220612070617261636861696e207769746820676976656e206964407365745f7468726561645f636f756e740414636f756e740c75333214410120526573657420746865206e756d626572206f6620706172617468726561647320746861742063616e2070617920746f206265207363686564756c656420696e20612073696e676c6520626c6f636b2e0098202d2060636f756e74603a20546865206e756d626572206f662070617261746872656164732e0084204d7573742062652063616c6c65642066726f6d20526f6f74206f726967696e2e4c72656769737465725f706172617468726561640810636f64651c5665633c75383e44696e697469616c5f686561645f646174611c5665633c75383e10a42052656769737465722061207061726174687265616420666f7220696d6d656469617465207573652e004d01204d7573742062652073656e742066726f6d2061205369676e6564206f726967696e20746861742069732061626c6520746f206861766520506172617468726561644465706f7369742072657365727665642e39012060636f64656020616e642060696e697469616c5f686561645f646174616020617265207573656420746f20696e697469616c697a6520746865207061726174687265616427732073746174652e4473656c6563745f706172617468726561640c0c5f69643c436f6d706163743c5061726149643e245f636f6c6c61746f7228436f6c6c61746f724964285f686561645f686173681c543a3a4861736814050120506c61636520612062696420666f722061207061726174687265616420746f2062652070726f6772657373656420696e20746865206e65787420626c6f636b2e00410120546869732069732061206b696e64206f66207370656369616c207472616e73616374696f6e20746861742073686f756c642062652068656176696c79207072696f726974697a656420696e207468655d01207472616e73616374696f6e20706f6f6c206163636f7264696e6720746f20746865206076616c7565603b206f6e6c792060546872656164436f756e7460206f66207468656d206d61792062652070726573656e7465645420696e20616e792073696e676c6520626c6f636b2e54646572656769737465725f70617261746872656164001cc820446572656769737465722061207061726174687265616420616e6420726574726965766520746865206465706f7369742e002101204d7573742062652073656e742066726f6d2061206050617261636861696e60206f726967696e2077686963682069732063757272656e746c79206120706172617468726561642e00590120456e737572652074686174206265666f72652063616c6c696e672074686973207468617420616e792066756e647320796f752077616e7420656d70746965642066726f6d20746865207061726174687265616427734501206163636f756e74206973206d6f766564206f75743b20616674657220746869732069742077696c6c20626520696d706f737369626c6520746f207265747269657665207468656d2028776974686f75746820676f7665726e616e636520696e74657276656e74696f6e292e107377617004146f746865723c436f6d706163743c5061726149643e206501205377617020612070617261636861696e207769746820616e6f746865722070617261636861696e206f7220706172617468726561642e20546865206f726967696e206d7573742062652061206050617261636861696e602e65012054686520737761702077696c6c2068617070656e206f6e6c7920696620746865726520697320616c726561647920616e206f70706f7369746520737761702070656e64696e672e204966207468657265206973206e6f742c5d012074686520737761702077696c6c2062652073746f72656420696e207468652070656e64696e67207377617073206d61702c20726561647920666f722061206c6174657220636f6e6669726d61746f727920737761702e00610120546865206050617261496460732072656d61696e206d617070656420746f207468652073616d652068656164206461746120616e6420636f646520736f2065787465726e616c20636f64652063616e2072656c79206f6e410120605061726149646020746f2062652061206c6f6e672d7465726d206964656e746966696572206f662061206e6f74696f6e616c202270617261636861696e222e20486f77657665722c2074686569725901207363686564756c696e6720696e666f2028692e652e2077686574686572207468657927726520612070617261746872656164206f722070617261636861696e292c2061756374696f6e20696e666f726d6174696f6e9820616e64207468652061756374696f6e206465706f736974206172652073776974636865642e0108505061726174687265616452656769737465726564041850617261496404d4204120706172617468726561642077617320726567697374657265643b20697473206e657720494420697320737570706c6965642e5850617261746872656164446572656769737465726564041850617261496404d4205468652070617261746872656164206f662074686520737570706c696564204944207761732064652d726567697374657265642e00001c5574696c697479011c5574696c69747904244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e0114146261746368041463616c6c735c5665633c3c542061732054726169743e3a3a43616c6c3e48802053656e642061206261746368206f662064697370617463682063616c6c732e00ec20546869732077696c6c206578656375746520756e74696c20746865206669727374206f6e65206661696c7320616e64207468656e2073746f702e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e002c2023203c7765696768743ea4202d205468652073756d206f66207468652077656967687473206f6620746865206063616c6c73602e34202d204f6e65206576656e742e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e1861735f7375620814696e6465780c7531361063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e1ce02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e70202d2054686520776569676874206f6620746865206063616c6c602e302023203c2f7765696768743e2061735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3ea4590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e005101205061796d656e743a20604d756c74697369674465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573610120607468726573686f6c64602074696d657320604d756c74697369674465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66f4202020604d756c74697369674465706f73697442617365202b207468726573686f6c64202a204d756c74697369674465706f736974466163746f72602e302023203c2f7765696768743e40617070726f76655f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d80590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e005101205061796d656e743a20604d756c74697369674465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573610120607468726573686f6c64602074696d657320604d756c74697369674465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66f4202020604d756c74697369674465706f73697442617365202b207468726573686f6c64202a204d756c74697369674465706f736974466163746f72602e302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d5859012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e302023203c2f7765696768743e0118404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734c2077656c6c20617320746865206572726f722e384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e2c4e65774d756c746973696708244163636f756e744964244163636f756e7449640849012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e20466972737420706172616d20697320746865206163636f756e74207468617420697320617070726f76696e672c80207365636f6e6420697320746865206d756c7469736967206163636f756e742e404d756c7469736967417070726f76616c0c244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449640859012041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e20466972737420706172616d20697320746865206163636f756e742074686174206973a820617070726f76696e672c20746869726420697320746865206d756c7469736967206163636f756e742e404d756c7469736967457865637574656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e744964384469737061746368526573756c74082d012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e20466972737420706172616d20697320746865206163636f756e742074686174206973a820617070726f76696e672c20746869726420697320746865206d756c7469736967206163636f756e742e444d756c746973696743616e63656c6c65640c244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449640831012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e20466972737420706172616d20697320746865206163636f756e742074686174206973ac2063616e63656c6c696e672c20746869726420697320746865206d756c7469736967206163636f756e742e0000204964656e7469747901105375646f10284964656e746974794f6600010130543a3a4163636f756e74496468526567697374726174696f6e3c42616c616e63654f663c543e3e00040004210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e1c53757065724f6600010130543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010130543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e29004400000000000000000000000000000000000cb820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e28526567697374726172730100d85665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e3e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e012c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605265676973747261724f726967696e60206f722060526f6f74602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743ee4202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666f304964656e74697479496e666f482d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e0501202d20604f2858202b2052296020776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e646564292e88202d204174206d6f73742074776f2062616c616e6365206f7065726174696f6e732eac202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e40902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c202d206073756273603a20546865206964656e746974792773207375622d6163636f756e74732e002c2023203c7765696768743eec202d20604f285329602077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f73742074776f2062616c616e6365206f7065726174696f6e732e4101202d204174206d6f7374204f2832202a2053202b2031292073746f72616765206d75746174696f6e733b20636f64656320636f6d706c657869747920604f2831202a2053202b2053202a20312960293b582020206f6e652073746f726167652d6578697374732e302023203c2f7765696768743e38636c6561725f6964656e74697479003c390120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e7420616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65a42053656c663a3a72656769737472617273287265675f696e646578292e75776e72617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e301d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602e302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496430c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602e302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647330ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602e302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00310120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f206f72206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e011c2c4964656e7469747953657404244163636f756e74496404f02041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e636504d02041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e384964656e746974794b696c6c656408244163636f756e7449641c42616c616e636504c82041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e64657804a02041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e646578048c2041206a756467656d656e74207265717565737420776173207265747261637465642e384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e64657804982041206a756467656d656e742077617320676976656e2062792061207265676973747261722e3852656769737472617241646465640438526567697374726172496e646578045c204120726567697374726172207761732061646465642e002c48546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e" //nolint:lll diff --git a/types/metadataV10_test.go b/types/metadataV10_test.go index 2081d290a..c55f82c81 100644 --- a/types/metadataV10_test.go +++ b/types/metadataV10_test.go @@ -20,7 +20,6 @@ import ( "testing" . "github.com/centrifuge/go-substrate-rpc-client/v4/types" - . "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" . "github.com/centrifuge/go-substrate-rpc-client/v4/types/test_utils" "github.com/stretchr/testify/assert" ) @@ -132,26 +131,3 @@ func TestFindStorageEntryMetadataV10(t *testing.T) { _, err := exampleMetadataV10.FindStorageEntryMetadata("myStoragePrefix", "myStorageFunc2") assert.NoError(t, err) } - -func TestMetadataV10_Decode(t *testing.T) { - metadata := NewMetadataV10() - - err := Decode(MustHexDecodeString(ExamplaryMetadataV10String), metadata) - assert.NoError(t, err) - - assert.Equal(t, *ExamplaryMetadataV10, *metadata) -} - -func TestMetadataV10Polkadot_Decode(t *testing.T) { - metadata := NewMetadataV10() - - err := Decode(MustHexDecodeString(ExamplaryMetadataV10PolkadotString), metadata) - assert.NoError(t, err) - - assert.Equal(t, *ExamplaryMetadataV10Polkadot, *metadata) -} - -func TestMetadataV10_ExistsModuleMetadata(t *testing.T) { - assert.True(t, exampleMetadataV10.ExistsModuleMetadata("EmptyModule")) - assert.False(t, exampleMetadataV10.ExistsModuleMetadata("NotExistModule")) -} diff --git a/types/metadataV11_examplary.go b/types/metadataV11_examplary.go deleted file mode 100644 index 30767372a..000000000 --- a/types/metadataV11_examplary.go +++ /dev/null @@ -1,20 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -//Parsed from ExamplaryMetadataV11SubstrateString -var ExamplaryMetadataV11Substrate = &Metadata{MagicNumber: 0x6174656d, Version: 0xb, AsMetadataV4: MetadataV4{Modules: []ModuleMetadataV4(nil)}, AsMetadataV7: MetadataV7{Modules: []ModuleMetadataV7(nil)}, AsMetadataV8: MetadataV8{Modules: []ModuleMetadataV8(nil)}, AsMetadataV9: MetadataV9{Modules: []ModuleMetadataV8(nil)}, AsMetadataV10: MetadataV10{Modules: []ModuleMetadataV10(nil)}, AsMetadataV11: MetadataV11{MetadataV10: MetadataV10{Modules: []ModuleMetadataV10{ModuleMetadataV10{Name: "System", HasStorage: true, Storage: StorageMetadataV10{Prefix: "System", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Account", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "AccountInfo", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The full account information for a particular account ID."}}, StorageFunctionMetadataV10{Name: "ExtrinsicCount", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total extrinsics count for the current block."}}, StorageFunctionMetadataV10{Name: "BlockWeight", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "weights::ExtrinsicsWeight", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current weight for the block."}}, StorageFunctionMetadataV10{Name: "AllExtrinsicsLen", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total length (in bytes) for all extrinsics put together, for the current block."}}, StorageFunctionMetadataV10{Name: "BlockHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::BlockNumber", Value: "T::Hash", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Map of block numbers to block hashes."}}, StorageFunctionMetadataV10{Name: "ExtrinsicData", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "u32", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Extrinsics data for the current block (maps an extrinsic's index to its data)."}}, StorageFunctionMetadataV10{Name: "Number", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current block number being processed. Set by `execute_block`."}}, StorageFunctionMetadataV10{Name: "ParentHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Hash of the previous block."}}, StorageFunctionMetadataV10{Name: "ExtrinsicsRoot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Extrinsics root of the current block, also part of the block header."}}, StorageFunctionMetadataV10{Name: "Digest", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "DigestOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Digest of the current block, also part of the block header."}}, StorageFunctionMetadataV10{Name: "Events", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Events deposited for the current block."}}, StorageFunctionMetadataV10{Name: "EventCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "EventIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of events in the `Events` list."}}, StorageFunctionMetadataV10{Name: "EventTopics", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::Hash", Value: "Vec<(T::BlockNumber, EventIndex)>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Mapping between a topic (represented by T::Hash) and a vector of indexes", " of events in the `>` list.", "", " All topic vectors have deterministic storage locations depending on the topic. This", " allows light-clients to leverage the changes trie storage tracking mechanism and", " in case of changes fetch the list of events of interest.", "", " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", " the `EventIndex` then in case if the topic has the same contents on the next block", " no notification will be triggered thus the event might be lost."}}, StorageFunctionMetadataV10{Name: "LastRuntimeUpgrade", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "LastRuntimeUpgradeInfo", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened."}}, StorageFunctionMetadataV10{Name: "ExecutionPhase", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Phase", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The execution phase of the block."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "fill_block", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "_ratio", Type: "Perbill"}}, Documentation: []Text{" A dispatch that will fill the block weight up to the given ratio."}}, FunctionMetadataV4{Name: "remark", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "_remark", Type: "Vec"}}, Documentation: []Text{" Make some on-chain remark.", "", " # ", " - `O(1)`", " - Base Weight: 0.665 µs, independent of remark length.", " - No DB operations.", " # "}}, FunctionMetadataV4{Name: "set_heap_pages", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "pages", Type: "u64"}}, Documentation: []Text{" Set the number of pages in the WebAssembly environment's heap.", "", " # ", " - `O(1)`", " - 1 storage write.", " - Base Weight: 1.405 µs", " - 1 write to HEAP_PAGES", " # "}}, FunctionMetadataV4{Name: "set_code", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "code", Type: "Vec"}}, Documentation: []Text{" Set the new runtime code.", "", " # ", " - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`", " - 1 storage write (codec `O(C)`).", " - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive).", " - 1 event.", " The weight of this function is dependent on the runtime, but generally this is very expensive.", " We will treat this as a full block.", " # "}}, FunctionMetadataV4{Name: "set_code_without_checks", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "code", Type: "Vec"}}, Documentation: []Text{" Set the new runtime code without doing any checks of the given `code`.", "", " # ", " - `O(C)` where `C` length of `code`", " - 1 storage write (codec `O(C)`).", " - 1 event.", " The weight of this function is dependent on the runtime. We will treat this as a full block.", " # "}}, FunctionMetadataV4{Name: "set_changes_trie_config", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "changes_trie_config", Type: "Option"}}, Documentation: []Text{" Set the new changes trie configuration.", "", " # ", " - `O(1)`", " - 1 storage write or delete (codec `O(1)`).", " - 1 call to `deposit_log`: Uses `append` API, so O(1)", " - Base Weight: 7.218 µs", " - DB Weight:", " - Writes: Changes Trie, System Digest", " # "}}, FunctionMetadataV4{Name: "set_storage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "items", Type: "Vec"}}, Documentation: []Text{" Set some items of storage.", "", " # ", " - `O(I)` where `I` length of `items`", " - `I` storage writes (`O(1)`).", " - Base Weight: 0.568 * i µs", " - Writes: Number of items", " # "}}, FunctionMetadataV4{Name: "kill_storage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "keys", Type: "Vec"}}, Documentation: []Text{" Kill some items from storage.", "", " # ", " - `O(IK)` where `I` length of `keys` and `K` length of one key", " - `I` storage deletions.", " - Base Weight: .378 * i µs", " - Writes: Number of items", " # "}}, FunctionMetadataV4{Name: "kill_prefix", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "prefix", Type: "Key"}, FunctionArgumentMetadata{Name: "_subkeys", Type: "u32"}}, Documentation: []Text{" Kill all storage items with a key that starts with the given prefix.", "", " **NOTE:** We rely on the Root origin to provide us the number of subkeys under", " the prefix we are removing to accurately calculate the weight of this function.", "", " # ", " - `O(P)` where `P` amount of keys with prefix `prefix`", " - `P` storage deletions.", " - Base Weight: 0.834 * P µs", " - Writes: Number of subkeys + 1", " # "}}, FunctionMetadataV4{Name: "suicide", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Kill the sending account, assuming there are no references outstanding and the composite", " data is equal to its default value.", "", " # ", " - `O(1)`", " - 1 storage read and deletion.", " --------------------", " Base Weight: 8.626 µs", " No DB Read or Write operations because caller is already in overlay", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "ExtrinsicSuccess", Args: []Type{"DispatchInfo"}, Documentation: []Text{" An extrinsic completed successfully. [info]"}}, EventMetadataV4{Name: "ExtrinsicFailed", Args: []Type{"DispatchError", "DispatchInfo"}, Documentation: []Text{" An extrinsic failed. [error, info]"}}, EventMetadataV4{Name: "CodeUpdated", Args: []Type(nil), Documentation: []Text{" `:code` was updated."}}, EventMetadataV4{Name: "NewAccount", Args: []Type{"AccountId"}, Documentation: []Text{" A new [account] was created."}}, EventMetadataV4{Name: "KilledAccount", Args: []Type{"AccountId"}, Documentation: []Text{" An [account] was reaped."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "BlockHashCount", Type: "T::BlockNumber", Value: Bytes{0x60, 0x9, 0x0, 0x0}, Documentation: []Text{" The maximum number of blocks to allow in mortal eras."}}, ModuleConstantMetadataV6{Name: "MaximumBlockWeight", Type: "Weight", Value: Bytes{0x0, 0x20, 0x4a, 0xa9, 0xd1, 0x1, 0x0, 0x0}, Documentation: []Text{" The maximum weight of a block."}}, ModuleConstantMetadataV6{Name: "DbWeight", Type: "RuntimeDbWeight", Value: Bytes{0x40, 0x78, 0x7d, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe1, 0xf5, 0x5, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The weight of runtime database operations the runtime can invoke."}}, ModuleConstantMetadataV6{Name: "BlockExecutionWeight", Type: "Weight", Value: Bytes{0x0, 0xf2, 0x5, 0x2a, 0x1, 0x0, 0x0, 0x0}, Documentation: []Text{" The base weight of executing a block, independent of the transactions in the block."}}, ModuleConstantMetadataV6{Name: "ExtrinsicBaseWeight", Type: "Weight", Value: Bytes{0x40, 0x59, 0x73, 0x7, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base weight of an Extrinsic in the block, independent of the of extrinsic being executed."}}, ModuleConstantMetadataV6{Name: "MaximumBlockLength", Type: "u32", Value: Bytes{0x0, 0x0, 0x50, 0x0}, Documentation: []Text{" The maximum length of a block (in bytes)."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidSpecName", Documentation: []Text{" The name of specification does not match between the current runtime", " and the new runtime."}}, ErrorMetadataV8{Name: "SpecVersionNeedsToIncrease", Documentation: []Text{" The specification version is not allowed to decrease between the current runtime", " and the new runtime."}}, ErrorMetadataV8{Name: "FailedToExtractRuntimeVersion", Documentation: []Text{" Failed to extract the runtime version from the new runtime.", "", " Either calling `Core_version` or decoding `RuntimeVersion` failed."}}, ErrorMetadataV8{Name: "NonDefaultComposite", Documentation: []Text{" Suicide called when the account has non-default composite data."}}, ErrorMetadataV8{Name: "NonZeroRefCount", Documentation: []Text{" There is a non-zero reference count preventing the account from being purged."}}}}, ModuleMetadataV10{Name: "Utility", HasStorage: false, Storage: StorageMetadataV10{Prefix: "", Items: []StorageFunctionMetadataV10(nil)}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "batch", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "calls", Type: "Vec<::Call>"}}, Documentation: []Text{" Send a batch of dispatch calls.", "", " May be called from any origin.", "", " - `calls`: The calls to be dispatched from the same origin.", "", " If origin is root then call are dispatch without checking origin filter. (This includes", " bypassing `frame_system::Trait::BaseCallFilter`).", "", " # ", " - Base weight: 14.39 + .987 * c µs", " - Plus the sum of the weights of the `calls`.", " - Plus one additional event. (repeat read/write)", " # ", "", " This will return `Ok` in all circumstances. To determine the success of the batch, an", " event is deposited. If a call failed and the batch was interrupted, then the", " `BatchInterrupted` event is deposited, along with the number of successful calls made", " and the error of the failed call. If all were successful, then the `BatchCompleted`", " event is deposited."}}, FunctionMetadataV4{Name: "as_derivative", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "u16"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Send a call through an indexed pseudonym of the sender.", "", " Filter from origin are passed along. The call will be dispatched with an origin which", " use the same filter as the origin of this call.", "", " NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", " because you expect `proxy` to have been used prior in the call stack and you do not want", " the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", " in the Multisig pallet instead.", "", " NOTE: Prior to version *12, this was called `as_limited_sub`.", "", " The dispatch origin for this call must be _Signed_."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "BatchInterrupted", Args: []Type{"u32", "DispatchError"}, Documentation: []Text{" Batch of dispatches did not complete fully. Index of first failing dispatch given, as", " well as the error. [index, error]"}}, EventMetadataV4{Name: "BatchCompleted", Args: []Type(nil), Documentation: []Text{" Batch of dispatches completed fully with no error."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Babe", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Babe", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "EpochIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current epoch index."}}, StorageFunctionMetadataV10{Name: "Authorities", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(AuthorityId, BabeAuthorityWeight)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Current epoch authorities."}}, StorageFunctionMetadataV10{Name: "GenesisSlot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The slot at which the first epoch actually started. This is 0", " until the first block of the chain."}}, StorageFunctionMetadataV10{Name: "CurrentSlot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current slot number."}}, StorageFunctionMetadataV10{Name: "Randomness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "schnorrkel::Randomness", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The epoch randomness for the *current* epoch.", "", " # Security", "", " This MUST NOT be used for gambling, as it can be influenced by a", " malicious validator in the short term. It MAY be used in many", " cryptographic protocols, however, so long as one remembers that this", " (like everything else on-chain) it is public. For example, it can be", " used where a number is needed that cannot have been chosen by an", " adversary, for purposes such as public-coin zero-knowledge proofs."}}, StorageFunctionMetadataV10{Name: "NextEpochConfig", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "NextConfigDescriptor", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Next epoch configuration, if changed."}}, StorageFunctionMetadataV10{Name: "NextRandomness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "schnorrkel::Randomness", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Next epoch randomness."}}, StorageFunctionMetadataV10{Name: "SegmentIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Randomness under construction.", "", " We make a tradeoff between storage accesses and list length.", " We store the under-construction randomness in segments of up to", " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", "", " Once a segment reaches this length, we begin the next one.", " We reset all segments and return to `0` at the beginning of every", " epoch."}}, StorageFunctionMetadataV10{Name: "UnderConstruction", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "u32", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay."}}, StorageFunctionMetadataV10{Name: "Initialized", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "MaybeRandomness", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Temporary value (cleared at block finalization) which is `Some`", " if per-block initialization has already been called for current block."}}, StorageFunctionMetadataV10{Name: "Lateness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" How late the current block is compared to its parent.", "", " This entry is populated as part of block execution and is cleaned up", " on block finalization. Querying this storage entry outside of block", " execution context should always yield zero."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "report_equivocation", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "equivocation_proof", Type: "EquivocationProof"}, FunctionArgumentMetadata{Name: "key_owner_proof", Type: "T::KeyOwnerProof"}}, Documentation: []Text{" Report authority equivocation/misbehavior. This method will verify", " the equivocation proof and validate the given key ownership proof", " against the extracted offender. If both are valid, the offence will", " be reported."}}, FunctionMetadataV4{Name: "report_equivocation_unsigned", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "equivocation_proof", Type: "EquivocationProof"}, FunctionArgumentMetadata{Name: "key_owner_proof", Type: "T::KeyOwnerProof"}}, Documentation: []Text{" Report authority equivocation/misbehavior. This method will verify", " the equivocation proof and validate the given key ownership proof", " against the extracted offender. If both are valid, the offence will", " be reported.", " This extrinsic must be called unsigned and it is expected that only", " block authors will call it (validated in `ValidateUnsigned`), as such", " if the block author is defined it will be defined as the equivocation", " reporter."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "EpochDuration", Type: "u64", Value: Bytes{0xc8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of **slots** that an epoch takes. We couple sessions to", " epochs, i.e. we start a new session once the new epoch begins."}}, ModuleConstantMetadataV6{Name: "ExpectedBlockTime", Type: "T::Moment", Value: Bytes{0xb8, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The expected average block time at which BABE should be creating", " blocks. Since BABE is probabilistic it is not trivial to figure out", " what the expected average block time should be based on the slot", " duration and the security parameter `c` (where `1 - c` represents", " the probability of a slot being empty)."}}}, Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Timestamp", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Timestamp", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Now", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::Moment", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current time for the current block."}}, StorageFunctionMetadataV10{Name: "DidUpdate", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Did the timestamp get updated in this block?"}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "now", Type: "Compact"}}, Documentation: []Text{" Set the current time.", "", " This call should be invoked exactly once per block. It will panic at the finalization", " phase, if this call hasn't been invoked by that time.", "", " The timestamp should be greater than the previous one by the amount specified by", " `MinimumPeriod`.", "", " The dispatch origin for this call must be `Inherent`.", "", " # ", " - `O(T)` where `T` complexity of `on_timestamp_set`", " - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)", " - 1 event handler `on_timestamp_set` `O(T)`.", " # "}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "MinimumPeriod", Type: "T::Moment", Value: Bytes{0xdc, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum period between blocks. Beware that this is different to the *expected* period", " that the block production apparatus provides. Your chosen consensus system will generally", " work with this to determine a sensible block time. e.g. For Aura, it will be double this", " period on default settings."}}}, Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Authorship", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Authorship", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Uncles", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Uncles"}}, StorageFunctionMetadataV10{Name: "Author", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Author of current block."}}, StorageFunctionMetadataV10{Name: "DidSetUncles", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Whether uncles were already set in this block."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_uncles", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_uncles", Type: "Vec"}}, Documentation: []Text{" Provide a set of uncles."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidUncleParent", Documentation: []Text{" The uncle parent not in the chain."}}, ErrorMetadataV8{Name: "UnclesAlreadySet", Documentation: []Text{" Uncles already set in the block."}}, ErrorMetadataV8{Name: "TooManyUncles", Documentation: []Text{" Too many uncles."}}, ErrorMetadataV8{Name: "GenesisUncle", Documentation: []Text{" The uncle is genesis."}}, ErrorMetadataV8{Name: "TooHighUncle", Documentation: []Text{" The uncle is too high in chain."}}, ErrorMetadataV8{Name: "UncleAlreadyIncluded", Documentation: []Text{" The uncle is already included."}}, ErrorMetadataV8{Name: "OldUncle", Documentation: []Text{" The uncle isn't recent enough to be included."}}}}, ModuleMetadataV10{Name: "Indices", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Indices", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Accounts", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountIndex", Value: "(T::AccountId, BalanceOf, bool)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The lookup from index to account."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "claim", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "T::AccountIndex"}}, Documentation: []Text{" Assign an previously unassigned index.", "", " Payment: `Deposit` is reserved from the sender account.", "", " The dispatch origin for this call must be _Signed_.", "", " - `index`: the index to be claimed. This must not be in use.", "", " Emits `IndexAssigned` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - One reserve operation.", " - One event.", " -------------------", " - Base Weight: 28.69 µs", " - DB Weight: 1 Read/Write (Accounts)", " # "}}, FunctionMetadataV4{Name: "transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "index", Type: "T::AccountIndex"}}, Documentation: []Text{" Assign an index already owned by the sender to another account. The balance reservation", " is effectively transferred to the new account.", "", " The dispatch origin for this call must be _Signed_.", "", " - `index`: the index to be re-assigned. This must be owned by the sender.", " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", "", " Emits `IndexAssigned` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - One transfer operation.", " - One event.", " -------------------", " - Base Weight: 33.74 µs", " - DB Weight:", " - Reads: Indices Accounts, System Account (recipient)", " - Writes: Indices Accounts, System Account (recipient)", " # "}}, FunctionMetadataV4{Name: "free", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "T::AccountIndex"}}, Documentation: []Text{" Free up an index owned by the sender.", "", " Payment: Any previous deposit placed for the index is unreserved in the sender account.", "", " The dispatch origin for this call must be _Signed_ and the sender must own the index.", "", " - `index`: the index to be freed. This must be owned by the sender.", "", " Emits `IndexFreed` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - One reserve operation.", " - One event.", " -------------------", " - Base Weight: 25.53 µs", " - DB Weight: 1 Read/Write (Accounts)", " # "}}, FunctionMetadataV4{Name: "force_transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "index", Type: "T::AccountIndex"}, FunctionArgumentMetadata{Name: "freeze", Type: "bool"}}, Documentation: []Text{" Force an index to an account. This doesn't require a deposit. If the index is already", " held, then any deposit is reimbursed to its current owner.", "", " The dispatch origin for this call must be _Root_.", "", " - `index`: the index to be (re-)assigned.", " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", " - `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", "", " Emits `IndexAssigned` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - Up to one reserve operation.", " - One event.", " -------------------", " - Base Weight: 26.83 µs", " - DB Weight:", " - Reads: Indices Accounts, System Account (original owner)", " - Writes: Indices Accounts, System Account (original owner)", " # "}}, FunctionMetadataV4{Name: "freeze", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "T::AccountIndex"}}, Documentation: []Text{" Freeze an index so it will always point to the sender account. This consumes the deposit.", "", " The dispatch origin for this call must be _Signed_ and the signing account must have a", " non-frozen account `index`.", "", " - `index`: the index to be frozen in place.", "", " Emits `IndexFrozen` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - Up to one slash operation.", " - One event.", " -------------------", " - Base Weight: 30.86 µs", " - DB Weight: 1 Read/Write (Accounts)", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "IndexAssigned", Args: []Type{"AccountId", "AccountIndex"}, Documentation: []Text{" A account index was assigned. [who, index]"}}, EventMetadataV4{Name: "IndexFreed", Args: []Type{"AccountIndex"}, Documentation: []Text{" A account index has been freed up (unassigned). [index]"}}, EventMetadataV4{Name: "IndexFrozen", Args: []Type{"AccountIndex", "AccountId"}, Documentation: []Text{" A account index has been frozen to its current account ID. [who, index]"}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Balances", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Balances", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "TotalIssuance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::Balance", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total units issued in the system."}}, StorageFunctionMetadataV10{Name: "Account", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "AccountData", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The balance of an account.", "", " NOTE: This is only used in the case that this module is used to store balances."}}, StorageFunctionMetadataV10{Name: "Locks", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "Vec>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any liquidity locks on some account balances.", " NOTE: Should only be accessed when setting, changing and freeing a lock."}}, StorageFunctionMetadataV10{Name: "StorageVersion", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Releases", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Storage version of the pallet.", "", " This is set to v2.0.0 for new networks."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact"}}, Documentation: []Text{" Transfer some liquid free balance to another account.", "", " `transfer` will set the `FreeBalance` of the sender and receiver.", " It will decrease the total issuance of the system by the `TransferFee`.", " If the sender's account is below the existential deposit as a result", " of the transfer, the account will be reaped.", "", " The dispatch origin for this call must be `Signed` by the transactor.", "", " # ", " - Dependent on arguments but not critical, given proper implementations for", " input config See related functions below.", " - It contains a limited number of reads and writes internally and no complex computation.", "", " Related functions:", "", " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", " - Transferring balances to accounts that did not exist before will cause", " `T::OnNewAccount::on_new_account` to be called.", " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.", " - `transfer_keep_alive` works the same way as `transfer`, but has an additional", " check that the transfer will not kill the origin account.", " ---------------------------------", " - Base Weight: 73.64 µs, worst case scenario (account created, account removed)", " - DB Weight: 1 Read and 1 Write to destination account", " - Origin account is already in memory, so no DB operations for them.", " # "}}, FunctionMetadataV4{Name: "set_balance", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "::Source"}, FunctionArgumentMetadata{Name: "new_free", Type: "Compact"}, FunctionArgumentMetadata{Name: "new_reserved", Type: "Compact"}}, Documentation: []Text{" Set the balances of a given account.", "", " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", " also decrease the total issuance of the system (`TotalIssuance`).", " If the new free or reserved balance is below the existential deposit,", " it will reset the account nonce (`frame_system::AccountNonce`).", "", " The dispatch origin for this call is `root`.", "", " # ", " - Independent of the arguments.", " - Contains a limited number of reads and writes.", " ---------------------", " - Base Weight:", " - Creating: 27.56 µs", " - Killing: 35.11 µs", " - DB Weight: 1 Read, 1 Write to `who`", " # "}}, FunctionMetadataV4{Name: "force_transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "source", Type: "::Source"}, FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact"}}, Documentation: []Text{" Exactly as `transfer`, except the origin must be root and the source account may be", " specified.", " # ", " - Same as transfer, but additional read and write because the source account is", " not assumed to be in the overlay.", " # "}}, FunctionMetadataV4{Name: "transfer_keep_alive", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact"}}, Documentation: []Text{" Same as the [`transfer`] call, but with a check that the transfer will not kill the", " origin account.", "", " 99% of the time you want [`transfer`] instead.", "", " [`transfer`]: struct.Module.html#method.transfer", " # ", " - Cheaper than transfer because account cannot be killed.", " - Base Weight: 51.4 µs", " - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already)", " #"}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Endowed", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" An account was created with some free balance. [account, free_balance]"}}, EventMetadataV4{Name: "DustLost", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" An account was removed whose balance was non-zero but below ExistentialDeposit,", " resulting in an outright loss. [account, balance]"}}, EventMetadataV4{Name: "Transfer", Args: []Type{"AccountId", "AccountId", "Balance"}, Documentation: []Text{" Transfer succeeded. [from, to, value]"}}, EventMetadataV4{Name: "BalanceSet", Args: []Type{"AccountId", "Balance", "Balance"}, Documentation: []Text{" A balance was set by root. [who, free, reserved]"}}, EventMetadataV4{Name: "Deposit", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" Some amount was deposited (e.g. for transaction fees). [who, deposit]"}}, EventMetadataV4{Name: "Reserved", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" Some balance was reserved (moved from free to reserved). [who, value]"}}, EventMetadataV4{Name: "Unreserved", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" Some balance was unreserved (moved from reserved to free). [who, value]"}}, EventMetadataV4{Name: "ReserveRepatriated", Args: []Type{"AccountId", "AccountId", "Balance", "Status"}, Documentation: []Text{" Some balance was moved from the reserve of the first account to the second account.", " Final argument indicates the destination balance type.", " [from, to, balance, destination_status]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "ExistentialDeposit", Type: "T::Balance", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount required to keep an account open."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "VestingBalance", Documentation: []Text{" Vesting balance too high to send value"}}, ErrorMetadataV8{Name: "LiquidityRestrictions", Documentation: []Text{" Account liquidity restrictions prevent withdrawal"}}, ErrorMetadataV8{Name: "Overflow", Documentation: []Text{" Got an overflow after adding"}}, ErrorMetadataV8{Name: "InsufficientBalance", Documentation: []Text{" Balance too low to send value"}}, ErrorMetadataV8{Name: "ExistentialDeposit", Documentation: []Text{" Value too low to create account due to existential deposit"}}, ErrorMetadataV8{Name: "KeepAlive", Documentation: []Text{" Transfer/payment would kill account"}}, ErrorMetadataV8{Name: "ExistingVestingSchedule", Documentation: []Text{" A vesting schedule already exists for this account"}}, ErrorMetadataV8{Name: "DeadAccount", Documentation: []Text{" Beneficiary account must pre-exist"}}}}, ModuleMetadataV10{Name: "TransactionPayment", HasStorage: true, Storage: StorageMetadataV10{Prefix: "TransactionPayment", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "NextFeeMultiplier", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Multiplier", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x64, 0xa7, 0xb3, 0xb6, 0xe0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, StorageFunctionMetadataV10{Name: "StorageVersion", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Releases", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}}}, HasCalls: false, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "TransactionByteFee", Type: "BalanceOf", Value: Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the per-byte portion."}}, ModuleConstantMetadataV6{Name: "WeightToFee", Type: "Vec>>", Value: Bytes{0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}, Documentation: []Text{" The polynomial that is applied in order to derive fee from weight."}}}, Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Staking", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Staking", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "HistoryDepth", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x54, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of eras to keep in history.", "", " Information is kept for eras in `[current_era - history_depth; current_era]`.", "", " Must be more than the number of eras delayed by session otherwise. I.e. active era must", " always be in history. I.e. `active_era > current_era - history_depth` must be", " guaranteed."}}, StorageFunctionMetadataV10{Name: "ValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The ideal number of staking participants."}}, StorageFunctionMetadataV10{Name: "MinimumValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum number of staking participants before emergency conditions are imposed."}}, StorageFunctionMetadataV10{Name: "Invulnerables", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", " easy to initialize and the performance hit is minimal (we expect no more than four", " invulnerables) and restricted to testnets."}}, StorageFunctionMetadataV10{Name: "Bonded", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all locked \"stash\" accounts to the controller account."}}, StorageFunctionMetadataV10{Name: "Ledger", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "StakingLedger>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all (unlocked) \"controller\" accounts to the info regarding the staking."}}, StorageFunctionMetadataV10{Name: "Payee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "RewardDestination", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Where the reward payment should be made. Keyed by stash."}}, StorageFunctionMetadataV10{Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "ValidatorPrefs", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The map from (wannabe) validator stash key to the preferences of that validator."}}, StorageFunctionMetadataV10{Name: "Nominators", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "Nominations", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The map from nominator stash key to the set of stash keys of all validators to nominate."}}, StorageFunctionMetadataV10{Name: "CurrentEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "EraIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current era index.", "", " This is the latest planned era, depending on how the Session pallet queues the validator", " set, it might be active or not."}}, StorageFunctionMetadataV10{Name: "ActiveEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ActiveEraInfo", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The active era information, it holds index and start.", "", " The active era is the era currently rewarded.", " Validator set of this era must be equal to `SessionInterface::validators`."}}, StorageFunctionMetadataV10{Name: "ErasStartSessionIndex", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "EraIndex", Value: "SessionIndex", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The session index at which the era start for the last `HISTORY_DEPTH` eras."}}, StorageFunctionMetadataV10{Name: "ErasStakers", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "Exposure>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0}, Documentation: []Text{" Exposure of validator at era.", "", " This is keyed first by the era index to allow bulk deletion and then the stash account.", "", " Is it removed after `HISTORY_DEPTH` eras.", " If stakers hasn't been set or has been removed then empty exposure is returned."}}, StorageFunctionMetadataV10{Name: "ErasStakersClipped", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "Exposure>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0}, Documentation: []Text{" Clipped Exposure of validator at era.", "", " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", " `T::MaxNominatorRewardedPerValidator` biggest stakers.", " (Note: the field `total` and `own` of the exposure remains unchanged).", " This is used to limit the i/o cost for the nominator payout.", "", " This is keyed fist by the era index to allow bulk deletion and then the stash account.", "", " Is it removed after `HISTORY_DEPTH` eras.", " If stakers hasn't been set or has been removed then empty exposure is returned."}}, StorageFunctionMetadataV10{Name: "ErasValidatorPrefs", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "ValidatorPrefs", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Similar to `ErasStakers`, this holds the preferences of validators.", "", " This is keyed first by the era index to allow bulk deletion and then the stash account.", "", " Is it removed after `HISTORY_DEPTH` eras."}}, StorageFunctionMetadataV10{Name: "ErasValidatorReward", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "EraIndex", Value: "BalanceOf", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The total validator era payout for the last `HISTORY_DEPTH` eras.", "", " Eras that haven't finished yet or has been removed doesn't have reward."}}, StorageFunctionMetadataV10{Name: "ErasRewardPoints", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "EraIndex", Value: "EraRewardPoints", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Rewards for the last `HISTORY_DEPTH` eras.", " If reward hasn't been set or has been removed then 0 reward is returned."}}, StorageFunctionMetadataV10{Name: "ErasTotalStake", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "EraIndex", Value: "BalanceOf", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total amount staked for the last `HISTORY_DEPTH` eras.", " If total hasn't been set or has been removed then 0 stake is returned."}}, StorageFunctionMetadataV10{Name: "ForceEra", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Forcing", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Mode of era forcing."}}, StorageFunctionMetadataV10{Name: "SlashRewardFraction", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Perbill", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The percentage of the slash that is distributed to reporters.", "", " The rest of the slashed value is handled by the `Slash`."}}, StorageFunctionMetadataV10{Name: "CanceledSlashPayout", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of currency given to reporters of a slash event which was", " canceled by extraordinary circumstances (e.g. governance)."}}, StorageFunctionMetadataV10{Name: "UnappliedSlashes", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "EraIndex", Value: "Vec>>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All unapplied slashes that are queued for later."}}, StorageFunctionMetadataV10{Name: "BondedEras", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(EraIndex, SessionIndex)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from still-bonded eras to the first session index of that era.", "", " Must contains information for eras for the range:", " `[active_era - bounding_duration; active_era]`"}}, StorageFunctionMetadataV10{Name: "ValidatorSlashInEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "(Perbill, BalanceOf)", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All slashing events on validators, mapped by era to the highest slash proportion", " and slash value of the era."}}, StorageFunctionMetadataV10{Name: "NominatorSlashInEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "BalanceOf", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All slashing events on nominators, mapped by era to the highest slash value of the era."}}, StorageFunctionMetadataV10{Name: "SlashingSpans", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "slashing::SlashingSpans", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Slashing spans for stash accounts."}}, StorageFunctionMetadataV10{Name: "SpanSlash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "(T::AccountId, slashing::SpanIndex)", Value: "slashing::SpanRecord>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Records information about the maximum slash of a stash within a slashing span,", " as well as how much reward has been paid out."}}, StorageFunctionMetadataV10{Name: "EarliestUnappliedSlash", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "EraIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The earliest era for which we have a pending, unapplied slash."}}, StorageFunctionMetadataV10{Name: "SnapshotValidators", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Snapshot of validators at the beginning of the current election window. This should only", " have a value when [`EraElectionStatus`] == `ElectionStatus::Open(_)`."}}, StorageFunctionMetadataV10{Name: "SnapshotNominators", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Snapshot of nominators at the beginning of the current election window. This should only", " have a value when [`EraElectionStatus`] == `ElectionStatus::Open(_)`."}}, StorageFunctionMetadataV10{Name: "QueuedElected", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ElectionResult>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The next validator set. At the end of an era, if this is available (potentially from the", " result of an offchain worker), it is immediately used. Otherwise, the on-chain election", " is executed."}}, StorageFunctionMetadataV10{Name: "QueuedScore", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ElectionScore", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The score of the current [`QueuedElected`]."}}, StorageFunctionMetadataV10{Name: "EraElectionStatus", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ElectionStatus", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Flag to control the execution of the offchain election. When `Open(_)`, we accept", " solutions to be submitted."}}, StorageFunctionMetadataV10{Name: "IsCurrentSessionFinal", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the current **planned** session is final. Note that this does not take era", " forcing into account."}}, StorageFunctionMetadataV10{Name: "StorageVersion", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Releases", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x3}, Documentation: []Text{" True if network has been upgraded to this version.", " Storage version of the pallet.", "", " This is set to v3.0.0 for new networks."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "bond", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "controller", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}, FunctionArgumentMetadata{Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" Take the origin account as a stash and lock up `value` of its balance. `controller` will", " be the account that controls it.", "", " `value` must be more than the `minimum_balance` specified by `T::Currency`.", "", " The dispatch origin for this call must be _Signed_ by the stash account.", "", " Emits `Bonded`.", "", " # ", " - Independent of the arguments. Moderate complexity.", " - O(1).", " - Three extra DB entries.", "", " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", " unless the `origin` falls below _existential deposit_ and gets removed as dust.", " ------------------", " Base Weight: 67.87 µs", " DB Weight:", " - Read: Bonded, Ledger, [Origin Account], Current Era, History Depth, Locks", " - Write: Bonded, Payee, [Origin Account], Locks, Ledger", " # "}}, FunctionMetadataV4{Name: "bond_extra", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "max_additional", Type: "Compact>"}}, Documentation: []Text{" Add some extra amount that have appeared in the stash `free_balance` into the balance up", " for staking.", "", " Use this if there are additional funds in your stash account that you wish to bond.", " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount", " that can be added.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller and", " it can be only called when [`EraElectionStatus`] is `Closed`.", "", " Emits `Bonded`.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - O(1).", " - One DB entry.", " ------------", " Base Weight: 54.88 µs", " DB Weight:", " - Read: Era Election Status, Bonded, Ledger, [Origin Account], Locks", " - Write: [Origin Account], Locks, Ledger", " # "}}, FunctionMetadataV4{Name: "unbond", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Schedule a portion of the stash to be unlocked ready for transfer out after the bond", " period ends. If this leaves an amount actively bonded less than", " T::Currency::minimum_balance(), then it is increased to the full amount.", "", " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", " the funds out of management ready for transfer.", "", " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", " to be called first to remove some of the chunks (if possible).", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " Emits `Unbonded`.", "", " See also [`Call::withdraw_unbonded`].", "", " # ", " - Independent of the arguments. Limited but potentially exploitable complexity.", " - Contains a limited number of reads.", " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)", " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.", " The only way to clean the aforementioned storage item is also user-controlled via", " `withdraw_unbonded`.", " - One DB entry.", " ----------", " Base Weight: 50.34 µs", " DB Weight:", " - Read: Era Election Status, Ledger, Current Era, Locks, [Origin Account]", " - Write: [Origin Account], Locks, Ledger", " "}}, FunctionMetadataV4{Name: "withdraw_unbonded", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "num_slashing_spans", Type: "u32"}}, Documentation: []Text{" Remove any unlocked chunks from the `unlocking` queue from our management.", "", " This essentially frees up that balance to be used by the stash account to do", " whatever it wants.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " Emits `Withdrawn`.", "", " See also [`Call::unbond`].", "", " # ", " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.", " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is", " indirectly user-controlled. See [`unbond`] for more detail.", " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.", " - Writes are limited to the `origin` account key.", " ---------------", " Complexity O(S) where S is the number of slashing spans to remove", " Base Weight:", " Update: 50.52 + .028 * S µs", " - Reads: EraElectionStatus, Ledger, Current Era, Locks, [Origin Account]", " - Writes: [Origin Account], Locks, Ledger", " Kill: 79.41 + 2.366 * S µs", " - Reads: EraElectionStatus, Ledger, Current Era, Bonded, Slashing Spans, [Origin Account], Locks", " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, [Origin Account], Locks", " - Writes Each: SpanSlash * S", " NOTE: Weight annotation is the kill scenario, we refund otherwise.", " # "}}, FunctionMetadataV4{Name: "validate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "prefs", Type: "ValidatorPrefs"}}, Documentation: []Text{" Declare the desire to validate for the origin controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " -----------", " Base Weight: 17.13 µs", " DB Weight:", " - Read: Era Election Status, Ledger", " - Write: Nominators, Validators", " # "}}, FunctionMetadataV4{Name: "nominate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "targets", Type: "Vec<::Source>"}}, Documentation: []Text{" Declare the desire to nominate `targets` for the origin controller.", "", " Effects will be felt at the beginning of the next era. This can only be called when", " [`EraElectionStatus`] is `Closed`.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " # ", " - The transaction's complexity is proportional to the size of `targets` (N)", " which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS).", " - Both the reads and writes follow a similar pattern.", " ---------", " Base Weight: 22.34 + .36 * N µs", " where N is the number of targets", " DB Weight:", " - Reads: Era Election Status, Ledger, Current Era", " - Writes: Validators, Nominators", " # "}}, FunctionMetadataV4{Name: "chill", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Declare no desire to either validate or nominate.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains one read.", " - Writes are limited to the `origin` account key.", " --------", " Base Weight: 16.53 µs", " DB Weight:", " - Read: EraElectionStatus, Ledger", " - Write: Validators, Nominators", " # "}}, FunctionMetadataV4{Name: "set_payee", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" (Re-)set the payment target for a controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " ---------", " - Base Weight: 11.33 µs", " - DB Weight:", " - Read: Ledger", " - Write: Payee", " # "}}, FunctionMetadataV4{Name: "set_controller", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "controller", Type: "::Source"}}, Documentation: []Text{" (Re-)set the controller of a stash.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " ----------", " Base Weight: 25.22 µs", " DB Weight:", " - Read: Bonded, Ledger New Controller, Ledger Old Controller", " - Write: Bonded, Ledger New Controller, Ledger Old Controller", " # "}}, FunctionMetadataV4{Name: "set_validator_count", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "Compact"}}, Documentation: []Text{" Sets the ideal number of validators.", "", " The dispatch origin must be Root.", "", " # ", " Base Weight: 1.717 µs", " Write: Validator Count", " # "}}, FunctionMetadataV4{Name: "increase_validator_count", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "additional", Type: "Compact"}}, Documentation: []Text{" Increments the ideal number of validators.", "", " The dispatch origin must be Root.", "", " # ", " Base Weight: 1.717 µs", " Read/Write: Validator Count", " # "}}, FunctionMetadataV4{Name: "scale_validator_count", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "factor", Type: "Percent"}}, Documentation: []Text{" Scale up the ideal number of validators by a factor.", "", " The dispatch origin must be Root.", "", " # ", " Base Weight: 1.717 µs", " Read/Write: Validator Count", " # "}}, FunctionMetadataV4{Name: "force_no_eras", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be no new eras indefinitely.", "", " The dispatch origin must be Root.", "", " # ", " - No arguments.", " - Base Weight: 1.857 µs", " - Write: ForceEra", " # "}}, FunctionMetadataV4{Name: "force_new_era", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be a new era at the end of the next session. After this, it will be", " reset to normal (non-forced) behaviour.", "", " The dispatch origin must be Root.", "", " # ", " - No arguments.", " - Base Weight: 1.959 µs", " - Write ForceEra", " # "}}, FunctionMetadataV4{Name: "set_invulnerables", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "validators", Type: "Vec"}}, Documentation: []Text{" Set the validators who cannot be slashed (if any).", "", " The dispatch origin must be Root.", "", " # ", " - O(V)", " - Base Weight: 2.208 + .006 * V µs", " - Write: Invulnerables", " # "}}, FunctionMetadataV4{Name: "force_unstake", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "stash", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "num_slashing_spans", Type: "u32"}}, Documentation: []Text{" Force a current staker to become completely unstaked, immediately.", "", " The dispatch origin must be Root.", "", " # ", " O(S) where S is the number of slashing spans to be removed", " Base Weight: 53.07 + 2.365 * S µs", " Reads: Bonded, Slashing Spans, Account, Locks", " Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks", " Writes Each: SpanSlash * S", " # "}}, FunctionMetadataV4{Name: "force_new_era_always", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be a new era at the end of sessions indefinitely.", "", " The dispatch origin must be Root.", "", " # ", " - Base Weight: 2.05 µs", " - Write: ForceEra", " # "}}, FunctionMetadataV4{Name: "cancel_deferred_slash", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "era", Type: "EraIndex"}, FunctionArgumentMetadata{Name: "slash_indices", Type: "Vec"}}, Documentation: []Text{" Cancel enactment of a deferred slash.", "", " Can be called by the `T::SlashCancelOrigin`.", "", " Parameters: era and indices of the slashes for that era to kill.", "", " # ", " Complexity: O(U + S)", " with U unapplied slashes weighted with U=1000", " and S is the number of slash indices to be canceled.", " - Base: 5870 + 34.61 * S µs", " - Read: Unapplied Slashes", " - Write: Unapplied Slashes", " # "}}, FunctionMetadataV4{Name: "payout_stakers", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "validator_stash", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "era", Type: "EraIndex"}}, Documentation: []Text{" Pay out all the stakers behind a single validator for a single era.", "", " - `validator_stash` is the stash account of the validator. Their nominators, up to", " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.", " - `era` may be any era between `[current_era - history_depth; current_era]`.", "", " The origin of this call must be _Signed_. Any account can call this function, even if", " it is not one of the stakers.", "", " This can only be called when [`EraElectionStatus`] is `Closed`.", "", " # ", " - Time complexity: at most O(MaxNominatorRewardedPerValidator).", " - Contains a limited number of reads and writes.", " -----------", " N is the Number of payouts for the validator (including the validator)", " Base Weight:", " - Reward Destination Staked: 110 + 54.2 * N µs (Median Slopes)", " - Reward Destination Controller (Creating): 120 + 41.95 * N µs (Median Slopes)", " DB Weight:", " - Read: EraElectionStatus, CurrentEra, HistoryDepth, ErasValidatorReward,", " ErasStakersClipped, ErasRewardPoints, ErasValidatorPrefs (8 items)", " - Read Each: Bonded, Ledger, Payee, Locks, System Account (5 items)", " - Write Each: System Account, Locks, Ledger (3 items)", " # "}}, FunctionMetadataV4{Name: "rebond", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Rebond a portion of the stash scheduled to be unlocked.", "", " The dispatch origin must be signed by the controller, and it can be only called when", " [`EraElectionStatus`] is `Closed`.", "", " # ", " - Time complexity: O(L), where L is unlocking chunks", " - Bounded by `MAX_UNLOCKING_CHUNKS`.", " - Storage changes: Can't increase storage, only decrease it.", " ---------------", " - Base Weight: 34.51 µs * .048 L µs", " - DB Weight:", " - Reads: EraElectionStatus, Ledger, Locks, [Origin Account]", " - Writes: [Origin Account], Locks, Ledger", " # "}}, FunctionMetadataV4{Name: "set_history_depth", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_history_depth", Type: "Compact"}, FunctionArgumentMetadata{Name: "_era_items_deleted", Type: "Compact"}}, Documentation: []Text{" Set `HistoryDepth` value. This function will delete any history information", " when `HistoryDepth` is reduced.", "", " Parameters:", " - `new_history_depth`: The new history depth you would like to set.", " - `era_items_deleted`: The number of items that will be deleted by this dispatch.", " This should report all the storage items that will be deleted by clearing old", " era history. Needed to report an accurate weight for the dispatch. Trusted by", " `Root` to report an accurate number.", "", " Origin must be root.", "", " # ", " - E: Number of history depths removed, i.e. 10 -> 7 = 3", " - Base Weight: 29.13 * E µs", " - DB Weight:", " - Reads: Current Era, History Depth", " - Writes: History Depth", " - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs", " - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex", " # "}}, FunctionMetadataV4{Name: "reap_stash", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "stash", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "num_slashing_spans", Type: "u32"}}, Documentation: []Text{" Remove all data structure concerning a staker/stash once its balance is zero.", " This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone", " and the target `stash` must have no funds left.", "", " This can be called from any origin.", "", " - `stash`: The stash account to reap. Its balance must be zero.", "", " # ", " Complexity: O(S) where S is the number of slashing spans on the account.", " Base Weight: 75.94 + 2.396 * S µs", " DB Weight:", " - Reads: Stash Account, Bonded, Slashing Spans, Locks", " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks", " - Writes Each: SpanSlash * S", " # "}}, FunctionMetadataV4{Name: "submit_election_solution", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "winners", Type: "Vec"}, FunctionArgumentMetadata{Name: "compact", Type: "CompactAssignments"}, FunctionArgumentMetadata{Name: "score", Type: "ElectionScore"}, FunctionArgumentMetadata{Name: "era", Type: "EraIndex"}, FunctionArgumentMetadata{Name: "size", Type: "ElectionSize"}}, Documentation: []Text{" Submit an election result to the chain. If the solution:", "", " 1. is valid.", " 2. has a better score than a potentially existing solution on chain.", "", " then, it will be _put_ on chain.", "", " A solution consists of two pieces of data:", "", " 1. `winners`: a flat vector of all the winners of the round.", " 2. `assignments`: the compact version of an assignment vector that encodes the edge", " weights.", "", " Both of which may be computed using _phragmen_, or any other algorithm.", "", " Additionally, the submitter must provide:", "", " - The `score` that they claim their solution has.", "", " Both validators and nominators will be represented by indices in the solution. The", " indices should respect the corresponding types ([`ValidatorIndex`] and", " [`NominatorIndex`]). Moreover, they should be valid when used to index into", " [`SnapshotValidators`] and [`SnapshotNominators`]. Any invalid index will cause the", " solution to be rejected. These two storage items are set during the election window and", " may be used to determine the indices.", "", " A solution is valid if:", "", " 0. It is submitted when [`EraElectionStatus`] is `Open`.", " 1. Its claimed score is equal to the score computed on-chain.", " 2. Presents the correct number of winners.", " 3. All indexes must be value according to the snapshot vectors. All edge values must", " also be correct and should not overflow the granularity of the ratio type (i.e. 256", " or billion).", " 4. For each edge, all targets are actually nominated by the voter.", " 5. Has correct self-votes.", "", " A solutions score is consisted of 3 parameters:", "", " 1. `min { support.total }` for each support of a winner. This value should be maximized.", " 2. `sum { support.total }` for each support of a winner. This value should be minimized.", " 3. `sum { support.total^2 }` for each support of a winner. This value should be", " minimized (to ensure less variance)", "", " # ", " See `crate::weight` module.", " # "}}, FunctionMetadataV4{Name: "submit_election_solution_unsigned", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "winners", Type: "Vec"}, FunctionArgumentMetadata{Name: "compact", Type: "CompactAssignments"}, FunctionArgumentMetadata{Name: "score", Type: "ElectionScore"}, FunctionArgumentMetadata{Name: "era", Type: "EraIndex"}, FunctionArgumentMetadata{Name: "size", Type: "ElectionSize"}}, Documentation: []Text{" Unsigned version of `submit_election_solution`.", "", " Note that this must pass the [`ValidateUnsigned`] check which only allows transactions", " from the local node to be included. In other words, only the block author can include a", " transaction in the block.", "", " # ", " See `crate::weight` module.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "EraPayout", Args: []Type{"EraIndex", "Balance", "Balance"}, Documentation: []Text{" The era payout has been set; the first balance is the validator-payout; the second is", " the remainder from the maximum amount of reward.", " [era_index, validator_payout, remainder]"}}, EventMetadataV4{Name: "Reward", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" The staker has been rewarded by this amount. [stash, amount]"}}, EventMetadataV4{Name: "Slash", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" One validator (and its nominators) has been slashed by the given amount.", " [validator, amount]"}}, EventMetadataV4{Name: "OldSlashingReportDiscarded", Args: []Type{"SessionIndex"}, Documentation: []Text{" An old slashing report from a prior era was discarded because it could", " not be processed. [session_index]"}}, EventMetadataV4{Name: "StakingElection", Args: []Type{"ElectionCompute"}, Documentation: []Text{" A new set of stakers was elected with the given [compute]."}}, EventMetadataV4{Name: "SolutionStored", Args: []Type{"ElectionCompute"}, Documentation: []Text{" A new solution for the upcoming election has been stored. [compute]"}}, EventMetadataV4{Name: "Bonded", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" An account has bonded this amount. [stash, amount]", "", " NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", " it will not be emitted for staking rewards when they are added to stake."}}, EventMetadataV4{Name: "Unbonded", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" An account has unbonded this amount. [stash, amount]"}}, EventMetadataV4{Name: "Withdrawn", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", " from the unlocking queue. [stash, amount]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "SessionsPerEra", Type: "SessionIndex", Value: Bytes{0x6, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of sessions per era."}}, ModuleConstantMetadataV6{Name: "BondingDuration", Type: "EraIndex", Value: Bytes{0xa0, 0x2, 0x0, 0x0}, Documentation: []Text{" Number of eras that staked funds must remain bonded for."}}, ModuleConstantMetadataV6{Name: "SlashDeferDuration", Type: "EraIndex", Value: Bytes{0xa8, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of eras that slashes are deferred by, after computation.", "", " This should be less than the bonding duration.", " Set to 0 if slashes should be applied immediately, without opportunity for", " intervention."}}, ModuleConstantMetadataV6{Name: "ElectionLookahead", Type: "T::BlockNumber", Value: Bytes{0x32, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of blocks before the end of the era from which election submissions are allowed.", "", " Setting this to zero will disable the offchain compute and only on-chain seq-phragmen will", " be used.", "", " This is bounded by being within the last session. Hence, setting it to a value more than the", " length of a session will be pointless."}}, ModuleConstantMetadataV6{Name: "MaxIterations", Type: "u32", Value: Bytes{0xa, 0x0, 0x0, 0x0}, Documentation: []Text{" Maximum number of balancing iterations to run in the offchain submission.", "", " If set to 0, balance_solution will not be executed at all."}}, ModuleConstantMetadataV6{Name: "MinSolutionScoreBump", Type: "Perbill", Value: Bytes{0x20, 0xa1, 0x7, 0x0}, Documentation: []Text{" The threshold of improvement that should be provided for a new solution to be accepted."}}, ModuleConstantMetadataV6{Name: "MaxNominatorRewardedPerValidator", Type: "u32", Value: Bytes{0x40, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum number of nominators rewarded for each validator.", "", " For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim", " their reward. This used to limit the i/o cost for the nominator payout."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotController", Documentation: []Text{" Not a controller account."}}, ErrorMetadataV8{Name: "NotStash", Documentation: []Text{" Not a stash account."}}, ErrorMetadataV8{Name: "AlreadyBonded", Documentation: []Text{" Stash is already bonded."}}, ErrorMetadataV8{Name: "AlreadyPaired", Documentation: []Text{" Controller is already paired."}}, ErrorMetadataV8{Name: "EmptyTargets", Documentation: []Text{" Targets cannot be empty."}}, ErrorMetadataV8{Name: "DuplicateIndex", Documentation: []Text{" Duplicate index."}}, ErrorMetadataV8{Name: "InvalidSlashIndex", Documentation: []Text{" Slash record index out of bounds."}}, ErrorMetadataV8{Name: "InsufficientValue", Documentation: []Text{" Can not bond with value less than minimum balance."}}, ErrorMetadataV8{Name: "NoMoreChunks", Documentation: []Text{" Can not schedule more unlock chunks."}}, ErrorMetadataV8{Name: "NoUnlockChunk", Documentation: []Text{" Can not rebond without unlocking chunks."}}, ErrorMetadataV8{Name: "FundedTarget", Documentation: []Text{" Attempting to target a stash that still has funds."}}, ErrorMetadataV8{Name: "InvalidEraToReward", Documentation: []Text{" Invalid era to reward."}}, ErrorMetadataV8{Name: "InvalidNumberOfNominations", Documentation: []Text{" Invalid number of nominations."}}, ErrorMetadataV8{Name: "NotSortedAndUnique", Documentation: []Text{" Items are not sorted and unique."}}, ErrorMetadataV8{Name: "AlreadyClaimed", Documentation: []Text{" Rewards for this era have already been claimed for this validator."}}, ErrorMetadataV8{Name: "OffchainElectionEarlySubmission", Documentation: []Text{" The submitted result is received out of the open window."}}, ErrorMetadataV8{Name: "OffchainElectionWeakSubmission", Documentation: []Text{" The submitted result is not as good as the one stored on chain."}}, ErrorMetadataV8{Name: "SnapshotUnavailable", Documentation: []Text{" The snapshot data of the current window is missing."}}, ErrorMetadataV8{Name: "OffchainElectionBogusWinnerCount", Documentation: []Text{" Incorrect number of winners were presented."}}, ErrorMetadataV8{Name: "OffchainElectionBogusWinner", Documentation: []Text{" One of the submitted winners is not an active candidate on chain (index is out of range", " in snapshot)."}}, ErrorMetadataV8{Name: "OffchainElectionBogusCompact", Documentation: []Text{" Error while building the assignment type from the compact. This can happen if an index", " is invalid, or if the weights _overflow_."}}, ErrorMetadataV8{Name: "OffchainElectionBogusNominator", Documentation: []Text{" One of the submitted nominators is not an active nominator on chain."}}, ErrorMetadataV8{Name: "OffchainElectionBogusNomination", Documentation: []Text{" One of the submitted nominators has an edge to which they have not voted on chain."}}, ErrorMetadataV8{Name: "OffchainElectionSlashedNomination", Documentation: []Text{" One of the submitted nominators has an edge which is submitted before the last non-zero", " slash of the target."}}, ErrorMetadataV8{Name: "OffchainElectionBogusSelfVote", Documentation: []Text{" A self vote must only be originated from a validator to ONLY themselves."}}, ErrorMetadataV8{Name: "OffchainElectionBogusEdge", Documentation: []Text{" The submitted result has unknown edges that are not among the presented winners."}}, ErrorMetadataV8{Name: "OffchainElectionBogusScore", Documentation: []Text{" The claimed score does not match with the one computed from the data."}}, ErrorMetadataV8{Name: "OffchainElectionBogusElectionSize", Documentation: []Text{" The election size is invalid."}}, ErrorMetadataV8{Name: "CallNotAllowed", Documentation: []Text{" The call is not allowed at the given time due to restrictions of election period."}}, ErrorMetadataV8{Name: "IncorrectHistoryDepth", Documentation: []Text{" Incorrect previous history depth input provided."}}, ErrorMetadataV8{Name: "IncorrectSlashingSpans", Documentation: []Text{" Incorrect number of slashing spans provided."}}}}, ModuleMetadataV10{Name: "Session", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Session", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of validators."}}, StorageFunctionMetadataV10{Name: "CurrentIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "SessionIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current index of the session."}}, StorageFunctionMetadataV10{Name: "QueuedChanged", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the underlying economic identities or weighting behind the validators", " has changed in the queued validator set."}}, StorageFunctionMetadataV10{Name: "QueuedKeys", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(T::ValidatorId, T::Keys)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."}}, StorageFunctionMetadataV10{Name: "DisabledValidators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Indices of disabled validators.", "", " The set is cleared when `on_session_ending` returns a new set of identities."}}, StorageFunctionMetadataV10{Name: "NextKeys", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::ValidatorId", Value: "T::Keys", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The next session keys for a validator."}}, StorageFunctionMetadataV10{Name: "KeyOwner", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "(KeyTypeId, Vec)", Value: "T::ValidatorId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The owner of a key. The key is the `KeyTypeId` + the encoded key."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_keys", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "keys", Type: "T::Keys"}, FunctionArgumentMetadata{Name: "proof", Type: "Vec"}}, Documentation: []Text{" Sets the session key(s) of the function caller to `keys`.", " Allows an account to set its session key prior to becoming a validator.", " This doesn't take effect until the next session.", "", " The dispatch origin of this function must be signed.", "", " # ", " - Complexity: `O(1)`", " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", " - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`", " - DbWrites: `origin account`, `NextKeys`", " - DbReads per key id: `KeyOwner`", " - DbWrites per key id: `KeyOwner`", " # "}}, FunctionMetadataV4{Name: "purge_keys", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Removes any session key(s) of the function caller.", " This doesn't take effect until the next session.", "", " The dispatch origin of this function must be signed.", "", " # ", " - Complexity: `O(1)` in number of key ", " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", " - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`", " - DbWrites: `NextKeys`, `origin account`", " - DbWrites per key id: `KeyOwnder`", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewSession", Args: []Type{"SessionIndex"}, Documentation: []Text{" New session has happened. Note that the argument is the [session_index], not the block", " number as the type might suggest."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidProof", Documentation: []Text{" Invalid ownership proof."}}, ErrorMetadataV8{Name: "NoAssociatedValidatorId", Documentation: []Text{" No associated validator ID for account."}}, ErrorMetadataV8{Name: "DuplicatedKey", Documentation: []Text{" Registered duplicate key."}}, ErrorMetadataV8{Name: "NoKeys", Documentation: []Text{" No keys are associated with this account."}}}}, ModuleMetadataV10{Name: "Democracy", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Democracy", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "PublicPropCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "PropIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of (public) proposals that have been made so far."}}, StorageFunctionMetadataV10{Name: "PublicProps", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(PropIndex, T::Hash, T::AccountId)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The public proposals. Unsorted. The second item is the proposal's hash."}}, StorageFunctionMetadataV10{Name: "DepositOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "PropIndex", Value: "(Vec, BalanceOf)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Those who have locked a deposit.", "", " TWOX-NOTE: Safe, as increasing integer keys are safe."}}, StorageFunctionMetadataV10{Name: "Preimages", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: "PreimageStatus, T::BlockNumber>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map of hashes to the proposal preimage, along with who registered it and their deposit.", " The block number is the block at which it was deposited."}}, StorageFunctionMetadataV10{Name: "ReferendumCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next free referendum index, aka the number of referenda started so far."}}, StorageFunctionMetadataV10{Name: "LowestUnbaked", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The lowest referendum index representing an unbaked referendum. Equal to", " `ReferendumCount` if there isn't a unbaked referendum."}}, StorageFunctionMetadataV10{Name: "ReferendumInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "ReferendumIndex", Value: "ReferendumInfo>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information concerning any given referendum.", "", " TWOX-NOTE: SAFE as indexes are not under an attacker’s control."}}, StorageFunctionMetadataV10{Name: "VotingOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "Voting, T::AccountId, T::BlockNumber>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" All votes for a particular voter. We store the balance for the number of votes that we", " have recorded. The second item is the total amount of delegations, that will be added.", "", " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway."}}, StorageFunctionMetadataV10{Name: "Locks", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "T::BlockNumber", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Accounts for which there are locks in action which may be removed at some point in the", " future. The value is the block number at which the lock expires and may be removed.", "", " TWOX-NOTE: OK ― `AccountId` is a secure hash."}}, StorageFunctionMetadataV10{Name: "LastTabledWasExternal", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the last referendum tabled was submitted externally. False if it was a public", " proposal."}}, StorageFunctionMetadataV10{Name: "NextExternal", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "(T::Hash, VoteThreshold)", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The referendum to be tabled whenever it would be valid to table an external proposal.", " This happens when a referendum needs to be tabled and one of two conditions are met:", " - `LastTabledWasExternal` is `false`; or", " - `PublicProps` is empty."}}, StorageFunctionMetadataV10{Name: "Blacklist", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: "(T::BlockNumber, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A record of who vetoed what. Maps proposal hash to a possible existent block number", " (until when it may not be resubmitted) and who vetoed it."}}, StorageFunctionMetadataV10{Name: "Cancellations", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: "bool", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Record of all proposals that have been subject to emergency cancellation."}}, StorageFunctionMetadataV10{Name: "StorageVersion", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Releases", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Storage version of the pallet.", "", " New networks start with last version."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Propose a sensitive action to be taken.", "", " The dispatch origin of this call must be _Signed_ and the sender must", " have funds to cover the deposit.", "", " - `proposal_hash`: The hash of the proposal preimage.", " - `value`: The amount of deposit (must be at least `MinimumDeposit`).", "", " Emits `Proposed`.", "", " # ", " - Complexity: `O(1)`", " - Db reads: `PublicPropCount`, `PublicProps`", " - Db writes: `PublicPropCount`, `PublicProps`, `DepositOf`", " # "}}, FunctionMetadataV4{Name: "second", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "Compact"}, FunctionArgumentMetadata{Name: "seconds_upper_bound", Type: "Compact"}}, Documentation: []Text{" Signals agreement with a particular proposal.", "", " The dispatch origin of this call must be _Signed_ and the sender", " must have funds to cover the deposit, equal to the original deposit.", "", " - `proposal`: The index of the proposal to second.", " - `seconds_upper_bound`: an upper bound on the current number of seconds on this", " proposal. Extrinsic is weighted according to this value with no refund.", "", " # ", " - Complexity: `O(S)` where S is the number of seconds a proposal already has.", " - Db reads: `DepositOf`", " - Db writes: `DepositOf`", " # "}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "vote", Type: "AccountVote>"}}, Documentation: []Text{" Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", " otherwise it is a vote to keep the status quo.", "", " The dispatch origin of this call must be _Signed_.", "", " - `ref_index`: The index of the referendum to vote for.", " - `vote`: The vote configuration.", "", " # ", " - Complexity: `O(R)` where R is the number of referendums the voter has voted on.", " weight is charged as if maximum votes.", " - Db reads: `ReferendumInfoOf`, `VotingOf`, `balances locks`", " - Db writes: `ReferendumInfoOf`, `VotingOf`, `balances locks`", " # "}}, FunctionMetadataV4{Name: "emergency_cancel", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "ReferendumIndex"}}, Documentation: []Text{" Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", " referendum.", "", " The dispatch origin of this call must be `CancellationOrigin`.", "", " -`ref_index`: The index of the referendum to cancel.", "", " # ", " - Complexity: `O(1)`.", " - Db reads: `ReferendumInfoOf`, `Cancellations`", " - Db writes: `ReferendumInfoOf`, `Cancellations`", " # "}}, FunctionMetadataV4{Name: "external_propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a referendum to be tabled once it is legal to schedule an external", " referendum.", "", " The dispatch origin of this call must be `ExternalOrigin`.", "", " - `proposal_hash`: The preimage hash of the proposal.", "", " # ", " - Complexity `O(V)` with V number of vetoers in the blacklist of proposal.", " Decoding vec of length V. Charged as maximum", " - Db reads: `NextExternal`, `Blacklist`", " - Db writes: `NextExternal`", " # "}}, FunctionMetadataV4{Name: "external_propose_majority", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a majority-carries referendum to be tabled next once it is legal to schedule", " an external referendum.", "", " The dispatch of this call must be `ExternalMajorityOrigin`.", "", " - `proposal_hash`: The preimage hash of the proposal.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call.", "", " # ", " - Complexity: `O(1)`", " - Db write: `NextExternal`", " # "}}, FunctionMetadataV4{Name: "external_propose_default", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", " schedule an external referendum.", "", " The dispatch of this call must be `ExternalDefaultOrigin`.", "", " - `proposal_hash`: The preimage hash of the proposal.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call.", "", " # ", " - Complexity: `O(1)`", " - Db write: `NextExternal`", " # "}}, FunctionMetadataV4{Name: "fast_track", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "voting_period", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "delay", Type: "T::BlockNumber"}}, Documentation: []Text{" Schedule the currently externally-proposed majority-carries referendum to be tabled", " immediately. If there is no externally-proposed referendum currently, or if there is one", " but it is not a majority-carries referendum then it fails.", "", " The dispatch of this call must be `FastTrackOrigin`.", "", " - `proposal_hash`: The hash of the current external proposal.", " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", " `FastTrackVotingPeriod` if too low.", " - `delay`: The number of block after voting has ended in approval and this should be", " enacted. This doesn't have a minimum amount.", "", " Emits `Started`.", "", " # ", " - Complexity: `O(1)`", " - Db reads: `NextExternal`, `ReferendumCount`", " - Db writes: `NextExternal`, `ReferendumCount`, `ReferendumInfoOf`", " - Base Weight: 30.1 µs", " # "}}, FunctionMetadataV4{Name: "veto_external", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Veto and blacklist the external proposal hash.", "", " The dispatch origin of this call must be `VetoOrigin`.", "", " - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", "", " Emits `Vetoed`.", "", " # ", " - Complexity: `O(V + log(V))` where V is number of `existing vetoers`", " Performs a binary search on `existing_vetoers` which should not be very large.", " - Db reads: `NextExternal`, `Blacklist`", " - Db writes: `NextExternal`, `Blacklist`", " # "}}, FunctionMetadataV4{Name: "cancel_referendum", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "Compact"}}, Documentation: []Text{" Remove a referendum.", "", " The dispatch origin of this call must be _Root_.", "", " - `ref_index`: The index of the referendum to cancel.", "", " # ", " - Complexity: `O(1)`.", " - Db writes: `ReferendumInfoOf`", " # "}}, FunctionMetadataV4{Name: "cancel_queued", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "which", Type: "ReferendumIndex"}}, Documentation: []Text{" Cancel a proposal queued for enactment.", "", " The dispatch origin of this call must be _Root_.", "", " - `which`: The index of the referendum to cancel.", "", " # ", " - `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`.", " - Db reads: `scheduler lookup`, scheduler agenda`", " - Db writes: `scheduler lookup`, scheduler agenda`", " # "}}, FunctionMetadataV4{Name: "delegate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "to", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "conviction", Type: "Conviction"}, FunctionArgumentMetadata{Name: "balance", Type: "BalanceOf"}}, Documentation: []Text{" Delegate the voting power (with some given conviction) of the sending account.", "", " The balance delegated is locked for as long as it's delegated, and thereafter for the", " time appropriate for the conviction's lock period.", "", " The dispatch origin of this call must be _Signed_, and the signing account must either:", " - be delegating already; or", " - have no voting activity (if there is, then it will need to be removed/consolidated", " through `reap_vote` or `unvote`).", "", " - `to`: The account whose voting the `target` account's voting power will follow.", " - `conviction`: The conviction that will be attached to the delegated votes. When the", " account is undelegated, the funds will be locked for the corresponding period.", " - `balance`: The amount of the account's balance to be used in delegating. This must", " not be more than the account's current balance.", "", " Emits `Delegated`.", "", " # ", " - Complexity: `O(R)` where R is the number of referendums the voter delegating to has", " voted on. Weight is charged as if maximum votes.", " - Db reads: 3*`VotingOf`, `origin account locks`", " - Db writes: 3*`VotingOf`, `origin account locks`", " - Db reads per votes: `ReferendumInfoOf`", " - Db writes per votes: `ReferendumInfoOf`", " # "}}, FunctionMetadataV4{Name: "undelegate", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Undelegate the voting power of the sending account.", "", " Tokens may be unlocked following once an amount of time consistent with the lock period", " of the conviction with which the delegation was issued.", "", " The dispatch origin of this call must be _Signed_ and the signing account must be", " currently delegating.", "", " Emits `Undelegated`.", "", " # ", " - Complexity: `O(R)` where R is the number of referendums the voter delegating to has", " voted on. Weight is charged as if maximum votes.", " - Db reads: 2*`VotingOf`", " - Db writes: 2*`VotingOf`", " - Db reads per votes: `ReferendumInfoOf`", " - Db writes per votes: `ReferendumInfoOf`", " # "}}, FunctionMetadataV4{Name: "clear_public_proposals", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Clears all public proposals.", "", " The dispatch origin of this call must be _Root_.", "", " # ", " - `O(1)`.", " - Db writes: `PublicProps`", " # "}}, FunctionMetadataV4{Name: "note_preimage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Register the preimage for an upcoming proposal. This doesn't require the proposal to be", " in the dispatch queue but does require a deposit, returned once enacted.", "", " The dispatch origin of this call must be _Signed_.", "", " - `encoded_proposal`: The preimage of a proposal.", "", " Emits `PreimageNoted`.", "", " # ", " - Complexity: `O(E)` with E size of `encoded_proposal` (protected by a required deposit).", " - Db reads: `Preimages`", " - Db writes: `Preimages`", " # "}}, FunctionMetadataV4{Name: "note_preimage_operational", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Same as `note_preimage` but origin is `OperationalPreimageOrigin`."}}, FunctionMetadataV4{Name: "note_imminent_preimage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Register the preimage for an upcoming proposal. This requires the proposal to be", " in the dispatch queue. No deposit is needed. When this call is successful, i.e.", " the preimage has not been uploaded before and matches some imminent proposal,", " no fee is paid.", "", " The dispatch origin of this call must be _Signed_.", "", " - `encoded_proposal`: The preimage of a proposal.", "", " Emits `PreimageNoted`.", "", " # ", " - Complexity: `O(E)` with E size of `encoded_proposal` (protected by a required deposit).", " - Db reads: `Preimages`", " - Db writes: `Preimages`", " # "}}, FunctionMetadataV4{Name: "note_imminent_preimage_operational", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`."}}, FunctionMetadataV4{Name: "reap_preimage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "proposal_len_upper_bound", Type: "Compact"}}, Documentation: []Text{" Remove an expired proposal preimage and collect the deposit.", "", " The dispatch origin of this call must be _Signed_.", "", " - `proposal_hash`: The preimage hash of a proposal.", " - `proposal_length_upper_bound`: an upper bound on length of the proposal.", " Extrinsic is weighted according to this value with no refund.", "", " This will only work after `VotingPeriod` blocks from the time that the preimage was", " noted, if it's the same account doing it. If it's a different account, then it'll only", " work an additional `EnactmentPeriod` later.", "", " Emits `PreimageReaped`.", "", " # ", " - Complexity: `O(D)` where D is length of proposal.", " - Db reads: `Preimages`, provider account data", " - Db writes: `Preimages` provider account data", " # "}}, FunctionMetadataV4{Name: "unlock", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "T::AccountId"}}, Documentation: []Text{" Unlock tokens that have an expired lock.", "", " The dispatch origin of this call must be _Signed_.", "", " - `target`: The account to remove the lock on.", "", " # ", " - Complexity `O(R)` with R number of vote of target.", " - Db reads: `VotingOf`, `balances locks`, `target account`", " - Db writes: `VotingOf`, `balances locks`, `target account`", " # "}}, FunctionMetadataV4{Name: "remove_vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "ReferendumIndex"}}, Documentation: []Text{" Remove a vote for a referendum.", "", " If:", " - the referendum was cancelled, or", " - the referendum is ongoing, or", " - the referendum has ended such that", " - the vote of the account was in opposition to the result; or", " - there was no conviction to the account's vote; or", " - the account made a split vote", " ...then the vote is removed cleanly and a following call to `unlock` may result in more", " funds being available.", "", " If, however, the referendum has ended and:", " - it finished corresponding to the vote of the account, and", " - the account made a standard vote with conviction, and", " - the lock period of the conviction is not over", " ...then the lock will be aggregated into the overall account's lock, which may involve", " *overlocking* (where the two locks are combined into a single lock that is the maximum", " of both the amount locked and the time is it locked for).", "", " The dispatch origin of this call must be _Signed_, and the signer must have a vote", " registered for referendum `index`.", "", " - `index`: The index of referendum of the vote to be removed.", "", " # ", " - `O(R + log R)` where R is the number of referenda that `target` has voted on.", " Weight is calculated for the maximum number of vote.", " - Db reads: `ReferendumInfoOf`, `VotingOf`", " - Db writes: `ReferendumInfoOf`, `VotingOf`", " # "}}, FunctionMetadataV4{Name: "remove_other_vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "index", Type: "ReferendumIndex"}}, Documentation: []Text{" Remove a vote for a referendum.", "", " If the `target` is equal to the signer, then this function is exactly equivalent to", " `remove_vote`. If not equal to the signer, then the vote must have expired,", " either because the referendum was cancelled, because the voter lost the referendum or", " because the conviction period is over.", "", " The dispatch origin of this call must be _Signed_.", "", " - `target`: The account of the vote to be removed; this account must have voted for", " referendum `index`.", " - `index`: The index of referendum of the vote to be removed.", "", " # ", " - `O(R + log R)` where R is the number of referenda that `target` has voted on.", " Weight is calculated for the maximum number of vote.", " - Db reads: `ReferendumInfoOf`, `VotingOf`", " - Db writes: `ReferendumInfoOf`, `VotingOf`", " # "}}, FunctionMetadataV4{Name: "enact_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "ReferendumIndex"}}, Documentation: []Text{" Enact a proposal from a referendum. For now we just make the weight be the maximum."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"PropIndex", "Balance"}, Documentation: []Text{" A motion has been proposed by a public account. [proposal_index, deposit]"}}, EventMetadataV4{Name: "Tabled", Args: []Type{"PropIndex", "Balance", "Vec"}, Documentation: []Text{" A public proposal has been tabled for referendum vote. [proposal_index, deposit, depositors]"}}, EventMetadataV4{Name: "ExternalTabled", Args: []Type(nil), Documentation: []Text{" An external proposal has been tabled."}}, EventMetadataV4{Name: "Started", Args: []Type{"ReferendumIndex", "VoteThreshold"}, Documentation: []Text{" A referendum has begun. [ref_index, threshold]"}}, EventMetadataV4{Name: "Passed", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A proposal has been approved by referendum. [ref_index]"}}, EventMetadataV4{Name: "NotPassed", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A proposal has been rejected by referendum. [ref_index]"}}, EventMetadataV4{Name: "Cancelled", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A referendum has been cancelled. [ref_index]"}}, EventMetadataV4{Name: "Executed", Args: []Type{"ReferendumIndex", "bool"}, Documentation: []Text{" A proposal has been enacted. [ref_index, is_ok]"}}, EventMetadataV4{Name: "Delegated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" An account has delegated their vote to another account. [who, target]"}}, EventMetadataV4{Name: "Undelegated", Args: []Type{"AccountId"}, Documentation: []Text{" An [account] has cancelled a previous delegation operation."}}, EventMetadataV4{Name: "Vetoed", Args: []Type{"AccountId", "Hash", "BlockNumber"}, Documentation: []Text{" An external proposal has been vetoed. [who, proposal_hash, until]"}}, EventMetadataV4{Name: "PreimageNoted", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A proposal's preimage was noted, and the deposit taken. [proposal_hash, who, deposit]"}}, EventMetadataV4{Name: "PreimageUsed", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A proposal preimage was removed and used (the deposit was returned).", " [proposal_hash, provider, deposit]"}}, EventMetadataV4{Name: "PreimageInvalid", Args: []Type{"Hash", "ReferendumIndex"}, Documentation: []Text{" A proposal could not be executed because its preimage was invalid. [proposal_hash, ref_index]"}}, EventMetadataV4{Name: "PreimageMissing", Args: []Type{"Hash", "ReferendumIndex"}, Documentation: []Text{" A proposal could not be executed because its preimage was missing. [proposal_hash, ref_index]"}}, EventMetadataV4{Name: "PreimageReaped", Args: []Type{"Hash", "AccountId", "Balance", "AccountId"}, Documentation: []Text{" A registered preimage was removed and the deposit collected by the reaper.", " [proposal_hash, provider, deposit, reaper]"}}, EventMetadataV4{Name: "Unlocked", Args: []Type{"AccountId"}, Documentation: []Text{" An [account] has been unlocked successfully."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "EnactmentPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x2f, 0xd, 0x0}, Documentation: []Text{" The minimum period of locking and the period between a proposal being approved and enacted.", "", " It should generally be a little more than the unstake period to ensure that", " voting stakers have an opportunity to remove themselves from the system in the case where", " they are on the losing side of a vote."}}, ModuleConstantMetadataV6{Name: "LaunchPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" How often (in blocks) new public referenda are launched."}}, ModuleConstantMetadataV6{Name: "VotingPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" How often (in blocks) to check for new votes."}}, ModuleConstantMetadataV6{Name: "MinimumDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount to be used as a deposit for a public referendum proposal."}}, ModuleConstantMetadataV6{Name: "FastTrackVotingPeriod", Type: "T::BlockNumber", Value: Bytes{0x80, 0x51, 0x1, 0x0}, Documentation: []Text{" Minimum voting period allowed for an emergency referendum."}}, ModuleConstantMetadataV6{Name: "CooloffPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" Period in blocks where an external proposal may not be re-submitted after being vetoed."}}, ModuleConstantMetadataV6{Name: "PreimageByteDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of balance that must be deposited per byte of preimage stored."}}, ModuleConstantMetadataV6{Name: "MaxVotes", Type: "u32", Value: Bytes{0x64, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum number of votes for an account."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "ValueLow", Documentation: []Text{" Value too low"}}, ErrorMetadataV8{Name: "ProposalMissing", Documentation: []Text{" Proposal does not exist"}}, ErrorMetadataV8{Name: "BadIndex", Documentation: []Text{" Unknown index"}}, ErrorMetadataV8{Name: "AlreadyCanceled", Documentation: []Text{" Cannot cancel the same proposal twice"}}, ErrorMetadataV8{Name: "DuplicateProposal", Documentation: []Text{" Proposal already made"}}, ErrorMetadataV8{Name: "ProposalBlacklisted", Documentation: []Text{" Proposal still blacklisted"}}, ErrorMetadataV8{Name: "NotSimpleMajority", Documentation: []Text{" Next external proposal not simple majority"}}, ErrorMetadataV8{Name: "InvalidHash", Documentation: []Text{" Invalid hash"}}, ErrorMetadataV8{Name: "NoProposal", Documentation: []Text{" No external proposal"}}, ErrorMetadataV8{Name: "AlreadyVetoed", Documentation: []Text{" Identity may not veto a proposal twice"}}, ErrorMetadataV8{Name: "NotDelegated", Documentation: []Text{" Not delegated"}}, ErrorMetadataV8{Name: "DuplicatePreimage", Documentation: []Text{" Preimage already noted"}}, ErrorMetadataV8{Name: "NotImminent", Documentation: []Text{" Not imminent"}}, ErrorMetadataV8{Name: "TooEarly", Documentation: []Text{" Too early"}}, ErrorMetadataV8{Name: "Imminent", Documentation: []Text{" Imminent"}}, ErrorMetadataV8{Name: "PreimageMissing", Documentation: []Text{" Preimage not found"}}, ErrorMetadataV8{Name: "ReferendumInvalid", Documentation: []Text{" Vote given for invalid referendum"}}, ErrorMetadataV8{Name: "PreimageInvalid", Documentation: []Text{" Invalid preimage"}}, ErrorMetadataV8{Name: "NoneWaiting", Documentation: []Text{" No proposals waiting"}}, ErrorMetadataV8{Name: "NotLocked", Documentation: []Text{" The target account does not have a lock."}}, ErrorMetadataV8{Name: "NotExpired", Documentation: []Text{" The lock on the account to be unlocked has not yet expired."}}, ErrorMetadataV8{Name: "NotVoter", Documentation: []Text{" The given account did not vote on the referendum."}}, ErrorMetadataV8{Name: "NoPermission", Documentation: []Text{" The actor has no permission to conduct the action."}}, ErrorMetadataV8{Name: "AlreadyDelegating", Documentation: []Text{" The account is already delegating."}}, ErrorMetadataV8{Name: "Overflow", Documentation: []Text{" An unexpected integer overflow occurred."}}, ErrorMetadataV8{Name: "Underflow", Documentation: []Text{" An unexpected integer underflow occurred."}}, ErrorMetadataV8{Name: "InsufficientFunds", Documentation: []Text{" Too high a balance was provided that the account cannot afford."}}, ErrorMetadataV8{Name: "NotDelegating", Documentation: []Text{" The account is not currently delegating."}}, ErrorMetadataV8{Name: "VotesExist", Documentation: []Text{" The account currently has votes attached to it and the operation cannot succeed until", " these are removed, either through `unvote` or `reap_vote`."}}, ErrorMetadataV8{Name: "InstantNotAllowed", Documentation: []Text{" The instant referendum origin is currently disallowed."}}, ErrorMetadataV8{Name: "Nonsense", Documentation: []Text{" Delegation to oneself makes no sense."}}, ErrorMetadataV8{Name: "WrongUpperBound", Documentation: []Text{" Invalid upper bound."}}, ErrorMetadataV8{Name: "MaxVotesReached", Documentation: []Text{" Maximum number of votes reached."}}}}, ModuleMetadataV10{Name: "Council", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Instance1Collective", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The hashes of the active proposals."}}, StorageFunctionMetadataV10{Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: ">::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Actual proposal for a given hash, if it's current."}}, StorageFunctionMetadataV10{Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: "Votes", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes on a given proposal, if it is ongoing."}}, StorageFunctionMetadataV10{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proposals so far."}}, StorageFunctionMetadataV10{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current members of the collective. This is stored sorted (just by value)."}}, StorageFunctionMetadataV10{Name: "Prime", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The member who provides the default vote for any other members that do not vote before", " the timeout. If None, then no member has that privilege."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_members", Type: "Vec"}, FunctionArgumentMetadata{Name: "prime", Type: "Option"}, FunctionArgumentMetadata{Name: "old_count", Type: "MemberCount"}}, Documentation: []Text{" Set the collective's membership.", "", " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", " - `prime`: The prime member whose vote sets the default.", " - `old_count`: The upper bound for the previous number of members in storage.", " Used for weight estimation.", "", " Requires root origin.", "", " NOTE: Does not enforce the expected `MAX_MEMBERS` limit on the amount of members, but", " the weight estimations rely on it to estimate dispatchable weight.", "", " # ", " ## Weight", " - `O(MP + N)` where:", " - `M` old-members-count (code- and governance-bounded)", " - `N` new-members-count (code- and governance-bounded)", " - `P` proposals-count (code-bounded)", " - DB:", " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members", " - 1 storage read (codec `O(P)`) for reading the proposals", " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", " # "}}, FunctionMetadataV4{Name: "execute", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}, FunctionArgumentMetadata{Name: "length_bound", Type: "Compact"}}, Documentation: []Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective.", "", " # ", " ## Weight", " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`", " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", " - 1 event", " # "}}, FunctionMetadataV4{Name: "propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "Compact"}, FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}, FunctionArgumentMetadata{Name: "length_bound", Type: "Compact"}}, Documentation: []Text{" Add a new proposal to either be voted on or executed directly.", "", " Requires the sender to be member.", "", " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", " or put up for voting.", "", " # ", " ## Weight", " - `O(B + M + P1)` or `O(B + M + P2)` where:", " - `B` is `proposal` size in bytes (length-fee-bounded)", " - `M` is members-count (code- and governance-bounded)", " - branching is influenced by `threshold` where:", " - `P1` is proposal execution complexity (`threshold < 2`)", " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", " - DB:", " - 1 storage read `is_member` (codec `O(M)`)", " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", " - DB accesses influenced by `threshold`:", " - EITHER storage accesses done by `proposal` (`threshold < 2`)", " - OR proposal insertion (`threshold <= 2`)", " - 1 storage mutation `Proposals` (codec `O(P2)`)", " - 1 storage mutation `ProposalCount` (codec `O(1)`)", " - 1 storage write `ProposalOf` (codec `O(B)`)", " - 1 storage write `Voting` (codec `O(M)`)", " - 1 event", " # "}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "approve", Type: "bool"}}, Documentation: []Text{" Add an aye or nay vote for the sender to the given proposal.", "", " Requires the sender to be a member.", "", " # ", " ## Weight", " - `O(M)` where `M` is members-count (code- and governance-bounded)", " - DB:", " - 1 storage read `Members` (codec `O(M)`)", " - 1 storage mutation `Voting` (codec `O(M)`)", " - 1 event", " # "}}, FunctionMetadataV4{Name: "close", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "proposal_weight_bound", Type: "Compact"}, FunctionArgumentMetadata{Name: "length_bound", Type: "Compact"}}, Documentation: []Text{" Close a vote that is either approved, disapproved or whose voting period has ended.", "", " May be called by any signed account in order to finish voting and close the proposal.", "", " If called before the end of the voting period it will only close the vote if it is", " has enough votes to be approved or disapproved.", "", " If called after the end of the voting period abstentions are counted as rejections", " unless there is a prime member set and the prime member cast an approval.", "", " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.", " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", " `storage::read` so it is `size_of::() == 4` larger than the pure length.", "", " # ", " ## Weight", " - `O(B + M + P1 + P2)` where:", " - `B` is `proposal` size in bytes (length-fee-bounded)", " - `M` is members-count (code- and governance-bounded)", " - `P1` is the complexity of `proposal` preimage.", " - `P2` is proposal-count (code-bounded)", " - DB:", " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)", " - any mutations done while executing `proposal` (`P1`)", " - up to 3 events", " # "}}, FunctionMetadataV4{Name: "disapprove_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Disapprove a proposal, close, and remove it from the system, regardless of its current state.", "", " Must be called by the Root origin.", "", " Parameters:", " * `proposal_hash`: The hash of the proposal that should be disapproved.", "", " # ", " Complexity: O(P) where P is the number of max proposals", " Base Weight: .49 * P", " DB Weight:", " * Reads: Proposals", " * Writes: Voting, Proposals, ProposalOf", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`).", " [account, proposal_index, proposal_hash, threshold]"}}, EventMetadataV4{Name: "Voted", Args: []Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`).", " [account, proposal_hash, voted, yes, no]"}}, EventMetadataV4{Name: "Approved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was approved by the required threshold.", " [proposal_hash]"}}, EventMetadataV4{Name: "Disapproved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was not approved by the required threshold.", " [proposal_hash]"}}, EventMetadataV4{Name: "Executed", Args: []Type{"Hash", "DispatchResult"}, Documentation: []Text{" A motion was executed; result will be `Ok` if it returned without error.", " [proposal_hash, result]"}}, EventMetadataV4{Name: "MemberExecuted", Args: []Type{"Hash", "DispatchResult"}, Documentation: []Text{" A single member did some action; result will be `Ok` if it returned without error.", " [proposal_hash, result]"}}, EventMetadataV4{Name: "Closed", Args: []Type{"Hash", "MemberCount", "MemberCount"}, Documentation: []Text{" A proposal was closed because its threshold was reached or after its duration was up.", " [proposal_hash, yes, no]"}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" Account is not a member"}}, ErrorMetadataV8{Name: "DuplicateProposal", Documentation: []Text{" Duplicate proposals not allowed"}}, ErrorMetadataV8{Name: "ProposalMissing", Documentation: []Text{" Proposal must exist"}}, ErrorMetadataV8{Name: "WrongIndex", Documentation: []Text{" Mismatched index"}}, ErrorMetadataV8{Name: "DuplicateVote", Documentation: []Text{" Duplicate vote ignored"}}, ErrorMetadataV8{Name: "AlreadyInitialized", Documentation: []Text{" Members are already initialized!"}}, ErrorMetadataV8{Name: "TooEarly", Documentation: []Text{" The close call was made too early, before the end of the voting."}}, ErrorMetadataV8{Name: "TooManyProposals", Documentation: []Text{" There can only be a maximum of `MaxProposals` active proposals."}}, ErrorMetadataV8{Name: "WrongProposalWeight", Documentation: []Text{" The given weight bound for the proposal was too low."}}, ErrorMetadataV8{Name: "WrongProposalLength", Documentation: []Text{" The given length bound for the proposal was too low."}}}}, ModuleMetadataV10{Name: "TechnicalCommittee", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Instance2Collective", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The hashes of the active proposals."}}, StorageFunctionMetadataV10{Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: ">::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Actual proposal for a given hash, if it's current."}}, StorageFunctionMetadataV10{Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: "Votes", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes on a given proposal, if it is ongoing."}}, StorageFunctionMetadataV10{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proposals so far."}}, StorageFunctionMetadataV10{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current members of the collective. This is stored sorted (just by value)."}}, StorageFunctionMetadataV10{Name: "Prime", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The member who provides the default vote for any other members that do not vote before", " the timeout. If None, then no member has that privilege."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_members", Type: "Vec"}, FunctionArgumentMetadata{Name: "prime", Type: "Option"}, FunctionArgumentMetadata{Name: "old_count", Type: "MemberCount"}}, Documentation: []Text{" Set the collective's membership.", "", " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", " - `prime`: The prime member whose vote sets the default.", " - `old_count`: The upper bound for the previous number of members in storage.", " Used for weight estimation.", "", " Requires root origin.", "", " NOTE: Does not enforce the expected `MAX_MEMBERS` limit on the amount of members, but", " the weight estimations rely on it to estimate dispatchable weight.", "", " # ", " ## Weight", " - `O(MP + N)` where:", " - `M` old-members-count (code- and governance-bounded)", " - `N` new-members-count (code- and governance-bounded)", " - `P` proposals-count (code-bounded)", " - DB:", " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members", " - 1 storage read (codec `O(P)`) for reading the proposals", " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", " # "}}, FunctionMetadataV4{Name: "execute", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}, FunctionArgumentMetadata{Name: "length_bound", Type: "Compact"}}, Documentation: []Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective.", "", " # ", " ## Weight", " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`", " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", " - 1 event", " # "}}, FunctionMetadataV4{Name: "propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "Compact"}, FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}, FunctionArgumentMetadata{Name: "length_bound", Type: "Compact"}}, Documentation: []Text{" Add a new proposal to either be voted on or executed directly.", "", " Requires the sender to be member.", "", " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", " or put up for voting.", "", " # ", " ## Weight", " - `O(B + M + P1)` or `O(B + M + P2)` where:", " - `B` is `proposal` size in bytes (length-fee-bounded)", " - `M` is members-count (code- and governance-bounded)", " - branching is influenced by `threshold` where:", " - `P1` is proposal execution complexity (`threshold < 2`)", " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", " - DB:", " - 1 storage read `is_member` (codec `O(M)`)", " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", " - DB accesses influenced by `threshold`:", " - EITHER storage accesses done by `proposal` (`threshold < 2`)", " - OR proposal insertion (`threshold <= 2`)", " - 1 storage mutation `Proposals` (codec `O(P2)`)", " - 1 storage mutation `ProposalCount` (codec `O(1)`)", " - 1 storage write `ProposalOf` (codec `O(B)`)", " - 1 storage write `Voting` (codec `O(M)`)", " - 1 event", " # "}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "approve", Type: "bool"}}, Documentation: []Text{" Add an aye or nay vote for the sender to the given proposal.", "", " Requires the sender to be a member.", "", " # ", " ## Weight", " - `O(M)` where `M` is members-count (code- and governance-bounded)", " - DB:", " - 1 storage read `Members` (codec `O(M)`)", " - 1 storage mutation `Voting` (codec `O(M)`)", " - 1 event", " # "}}, FunctionMetadataV4{Name: "close", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "proposal_weight_bound", Type: "Compact"}, FunctionArgumentMetadata{Name: "length_bound", Type: "Compact"}}, Documentation: []Text{" Close a vote that is either approved, disapproved or whose voting period has ended.", "", " May be called by any signed account in order to finish voting and close the proposal.", "", " If called before the end of the voting period it will only close the vote if it is", " has enough votes to be approved or disapproved.", "", " If called after the end of the voting period abstentions are counted as rejections", " unless there is a prime member set and the prime member cast an approval.", "", " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.", " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", " `storage::read` so it is `size_of::() == 4` larger than the pure length.", "", " # ", " ## Weight", " - `O(B + M + P1 + P2)` where:", " - `B` is `proposal` size in bytes (length-fee-bounded)", " - `M` is members-count (code- and governance-bounded)", " - `P1` is the complexity of `proposal` preimage.", " - `P2` is proposal-count (code-bounded)", " - DB:", " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)", " - any mutations done while executing `proposal` (`P1`)", " - up to 3 events", " # "}}, FunctionMetadataV4{Name: "disapprove_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Disapprove a proposal, close, and remove it from the system, regardless of its current state.", "", " Must be called by the Root origin.", "", " Parameters:", " * `proposal_hash`: The hash of the proposal that should be disapproved.", "", " # ", " Complexity: O(P) where P is the number of max proposals", " Base Weight: .49 * P", " DB Weight:", " * Reads: Proposals", " * Writes: Voting, Proposals, ProposalOf", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`).", " [account, proposal_index, proposal_hash, threshold]"}}, EventMetadataV4{Name: "Voted", Args: []Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`).", " [account, proposal_hash, voted, yes, no]"}}, EventMetadataV4{Name: "Approved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was approved by the required threshold.", " [proposal_hash]"}}, EventMetadataV4{Name: "Disapproved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was not approved by the required threshold.", " [proposal_hash]"}}, EventMetadataV4{Name: "Executed", Args: []Type{"Hash", "DispatchResult"}, Documentation: []Text{" A motion was executed; result will be `Ok` if it returned without error.", " [proposal_hash, result]"}}, EventMetadataV4{Name: "MemberExecuted", Args: []Type{"Hash", "DispatchResult"}, Documentation: []Text{" A single member did some action; result will be `Ok` if it returned without error.", " [proposal_hash, result]"}}, EventMetadataV4{Name: "Closed", Args: []Type{"Hash", "MemberCount", "MemberCount"}, Documentation: []Text{" A proposal was closed because its threshold was reached or after its duration was up.", " [proposal_hash, yes, no]"}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" Account is not a member"}}, ErrorMetadataV8{Name: "DuplicateProposal", Documentation: []Text{" Duplicate proposals not allowed"}}, ErrorMetadataV8{Name: "ProposalMissing", Documentation: []Text{" Proposal must exist"}}, ErrorMetadataV8{Name: "WrongIndex", Documentation: []Text{" Mismatched index"}}, ErrorMetadataV8{Name: "DuplicateVote", Documentation: []Text{" Duplicate vote ignored"}}, ErrorMetadataV8{Name: "AlreadyInitialized", Documentation: []Text{" Members are already initialized!"}}, ErrorMetadataV8{Name: "TooEarly", Documentation: []Text{" The close call was made too early, before the end of the voting."}}, ErrorMetadataV8{Name: "TooManyProposals", Documentation: []Text{" There can only be a maximum of `MaxProposals` active proposals."}}, ErrorMetadataV8{Name: "WrongProposalWeight", Documentation: []Text{" The given weight bound for the proposal was too low."}}, ErrorMetadataV8{Name: "WrongProposalLength", Documentation: []Text{" The given length bound for the proposal was too low."}}}}, ModuleMetadataV10{Name: "Elections", HasStorage: true, Storage: StorageMetadataV10{Prefix: "PhragmenElection", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(T::AccountId, BalanceOf)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current elected membership. Sorted based on account id."}}, StorageFunctionMetadataV10{Name: "RunnersUp", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec<(T::AccountId, BalanceOf)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current runners_up. Sorted based on low to high merit (worse to best runner)."}}, StorageFunctionMetadataV10{Name: "ElectionRounds", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total number of vote rounds that have happened, excluding the upcoming one."}}, StorageFunctionMetadataV10{Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "(BalanceOf, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Votes and locked stake of a particular voter.", "", " TWOX-NOTE: SAFE as `AccountId` is a crypto hash"}}, StorageFunctionMetadataV10{Name: "Candidates", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The present candidate list. Sorted based on account-id. A current member or runner-up", " can never enter this vector and is always implicitly assumed to be a candidate."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "votes", Type: "Vec"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Vote for a set of candidates for the upcoming round of election. This can be called to", " set the initial votes, or update already existing votes.", "", " Upon initial voting, `value` units of `who`'s balance is locked and a bond amount is", " reserved.", "", " The `votes` should:", " - not be empty.", " - be less than the number of possible candidates. Note that all current members and", " runners-up are also automatically candidates for the next round.", "", " It is the responsibility of the caller to not place all of their balance into the lock", " and keep some for further transactions.", "", " # ", " Base weight: 47.93 µs", " State reads:", " \t- Candidates.len() + Members.len() + RunnersUp.len()", " \t- Voting (is_voter)", " \t- [AccountBalance(who) (unreserve + total_balance)]", " State writes:", " \t- Voting", " \t- Lock", " \t- [AccountBalance(who) (unreserve -- only when creating a new voter)]", " # "}}, FunctionMetadataV4{Name: "remove_voter", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove `origin` as a voter. This removes the lock and returns the bond.", "", " # ", " Base weight: 36.8 µs", " All state access is from do_remove_voter.", " State reads:", " \t- Voting", " \t- [AccountData(who)]", " State writes:", " \t- Voting", " \t- Locks", " \t- [AccountData(who)]", " # "}}, FunctionMetadataV4{Name: "report_defunct_voter", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "defunct", Type: "DefunctVoter<::Source>"}}, Documentation: []Text{" Report `target` for being an defunct voter. In case of a valid report, the reporter is", " rewarded by the bond amount of `target`. Otherwise, the reporter itself is removed and", " their bond is slashed.", "", " A defunct voter is defined to be:", " - a voter whose current submitted votes are all invalid. i.e. all of them are no", " longer a candidate nor an active member or a runner-up.", "", "", " The origin must provide the number of current candidates and votes of the reported target", " for the purpose of accurate weight calculation.", "", " # ", " No Base weight based on min square analysis.", " Complexity of candidate_count: 1.755 µs", " Complexity of vote_count: 18.51 µs", " State reads:", " \t- Voting(reporter)", " \t- Candidate.len()", " \t- Voting(Target)", " \t- Candidates, Members, RunnersUp (is_defunct_voter)", " State writes:", " \t- Lock(reporter || target)", " \t- [AccountBalance(reporter)] + AccountBalance(target)", " \t- Voting(reporter || target)", " Note: the db access is worse with respect to db, which is when the report is correct.", " # "}}, FunctionMetadataV4{Name: "submit_candidacy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "candidate_count", Type: "Compact"}}, Documentation: []Text{" Submit oneself for candidacy.", "", " A candidate will either:", " - Lose at the end of the term and forfeit their deposit.", " - Win and become a member. Members will eventually get their stash back.", " - Become a runner-up. Runners-ups are reserved members in case one gets forcefully", " removed.", "", " # ", " Base weight = 33.33 µs", " Complexity of candidate_count: 0.375 µs", " State reads:", " \t- Candidates.len()", " \t- Candidates", " \t- Members", " \t- RunnersUp", " \t- [AccountBalance(who)]", " State writes:", " \t- [AccountBalance(who)]", " \t- Candidates", " # "}}, FunctionMetadataV4{Name: "renounce_candidacy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "renouncing", Type: "Renouncing"}}, Documentation: []Text{" Renounce one's intention to be a candidate for the next election round. 3 potential", " outcomes exist:", " - `origin` is a candidate and not elected in any set. In this case, the bond is", " unreserved, returned and origin is removed as a candidate.", " - `origin` is a current runner-up. In this case, the bond is unreserved, returned and", " origin is removed as a runner-up.", " - `origin` is a current member. In this case, the bond is unreserved and origin is", " removed as a member, consequently not being a candidate for the next round anymore.", " Similar to [`remove_voter`], if replacement runners exists, they are immediately used.", " ", " If a candidate is renouncing:", " \tBase weight: 17.28 µs", " \tComplexity of candidate_count: 0.235 µs", " \tState reads:", " \t\t- Candidates", " \t\t- [AccountBalance(who) (unreserve)]", " \tState writes:", " \t\t- Candidates", " \t\t- [AccountBalance(who) (unreserve)]", " If member is renouncing:", " \tBase weight: 46.25 µs", " \tState reads:", " \t\t- Members, RunnersUp (remove_and_replace_member),", " \t\t- [AccountData(who) (unreserve)]", " \tState writes:", " \t\t- Members, RunnersUp (remove_and_replace_member),", " \t\t- [AccountData(who) (unreserve)]", " If runner is renouncing:", " \tBase weight: 46.25 µs", " \tState reads:", " \t\t- RunnersUp (remove_and_replace_member),", " \t\t- [AccountData(who) (unreserve)]", " \tState writes:", " \t\t- RunnersUp (remove_and_replace_member),", " \t\t- [AccountData(who) (unreserve)]", "", " Weight note: The call into changeMembers need to be accounted for.", " "}}, FunctionMetadataV4{Name: "remove_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "::Source"}, FunctionArgumentMetadata{Name: "has_replacement", Type: "bool"}}, Documentation: []Text{" Remove a particular member from the set. This is effective immediately and the bond of", " the outgoing member is slashed.", "", " If a runner-up is available, then the best runner-up will be removed and replaces the", " outgoing member. Otherwise, a new phragmen election is started.", "", " Note that this does not affect the designated block number of the next election.", "", " # ", " If we have a replacement:", " \t- Base weight: 50.93 µs", " \t- State reads:", " \t\t- RunnersUp.len()", " \t\t- Members, RunnersUp (remove_and_replace_member)", " \t- State writes:", " \t\t- Members, RunnersUp (remove_and_replace_member)", " Else, since this is a root call and will go into phragmen, we assume full block for now.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewTerm", Args: []Type{"Vec<(AccountId, Balance)>"}, Documentation: []Text{" A new term with [new_members]. This indicates that enough candidates existed to run the", " election, not that enough have has been elected. The inner value must be examined for", " this purpose. A `NewTerm([])` indicates that some candidates got their bond slashed and", " none were elected, whilst `EmptyTerm` means that no candidates existed to begin with."}}, EventMetadataV4{Name: "EmptyTerm", Args: []Type(nil), Documentation: []Text{" No (or not enough) candidates existed for this round. This is different from", " `NewTerm([])`. See the description of `NewTerm`."}}, EventMetadataV4{Name: "MemberKicked", Args: []Type{"AccountId"}, Documentation: []Text{" A [member] has been removed. This should always be followed by either `NewTerm` ot", " `EmptyTerm`."}}, EventMetadataV4{Name: "MemberRenounced", Args: []Type{"AccountId"}, Documentation: []Text{" A [member] has renounced their candidacy."}}, EventMetadataV4{Name: "VoterReported", Args: []Type{"AccountId", "AccountId", "bool"}, Documentation: []Text{" A voter was reported with the the report being successful or not.", " [voter, reporter, success]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "CandidacyBond", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, ModuleConstantMetadataV6{Name: "VotingBond", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, ModuleConstantMetadataV6{Name: "DesiredMembers", Type: "u32", Value: Bytes{0xd, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, ModuleConstantMetadataV6{Name: "DesiredRunnersUp", Type: "u32", Value: Bytes{0x7, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, ModuleConstantMetadataV6{Name: "TermDuration", Type: "T::BlockNumber", Value: Bytes{0x80, 0x13, 0x3, 0x0}, Documentation: []Text(nil)}, ModuleConstantMetadataV6{Name: "ModuleId", Type: "LockIdentifier", Value: Bytes{0x70, 0x68, 0x72, 0x65, 0x6c, 0x65, 0x63, 0x74}, Documentation: []Text(nil)}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "UnableToVote", Documentation: []Text{" Cannot vote when no candidates or members exist."}}, ErrorMetadataV8{Name: "NoVotes", Documentation: []Text{" Must vote for at least one candidate."}}, ErrorMetadataV8{Name: "TooManyVotes", Documentation: []Text{" Cannot vote more than candidates."}}, ErrorMetadataV8{Name: "MaximumVotesExceeded", Documentation: []Text{" Cannot vote more than maximum allowed."}}, ErrorMetadataV8{Name: "LowBalance", Documentation: []Text{" Cannot vote with stake less than minimum balance."}}, ErrorMetadataV8{Name: "UnableToPayBond", Documentation: []Text{" Voter can not pay voting bond."}}, ErrorMetadataV8{Name: "MustBeVoter", Documentation: []Text{" Must be a voter."}}, ErrorMetadataV8{Name: "ReportSelf", Documentation: []Text{" Cannot report self."}}, ErrorMetadataV8{Name: "DuplicatedCandidate", Documentation: []Text{" Duplicated candidate submission."}}, ErrorMetadataV8{Name: "MemberSubmit", Documentation: []Text{" Member cannot re-submit candidacy."}}, ErrorMetadataV8{Name: "RunnerSubmit", Documentation: []Text{" Runner cannot re-submit candidacy."}}, ErrorMetadataV8{Name: "InsufficientCandidateFunds", Documentation: []Text{" Candidate does not have enough funds."}}, ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" Not a member."}}, ErrorMetadataV8{Name: "InvalidCandidateCount", Documentation: []Text{" The provided count of number of candidates is incorrect."}}, ErrorMetadataV8{Name: "InvalidVoteCount", Documentation: []Text{" The provided count of number of votes is incorrect."}}, ErrorMetadataV8{Name: "InvalidRenouncing", Documentation: []Text{" The renouncing origin presented a wrong `Renouncing` parameter."}}, ErrorMetadataV8{Name: "InvalidReplacement", Documentation: []Text{" Prediction regarding replacement after member removal is wrong."}}}}, ModuleMetadataV10{Name: "TechnicalMembership", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Instance1Membership", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current membership, stored as an ordered Vec."}}, StorageFunctionMetadataV10{Name: "Prime", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current prime member, if one exists."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "add_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Add a member `who` to the set.", "", " May only be called from `T::AddOrigin`."}}, FunctionMetadataV4{Name: "remove_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Remove a member `who` from the set.", "", " May only be called from `T::RemoveOrigin`."}}, FunctionMetadataV4{Name: "swap_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "remove", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "add", Type: "T::AccountId"}}, Documentation: []Text{" Swap out one member `remove` for another `add`.", "", " May only be called from `T::SwapOrigin`.", "", " Prime membership is *not* passed from `remove` to `add`, if extant."}}, FunctionMetadataV4{Name: "reset_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "members", Type: "Vec"}}, Documentation: []Text{" Change the membership to a new set, disregarding the existing membership. Be nice and", " pass `members` pre-sorted.", "", " May only be called from `T::ResetOrigin`."}}, FunctionMetadataV4{Name: "change_key", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "T::AccountId"}}, Documentation: []Text{" Swap out the sending member for some other key `new`.", "", " May only be called from `Signed` origin of a current member.", "", " Prime membership is passed from the origin account to `new`, if extant."}}, FunctionMetadataV4{Name: "set_prime", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Set the prime member. Must be a current member.", "", " May only be called from `T::PrimeOrigin`."}}, FunctionMetadataV4{Name: "clear_prime", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove the prime member if it exists.", "", " May only be called from `T::PrimeOrigin`."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "MemberAdded", Args: []Type(nil), Documentation: []Text{" The given member was added; see the transaction for who."}}, EventMetadataV4{Name: "MemberRemoved", Args: []Type(nil), Documentation: []Text{" The given member was removed; see the transaction for who."}}, EventMetadataV4{Name: "MembersSwapped", Args: []Type(nil), Documentation: []Text{" Two members were swapped; see the transaction for who."}}, EventMetadataV4{Name: "MembersReset", Args: []Type(nil), Documentation: []Text{" The membership was reset; see the transaction for who the new set is."}}, EventMetadataV4{Name: "KeyChanged", Args: []Type(nil), Documentation: []Text{" One of the members' keys changed."}}, EventMetadataV4{Name: "Dummy", Args: []Type{"sp_std::marker::PhantomData<(AccountId, Event)>"}, Documentation: []Text{" Phantom member, never used."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "FinalityTracker", HasStorage: false, Storage: StorageMetadataV10{Prefix: "", Items: []StorageFunctionMetadataV10(nil)}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "final_hint", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "hint", Type: "Compact"}}, Documentation: []Text{" Hint that the author of this block thinks the best finalized", " block is the given number."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "WindowSize", Type: "T::BlockNumber", Value: Bytes{0x65, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of recent samples to keep from this chain. Default is 101."}}, ModuleConstantMetadataV6{Name: "ReportLatency", Type: "T::BlockNumber", Value: Bytes{0xe8, 0x3, 0x0, 0x0}, Documentation: []Text{" The delay after which point things become suspicious. Default is 1000."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "AlreadyUpdated", Documentation: []Text{" Final hint must be updated only once in the block"}}, ErrorMetadataV8{Name: "BadHint", Documentation: []Text{" Finalized height above block number"}}}}, ModuleMetadataV10{Name: "Grandpa", HasStorage: true, Storage: StorageMetadataV10{Prefix: "GrandpaFinality", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "State", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "StoredState", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" State of the current authority set."}}, StorageFunctionMetadataV10{Name: "PendingChange", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "StoredPendingChange", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Pending change: (signaled at, scheduled change)."}}, StorageFunctionMetadataV10{Name: "NextForced", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" next block number where we can force a change."}}, StorageFunctionMetadataV10{Name: "Stalled", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "(T::BlockNumber, T::BlockNumber)", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" `true` if we are currently stalled."}}, StorageFunctionMetadataV10{Name: "CurrentSetId", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "SetId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of changes (both in terms of keys and underlying economic responsibilities)", " in the \"set\" of Grandpa validators from genesis."}}, StorageFunctionMetadataV10{Name: "SetIdSession", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "SetId", Value: "SessionIndex", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from grandpa set ID to the index of the *most recent* session for which its", " members were responsible.", "", " TWOX-NOTE: `SetId` is not under user control."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "report_equivocation", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "equivocation_proof", Type: "EquivocationProof"}, FunctionArgumentMetadata{Name: "key_owner_proof", Type: "T::KeyOwnerProof"}}, Documentation: []Text{" Report voter equivocation/misbehavior. This method will verify the", " equivocation proof and validate the given key ownership proof", " against the extracted offender. If both are valid, the offence", " will be reported."}}, FunctionMetadataV4{Name: "report_equivocation_unsigned", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "equivocation_proof", Type: "EquivocationProof"}, FunctionArgumentMetadata{Name: "key_owner_proof", Type: "T::KeyOwnerProof"}}, Documentation: []Text{" Report voter equivocation/misbehavior. This method will verify the", " equivocation proof and validate the given key ownership proof", " against the extracted offender. If both are valid, the offence", " will be reported.", "", " This extrinsic must be called unsigned and it is expected that only", " block authors will call it (validated in `ValidateUnsigned`), as such", " if the block author is defined it will be defined as the equivocation", " reporter."}}, FunctionMetadataV4{Name: "note_stalled", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "delay", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "best_finalized_block_number", Type: "T::BlockNumber"}}, Documentation: []Text{" Note that the current authority set of the GRANDPA finality gadget has", " stalled. This will trigger a forced authority set change at the beginning", " of the next session, to be enacted `delay` blocks after that. The delay", " should be high enough to safely assume that the block signalling the", " forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters", " will start the new authority set using the given finalized block as base.", " Only callable by root."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewAuthorities", Args: []Type{"AuthorityList"}, Documentation: []Text{" New authority set has been applied. [authority_set]"}}, EventMetadataV4{Name: "Paused", Args: []Type(nil), Documentation: []Text{" Current authority set has been paused."}}, EventMetadataV4{Name: "Resumed", Args: []Type(nil), Documentation: []Text{" Current authority set has been resumed."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "PauseFailed", Documentation: []Text{" Attempt to signal GRANDPA pause when the authority set isn't live", " (either paused or already pending pause)."}}, ErrorMetadataV8{Name: "ResumeFailed", Documentation: []Text{" Attempt to signal GRANDPA resume when the authority set isn't paused", " (either live or already pending resume)."}}, ErrorMetadataV8{Name: "ChangePending", Documentation: []Text{" Attempt to signal GRANDPA change with one already pending."}}, ErrorMetadataV8{Name: "TooSoon", Documentation: []Text{" Cannot signal forced change so soon after last."}}, ErrorMetadataV8{Name: "InvalidKeyOwnershipProof", Documentation: []Text{" A key ownership proof provided as part of an equivocation report is invalid."}}, ErrorMetadataV8{Name: "InvalidEquivocationProof", Documentation: []Text{" An equivocation proof provided as part of an equivocation report is invalid."}}, ErrorMetadataV8{Name: "DuplicateOffenceReport", Documentation: []Text{" A given equivocation report is valid but already previously reported."}}}}, ModuleMetadataV10{Name: "Treasury", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Treasury", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "ProposalIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of proposals that have been made."}}, StorageFunctionMetadataV10{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "ProposalIndex", Value: "Proposal>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposals that have been made."}}, StorageFunctionMetadataV10{Name: "Approvals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposal indices that have been approved but not yet awarded."}}, StorageFunctionMetadataV10{Name: "Tips", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::Hash", Value: "OpenTip, T::BlockNumber, T::Hash>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Tips that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", " This has the insecure enumerable hash function since the key itself is already", " guaranteed to be a secure hash."}}, StorageFunctionMetadataV10{Name: "Reasons", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Simple preimage lookup from the reason's hash to the original data. Again, has an", " insecure enumerable hash since the key is guaranteed to be the result of a secure hash."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "propose_spend", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "Compact>"}, FunctionArgumentMetadata{Name: "beneficiary", Type: "::Source"}}, Documentation: []Text{" Put forward a suggestion for spending. A deposit proportional to the value", " is reserved and slashed if the proposal is rejected. It is returned once the", " proposal is awarded.", "", " # ", " - Complexity: O(1)", " - DbReads: `ProposalCount`, `origin account`", " - DbWrites: `ProposalCount`, `Proposals`, `origin account`", " # "}}, FunctionMetadataV4{Name: "reject_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Reject a proposed spend. The original deposit will be slashed.", "", " May only be called from `T::RejectOrigin`.", "", " # ", " - Complexity: O(1)", " - DbReads: `Proposals`, `rejected proposer account`", " - DbWrites: `Proposals`, `rejected proposer account`", " # "}}, FunctionMetadataV4{Name: "approve_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", " and the original deposit will be returned.", "", " May only be called from `T::ApproveOrigin`.", "", " # ", " - Complexity: O(1).", " - DbReads: `Proposals`, `Approvals`", " - DbWrite: `Approvals`", " # "}}, FunctionMetadataV4{Name: "report_awesome", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reason", Type: "Vec"}, FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Report something `reason` that deserves a tip and claim any eventual the finder's fee.", "", " The dispatch origin for this call must be _Signed_.", "", " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", " `TipReportDepositPerByte` for each byte in `reason`.", "", " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", " a UTF-8-encoded URL.", " - `who`: The account which should be credited for the tip.", "", " Emits `NewTip` if successful.", "", " # ", " - Complexity: `O(R)` where `R` length of `reason`.", " - encoding and hashing of 'reason'", " - DbReads: `Reasons`, `Tips`, `who account data`", " - DbWrites: `Tips`, `who account data`", " # "}}, FunctionMetadataV4{Name: "retract_tip", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "hash", Type: "T::Hash"}}, Documentation: []Text{" Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", "", " If successful, the original deposit will be unreserved.", "", " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", " must have been reported by the signing account through `report_awesome` (and not", " through `tip_new`).", "", " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", "", " Emits `TipRetracted` if successful.", "", " # ", " - Complexity: `O(1)`", " - Depends on the length of `T::Hash` which is fixed.", " - DbReads: `Tips`, `origin account`", " - DbWrites: `Reasons`, `Tips`, `origin account`", " # "}}, FunctionMetadataV4{Name: "tip_new", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reason", Type: "Vec"}, FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "tip_value", Type: "BalanceOf"}}, Documentation: []Text{" Give a tip for something new; no finder's fee will be taken.", "", " The dispatch origin for this call must be _Signed_ and the signing account must be a", " member of the `Tippers` set.", "", " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", " a UTF-8-encoded URL.", " - `who`: The account which should be credited for the tip.", " - `tip_value`: The amount of tip that the sender would like to give. The median tip", " value of active tippers will be given to the `who`.", "", " Emits `NewTip` if successful.", "", " # ", " - Complexity: `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", " - `O(T)`: decoding `Tipper` vec of length `T`", " `T` is charged as upper bound given by `ContainsLengthBound`.", " The actual cost depends on the implementation of `T::Tippers`.", " - `O(R)`: hashing and encoding of reason of length `R`", " - DbReads: `Tippers`, `Reasons`", " - DbWrites: `Reasons`, `Tips`", " # "}}, FunctionMetadataV4{Name: "tip", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "tip_value", Type: "BalanceOf"}}, Documentation: []Text{" Declare a tip value for an already-open tip.", "", " The dispatch origin for this call must be _Signed_ and the signing account must be a", " member of the `Tippers` set.", "", " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", " account ID.", " - `tip_value`: The amount of tip that the sender would like to give. The median tip", " value of active tippers will be given to the `who`.", "", " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", " has started.", "", " # ", " - Complexity: `O(T)` where `T` is the number of tippers.", " decoding `Tipper` vec of length `T`, insert tip and check closing,", " `T` is charged as upper bound given by `ContainsLengthBound`.", " The actual cost depends on the implementation of `T::Tippers`.", "", " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", " is weighted as if almost full i.e of length `T-1`.", " - DbReads: `Tippers`, `Tips`", " - DbWrites: `Tips`", " # "}}, FunctionMetadataV4{Name: "close_tip", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "hash", Type: "T::Hash"}}, Documentation: []Text{" Close and payout a tip.", "", " The dispatch origin for this call must be _Signed_.", "", " The tip identified by `hash` must have finished its countdown period.", "", " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", "", " # ", " - Complexity: `O(T)` where `T` is the number of tippers.", " decoding `Tipper` vec of length `T`.", " `T` is charged as upper bound given by `ContainsLengthBound`.", " The actual cost depends on the implementation of `T::Tippers`.", " - DbReads: `Tips`, `Tippers`, `tip finder`", " - DbWrites: `Reasons`, `Tips`, `Tippers`, `tip finder`", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"ProposalIndex"}, Documentation: []Text{" New proposal. [proposal_index]"}}, EventMetadataV4{Name: "Spending", Args: []Type{"Balance"}, Documentation: []Text{" We have ended a spend period and will now allocate funds. [budget_remaining]"}}, EventMetadataV4{Name: "Awarded", Args: []Type{"ProposalIndex", "Balance", "AccountId"}, Documentation: []Text{" Some funds have been allocated. [proposal_index, award, beneficiary]"}}, EventMetadataV4{Name: "Rejected", Args: []Type{"ProposalIndex", "Balance"}, Documentation: []Text{" A proposal was rejected; funds were slashed. [proposal_index, slashed]"}}, EventMetadataV4{Name: "Burnt", Args: []Type{"Balance"}, Documentation: []Text{" Some of our funds have been burnt. [burn]"}}, EventMetadataV4{Name: "Rollover", Args: []Type{"Balance"}, Documentation: []Text{" Spending has finished; this is the amount that rolls over until next spend. [budget_remaining]"}}, EventMetadataV4{Name: "Deposit", Args: []Type{"Balance"}, Documentation: []Text{" Some funds have been deposited. [deposit]"}}, EventMetadataV4{Name: "NewTip", Args: []Type{"Hash"}, Documentation: []Text{" A new tip suggestion has been opened. [tip_hash]"}}, EventMetadataV4{Name: "TipClosing", Args: []Type{"Hash"}, Documentation: []Text{" A tip suggestion has reached threshold and is closing. [tip_hash]"}}, EventMetadataV4{Name: "TipClosed", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A tip suggestion has been closed. [tip_hash, who, payout]"}}, EventMetadataV4{Name: "TipRetracted", Args: []Type{"Hash"}, Documentation: []Text{" A tip suggestion has been retracted. [tip_hash]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "ProposalBond", Type: "Permill", Value: Bytes{0x50, 0xc3, 0x0, 0x0}, Documentation: []Text{" Fraction of a proposal's value that should be bonded in order to place the proposal.", " An accepted proposal gets these back. A rejected proposal does not."}}, ModuleConstantMetadataV6{Name: "ProposalBondMinimum", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum amount of funds that should be placed in a deposit for making a proposal."}}, ModuleConstantMetadataV6{Name: "SpendPeriod", Type: "T::BlockNumber", Value: Bytes{0x80, 0x70, 0x0, 0x0}, Documentation: []Text{" Period between successive spends."}}, ModuleConstantMetadataV6{Name: "Burn", Type: "Permill", Value: Bytes{0x20, 0xa1, 0x7, 0x0}, Documentation: []Text{" Percentage of spare funds (if any) that are burnt per spend period."}}, ModuleConstantMetadataV6{Name: "TipCountdown", Type: "T::BlockNumber", Value: Bytes{0x80, 0x70, 0x0, 0x0}, Documentation: []Text{" The period for which a tip remains open after is has achieved threshold tippers."}}, ModuleConstantMetadataV6{Name: "TipFindersFee", Type: "Percent", Value: Bytes{0x14}, Documentation: []Text{" The amount of the final tip which goes to the original reporter of the tip."}}, ModuleConstantMetadataV6{Name: "TipReportDepositBase", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit for placing a tip report."}}, ModuleConstantMetadataV6{Name: "TipReportDepositPerByte", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit per byte within the tip report reason."}}, ModuleConstantMetadataV6{Name: "ModuleId", Type: "ModuleId", Value: Bytes{0x70, 0x79, 0x2f, 0x74, 0x72, 0x73, 0x72, 0x79}, Documentation: []Text{" The treasury's module id, used for deriving its sovereign account ID."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InsufficientProposersBalance", Documentation: []Text{" Proposer's balance is too low."}}, ErrorMetadataV8{Name: "InvalidProposalIndex", Documentation: []Text{" No proposal at that index."}}, ErrorMetadataV8{Name: "ReasonTooBig", Documentation: []Text{" The reason given is just too big."}}, ErrorMetadataV8{Name: "AlreadyKnown", Documentation: []Text{" The tip was already found/started."}}, ErrorMetadataV8{Name: "UnknownTip", Documentation: []Text{" The tip hash is unknown."}}, ErrorMetadataV8{Name: "NotFinder", Documentation: []Text{" The account attempting to retract the tip is not the finder of the tip."}}, ErrorMetadataV8{Name: "StillOpen", Documentation: []Text{" The tip cannot be claimed/closed because there are not enough tippers yet."}}, ErrorMetadataV8{Name: "Premature", Documentation: []Text{" The tip cannot be claimed/closed because it's still in the countdown period."}}}}, ModuleMetadataV10{Name: "Contracts", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Contracts", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "CurrentSchedule", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Schedule", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x20, 0xa1, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0xa1, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0xa1, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0xa1, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0xa1, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0xa1, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0xa1, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xf7, 0x5, 0x4, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x24, 0x37, 0x5, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xf7, 0x5, 0x4, 0x0, 0x0, 0x0, 0x0, 0x20, 0xa1, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0xa1, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xf0, 0xfa, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe1, 0xf5, 0x5, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0}, Documentation: []Text{" Current cost schedule for contracts."}}, StorageFunctionMetadataV10{Name: "PristineCode", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "CodeHash", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from an original code hash to the original code, untouched by instrumentation."}}, StorageFunctionMetadataV10{Name: "CodeStorage", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "CodeHash", Value: "wasm::PrefabWasmModule", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping between an original code hash and instrumented wasm code, ready for execution."}}, StorageFunctionMetadataV10{Name: "AccountCounter", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The subtrie counter."}}, StorageFunctionMetadataV10{Name: "ContractInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "ContractInfo", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The code associated with a given account.", "", " TWOX-NOTE: SAFE since `AccountId` is a secure hash."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "update_schedule", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "schedule", Type: "Schedule"}}, Documentation: []Text{" Updates the schedule for metering contracts.", "", " The schedule must have a greater version than the stored schedule."}}, FunctionMetadataV4{Name: "put_code", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "code", Type: "Vec"}}, Documentation: []Text{" Stores the given binary Wasm code into the chain's storage and returns its `codehash`.", " You can instantiate contracts only with stored code."}}, FunctionMetadataV4{Name: "call", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}, FunctionArgumentMetadata{Name: "gas_limit", Type: "Compact"}, FunctionArgumentMetadata{Name: "data", Type: "Vec"}}, Documentation: []Text{" Makes a call to an account, optionally transferring some balance.", "", " * If the account is a smart-contract account, the associated code will be", " executed and any value will be transferred.", " * If the account is a regular account, any value will be transferred.", " * If no account exists and the call value is not less than `existential_deposit`,", " a regular account will be created and any value will be transferred."}}, FunctionMetadataV4{Name: "instantiate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "endowment", Type: "Compact>"}, FunctionArgumentMetadata{Name: "gas_limit", Type: "Compact"}, FunctionArgumentMetadata{Name: "code_hash", Type: "CodeHash"}, FunctionArgumentMetadata{Name: "data", Type: "Vec"}}, Documentation: []Text{" Instantiates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", "", " Instantiation is executed as follows:", "", " - The destination address is computed based on the sender and hash of the code.", " - The smart-contract account is created at the computed address.", " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned", " after the execution is saved as the `code` of the account. That code will be invoked", " upon any call received by this account.", " - The contract is initialized."}}, FunctionMetadataV4{Name: "claim_surcharge", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "aux_sender", Type: "Option"}}, Documentation: []Text{" Allows block producers to claim a small reward for evicting a contract. If a block producer", " fails to do so, a regular users will be allowed to claim the reward.", "", " If contract is not evicted as a result of this call, no actions are taken and", " the sender is not eligible for the reward."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Instantiated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" Contract deployed by address at the specified address. [owner, contract]"}}, EventMetadataV4{Name: "Evicted", Args: []Type{"AccountId", "bool"}, Documentation: []Text{" Contract has been evicted and is now in tombstone state.", " [contract, tombstone]", " ", " # Params", "", " - `contract`: `AccountId`: The account ID of the evicted contract.", " - `tombstone`: `bool`: True if the evicted contract left behind a tombstone."}}, EventMetadataV4{Name: "Restored", Args: []Type{"AccountId", "AccountId", "Hash", "Balance"}, Documentation: []Text{" Restoration for a contract has been successful.", " [donor, dest, code_hash, rent_allowance]", " ", " # Params", "", " - `donor`: `AccountId`: Account ID of the restoring contract", " - `dest`: `AccountId`: Account ID of the restored contract", " - `code_hash`: `Hash`: Code hash of the restored contract", " - `rent_allowance: `Balance`: Rent allowance of the restored contract"}}, EventMetadataV4{Name: "CodeStored", Args: []Type{"Hash"}, Documentation: []Text{" Code with the specified hash has been stored.", " [code_hash]"}}, EventMetadataV4{Name: "ScheduleUpdated", Args: []Type{"u32"}, Documentation: []Text{" Triggered when the current [schedule] is updated."}}, EventMetadataV4{Name: "ContractExecution", Args: []Type{"AccountId", "Vec"}, Documentation: []Text{" An event deposited upon execution of a contract from the account.", " [account, data]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "SignedClaimHandicap", Type: "T::BlockNumber", Value: Bytes{0x2, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of block delay an extrinsic claim surcharge has.", "", " When claim surcharge is called by an extrinsic the rent is checked", " for current_block - delay"}}, ModuleConstantMetadataV6{Name: "TombstoneDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0xa0, 0xac, 0xb9, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount required to generate a tombstone."}}, ModuleConstantMetadataV6{Name: "StorageSizeOffset", Type: "u32", Value: Bytes{0x8, 0x0, 0x0, 0x0}, Documentation: []Text{" A size offset for an contract. A just created account with untouched storage will have that", " much of storage from the perspective of the state rent.", "", " This is a simple way to ensure that contracts with empty storage eventually get deleted", " by making them pay rent. This creates an incentive to remove them early in order to save", " rent."}}, ModuleConstantMetadataV6{Name: "RentByteFee", Type: "BalanceOf", Value: Bytes{0x0, 0x28, 0x6b, 0xee, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Price of a byte of storage per one block interval. Should be greater than 0."}}, ModuleConstantMetadataV6{Name: "RentDepositOffset", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of funds a contract should deposit in order to offset", " the cost of one byte.", "", " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,", " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.", " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,", " then it would pay 500 BU/day."}}, ModuleConstantMetadataV6{Name: "SurchargeReward", Type: "BalanceOf", Value: Bytes{0x0, 0x5c, 0xb2, 0xec, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Reward that is received by the party whose touch has led", " to removal of a contract."}}, ModuleConstantMetadataV6{Name: "MaxDepth", Type: "u32", Value: Bytes{0x20, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum nesting level of a call/instantiate stack. A reasonable default", " value is 100."}}, ModuleConstantMetadataV6{Name: "MaxValueSize", Type: "u32", Value: Bytes{0x0, 0x40, 0x0, 0x0}, Documentation: []Text{" The maximum size of a storage value in bytes. A reasonable default is 16 KiB."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidScheduleVersion", Documentation: []Text{" A new schedule must have a greater version than the current one."}}, ErrorMetadataV8{Name: "InvalidSurchargeClaim", Documentation: []Text{" An origin must be signed or inherent and auxiliary sender only provided on inherent."}}, ErrorMetadataV8{Name: "InvalidSourceContract", Documentation: []Text{" Cannot restore from nonexisting or tombstone contract."}}, ErrorMetadataV8{Name: "InvalidDestinationContract", Documentation: []Text{" Cannot restore to nonexisting or alive contract."}}, ErrorMetadataV8{Name: "InvalidTombstone", Documentation: []Text{" Tombstones don't match."}}, ErrorMetadataV8{Name: "InvalidContractOrigin", Documentation: []Text{" An origin TrieId written in the current block."}}, ErrorMetadataV8{Name: "OutOfGas", Documentation: []Text{" The executed contract exhausted its gas limit."}}, ErrorMetadataV8{Name: "OutputBufferTooSmall", Documentation: []Text{" The output buffer supplied to a contract API call was too small."}}, ErrorMetadataV8{Name: "BelowSubsistenceThreshold", Documentation: []Text{" Performing the requested transfer would have brought the contract below", " the subsistence threshold. No transfer is allowed to do this in order to allow", " for a tombstone to be created. Use `seal_terminate` to remove a contract without", " leaving a tombstone behind."}}, ErrorMetadataV8{Name: "NewContractNotFunded", Documentation: []Text{" The newly created contract is below the subsistence threshold after executing", " its contructor. No contracts are allowed to exist below that threshold."}}, ErrorMetadataV8{Name: "TransferFailed", Documentation: []Text{" Performing the requested transfer failed for a reason originating in the", " chosen currency implementation of the runtime. Most probably the balance is", " too low or locks are placed on it."}}, ErrorMetadataV8{Name: "MaxCallDepthReached", Documentation: []Text{" Performing a call was denied because the calling depth reached the limit", " of what is specified in the schedule."}}, ErrorMetadataV8{Name: "NotCallable", Documentation: []Text{" The contract that was called is either no contract at all (a plain account)", " or is a tombstone."}}, ErrorMetadataV8{Name: "CodeTooLarge", Documentation: []Text{" The code supplied to `put_code` exceeds the limit specified in the current schedule."}}, ErrorMetadataV8{Name: "CodeNotFound", Documentation: []Text{" No code could be found at the supplied code hash."}}, ErrorMetadataV8{Name: "OutOfBounds", Documentation: []Text{" A buffer outside of sandbox memory was passed to a contract API function."}}, ErrorMetadataV8{Name: "DecodingFailed", Documentation: []Text{" Input passed to a contract API function failed to decode as expected type."}}, ErrorMetadataV8{Name: "ContractTrapped", Documentation: []Text{" Contract trapped during execution."}}}}, ModuleMetadataV10{Name: "Sudo", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Sudo", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Key", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The `AccountId` of the sudo key."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "sudo", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Authenticates the sudo key and dispatches a function call with `Root` origin.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB write (event).", " - Weight of derivative `call` execution + 10,000.", " # "}}, FunctionMetadataV4{Name: "sudo_unchecked_weight", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}, FunctionArgumentMetadata{Name: "_weight", Type: "Weight"}}, Documentation: []Text{" Authenticates the sudo key and dispatches a function call with `Root` origin.", " This function does not check the weight of the call, and instead allows the", " Sudo user to specify the weight of the call.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - The weight of this call is defined by the caller.", " # "}}, FunctionMetadataV4{Name: "set_key", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "::Source"}}, Documentation: []Text{" Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change.", " # "}}, FunctionMetadataV4{Name: "sudo_as", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "::Source"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Authenticates the sudo key and dispatches a function call with `Signed` origin from", " a given account.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB write (event).", " - Weight of derivative `call` execution + 10,000.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Sudid", Args: []Type{"DispatchResult"}, Documentation: []Text{" A sudo just took place. [result]"}}, EventMetadataV4{Name: "KeyChanged", Args: []Type{"AccountId"}, Documentation: []Text{" The [sudoer] just switched identity; the old key is supplied."}}, EventMetadataV4{Name: "SudoAsDone", Args: []Type{"bool"}, Documentation: []Text{" A sudo just took place. [result]"}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "RequireSudo", Documentation: []Text{" Sender must be the Sudo account"}}}}, ModuleMetadataV10{Name: "ImOnline", HasStorage: true, Storage: StorageMetadataV10{Prefix: "ImOnline", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "HeartbeatAfter", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The block number after which it's ok to send heartbeats in current session.", "", " At the beginning of each session we set this to a value that should", " fall roughly in the middle of the session duration.", " The idea is to first wait for the validators to produce a block", " in the current session, so that the heartbeat later on will not be necessary."}}, StorageFunctionMetadataV10{Name: "Keys", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of keys that may issue a heartbeat."}}, StorageFunctionMetadataV10{Name: "ReceivedHeartbeats", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "SessionIndex", Key2: "AuthIndex", Value: "Vec", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" For each session index, we keep a mapping of `AuthIndex` to", " `offchain::OpaqueNetworkState`."}}, StorageFunctionMetadataV10{Name: "AuthoredBlocks", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "SessionIndex", Key2: "T::ValidatorId", Value: "u32", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" For each session index, we keep a mapping of `T::ValidatorId` to the", " number of blocks authored by the given authority."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "heartbeat", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "heartbeat", Type: "Heartbeat"}, FunctionArgumentMetadata{Name: "_signature", Type: "::Signature"}}, Documentation: []Text{" # ", " - Complexity: `O(K + E)` where K is length of `Keys` and E is length of", " `Heartbeat.network_state.external_address`", "", " - `O(K)`: decoding of length `K`", " - `O(E)`: decoding/encoding of length `E`", " - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,", " `ReceivedHeartbeats`", " - DbWrites: `ReceivedHeartbeats`", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "HeartbeatReceived", Args: []Type{"AuthorityId"}, Documentation: []Text{" A new heartbeat was received from `AuthorityId` [authority_id]"}}, EventMetadataV4{Name: "AllGood", Args: []Type(nil), Documentation: []Text{" At the end of the session, no offence was committed."}}, EventMetadataV4{Name: "SomeOffline", Args: []Type{"Vec"}, Documentation: []Text{" At the end of the session, at least one validator was found to be [offline]."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidKey", Documentation: []Text{" Non existent public key."}}, ErrorMetadataV8{Name: "DuplicatedHeartbeat", Documentation: []Text{" Duplicated heartbeat."}}}}, ModuleMetadataV10{Name: "AuthorityDiscovery", HasStorage: false, Storage: StorageMetadataV10{Prefix: "", Items: []StorageFunctionMetadataV10(nil)}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Offences", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Offences", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Reports", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "ReportIdOf", Value: "OffenceDetails", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The primary structure that holds all offence records keyed by report identifiers."}}, StorageFunctionMetadataV10{Name: "DeferredOffences", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Deferred reports that have been rejected by the offence handler and need to be submitted", " at a later time."}}, StorageFunctionMetadataV10{Name: "ConcurrentReportsIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "Kind", Key2: "OpaqueTimeSlot", Value: "Vec>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A vector of reports of the same kind that happened at the same time slot."}}, StorageFunctionMetadataV10{Name: "ReportsByKindIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "Kind", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Enumerates all reports of a kind along with the time they happened.", "", " All reports are sorted by the time of offence.", "", " Note that the actual type of this mapping is `Vec`, this is because values of", " different types are not supported at the moment so we are doing the manual serialization."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Offence", Args: []Type{"Kind", "OpaqueTimeSlot", "bool"}, Documentation: []Text{" There is an offence reported of the given `kind` happened at the `session_index` and", " (kind-specific) time slot. This event is not deposited for duplicate slashes. last", " element indicates of the offence was applied (true) or queued (false) ", " [kind, timeslot, applied]."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Historical", HasStorage: false, Storage: StorageMetadataV10{Prefix: "", Items: []StorageFunctionMetadataV10(nil)}, HasCalls: false, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "RandomnessCollectiveFlip", HasStorage: true, Storage: StorageMetadataV10{Prefix: "RandomnessCollectiveFlip", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "RandomMaterial", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Series of block headers from the last 81 blocks that acts as random seed material. This", " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", " the oldest hash."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, ModuleMetadataV10{Name: "Identity", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Identity", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "IdentityOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "Registration>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information that is pertinent to identify the entity behind an account.", "", " TWOX-NOTE: OK ― `AccountId` is a secure hash."}}, StorageFunctionMetadataV10{Name: "SuperOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "(T::AccountId, Data)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The super-identity of an alternative \"sub\" identity together with its name, within that", " context. If the account is not some other account's sub-identity, then just `None`."}}, StorageFunctionMetadataV10{Name: "SubsOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "(BalanceOf, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Alternative \"sub\" identities of this account.", "", " The first item is the deposit, the second is a vector of the accounts.", "", " TWOX-NOTE: OK ― `AccountId` is a secure hash."}}, StorageFunctionMetadataV10{Name: "Registrars", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec, T::AccountId>>>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of registrars. Not expected to get very big as can only be added through a", " special origin (likely a council motion).", "", " The index into this can be cast to `RegistrarIndex` to get a valid value."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "add_registrar", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "account", Type: "T::AccountId"}}, Documentation: []Text{" Add a registrar to the system.", "", " The dispatch origin for this call must be `T::RegistrarOrigin`.", "", " - `account`: the account of the registrar.", "", " Emits `RegistrarAdded` if successful.", "", " # ", " - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).", " - One storage mutation (codec `O(R)`).", " - One event.", " # "}}, FunctionMetadataV4{Name: "set_identity", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "info", Type: "IdentityInfo"}}, Documentation: []Text{" Set an account's identity information and reserve the appropriate deposit.", "", " If the account already has identity information, the deposit is taken as part payment", " for the new deposit.", "", " The dispatch origin for this call must be _Signed_.", "", " - `info`: The identity information.", "", " Emits `IdentitySet` if successful.", "", " # ", " - `O(X + X' + R)`", " - where `X` additional-field-count (deposit-bounded and code-bounded)", " - where `R` judgements-count (registrar-count-bounded)", " - One balance reserve operation.", " - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).", " - One event.", " # "}}, FunctionMetadataV4{Name: "set_subs", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "subs", Type: "Vec<(T::AccountId, Data)>"}}, Documentation: []Text{" Set the sub-accounts of the sender.", "", " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " identity.", "", " - `subs`: The identity's (new) sub-accounts.", "", " # ", " - `O(P + S)`", " - where `P` old-subs-count (hard- and deposit-bounded).", " - where `S` subs-count (hard- and deposit-bounded).", " - At most one balance operations.", " - DB:", " - `P + S` storage mutations (codec complexity `O(1)`)", " - One storage read (codec complexity `O(P)`).", " - One storage write (codec complexity `O(S)`).", " - One storage-exists (`IdentityOf::contains_key`).", " # "}}, FunctionMetadataV4{Name: "clear_identity", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Clear an account's identity info and all sub-accounts and return all deposits.", "", " Payment: All reserved balances on the account are returned.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " identity.", "", " Emits `IdentityCleared` if successful.", "", " # ", " - `O(R + S + X)`", " - where `R` registrar-count (governance-bounded).", " - where `S` subs-count (hard- and deposit-bounded).", " - where `X` additional-field-count (deposit-bounded and code-bounded).", " - One balance-unreserve operation.", " - `2` storage reads and `S + 2` storage deletions.", " - One event.", " # "}}, FunctionMetadataV4{Name: "request_judgement", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reg_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "max_fee", Type: "Compact>"}}, Documentation: []Text{" Request a judgement from a registrar.", "", " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", " given.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a", " registered identity.", "", " - `reg_index`: The index of the registrar whose judgement is requested.", " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", "", " ```nocompile", " Self::registrars().get(reg_index).unwrap().fee", " ```", "", " Emits `JudgementRequested` if successful.", "", " # ", " - `O(R + X)`.", " - One balance-reserve operation.", " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.", " - One event.", " # "}}, FunctionMetadataV4{Name: "cancel_request", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reg_index", Type: "RegistrarIndex"}}, Documentation: []Text{" Cancel a previous request.", "", " Payment: A previously reserved deposit is returned on success.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a", " registered identity.", "", " - `reg_index`: The index of the registrar whose judgement is no longer requested.", "", " Emits `JudgementUnrequested` if successful.", "", " # ", " - `O(R + X)`.", " - One balance-reserve operation.", " - One storage mutation `O(R + X)`.", " - One event", " # "}}, FunctionMetadataV4{Name: "set_fee", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "fee", Type: "Compact>"}}, Documentation: []Text{" Set the fee required for a judgement to be requested from a registrar.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `index`.", "", " - `index`: the index of the registrar whose fee is to be set.", " - `fee`: the new fee.", "", " # ", " - `O(R)`.", " - One storage mutation `O(R)`.", " - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)", " # "}}, FunctionMetadataV4{Name: "set_account_id", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "new", Type: "T::AccountId"}}, Documentation: []Text{" Change the account associated with a registrar.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `index`.", "", " - `index`: the index of the registrar whose fee is to be set.", " - `new`: the new account ID.", "", " # ", " - `O(R)`.", " - One storage mutation `O(R)`.", " - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)", " # "}}, FunctionMetadataV4{Name: "set_fields", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "fields", Type: "IdentityFields"}}, Documentation: []Text{" Set the field information for a registrar.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `index`.", "", " - `index`: the index of the registrar whose fee is to be set.", " - `fields`: the fields that the registrar concerns themselves with.", "", " # ", " - `O(R)`.", " - One storage mutation `O(R)`.", " - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)", " # "}}, FunctionMetadataV4{Name: "provide_judgement", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reg_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "target", Type: "::Source"}, FunctionArgumentMetadata{Name: "judgement", Type: "Judgement>"}}, Documentation: []Text{" Provide a judgement for an account's identity.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `reg_index`.", "", " - `reg_index`: the index of the registrar whose judgement is being made.", " - `target`: the account whose identity the judgement is upon. This must be an account", " with a registered identity.", " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.", "", " Emits `JudgementGiven` if successful.", "", " # ", " - `O(R + X)`.", " - One balance-transfer operation.", " - Up to one account-lookup operation.", " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.", " - One event.", " # "}}, FunctionMetadataV4{Name: "kill_identity", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "::Source"}}, Documentation: []Text{" Remove an account's identity and sub-account information and slash the deposits.", "", " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", " `Slash`. Verification request deposits are not returned; they should be cancelled", " manually using `cancel_request`.", "", " The dispatch origin for this call must match `T::ForceOrigin`.", "", " - `target`: the account whose identity the judgement is upon. This must be an account", " with a registered identity.", "", " Emits `IdentityKilled` if successful.", "", " # ", " - `O(R + S + X)`.", " - One balance-reserve operation.", " - `S + 2` storage mutations.", " - One event.", " # "}}, FunctionMetadataV4{Name: "add_sub", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "sub", Type: "::Source"}, FunctionArgumentMetadata{Name: "data", Type: "Data"}}, Documentation: []Text{" Add the given account to the sender's subs.", "", " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", " to the sender.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " sub identity of `sub`."}}, FunctionMetadataV4{Name: "rename_sub", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "sub", Type: "::Source"}, FunctionArgumentMetadata{Name: "data", Type: "Data"}}, Documentation: []Text{" Alter the associated name of the given sub-account.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " sub identity of `sub`."}}, FunctionMetadataV4{Name: "remove_sub", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "sub", Type: "::Source"}}, Documentation: []Text{" Remove the given account from the sender's subs.", "", " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", " to the sender.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " sub identity of `sub`."}}, FunctionMetadataV4{Name: "quit_sub", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove the sender as a sub-account.", "", " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", " to the sender (*not* the original depositor).", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " super-identity.", "", " NOTE: This should not normally be used, but is provided in the case that the non-", " controller of an account is maliciously registered as a sub-account."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "IdentitySet", Args: []Type{"AccountId"}, Documentation: []Text{" A name was set or reset (which will remove all judgements). [who]"}}, EventMetadataV4{Name: "IdentityCleared", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A name was cleared, and the given balance returned. [who, deposit]"}}, EventMetadataV4{Name: "IdentityKilled", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A name was removed and the given balance slashed. [who, deposit]"}}, EventMetadataV4{Name: "JudgementRequested", Args: []Type{"AccountId", "RegistrarIndex"}, Documentation: []Text{" A judgement was asked from a registrar. [who, registrar_index]"}}, EventMetadataV4{Name: "JudgementUnrequested", Args: []Type{"AccountId", "RegistrarIndex"}, Documentation: []Text{" A judgement request was retracted. [who, registrar_index]"}}, EventMetadataV4{Name: "JudgementGiven", Args: []Type{"AccountId", "RegistrarIndex"}, Documentation: []Text{" A judgement was given by a registrar. [target, registrar_index]"}}, EventMetadataV4{Name: "RegistrarAdded", Args: []Type{"RegistrarIndex"}, Documentation: []Text{" A registrar was added. [registrar_index]"}}, EventMetadataV4{Name: "SubIdentityAdded", Args: []Type{"AccountId", "AccountId", "Balance"}, Documentation: []Text{" A sub-identity was added to an identity and the deposit paid. [sub, main, deposit]"}}, EventMetadataV4{Name: "SubIdentityRemoved", Args: []Type{"AccountId", "AccountId", "Balance"}, Documentation: []Text{" A sub-identity was removed from an identity and the deposit freed.", " [sub, main, deposit]"}}, EventMetadataV4{Name: "SubIdentityRevoked", Args: []Type{"AccountId", "AccountId", "Balance"}, Documentation: []Text{" A sub-identity was cleared, and the given deposit repatriated from the", " main identity account to the sub-identity account. [sub, main, deposit]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "BasicDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit for a registered identity."}}, ModuleConstantMetadataV6{Name: "FieldDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit per additional field for a registered identity."}}, ModuleConstantMetadataV6{Name: "SubAccountDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xf4, 0x20, 0xe6, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit for a registered subaccount. This should account for the fact", " that one storage item's value will increase by the size of an account ID, and there will be", " another trie item whose value is the size of an account ID plus 32 bytes."}}, ModuleConstantMetadataV6{Name: "MaxSubAccounts", Type: "u32", Value: Bytes{0x64, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum number of sub-accounts allowed per identified account."}}, ModuleConstantMetadataV6{Name: "MaxAdditionalFields", Type: "u32", Value: Bytes{0x64, 0x0, 0x0, 0x0}, Documentation: []Text{" Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O", " required to access an identity, but can be pretty high."}}, ModuleConstantMetadataV6{Name: "MaxRegistrars", Type: "u32", Value: Bytes{0x14, 0x0, 0x0, 0x0}, Documentation: []Text{" Maxmimum number of registrars allowed in the system. Needed to bound the complexity", " of, e.g., updating judgements."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "TooManySubAccounts", Documentation: []Text{" Too many subs-accounts."}}, ErrorMetadataV8{Name: "NotFound", Documentation: []Text{" Account isn't found."}}, ErrorMetadataV8{Name: "NotNamed", Documentation: []Text{" Account isn't named."}}, ErrorMetadataV8{Name: "EmptyIndex", Documentation: []Text{" Empty index."}}, ErrorMetadataV8{Name: "FeeChanged", Documentation: []Text{" Fee is changed."}}, ErrorMetadataV8{Name: "NoIdentity", Documentation: []Text{" No identity found."}}, ErrorMetadataV8{Name: "StickyJudgement", Documentation: []Text{" Sticky judgement."}}, ErrorMetadataV8{Name: "JudgementGiven", Documentation: []Text{" Judgement given."}}, ErrorMetadataV8{Name: "InvalidJudgement", Documentation: []Text{" Invalid judgement."}}, ErrorMetadataV8{Name: "InvalidIndex", Documentation: []Text{" The index is invalid."}}, ErrorMetadataV8{Name: "InvalidTarget", Documentation: []Text{" The target is invalid."}}, ErrorMetadataV8{Name: "TooManyFields", Documentation: []Text{" Too many additional fields."}}, ErrorMetadataV8{Name: "TooManyRegistrars", Documentation: []Text{" Maximum amount of registrars reached. Cannot add any more."}}, ErrorMetadataV8{Name: "AlreadyClaimed", Documentation: []Text{" Account ID is already named."}}, ErrorMetadataV8{Name: "NotSub", Documentation: []Text{" Sender is not a sub-account."}}, ErrorMetadataV8{Name: "NotOwned", Documentation: []Text{" Sub-account isn't owned by sender."}}}}, ModuleMetadataV10{Name: "Society", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Society", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Founder", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The first member."}}, StorageFunctionMetadataV10{Name: "Rules", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A hash of the rules of this society concerning membership. Can only be set once and", " only by the founder."}}, StorageFunctionMetadataV10{Name: "Candidates", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec>>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of candidates; bidders that are attempting to become members."}}, StorageFunctionMetadataV10{Name: "SuspendedCandidates", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "(BalanceOf, BidKind>)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of suspended candidates."}}, StorageFunctionMetadataV10{Name: "Pot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Amount of our account balance that is specifically for the next round's bid(s)."}}, StorageFunctionMetadataV10{Name: "Head", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The most primary from the most recently approved members."}}, StorageFunctionMetadataV10{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of members, ordered."}}, StorageFunctionMetadataV10{Name: "SuspendedMembers", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "bool", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of suspended members."}}, StorageFunctionMetadataV10{Name: "Bids", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Vec>>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current bids, stored ordered by the value of the bid."}}, StorageFunctionMetadataV10{Name: "Vouching", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "VouchingStatus", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Members currently vouching or banned from vouching again"}}, StorageFunctionMetadataV10{Name: "Payouts", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "Vec<(T::BlockNumber, BalanceOf)>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Pending payouts; ordered by block number, with the amount that should be paid out."}}, StorageFunctionMetadataV10{Name: "Strikes", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "StrikeCount", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The ongoing number of losing votes cast by the member."}}, StorageFunctionMetadataV10{Name: "Votes", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "T::AccountId", Key2: "T::AccountId", Value: "Vote", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Double map from Candidate -> Voter -> (Maybe) Vote."}}, StorageFunctionMetadataV10{Name: "Defender", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The defending member currently being challenged."}}, StorageFunctionMetadataV10{Name: "DefenderVotes", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "Vote", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes for the defender."}}, StorageFunctionMetadataV10{Name: "MaxMembers", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The max number of members for the society at one time."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "bid", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "BalanceOf"}}, Documentation: []Text{" A user outside of the society can make a bid for entry.", "", " Payment: `CandidateDeposit` will be reserved for making a bid. It is returned", " when the bid becomes a member, or if the bid calls `unbid`.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `value`: A one time payment the bid would like to receive when joining the society.", "", " # ", " Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)", " - Storage Reads:", " \t- One storage read to check for suspended candidate. O(1)", " \t- One storage read to check for suspended member. O(1)", " \t- One storage read to retrieve all current bids. O(B)", " \t- One storage read to retrieve all current candidates. O(C)", " \t- One storage read to retrieve all members. O(M)", " - Storage Writes:", " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", " - Notable Computation:", " \t- O(B + C + log M) search to check user is not already a part of society.", " \t- O(log B) search to insert the new bid sorted.", " - External Module Operations:", " \t- One balance reserve operation. O(X)", " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", " - Events:", " \t- One event for new bid.", " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", "", " Total Complexity: O(M + B + C + logM + logB + X)", " # "}}, FunctionMetadataV4{Name: "unbid", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "pos", Type: "u32"}}, Documentation: []Text{" A bidder can remove their bid for entry into society.", " By doing so, they will have their candidate deposit returned or", " they will unvouch their voucher.", "", " Payment: The bid deposit is unreserved if the user made a bid.", "", " The dispatch origin for this call must be _Signed_ and a bidder.", "", " Parameters:", " - `pos`: Position in the `Bids` vector of the bid who wants to unbid.", "", " # ", " Key: B (len of bids), X (balance unreserve)", " - One storage read and write to retrieve and update the bids. O(B)", " - Either one unreserve balance action O(X) or one vouching storage removal. O(1)", " - One event.", "", " Total Complexity: O(B + X)", " # "}}, FunctionMetadataV4{Name: "vouch", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "value", Type: "BalanceOf"}, FunctionArgumentMetadata{Name: "tip", Type: "BalanceOf"}}, Documentation: []Text{" As a member, vouch for someone to join society by placing a bid on their behalf.", "", " There is no deposit required to vouch for a new bid, but a member can only vouch for", " one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", " the suspension judgement origin, the member will be banned from vouching again.", "", " As a vouching member, you can claim a tip if the candidate is accepted. This tip will", " be paid as a portion of the reward the member will receive for joining the society.", "", " The dispatch origin for this call must be _Signed_ and a member.", "", " Parameters:", " - `who`: The user who you would like to vouch for.", " - `value`: The total reward to be paid between you and the candidate if they become", " a member in the society.", " - `tip`: Your cut of the total `value` payout when the candidate is inducted into", " the society. Tips larger than `value` will be saturated upon payout.", "", " # ", " Key: B (len of bids), C (len of candidates), M (len of members)", " - Storage Reads:", " \t- One storage read to retrieve all members. O(M)", " \t- One storage read to check member is not already vouching. O(1)", " \t- One storage read to check for suspended candidate. O(1)", " \t- One storage read to check for suspended member. O(1)", " \t- One storage read to retrieve all current bids. O(B)", " \t- One storage read to retrieve all current candidates. O(C)", " - Storage Writes:", " \t- One storage write to insert vouching status to the member. O(1)", " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", " - Notable Computation:", " \t- O(log M) search to check sender is a member.", " \t- O(B + C + log M) search to check user is not already a part of society.", " \t- O(log B) search to insert the new bid sorted.", " - External Module Operations:", " \t- One balance reserve operation. O(X)", " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", " - Events:", " \t- One event for vouch.", " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", "", " Total Complexity: O(M + B + C + logM + logB + X)", " # "}}, FunctionMetadataV4{Name: "unvouch", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "pos", Type: "u32"}}, Documentation: []Text{" As a vouching member, unvouch a bid. This only works while vouched user is", " only a bidder (and not a candidate).", "", " The dispatch origin for this call must be _Signed_ and a vouching member.", "", " Parameters:", " - `pos`: Position in the `Bids` vector of the bid who should be unvouched.", "", " # ", " Key: B (len of bids)", " - One storage read O(1) to check the signer is a vouching member.", " - One storage mutate to retrieve and update the bids. O(B)", " - One vouching storage removal. O(1)", " - One event.", "", " Total Complexity: O(B)", " # "}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "candidate", Type: "::Source"}, FunctionArgumentMetadata{Name: "approve", Type: "bool"}}, Documentation: []Text{" As a member, vote on a candidate.", "", " The dispatch origin for this call must be _Signed_ and a member.", "", " Parameters:", " - `candidate`: The candidate that the member would like to bid on.", " - `approve`: A boolean which says if the candidate should be", " approved (`true`) or rejected (`false`).", "", " # ", " Key: C (len of candidates), M (len of members)", " - One storage read O(M) and O(log M) search to check user is a member.", " - One account lookup.", " - One storage read O(C) and O(C) search to check that user is a candidate.", " - One storage write to add vote to votes. O(1)", " - One event.", "", " Total Complexity: O(M + logM + C)", " # "}}, FunctionMetadataV4{Name: "defender_vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "approve", Type: "bool"}}, Documentation: []Text{" As a member, vote on the defender.", "", " The dispatch origin for this call must be _Signed_ and a member.", "", " Parameters:", " - `approve`: A boolean which says if the candidate should be", " approved (`true`) or rejected (`false`).", "", " # ", " - Key: M (len of members)", " - One storage read O(M) and O(log M) search to check user is a member.", " - One storage write to add vote to votes. O(1)", " - One event.", "", " Total Complexity: O(M + logM)", " # "}}, FunctionMetadataV4{Name: "payout", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Transfer the first matured payout for the sender and remove it from the records.", "", " NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.", "", " Payment: The member will receive a payment equal to their first matured", " payout to their free balance.", "", " The dispatch origin for this call must be _Signed_ and a member with", " payouts remaining.", "", " # ", " Key: M (len of members), P (number of payouts for a particular member)", " - One storage read O(M) and O(log M) search to check signer is a member.", " - One storage read O(P) to get all payouts for a member.", " - One storage read O(1) to get the current block number.", " - One currency transfer call. O(X)", " - One storage write or removal to update the member's payouts. O(P)", "", " Total Complexity: O(M + logM + P + X)", " # "}}, FunctionMetadataV4{Name: "found", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "founder", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "max_members", Type: "u32"}, FunctionArgumentMetadata{Name: "rules", Type: "Vec"}}, Documentation: []Text{" Found the society.", "", " This is done as a discrete action in order to allow for the", " module to be included into a running chain and can only be done once.", "", " The dispatch origin for this call must be from the _FounderSetOrigin_.", "", " Parameters:", " - `founder` - The first member and head of the newly founded society.", " - `max_members` - The initial max number of members for the society.", " - `rules` - The rules of this society concerning membership.", "", " # ", " - Two storage mutates to set `Head` and `Founder`. O(1)", " - One storage write to add the first member to society. O(1)", " - One event.", "", " Total Complexity: O(1)", " # "}}, FunctionMetadataV4{Name: "unfound", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Annul the founding of the society.", "", " The dispatch origin for this call must be Signed, and the signing account must be both", " the `Founder` and the `Head`. This implies that it may only be done when there is one", " member.", "", " # ", " - Two storage reads O(1).", " - Four storage removals O(1).", " - One event.", "", " Total Complexity: O(1)", " # "}}, FunctionMetadataV4{Name: "judge_suspended_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "forgive", Type: "bool"}}, Documentation: []Text{" Allow suspension judgement origin to make judgement on a suspended member.", "", " If a suspended member is forgiven, we simply add them back as a member, not affecting", " any of the existing storage items for that member.", "", " If a suspended member is rejected, remove all associated storage items, including", " their payouts, and remove any vouched bids they currently have.", "", " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", "", " Parameters:", " - `who` - The suspended member to be judged.", " - `forgive` - A boolean representing whether the suspension judgement origin", " forgives (`true`) or rejects (`false`) a suspended member.", "", " # ", " Key: B (len of bids), M (len of members)", " - One storage read to check `who` is a suspended member. O(1)", " - Up to one storage write O(M) with O(log M) binary search to add a member back to society.", " - Up to 3 storage removals O(1) to clean up a removed member.", " - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.", " - Up to one additional event if unvouch takes place.", " - One storage removal. O(1)", " - One event for the judgement.", "", " Total Complexity: O(M + logM + B)", " # "}}, FunctionMetadataV4{Name: "judge_suspended_candidate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "judgement", Type: "Judgement"}}, Documentation: []Text{" Allow suspended judgement origin to make judgement on a suspended candidate.", "", " If the judgement is `Approve`, we add them to society as a member with the appropriate", " payment for joining society.", "", " If the judgement is `Reject`, we either slash the deposit of the bid, giving it back", " to the society treasury, or we ban the voucher from vouching again.", "", " If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go", " through the induction process again.", "", " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", "", " Parameters:", " - `who` - The suspended candidate to be judged.", " - `judgement` - `Approve`, `Reject`, or `Rebid`.", "", " # ", " Key: B (len of bids), M (len of members), X (balance action)", " - One storage read to check `who` is a suspended candidate.", " - One storage removal of the suspended candidate.", " - Approve Logic", " \t- One storage read to get the available pot to pay users with. O(1)", " \t- One storage write to update the available pot. O(1)", " \t- One storage read to get the current block number. O(1)", " \t- One storage read to get all members. O(M)", " \t- Up to one unreserve currency action.", " \t- Up to two new storage writes to payouts.", " \t- Up to one storage write with O(log M) binary search to add a member to society.", " - Reject Logic", " \t- Up to one repatriate reserved currency action. O(X)", " \t- Up to one storage write to ban the vouching member from vouching again.", " - Rebid Logic", " \t- Storage mutate with O(log B) binary search to place the user back into bids.", " - Up to one additional event if unvouch takes place.", " - One storage removal.", " - One event for the judgement.", "", " Total Complexity: O(M + logM + B + X)", " # "}}, FunctionMetadataV4{Name: "set_max_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "max", Type: "u32"}}, Documentation: []Text{" Allows root origin to change the maximum number of members in society.", " Max membership count must be greater than 1.", "", " The dispatch origin for this call must be from _ROOT_.", "", " Parameters:", " - `max` - The maximum number of members for the society.", "", " # ", " - One storage write to update the max. O(1)", " - One event.", "", " Total Complexity: O(1)", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Founded", Args: []Type{"AccountId"}, Documentation: []Text{" The society is founded by the given identity. [founder]"}}, EventMetadataV4{Name: "Bid", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A membership bid just happened. The given account is the candidate's ID and their offer", " is the second. [candidate_id, offer]"}}, EventMetadataV4{Name: "Vouch", Args: []Type{"AccountId", "Balance", "AccountId"}, Documentation: []Text{" A membership bid just happened by vouching. The given account is the candidate's ID and", " their offer is the second. The vouching party is the third. [candidate_id, offer, vouching]"}}, EventMetadataV4{Name: "AutoUnbid", Args: []Type{"AccountId"}, Documentation: []Text{" A [candidate] was dropped (due to an excess of bids in the system)."}}, EventMetadataV4{Name: "Unbid", Args: []Type{"AccountId"}, Documentation: []Text{" A [candidate] was dropped (by their request)."}}, EventMetadataV4{Name: "Unvouch", Args: []Type{"AccountId"}, Documentation: []Text{" A [candidate] was dropped (by request of who vouched for them)."}}, EventMetadataV4{Name: "Inducted", Args: []Type{"AccountId", "Vec"}, Documentation: []Text{" A group of candidates have been inducted. The batch's primary is the first value, the", " batch in full is the second. [primary, candidates]"}}, EventMetadataV4{Name: "SuspendedMemberJudgement", Args: []Type{"AccountId", "bool"}, Documentation: []Text{" A suspended member has been judged. [who, judged]"}}, EventMetadataV4{Name: "CandidateSuspended", Args: []Type{"AccountId"}, Documentation: []Text{" A [candidate] has been suspended"}}, EventMetadataV4{Name: "MemberSuspended", Args: []Type{"AccountId"}, Documentation: []Text{" A [member] has been suspended"}}, EventMetadataV4{Name: "Challenged", Args: []Type{"AccountId"}, Documentation: []Text{" A [member] has been challenged"}}, EventMetadataV4{Name: "Vote", Args: []Type{"AccountId", "AccountId", "bool"}, Documentation: []Text{" A vote has been placed [candidate, voter, vote]"}}, EventMetadataV4{Name: "DefenderVote", Args: []Type{"AccountId", "bool"}, Documentation: []Text{" A vote has been placed for a defending member [voter, vote]"}}, EventMetadataV4{Name: "NewMaxMembers", Args: []Type{"u32"}, Documentation: []Text{" A new [max] member count has been set"}}, EventMetadataV4{Name: "Unfounded", Args: []Type{"AccountId"}, Documentation: []Text{" Society is unfounded. [founder]"}}, EventMetadataV4{Name: "Deposit", Args: []Type{"Balance"}, Documentation: []Text{" Some funds were deposited into the society account. [value]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "CandidateDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount of a deposit required for a bid to be made."}}, ModuleConstantMetadataV6{Name: "WrongSideDeduction", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xf4, 0x20, 0xe6, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of the unpaid reward that gets deducted in the case that either a skeptic", " doesn't vote or someone votes in the wrong way."}}, ModuleConstantMetadataV6{Name: "MaxStrikes", Type: "u32", Value: Bytes{0xa, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of times a member may vote the wrong way (or not at all, when they are a skeptic)", " before they become suspended."}}, ModuleConstantMetadataV6{Name: "PeriodSpend", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of incentive paid within each period. Doesn't include VoterTip."}}, ModuleConstantMetadataV6{Name: "RotationPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x77, 0x1, 0x0}, Documentation: []Text{" The number of blocks between candidate/membership rotation periods."}}, ModuleConstantMetadataV6{Name: "ChallengePeriod", Type: "T::BlockNumber", Value: Bytes{0x80, 0x13, 0x3, 0x0}, Documentation: []Text{" The number of blocks between membership challenges."}}, ModuleConstantMetadataV6{Name: "ModuleId", Type: "ModuleId", Value: Bytes{0x70, 0x79, 0x2f, 0x73, 0x6f, 0x63, 0x69, 0x65}, Documentation: []Text{" The societies's module id"}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "BadPosition", Documentation: []Text{" An incorrect position was provided."}}, ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" User is not a member."}}, ErrorMetadataV8{Name: "AlreadyMember", Documentation: []Text{" User is already a member."}}, ErrorMetadataV8{Name: "Suspended", Documentation: []Text{" User is suspended."}}, ErrorMetadataV8{Name: "NotSuspended", Documentation: []Text{" User is not suspended."}}, ErrorMetadataV8{Name: "NoPayout", Documentation: []Text{" Nothing to payout."}}, ErrorMetadataV8{Name: "AlreadyFounded", Documentation: []Text{" Society already founded."}}, ErrorMetadataV8{Name: "InsufficientPot", Documentation: []Text{" Not enough in pot to accept candidate."}}, ErrorMetadataV8{Name: "AlreadyVouching", Documentation: []Text{" Member is already vouching or banned from vouching again."}}, ErrorMetadataV8{Name: "NotVouching", Documentation: []Text{" Member is not vouching."}}, ErrorMetadataV8{Name: "Head", Documentation: []Text{" Cannot remove the head of the chain."}}, ErrorMetadataV8{Name: "Founder", Documentation: []Text{" Cannot remove the founder."}}, ErrorMetadataV8{Name: "AlreadyBid", Documentation: []Text{" User has already made a bid."}}, ErrorMetadataV8{Name: "AlreadyCandidate", Documentation: []Text{" User is already a candidate."}}, ErrorMetadataV8{Name: "NotCandidate", Documentation: []Text{" User is not a candidate."}}, ErrorMetadataV8{Name: "MaxMembers", Documentation: []Text{" Too many members in the society."}}, ErrorMetadataV8{Name: "NotFounder", Documentation: []Text{" The caller is not the founder."}}, ErrorMetadataV8{Name: "NotHead", Documentation: []Text{" The caller is not the head."}}}}, ModuleMetadataV10{Name: "Recovery", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Recovery", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Recoverable", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "RecoveryConfig, T::AccountId>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of recoverable accounts and their recovery configuration."}}, StorageFunctionMetadataV10{Name: "ActiveRecoveries", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "T::AccountId", Key2: "T::AccountId", Value: "ActiveRecovery, T::AccountId>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Active recovery attempts.", "", " First account is the account to be recovered, and the second account", " is the user trying to recover the account."}}, StorageFunctionMetadataV10{Name: "Proxy", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The list of allowed proxy accounts.", "", " Map from the user who can access it to the recovered account."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "as_recovered", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "account", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Send a call through a recovered account.", "", " The dispatch origin for this call must be _Signed_ and registered to", " be able to make calls on behalf of the recovered account.", "", " Parameters:", " - `account`: The recovered account you want to make a call on-behalf-of.", " - `call`: The call you want to make with the recovered account.", "", " # ", " - The weight of the `call` + 10,000.", " - One storage lookup to check account is recovered by `who`. O(1)", " # "}}, FunctionMetadataV4{Name: "set_recovered", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "lost", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "rescuer", Type: "T::AccountId"}}, Documentation: []Text{" Allow ROOT to bypass the recovery process and set an a rescuer account", " for a lost account directly.", "", " The dispatch origin for this call must be _ROOT_.", "", " Parameters:", " - `lost`: The \"lost account\" to be recovered.", " - `rescuer`: The \"rescuer account\" which can call as the lost account.", "", " # ", " - One storage write O(1)", " - One event", " # "}}, FunctionMetadataV4{Name: "create_recovery", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "friends", Type: "Vec"}, FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "delay_period", Type: "T::BlockNumber"}}, Documentation: []Text{" Create a recovery configuration for your account. This makes your account recoverable.", "", " Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", " will be reserved for storing the recovery configuration. This deposit is returned", " in full when the user calls `remove_recovery`.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `friends`: A list of friends you trust to vouch for recovery attempts.", " Should be ordered and contain no duplicate values.", " - `threshold`: The number of friends that must vouch for a recovery attempt", " before the account can be recovered. Should be less than or equal to", " the length of the list of friends.", " - `delay_period`: The number of blocks after a recovery attempt is initialized", " that needs to pass before the account can be recovered.", "", " # ", " - Key: F (len of friends)", " - One storage read to check that account is not already recoverable. O(1).", " - A check that the friends list is sorted and unique. O(F)", " - One currency reserve operation. O(X)", " - One storage write. O(1). Codec O(F).", " - One event.", "", " Total Complexity: O(F + X)", " # "}}, FunctionMetadataV4{Name: "initiate_recovery", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "account", Type: "T::AccountId"}}, Documentation: []Text{" Initiate the process for recovering a recoverable account.", "", " Payment: `RecoveryDeposit` balance will be reserved for initiating the", " recovery process. This deposit will always be repatriated to the account", " trying to be recovered. See `close_recovery`.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `account`: The lost account that you want to recover. This account", " needs to be recoverable (i.e. have a recovery configuration).", "", " # ", " - One storage read to check that account is recoverable. O(F)", " - One storage read to check that this recovery process hasn't already started. O(1)", " - One currency reserve operation. O(X)", " - One storage read to get the current block number. O(1)", " - One storage write. O(1).", " - One event.", "", " Total Complexity: O(F + X)", " # "}}, FunctionMetadataV4{Name: "vouch_recovery", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "lost", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "rescuer", Type: "T::AccountId"}}, Documentation: []Text{" Allow a \"friend\" of a recoverable account to vouch for an active recovery", " process for that account.", "", " The dispatch origin for this call must be _Signed_ and must be a \"friend\"", " for the recoverable account.", "", " Parameters:", " - `lost`: The lost account that you want to recover.", " - `rescuer`: The account trying to rescue the lost account that you", " want to vouch for.", "", " The combination of these two parameters must point to an active recovery", " process.", "", " # ", " Key: F (len of friends in config), V (len of vouching friends)", " - One storage read to get the recovery configuration. O(1), Codec O(F)", " - One storage read to get the active recovery process. O(1), Codec O(V)", " - One binary search to confirm caller is a friend. O(logF)", " - One binary search to confirm caller has not already vouched. O(logV)", " - One storage write. O(1), Codec O(V).", " - One event.", "", " Total Complexity: O(F + logF + V + logV)", " # "}}, FunctionMetadataV4{Name: "claim_recovery", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "account", Type: "T::AccountId"}}, Documentation: []Text{" Allow a successful rescuer to claim their recovered account.", "", " The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", " who has successfully completed the account recovery process: collected", " `threshold` or more vouches, waited `delay_period` blocks since initiation.", "", " Parameters:", " - `account`: The lost account that you want to claim has been successfully", " recovered by you.", "", " # ", " Key: F (len of friends in config), V (len of vouching friends)", " - One storage read to get the recovery configuration. O(1), Codec O(F)", " - One storage read to get the active recovery process. O(1), Codec O(V)", " - One storage read to get the current block number. O(1)", " - One storage write. O(1), Codec O(V).", " - One event.", "", " Total Complexity: O(F + V)", " # "}}, FunctionMetadataV4{Name: "close_recovery", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "rescuer", Type: "T::AccountId"}}, Documentation: []Text{" As the controller of a recoverable account, close an active recovery", " process for your account.", "", " Payment: By calling this function, the recoverable account will receive", " the recovery deposit `RecoveryDeposit` placed by the rescuer.", "", " The dispatch origin for this call must be _Signed_ and must be a", " recoverable account with an active recovery process for it.", "", " Parameters:", " - `rescuer`: The account trying to rescue this recoverable account.", "", " # ", " Key: V (len of vouching friends)", " - One storage read/remove to get the active recovery process. O(1), Codec O(V)", " - One balance call to repatriate reserved. O(X)", " - One event.", "", " Total Complexity: O(V + X)", " # "}}, FunctionMetadataV4{Name: "remove_recovery", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove the recovery process for your account. Recovered accounts are still accessible.", "", " NOTE: The user must make sure to call `close_recovery` on all active", " recovery attempts before calling this function else it will fail.", "", " Payment: By calling this function the recoverable account will unreserve", " their recovery configuration deposit.", " (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", "", " The dispatch origin for this call must be _Signed_ and must be a", " recoverable account (i.e. has a recovery configuration).", "", " # ", " Key: F (len of friends)", " - One storage read to get the prefix iterator for active recoveries. O(1)", " - One storage read/remove to get the recovery configuration. O(1), Codec O(F)", " - One balance call to unreserved. O(X)", " - One event.", "", " Total Complexity: O(F + X)", " # "}}, FunctionMetadataV4{Name: "cancel_recovered", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "account", Type: "T::AccountId"}}, Documentation: []Text{" Cancel the ability to use `as_recovered` for `account`.", "", " The dispatch origin for this call must be _Signed_ and registered to", " be able to make calls on behalf of the recovered account.", "", " Parameters:", " - `account`: The recovered account you are able to call on-behalf-of.", "", " # ", " - One storage mutation to check account is recovered by `who`. O(1)", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "RecoveryCreated", Args: []Type{"AccountId"}, Documentation: []Text{" A recovery process has been set up for an [account]."}}, EventMetadataV4{Name: "RecoveryInitiated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" A recovery process has been initiated for lost account by rescuer account.", " [lost, rescuer]"}}, EventMetadataV4{Name: "RecoveryVouched", Args: []Type{"AccountId", "AccountId", "AccountId"}, Documentation: []Text{" A recovery process for lost account by rescuer account has been vouched for by sender.", " [lost, rescuer, sender]"}}, EventMetadataV4{Name: "RecoveryClosed", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" A recovery process for lost account by rescuer account has been closed.", " [lost, rescuer]"}}, EventMetadataV4{Name: "AccountRecovered", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" Lost account has been successfully recovered by rescuer account.", " [lost, rescuer]"}}, EventMetadataV4{Name: "RecoveryRemoved", Args: []Type{"AccountId"}, Documentation: []Text{" A recovery process has been removed for an [account]."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "ConfigDepositBase", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x63, 0x52, 0xbf, 0xc6, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base amount of currency needed to reserve for creating a recovery configuration."}}, ModuleConstantMetadataV6{Name: "FriendDepositFactor", Type: "BalanceOf", Value: Bytes{0x0, 0x20, 0x3d, 0x88, 0x79, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of currency needed per additional user when creating a recovery configuration."}}, ModuleConstantMetadataV6{Name: "MaxFriends", Type: "u16", Value: Bytes{0x9, 0x0}, Documentation: []Text{" The maximum amount of friends allowed in a recovery configuration."}}, ModuleConstantMetadataV6{Name: "RecoveryDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x63, 0x52, 0xbf, 0xc6, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base amount of currency needed to reserve for starting a recovery."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotAllowed", Documentation: []Text{" User is not allowed to make a call on behalf of this account"}}, ErrorMetadataV8{Name: "ZeroThreshold", Documentation: []Text{" Threshold must be greater than zero"}}, ErrorMetadataV8{Name: "NotEnoughFriends", Documentation: []Text{" Friends list must be greater than zero and threshold"}}, ErrorMetadataV8{Name: "MaxFriends", Documentation: []Text{" Friends list must be less than max friends"}}, ErrorMetadataV8{Name: "NotSorted", Documentation: []Text{" Friends list must be sorted and free of duplicates"}}, ErrorMetadataV8{Name: "NotRecoverable", Documentation: []Text{" This account is not set up for recovery"}}, ErrorMetadataV8{Name: "AlreadyRecoverable", Documentation: []Text{" This account is already set up for recovery"}}, ErrorMetadataV8{Name: "AlreadyStarted", Documentation: []Text{" A recovery process has already started for this account"}}, ErrorMetadataV8{Name: "NotStarted", Documentation: []Text{" A recovery process has not started for this rescuer"}}, ErrorMetadataV8{Name: "NotFriend", Documentation: []Text{" This account is not a friend who can vouch"}}, ErrorMetadataV8{Name: "DelayPeriod", Documentation: []Text{" The friend must wait until the delay period to vouch for this recovery"}}, ErrorMetadataV8{Name: "AlreadyVouched", Documentation: []Text{" This user has already vouched for this recovery"}}, ErrorMetadataV8{Name: "Threshold", Documentation: []Text{" The threshold for recovering this account has not been met"}}, ErrorMetadataV8{Name: "StillActive", Documentation: []Text{" There are still active recovery attempts that need to be closed"}}, ErrorMetadataV8{Name: "Overflow", Documentation: []Text{" There was an overflow in a calculation"}}, ErrorMetadataV8{Name: "AlreadyProxy", Documentation: []Text{" This account is already set up for recovery"}}}}, ModuleMetadataV10{Name: "Vesting", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Vesting", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Vesting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "VestingInfo, T::BlockNumber>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information regarding the vesting of a given account."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "vest", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Unlock any vested funds of the sender account.", "", " The dispatch origin for this call must be _Signed_ and the sender must have funds still", " locked under this module.", "", " Emits either `VestingCompleted` or `VestingUpdated`.", "", " # ", " - `O(1)`.", " - DbWeight: 2 Reads, 2 Writes", " - Reads: Vesting Storage, Balances Locks, [Sender Account]", " - Writes: Vesting Storage, Balances Locks, [Sender Account]", " - Benchmark:", " - Unlocked: 48.76 + .048 * l µs (min square analysis)", " - Locked: 44.43 + .284 * l µs (min square analysis)", " - Using 50 µs fixed. Assuming less than 50 locks on any user, else we may want factor in number of locks.", " # "}}, FunctionMetadataV4{Name: "vest_other", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "::Source"}}, Documentation: []Text{" Unlock any vested funds of a `target` account.", "", " The dispatch origin for this call must be _Signed_.", "", " - `target`: The account whose vested funds should be unlocked. Must have funds still", " locked under this module.", "", " Emits either `VestingCompleted` or `VestingUpdated`.", "", " # ", " - `O(1)`.", " - DbWeight: 3 Reads, 3 Writes", " - Reads: Vesting Storage, Balances Locks, Target Account", " - Writes: Vesting Storage, Balances Locks, Target Account", " - Benchmark:", " - Unlocked: 44.3 + .294 * l µs (min square analysis)", " - Locked: 48.16 + .103 * l µs (min square analysis)", " - Using 50 µs fixed. Assuming less than 50 locks on any user, else we may want factor in number of locks.", " # "}}, FunctionMetadataV4{Name: "vested_transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "::Source"}, FunctionArgumentMetadata{Name: "schedule", Type: "VestingInfo, T::BlockNumber>"}}, Documentation: []Text{" Create a vested transfer.", "", " The dispatch origin for this call must be _Signed_.", "", " - `target`: The account that should be transferred the vested funds.", " - `amount`: The amount of funds to transfer and will be vested.", " - `schedule`: The vesting schedule attached to the transfer.", "", " Emits `VestingCreated`.", "", " # ", " - `O(1)`.", " - DbWeight: 3 Reads, 3 Writes", " - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]", " - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]", " - Benchmark: 100.3 + .365 * l µs (min square analysis)", " - Using 100 µs fixed. Assuming less than 50 locks on any user, else we may want factor in number of locks.", " # "}}, FunctionMetadataV4{Name: "force_vested_transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "source", Type: "::Source"}, FunctionArgumentMetadata{Name: "target", Type: "::Source"}, FunctionArgumentMetadata{Name: "schedule", Type: "VestingInfo, T::BlockNumber>"}}, Documentation: []Text{" Force a vested transfer.", "", " The dispatch origin for this call must be _Root_.", "", " - `source`: The account whose funds should be transferred.", " - `target`: The account that should be transferred the vested funds.", " - `amount`: The amount of funds to transfer and will be vested.", " - `schedule`: The vesting schedule attached to the transfer.", "", " Emits `VestingCreated`.", "", " # ", " - `O(1)`.", " - DbWeight: 4 Reads, 4 Writes", " - Reads: Vesting Storage, Balances Locks, Target Account, Source Account", " - Writes: Vesting Storage, Balances Locks, Target Account, Source Account", " - Benchmark: 100.3 + .365 * l µs (min square analysis)", " - Using 100 µs fixed. Assuming less than 50 locks on any user, else we may want factor in number of locks.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "VestingUpdated", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" The amount vested has been updated. This could indicate more funds are available. The", " balance given is the amount which is left unvested (and thus locked). ", " [account, unvested]"}}, EventMetadataV4{Name: "VestingCompleted", Args: []Type{"AccountId"}, Documentation: []Text{" An [account] has become fully vested. No further vesting can happen."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "MinVestedTransfer", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount to be transferred to create a new vesting schedule."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotVesting", Documentation: []Text{" The account given is not vesting."}}, ErrorMetadataV8{Name: "ExistingVestingSchedule", Documentation: []Text{" An existing vesting schedule already exists for this account that cannot be clobbered."}}, ErrorMetadataV8{Name: "AmountLow", Documentation: []Text{" Amount being transferred is too low to create a vesting schedule."}}}}, ModuleMetadataV10{Name: "Scheduler", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Scheduler", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Agenda", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::BlockNumber", Value: "Vec::Call, T::BlockNumber, T::\nPalletsOrigin, T::AccountId>>>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Items to be executed, indexed by the block number that they should be executed on."}}, StorageFunctionMetadataV10{Name: "Lookup", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "Vec", Value: "TaskAddress", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Lookup from identity to the block number and index of the task."}}, StorageFunctionMetadataV10{Name: "StorageVersion", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: true, AsType: "Releases", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Storage version of the pallet.", "", " New networks start with last version."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "schedule", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "when", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "maybe_periodic", Type: "Option>"}, FunctionArgumentMetadata{Name: "priority", Type: "schedule::Priority"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Anonymously schedule a task.", "", " # ", " - S = Number of already scheduled calls", " - Base Weight: 22.29 + .126 * S µs", " - DB Weight:", " - Read: Agenda", " - Write: Agenda", " - Will use base weight of 25 which should be good for up to 30 scheduled calls", " # "}}, FunctionMetadataV4{Name: "cancel", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "when", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "index", Type: "u32"}}, Documentation: []Text{" Cancel an anonymously scheduled task.", "", " # ", " - S = Number of already scheduled calls", " - Base Weight: 22.15 + 2.869 * S µs", " - DB Weight:", " - Read: Agenda", " - Write: Agenda, Lookup", " - Will use base weight of 100 which should be good for up to 30 scheduled calls", " # "}}, FunctionMetadataV4{Name: "schedule_named", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Vec"}, FunctionArgumentMetadata{Name: "when", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "maybe_periodic", Type: "Option>"}, FunctionArgumentMetadata{Name: "priority", Type: "schedule::Priority"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Schedule a named task.", "", " # ", " - S = Number of already scheduled calls", " - Base Weight: 29.6 + .159 * S µs", " - DB Weight:", " - Read: Agenda, Lookup", " - Write: Agenda, Lookup", " - Will use base weight of 35 which should be good for more than 30 scheduled calls", " # "}}, FunctionMetadataV4{Name: "cancel_named", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Vec"}}, Documentation: []Text{" Cancel a named scheduled task.", "", " # ", " - S = Number of already scheduled calls", " - Base Weight: 24.91 + 2.907 * S µs", " - DB Weight:", " - Read: Agenda, Lookup", " - Write: Agenda, Lookup", " - Will use base weight of 100 which should be good for up to 30 scheduled calls", " # "}}, FunctionMetadataV4{Name: "schedule_after", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "after", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "maybe_periodic", Type: "Option>"}, FunctionArgumentMetadata{Name: "priority", Type: "schedule::Priority"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Anonymously schedule a task after a delay.", "", " # ", " Same as [`schedule`].", " # "}}, FunctionMetadataV4{Name: "schedule_named_after", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Vec"}, FunctionArgumentMetadata{Name: "after", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "maybe_periodic", Type: "Option>"}, FunctionArgumentMetadata{Name: "priority", Type: "schedule::Priority"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Schedule a named task after a delay.", "", " # ", " Same as [`schedule_named`].", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Scheduled", Args: []Type{"BlockNumber", "u32"}, Documentation: []Text{" Scheduled some task. [when, index]"}}, EventMetadataV4{Name: "Canceled", Args: []Type{"BlockNumber", "u32"}, Documentation: []Text{" Canceled some task. [when, index]"}}, EventMetadataV4{Name: "Dispatched", Args: []Type{"TaskAddress", "Option>", "DispatchResult"}, Documentation: []Text{" Dispatched some task. [task, id, result]"}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "FailedToSchedule", Documentation: []Text{" Failed to schedule a call"}}, ErrorMetadataV8{Name: "FailedToCancel", Documentation: []Text{" Failed to cancel a scheduled call"}}, ErrorMetadataV8{Name: "TargetBlockNumberInPast", Documentation: []Text{" Given target block number is in the past."}}}}, ModuleMetadataV10{Name: "Proxy", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Proxy", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Proxies", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "(Vec<(T::AccountId, T::ProxyType)>, BalanceOf)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The set of account proxies. Maps the account which has delegated to the accounts", " which are being delegated to, together with the amount held on deposit."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "proxy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "real", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "force_proxy_type", Type: "Option"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Dispatch the given `call` from an account that the sender is authorised for through", " `add_proxy`.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `real`: The account that the proxy will make a call on behalf of.", " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", " - `call`: The call to be made by the `real` account.", "", " # ", " P is the number of proxies the user has", " - Base weight: 19.87 + .141 * P µs", " - DB weight: 1 storage read.", " - Plus the weight of the `call`", " # "}}, FunctionMetadataV4{Name: "add_proxy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proxy", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "proxy_type", Type: "T::ProxyType"}}, Documentation: []Text{" Register a proxy account for the sender that is able to make calls on its behalf.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `proxy`: The account that the `caller` would like to make a proxy.", " - `proxy_type`: The permissions allowed for this proxy account.", "", " # ", " P is the number of proxies the user has", " - Base weight: 17.48 + .176 * P µs", " - DB weight: 1 storage read and write.", " # "}}, FunctionMetadataV4{Name: "remove_proxy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proxy", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "proxy_type", Type: "T::ProxyType"}}, Documentation: []Text{" Unregister a proxy account for the sender.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `proxy`: The account that the `caller` would like to remove as a proxy.", " - `proxy_type`: The permissions currently enabled for the removed proxy account.", "", " # ", " P is the number of proxies the user has", " - Base weight: 14.37 + .164 * P µs", " - DB weight: 1 storage read and write.", " # "}}, FunctionMetadataV4{Name: "remove_proxies", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Unregister all proxy accounts for the sender.", "", " The dispatch origin for this call must be _Signed_.", "", " WARNING: This may be called on accounts created by `anonymous`, however if done, then", " the unreserved fees will be inaccessible. **All access to this account will be lost.**", "", " # ", " P is the number of proxies the user has", " - Base weight: 13.73 + .129 * P µs", " - DB weight: 1 storage read and write.", " # "}}, FunctionMetadataV4{Name: "anonymous", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proxy_type", Type: "T::ProxyType"}, FunctionArgumentMetadata{Name: "index", Type: "u16"}}, Documentation: []Text{" Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", " initialize it with a proxy of `proxy_type` for `origin` sender.", "", " Requires a `Signed` origin.", "", " - `proxy_type`: The type of the proxy that the sender will be registered as over the", " new account. This will almost always be the most permissive `ProxyType` possible to", " allow for maximum flexibility.", " - `index`: A disambiguation index, in case this is called multiple times in the same", " transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", " want to use `0`.", "", " Fails with `Duplicate` if this has already been called in this transaction, from the", " same sender, with the same parameters.", "", " Fails if there are insufficient funds to pay for deposit.", "", " # ", " P is the number of proxies the user has", " - Base weight: 36.48 + .039 * P µs", " - DB weight: 1 storage read and write.", " # "}}, FunctionMetadataV4{Name: "kill_anonymous", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "spawner", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "proxy_type", Type: "T::ProxyType"}, FunctionArgumentMetadata{Name: "index", Type: "u16"}, FunctionArgumentMetadata{Name: "height", Type: "Compact"}, FunctionArgumentMetadata{Name: "ext_index", Type: "Compact"}}, Documentation: []Text{" Removes a previously spawned anonymous proxy.", "", " WARNING: **All access to this account will be lost.** Any funds held in it will be", " inaccessible.", "", " Requires a `Signed` origin, and the sender account must have been created by a call to", " `anonymous` with corresponding parameters.", "", " - `spawner`: The account that originally called `anonymous` to create this account.", " - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`.", " - `proxy_type`: The proxy type originally passed to `anonymous`.", " - `height`: The height of the chain when the call to `anonymous` was processed.", " - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.", "", " Fails with `NoPermission` in case the caller is not a previously created anonymous", " account whose `anonymous` call has corresponding parameters.", "", " # ", " P is the number of proxies the user has", " - Base weight: 15.65 + .137 * P µs", " - DB weight: 1 storage read and write.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "ProxyExecuted", Args: []Type{"DispatchResult"}, Documentation: []Text{" A proxy was executed correctly, with the given [result]."}}, EventMetadataV4{Name: "AnonymousCreated", Args: []Type{"AccountId", "AccountId", "ProxyType", "u16"}, Documentation: []Text{" Anonymous account has been created by new proxy with given", " disambiguation index and proxy type. [anonymous, who, proxy_type, disambiguation_index]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "ProxyDepositBase", Type: "BalanceOf", Value: Bytes{0x0, 0xf0, 0x9e, 0x54, 0x4c, 0x39, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base amount of currency needed to reserve for creating a proxy."}}, ModuleConstantMetadataV6{Name: "ProxyDepositFactor", Type: "BalanceOf", Value: Bytes{0x0, 0x60, 0xaa, 0x77, 0x14, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of currency needed per proxy added."}}, ModuleConstantMetadataV6{Name: "MaxProxies", Type: "u16", Value: Bytes{0x20, 0x0}, Documentation: []Text{" The maximum amount of proxies allowed for a single account."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "TooMany", Documentation: []Text{" There are too many proxies registered."}}, ErrorMetadataV8{Name: "NotFound", Documentation: []Text{" Proxy registration not found."}}, ErrorMetadataV8{Name: "NotProxy", Documentation: []Text{" Sender is not a proxy of the account to be proxied."}}, ErrorMetadataV8{Name: "Unproxyable", Documentation: []Text{" A call which is incompatible with the proxy type's filter was attempted."}}, ErrorMetadataV8{Name: "Duplicate", Documentation: []Text{" Account is already a proxy."}}, ErrorMetadataV8{Name: "NoPermission", Documentation: []Text{" Call may not be made by proxy because it may escalate its privileges."}}}}, ModuleMetadataV10{Name: "Multisig", HasStorage: true, Storage: StorageMetadataV10{Prefix: "Multisig", Items: []StorageFunctionMetadataV10{StorageFunctionMetadataV10{Name: "Multisigs", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "T::AccountId", Key2: "[u8; 32]", Value: "Multisig, T::AccountId>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of open multisig operations."}}, StorageFunctionMetadataV10{Name: "Calls", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV10{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "[u8; 32]", Value: "(OpaqueCall, T::AccountId, BalanceOf)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "as_multi_threshold_1", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Immediately dispatch a multi-signature call using a single approval from the caller.", "", " The dispatch origin for this call must be _Signed_.", "", " - `other_signatories`: The accounts (other than the sender) who are part of the", " multi-signature, but do not participate in the approval process.", " - `call`: The call to be executed.", "", " Result is equivalent to the dispatched result.", "", " # ", " O(Z + C) where Z is the length of the call and C its execution weight.", " -------------------------------", " - Base Weight: 33.72 + 0.002 * Z µs", " - DB Weight: None", " - Plus Call Weight", " # "}}, FunctionMetadataV4{Name: "as_multi", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "maybe_timepoint", Type: "Option>"}, FunctionArgumentMetadata{Name: "call", Type: "OpaqueCall"}, FunctionArgumentMetadata{Name: "store_call", Type: "bool"}, FunctionArgumentMetadata{Name: "max_weight", Type: "Weight"}}, Documentation: []Text{" Register approval for a dispatch to be made from a deterministic composite account if", " approved by a total of `threshold - 1` of `other_signatories`.", "", " If there are enough, then dispatch the call.", "", " Payment: `DepositBase` will be reserved if this is the first approval, plus", " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", " is cancelled.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", " not the first approval, then it must be `Some`, with the timepoint (block number and", " transaction index) of the first approval transaction.", " - `call`: The call to be executed.", "", " NOTE: Unless this is the final approval, you will generally want to use", " `approve_as_multi` instead, since it only requires a hash of the call.", "", " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", " on success, result is `Ok` and the result from the interior call, if it was executed,", " may be found in the deposited `MultisigExecuted` event.", "", " # ", " - `O(S + Z + Call)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", " - One encode & hash, both of complexity `O(S)`.", " - Up to one binary search and insert (`O(logS + S)`).", " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", " - One event.", " - The weight of the `call`.", " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", " deposit taken for its lifetime of", " `DepositBase + threshold * DepositFactor`.", " -------------------------------", " - Base Weight:", " - Create: 41.89 + 0.118 * S + .002 * Z µs", " - Create w/ Store: 53.57 + 0.119 * S + .003 * Z µs", " - Approve: 31.39 + 0.136 * S + .002 * Z µs", " - Complete: 39.94 + 0.26 * S + .002 * Z µs", " - DB Weight:", " - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)", " - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`)", " - Plus Call Weight", " # "}}, FunctionMetadataV4{Name: "approve_as_multi", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "maybe_timepoint", Type: "Option>"}, FunctionArgumentMetadata{Name: "call_hash", Type: "[u8; 32]"}, FunctionArgumentMetadata{Name: "max_weight", Type: "Weight"}}, Documentation: []Text{" Register approval for a dispatch to be made from a deterministic composite account if", " approved by a total of `threshold - 1` of `other_signatories`.", "", " Payment: `DepositBase` will be reserved if this is the first approval, plus", " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", " is cancelled.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", " not the first approval, then it must be `Some`, with the timepoint (block number and", " transaction index) of the first approval transaction.", " - `call_hash`: The hash of the call to be executed.", "", " NOTE: If this is the final approval, you will want to use `as_multi` instead.", "", " # ", " - `O(S)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One encode & hash, both of complexity `O(S)`.", " - Up to one binary search and insert (`O(logS + S)`).", " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", " - One event.", " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", " deposit taken for its lifetime of", " `DepositBase + threshold * DepositFactor`.", " ----------------------------------", " - Base Weight:", " - Create: 44.71 + 0.088 * S", " - Approve: 31.48 + 0.116 * S", " - DB Weight:", " - Read: Multisig Storage, [Caller Account]", " - Write: Multisig Storage, [Caller Account]", " # "}}, FunctionMetadataV4{Name: "cancel_as_multi", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "timepoint", Type: "Timepoint"}, FunctionArgumentMetadata{Name: "call_hash", Type: "[u8; 32]"}}, Documentation: []Text{" Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", " for this operation will be unreserved on success.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `timepoint`: The timepoint (block number and transaction index) of the first approval", " transaction for this dispatch.", " - `call_hash`: The hash of the call to be executed.", "", " # ", " - `O(S)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One encode & hash, both of complexity `O(S)`.", " - One event.", " - I/O: 1 read `O(S)`, one remove.", " - Storage: removes one item.", " ----------------------------------", " - Base Weight: 36.07 + 0.124 * S", " - DB Weight:", " - Read: Multisig Storage, [Caller Account], Refund Account, Calls", " - Write: Multisig Storage, [Caller Account], Refund Account, Calls", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewMultisig", Args: []Type{"AccountId", "AccountId", "CallHash"}, Documentation: []Text{" A new multisig operation has begun. [approving, multisig, call_hash]"}}, EventMetadataV4{Name: "MultisigApproval", Args: []Type{"AccountId", "Timepoint", "AccountId", "CallHash"}, Documentation: []Text{" A multisig operation has been approved by someone. [approving, timepoint, multisig, call_hash]"}}, EventMetadataV4{Name: "MultisigExecuted", Args: []Type{"AccountId", "Timepoint", "AccountId", "CallHash", "DispatchResult"}, Documentation: []Text{" A multisig operation has been executed. [approving, timepoint, multisig, call_hash]"}}, EventMetadataV4{Name: "MultisigCancelled", Args: []Type{"AccountId", "Timepoint", "AccountId", "CallHash"}, Documentation: []Text{" A multisig operation has been cancelled. [cancelling, timepoint, multisig, call_hash]"}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "MinimumThreshold", Documentation: []Text{" Threshold must be 2 or greater."}}, ErrorMetadataV8{Name: "AlreadyApproved", Documentation: []Text{" Call is already approved by this signatory."}}, ErrorMetadataV8{Name: "NoApprovalsNeeded", Documentation: []Text{" Call doesn't need any (more) approvals."}}, ErrorMetadataV8{Name: "TooFewSignatories", Documentation: []Text{" There are too few signatories in the list."}}, ErrorMetadataV8{Name: "TooManySignatories", Documentation: []Text{" There are too many signatories in the list."}}, ErrorMetadataV8{Name: "SignatoriesOutOfOrder", Documentation: []Text{" The signatories were provided out of order; they should be ordered."}}, ErrorMetadataV8{Name: "SenderInSignatories", Documentation: []Text{" The sender was contained in the other signatories; it shouldn't be."}}, ErrorMetadataV8{Name: "NotFound", Documentation: []Text{" Multisig operation not found when attempting to cancel."}}, ErrorMetadataV8{Name: "NotOwner", Documentation: []Text{" Only the account that originally created the multisig is able to cancel it."}}, ErrorMetadataV8{Name: "NoTimepoint", Documentation: []Text{" No timepoint was given, yet the multisig operation is already underway."}}, ErrorMetadataV8{Name: "WrongTimepoint", Documentation: []Text{" A different timepoint was given to the multisig operation that is underway."}}, ErrorMetadataV8{Name: "UnexpectedTimepoint", Documentation: []Text{" A timepoint was given, yet no multisig operation is underway."}}, ErrorMetadataV8{Name: "WeightTooLow", Documentation: []Text{" The maximum weight information provided was too low."}}, ErrorMetadataV8{Name: "AlreadyStored", Documentation: []Text{" The data to be stored is already stored."}}}}}}, Extrinsic: ExtrinsicV11{Version: 0x4, SignedExtensions: []string{"CheckSpecVersion", "CheckTxVersion", "CheckGenesis", "CheckMortality", "CheckNonce", "CheckWeight", "ChargeTransactionPayment"}}}} diff --git a/types/metadataV11_examplary_string.go b/types/metadataV11_examplary_string.go deleted file mode 100644 index 9cba98a71..000000000 --- a/types/metadataV11_examplary_string.go +++ /dev/null @@ -1,21 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -var ExamplaryMetadataV11PolkadotString = "0x6d6574610b6c1853797374656d011853797374656d34304163636f756e744e6f6e636501010130543a3a4163636f756e74496420543a3a496e646578001000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e4c416c6c45787472696e73696373576569676874000018576569676874040004150120546f74616c2077656967687420666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101010c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101011c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e01242866696c6c5f626c6f636b0004210120412062696720646973706174636820746861742077696c6c20646973616c6c6f7720616e79206f74686572207472616e73616374696f6e20746f20626520696e636c756465642e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f64650410636f64651c5665633c75383e04682053657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e041d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e04a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697804187072656669780c4b6579041501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e010c4045787472696e7369635375636365737304304469737061746368496e666f049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f045420416e2065787472696e736963206661696c65642e2c436f64655570646174656400045420603a636f6465602077617320757064617465642e00143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e7c5370656356657273696f6e4e6f74416c6c6f776564546f4465637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e7c496d706c56657273696f6e4e6f74416c6c6f776564546f44656372656173650849012054686520696d706c656d656e746174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e7c537065634f72496d706c56657273696f6e4e656564546f496e637265617365083501205468652073706563696669636174696f6e206f722074686520696d706c656d656e746174696f6e2076657273696f6e206e65656420746f20696e637265617365206265747765656e20746865942063757272656e742072756e74696d6520616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e6052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e000000001042616265011042616265242845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401000c75363420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401000c75363420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100205b75383b2033325d80000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e384e65787452616e646f6d6e6573730100205b75383b2033325d800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101010c753332345665633c5b75383b2033325d3e000400002c496e697469616c697a65640000204d6179626556726604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e010000083445706f63684475726174696f6e0c753634206009000000000000080d0120546865206e756d626572206f66202a2a736c6f74732a2a207468617420616e2065706f63682074616b65732e20576520636f75706c652073657373696f6e7320746ffc2065706f6368732c20692e652e2077652073746172742061206e65772073657373696f6e206f6e636520746865206e65772065706f636820626567696e732e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e002454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e245820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420b80b00000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e001c496e6469636573011c496e6469636573082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d5365740101013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e00002042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c56657374696e6700010130543a3a4163636f756e744964ac56657374696e675363686564756c653c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e00750120606672616d655f73797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e00650120606672616d655f73797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b7301010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e64d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642edc2020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765725901202020202060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e6365646020616e642060543a3a4f6e4672656542616c616e63655a65726f3a3a6f6e5f667265655f62616c616e63655f7a65726f602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e00302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e349420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e0851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e4d6f64756c652e68746d6c236d6574686f642e7472616e736665720114284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7408244163636f756e7449641c42616c616e6365045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504c420412062616c616e6365207761732073657420627920726f6f74202877686f2c20667265652c207265736572766564292e1c4465706f73697408244163636f756e7449641c42616c616e636504dc20536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e0c484578697374656e7469616c4465706f73697428543a3a42616c616e63654000e40b5402000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e7366657246656528543a3a42616c616e63654000e1f5050000000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656528543a3a42616c616e63654000e1f505000000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c204f766572666c6f77047420476f7420616e206f766572666c6f7720616674657220616464696e674c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d6578697374485472616e73616374696f6e5061796d656e74012042616c616e63657304444e6578744665654d756c7469706c6965720100284d756c7469706c69657220000000000000000000000008485472616e73616374696f6e426173654665653042616c616e63654f663c543e4000e1f50500000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4040420f00000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e0028417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e1c5374616b696e67011c5374616b696e67683856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010130543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010130543a3a4163636f756e7449643856616c696461746f72507265667301040004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010130543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e01040010650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e003501204e4f54453a206973207072697661746520736f20746861742077652063616e20656e73757265207570677261646564206265666f726520616c6c207479706963616c2061636365737365732ed8204469726563742073746f7261676520415049732063616e207374696c6c2062797061737320746869732070726f74656374696f6e2e1c5374616b65727301010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c000000104d01204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e277420697465726174651901207468726f7567682076616c696461746f727320686572652c2062757420796f752063616e2066696e64207468656d20696e207468652053657373696f6e206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010020457261496e6465781000000000045c205468652063757272656e742065726120696e6465782e3c43757272656e74457261537461727401002c4d6f6d656e744f663c543e200000000000000000047820546865207374617274206f66207468652063757272656e74206572612e6c43757272656e74457261537461727453657373696f6e496e64657801003053657373696f6e496e646578100000000004d0205468652073657373696f6e20696e646578206174207768696368207468652063757272656e742065726120737461727465642e5843757272656e74457261506f696e74734561726e6564010024457261506f696e7473140000000000040d01205265776172647320666f72207468652063757272656e74206572612e205573696e6720696e6469636573206f662063757272656e7420656c6563746564207365742e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e20466f72636545726101001c466f7263696e670400041d01205472756520696620746865206e6578742073657373696f6e206368616e67652077696c6c2062652061206e657720657261207265676172646c657373206f6620696e6465782e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010120457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04000425012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e4c56616c696461746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2903040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e03040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010130543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101018c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e3853746f7261676556657273696f6e01000c75333210000000000490205468652076657273696f6e206f662073746f7261676520666f7220757067726164652e014410626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e3c65012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e006d01204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e656420756e6c65737325012074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3865012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652ea501202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c656420766961206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e28203c2f7765696768743e4477697468647261775f756e626f6e64656400402d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f7250726566732ce8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e2501202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f66206074617267657473602c982077686963682069732063617070656420617420604d41585f4e4f4d494e4154494f4e53602ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965654452657761726444657374696e6174696f6e2cb8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c90202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e6f5f657261730014b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e34666f7263655f6e65775f65726100184d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e34666f7263655f756e7374616b650414737461736830543a3a4163636f756e744964040d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e50666f7263655f6e65775f6572615f616c776179730014050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e002c2023203c7765696768743e50202d204f6e652073746f72616765207772697465302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e1c45012043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e2043616e2062652063616c6c6564206279206569746865722074686520726f6f74206f726967696e206f7270207468652060543a3a536c61736843616e63656c4f726967696e602e05012070617373696e67207468652065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e54202d204f6e652073746f726167652077726974652e302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e18e0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e002c2023203c7765696768743ef0202d2054696d6520636f6d706c65786974793a204f2831292e20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e302023203c2f7765696768743e010c18526577617264081c42616c616e63651c42616c616e636508510120416c6c2076616c696461746f72732068617665206265656e207265776172646564206279207468652066697273742062616c616e63653b20746865207365636f6e64206973207468652072656d61696e6465728c2066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e14536c61736808244163636f756e7449641c42616c616e6365042501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6448206e6f742062652070726f6365737365642e083853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e646578101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e28344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e44496e73756666696369656e7456616c756504cc2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e204f6666656e63657301204f6666656e6365730c1c5265706f727473000101345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010201104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010101104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e636508104b696e64384f706171756554696d65536c6f7408550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e00001c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b6579730002051c5665633c75383e38543a3a56616c696461746f7249641c543a3a4b657973010400109c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e204b65794f776e65720002051c5665633c75383e50284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496401040010250120546865206f776e6572206f662061206b65792e20546865207365636f6e64206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e0104207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e28e82053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e88202d204f286c6f67206e2920696e206e756d626572206f66206163636f756e74732e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e044044454455505f4b45595f50524546495814265b75385d38343a73657373696f6e3a6b6579730865012055736564206173206669727374206b657920666f7220604e6578744b6579736020616e6420604b65794f776e65726020746f2070757420616c6c20746865206461746120696e746f207468652073616d65206272616e636834206f662074686520747269652e0c30496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e3c46696e616c697479547261636b65720001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d626572106500000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657210e8030000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e0838416c72656164795570646174656404c82046696e616c2068696e74206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b1c42616448696e7404902046696e616c697a6564206865696768742061626f766520626c6f636b206e756d6265721c4772616e647061013c4772616e64706146696e616c6974791c2c417574686f726974696573010034417574686f726974794c6973740400102c20444550524543415445440061012054686973207573656420746f2073746f7265207468652063757272656e7420617574686f72697479207365742c20776869636820686173206265656e206d6967726174656420746f207468652077656c6c2d6b6e6f776e94204752414e4450415f415554484f52495445535f4b455920756e686173686564206b65792e14537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001011453657449643053657373696f6e496e64657800040004c1012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f7220776869636820697473206d656d62657273207765726520726573706f6e7369626c652e0104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e010c384e6577417574686f7269746965730434417574686f726974794c6973740490204e657720617574686f726974792073657420686173206265656e206170706c6965642e1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e00102c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e20496d4f6e6c696e650120496d4f6e6c696e6510384865617274626561744166746572010038543a3a426c6f636b4e756d62657210000000001831012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e2063757272656e742073657373696f6e2e0011012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c64d02066616c6c20726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e010120546865206964656120697320746f206669727374207761697420666f72207468652076616c696461746f727320746f2070726f64756365206120626c6f636b390120696e207468652063757272656e742073657373696f6e2c20736f20746861742074686520686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002013053657373696f6e496e6465782441757468496e6465781c5665633c75383e01040008e420466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e646578608c20746f20606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102013053657373696f6e496e64657838543a3a56616c696461746f7249640c75333201100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f662060543a3a56616c696461746f7249646020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500010c444865617274626561745265636569766564042c417574686f72697479496404c02041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964601c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e0431012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e63652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e48417574686f72697479446973636f76657279000100000000105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e010c107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652070726f706f73616c40426f783c543a3a50726f706f73616c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e010c1453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e650410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e742444656d6f6372616379012444656d6f6372616379403c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e24507265696d616765730001011c543a3a48617368d4285665633c75383e2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d62657229000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e244465706f7369744f660001012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001013c5265666572656e64756d496e6465789c5265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173683e00040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e34446973706174636851756575650100bc5665633c28543a3a426c6f636b4e756d6265722c20543a3a486173682c205265666572656e64756d496e646578293e0400044101205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e2053746f726564206f72646572656420627920626c6f636b206e756d6265722e24566f74657273466f720101013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f660101017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f7465000400106101204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c794d012069662060766f746572735f666f726020696e636c756465732074686520766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468655d012064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b2060766f746572735f666f72602c207468656e20796f752063616ef420616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e2c44656c65676174696f6e7301010130543a3a4163636f756e7449646828543a3a4163636f756e7449642c20436f6e76696374696f6e2901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101011c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e01541c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e80202d2054776f204442206368616e6765732c206f6e6520444220656e7472792e302023203c2f7765696768743e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e2870726f78795f766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c510120566f746520696e2061207265666572656e64756d206f6e20626568616c66206f6620612073746173682e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374f4207468652070726f706f73616c3b206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578085101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368083101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a48617368145901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e6065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a48617368144901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e28666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d626572245101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9820202060456d657267656e6379566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736804bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e64657804a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e247365745f70726f7879041470726f787930543a3a4163636f756e7449641498205370656369667920612070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3072657369676e5f70726f787900149820436c656172207468652070726f78792e2043616c6c6564206279207468652070726f78792e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e3072656d6f76655f70726f7879041470726f787930543a3a4163636f756e744964149820436c656172207468652070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e2064656c65676174650808746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e143c2044656c656761746520766f74652e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e28756e64656c656761746500144420556e64656c656761746520766f74652e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e58636c6561725f7075626c69635f70726f706f73616c7300040101205665746f20616e6420626c61636b6c697374207468652070726f706f73616c20686173682e204d7573742062652066726f6d20526f6f74206f726967696e2e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e0861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e0845012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265b420696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e34726561705f707265696d616765043470726f706f73616c5f686173681c543a3a4861736814f42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e01402050726f706f736564082450726f70496e6465781c42616c616e636504c02041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e04dc2041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404602041207265666572656e64756d2068617320626567756e2e18506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f74506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c6564043c5265666572656e64756d496e64657804842041207265666572656e64756d20686173206265656e2063616e63656c6c65642e204578656375746564083c5265666572656e64756d496e64657810626f6f6c047420412070726f706f73616c20686173206265656e20656e61637465642e2444656c65676174656408244163636f756e744964244163636f756e74496404e020416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404244163636f756e74496404e820416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d626572049820416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504e020412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636504150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964045d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c6563746564206279207468652072656170657220286c617374206974656d292e1c3c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d6265721000c2010014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d626572100027060004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d626572100027060004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400010a5d4e8000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e54456d657267656e6379566f74696e67506572696f6438543a3a426c6f636b4e756d626572100807000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210c089010004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e4000e1f5050000000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e582056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f74206578697374204e6f7450726f78790430204e6f7420612070726f787920426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c20747769636530416c726561647950726f7879044020416c726561647920612070726f78792857726f6e6750726f787904302057726f6e672070726f7879304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e74144561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e671c436f756e63696c014c496e7374616e636531436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0018244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642148546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0018244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642144456c656374696f6e7350687261676d656e014050687261676d656e456c656374696f6e181c4d656d626572730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e040004f0205468652063757272656e7420656c6563746564206d656d626572736869702e20536f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400044901205468652063757272656e742072756e6e6572735f75702e20536f72746564206261736564206f6e206c6f7720746f2068696768206d657269742028776f72736520746f20626573742072756e6e6572292e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e1c566f7465734f6601010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004010120566f746573206f66206120706172746963756c617220766f7465722c20776974682074686520726f756e6420696e646578206f662074686520766f7465732e1c5374616b654f6601010130543a3a4163636f756e7449643042616c616e63654f663c543e0040000000000000000000000000000000000464204c6f636b6564207374616b65206f66206120766f7465722e2843616e646964617465730100445665633c543a3a4163636f756e7449643e0400086501205468652070726573656e742063616e646964617465206c6973742e20536f72746564206261736564206f6e206163636f756e742d69642e20412063757272656e74206d656d626572206f7220612072756e6e65722063616e3101206e6576657220656e746572207468697320766563746f7220616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e3c050120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792eac2020202d206265206c657373207468616e20746865206e756d626572206f662063616e646964617465732e005d012055706f6e20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e64206120626f6e6420616d6f756e742069732072657365727665642e5d012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f206e6f7420706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865206c6f636ba020616e64206b65657020736f6d6520666f722066757274686572207472616e73616374696f6e732e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f283129c8205772697465733a204f28562920676976656e2060566020766f7465732e205620697320626f756e6465642062792031362e302023203c2f7765696768743e3072656d6f76655f766f746572001c21012052656d6f766520606f726967696e60206173206120766f7465722e20546869732072656d6f76657320746865206c6f636b20616e642072657475726e732074686520626f6e642e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f28312934205772697465733a204f283129302023203c2f7765696768743e507265706f72745f646566756e63745f766f74657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d01205265706f727420607461726765746020666f72206265696e6720616e20646566756e637420766f7465722e20496e2063617365206f6620612076616c6964207265706f72742c20746865207265706f727465722069735d012072657761726465642062792074686520626f6e6420616d6f756e74206f662060746172676574602e204f74686572776973652c20746865207265706f7274657220697473656c662069732072656d6f76656420616e645c20746865697220626f6e6420697320736c61736865642e0088204120646566756e637420766f74657220697320646566696e656420746f2062653a4d012020202d206120766f7465722077686f73652063757272656e74207375626d697474656420766f7465732061726520616c6c20696e76616c69642e20692e652e20616c6c206f66207468656d20617265206e6fb420202020206c6f6e67657220612063616e646964617465206e6f7220616e20616374697665206d656d6265722e002c2023203c7765696768743e2c202323232320537461746515012052656164733a204f284e4c6f674d2920676976656e204d2063757272656e742063616e6469646174657320616e64204e20766f74657320666f722060746172676574602e34205772697465733a204f283129302023203c2f7765696768743e407375626d69745f63616e646964616379003478205375626d6974206f6e6573656c6620666f722063616e6469646163792e006420412063616e6469646174652077696c6c206569746865723aec2020202d204c6f73652061742074686520656e64206f6620746865207465726d20616e6420666f7266656974207468656972206465706f7369742e2d012020202d2057696e20616e64206265636f6d652061206d656d6265722e204d656d626572732077696c6c206576656e7475616c6c7920676574207468656972207374617368206261636b2e55012020202d204265636f6d6520612072756e6e65722d75702e2052756e6e6572732d75707320617265207265736572766564206d656d6265727320696e2063617365206f6e65206765747320666f72636566756c6c7934202020202072656d6f7665642e002c2023203c7765696768743e2c20232323232053746174658c2052656164733a204f284c6f674e2920476976656e204e2063616e646964617465732e34205772697465733a204f283129302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379002451012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a4101202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c2074686520626f6e64206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e5901202d20606f726967696e6020697320612063757272656e742072756e6e65722075702e20496e207468697320636173652c2074686520626f6e6420697320756e72657365727665642c2072657475726e656420616e64842020206f726967696e2069732072656d6f76656420617320612072756e6e65722e4d01202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c2074686520626f6e6420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f766f746572605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c7920757365642e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865f4206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20726f756e6420697320737461727465642e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e2c2023232323205374617465582052656164733a204f28646f5f70687261676d656e295c205772697465733a204f28646f5f70687261676d656e29302023203c2f7765696768743e01141c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e0855012041206e6577207465726d2077697468206e6577206d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e6469646174657320657869737465642c206e6f742074686174450120656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e656420666f72207468697320707572706f73652e24456d7074795465726d0004d8204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e304d656d6265724b69636b656404244163636f756e7449640845012041206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f74342060456d7074795465726d602e3c4d656d62657252656e6f756e63656404244163636f756e74496404a02041206d656d626572206861732072656e6f756e6365642074686569722063616e6469646163792e34566f7465725265706f727465640c244163636f756e744964244163636f756e74496410626f6f6c086101204120766f7465722028666972737420656c656d656e742920776173207265706f72746564202862797420746865207365636f6e6420656c656d656e742920776974682074686520746865207265706f7274206265696e678c207375636365737366756c206f72206e6f742028746869726420656c656d656e74292e143443616e646964616379426f6e643042616c616e63654f663c543e400010a5d4e800000000000000000000000028566f74696e67426f6e643042616c616e63654f663c543e4000743ba40b00000000000000000000000038446573697265644d656d626572730c753332100d00000000404465736972656452756e6e65727355700c753332101400000000305465726d4475726174696f6e38543a3a426c6f636b4e756d62657210c0890100003830556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3052756e6e65725375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e34496e76616c69644f726967696e04c8204f726967696e206973206e6f7420612063616e6469646174652c206d656d626572206f7220612072756e6e65722075702e244e6f744d656d6265720438204e6f742061206d656d6265722e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970041c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e0114286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00b4204d6179206f6e6c792062652063616c6c65642066726f6d20604164644f726967696e60206f7220726f6f742e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00c0204d6179206f6e6c792062652063616c6c65642066726f6d206052656d6f76654f726967696e60206f7220726f6f742e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e7449640cc02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00b8204d6179206f6e6c792062652063616c6c65642066726f6d2060537761704f726967696e60206f7220726f6f742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00bc204d6179206f6e6c792062652063616c6c65642066726f6d206052657365744f726967696e60206f7220726f6f742e286368616e67655f6b6579040c6e657730543a3a4163636f756e7449640cd82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e000020547265617375727901205472656173757279143450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e10546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c59012054697073207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001051c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01203470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e94202d204f6e65204442206368616e67652c206f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e1cfc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e205d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173d420605469705265706f72744465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e9c202d20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e64202d204f6e652062616c616e6365206f7065726174696f6e2e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e24202d20604f2854296064202d204f6e652062616c616e6365206f7065726174696f6e2ec4202d2054776f2073746f726167652072656d6f76616c7320286f6e6520726561642c20636f64656320604f28542960292e34202d204f6e65206576656e742e302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c75653042616c616e63654f663c543e4cf4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e4101202d20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e2060546020697345012020206e61747572616c6c79206361707065642061732061206d656d62657273686970207365742c20605260206973206c696d69746564207468726f756768207472616e73616374696f6e2d73697a652e0d01202d2054776f2073746f7261676520696e73657274696f6e732028636f6465637320604f285229602c20604f28542960292c206f6e65207265616420604f283129602e34202d204f6e65206576656e742e302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c75653042616c616e63654f663c543e4cb4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743e24202d20604f285429600101202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28542960292c206f6e652073746f72616765207265616420604f283129602e4c202d20557020746f206f6e65206576656e742e302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368386020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743e24202d20604f28542960e4202d204f6e652073746f726167652072657472696576616c2028636f64656320604f285429602920616e642074776f2072656d6f76616c732e88202d20557020746f2074687265652062616c616e6365206f7065726174696f6e732e302023203c2f7765696768743e012c2050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504b420412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f736974041c42616c616e6365048020536f6d652066756e64732068617665206265656e206465706f73697465642e184e657754697004104861736804982041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e28546970436c6f73696e6704104861736804dc2041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504882041207469702073756767657374696f6e20686173206265656e20636c6f7365642e3054697052657472616374656404104861736804942041207469702073756767657374696f6e20686173206265656e207265747261637465642e203050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3042616c616e63654f663c543e400010a5d4e80000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721000460500048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c10102700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e30546970436f756e74646f776e38543a3a426c6f636b4e756d62657210403800000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e7404140431012054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4000e40b5402000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e5c5469705265706f72744465706f736974506572427974653042616c616e63654f663c543e4000e1f5050000000000000000000000000409012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e2e2070496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e50496e76616c696450726f706f73616c496e646578046c204e6f2070726f706f73616c206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e18436c61696d730118436c61696d730c18436c61696d730001013c457468657265756d416464726573733042616c616e63654f663c543e0004000014546f74616c01003042616c616e63654f663c543e4000000000000000000000000000000000001c56657374696e670001013c457468657265756d41646472657373b02842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722900040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e010814636c61696d08106465737430543a3a4163636f756e74496448657468657265756d5f7369676e61747572653845636473615369676e61747572650438204d616b65206120636c61696d2e286d696e745f636c61696d0c0c77686f3c457468657265756d416464726573731476616c75653042616c616e63654f663c543e4076657374696e675f7363686564756c65d04f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d626572293e0488204164642061206e657720636c61696d2c20696620796f752061726520726f6f742e01041c436c61696d65640c244163636f756e7449643c457468657265756d416464726573731c42616c616e6365046c20536f6d656f6e6520636c61696d656420736f6d6520444f54732e041850726566697814265b75385d888450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a04150120546865205072656669782074686174206973207573656420696e207369676e656420457468657265756d206d6573736167657320666f722074686973206e6574776f726b0860496e76616c6964457468657265756d5369676e6174757265047020496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d047c20457468657265756d206164647265737320686173206e6f20636c61696d2e2850617261636861696e73012850617261636861696e73242c417574686f7269746965730100405665633c56616c696461746f7249643e0400049420416c6c20617574686f72697469657327206b65797320617420746865206d6f6d656e742e10436f6465000101185061726149641c5665633c75383e0004000498205468652070617261636861696e7320726567697374657265642061742070726573656e742e144865616473000101185061726149641c5665633c75383e00040004cc20546865206865616473206f66207468652070617261636861696e7320726567697374657265642061742070726573656e742e2857617465726d61726b730001011850617261496438543a3a426c6f636b4e756d6265720004000cfc205468652077617465726d61726b2068656967687473206f66207468652070617261636861696e7320726567697374657265642061742070726573656e742e410120466f722065766572792070617261636861696e2c20746869732069732074686520626c6f636b206865696768742066726f6d20776869636820616c6c206d6573736167657320746172676574696e675d0120746861742070617261636861696e2068617665206265656e2070726f6365737365642e2043616e20626520604e6f6e6560206f6e6c79206966207468652070617261636861696e20646f65736e27742065786973742e3c556e726f75746564496e67726573730001016028543a3a426c6f636b4e756d6265722c20506172614964294c5665633c285061726149642c2048617368293e00040010550120556e726f7574656420696e67726573732e204d6170732028426c6f636b4e756d6265722c20746f5f636861696e2920706169727320746f205b2866726f6d5f636861696e2c206567726573735f726f6f74295d2e004d01205468657265206d617920626520616e20656e74727920756e6465722028692c20702920696e2074686973206d617020666f722065766572792069206265747765656e207468652070617261636861696e2773842077617465726d61726b20616e64207468652063757272656e7420626c6f636b2e4852656c61794469737061746368517565756501010118506172614964485665633c5570776172644d6573736167653e000400081d01204d6573736167657320726561647920746f2062652064697370617463686564206f6e746f207468652072656c617920636861696e2e204974206973207375626a65637420746fc820604d41585f4d4553534147455f434f554e546020616e64206057415445524d41524b5f4d4553534147455f53495a45602e5852656c61794469737061746368517565756553697a650101011850617261496428287533322c2075333229002000000000000000000c45012053697a65206f6620746865206469737061746368207175657565732e205365706172617465642066726f6d2061637475616c206461746120696e206f7264657220746f2061766f696420636f73746c795901206465636f64696e67207768656e20636865636b696e6720726563656970742076616c69646974792e204669727374206974656d20696e207475706c652069732074686520636f756e74206f66206d65737361676573fc097365636f6e642069662074686520746f74616c206c656e6774682028696e20627974657329206f6620746865206d657373616765207061796c6f6164732e344e65656473446973706174636801002c5665633c5061726149643e040004110120546865206f726465726564206c697374206f662050617261496473207468617420686176652061206052656c6179446973706174636851756575656020656e7472792e2444696455706461746500002c5665633c5061726149643e04001059012060536f6d6560206966207468652070617261636861696e20686561647320676574207570646174656420696e207468697320626c6f636b2c20616c6f6e672077697468207468652070617261636861696e204944734901207468617420646964207570646174652e204f72646572656420696e207468652073616d652077617920617320607265676973747261723a3a416374697665602028692e652e20627920506172614964292e006c20604e6f6e6560206966206e6f742079657420757064617465642e0104247365745f686561647304146865616473585665633c417474657374656443616e6469646174653e0415012050726f766964652063616e64696461746520726563656970747320666f722070617261636861696e732c20696e20617363656e64696e67206f726465722062792069642e00004448546f6f4d616e79486561645570646174657304e02050617261636861696e206865616473206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b2e54546f6f4d616e795061726143616e64696461746573047c20546f6f206d616e792070617261636861696e2063616e646964617465732e3c48656164734f75744f664f726465720429012050726f706f736564206865616473206d75737420626520617363656e64696e67206f726465722062792070617261636861696e20494420776974686f7574206475706c69636174652e40556e726567697374657265645061726104b02043616e64696461746520697320666f7220616e20756e726567697374657265642070617261636861696e2e3c496e76616c6964436f6c6c61746f72044820496e76616c696420636f6c6c61746f722e24517565756546756c6c041d0120546865206d6573736167652071756575652069732066756c6c2e204d657373616765732077696c6c206265206164646564207768656e2074686572652069732073706163652e50496e76616c69644d6573736167654f726967696e047c20546865206d657373616765206f726967696e20697320696e76616c69642e404567726573734f75744f664f72646572043d012045677265737320726f757465732073686f756c6420626520696e20617363656e64696e67206f726465722062792070617261636861696e20494420776974686f7574206475706c6963617465732e3453656c6641646472657373656404b820412070617261636861696e2063616e6e6f7420726f7574652061206d65737361676520746f20697473656c662e34456d70747954726965526f6f74047c20546865207472696520726f6f742063616e6e6f7420626520656d7074792e5c44657374696e6174696f6e446f65734e6f74457869737404a82043616e6e6f7420726f75746520746f2061206e6f6e2d6578697374696e672070617261636861696e2e404e6f56616c696461746f7247726f75700488204e6f2076616c696461746f722067726f757020666f722070617261636861696e2e584e6f74456e6f75676856616c6964697479566f74657304a4204e6f7420656e6f7567682076616c696469747920766f74657320666f722063616e6469646174652e5c566f74657345786365656473417574686f72697469657304f820546865206e756d626572206f66206174746573746174696f6e73206578636565647320746865206e756d626572206f6620617574686f7269746965732e5c57726f6e6756616c696461746f72417474657374696e6704e420417474657374696e672076616c696461746f72206e6f74206f6e207468697320636861696e27732076616c69646174696f6e20647574792e40496e76616c69645369676e6174757265048420496e76616c6964207369676e61747572652066726f6d2061747465737465722e34556e746167676564566f74657304d020457874726120756e7461676765642076616c696469747920766f74657320616c6f6e6720776974682063616e6469646174652e304174746573746174696f6e7301304174746573746174696f6e730c40526563656e7450617261426c6f636b7300010138543a3a426c6f636b4e756d62657244496e636c75646564426c6f636b733c543e00040008f02041206d617070696e672066726f6d206d6f64756c617220626c6f636b206e756d62657220286e2025204174746573746174696f6e506572696f6429cc20746f2073657373696f6e20696e64657820616e6420746865206c697374206f662063616e646964617465206861736865732e5450617261426c6f636b4174746573746174696f6e7300020138543a3a426c6f636b4e756d626572104861736850426c6f636b4174746573746174696f6e733c543e00040004a8204174746573746174696f6e73206f6e206120726563656e742070617261636861696e20626c6f636b2e24446964557064617465010010626f6f6c0400000104446d6f72655f6174746573746174696f6e7304145f6d6f7265404d6f72654174746573746174696f6e730415012050726f766964652063616e64696461746520726563656970747320666f722070617261636861696e732c20696e20617363656e64696e67206f726465722062792069642e0000044c546f6f4d616e794174746573746174696f6e7304d4204d6f7265206174746573746174696f6e732063616e206265206164646564206f6e6c79206f6e636520696e206120626c6f636b2e14536c6f74730114536c6f7473243841756374696f6e436f756e74657201003041756374696f6e496e646578100000000004d820546865206e756d626572206f662061756374696f6e7320746861742068617665206265656e207374617274656420736f206661722e284d616e6167656449647301002c5665633c5061726149643e0400084d01204f726465726564206c697374206f6620616c6c2060506172614964602076616c756573207468617420617265206d616e616765642062792074686973206d6f64756c652e205468697320696e636c75646573290120636861696e73207468617420617265206e6f7420796574206465706c6f7965642028627574206861766520776f6e20616e2061756374696f6e20696e2074686520667574757265292e204465706f7369747301010118506172614964445665633c42616c616e63654f663c543e3e000400345d0120566172696f757320616d6f756e7473206f6e206465706f73697420666f7220656163682070617261636861696e2e20416e20656e74727920696e20604d616e616765644964736020696d706c6965732061206e6f6e2d502064656661756c7420656e74727920686572652e006501205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620617420616e792074696d6520697320746865206d6178696d756d206974656d20696e2074686973206c6973742e205468655101206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652070617261636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572b4206578697374656429206173206661722061732074686973206d6f64756c6520697320636f6e6365726e65642e00510120496620612070617261636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e2069745d012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f7265207a65726f657320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e2c41756374696f6e496e666f000088284c65617365506572696f644f663c543e2c20543a3a426c6f636b4e756d62657229040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e1c57696e6e696e6700010138543a3a426c6f636b4e756d6265723857696e6e696e67446174613c543e0004000c5d01205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e676573206174206561636820626c6f636b20696e207468652066696e616c20456e64696e6720506572696f64206f665101207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f2074686520456e64696e6720506572696f642e205468651d0120666972737420626c6f636b206f662074686520656e64696e6720706572696f6420697320303b20746865206c6173742069732060456e64696e67506572696f64202d2031602e3c5265736572766564416d6f756e7473000101504269646465723c543a3a4163636f756e7449643e3042616c616e63654f663c543e00040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e304f6e626f6172645175657565010101404c65617365506572696f644f663c543e2c5665633c5061726149643e0004000865012054686520736574206f662050617261204944732074686174206861766520776f6e20616e64206e65656420746f206265206f6e2d626f617264656420617420616e207570636f6d696e67206c656173652d706572696f642ef0205468697320697320636c6561726564206f7574206f6e2074686520666972737420626c6f636b206f6620746865206c6561736520706572696f642e284f6e626f617264696e6700010118506172614964f0284c65617365506572696f644f663c543e2c20496e636f6d696e6750617261636861696e3c543a3a4163636f756e7449642c20543a3a486173683e29000400104d01205468652061637475616c206f6e2d626f617264696e6720696e666f726d6174696f6e2e204f6e6c7920657869737473207768656e206f6e65206f662074686520666f6c6c6f77696e6720697320747275653a2501202d204974206973206265666f726520746865206c6561736520706572696f642074686174207468652070617261636861696e2073686f756c64206265206f6e2d626f61726465642e5901202d205468652066756c6c206f6e2d626f617264696e6720696e666f726d6174696f6e20686173206e6f7420796574206265656e2070726f766964656420616e64207468652070617261636861696e206973206e6f746c207965742064756520746f206265206f66662d626f61726465642e2c4f6666626f617264696e670101011850617261496430543a3a4163636f756e74496400800000000000000000000000000000000000000000000000000000000000000000086501204f66662d626f617264696e67206163636f756e743b2063757272656e63792068656c64206f6e206465706f73697420666f72207468652070617261636861696e206765747320706c6163656420686572652069662074686539012070617261636861696e2067657473206f66662d626f61726465643b20692e652e20697473206c6561736520706572696f6420697320757020616e642069742069736e27742072656e657765642e01182c6e65775f61756374696f6e08206475726174696f6e5c436f6d706163743c543a3a426c6f636b4e756d6265723e486c656173655f706572696f645f696e64657864436f6d706163743c4c65617365506572696f644f663c543e3e1458204372656174652061206e65772061756374696f6e2e00550120546869732063616e206f6e6c792068617070656e207768656e2074686572652069736e277420616c726561647920616e2061756374696f6e20696e2070726f677265737320616e64206d6179206f6e6c7920626529012063616c6c65642062792074686520726f6f74206f726967696e2e20416363657074732074686520606475726174696f6e60206f6620746869732061756374696f6e20616e64207468655d0120606c656173655f706572696f645f696e64657860206f662074686520696e697469616c206c6561736520706572696f64206f662074686520666f757220746861742061726520746f2062652061756374696f6e65642e0c626964140c73756238436f6d706163743c53756249643e3461756374696f6e5f696e64657854436f6d706163743c41756374696f6e496e6465783e2866697273745f736c6f7464436f6d706163743c4c65617365506572696f644f663c543e3e246c6173745f736c6f7464436f6d706163743c4c65617365506572696f644f663c543e3e18616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e404d01204d616b652061206e6577206269642066726f6d20616e206163636f756e742028696e636c7564696e6720612070617261636861696e206163636f756e742920666f72206465706c6f79696e672061206e65772c2070617261636861696e2e005d01204d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c2061637469766541012062696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e005901202d20607375626020697320746865207375622d6269646465722049442c20616c6c6f77696e6720666f72206d756c7469706c6520636f6d706574696e67206269647320746f206265206d6164652062792028616e64742066756e64656420627929207468652073616d65206163636f756e742e5101202d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746c2076616c7565206f66206041756374696f6e436f756e746572602e4d01202d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e2054686973206973207468650d01206162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e4501202d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e2054686973206973207468650d01206162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e4d01202d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865cc206269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e246269645f72656e6577103461756374696f6e5f696e64657854436f6d706163743c41756374696f6e496e6465783e2866697273745f736c6f7464436f6d706163743c4c65617365506572696f644f663c543e3e246c6173745f736c6f7464436f6d706163743c4c65617365506572696f644f663c543e3e18616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e3c5101204d616b652061206e6577206269642066726f6d20612070617261636861696e206163636f756e7420666f722072656e6577696e67207468617420287072652d6578697374696e67292070617261636861696e2e00a820546865206f726967696e202a6d7573742a20626520612070617261636861696e206163636f756e742e005d01204d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c2061637469766541012062696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e005101202d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746c2076616c7565206f66206041756374696f6e436f756e746572602e4d01202d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e2054686973206973207468650d01206162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e4501202d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e2054686973206973207468650d01206162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e4d01202d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865cc206269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e3c7365745f6f6666626f617264696e670410646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514c82053657420746865206f66662d626f617264696e6720696e666f726d6174696f6e20666f7220612070617261636861696e2e00a820546865206f726967696e202a6d7573742a20626520612070617261636861696e206163636f756e742e002101202d20606465737460206973207468652064657374696e6174696f6e206163636f756e7420746f2072656365697665207468652070617261636861696e2773206465706f7369742e3c6669785f6465706c6f795f64617461100c73756238436f6d706163743c53756249643e1c706172615f69643c436f6d706163743c5061726149643e24636f64655f686173681c543a3a4861736844696e697469616c5f686561645f646174611c5665633c75383e1c2d012053657420746865206465706c6f7920696e666f726d6174696f6e20666f722061207375636365737366756c2062696420746f206465706c6f792061206e65772070617261636861696e2e00c8202d20606f726967696e60206d75737420626520746865207375636365737366756c20626964646572206163636f756e742eb0202d20607375626020697320746865207375622d626964646572204944206f6620746865206269646465722e0101202d2060706172615f696460206973207468652070617261636861696e20494420616c6c6f7474656420746f207468652077696e6e696e67206269646465722e1d01202d2060636f64655f6861736860206973207468652068617368206f66207468652070617261636861696e2773205761736d2076616c69646174696f6e2066756e6374696f6e2ef0202d2060696e697469616c5f686561645f6461746160206973207468652070617261636861696e277320696e697469616c206865616420646174612e54656c61626f726174655f6465706c6f795f64617461081c706172615f69643c436f6d706163743c5061726149643e10636f64651c5665633c75383e3074204e6f74652061206e65772070617261636861696e277320636f64652e004d012054686973206d7573742062652063616c6c656420616674657220606669785f6465706c6f795f646174616020616e642060636f646560206d7573742062652074686520707265696d616765206f6620746865c42060636f64655f68617368602070617373656420746865726520666f72207468652073616d652060706172615f6964602e0061012054686973206d61792062652063616c6c6564206265666f7265206f722061667465722074686520626567696e6e696e67206f66207468652070617261636861696e2773206669727374206c6561736520706572696f642e45012049662063616c6c6564206265666f7265207468656e207468652070617261636861696e2077696c6c206265636f6d65206163746976652061742074686520666972737420626c6f636b206f66206974736501207374617274696e67206c6561736520706572696f642e2049662061667465722c207468656e2069742077696c6c206265636f6d652061637469766520696d6d6564696174656c7920616674657220746869732063616c6c2e006c202d20605f6f726967696e6020697320697272656c6576616e742efc202d2060706172615f696460206973207468652070617261636861696e2049442077686f736520636f64652077696c6c20626520656c61626f72617465642e1501202d2060636f6465602069732074686520707265696d616765206f662074686520726567697374657265642060636f64655f6861736860206f662060706172615f6964602e011c384e65774c65617365506572696f64042c4c65617365506572696f6404842041206e6577206c6561736520706572696f6420697320626567696e6e696e672e3841756374696f6e537461727465640c3041756374696f6e496e6465782c4c65617365506572696f642c426c6f636b4e756d626572084d0120416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f190120636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642e3441756374696f6e436c6f736564043041756374696f6e496e64657804bc20416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e24576f6e4465706c6f7910504e65774269646465723c4163636f756e7449643e24536c6f7452616e6765185061726149641c42616c616e636504550120536f6d656f6e6520776f6e2074686520726967687420746f206465706c6f7920612070617261636861696e2e2042616c616e636520616d6f756e7420697320646564756374656420666f72206465706f7369742e28576f6e52656e6577616c101850617261496424536c6f7452616e67651c42616c616e63651c42616c616e636508c420416e206578697374696e672070617261636861696e20776f6e2074686520726967687420746f20636f6e74696e75652e41012046697273742062616c616e63652069732074686520657874726120616d6f756e7420726573657665642e205365636f6e642069732074686520746f74616c20616d6f756e742072657365727665642e2052657365727665640c244163636f756e7449641c42616c616e63651c42616c616e6365084d012046756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642e54205365636f6e642069732074686520746f74616c2e28556e726573657276656408244163636f756e7449641c42616c616e636504e02046756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e002c4441756374696f6e496e50726f6772657373049420546869732061756374696f6e20697320616c726561647920696e2070726f67726573732e444c65617365506572696f64496e50617374048420546865206c6561736520706572696f6420697320696e2074686520706173742e344e6f74506172614f726967696e04b820546865206f726967696e20666f7220746869732063616c6c206d75737420626520612070617261636861696e2e44506172614e6f744f6e626f617264696e670490205468652070617261636861696e204944206973206e6f74206f6e626f617264696e672e34496e76616c69644f726967696e04290120546865206f726967696e20666f7220746869732063616c6c206d75737420626520746865206f726967696e2077686f2072656769737465726564207468652070617261636861696e2e44416c72656164795265676973746572656404842050617261636861696e20697320616c726561647920726567697374657265642e2c496e76616c6964436f646504982054686520636f6465206d75737420636f72726573706f6e6420746f2074686520686173682e3c556e7365744465706c6f794461746104d4204465706c6f796d656e74206461746120686173206e6f74206265656e2073657420666f7220746869732070617261636861696e2e504e6f6e496e74657273656374696e6752616e676504b82054686520626964206d757374206f7665726c617020616c6c20696e74657273656374696e672072616e6765732e444e6f7443757272656e7441756374696f6e045c204e6f7420612063757272656e742061756374696f6e2e284e6f7441756374696f6e0440204e6f7420616e2061756374696f6e2e245265676973747261720124526567697374726172242850617261636861696e7301002c5665633c5061726149643e0400002c546872656164436f756e7401000c753332100000000004b420546865206e756d626572206f66207468726561647320746f207363686564756c652070657220626c6f636b2e3c53656c6563746564546872656164730100785665633c5665633c285061726149642c20436f6c6c61746f724964293e3e040008510120416e206172726179206f6620746865207175657565206f6620736574206f662074687265616473207363686564756c656420666f722074686520636f6d696e6720626c6f636b733b206f726465726564206279310120617363656e64696e6720706172612049442e2054686572652063616e206265206e6f206475706c696361746573206f66207061726120494420696e2065616368206c697374206974656d2e184163746976650100b85665633c285061726149642c204f7074696f6e3c28436f6c6c61746f7249642c20526574726961626c65293e293e0400185d012050617261746872656164732f636861696e73207363686564756c656420666f7220657865637574696f6e207468697320626c6f636b2e2049662074686520636f6c6c61746f72204944206973207365742c207468656e6101206120706172746963756c617220636f6c6c61746f722068617320616c7265616479206265656e2063686f73656e20666f7220746865206e65787420626c6f636b2c20616e64206e6f206f7468657220636f6c6c61746f725901206d61792070726f766964652074686520626c6f636b2e20496e2074686973206361736520776520616c6c6f772074686520706f73736962696c697479206f662074686520636f6d62696e6174696f6e206265696e67d0207265747269656420696e2061206c6174657220626c6f636b2c206578707265737365642062792060526574726961626c65602e004c204f726465726564206279205061726149642e284e65787446726565496401001850617261496410e8030000083d0120546865206e65787420756e75736564205061726149642076616c75652e2053746172742074686973206869676820696e206f7264657220746f206b656570206c6f77206e756d6265727320666f72542073797374656d2d6c6576656c20636861696e732e2c50656e64696e6753776170000101185061726149641850617261496400040004642050656e64696e672073776170206f7065726174696f6e732e145061726173000101185061726149642050617261496e666f00040004a8204d6170206f6620616c6c20726567697374657265642070617261746872656164732f636861696e732e28526574727951756575650100785665633c5665633c285061726149642c20436f6c6c61746f724964293e3e040004e8205468652063757272656e7420717565756520666f7220706172617468726561647320746861742073686f756c6420626520726574726965642e1c446562746f72730101011850617261496430543a3a4163636f756e7449640080000000000000000000000000000000000000000000000000000000000000000004ac2055736572732077686f20686176652070616964206120706172617468726561642773206465706f736974011c3472656769737465725f70617261100869643c436f6d706163743c5061726149643e10696e666f2050617261496e666f10636f64651c5665633c75383e44696e697469616c5f686561645f646174611c5665633c75383e089820526567697374657220612070617261636861696e207769746820676976656e20636f64652e8c204661696c7320696620676976656e20494420697320616c726561647920757365642e3c646572656769737465725f70617261040869643c436f6d706163743c5061726149643e0494204465726567697374657220612070617261636861696e207769746820676976656e206964407365745f7468726561645f636f756e740414636f756e740c75333214410120526573657420746865206e756d626572206f6620706172617468726561647320746861742063616e2070617920746f206265207363686564756c656420696e20612073696e676c6520626c6f636b2e0098202d2060636f756e74603a20546865206e756d626572206f662070617261746872656164732e0084204d7573742062652063616c6c65642066726f6d20526f6f74206f726967696e2e4c72656769737465725f706172617468726561640810636f64651c5665633c75383e44696e697469616c5f686561645f646174611c5665633c75383e10a42052656769737465722061207061726174687265616420666f7220696d6d656469617465207573652e004d01204d7573742062652073656e742066726f6d2061205369676e6564206f726967696e20746861742069732061626c6520746f206861766520506172617468726561644465706f7369742072657365727665642e39012060636f64656020616e642060696e697469616c5f686561645f646174616020617265207573656420746f20696e697469616c697a6520746865207061726174687265616427732073746174652e4473656c6563745f706172617468726561640c0c5f69643c436f6d706163743c5061726149643e245f636f6c6c61746f7228436f6c6c61746f724964285f686561645f686173681c543a3a4861736814050120506c61636520612062696420666f722061207061726174687265616420746f2062652070726f6772657373656420696e20746865206e65787420626c6f636b2e00410120546869732069732061206b696e64206f66207370656369616c207472616e73616374696f6e20746861742073686f756c642062652068656176696c79207072696f726974697a656420696e207468655d01207472616e73616374696f6e20706f6f6c206163636f7264696e6720746f20746865206076616c7565603b206f6e6c792060546872656164436f756e7460206f66207468656d206d61792062652070726573656e7465645420696e20616e792073696e676c6520626c6f636b2e54646572656769737465725f70617261746872656164001cc820446572656769737465722061207061726174687265616420616e6420726574726965766520746865206465706f7369742e002101204d7573742062652073656e742066726f6d2061206050617261636861696e60206f726967696e2077686963682069732063757272656e746c79206120706172617468726561642e00590120456e737572652074686174206265666f72652063616c6c696e672074686973207468617420616e792066756e647320796f752077616e7420656d70746965642066726f6d20746865207061726174687265616427734501206163636f756e74206973206d6f766564206f75743b20616674657220746869732069742077696c6c20626520696d706f737369626c6520746f207265747269657665207468656d2028776974686f75746820676f7665726e616e636520696e74657276656e74696f6e292e107377617004146f746865723c436f6d706163743c5061726149643e206501205377617020612070617261636861696e207769746820616e6f746865722070617261636861696e206f7220706172617468726561642e20546865206f726967696e206d7573742062652061206050617261636861696e602e65012054686520737761702077696c6c2068617070656e206f6e6c7920696620746865726520697320616c726561647920616e206f70706f7369746520737761702070656e64696e672e204966207468657265206973206e6f742c5d012074686520737761702077696c6c2062652073746f72656420696e207468652070656e64696e67207377617073206d61702c20726561647920666f722061206c6174657220636f6e6669726d61746f727920737761702e00610120546865206050617261496460732072656d61696e206d617070656420746f207468652073616d652068656164206461746120616e6420636f646520736f2065787465726e616c20636f64652063616e2072656c79206f6e410120605061726149646020746f2062652061206c6f6e672d7465726d206964656e746966696572206f662061206e6f74696f6e616c202270617261636861696e222e20486f77657665722c2074686569725901207363686564756c696e6720696e666f2028692e652e2077686574686572207468657927726520612070617261746872656164206f722070617261636861696e292c2061756374696f6e20696e666f726d6174696f6e9820616e64207468652061756374696f6e206465706f736974206172652073776974636865642e0108505061726174687265616452656769737465726564041850617261496404d4204120706172617468726561642077617320726567697374657265643b20697473206e657720494420697320737570706c6965642e5850617261746872656164446572656769737465726564041850617261496404d4205468652070617261746872656164206f662074686520737570706c696564204944207761732064652d726567697374657265642e000c4450617261416c726561647945786973747304682050617261636861696e20616c7265616479206578697374732e38496e76616c6964436861696e4964045820496e76616c69642070617261636861696e2049442e3c496e76616c69645468726561644964045c20496e76616c696420706172617468726561642049442e0420504f6e6c795374616b696e67416e64436c61696d7330436865636b56657273696f6e30436865636b47656e6573697320436865636b45726128436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74584c696d697450617261746872656164436f6d6d697473" - -var ExamplaryMetadataV11SubstrateString = "0x6d6574610b801853797374656d011853797374656d3c1c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e00150100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010064776569676874733a3a45787472696e7369637357656967687440000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e1c6c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960e0202d2042617365205765696768743a20302e36363520c2b5732c20696e646570656e64656e74206f662072656d61726b206c656e6774682e50202d204e6f204442206f7065726174696f6e732e302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e28682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e7901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2c202d2031206576656e742e7d012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e902057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e75012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e1c7375696369646500286501204b696c6c207468652073656e64696e67206163636f756e742c20617373756d696e6720746865726520617265206e6f207265666572656e636573206f75747374616e64696e6720616e642074686520636f6d706f7369746590206461746120697320657175616c20746f206974732064656661756c742076616c75652e002c2023203c7765696768743e24202d20604f283129607c202d20312073746f72616765207265616420616e642064656c6574696f6e2e54202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a20382e36323620c2b5731101204e6f2044422052656164206f72205772697465206f7065726174696f6e7320626563617573652063616c6c657220697320616c726561647920696e206f7665726c6179302023203c2f7765696768743e01144045787472696e7369635375636365737304304469737061746368496e666f04b020416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205b696e666f5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f048c20416e2065787472696e736963206661696c65642e205b6572726f722c20696e666f5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e74496404742041206e6577205b6163636f756e745d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046420416e205b6163636f756e745d20776173207265617065642e1838426c6f636b48617368436f756e7438543a3a426c6f636b4e756d626572106009000004d820546865206d6178696d756d206e756d626572206f6620626c6f636b7320746f20616c6c6f7720696e206d6f7274616c20657261732e484d6178696d756d426c6f636b576569676874185765696768742000204aa9d1010000047c20546865206d6178696d756d20776569676874206f66206120626c6f636b2e2044625765696768743c52756e74696d6544625765696768744040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e50426c6f636b457865637574696f6e576569676874185765696768742000f2052a0100000004510120546865206261736520776569676874206f6620657865637574696e67206120626c6f636b2c20696e646570656e64656e74206f6620746865207472616e73616374696f6e7320696e2074686520626c6f636b2e4c45787472696e736963426173655765696768741857656967687420405973070000000004790120546865206261736520776569676874206f6620616e2045787472696e73696320696e2074686520626c6f636b2c20696e646570656e64656e74206f6620746865206f662065787472696e736963206265696e672065786563757465642e484d6178696d756d426c6f636b4c656e6774680c753332100000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e1c5574696c697479000108146261746368041463616c6c735c5665633c3c542061732054726169743e3a3a43616c6c3e50802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c820627970617373696e6720606672616d655f73797374656d3a3a54726169743a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e90202d2042617365207765696768743a2031342e3339202b202e393837202a206320c2b573b8202d20506c7573207468652073756d206f66207468652077656967687473206f6620746865206063616c6c73602ec4202d20506c7573206f6e65206164646974696f6e616c206576656e742e202872657065617420726561642f777269746529302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0108404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173882077656c6c20617320746865206572726f722e205b696e6465782c206572726f725d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e000010426162650110426162652c2845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401000c75363420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401000c75363420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e65737380000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e3c4e65787445706f6368436f6e6669670000504e657874436f6e66696744657363726970746f7204000498204e6578742065706f636820636f6e66696775726174696f6e2c206966206368616e6765642e384e65787452616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e657373800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101050c7533326c5665633c7363686e6f72726b656c3a3a52616e646f6d6e6573733e0004000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a656400003c4d6179626552616e646f6d6e65737304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e204c6174656e657373010038543a3a426c6f636b4e756d626572100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e01084c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66200d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e00083445706f63684475726174696f6e0c75363420c800000000000000080d0120546865206e756d626572206f66202a2a736c6f74732a2a207468617420616e2065706f63682074616b65732e20576520636f75706c652073657373696f6e7320746ffc2065706f6368732c20692e652e2077652073746172742061206e65772073657373696f6e206f6e636520746865206e65772065706f636820626567696e732e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e002454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e3c5820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743ed0202d20604f285429602077686572652060546020636f6d706c6578697479206f6620606f6e5f74696d657374616d705f73657460a101202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e20606f6e5f66696e616c697a656029b4202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f7365746020604f285429602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0028417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e1c496e6469636573011c496e646963657304204163636f756e74730001023c543a3a4163636f756e74496e6465788828543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20626f6f6c29000400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e011414636c61696d0414696e6465783c543a3a4163636f756e74496e6465784c9c2041737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00e0205061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f4202d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2032382e363920c2b57394202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e207472616e73666572080c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e6465785461012041737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6ebc206973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002901202d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e68202d204f6e65207472616e73666572206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2033332e373420c2b57334202d204442205765696768743ae4202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e8202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429302023203c2f7765696768743e10667265650414696e6465783c543a3a4163636f756e74496e6465784c98204672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e006101205061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e001101202d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e008820456d6974732060496e646578467265656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2032352e353320c2b57394202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e38666f7263655f7472616e736665720c0c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e64657818667265657a6510626f6f6c58590120466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479ec2068656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a8202d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e4501202d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e7c202d20557020746f206f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2032362e383320c2b57334202d204442205765696768743af8202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229fc202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229302023203c2f7765696768743e18667265657a650414696e6465783c543a3a4163636f756e74496e64657848690120467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742068617665206170206e6f6e2d66726f7a656e206163636f756e742060696e646578602e00b0202d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e008c20456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e74202d20557020746f206f6e6520736c617368206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2033302e383620c2b57394202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e010c34496e64657841737369676e656408244163636f756e744964304163636f756e74496e64657804ac2041206163636f756e7420696e646578207761732061737369676e65642e205b77686f2c20696e6465785d28496e646578467265656404304163636f756e74496e64657804e02041206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205b696e6465785d2c496e64657846726f7a656e08304163636f756e74496e646578244163636f756e7449640421012041206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205b77686f2c20696e6465785d00002042616c616e636573012042616c616e6365731034546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e20746865206361736520746861742074686973206d6f64756c65206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964705665633c42616c616e63654c6f636b3c543a3a42616c616e63653e3e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e6cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e4101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973902020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e4d6f64756c652e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e6365041d0120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205b6163636f756e742c20667265655f62616c616e63655d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cc820726573756c74696e6720696e20616e206f75747269676874206c6f73732e205b6163636f756e742c2062616c616e63655d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e63650498205472616e73666572207375636365656465642e205b66726f6d2c20746f2c2076616c75655d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504c420412062616c616e6365207761732073657420627920726f6f742e205b77686f2c20667265652c2072657365727665645d1c4465706f73697408244163636f756e7449641c42616c616e636504190120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205b77686f2c206465706f7369745d20526573657276656408244163636f756e7449641c42616c616e636504190120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205b77686f2c2076616c75655d28556e726573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205b77686f2c2076616c75655d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea0205b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735d04484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c204f766572666c6f77047420476f7420616e206f766572666c6f7720616674657220616464696e674c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d6578697374485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c0401000000000000000000000000000000000000000001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e001c5374616b696e67011c5374616b696e678c30486973746f7279446570746801000c75333210540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010530543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010230543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010530543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010530543a3a4163636f756e7449643856616c696461746f72507265667300040004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010530543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e00040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e2843757272656e74457261000020457261496e6465780400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e24416374697665457261000034416374697665457261496e666f040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e00b820546865206163746976652065726120697320746865206572612063757272656e746c792072657761726465642e2d012056616c696461746f7220736574206f66207468697320657261206d75737420626520657175616c20746f206053657373696f6e496e746572666163653a3a76616c696461746f7273602e5445726173537461727453657373696f6e496e64657800010520457261496e6465783053657373696f6e496e646578000400043101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e2c457261735374616b65727301020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301020520457261496e64657830543a3a4163636f756e7449643856616c696461746f7250726566730504001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010520457261496e6465783042616c616e63654f663c543e0004000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010520457261496e64657874457261526577617264506f696e74733c543a3a4163636f756e7449643e0014000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010520457261496e6465783042616c616e63654f663c543e00400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f72636545726101001c466f7263696e6704000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010520457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2905040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e05040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010530543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101058c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e48536e617073686f7456616c696461746f72730000445665633c543a3a4163636f756e7449643e040008650120536e617073686f74206f662076616c696461746f72732061742074686520626567696e6e696e67206f66207468652063757272656e7420656c656374696f6e2077696e646f772e20546869732073686f756c64206f6e6c791901206861766520612076616c7565207768656e205b60457261456c656374696f6e537461747573605d203d3d2060456c656374696f6e5374617475733a3a4f70656e285f29602e48536e617073686f744e6f6d696e61746f72730000445665633c543a3a4163636f756e7449643e040008650120536e617073686f74206f66206e6f6d696e61746f72732061742074686520626567696e6e696e67206f66207468652063757272656e7420656c656374696f6e2077696e646f772e20546869732073686f756c64206f6e6c791901206861766520612076616c7565207768656e205b60457261456c656374696f6e537461747573605d203d3d2060456c656374696f6e5374617475733a3a4f70656e285f29602e34517565756564456c65637465640000a8456c656374696f6e526573756c743c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e04000c650120546865206e6578742076616c696461746f72207365742e2041742074686520656e64206f6620616e206572612c206966207468697320697320617661696c61626c652028706f74656e7469616c6c792066726f6d20746865610120726573756c74206f6620616e206f6666636861696e20776f726b6572292c20697420697320696d6d6564696174656c7920757365642e204f74686572776973652c20746865206f6e2d636861696e20656c656374696f6e342069732065786563757465642e2c51756575656453636f7265000034456c656374696f6e53636f7265040004b0205468652073636f7265206f66207468652063757272656e74205b60517565756564456c6563746564605d2e44457261456c656374696f6e537461747573010078456c656374696f6e5374617475733c543a3a426c6f636b4e756d6265723e040008490120466c616720746f20636f6e74726f6c2074686520657865637574696f6e206f6620746865206f6666636861696e20656c656374696f6e2e205768656e20604f70656e285f29602c207765206163636570746c20736f6c7574696f6e7320746f206265207375626d69747465642e54497343757272656e7453657373696f6e46696e616c010010626f6f6c0400084d012054727565206966207468652063757272656e74202a2a706c616e6e65642a2a2073657373696f6e2069732066696e616c2e204e6f74652074686174207468697320646f6573206e6f742074616b65206572615820666f7263696e6720696e746f206163636f756e742e3853746f7261676556657273696f6e01002052656c6561736573040310cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076332e302e3020666f72206e6577206e6574776f726b732e016010626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e5865012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e004020456d6974732060426f6e646564602e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e005101204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e6564410120756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e4c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2036372e383720c2b5732c204442205765696768743a3101202d20526561643a20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c2043757272656e74204572612c20486973746f72792044657074682c204c6f636b73e0202d2057726974653a20426f6e6465642c2050617965652c205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e5865012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c657220616e64f82069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004020456d6974732060426f6e646564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e34202d2d2d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2035342e383820c2b5732c204442205765696768743a1501202d20526561643a2045726120456c656374696f6e205374617475732c20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c204c6f636b73a4202d2057726974653a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e805501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004820456d6974732060556e626f6e646564602e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652e5101202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c6564207669615c2020206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e2c202d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2035302e333420c2b5732c204442205765696768743a2901202d20526561643a2045726120456c656374696f6e205374617475732c204c65646765722c2043757272656e74204572612c204c6f636b732c205b4f726967696e204163636f756e745da4202d2057726974653a205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657228203c2f7765696768743e4477697468647261775f756e626f6e64656404486e756d5f736c617368696e675f7370616e730c753332782d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004c20456d697473206057697468647261776e602e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d090120436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f7665342042617365205765696768743a74205570646174653a2035302e3532202b202e303238202a205320c2b5732501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c204c6f636b732c205b4f726967696e204163636f756e745da8202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657270204b696c6c3a2037392e3431202b20322e333636202a205320c2b5738501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c20426f6e6465642c20536c617368696e67205370616e732c205b4f726967696e204163636f756e745d2c204c6f636b73b101202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c205b4f726967696e204163636f756e745d2c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a20530d01204e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f72507265667344e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e30202d2d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2031372e313320c2b5732c204442205765696768743a90202d20526561643a2045726120456c656374696f6e205374617475732c204c656467657280202d2057726974653a204e6f6d696e61746f72732c2056616c696461746f7273302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e4c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00510120456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e20546869732063616e206f6e6c792062652063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e3101202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e2901012077686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e28202d2d2d2d2d2d2d2d2d842042617365205765696768743a2032322e3334202b202e3336202a204e20c2b57384207768657265204e20697320746865206e756d626572206f6620746172676574732c204442205765696768743ac8202d2052656164733a2045726120456c656374696f6e205374617475732c204c65646765722c2043757272656e742045726184202d205772697465733a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e146368696c6c0044c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e24202d2d2d2d2d2d2d2d5c2042617365205765696768743a2031362e353320c2b5732c204442205765696768743a88202d20526561643a20457261456c656374696f6e5374617475732c204c656467657280202d2057726974653a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e247365745f7061796565041470617965654452657761726444657374696e6174696f6e40b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e28202d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2031312e333320c2b57334202d204442205765696768743a4c20202020202d20526561643a204c65646765724c20202020202d2057726974653a205061796565302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654090202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c202d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2032352e323220c2b5732c204442205765696768743af4202d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f8202d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e209420536574732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e5c2042617365205765696768743a20312e37313720c2b5735c2057726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e7404286164646974696f6e616c30436f6d706163743c7533323e20ac20496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e5c2042617365205765696768743a20312e37313720c2b5737020526561642f57726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e547363616c655f76616c696461746f725f636f756e740418666163746f721c50657263656e7420d4205363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e5c2042617365205765696768743a20312e37313720c2b5737020526561642f57726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e34666f7263655f6e6f5f657261730024b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e64202d2042617365205765696768743a20312e38353720c2b57348202d2057726974653a20466f726365457261302023203c2f7765696768743e34666f7263655f6e65775f65726100284d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e64202d2042617365205765696768743a20312e39353920c2b57344202d20577269746520466f726365457261302023203c2f7765696768743e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e24cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e1c202d204f28562990202d2042617365205765696768743a20322e323038202b202e303036202a205620c2b5735c202d2057726974653a20496e76756c6e657261626c6573302023203c2f7765696768743e34666f7263655f756e7374616b650814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533322c0d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743eec204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f7665648c2042617365205765696768743a2035332e3037202b20322e333635202a205320c2b573b82052656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b738501205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c204163636f756e742c204c6f636b736c2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730020050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e60202d2042617365205765696768743a20322e303520c2b57348202d2057726974653a20466f726365457261302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e38982043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b42043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e00050120506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e5420436f6d706c65786974793a204f2855202b205329b82077697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d420616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e74202d20426173653a2035383730202b2033342e3631202a205320c2b57368202d20526561643a20556e6170706c69656420536c61736865736c202d2057726974653a20556e6170706c69656420536c6173686573302023203c2f7765696768743e387061796f75745f7374616b657273083c76616c696461746f725f737461736830543a3a4163636f756e7449640c65726120457261496e64657864110120506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e004d01202d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f290120202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e3501202d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e00590120546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e20696678206974206973206e6f74206f6e65206f6620746865207374616b6572732e00010120546869732063616e206f6e6c792062652063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e0101202d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e30202d2d2d2d2d2d2d2d2d2d2d1d01204e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f7229342042617365205765696768743a0101202d205265776172642044657374696e6174696f6e205374616b65643a20313130202b2035342e32202a204e20c2b57320284d656469616e20536c6f706573294101202d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a20313230202b2034312e3935202a204e20c2b57320284d656469616e20536c6f706573292c204442205765696768743a2901202d20526561643a20457261456c656374696f6e5374617475732c2043757272656e744572612c20486973746f727944657074682c204572617356616c696461746f725265776172642c2d01202020202020202020457261735374616b657273436c69707065642c2045726173526577617264506f696e74732c204572617356616c696461746f725072656673202838206974656d73291101202d205265616420456163683a20426f6e6465642c204c65646765722c2050617965652c204c6f636b732c2053797374656d204163636f756e74202835206974656d7329d8202d20577269746520456163683a2053797374656d204163636f756e742c204c6f636b732c204c6564676572202833206974656d7329302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e3ce0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00550120546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722c20616e642069742063616e206265206f6e6c792063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ed4202d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b7394202d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d98202d2042617365205765696768743a2033342e353120c2b573202a202e303438204c20c2b57334202d204442205765696768743a010120202020202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c204c6f636b732c205b4f726967696e204163636f756e745db820202020202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e447365745f686973746f72795f646570746808446e65775f686973746f72795f646570746844436f6d706163743c457261496e6465783e485f6572615f6974656d735f64656c6574656430436f6d706163743c7533323e543101205365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e80207768656e2060486973746f727944657074686020697320726564756365642e003020506172616d65746572733a1101202d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e4901202d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e450120202020546869732073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c6445012020202065726120686973746f72792e204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e2054727573746564206279a02020202060526f6f746020746f207265706f727420616e206163637572617465206e756d6265722e0054204f726967696e206d75737420626520726f6f742e002c2023203c7765696768743ee0202d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d203374202d2042617365205765696768743a2032392e3133202a204520c2b57334202d204442205765696768743aa020202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074687020202020202d205772697465733a20486973746f7279204465707468310120202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f725072656673810120202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c2045726173537461727453657373696f6e496e646578302023203c2f7765696768743e28726561705f73746173680814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533324039012052656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e6365206973207a65726f2e6101205468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65c020616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c6566742e009020546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e000101202d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002c2023203c7765696768743e250120436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e8c2042617365205765696768743a2037352e3934202b20322e333936202a205320c2b5732c204442205765696768743ad8202d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b73a501202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c205374617368204163636f756e742c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e607375626d69745f656c656374696f6e5f736f6c7574696f6e141c77696e6e6572734c5665633c56616c696461746f72496e6465783e1c636f6d7061637448436f6d7061637441737369676e6d656e74731473636f726534456c656374696f6e53636f72650c65726120457261496e6465781073697a6530456c656374696f6e53697a65bce4205375626d697420616e20656c656374696f6e20726573756c7420746f2074686520636861696e2e2049662074686520736f6c7574696f6e3a003420312e2069732076616c69642e150120322e206861732061206265747465722073636f7265207468616e206120706f74656e7469616c6c79206578697374696e6720736f6c7574696f6e206f6e20636861696e2e0084207468656e2c2069742077696c6c206265205f7075745f206f6e20636861696e2e00ac204120736f6c7574696f6e20636f6e7369737473206f662074776f20706965636573206f6620646174613a00f420312e206077696e6e657273603a206120666c617420766563746f72206f6620616c6c207468652077696e6e657273206f662074686520726f756e642e510120322e206061737369676e6d656e7473603a2074686520636f6d706163742076657273696f6e206f6620616e2061737369676e6d656e7420766563746f72207468617420656e636f6465732074686520656467653020202020776569676874732e00210120426f7468206f66207768696368206d617920626520636f6d7075746564207573696e67205f70687261676d656e5f2c206f7220616e79206f7468657220616c676f726974686d2e00a8204164646974696f6e616c6c792c20746865207375626d6974746572206d7573742070726f766964653a00c8202d20546865206073636f7265602074686174207468657920636c61696d20746865697220736f6c7574696f6e206861732e004d0120426f74682076616c696461746f727320616e64206e6f6d696e61746f72732077696c6c20626520726570726573656e74656420627920696e646963657320696e2074686520736f6c7574696f6e2e205468651d0120696e64696365732073686f756c6420726573706563742074686520636f72726573706f6e64696e6720747970657320285b6056616c696461746f72496e646578605d20616e643101205b604e6f6d696e61746f72496e646578605d292e204d6f72656f7665722c20746865792073686f756c642062652076616c6964207768656e207573656420746f20696e64657820696e746f5101205b60536e617073686f7456616c696461746f7273605d20616e64205b60536e617073686f744e6f6d696e61746f7273605d2e20416e7920696e76616c696420696e6465782077696c6c20636175736520746865610120736f6c7574696f6e20746f2062652072656a65637465642e2054686573652074776f2073746f72616765206974656d73206172652073657420647572696e672074686520656c656374696f6e2077696e646f7720616e6498206d6179206265207573656420746f2064657465726d696e652074686520696e64696365732e0060204120736f6c7574696f6e2069732076616c69642069663a00e420302e204974206973207375626d6974746564207768656e205b60457261456c656374696f6e537461747573605d20697320604f70656e602ef820312e2049747320636c61696d65642073636f726520697320657175616c20746f207468652073636f726520636f6d7075746564206f6e2d636861696e2eac20322e2050726573656e74732074686520636f7272656374206e756d626572206f662077696e6e6572732e550120332e20416c6c20696e6465786573206d7573742062652076616c7565206163636f7264696e6720746f2074686520736e617073686f7420766563746f72732e20416c6c20656467652076616c756573206d7573745d0120202020616c736f20626520636f727265637420616e642073686f756c64206e6f74206f766572666c6f7720746865206772616e756c6172697479206f662074686520726174696f20747970652028692e652e2032353640202020206f722062696c6c696f6e292e0d0120342e20466f72206561636820656467652c20616c6c2074617267657473206172652061637475616c6c79206e6f6d696e617465642062792074686520766f7465722e6c20352e2048617320636f72726563742073656c662d766f7465732e00c0204120736f6c7574696f6e732073636f726520697320636f6e736973746564206f66203320706172616d65746572733a00650120312e20606d696e207b20737570706f72742e746f74616c207d6020666f72206561636820737570706f7274206f6620612077696e6e65722e20546869732076616c75652073686f756c64206265206d6178696d697a65642e650120322e206073756d207b20737570706f72742e746f74616c207d6020666f72206561636820737570706f7274206f6620612077696e6e65722e20546869732076616c75652073686f756c64206265206d696e696d697a65642e410120332e206073756d207b20737570706f72742e746f74616c5e32207d6020666f72206561636820737570706f7274206f6620612077696e6e65722e20546869732076616c75652073686f756c642062659c202020206d696e696d697a65642028746f20656e73757265206c6573732076617269616e636529002c2023203c7765696768743e7020536565206063726174653a3a77656967687460206d6f64756c652e302023203c2f7765696768743e847375626d69745f656c656374696f6e5f736f6c7574696f6e5f756e7369676e6564141c77696e6e6572734c5665633c56616c696461746f72496e6465783e1c636f6d7061637448436f6d7061637441737369676e6d656e74731473636f726534456c656374696f6e53636f72650c65726120457261496e6465781073697a6530456c656374696f6e53697a6524c020556e7369676e65642076657273696f6e206f6620607375626d69745f656c656374696f6e5f736f6c7574696f6e602e005d01204e6f746520746861742074686973206d757374207061737320746865205b6056616c6964617465556e7369676e6564605d20636865636b207768696368206f6e6c7920616c6c6f7773207472616e73616374696f6e7361012066726f6d20746865206c6f63616c206e6f646520746f20626520696e636c756465642e20496e206f7468657220776f7264732c206f6e6c792074686520626c6f636b20617574686f722063616e20696e636c756465206168207472616e73616374696f6e20696e2074686520626c6f636b2e002c2023203c7765696768743e7020536565206063726174653a3a77656967687460206d6f64756c652e302023203c2f7765696768743e0124244572615061796f75740c20457261496e6465781c42616c616e63651c42616c616e63650c59012054686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c4207468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642ea4205b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725d1852657761726408244163636f756e7449641c42616c616e636504f420546865207374616b657220686173206265656e207265776172646564206279207468697320616d6f756e742e205b73746173682c20616d6f756e745d14536c61736808244163636f756e7449641c42616c616e6365082501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e50205b76616c696461746f722c20616d6f756e745d684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6488206e6f742062652070726f6365737365642e205b73657373696f6e5f696e6465785d3c5374616b696e67456c656374696f6e043c456c656374696f6e436f6d7075746504ec2041206e657720736574206f66207374616b6572732077617320656c656374656420776974682074686520676976656e205b636f6d707574655d2e38536f6c7574696f6e53746f726564043c456c656374696f6e436f6d707574650411012041206e657720736f6c7574696f6e20666f7220746865207570636f6d696e6720656c656374696f6e20686173206265656e2073746f7265642e205b636f6d707574655d18426f6e64656408244163636f756e7449641c42616c616e636510cc20416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205b73746173682c20616d6f756e745d005101204e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c25012069742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e64656408244163636f756e7449641c42616c616e636504d420416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205b73746173682c20616d6f756e745d2457697468647261776e08244163636f756e7449641c42616c616e6365085d0120416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560a82066726f6d2074686520756e6c6f636b696e672071756575652e205b73746173682c20616d6f756e745d1c3853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e20457261496e64657810a8000000140101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e00bc20546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2d012053657420746f203020696620736c61736865732073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f723820696e74657276656e74696f6e2e44456c656374696f6e4c6f6f6b616865616438543a3a426c6f636b4e756d62657210320000001c710120546865206e756d626572206f6620626c6f636b73206265666f72652074686520656e64206f6620746865206572612066726f6d20776869636820656c656374696f6e207375626d697373696f6e732061726520616c6c6f7765642e006d012053657474696e67207468697320746f207a65726f2077696c6c2064697361626c6520746865206f6666636861696e20636f6d7075746520616e64206f6e6c79206f6e2d636861696e207365712d70687261676d656e2077696c6c2420626520757365642e007501205468697320697320626f756e646564206279206265696e672077697468696e20746865206c6173742073657373696f6e2e2048656e63652c2073657474696e6720697420746f20612076616c7565206d6f7265207468616e207468659c206c656e677468206f6620612073657373696f6e2077696c6c20626520706f696e746c6573732e344d6178497465726174696f6e730c753332100a0000000c2901204d6178696d756d206e756d626572206f662062616c616e63696e6720697465726174696f6e7320746f2072756e20696e20746865206f6666636861696e207375626d697373696f6e2e00ec2049662073657420746f20302c2062616c616e63655f736f6c7574696f6e2077696c6c206e6f7420626520657865637574656420617420616c6c2e504d696e536f6c7574696f6e53636f726542756d701c50657262696c6c1020a1070004610120546865207468726573686f6c64206f6620696d70726f76656d656e7420746861742073686f756c642062652070726f766964656420666f722061206e657720736f6c7574696f6e20746f2062652061636365707465642e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f720c753332104000000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00690120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e20636c61696d2101207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e7c344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e44496e73756666696369656e7456616c756504cc2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e64656454617267657404cc20417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264045c20496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73047c20496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e697175650484204974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564040d01205265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e7c4f6666636861696e456c656374696f6e4561726c795375626d697373696f6e04e420546865207375626d697474656420726573756c74206973207265636569766564206f7574206f6620746865206f70656e2077696e646f772e784f6666636861696e456c656374696f6e5765616b5375626d697373696f6e04010120546865207375626d697474656420726573756c74206973206e6f7420617320676f6f6420617320746865206f6e652073746f726564206f6e20636861696e2e4c536e617073686f74556e617661696c61626c6504d02054686520736e617073686f742064617461206f66207468652063757272656e742077696e646f77206973206d697373696e672e804f6666636861696e456c656374696f6e426f67757357696e6e6572436f756e7404b020496e636f7272656374206e756d626572206f662077696e6e65727320776572652070726573656e7465642e6c4f6666636861696e456c656374696f6e426f67757357696e6e6572086101204f6e65206f6620746865207375626d69747465642077696e6e657273206973206e6f7420616e206163746976652063616e646964617465206f6e20636861696e2028696e646578206973206f7574206f662072616e67653820696e20736e617073686f74292e704f6666636861696e456c656374696f6e426f677573436f6d70616374085d01204572726f72207768696c65206275696c64696e67207468652061737369676e6d656e7420747970652066726f6d2074686520636f6d706163742e20546869732063616e2068617070656e20696620616e20696e646578a820697320696e76616c69642c206f72206966207468652077656967687473205f6f766572666c6f775f2e784f6666636861696e456c656374696f6e426f6775734e6f6d696e61746f72041501204f6e65206f6620746865207375626d6974746564206e6f6d696e61746f7273206973206e6f7420616e20616374697665206e6f6d696e61746f72206f6e20636861696e2e7c4f6666636861696e456c656374696f6e426f6775734e6f6d696e6174696f6e044d01204f6e65206f6620746865207375626d6974746564206e6f6d696e61746f72732068617320616e206564676520746f20776869636820746865792068617665206e6f7420766f746564206f6e20636861696e2e844f6666636861696e456c656374696f6e536c61736865644e6f6d696e6174696f6e086101204f6e65206f6620746865207375626d6974746564206e6f6d696e61746f72732068617320616e2065646765207768696368206973207375626d6974746564206265666f726520746865206c617374206e6f6e2d7a65726f5420736c617368206f6620746865207461726765742e744f6666636861696e456c656374696f6e426f67757353656c66566f746504250120412073656c6620766f7465206d757374206f6e6c79206265206f726967696e617465642066726f6d20612076616c696461746f7220746f204f4e4c59207468656d73656c7665732e644f6666636861696e456c656374696f6e426f6775734564676504450120546865207375626d697474656420726573756c742068617320756e6b6e6f776e206564676573207468617420617265206e6f7420616d6f6e67207468652070726573656e7465642077696e6e6572732e684f6666636861696e456c656374696f6e426f67757353636f72650419012054686520636c61696d65642073636f726520646f6573206e6f74206d61746368207769746820746865206f6e6520636f6d70757465642066726f6d2074686520646174612e844f6666636861696e456c656374696f6e426f677573456c656374696f6e53697a6504782054686520656c656374696f6e2073697a6520697320696e76616c69642e3843616c6c4e6f74416c6c6f776564044901205468652063616c6c206973206e6f7420616c6c6f7765642061742074686520676976656e2074696d652064756520746f207265737472696374696f6e73206f6620656c656374696f6e20706572696f642e54496e636f7272656374486973746f7279446570746804c420496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e7304b420496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e1c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010538543a3a56616c696461746f7249641c543a3a4b657973000400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010550284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496400040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e0108207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e38e82053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a4202d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b6579736084202d204462526561647320706572206b65792069643a20604b65794f776e65726088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e2870757267655f6b6579730030cc2052656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743eb4202d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a4202d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e74608c202d20446257726974657320706572206b65792069643a20604b65794f776e64657260302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085d01204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205b73657373696f6e5f696e6465785d2c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e001030496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e184e6f4b65797304a8204e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001052450726f70496e64657884285665633c543a3a4163636f756e7449643e2c2042616c616e63654f663c543e290004000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001061c543a3a48617368e8507265696d6167655374617475733c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001053c5265666572656e64756d496e646578d45265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173682c2042616c616e63654f663c543e3e0004000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010530543a3a4163636f756e744964c8566f74696e673c42616c616e63654f663c543e2c20543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b7300010530543a3a4163636f756e74496438543a3a426c6f636b4e756d626572000400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001061c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101061c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e00002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e015c1c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e3ca02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e00190120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573748420686176652066756e647320746f20636f76657220746865206465706f7369742e00d8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e1901202d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e004820456d697473206050726f706f736564602e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960b4202d2044622072656164733a20605075626c696350726f70436f756e74602c20605075626c696350726f707360ec202d204462207772697465733a20605075626c696350726f70436f756e74602c20605075626c696350726f7073602c20604465706f7369744f6660302023203c2f7765696768743e187365636f6e64082070726f706f73616c48436f6d706163743c50726f70496e6465783e4c7365636f6e64735f75707065725f626f756e6430436f6d706163743c7533323e38b8205369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e6465721501206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00cc202d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e4501202d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e2074686973290120202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e002c2023203c7765696768743e3901202d20436f6d706c65786974793a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e60202d2044622072656164733a20604465706f7369744f666064202d204462207772697465733a20604465706f7369744f6660302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f7465644163636f756e74566f74653c42616c616e63654f663c543e3e38350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00e0202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e88202d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e002c2023203c7765696768743e4901202d20436f6d706c65786974793a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2ea42020207765696768742069732063686172676564206173206966206d6178696d756d20766f7465732ef4202d2044622072656164733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f66602c206062616c616e636573206c6f636b7360f8202d204462207772697465733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f66602c206062616c616e636573206c6f636b7360302023203c2f7765696768743e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578305101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e00fc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d4202d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e002c2023203c7765696768743e58202d20436f6d706c65786974793a20604f283129602ec0202d2044622072656164733a20605265666572656e64756d496e666f4f66602c206043616e63656c6c6174696f6e7360c4202d204462207772697465733a20605265666572656e64756d496e666f4f66602c206043616e63656c6c6174696f6e7360302023203c2f7765696768743e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368343101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e00ec20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e002c2023203c7765696768743e2d01202d20436f6d706c657869747920604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2ebc2020204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756da0202d2044622072656164733a20604e65787445787465726e616c602c2060426c61636b6c6973746070202d204462207772697465733a20604e65787445787465726e616c60302023203c2f7765696768743e6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a48617368385901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e00f020546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f283129606c202d2044622077726974653a20604e65787445787465726e616c60302023203c2f7765696768743e6065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a48617368384901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e00ec20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f283129606c202d2044622077726974653a20604e65787445787465726e616c60302023203c2f7765696768743e28666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d626572505101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d420546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f982020206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e004420456d697473206053746172746564602e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960b8202d2044622072656164733a20604e65787445787465726e616c602c20605265666572656e64756d436f756e74600d01202d204462207772697465733a20604e65787445787465726e616c602c20605265666572656e64756d436f756e74602c20605265666572656e64756d496e666f4f666060202d2042617365205765696768743a2033302e3120c2b573302023203c2f7765696768743e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736838bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00dc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e003101202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e004020456d69747320605665746f6564602e002c2023203c7765696768743e1901202d20436f6d706c65786974793a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604501202020506572666f726d7320612062696e61727920736561726368206f6e20606578697374696e675f7665746f657273602077686963682073686f756c64206e6f742062652076657279206c617267652ea0202d2044622072656164733a20604e65787445787465726e616c602c2060426c61636b6c69737460a4202d204462207772697465733a20604e65787445787465726e616c602c2060426c61636b6c69737460302023203c2f7765696768743e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e28542052656d6f76652061207265666572656e64756d2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d8202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e002c2023203c7765696768743e58202d20436f6d706c65786974793a20604f283129602e80202d204462207772697465733a20605265666572656e64756d496e666f4f6660302023203c2f7765696768743e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e6465782ca02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c8202d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e002c2023203c7765696768743e3501202d20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602ec8202d2044622072656164733a20607363686564756c6572206c6f6f6b7570602c207363686564756c6572206167656e646160cc202d204462207772697465733a20607363686564756c6572206c6f6f6b7570602c207363686564756c6572206167656e646160302023203c2f7765696768743e2064656c65676174650c08746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e1c62616c616e63653042616c616e63654f663c543e683d012044656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e005901205468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865cc2074696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e00610120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a782020202d2062652064656c65676174696e6720616c72656164793b206f725d012020202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c6964617465649820202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e004901202d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5901202d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e2074686545012020206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e5501202d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374c82020206e6f74206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e004c20456d697473206044656c656761746564602e002c2023203c7765696768743e5901202d20436f6d706c65786974793a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732ec4202d2044622072656164733a20332a60566f74696e674f66602c20606f726967696e206163636f756e74206c6f636b7360c8202d204462207772697465733a20332a60566f74696e674f66602c20606f726967696e206163636f756e74206c6f636b7360a4202d2044622072656164732070657220766f7465733a20605265666572656e64756d496e666f4f6660a8202d204462207772697465732070657220766f7465733a20605265666572656e64756d496e666f4f6660302023203c2f7765696768743e28756e64656c65676174650048d020556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e00610120546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64e0206f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265582063757272656e746c792064656c65676174696e672e005420456d6974732060556e64656c656761746564602e002c2023203c7765696768743e5901202d20436f6d706c65786974793a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e64202d2044622072656164733a20322a60566f74696e674f666068202d204462207772697465733a20322a60566f74696e674f6660a4202d2044622072656164732070657220766f7465733a20605265666572656e64756d496e666f4f6660a8202d204462207772697465732070657220766f7465733a20605265666572656e64756d496e666f4f6660302023203c2f7765696768743e58636c6561725f7075626c69635f70726f706f73616c7300207420436c6561727320616c6c207075626c69632070726f706f73616c732e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e002c2023203c7765696768743e28202d20604f283129602e6c202d204462207772697465733a20605075626c696350726f707360302023203c2f7765696768743e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e3861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e002c2023203c7765696768743e6901202d20436f6d706c65786974793a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e60202d2044622072656164733a2060507265696d616765736064202d204462207772697465733a2060507265696d6167657360302023203c2f7765696768743e646e6f74655f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e040d012053616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e4045012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265410120696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e39012074686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c40206e6f2066656520697320706169642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e002c2023203c7765696768743e6901202d20436f6d706c65786974793a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e60202d2044622072656164733a2060507265696d616765736064202d204462207772697465733a2060507265696d6167657360302023203c2f7765696768743e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e0431012053616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d616765083470726f706f73616c5f686173681c543a3a486173686070726f706f73616c5f6c656e5f75707065725f626f756e6430436f6d706163743c7533323e4cf42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e2d01202d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e010120202045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e006020456d6974732060507265696d616765526561706564602e002c2023203c7765696768743ed0202d20436f6d706c65786974793a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2ebc202d2044622072656164733a2060507265696d61676573602c2070726f7669646572206163636f756e742064617461bc202d204462207772697465733a2060507265696d61676573602070726f7669646572206163636f756e742064617461302023203c2f7765696768743e18756e6c6f636b041874617267657430543a3a4163636f756e7449642ca420556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00bc202d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e002c2023203c7765696768743ed4202d20436f6d706c657869747920604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742eec202d2044622072656164733a2060566f74696e674f66602c206062616c616e636573206c6f636b73602c2060746172676574206163636f756e7460f0202d204462207772697465733a2060566f74696e674f66602c206062616c616e636573206c6f636b73602c2060746172676574206163636f756e7460302023203c2f7765696768743e2c72656d6f76655f766f74650414696e6465783c5265666572656e64756d496e6465787c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e00102049663a8c202d20746865207265666572656e64756d207761732063616e63656c6c65642c206f7280202d20746865207265666572656e64756d206973206f6e676f696e672c206f7294202d20746865207265666572656e64756d2068617320656e6465642073756368207468617401012020202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d82020202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f72882020202d20746865206163636f756e74206d61646520612073706c697420766f74656101202e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655c2066756e6473206265696e6720617661696c61626c652e00ac2049662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643af0202d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64e0202d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64c0202d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f7665725d01202e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c76655d01202a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de8206f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f74658c207265676973746572656420666f72207265666572656e64756d2060696e646578602e00f8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e002c2023203c7765696768743e4101202d20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652eac202d2044622072656164733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f6660b0202d204462207772697465733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f6660302023203c2f7765696768743e4472656d6f76655f6f746865725f766f7465081874617267657430543a3a4163636f756e74496414696e6465783c5265666572656e64756d496e6465784c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e0051012049662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f3101206072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c590120656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f729c20626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e005101202d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f72582020207265666572656e64756d2060696e646578602ef8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e002c2023203c7765696768743e4101202d20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652eac202d2044622072656164733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f6660b0202d204462207772697465733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f6660302023203c2f7765696768743e38656e6163745f70726f706f73616c083470726f706f73616c5f686173681c543a3a4861736814696e6465783c5265666572656e64756d496e64657804510120456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e01442050726f706f736564082450726f70496e6465781c42616c616e63650429012041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205b70726f706f73616c5f696e6465782c206465706f7369745d185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e0475012041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205b70726f706f73616c5f696e6465782c206465706f7369742c206465706f7369746f72735d3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404bc2041207265666572656e64756d2068617320626567756e2e205b7265665f696e6465782c207468726573686f6c645d18506173736564043c5265666572656e64756d496e64657804e020412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205b7265665f696e6465785d244e6f74506173736564043c5265666572656e64756d496e64657804e020412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205b7265665f696e6465785d2443616e63656c6c6564043c5265666572656e64756d496e64657804b42041207265666572656e64756d20686173206265656e2063616e63656c6c65642e205b7265665f696e6465785d204578656375746564083c5265666572656e64756d496e64657810626f6f6c04c020412070726f706f73616c20686173206265656e20656e61637465642e205b7265665f696e6465782c2069735f6f6b5d2444656c65676174656408244163636f756e744964244163636f756e74496404190120416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205b77686f2c207461726765745d2c556e64656c65676174656404244163636f756e74496404f020416e205b6163636f756e745d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657204090120416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205b77686f2c2070726f706f73616c5f686173682c20756e74696c5d34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504590120412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205b70726f706f73616c5f686173682c2077686f2c206465706f7369745d30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636508150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e8c205b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745d3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e64657804790120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e205b70726f706f73616c5f686173682c207265665f696e6465785d3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e64657804790120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e205b70726f706f73616c5f686173682c207265665f696e6465785d38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964082d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eac205b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725d20556e6c6f636b656404244163636f756e74496404b420416e205b6163636f756e745d20686173206265656e20756e6c6f636b6564207375636365737366756c6c792e203c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e5446617374547261636b566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f7465730c753332106400000004b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e842056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f7420657869737420426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e7420546f6f4561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e67244e6f744c6f636b656404a42054686520746172676574206163636f756e7420646f6573206e6f7420686176652061206c6f636b2e284e6f744578706972656404f020546865206c6f636b206f6e20746865206163636f756e7420746f20626520756e6c6f636b656420686173206e6f742079657420657870697265642e204e6f74566f74657204c82054686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e04cc20546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67048c20546865206163636f756e7420697320616c72656164792064656c65676174696e672e204f766572666c6f7704a420416e20756e657870656374656420696e7465676572206f766572666c6f77206f636375727265642e24556e646572666c6f7704a820416e20756e657870656374656420696e746567657220756e646572666c6f77206f636375727265642e44496e73756666696369656e7446756e647304010120546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e6704a420546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f746573457869737408590120546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696cec207468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f77656404dc2054686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e736504982044656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e64045420496e76616c696420757070657220626f756e642e3c4d6178566f746573526561636865640484204d6178696d756d206e756d626572206f6620766f74657320726561636865642e1c436f756e63696c014c496e7374616e636531436f6c6c656374697665182450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e7449640400085d0120546865206d656d6265722077686f2070726f7669646573207468652064656661756c7420766f746520666f7220616e79206f74686572206d656d62657273207468617420646f206e6f7420766f7465206265666f7265e4207468652074696d656f75742e204966204e6f6e652c207468656e206e6f206d656d6265722068617320746861742070726976696c6567652e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005901204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d41585f4d454d4245525360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c30f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e002c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e6c510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736838790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73542042617365205765696768743a202e3439202a20502c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed0205b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea4205b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e40205b70726f706f73616c5f686173685d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e40205b70726f706f73616c5f686173685d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e60205b70726f706f73616c5f686173682c20726573756c745d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e60205b70726f706f73616c5f686173682c20726573756c745d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e64205b70726f706f73616c5f686173682c207965732c206e6f5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e48546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665182450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e7449640400085d0120546865206d656d6265722077686f2070726f7669646573207468652064656661756c7420766f746520666f7220616e79206f74686572206d656d62657273207468617420646f206e6f7420766f7465206265666f7265e4207468652074696d656f75742e204966204e6f6e652c207468656e206e6f206d656d6265722068617320746861742070726976696c6567652e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005901204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d41585f4d454d4245525360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c30f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e002c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e6c510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736838790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73542042617365205765696768743a202e3439202a20502c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed0205b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea4205b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e40205b70726f706f73616c5f686173685d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e40205b70726f706f73616c5f686173685d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e60205b70726f706f73616c5f686173682c20726573756c745d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e60205b70726f706f73616c5f686173682c20726573756c745d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e64205b70726f706f73616c5f686173682c207965732c206e6f5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e24456c656374696f6e73014050687261676d656e456c656374696f6e141c4d656d626572730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e040004f0205468652063757272656e7420656c6563746564206d656d626572736869702e20536f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400044901205468652063757272656e742072756e6e6572735f75702e20536f72746564206261736564206f6e206c6f7720746f2068696768206d657269742028776f72736520746f20626573742072756e6e6572292e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010530543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e29004400000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c02054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682843616e646964617465730100445665633c543a3a4163636f756e7449643e0400085901205468652070726573656e742063616e646964617465206c6973742e20536f72746564206261736564206f6e206163636f756e742d69642e20412063757272656e74206d656d626572206f722072756e6e65722d757041012063616e206e6576657220656e746572207468697320766563746f7220616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e645d0120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe4207365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e0055012055706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e64206120626f6e6420616d6f756e74206973282072657365727665642e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792e59012020202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e641501202020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e005d012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f206e6f7420706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865206c6f636ba020616e64206b65657020736f6d6520666f722066757274686572207472616e73616374696f6e732e002c2023203c7765696768743e5c2042617365207765696768743a2034372e393320c2b573342053746174652072656164733ad820092d2043616e646964617465732e6c656e2829202b204d656d626572732e6c656e2829202b2052756e6e65727355702e6c656e28295420092d20566f74696e67202869735f766f74657229d420092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665202b20746f74616c5f62616c616e6365295d38205374617465207772697465733a2820092d20566f74696e672020092d204c6f636b1d0120092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665202d2d206f6e6c79207768656e206372656174696e672061206e657720766f746572295d302023203c2f7765696768743e3072656d6f76655f766f746572003421012052656d6f766520606f726967696e60206173206120766f7465722e20546869732072656d6f76657320746865206c6f636b20616e642072657475726e732074686520626f6e642e002c2023203c7765696768743e582042617365207765696768743a2033362e3820c2b573a820416c6c207374617465206163636573732069732066726f6d20646f5f72656d6f76655f766f7465722e342053746174652072656164733a2820092d20566f74696e675820092d205b4163636f756e74446174612877686f295d38205374617465207772697465733a2820092d20566f74696e672420092d204c6f636b735820092d205b4163636f756e74446174612877686f295d302023203c2f7765696768743e507265706f72745f646566756e63745f766f746572041c646566756e6374c4446566756e6374566f7465723c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e6c5d01205265706f727420607461726765746020666f72206265696e6720616e20646566756e637420766f7465722e20496e2063617365206f6620612076616c6964207265706f72742c20746865207265706f727465722069735d012072657761726465642062792074686520626f6e6420616d6f756e74206f662060746172676574602e204f74686572776973652c20746865207265706f7274657220697473656c662069732072656d6f76656420616e645c20746865697220626f6e6420697320736c61736865642e0088204120646566756e637420766f74657220697320646566696e656420746f2062653a4d012020202d206120766f7465722077686f73652063757272656e74207375626d697474656420766f7465732061726520616c6c20696e76616c69642e20692e652e20616c6c206f66207468656d20617265206e6ff020202020206c6f6e67657220612063616e646964617465206e6f7220616e20616374697665206d656d626572206f7220612072756e6e65722d75702e0000690120546865206f726967696e206d7573742070726f7669646520746865206e756d626572206f662063757272656e742063616e6469646174657320616e6420766f746573206f6620746865207265706f7274656420746172676574c020666f722074686520707572706f7365206f66206163637572617465207765696768742063616c63756c6174696f6e2e002c2023203c7765696768743eb4204e6f204261736520776569676874206261736564206f6e206d696e2073717561726520616e616c797369732ea420436f6d706c6578697479206f662063616e6469646174655f636f756e743a20312e37353520c2b5739020436f6d706c6578697479206f6620766f74655f636f756e743a2031382e353120c2b573342053746174652072656164733a542020092d20566f74696e67287265706f7274657229502020092d2043616e6469646174652e6c656e28294c2020092d20566f74696e672854617267657429d82020092d2043616e646964617465732c204d656d626572732c2052756e6e6572735570202869735f646566756e63745f766f7465722938205374617465207772697465733a7020092d204c6f636b287265706f72746572207c7c2074617267657429dc20092d205b4163636f756e7442616c616e6365287265706f72746572295d202b204163636f756e7442616c616e636528746172676574297820092d20566f74696e67287265706f72746572207c7c20746172676574295901204e6f74653a207468652064622061636365737320697320776f7273652077697468207265737065637420746f2064622c207768696368206973207768656e20746865207265706f727420697320636f72726563742e302023203c2f7765696768743e407375626d69745f63616e646964616379043c63616e6469646174655f636f756e7430436f6d706163743c7533323e5478205375626d6974206f6e6573656c6620666f722063616e6469646163792e006420412063616e6469646174652077696c6c206569746865723aec2020202d204c6f73652061742074686520656e64206f6620746865207465726d20616e6420666f7266656974207468656972206465706f7369742e2d012020202d2057696e20616e64206265636f6d652061206d656d6265722e204d656d626572732077696c6c206576656e7475616c6c7920676574207468656972207374617368206261636b2e55012020202d204265636f6d6520612072756e6e65722d75702e2052756e6e6572732d75707320617265207265736572766564206d656d6265727320696e2063617365206f6e65206765747320666f72636566756c6c7934202020202072656d6f7665642e002c2023203c7765696768743e60204261736520776569676874203d2033332e333320c2b573a420436f6d706c6578697479206f662063616e6469646174655f636f756e743a20302e33373520c2b573342053746174652072656164733a5020092d2043616e646964617465732e6c656e28293820092d2043616e646964617465732c20092d204d656d626572733420092d2052756e6e65727355706420092d205b4163636f756e7442616c616e63652877686f295d38205374617465207772697465733a6420092d205b4163636f756e7442616c616e63652877686f295d3820092d2043616e64696461746573302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379042872656e6f756e63696e672852656e6f756e63696e679851012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a4101202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c2074686520626f6e64206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e5901202d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c2074686520626f6e6420697320756e72657365727665642c2072657475726e656420616e64902020206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e4d01202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c2074686520626f6e6420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f766f746572605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c7920757365642e24203c7765696768743e7820496620612063616e6469646174652069732072656e6f756e63696e673a60200942617365207765696768743a2031372e323820c2b573a82009436f6d706c6578697479206f662063616e6469646174655f636f756e743a20302e32333520c2b57338200953746174652072656164733a3c2009092d2043616e64696461746573982009092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665295d3c20095374617465207772697465733a3c2009092d2043616e64696461746573982009092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665295d64204966206d656d6265722069732072656e6f756e63696e673a60200942617365207765696768743a2034362e323520c2b57338200953746174652072656164733ad02009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d3c20095374617465207772697465733ad02009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d642049662072756e6e65722069732072656e6f756e63696e673a60200942617365207765696768743a2034362e323520c2b57338200953746174652072656164733aac2009092d2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d3c20095374617465207772697465733aac2009092d2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d000d0120576569676874206e6f74653a205468652063616c6c20696e746f206368616e67654d656d62657273206e65656420746f206265206163636f756e74656420666f722e28203c2f7765696768743e3472656d6f76655f6d656d626572080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653c6861735f7265706c6163656d656e7410626f6f6c485d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c61636573207468650101206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e6820496620776520686176652061207265706c6163656d656e743a6820092d2042617365207765696768743a2035302e393320c2b5734020092d2053746174652072656164733a502009092d2052756e6e65727355702e6c656e2829cc2009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572294420092d205374617465207772697465733acc2009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d62657229650120456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e642077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e302023203c2f7765696768743e01141c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e1061012041206e6577207465726d2077697468205b6e65775f6d656d626572735d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e20746865590120656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e656420666f726101207468697320707572706f73652e204120604e65775465726d285b5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e6420736c617368656420616e645901206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f20626567696e20776974682e24456d7074795465726d00083501204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc420604e65775465726d285b5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e304d656d6265724b69636b656404244163636f756e744964084d012041205b6d656d6265725d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f74342060456d7074795465726d602e3c4d656d62657252656e6f756e63656404244163636f756e74496404a82041205b6d656d6265725d206861732072656e6f756e6365642074686569722063616e6469646163792e34566f7465725265706f727465640c244163636f756e744964244163636f756e74496410626f6f6c080901204120766f74657220776173207265706f7274656420776974682074686520746865207265706f7274206265696e67207375636365737366756c206f72206e6f742e6c205b766f7465722c207265706f727465722c20737563636573735d183443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d030000000000000000000028566f74696e67426f6e643042616c616e63654f663c543e4000407a10f35a000000000000000000000038446573697265644d656d626572730c753332100d00000000404465736972656452756e6e65727355700c753332100700000000305465726d4475726174696f6e38543a3a426c6f636b4e756d626572108013030000204d6f64756c654964384c6f636b4964656e74696669657220706872656c656374004430556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3052756e6e65725375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d6265720438204e6f742061206d656d6265722e54496e76616c696443616e646964617465436f756e7404e4205468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e7404d0205468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67040101205468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e740401012050726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970081c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000030543a3a4163636f756e744964040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e011c286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00a0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e74496414c02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a4204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e001101205072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b6579040c6e657730543a3a4163636f756e74496414d82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e002101205072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d65040c77686f30543a3a4163636f756e7449640cc02053657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d65000c982052656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e00003c46696e616c697479547261636b65720001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d626572106500000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657210e8030000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e0838416c72656164795570646174656404c82046696e616c2068696e74206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b1c42616448696e7404902046696e616c697a6564206865696768742061626f766520626c6f636b206e756d6265721c4772616e647061013c4772616e64706146696e616c6974791814537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001051453657449643053657373696f6e496e6465780004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66240d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e00110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e306e6f74655f7374616c6c6564081464656c617938543a3a426c6f636b4e756d6265726c626573745f66696e616c697a65645f626c6f636b5f6e756d62657238543a3a426c6f636b4e756d6265721c1d01204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c69747920676164676574206861732901207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e672101206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c617915012073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e6720746865290120666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f7465727329012077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e5c204f6e6c792063616c6c61626c6520627920726f6f742e010c384e6577417574686f7269746965730434417574686f726974794c69737404d0204e657720617574686f726974792073657420686173206265656e206170706c6965642e205b617574686f726974795f7365745d1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e001c2c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e20547265617375727901205472656173757279143450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001053450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e10546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c59012054697073207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001061c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01203470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129b4202d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460ec202d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e7460302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e24fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129d0202d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d4202d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e285d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e50202d20436f6d706c65786974793a204f2831292e90202d20446252656164733a206050726f706f73616c73602c2060417070726f76616c73605c202d20446257726974653a2060417070726f76616c7360302023203c2f7765696768743e387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173d420605469705265706f72744465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743ecc202d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e942020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e27c4202d20446252656164733a2060526561736f6e73602c206054697073602c206077686f206163636f756e742064617461609c202d2044625772697465733a206054697073602c206077686f206163636f756e74206461746160302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960dc2020202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e90202d20446252656164733a206054697073602c20606f726967696e206163636f756e7460c0202d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e7460302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c75653042616c616e63654f663c543e58f4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e5501202d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732ec02020202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e6774682060546009012020202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e0d0120202020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ee42020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e6774682060526080202d20446252656164733a206054697070657273602c2060526561736f6e736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c75653042616c616e63654f663c543e64b4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e15012020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e00610120202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d4202020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e74202d20446252656164733a206054697070657273602c206054697073604c202d2044625772697465733a20605469707360302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368446020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e9c2020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602eac202d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260dc202d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e64657260302023203c2f7765696768743e012c2050726f706f736564043450726f706f73616c496e646578047c204e65772070726f706f73616c2e205b70726f706f73616c5f696e6465785d205370656e64696e67041c42616c616e6365043501205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205b6275646765745f72656d61696e696e675d1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e74496404150120536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795d2052656a6563746564083450726f706f73616c496e6465781c42616c616e6365041d0120412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205b70726f706f73616c5f696e6465782c20736c61736865645d144275726e74041c42616c616e636504a820536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205b6275726e5d20526f6c6c6f766572041c42616c616e6365047d01205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e205b6275646765745f72656d61696e696e675d1c4465706f736974041c42616c616e636504a820536f6d652066756e64732068617665206265656e206465706f73697465642e205b6465706f7369745d184e657754697004104861736804c42041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205b7469705f686173685d28546970436c6f73696e670410486173680409012041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205b7469705f686173685d24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504e82041207469702073756767657374696f6e20686173206265656e20636c6f7365642e205b7469705f686173682c2077686f2c207061796f75745d3054697052657472616374656404104861736804c02041207469702073756767657374696f6e20686173206265656e207265747261637465642e205b7469705f686173685d243050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3042616c616e63654f663c543e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e30546970436f756e74646f776e38543a3a426c6f636b4e756d62657210807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e7404140431012054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e5c5469705265706f72744465706f736974506572427974653042616c616e63654f663c543e400010a5d4e800000000000000000000000409012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e2e204d6f64756c654964204d6f64756c6549642070792f7472737279041901205468652074726561737572792773206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e2070496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e50496e76616c696450726f706f73616c496e646578046c204e6f2070726f706f73616c206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e24436f6e7472616374730124436f6e747261637473143c43757272656e745363686564756c650100205363686564756c6535020000000020a107000000000020a107000000000020a107000000000020a107000000000020a107000000000020a107000000000020a1070000000000e0f7050400000000e024370500000000e0f705040000000020a107000000000020a107000000000080f0fa020000000000e1f505000000000400000000000100100000000040000000200000000000080004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001062c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001062c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010530543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e0004000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e01143c7570646174655f7363686564756c6504207363686564756c65205363686564756c650cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f64650410636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e74696174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28bd0120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e011830496e7374616e74696174656408244163636f756e744964244163636f756e74496404250120436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e205b6f776e65722c20636f6e74726163745d1c4576696374656408244163636f756e74496410626f6f6c1ce420436f6e747261637420686173206265656e206576696374656420616e64206973206e6f7720696e20746f6d6273746f6e652073746174652e58205b636f6e74726163742c20746f6d6273746f6e655d042024202320506172616d73000d01202d2060636f6e7472616374603a20604163636f756e744964603a20546865206163636f756e74204944206f6620746865206576696374656420636f6e74726163742e3501202d2060746f6d6273746f6e65603a2060626f6f6c603a205472756520696620746865206576696374656420636f6e7472616374206c65667420626568696e64206120746f6d6273746f6e652e20526573746f72656410244163636f756e744964244163636f756e74496410486173681c42616c616e636524c020526573746f726174696f6e20666f72206120636f6e747261637420686173206265656e207375636365737366756c2ea4205b646f6e6f722c20646573742c20636f64655f686173682c2072656e745f616c6c6f77616e63655d042024202320506172616d7300f4202d2060646f6e6f72603a20604163636f756e744964603a204163636f756e74204944206f662074686520726573746f72696e6720636f6e7472616374ec202d206064657374603a20604163636f756e744964603a204163636f756e74204944206f662074686520726573746f72656420636f6e7472616374e8202d2060636f64655f68617368603a206048617368603a20436f64652068617368206f662074686520726573746f72656420636f6e74726163741901202d206072656e745f616c6c6f77616e63653a206042616c616e6365603a2052656e7420616c6c6f77616e6365206f662074686520726573746f72656420636f6e747261637428436f646553746f72656404104861736808b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e30205b636f64655f686173685d3c5363686564756c6555706461746564040c75333204c820547269676765726564207768656e207468652063757272656e74205b7363686564756c655d20697320757064617465642e44436f6e7472616374457865637574696f6e08244163636f756e7449641c5665633c75383e08090120416e206576656e74206465706f73697465642075706f6e20657865637574696f6e206f66206120636f6e74726163742066726f6d20746865206163636f756e742e40205b6163636f756e742c20646174615d204c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000a0acb903000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f66667365740c753332100800000018710120412073697a65206f666673657420666f7220616e20636f6e74726163742e2041206a7573742063726561746564206163636f756e74207769746820756e746f75636865642073746f726167652077696c6c20686176652074686174e0206d756368206f662073746f726167652066726f6d20746865207065727370656374697665206f66207468652073746174652072656e742e006101205468697320697320612073696d706c652077617920746f20656e73757265207468617420636f6e747261637473207769746820656d7074792073746f72616765206576656e7475616c6c79206765742064656c657465646501206279206d616b696e67207468656d207061792072656e742e2054686973206372656174657320616e20696e63656e7469766520746f2072656d6f7665207468656d206561726c7920696e206f7264657220746f2073617665182072656e742e2c52656e74427974654665653042616c616e63654f663c543e4000286bee000000000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f66667365743042616c616e63654f663c543e400010a5d4e800000000000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c5375726368617267655265776172643042616c616e63654f663c543e40005cb2ec22000000000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e204d617844657074680c753332102000000008310120546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f696e7374616e746961746520737461636b2e204120726561736f6e61626c652064656661756c74382076616c7565206973203130302e304d617856616c756553697a650c753332100040000004390120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520696e2062797465732e204120726561736f6e61626c652064656661756c74206973203136204b69422e4858496e76616c69645363686564756c6556657273696f6e0405012041206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e54496e76616c6964537572636861726765436c61696d04550120416e206f726967696e206d757374206265207369676e6564206f7220696e686572656e7420616e6420617578696c696172792073656e646572206f6e6c792070726f7669646564206f6e20696e686572656e742e54496e76616c6964536f75726365436f6e747261637404dc2043616e6e6f7420726573746f72652066726f6d206e6f6e6578697374696e67206f7220746f6d6273746f6e6520636f6e74726163742e68496e76616c696444657374696e6174696f6e436f6e747261637404c42043616e6e6f7420726573746f726520746f206e6f6e6578697374696e67206f7220616c69766520636f6e74726163742e40496e76616c6964546f6d6273746f6e65046020546f6d6273746f6e657320646f6e2774206d617463682e54496e76616c6964436f6e74726163744f726967696e04bc20416e206f726967696e20547269654964207772697474656e20696e207468652063757272656e7420626c6f636b2e204f75744f6647617304bc2054686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c04050120546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e6442656c6f7753756273697374656e63655468726573686f6c6410210120506572666f726d696e672074686520726571756573746564207472616e7366657220776f756c6420686176652062726f756768742074686520636f6e74726163742062656c6f773d01207468652073756273697374656e6365207468726573686f6c642e204e6f207472616e7366657220697320616c6c6f77656420746f20646f207468697320696e206f7264657220746f20616c6c6f77450120666f72206120746f6d6273746f6e6520746f20626520637265617465642e2055736520607365616c5f7465726d696e6174656020746f2072656d6f7665206120636f6e747261637420776974686f757470206c656176696e67206120746f6d6273746f6e6520626568696e642e504e6577436f6e74726163744e6f7446756e64656408390120546865206e65776c79206372656174656420636f6e74726163742069732062656c6f77207468652073756273697374656e6365207468726573686f6c6420616674657220657865637574696e6721012069747320636f6e74727563746f722e204e6f20636f6e7472616374732061726520616c6c6f77656420746f2065786973742062656c6f772074686174207468726573686f6c642e385472616e736665724661696c65640c250120506572666f726d696e672074686520726571756573746564207472616e73666572206661696c656420666f72206120726561736f6e206f726967696e6174696e6720696e2074686531012063686f73656e2063757272656e637920696d706c656d656e746174696f6e206f66207468652072756e74696d652e204d6f73742070726f6261626c79207468652062616c616e63652069738c20746f6f206c6f77206f72206c6f636b732061726520706c61636564206f6e2069742e4c4d617843616c6c44657074685265616368656408250120506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d697498206f6620776861742069732073706563696669656420696e20746865207363686564756c652e2c4e6f7443616c6c61626c650831012054686520636f6e74726163742074686174207761732063616c6c656420697320656974686572206e6f20636f6e747261637420617420616c6c20286120706c61696e206163636f756e74294c206f72206973206120746f6d6273746f6e652e30436f6465546f6f4c617267650455012054686520636f646520737570706c69656420746f20607075745f636f646560206578636565647320746865206c696d69742073706563696669656420696e207468652063757272656e74207363686564756c652e30436f64654e6f74466f756e6404c8204e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473042901204120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564042d0120496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564048c20436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0110107375646f041063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e547375646f5f756e636865636b65645f776569676874081063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e1c5f776569676874185765696768742839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e310120546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b4205375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292ed0202d2054686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e010c14537564696404384469737061746368526573756c7404842041207375646f206a75737420746f6f6b20706c6163652e205b726573756c745d284b65794368616e67656404244163636f756e74496404f820546865205b7375646f65725d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e650410626f6f6c04842041207375646f206a75737420746f6f6b20706c6163652e205b726573756c745d00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e7420496d4f6e6c696e650120496d4f6e6c696e6510384865617274626561744166746572010038543a3a426c6f636b4e756d62657210000000001831012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e2063757272656e742073657373696f6e2e0011012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c64d02066616c6c20726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e010120546865206964656120697320746f206669727374207761697420666f72207468652076616c696461746f727320746f2070726f64756365206120626c6f636b390120696e207468652063757272656e742073657373696f6e2c20736f20746861742074686520686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002053053657373696f6e496e6465782441757468496e6465781c5665633c75383e05040008f020466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e6465786020746f8020606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102053053657373696f6e496e64657838543a3a56616c696461746f7249640c75333205100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f662060543a3a56616c696461746f7249646020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265282c2023203c7765696768743e2101202d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020616e642045206973206c656e677468206f66b4202020604865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f6164647265737360008c2020202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60b02020202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e677468206045603d01202d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5c202020605265636569766564486561727462656174736084202d2044625772697465733a206052656365697665644865617274626561747360302023203c2f7765696768743e010c444865617274626561745265636569766564042c417574686f72697479496404fc2041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205b617574686f726974795f69645d1c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e0435012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205b6f66666c696e655d2e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e48417574686f72697479446973636f76657279000100000000204f6666656e63657301204f6666656e636573101c5265706f727473000105345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e4044656665727265644f6666656e6365730100645665633c44656665727265644f6666656e63654f663c543e3e0400086501204465666572726564207265706f72747320746861742068617665206265656e2072656a656374656420627920746865206f6666656e63652068616e646c657220616e64206e65656420746f206265207375626d6974746564442061742061206c617465722074696d652e58436f6e63757272656e745265706f727473496e646578010205104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010105104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e63650c104b696e64384f706171756554696d65536c6f7410626f6f6c10550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e644d0120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e206c6173741d0120656c656d656e7420696e64696361746573206f6620746865206f6666656e636520776173206170706c69656420287472756529206f7220717565756564202866616c736529206c205b6b696e642c2074696d65736c6f742c206170706c6965645d2e000028486973746f726963616c00000000006052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e0100000000204964656e7469747901204964656e7469747910284964656e746974794f6600010530543a3a4163636f756e74496468526567697374726174696f6e3c42616c616e63654f663c543e3e0004000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010230543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010530543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e290044000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100d85665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e3e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e00010120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743e2901202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666f304964656e74697479496e666f4c2d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2858202b205827202b2052296021012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e42020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e6465642984202d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e2501202d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e54902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e00b4202d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002c2023203c7765696768743e34202d20604f2850202b20532960e82020202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e18202d2044423ae02020202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029c02020202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec42020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed42020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e302023203c2f7765696768743e38636c6561725f6964656e7469747900483d0120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e44202d20604f2852202b2053202b20582960d02020202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e25012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e8c202d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ecc202d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65bc2053656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e30202d204f6e65206576656e74302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e341d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496434c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee4202d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647334ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00fc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e1c6164645f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106461746110446174611cb0204164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656e616d655f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651064617461104461746110d020416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656d6f76655f737562040c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651cc42052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e20717569745f7375620028902052656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b820746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564402073757065722d6964656e746974792e004901204e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d150120636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e01282c4964656e7469747953657404244163636f756e7449640409012041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205b77686f5d3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e6365040d012041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205b77686f2c206465706f7369745d384964656e746974794b696c6c656408244163636f756e7449641c42616c616e63650405012041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205b77686f2c206465706f7369745d484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e64657804fc2041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205b77686f2c207265676973747261725f696e6465785d504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e64657804e82041206a756467656d656e74207265717565737420776173207265747261637465642e205b77686f2c207265676973747261725f696e6465785d384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e6465780401012041206a756467656d656e742077617320676976656e2062792061207265676973747261722e205b7461726765742c207265676973747261725f696e6465785d3852656769737472617241646465640438526567697374726172496e64657804a4204120726567697374726172207761732061646465642e205b7265676973747261725f696e6465785d405375624964656e7469747941646465640c244163636f756e744964244163636f756e7449641c42616c616e6365044d012041207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205b7375622c206d61696e2c206465706f7369745d485375624964656e7469747952656d6f7665640c244163636f756e744964244163636f756e7449641c42616c616e6365080d012041207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e54205b7375622c206d61696e2c206465706f7369745d485375624964656e746974795265766f6b65640c244163636f756e744964244163636f756e7449641c42616c616e6365081d012041207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d207468652101206d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205b7375622c206d61696e2c206465706f7369745d183042617369634465706f7369743042616c616e63654f663c543e400080c6a47e8d0300000000000000000004d82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e746974792e304669656c644465706f7369743042616c616e63654f663c543e4000a031a95fe300000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f7369743042616c616e63654f663c543e400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637471012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c206265290120616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e74730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c64730c7533321064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d6178526567697374726172730c7533321014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e4048546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473047020546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e795265676973747261727304ec204d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d65640474204163636f756e7420494420697320616c7265616479206e616d65642e184e6f7453756204742053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564048c205375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e1c536f6369657479011c536f6369657479401c466f756e646572000030543a3a4163636f756e7449640400044820546865206669727374206d656d6265722e1452756c657300001c543a3a48617368040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e0400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010530543a3a4163636f756e744964e42842616c616e63654f663c542c20493e2c204269644b696e643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e2900040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f7401003c42616c616e63654f663c542c20493e400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000030543a3a4163636f756e744964040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d626572730100445665633c543a3a4163636f756e7449643e04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d6265727301010530543a3a4163636f756e74496410626f6f6c00040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010530543a3a4163636f756e74496438566f756368696e6753746174757300040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f75747301010530543a3a4163636f756e744964985665633c28543a3a426c6f636b4e756d6265722c2042616c616e63654f663c542c20493e293e000400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b657301010530543a3a4163636f756e7449642c537472696b65436f756e7400100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f74657300020530543a3a4163636f756e74496430543a3a4163636f756e74496410566f746505040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000030543a3a4163636f756e744964040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010530543a3a4163636f756e74496410566f7465000400046020566f74657320666f722074686520646566656e6465722e284d61784d656d6265727301000c753332100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e01300c626964041476616c75653c42616c616e63654f663c542c20493e84e020412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e003901205061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564f0207768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a5901202d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002c2023203c7765696768743e5501204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520726573657276652944202d2053746f726167652052656164733aec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d2948202d2053746f72616765205772697465733a810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6820092d204f6e65206576656e7420666f72206e6577206269642efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e14756e626964040c706f730c7533324cd82041206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792e010120427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f728420746865792077696c6c20756e766f75636820746865697220766f75636865722e00fc205061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e003020506172616d65746572733a1901202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002c2023203c7765696768743eb0204b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e72657365727665290d01202d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f2842294501202d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2842202b205829302023203c2f7765696768743e14766f7563680c0c77686f30543a3a4163636f756e7449641476616c75653c42616c616e63654f663c542c20493e0c7469703c42616c616e63654f663c542c20493eb045012041732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e005501205468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f725d01206f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062794101207468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e005901204173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c51012062652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733acc202d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e5101202d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d65642061206d656d62657220696e2074686520736f63696574792e4901202d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f15012074686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002c2023203c7765696768743e0101204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732944202d2053746f726167652052656164733ac820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29090120092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129ec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f28432948202d2053746f72616765205772697465733a0d0120092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f283129810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3ac020092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6020092d204f6e65206576656e7420666f7220766f7563682efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e1c756e766f756368040c706f730c753332442d01204173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f7563686564207573657220697394206f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e003020506172616d65746572733a2d01202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002c2023203c7765696768743e54204b65793a204220286c656e206f662062696473290901202d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722eec202d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422994202d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f284229302023203c2f7765696768743e10766f7465082463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c617070726f766510626f6f6c4c882041732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733a0d01202d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2ef4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265d82020202020202020202020202020617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743ebc204b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e58202d204f6e65206163636f756e74206c6f6f6b75702e2d01202d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204329302023203c2f7765696768743e34646566656e6465725f766f7465041c617070726f766510626f6f6c408c2041732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733af4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a420617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743e68202d204b65793a204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e007820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d29302023203c2f7765696768743e187061796f757400504501205472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e006901204e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e002101205061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d61747572656478207061796f757420746f20746865697220667265652062616c616e63652e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d62657220776974684c207061796f7574732072656d61696e696e672e002c2023203c7765696768743e1d01204b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d626572292501202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e8c202d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858291101202d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f285029009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b205829302023203c2f7765696768743e14666f756e640c1c666f756e64657230543a3a4163636f756e7449642c6d61785f6d656d626572730c7533321472756c65731c5665633c75383e4c4c20466f756e642074686520736f63696574792e00f0205468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f72207468651901206d6f64756c6520746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e003020506172616d65746572733a1901202d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e1501202d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef4202d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002c2023203c7765696768743ee0202d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f4202d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e1c756e666f756e6400348c20416e6e756c2074686520666f756e64696e67206f662074686520736f63696574792e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f74685901207468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e6520206d656d6265722e002c2023203c7765696768743e68202d2054776f2073746f72616765207265616473204f2831292e78202d20466f75722073746f726167652072656d6f76616c73204f2831292e34202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e586a756467655f73757370656e6465645f6d656d626572080c77686f30543a3a4163636f756e7449641c666f726769766510626f6f6c6c2d0120416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e00590120496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67cc20616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e00490120496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e670101207468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ab4202d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e3501202d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e2501202020202020202020202020202020666f726769766573202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002c2023203c7765696768743ea4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f8202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f2831297101202d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f20736f63696574792ef8202d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e4501202d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e70202d204f6e652073746f726167652072656d6f76616c2e204f2831297c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204229302023203c2f7765696768743e646a756467655f73757370656e6465645f63616e646964617465080c77686f30543a3a4163636f756e744964246a756467656d656e74244a756467656d656e74a0350120416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005d0120496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f70726961746574207061796d656e7420666f72206a6f696e696e6720736f63696574792e00550120496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b110120746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005d0120496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f94207468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ac0202d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec4202d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002c2023203c7765696768743ef4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29f0202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec8202d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e40202d20417070726f7665204c6f676963150120092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129dc20092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e820092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b420092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d29a020092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eb020092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4d0120092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e3c202d2052656a656374204c6f676963dc20092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292d0120092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e38202d205265626964204c6f676963410120092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e5c202d204f6e652073746f726167652072656d6f76616c2e7c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b205829302023203c2f7765696768743e3c7365745f6d61785f6d656d62657273040c6d61780c753332381d0120416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb4204d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00dc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e003020506172616d65746572733ae4202d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002c2023203c7765696768743eb0202d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e01401c466f756e64656404244163636f756e74496404e02054686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e205b666f756e6465725d0c42696408244163636f756e7449641c42616c616e63650861012041206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f666665729420697320746865207365636f6e642e205b63616e6469646174655f69642c206f666665725d14566f7563680c244163636f756e7449641c42616c616e6365244163636f756e7449640861012041206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e647101207468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e205b63616e6469646174655f69642c206f666665722c20766f756368696e675d244175746f556e62696404244163636f756e7449640411012041205b63616e6469646174655d207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404244163636f756e74496404b82041205b63616e6469646174655d207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804244163636f756e7449640401012041205b63616e6469646174655d207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408244163636f756e744964385665633c4163636f756e7449643e08590120412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c20746865cc20626174636820696e2066756c6c20697320746865207365636f6e642e205b7072696d6172792c2063616e646964617465735d6053757370656e6465644d656d6265724a756467656d656e7408244163636f756e74496410626f6f6c04c820412073757370656e646564206d656d62657220686173206265656e206a75646765642e205b77686f2c206a75646765645d4843616e64696461746553757370656e64656404244163636f756e74496404842041205b63616e6469646174655d20686173206265656e2073757370656e6465643c4d656d62657253757370656e64656404244163636f756e74496404782041205b6d656d6265725d20686173206265656e2073757370656e646564284368616c6c656e67656404244163636f756e744964047c2041205b6d656d6265725d20686173206265656e206368616c6c656e67656410566f74650c244163636f756e744964244163636f756e74496410626f6f6c04c0204120766f746520686173206265656e20706c61636564205b63616e6469646174652c20766f7465722c20766f74655d30446566656e646572566f746508244163636f756e74496410626f6f6c04f0204120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572205b766f7465722c20766f74655d344e65774d61784d656d62657273040c75333204982041206e6577205b6d61785d206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404244163636f756e744964048020536f636965747920697320756e666f756e6465642e205b666f756e6465725d1c4465706f736974041c42616c616e636504f020536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e205b76616c75655d1c4043616e6469646174654465706f7369743c42616c616e63654f663c542c20493e400080c6a47e8d0300000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e3c42616c616e63654f663c542c20493e400080f420e6b5000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b65730c753332100a00000008750120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e207468657920617265206120736b65707469632978206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e643c42616c616e63654f663c542c20493e400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6438543a3a426c6f636b4e756d626572100077010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4368616c6c656e6765506572696f6438543a3a426c6f636b4e756d626572108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e204d6f64756c654964204d6f64756c6549642070792f736f63696504682054686520736f636965746965732773206d6f64756c65206964482c426164506f736974696f6e049020416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d62657204582055736572206973206e6f742061206d656d6265722e34416c72656164794d656d6265720468205573657220697320616c72656164792061206d656d6265722e2453757370656e646564044c20557365722069732073757370656e6465642e304e6f7453757370656e646564045c2055736572206973206e6f742073757370656e6465642e204e6f5061796f7574044c204e6f7468696e6720746f207061796f75742e38416c7265616479466f756e646564046420536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74049c204e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e6704e8204d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670460204d656d626572206973206e6f7420766f756368696e672e104865616404942043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572046c2043616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964047420557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e6469646174650474205573657220697320616c726561647920612063616e6469646174652e304e6f7443616e64696461746504642055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273048420546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572047c205468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640470205468652063616c6c6572206973206e6f742074686520686561642e205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010530543a3a4163636f756e744964e85265636f76657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e0004000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300020530543a3a4163636f756e74496430543a3a4163636f756e744964e84163746976655265636f766572793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e050400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010230543a3a4163636f756e74496430543a3a4163636f756e7449640004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01243061735f7265636f7665726564081c6163636f756e7430543a3a4163636f756e7449641063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e34a42053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a2501202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662e0101202d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002c2023203c7765696768743e94202d2054686520776569676874206f6620746865206063616c6c60202b2031302c3030302e0901202d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e347365745f7265636f766572656408106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e744964341d0120416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e747420666f722061206c6f7374206163636f756e74206469726563746c792e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e003020506172616d65746572733ab8202d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e1d01202d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002c2023203c7765696768743e64202d204f6e652073746f72616765207772697465204f28312930202d204f6e65206576656e74302023203c2f7765696768743e3c6372656174655f7265636f766572790c1c667269656e6473445665633c543a3a4163636f756e7449643e247468726573686f6c640c7531363064656c61795f706572696f6438543a3a426c6f636b4e756d6265726c5d01204372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e003101205061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e636549012077696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564bc20696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2501202d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732ed420202053686f756c64206265206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e3101202d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d70741d012020206265666f726520746865206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f94202020746865206c656e677468206f6620746865206c697374206f6620667269656e64732e3d01202d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a6564e820202074686174206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002c2023203c7765696768743e68202d204b65793a204620286c656e206f6620667269656e6473292d01202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292eec202d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f2846299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f2858299c202d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e44696e6974696174655f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496458ec20496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e001d01205061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e67207468652501207265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b820747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e7401012020206e6565647320746f206265207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743ef8202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846295101202d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f2831299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831296c202d204f6e652073746f726167652077726974652e204f2831292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e38766f7563685f7265636f7665727908106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e74496464290120416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f76657279682070726f6365737320666f722074686174206163636f756e742e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e64227420666f7220746865207265636f76657261626c65206163636f756e742e003020506172616d65746572733ad4202d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f755420202077616e7420746f20766f75636820666f722e0025012054686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f76657279242070726f636573732e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629ec202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f6746291d01202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f6756299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e00a420546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f675629302023203c2f7765696768743e38636c61696d5f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496450f420416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061202272657363756572221d012077686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c6563746564310120607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e003020506172616d65746572733a2d01202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79502020207265636f766572656420627920796f752e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205629302023203c2f7765696768743e38636c6f73655f7265636f76657279041c7265736375657230543a3a4163636f756e7449645015012041732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f76657279682070726f6365737320666f7220796f7572206163636f756e742e002101205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f820746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061f0207265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e003020506172616d65746572733a1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002c2023203c7765696768743e84204b65793a205620286c656e206f6620766f756368696e6720667269656e6473293d01202d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629c0202d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2856202b205829302023203c2f7765696768743e3c72656d6f76655f7265636f7665727900545d012052656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e001501204e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c206163746976650901207265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e002501205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e7265736572766598207468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef4202860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732900050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e4207265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743e60204b65793a204620286c656e206f6620667269656e6473292901202d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f2831293901202d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846299c202d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e4063616e63656c5f7265636f7665726564041c6163636f756e7430543a3a4163636f756e7449642ce02043616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a1901202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e002c2023203c7765696768743e1101202d204f6e652073746f72616765206d75746174696f6e20746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e01183c5265636f766572794372656174656404244163636f756e74496404d42041207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e205b6163636f756e745d2e445265636f76657279496e6974696174656408244163636f756e744964244163636f756e744964082d012041207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e40205b6c6f73742c20726573637565725d3c5265636f76657279566f75636865640c244163636f756e744964244163636f756e744964244163636f756e744964085d012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e60205b6c6f73742c20726573637565722c2073656e6465725d385265636f76657279436c6f73656408244163636f756e744964244163636f756e7449640821012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e40205b6c6f73742c20726573637565725d404163636f756e745265636f766572656408244163636f756e744964244163636f756e744964080501204c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e40205b6c6f73742c20726573637565725d3c5265636f7665727952656d6f76656404244163636f756e74496404d82041207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e205b6163636f756e745d2e1044436f6e6669674465706f736974426173653042616c616e63654f663c543e4000406352bfc60100000000000000000004550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e4c467269656e644465706f736974466163746f723042616c616e63654f663c543e4000203d88792d000000000000000000000469012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e284d6178467269656e64730c753136080900040d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e3c5265636f766572794465706f7369743042616c616e63654f663c543e4000406352bfc601000000000000000000041d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e40284e6f74416c6c6f77656404f42055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640490205468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e647304d420467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e647304ac20467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f7274656404cc20467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c6504a02054686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c6504b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c72656164795374617274656404e02041207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f745374617274656404d02041207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e6404ac2054686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64041d012054686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f756368656404c0205468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c6404ec20546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c41637469766504010120546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f736564204f766572666c6f77049c2054686572652077617320616e206f766572666c6f7720696e20612063616c63756c6174696f6e30416c726561647950726f787904b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f766572791c56657374696e67011c56657374696e67041c56657374696e6700010230543a3a4163636f756e744964a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e011010766573740044bc20556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c68206c6f636b656420756e6465722074686973206d6f64756c652e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20322052656164732c203220577269746573fc20202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d010120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d34202d2042656e63686d61726b3aec20202020202d20556e6c6f636b65643a2034382e3736202b202e303438202a206c20c2b57320286d696e2073717561726520616e616c7973697329e420202020202d204c6f636b65643a2034342e3433202b202e323834202a206c20c2b57320286d696e2073717561726520616e616c7973697329ad01202d205573696e6720353020c2b5732066697865642e20417373756d696e67206c657373207468616e203530206c6f636b73206f6e20616e7920757365722c20656c7365207765206d61792077616e7420666163746f7220696e206e756d626572206f66206c6f636b732e302023203c2f7765696768743e28766573745f6f7468657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654cbc20556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501202d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c68206c6f636b656420756e6465722074686973206d6f64756c652e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c203320577269746573f420202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f820202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e7434202d2042656e63686d61726b3ae820202020202d20556e6c6f636b65643a2034342e33202b202e323934202a206c20c2b57320286d696e2073717561726520616e616c7973697329e420202020202d204c6f636b65643a2034382e3136202b202e313033202a206c20c2b57320286d696e2073717561726520616e616c7973697329ad01202d205573696e6720353020c2b5732066697865642e20417373756d696e67206c657373207468616e203530206c6f636b73206f6e20616e7920757365722c20656c7365207765206d61792077616e7420666163746f7220696e206e756d626572206f66206c6f636b732e302023203c2f7765696768743e3c7665737465645f7472616e7366657208187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e486820437265617465206120766573746564207472616e736665722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e001501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c2033205772697465733d0120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d410120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745de0202d2042656e63686d61726b3a203130302e33202b202e333635202a206c20c2b57320286d696e2073717561726520616e616c7973697329b101202d205573696e672031303020c2b5732066697865642e20417373756d696e67206c657373207468616e203530206c6f636b73206f6e20616e7920757365722c20656c7365207765206d61792077616e7420666163746f7220696e206e756d626572206f66206c6f636b732e302023203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e4c6420466f726365206120766573746564207472616e736665722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00ec202d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e1501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20342052656164732c203420577269746573350120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74390120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74e0202d2042656e63686d61726b3a203130302e33202b202e333635202a206c20c2b57320286d696e2073717561726520616e616c7973697329b101202d205573696e672031303020c2b5732066697865642e20417373756d696e67206c657373207468616e203530206c6f636b73206f6e20616e7920757365722c20656c7365207765206d61792077616e7420666163746f7220696e206e756d626572206f66206c6f636b732e302023203c2f7765696768743e01083856657374696e675570646174656408244163636f756e7449641c42616c616e63650c59012054686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e646963617465206d6f72652066756e64732061726520617661696c61626c652e205468651d012062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e2050205b6163636f756e742c20756e7665737465645d4056657374696e67436f6d706c6574656404244163636f756e74496404150120416e205b6163636f756e745d20686173206265636f6d652066756c6c79207665737465642e204e6f20667572746865722076657374696e672063616e2068617070656e2e04444d696e5665737465645472616e736665723042616c616e63654f663c543e400000c16ff28623000000000000000000041d0120546865206d696e696d756d20616d6f756e7420746f206265207472616e7366657272656420746f206372656174652061206e65772076657374696e67207363686564756c652e0c284e6f7456657374696e67048820546865206163636f756e7420676976656e206973206e6f742076657374696e672e5c4578697374696e6756657374696e675363686564756c65045d0120416e206578697374696e672076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e7420746861742063616e6e6f7420626520636c6f6262657265642e24416d6f756e744c6f7704090120416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e245363686564756c657201245363686564756c65720c184167656e646101010538543a3a426c6f636b4e756d6265726d015665633c4f7074696f6e3c5363686564756c65643c3c542061732054726169743e3a3a43616c6c2c20543a3a426c6f636b4e756d6265722c20543a3a0a50616c6c6574734f726967696e2c20543a3a4163636f756e7449643e3e3e000400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001051c5665633c75383e6c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e0118207363686564756c6510107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e287420416e6f6e796d6f75736c79207363686564756c652061207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7390202d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64615020202020202d2057726974653a204167656e64613d01202d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e1863616e63656c08107768656e38543a3a426c6f636b4e756d62657214696e6465780c75333228982043616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64617020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f6e616d6564140869641c5665633c75383e107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e285c205363686564756c652061206e616d6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c202d2042617365205765696768743a2032392e36202b202e313539202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704d01202d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c73302023203c2f7765696768743e3063616e63656c5f6e616d6564040869641c5665633c75383e287c2043616e63656c2061206e616d6564207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f61667465721014616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e14ac20416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002c2023203c7765696768743e582053616d65206173205b607363686564756c65605d2e302023203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140869641c5665633c75383e14616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e1494205363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002c2023203c7765696768743e702053616d65206173205b607363686564756c655f6e616d6564605d2e302023203c2f7765696768743e010c245363686564756c6564082c426c6f636b4e756d6265720c753332048c205363686564756c656420736f6d65207461736b2e205b7768656e2c20696e6465785d2043616e63656c6564082c426c6f636b4e756d6265720c75333204882043616e63656c656420736f6d65207461736b2e205b7768656e2c20696e6465785d28446973706174636865640c605461736b416464726573733c426c6f636b4e756d6265723e3c4f7074696f6e3c5665633c75383e3e384469737061746368526573756c7404a4204469737061746368656420736f6d65207461736b2e205b7461736b2c2069642c20726573756c745d000c404661696c6564546f5363686564756c650468204661696c656420746f207363686564756c6520612063616c6c384661696c6564546f43616e63656c0488204661696c656420746f2063616e63656c2061207363686564756c65642063616c6c5c546172676574426c6f636b4e756d626572496e5061737404a820476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e1450726f7879011450726f7879041c50726f7869657301010530543a3a4163636f756e744964c4285665633c28543a3a4163636f756e7449642c20543a3a50726f787954797065293e2c2042616c616e63654f663c543e29004400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e01181470726f78790c107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e4051012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743ea0205020697320746865206e756d626572206f662070726f786965732074686520757365722068617390202d2042617365207765696768743a2031392e3837202b202e313431202a205020c2b57374202d204442207765696768743a20312073746f7261676520726561642e80202d20506c75732074686520776569676874206f6620746865206063616c6c60302023203c2f7765696768743e246164645f70726f7879081470726f787930543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706534490120526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792e0101202d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e002c2023203c7765696768743ea0205020697320746865206e756d626572206f662070726f786965732074686520757365722068617390202d2042617365207765696768743a2031372e3438202b202e313736202a205020c2b5739c202d204442207765696768743a20312073746f72616765207265616420616e642077726974652e302023203c2f7765696768743e3072656d6f76655f70726f7879081470726f787930543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706534ac20556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2901202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e4501202d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002c2023203c7765696768743ea0205020697320746865206e756d626572206f662070726f786965732074686520757365722068617390202d2042617365207765696768743a2031342e3337202b202e313634202a205020c2b5739c202d204442207765696768743a20312073746f72616765207265616420616e642077726974652e302023203c2f7765696768743e3872656d6f76655f70726f786965730030b820556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901205741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e5d012074686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002c2023203c7765696768743ea0205020697320746865206e756d626572206f662070726f786965732074686520757365722068617390202d2042617365207765696768743a2031332e3733202b202e313239202a205020c2b5739c202d204442207765696768743a20312073746f72616765207265616420616e642077726974652e302023203c2f7765696768743e24616e6f6e796d6f7573082870726f78795f7479706530543a3a50726f78795479706514696e6465780c753136583d0120537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64010120696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e0070205265717569726573206120605369676e656460206f726967696e2e005501202d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468655101206e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f7c20616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e5501202d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d656101207472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a757374442077616e7420746f20757365206030602e005501204661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659c2073616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e8204661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002c2023203c7765696768743ea0205020697320746865206e756d626572206f662070726f786965732074686520757365722068617390202d2042617365207765696768743a2033362e3438202b202e303339202a205020c2b5739c202d204442207765696768743a20312073746f72616765207265616420616e642077726974652e302023203c2f7765696768743e386b696c6c5f616e6f6e796d6f7573141c737061776e657230543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706514696e6465780c753136186865696768745c436f6d706163743c543a3a426c6f636b4e756d6265723e246578745f696e64657830436f6d706163743c7533323e58b82052656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e004d01205741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c2062653820696e61636365737369626c652e005d01205265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fac2060616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e005101202d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e5101202d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e0501202d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e4101202d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e4d01202d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e004d01204661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f4206163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002c2023203c7765696768743ea0205020697320746865206e756d626572206f662070726f786965732074686520757365722068617390202d2042617365207765696768743a2031352e3635202b202e313337202a205020c2b5739c202d204442207765696768743a20312073746f72616765207265616420616e642077726974652e302023203c2f7765696768743e01083450726f7879457865637574656404384469737061746368526573756c7404e420412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205b726573756c745d2e40416e6f6e796d6f75734372656174656410244163636f756e744964244163636f756e7449642450726f7879547970650c75313608ec20416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e610120646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c20646973616d626967756174696f6e5f696e6465785d0c4050726f78794465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000004110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e4850726f78794465706f736974466163746f723042616c616e63654f663c543e400060aa7714b40000000000000000000004bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e284d617850726f786965730c75313608200004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e181c546f6f4d616e79049c2054686572652061726520746f6f206d616e792070726f7869657320726567697374657265642e204e6f74466f756e6404782050726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f787904d02053656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c6504250120412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650470204163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e0419012043616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e204d756c746973696701204d756c746973696708244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c73000106205b75383b2033325da0284f706171756543616c6c2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e290004000001105061735f6d756c74695f7468726573686f6c645f3108446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e44550120496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e004101202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468650501206d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00bc20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002c2023203c7765696768743e1d01204f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d2042617365205765696768743a2033332e3732202b20302e303032202a205a20c2b57348202d204442205765696768743a204e6f6e654c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e2061735f6d756c746918247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c284f706171756543616c6c2873746f72655f63616c6c10626f6f6c286d61785f77656967687418576569676874cc590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743ae020202020202d204372656174653a2020202020202020202034312e3839202b20302e313138202a2053202b202e303032202a205a20c2b573e020202020202d2043726561746520772f2053746f72653a2035332e3537202b20302e313139202a2053202b202e303033202a205a20c2b573e020202020202d20417070726f76653a20202020202020202033312e3339202b20302e313336202a2053202b202e303032202a205a20c2b573e020202020202d20436f6d706c6574653a202020202020202033392e3934202b20302e323620202a2053202b202e303032202a205a20c2b57334202d204442205765696768743a250120202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029290120202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60294c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e40617070726f76655f61735f6d756c746914247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d286d61785f776569676874185765696768749c590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a8020202020202d204372656174653a2034342e3731202b20302e303838202a20538420202020202d20417070726f76653a2033312e3438202b20302e313136202a205334202d204442205765696768743abc20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dc020202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d6c59012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d84202d2042617365205765696768743a2033362e3037202b20302e313234202a205334202d204442205765696768743a190120202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731d0120202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c73302023203c2f7765696768743e01102c4e65774d756c74697369670c244163636f756e744964244163636f756e7449642043616c6c486173680415012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685d404d756c7469736967417070726f76616c10244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368047d012041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e205b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685d404d756c7469736967457865637574656414244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368384469737061746368526573756c740451012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685d444d756c746973696743616e63656c6c656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c486173680459012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685d0038404d696e696d756d5468726573686f6c640480205468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f76656404b02043616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e656564656404a02043616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f7269657304ac2054686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f7269657304b02054686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f7264657204110120546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f72696573041101205468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e6404e0204d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e6572043101204f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e74042101204e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74043101204120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e7404f820412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e30576569676874546f6f4c6f7704d420546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f72656404a420546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e041c40436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74" diff --git a/types/metadataV11_test.go b/types/metadataV11_test.go index edb18185e..ce403d512 100644 --- a/types/metadataV11_test.go +++ b/types/metadataV11_test.go @@ -20,7 +20,6 @@ import ( "testing" . "github.com/centrifuge/go-substrate-rpc-client/v4/types" - . "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" "github.com/stretchr/testify/assert" ) @@ -30,32 +29,6 @@ var exampleMetadataV11 = Metadata{ AsMetadataV11: MetadataV11{MetadataV10: exampleRuntimeMetadataV10}, } -func TestNewMetadataV11_Decode(t *testing.T) { - tests := []struct { - name, hexData string - }{ - { - "SubstrateV11", ExamplaryMetadataV11SubstrateString, - }, - - { - "PolkadotV11", ExamplaryMetadataV11PolkadotString, - }, - } - - for _, s := range tests { - t.Run(s.name, func(t *testing.T) { - metadata := NewMetadataV11() - err := Decode(MustHexDecodeString(s.hexData), metadata) - assert.NoError(t, err) - data, err := Encode(metadata) - assert.NoError(t, err) - assert.Equal(t, s.hexData, HexEncodeToString(data)) - }) - - } -} - func TestMetadataV11_ExistsModuleMetadata(t *testing.T) { assert.True(t, exampleMetadataV11.ExistsModuleMetadata("EmptyModule")) assert.False(t, exampleMetadataV11.ExistsModuleMetadata("NotExistModule")) diff --git a/types/metadataV12_examplary_string.go b/types/metadataV12_examplary_string.go deleted file mode 100644 index 831a22270..000000000 --- a/types/metadataV12_examplary_string.go +++ /dev/null @@ -1,20 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -// From https://github.com/polkadot-js/api/blob/master/packages/metadata/src/Metadata/v12/static.ts -var ExamplaryMetadataV12PolkadotString = "0x6d6574610c801853797374656d011853797374656d401c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e00210100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010064776569676874733a3a45787472696e7369637357656967687440000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010010626f6f6c0400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e1c6c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960e0202d2042617365205765696768743a20302e36363520c2b5732c20696e646570656e64656e74206f662072656d61726b206c656e6774682e50202d204e6f204442206f7065726174696f6e732e302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e28682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e7901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2c202d2031206576656e742e7d012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e902057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e75012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e1c7375696369646500286501204b696c6c207468652073656e64696e67206163636f756e742c20617373756d696e6720746865726520617265206e6f207265666572656e636573206f75747374616e64696e6720616e642074686520636f6d706f7369746590206461746120697320657175616c20746f206974732064656661756c742076616c75652e002c2023203c7765696768743e24202d20604f283129607c202d20312073746f72616765207265616420616e642064656c6574696f6e2e54202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a20382e36323620c2b5731101204e6f2044422052656164206f72205772697465206f7065726174696f6e7320626563617573652063616c6c657220697320616c726561647920696e206f7665726c6179302023203c2f7765696768743e01144045787472696e7369635375636365737304304469737061746368496e666f04b820416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f049420416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e744964047c2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046c20416e205c5b6163636f756e745c5d20776173207265617065642e1838426c6f636b48617368436f756e7438543a3a426c6f636b4e756d626572106009000004d820546865206d6178696d756d206e756d626572206f6620626c6f636b7320746f20616c6c6f7720696e206d6f7274616c20657261732e484d6178696d756d426c6f636b576569676874185765696768742000204aa9d1010000047c20546865206d6178696d756d20776569676874206f66206120626c6f636b2e2044625765696768743c52756e74696d6544625765696768744040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e50426c6f636b457865637574696f6e576569676874185765696768742000f2052a0100000004510120546865206261736520776569676874206f6620657865637574696e67206120626c6f636b2c20696e646570656e64656e74206f6620746865207472616e73616374696f6e7320696e2074686520626c6f636b2e4c45787472696e736963426173655765696768741857656967687420405973070000000004790120546865206261736520776569676874206f6620616e2045787472696e73696320696e2074686520626c6f636b2c20696e646570656e64656e74206f6620746865206f662065787472696e736963206265696e672065786563757465642e484d6178696d756d426c6f636b4c656e6774680c753332100000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e001c5574696c697479000108146261746368041463616c6c735c5665633c3c542061732054726169743e3a3a43616c6c3e50802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c820627970617373696e6720606672616d655f73797374656d3a3a54726169743a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e90202d2042617365207765696768743a2031342e3339202b202e393837202a206320c2b573b8202d20506c7573207468652073756d206f66207468652077656967687473206f6620746865206063616c6c73602ec4202d20506c7573206f6e65206164646974696f6e616c206576656e742e202872657065617420726561642f777269746529302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0108404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173902077656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e00000110426162650110426162652c2845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401000c75363420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401000c75363420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e65737380000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e3c4e65787445706f6368436f6e6669670000504e657874436f6e66696744657363726970746f7204000498204e6578742065706f636820636f6e66696775726174696f6e2c206966206368616e6765642e384e65787452616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e657373800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101050c7533326c5665633c7363686e6f72726b656c3a3a52616e646f6d6e6573733e0004000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a656400003c4d6179626552616e646f6d6e65737304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e204c6174656e657373010038543a3a426c6f636b4e756d626572100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e01084c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66200d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e00083445706f63684475726174696f6e0c75363420c800000000000000080d0120546865206e756d626572206f66202a2a736c6f74732a2a207468617420616e2065706f63682074616b65732e20576520636f75706c652073657373696f6e7320746ffc2065706f6368732c20692e652e2077652073746172742061206e65772073657373696f6e206f6e636520746865206e65772065706f636820626567696e732e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e00022454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e3c5820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743ed0202d20604f285429602077686572652060546020636f6d706c6578697479206f6620606f6e5f74696d657374616d705f73657460a101202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e20606f6e5f66696e616c697a656029b4202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f7365746020604f285429602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e041c496e6469636573011c496e646963657304204163636f756e74730001023c543a3a4163636f756e74496e6465788828543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20626f6f6c29000400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e011414636c61696d0414696e6465783c543a3a4163636f756e74496e646578489c2041737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00e0205061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f4202d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e207472616e73666572080c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e6465785061012041737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6ebc206973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002901202d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e68202d204f6e65207472616e73666572206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743ae4202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e8202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429302023203c2f7765696768743e10667265650414696e6465783c543a3a4163636f756e74496e6465784898204672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e006101205061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e001101202d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e008820456d6974732060496e646578467265656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e38666f7263655f7472616e736665720c0c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e64657818667265657a6510626f6f6c54590120466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479ec2068656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a8202d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e4501202d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e7c202d20557020746f206f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743af8202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229fc202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229302023203c2f7765696768743e18667265657a650414696e6465783c543a3a4163636f756e74496e64657844690120467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742068617665206170206e6f6e2d66726f7a656e206163636f756e742060696e646578602e00b0202d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e008c20456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e74202d20557020746f206f6e6520736c617368206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e010c34496e64657841737369676e656408244163636f756e744964304163636f756e74496e64657804b42041206163636f756e7420696e646578207761732061737369676e65642e205c5b77686f2c20696e6465785c5d28496e646578467265656404304163636f756e74496e64657804e82041206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e08304163636f756e74496e646578244163636f756e7449640429012041206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b77686f2c20696e6465785c5d041c4465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e00052042616c616e636573012042616c616e6365731034546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e20746865206361736520746861742074686973206d6f64756c65206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964705665633c42616c616e63654c6f636b3c543a3a42616c616e63653e3e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e6cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e4101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973902020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e4d6f64756c652e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e636504250120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cd020726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e636504a0205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504cc20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f73697408244163636f756e7449641c42616c616e636504210120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20526573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e726573657276656408244163636f756e7449641c42616c616e636504290120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea8205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c204f766572666c6f77047420476f7420616e206f766572666c6f7720616674657220616464696e674c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d657869737406485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c0401000000000000000000000000000000000000000001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e00071c5374616b696e67011c5374616b696e678c30486973746f7279446570746801000c75333210540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010530543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010230543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010530543a3a4163636f756e7449647c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010530543a3a4163636f756e7449643856616c696461746f72507265667300040004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010530543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e00040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e2843757272656e74457261000020457261496e6465780400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e24416374697665457261000034416374697665457261496e666f040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e00b820546865206163746976652065726120697320746865206572612063757272656e746c792072657761726465642e2d012056616c696461746f7220736574206f66207468697320657261206d75737420626520657175616c20746f206053657373696f6e496e746572666163653a3a76616c696461746f7273602e5445726173537461727453657373696f6e496e64657800010520457261496e6465783053657373696f6e496e646578000400043101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e2c457261735374616b65727301020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301020520457261496e64657830543a3a4163636f756e7449643856616c696461746f7250726566730504001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010520457261496e6465783042616c616e63654f663c543e0004000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010520457261496e64657874457261526577617264506f696e74733c543a3a4163636f756e7449643e0014000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010520457261496e6465783042616c616e63654f663c543e00400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f72636545726101001c466f7263696e6704000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010520457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2905040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e05040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010530543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101058c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e48536e617073686f7456616c696461746f72730000445665633c543a3a4163636f756e7449643e040008650120536e617073686f74206f662076616c696461746f72732061742074686520626567696e6e696e67206f66207468652063757272656e7420656c656374696f6e2077696e646f772e20546869732073686f756c64206f6e6c791901206861766520612076616c7565207768656e205b60457261456c656374696f6e537461747573605d203d3d2060456c656374696f6e5374617475733a3a4f70656e285f29602e48536e617073686f744e6f6d696e61746f72730000445665633c543a3a4163636f756e7449643e040008650120536e617073686f74206f66206e6f6d696e61746f72732061742074686520626567696e6e696e67206f66207468652063757272656e7420656c656374696f6e2077696e646f772e20546869732073686f756c64206f6e6c791901206861766520612076616c7565207768656e205b60457261456c656374696f6e537461747573605d203d3d2060456c656374696f6e5374617475733a3a4f70656e285f29602e34517565756564456c65637465640000a8456c656374696f6e526573756c743c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e04000c650120546865206e6578742076616c696461746f72207365742e2041742074686520656e64206f6620616e206572612c206966207468697320697320617661696c61626c652028706f74656e7469616c6c792066726f6d20746865610120726573756c74206f6620616e206f6666636861696e20776f726b6572292c20697420697320696d6d6564696174656c7920757365642e204f74686572776973652c20746865206f6e2d636861696e20656c656374696f6e342069732065786563757465642e2c51756575656453636f7265000034456c656374696f6e53636f7265040004b0205468652073636f7265206f66207468652063757272656e74205b60517565756564456c6563746564605d2e44457261456c656374696f6e537461747573010078456c656374696f6e5374617475733c543a3a426c6f636b4e756d6265723e040008490120466c616720746f20636f6e74726f6c2074686520657865637574696f6e206f6620746865206f6666636861696e20656c656374696f6e2e205768656e20604f70656e285f29602c207765206163636570746c20736f6c7574696f6e7320746f206265207375626d69747465642e54497343757272656e7453657373696f6e46696e616c010010626f6f6c0400084d012054727565206966207468652063757272656e74202a2a706c616e6e65642a2a2073657373696f6e2069732066696e616c2e204e6f74652074686174207468697320646f6573206e6f742074616b65206572615820666f7263696e6720696e746f206163636f756e742e3853746f7261676556657273696f6e01002052656c6561736573040310cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076332e302e3020666f72206e6577206e6574776f726b732e016010626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e5865012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e004020456d6974732060426f6e646564602e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e005101204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e6564410120756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e4c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a3101202d20526561643a20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c2043757272656e74204572612c20486973746f72792044657074682c204c6f636b73e0202d2057726974653a20426f6e6465642c2050617965652c205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e5465012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c657220616e64f82069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004020456d6974732060426f6e646564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e34202d2d2d2d2d2d2d2d2d2d2d2d2c204442205765696768743a1501202d20526561643a2045726120456c656374696f6e205374617475732c20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c204c6f636b73a4202d2057726974653a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e805501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004820456d6974732060556e626f6e646564602e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652e5101202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c6564207669615c2020206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a1d01202d20526561643a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e744572612c204c6f636b732c2042616c616e63654f662053746173682ca4202d2057726974653a204c6f636b732c204c65646765722c2042616c616e63654f662053746173682c28203c2f7765696768743e4477697468647261775f756e626f6e64656404486e756d5f736c617368696e675f7370616e730c7533327c2d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004c20456d697473206057697468647261776e602e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d090120436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766520205570646174653a2501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c204c6f636b732c205b4f726967696e204163636f756e745da8202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657218204b696c6c3a4501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c20426f6e6465642c20536c617368696e67205370616e732c205b4f726967696e8c2020204163636f756e745d2c204c6f636b732c2042616c616e63654f662073746173685101202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732cb02020205b4f726967696e204163636f756e745d2c204c6f636b732c2042616c616e63654f662073746173682e74202d2057726974657320456163683a205370616e536c617368202a20530d01204e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f72507265667344e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e30202d2d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a90202d20526561643a2045726120456c656374696f6e205374617475732c204c656467657280202d2057726974653a204e6f6d696e61746f72732c2056616c696461746f7273302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e4c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00510120456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e20546869732063616e206f6e6c792062652063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e3101202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e2901012077686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e28202d2d2d2d2d2d2d2d2d34205765696768743a204f284e2984207768657265204e20697320746865206e756d626572206f6620746172676574732c204442205765696768743ac8202d2052656164733a2045726120456c656374696f6e205374617475732c204c65646765722c2043757272656e742045726184202d205772697465733a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e146368696c6c0044c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e24202d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a88202d20526561643a20457261456c656374696f6e5374617475732c204c656467657280202d2057726974653a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e247365745f7061796565041470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e40b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e28202d2d2d2d2d2d2d2d2d3c202d205765696768743a204f28312934202d204442205765696768743a4c20202020202d20526561643a204c65646765724c20202020202d2057726974653a205061796565302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654090202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743af4202d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f8202d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e209420536574732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e34205765696768743a204f2831295c2057726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e7404286164646974696f6e616c30436f6d706163743c7533323e1cac20496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e842053616d65206173205b607365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e547363616c655f76616c696461746f725f636f756e740418666163746f721c50657263656e741cd4205363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e842053616d65206173205b607365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e34666f7263655f6e6f5f657261730024b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e34666f7263655f6e65775f65726100284d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312944202d20577269746520466f726365457261302023203c2f7765696768743e447365745f696e76756c6e657261626c65730434696e76756c6e657261626c6573445665633c543a3a4163636f756e7449643e20cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e1c202d204f2856295c202d2057726974653a20496e76756c6e657261626c6573302023203c2f7765696768743e34666f7263655f756e7374616b650814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c753332280d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743eec204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b82052656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b738501205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c204163636f756e742c204c6f636b736c2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730020050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e34982043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b42043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e00050120506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e5420436f6d706c65786974793a204f2855202b205329b82077697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d420616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e68202d20526561643a20556e6170706c69656420536c61736865736c202d2057726974653a20556e6170706c69656420536c6173686573302023203c2f7765696768743e387061796f75745f7374616b657273083c76616c696461746f725f737461736830543a3a4163636f756e7449640c65726120457261496e64657870110120506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e004d01202d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f290120202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e3501202d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e00590120546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e20696678206974206973206e6f74206f6e65206f6620746865207374616b6572732e00010120546869732063616e206f6e6c792062652063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e0101202d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e30202d2d2d2d2d2d2d2d2d2d2d1d01204e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f722920205765696768743a88202d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c4202d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e292c204442205765696768743a2901202d20526561643a20457261456c656374696f6e5374617475732c2043757272656e744572612c20486973746f727944657074682c204572617356616c696461746f725265776172642c2d01202020202020202020457261735374616b657273436c69707065642c2045726173526577617264506f696e74732c204572617356616c696461746f725072656673202838206974656d73291101202d205265616420456163683a20426f6e6465642c204c65646765722c2050617965652c204c6f636b732c2053797374656d204163636f756e74202835206974656d7329d8202d20577269746520456163683a2053797374656d204163636f756e742c204c6f636b732c204c6564676572202833206974656d73290051012020204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e5901202020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e38e0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00550120546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722c20616e642069742063616e206265206f6e6c792063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ed4202d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b7394202d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a010120202020202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c204c6f636b732c205b4f726967696e204163636f756e745db820202020202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e447365745f686973746f72795f646570746808446e65775f686973746f72795f646570746844436f6d706163743c457261496e6465783e485f6572615f6974656d735f64656c6574656430436f6d706163743c7533323e543101205365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e80207768656e2060486973746f727944657074686020697320726564756365642e003020506172616d65746572733a1101202d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e4901202d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e450120202020546869732073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c6445012020202065726120686973746f72792e204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e2054727573746564206279a02020202060526f6f746020746f207265706f727420616e206163637572617465206e756d6265722e0054204f726967696e206d75737420626520726f6f742e002c2023203c7765696768743ee0202d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d20333c202d205765696768743a204f28452934202d204442205765696768743aa020202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074687020202020202d205772697465733a20486973746f7279204465707468310120202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f725072656673810120202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c2045726173537461727453657373696f6e496e646578302023203c2f7765696768743e28726561705f73746173680814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533323c39012052656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e6365206973207a65726f2e6101205468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65c020616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c6566742e009020546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e000101202d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002c2023203c7765696768743e250120436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e2c204442205765696768743ad8202d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b73a501202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c205374617368204163636f756e742c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e607375626d69745f656c656374696f6e5f736f6c7574696f6e141c77696e6e6572734c5665633c56616c696461746f72496e6465783e1c636f6d7061637448436f6d7061637441737369676e6d656e74731473636f726534456c656374696f6e53636f72650c65726120457261496e6465781073697a6530456c656374696f6e53697a65c4e4205375626d697420616e20656c656374696f6e20726573756c7420746f2074686520636861696e2e2049662074686520736f6c7574696f6e3a003420312e2069732076616c69642e150120322e206861732061206265747465722073636f7265207468616e206120706f74656e7469616c6c79206578697374696e6720736f6c7574696f6e206f6e20636861696e2e0084207468656e2c2069742077696c6c206265205f7075745f206f6e20636861696e2e00ac204120736f6c7574696f6e20636f6e7369737473206f662074776f20706965636573206f6620646174613a00f420312e206077696e6e657273603a206120666c617420766563746f72206f6620616c6c207468652077696e6e657273206f662074686520726f756e642e510120322e206061737369676e6d656e7473603a2074686520636f6d706163742076657273696f6e206f6620616e2061737369676e6d656e7420766563746f72207468617420656e636f6465732074686520656467653020202020776569676874732e00210120426f7468206f66207768696368206d617920626520636f6d7075746564207573696e67205f70687261676d656e5f2c206f7220616e79206f7468657220616c676f726974686d2e00a8204164646974696f6e616c6c792c20746865207375626d6974746572206d7573742070726f766964653a00c8202d20546865206073636f7265602074686174207468657920636c61696d20746865697220736f6c7574696f6e206861732e004d0120426f74682076616c696461746f727320616e64206e6f6d696e61746f72732077696c6c20626520726570726573656e74656420627920696e646963657320696e2074686520736f6c7574696f6e2e205468651d0120696e64696365732073686f756c6420726573706563742074686520636f72726573706f6e64696e6720747970657320285b6056616c696461746f72496e646578605d20616e643101205b604e6f6d696e61746f72496e646578605d292e204d6f72656f7665722c20746865792073686f756c642062652076616c6964207768656e207573656420746f20696e64657820696e746f5101205b60536e617073686f7456616c696461746f7273605d20616e64205b60536e617073686f744e6f6d696e61746f7273605d2e20416e7920696e76616c696420696e6465782077696c6c20636175736520746865610120736f6c7574696f6e20746f2062652072656a65637465642e2054686573652074776f2073746f72616765206974656d73206172652073657420647572696e672074686520656c656374696f6e2077696e646f7720616e6498206d6179206265207573656420746f2064657465726d696e652074686520696e64696365732e0060204120736f6c7574696f6e2069732076616c69642069663a00e420302e204974206973207375626d6974746564207768656e205b60457261456c656374696f6e537461747573605d20697320604f70656e602ef820312e2049747320636c61696d65642073636f726520697320657175616c20746f207468652073636f726520636f6d7075746564206f6e2d636861696e2eac20322e2050726573656e74732074686520636f7272656374206e756d626572206f662077696e6e6572732e550120332e20416c6c20696e6465786573206d7573742062652076616c7565206163636f7264696e6720746f2074686520736e617073686f7420766563746f72732e20416c6c20656467652076616c756573206d7573745d0120202020616c736f20626520636f727265637420616e642073686f756c64206e6f74206f766572666c6f7720746865206772616e756c6172697479206f662074686520726174696f20747970652028692e652e2032353640202020206f722062696c6c696f6e292e0d0120342e20466f72206561636820656467652c20616c6c2074617267657473206172652061637475616c6c79206e6f6d696e617465642062792074686520766f7465722e6c20352e2048617320636f72726563742073656c662d766f7465732e00c0204120736f6c7574696f6e732073636f726520697320636f6e736973746564206f66203320706172616d65746572733a00650120312e20606d696e207b20737570706f72742e746f74616c207d6020666f72206561636820737570706f7274206f6620612077696e6e65722e20546869732076616c75652073686f756c64206265206d6178696d697a65642e650120322e206073756d207b20737570706f72742e746f74616c207d6020666f72206561636820737570706f7274206f6620612077696e6e65722e20546869732076616c75652073686f756c64206265206d696e696d697a65642e410120332e206073756d207b20737570706f72742e746f74616c5e32207d6020666f72206561636820737570706f7274206f6620612077696e6e65722e20546869732076616c75652073686f756c642062659c202020206d696e696d697a65642028746f20656e73757265206c6573732076617269616e636529002c2023203c7765696768743e190120546865207472616e73616374696f6e20697320617373756d656420746f20626520746865206c6f6e6765737420706174682c20612062657474657220736f6c7574696f6e2ea42020202d20496e697469616c20736f6c7574696f6e20697320616c6d6f7374207468652073616d652e45012020202d20576f72736520736f6c7574696f6e20697320726574726163656420696e207072652d64697370617463682d636865636b73207768696368207365747320697473206f776e207765696768742e302023203c2f7765696768743e847375626d69745f656c656374696f6e5f736f6c7574696f6e5f756e7369676e6564141c77696e6e6572734c5665633c56616c696461746f72496e6465783e1c636f6d7061637448436f6d7061637441737369676e6d656e74731473636f726534456c656374696f6e53636f72650c65726120457261496e6465781073697a6530456c656374696f6e53697a6524c020556e7369676e65642076657273696f6e206f6620607375626d69745f656c656374696f6e5f736f6c7574696f6e602e005d01204e6f746520746861742074686973206d757374207061737320746865205b6056616c6964617465556e7369676e6564605d20636865636b207768696368206f6e6c7920616c6c6f7773207472616e73616374696f6e7361012066726f6d20746865206c6f63616c206e6f646520746f20626520696e636c756465642e20496e206f7468657220776f7264732c206f6e6c792074686520626c6f636b20617574686f722063616e20696e636c756465206168207472616e73616374696f6e20696e2074686520626c6f636b2e002c2023203c7765696768743e7020536565206063726174653a3a77656967687460206d6f64756c652e302023203c2f7765696768743e0124244572615061796f75740c20457261496e6465781c42616c616e63651c42616c616e63650c59012054686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c4207468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642eac205c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d1852657761726408244163636f756e7449641c42616c616e636504fc20546865207374616b657220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d14536c61736808244163636f756e7449641c42616c616e6365082501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e58205c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6490206e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d3c5374616b696e67456c656374696f6e043c456c656374696f6e436f6d7075746504f42041206e657720736574206f66207374616b6572732077617320656c656374656420776974682074686520676976656e205c5b636f6d707574655c5d2e38536f6c7574696f6e53746f726564043c456c656374696f6e436f6d707574650419012041206e657720736f6c7574696f6e20666f7220746865207570636f6d696e6720656c656374696f6e20686173206265656e2073746f7265642e205c5b636f6d707574655c5d18426f6e64656408244163636f756e7449641c42616c616e636510d420416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d005101204e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c25012069742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e64656408244163636f756e7449641c42616c616e636504dc20416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e08244163636f756e7449641c42616c616e6365085d0120416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560b02066726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d1c3853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e20457261496e64657810a8000000140101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e00bc20546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2d012053657420746f203020696620736c61736865732073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f723820696e74657276656e74696f6e2e44456c656374696f6e4c6f6f6b616865616438543a3a426c6f636b4e756d62657210320000001c710120546865206e756d626572206f6620626c6f636b73206265666f72652074686520656e64206f6620746865206572612066726f6d20776869636820656c656374696f6e207375626d697373696f6e732061726520616c6c6f7765642e006d012053657474696e67207468697320746f207a65726f2077696c6c2064697361626c6520746865206f6666636861696e20636f6d7075746520616e64206f6e6c79206f6e2d636861696e207365712d70687261676d656e2077696c6c2420626520757365642e007501205468697320697320626f756e646564206279206265696e672077697468696e20746865206c6173742073657373696f6e2e2048656e63652c2073657474696e6720697420746f20612076616c7565206d6f7265207468616e207468659c206c656e677468206f6620612073657373696f6e2077696c6c20626520706f696e746c6573732e344d6178497465726174696f6e730c753332100a0000000c2901204d6178696d756d206e756d626572206f662062616c616e63696e6720697465726174696f6e7320746f2072756e20696e20746865206f6666636861696e207375626d697373696f6e2e00ec2049662073657420746f20302c2062616c616e63655f736f6c7574696f6e2077696c6c206e6f7420626520657865637574656420617420616c6c2e504d696e536f6c7574696f6e53636f726542756d701c50657262696c6c1020a1070004610120546865207468726573686f6c64206f6620696d70726f76656d656e7420746861742073686f756c642062652070726f766964656420666f722061206e657720736f6c7574696f6e20746f2062652061636365707465642e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f720c753332104000000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00690120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e20636c61696d2101207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e7c344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e44496e73756666696369656e7456616c756504cc2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e64656454617267657404cc20417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264045c20496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73047c20496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e697175650484204974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564040d01205265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e7c4f6666636861696e456c656374696f6e4561726c795375626d697373696f6e04e420546865207375626d697474656420726573756c74206973207265636569766564206f7574206f6620746865206f70656e2077696e646f772e784f6666636861696e456c656374696f6e5765616b5375626d697373696f6e04010120546865207375626d697474656420726573756c74206973206e6f7420617320676f6f6420617320746865206f6e652073746f726564206f6e20636861696e2e4c536e617073686f74556e617661696c61626c6504d02054686520736e617073686f742064617461206f66207468652063757272656e742077696e646f77206973206d697373696e672e804f6666636861696e456c656374696f6e426f67757357696e6e6572436f756e7404b020496e636f7272656374206e756d626572206f662077696e6e65727320776572652070726573656e7465642e6c4f6666636861696e456c656374696f6e426f67757357696e6e6572086101204f6e65206f6620746865207375626d69747465642077696e6e657273206973206e6f7420616e206163746976652063616e646964617465206f6e20636861696e2028696e646578206973206f7574206f662072616e67653820696e20736e617073686f74292e704f6666636861696e456c656374696f6e426f677573436f6d70616374085d01204572726f72207768696c65206275696c64696e67207468652061737369676e6d656e7420747970652066726f6d2074686520636f6d706163742e20546869732063616e2068617070656e20696620616e20696e646578a820697320696e76616c69642c206f72206966207468652077656967687473205f6f766572666c6f775f2e784f6666636861696e456c656374696f6e426f6775734e6f6d696e61746f72041501204f6e65206f6620746865207375626d6974746564206e6f6d696e61746f7273206973206e6f7420616e20616374697665206e6f6d696e61746f72206f6e20636861696e2e7c4f6666636861696e456c656374696f6e426f6775734e6f6d696e6174696f6e044d01204f6e65206f6620746865207375626d6974746564206e6f6d696e61746f72732068617320616e206564676520746f20776869636820746865792068617665206e6f7420766f746564206f6e20636861696e2e844f6666636861696e456c656374696f6e536c61736865644e6f6d696e6174696f6e086101204f6e65206f6620746865207375626d6974746564206e6f6d696e61746f72732068617320616e2065646765207768696368206973207375626d6974746564206265666f726520746865206c617374206e6f6e2d7a65726f5420736c617368206f6620746865207461726765742e744f6666636861696e456c656374696f6e426f67757353656c66566f746504250120412073656c6620766f7465206d757374206f6e6c79206265206f726967696e617465642066726f6d20612076616c696461746f7220746f204f4e4c59207468656d73656c7665732e644f6666636861696e456c656374696f6e426f6775734564676504450120546865207375626d697474656420726573756c742068617320756e6b6e6f776e206564676573207468617420617265206e6f7420616d6f6e67207468652070726573656e7465642077696e6e6572732e684f6666636861696e456c656374696f6e426f67757353636f72650419012054686520636c61696d65642073636f726520646f6573206e6f74206d61746368207769746820746865206f6e6520636f6d70757465642066726f6d2074686520646174612e844f6666636861696e456c656374696f6e426f677573456c656374696f6e53697a6504782054686520656c656374696f6e2073697a6520697320696e76616c69642e3843616c6c4e6f74416c6c6f776564044901205468652063616c6c206973206e6f7420616c6c6f7765642061742074686520676976656e2074696d652064756520746f207265737472696374696f6e73206f6620656c656374696f6e20706572696f642e54496e636f7272656374486973746f7279446570746804c420496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e7304b420496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e081c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010538543a3a56616c696461746f7249641c543a3a4b657973000400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010550284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496400040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e0108207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e38e82053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a4202d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b6579736084202d204462526561647320706572206b65792069643a20604b65794f776e65726088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e2870757267655f6b6579730030cc2052656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743eb4202d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a4202d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e74608c202d20446257726974657320706572206b65792069643a20604b65794f776e64657260302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578086501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e001030496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e184e6f4b65797304a8204e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e092444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001052450726f70496e64657884285665633c543a3a4163636f756e7449643e2c2042616c616e63654f663c543e290004000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001061c543a3a48617368e8507265696d6167655374617475733c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001053c5265666572656e64756d496e646578d45265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173682c2042616c616e63654f663c543e3e0004000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010530543a3a4163636f756e744964c8566f74696e673c42616c616e63654f663c543e2c20543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b7300010530543a3a4163636f756e74496438543a3a426c6f636b4e756d626572000400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001061c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101061c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e00002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01641c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e2ca02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e00190120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573748420686176652066756e647320746f20636f76657220746865206465706f7369742e00d8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e1901202d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e004820456d697473206050726f706f736564602e003c205765696768743a20604f28702960187365636f6e64082070726f706f73616c48436f6d706163743c50726f70496e6465783e4c7365636f6e64735f75707065725f626f756e6430436f6d706163743c7533323e28b8205369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e6465721501206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00cc202d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e4501202d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e2074686973290120202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e002101205765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f7465644163636f756e74566f74653c42616c616e63654f663c543e3e24350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00e0202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e88202d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e003101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578205101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e00fc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d4202d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0040205765696768743a20604f283129602e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368243101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e00ec20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e001901205765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2ebc2020204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a486173682c5901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e00f020546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a486173682c4901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e00ec20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f2831296028666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265723c5101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d420546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f982020206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e004420456d697473206053746172746564602e003c205765696768743a20604f28312960347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736824bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00dc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e003101202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e004020456d69747320605665746f6564602e000101205765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e1c542052656d6f76652061207265666572656e64756d2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d8202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e00482023205765696768743a20604f283129602e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e6465781ca02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c8202d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004d01205765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c08746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e1c62616c616e63653042616c616e63654f663c543e503d012044656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e005901205468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865cc2074696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e00610120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a782020202d2062652064656c65676174696e6720616c72656164793b206f725d012020202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c6964617465649820202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e004901202d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5901202d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e2074686545012020206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e5501202d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374c82020206e6f74206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e004c20456d697473206044656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c65676174650030d020556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e00610120546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64e0206f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265582063757272656e746c792064656c65676174696e672e005420456d6974732060556e64656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c7300147420436c6561727320616c6c207075626c69632070726f706f73616c732e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e0040205765696768743a20604f283129602e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e2861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e040d012053616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e3045012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265410120696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e39012074686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c40206e6f2066656520697320706169642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e0431012053616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d616765083470726f706f73616c5f686173681c543a3a486173686070726f706f73616c5f6c656e5f75707065725f626f756e6430436f6d706163743c7533323e3cf42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e2d01202d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e010120202045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e006020456d6974732060507265696d616765526561706564602e00b8205765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b041874617267657430543a3a4163636f756e7449641ca420556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00bc202d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00c0205765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f74650414696e6465783c5265666572656e64756d496e6465786c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e00102049663a8c202d20746865207265666572656e64756d207761732063616e63656c6c65642c206f7280202d20746865207265666572656e64756d206973206f6e676f696e672c206f7294202d20746865207265666572656e64756d2068617320656e6465642073756368207468617401012020202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d82020202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f72882020202d20746865206163636f756e74206d61646520612073706c697420766f74656101202e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655c2066756e6473206265696e6720617661696c61626c652e00ac2049662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643af0202d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64e0202d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64c0202d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f7665725d01202e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c76655d01202a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de8206f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f74658c207265676973746572656420666f72207265666572656e64756d2060696e646578602e00f8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465081874617267657430543a3a4163636f756e74496414696e6465783c5265666572656e64756d496e6465783c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e0051012049662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f3101206072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c590120656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f729c20626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e005101202d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f72582020207265666572656e64756d2060696e646578602ef8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c083470726f706f73616c5f686173681c543a3a4861736814696e6465783c5265666572656e64756d496e64657804510120456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c697374083470726f706f73616c5f686173681c543a3a486173683c6d617962655f7265665f696e6465785c4f7074696f6e3c5265666572656e64756d496e6465783e3c4901205065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e67402070726f706f73656420616761696e2e0055012049662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e6755012072656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c6c207468656e2069742077696c6c2062652063616e63656c6c65642e00f020546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00fc202d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e4901202d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652c2063616e63656c6c65642e004501205765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d6520697420686173206154202020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c042870726f705f696e64657848436f6d706163743c50726f70496e6465783e1c4c2052656d6f766520612070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d4202d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e8205765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e28296001482050726f706f736564082450726f70496e6465781c42616c616e63650431012041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e047d012041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c206465706f7369746f72735c5d3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404c42041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564043c5265666572656e64756d496e64657804bc2041207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564083c5265666572656e64756d496e64657810626f6f6c04c820412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c2069735f6f6b5c5d2444656c65676174656408244163636f756e744964244163636f756e74496404210120416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c65676174656404244163636f756e74496404f820416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657204110120416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504610120412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636508150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e94205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964082d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb4205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d20556e6c6f636b656404244163636f756e74496404bc20416e205c5b6163636f756e745c5d20686173206265656e20756e6c6f636b6564207375636365737366756c6c792e2c426c61636b6c697374656404104861736804d820412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e203c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e5446617374547261636b566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f7465730c753332106400000004b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e8c2056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f7420657869737420426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e7420546f6f4561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e67244e6f744c6f636b656404a42054686520746172676574206163636f756e7420646f6573206e6f7420686176652061206c6f636b2e284e6f744578706972656404f020546865206c6f636b206f6e20746865206163636f756e7420746f20626520756e6c6f636b656420686173206e6f742079657420657870697265642e204e6f74566f74657204c82054686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e04cc20546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67048c20546865206163636f756e7420697320616c72656164792064656c65676174696e672e204f766572666c6f7704a420416e20756e657870656374656420696e7465676572206f766572666c6f77206f636375727265642e24556e646572666c6f7704a820416e20756e657870656374656420696e746567657220756e646572666c6f77206f636375727265642e44496e73756666696369656e7446756e647304010120546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e6704a420546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f746573457869737408590120546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696cec207468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f77656404dc2054686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e736504982044656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e64045420496e76616c696420757070657220626f756e642e3c4d6178566f746573526561636865640484204d6178696d756d206e756d626572206f6620766f74657320726561636865642e38496e76616c69645769746e6573730490205468652070726f7669646564207769746e65737320646174612069732077726f6e672e40546f6f4d616e7950726f706f73616c730494204d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e0a1c436f756e63696c014c496e7374616e636531436f6c6c656374697665182450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c30f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e002c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e6c510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0b48546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665182450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c30f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e002c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e6c510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0c24456c656374696f6e73014050687261676d656e456c656374696f6e141c4d656d626572730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e040004f0205468652063757272656e7420656c6563746564206d656d626572736869702e20536f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400042d01205468652063757272656e742072756e6e6572735f75702e20536f72746564206261736564206f6e206c6f7720746f2068696768206d657269742028776f72736520746f2062657374292e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010530543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e29004400000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c02054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682843616e646964617465730100445665633c543a3a4163636f756e7449643e0400085901205468652070726573656e742063616e646964617465206c6973742e20536f72746564206261736564206f6e206163636f756e742d69642e20412063757272656e74206d656d626572206f722072756e6e65722d757041012063616e206e6576657220656e746572207468697320766563746f7220616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e685d0120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe4207365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e0055012055706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e64206120626f6e6420616d6f756e74206973282072657365727665642e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792e59012020202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e641501202020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e005d012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f206e6f7420706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865206c6f636ba020616e64206b65657020736f6d6520666f722066757274686572207472616e73616374696f6e732e002c2023203c7765696768743e5c2042617365207765696768743a2034372e393320c2b573342053746174652072656164733ad820092d2043616e646964617465732e6c656e2829202b204d656d626572732e6c656e2829202b2052756e6e65727355702e6c656e28295420092d20566f74696e67202869735f766f746572292020092d204c6f636bd420092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665202b20746f74616c5f62616c616e6365295d38205374617465207772697465733a2820092d20566f74696e672020092d204c6f636b1d0120092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665202d2d206f6e6c79207768656e206372656174696e672061206e657720766f746572295d302023203c2f7765696768743e3072656d6f76655f766f746572003421012052656d6f766520606f726967696e60206173206120766f7465722e20546869732072656d6f76657320746865206c6f636b20616e642072657475726e732074686520626f6e642e002c2023203c7765696768743e582042617365207765696768743a2033362e3820c2b573a820416c6c207374617465206163636573732069732066726f6d20646f5f72656d6f76655f766f7465722e342053746174652072656164733a2820092d20566f74696e675820092d205b4163636f756e74446174612877686f295d38205374617465207772697465733a2820092d20566f74696e672420092d204c6f636b735820092d205b4163636f756e74446174612877686f295d302023203c2f7765696768743e507265706f72745f646566756e63745f766f746572041c646566756e6374c4446566756e6374566f7465723c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e6c5d01205265706f727420607461726765746020666f72206265696e6720616e20646566756e637420766f7465722e20496e2063617365206f6620612076616c6964207265706f72742c20746865207265706f727465722069735d012072657761726465642062792074686520626f6e6420616d6f756e74206f662060746172676574602e204f74686572776973652c20746865207265706f7274657220697473656c662069732072656d6f76656420616e645c20746865697220626f6e6420697320736c61736865642e0088204120646566756e637420766f74657220697320646566696e656420746f2062653a4d012020202d206120766f7465722077686f73652063757272656e74207375626d697474656420766f7465732061726520616c6c20696e76616c69642e20692e652e20616c6c206f66207468656d20617265206e6ff020202020206c6f6e67657220612063616e646964617465206e6f7220616e20616374697665206d656d626572206f7220612072756e6e65722d75702e0000690120546865206f726967696e206d7573742070726f7669646520746865206e756d626572206f662063757272656e742063616e6469646174657320616e6420766f746573206f6620746865207265706f7274656420746172676574c020666f722074686520707572706f7365206f66206163637572617465207765696768742063616c63756c6174696f6e2e002c2023203c7765696768743eb4204e6f204261736520776569676874206261736564206f6e206d696e2073717561726520616e616c797369732ea420436f6d706c6578697479206f662063616e6469646174655f636f756e743a20312e37353520c2b5739020436f6d706c6578697479206f6620766f74655f636f756e743a2031382e353120c2b573342053746174652072656164733a542020092d20566f74696e67287265706f7274657229502020092d2043616e6469646174652e6c656e28294c2020092d20566f74696e672854617267657429d82020092d2043616e646964617465732c204d656d626572732c2052756e6e6572735570202869735f646566756e63745f766f7465722938205374617465207772697465733a7020092d204c6f636b287265706f72746572207c7c2074617267657429dc20092d205b4163636f756e7442616c616e6365287265706f72746572295d202b204163636f756e7442616c616e636528746172676574297820092d20566f74696e67287265706f72746572207c7c20746172676574295901204e6f74653a207468652064622061636365737320697320776f7273652077697468207265737065637420746f2064622c207768696368206973207768656e20746865207265706f727420697320636f72726563742e302023203c2f7765696768743e407375626d69745f63616e646964616379043c63616e6469646174655f636f756e7430436f6d706163743c7533323e5078205375626d6974206f6e6573656c6620666f722063616e6469646163792e006420412063616e6469646174652077696c6c206569746865723aec2020202d204c6f73652061742074686520656e64206f6620746865207465726d20616e6420666f7266656974207468656972206465706f7369742e2d012020202d2057696e20616e64206265636f6d652061206d656d6265722e204d656d626572732077696c6c206576656e7475616c6c7920676574207468656972207374617368206261636b2e55012020202d204265636f6d6520612072756e6e65722d75702e2052756e6e6572732d75707320617265207265736572766564206d656d6265727320696e2063617365206f6e65206765747320666f72636566756c6c7934202020202072656d6f7665642e002c2023203c7765696768743e60204261736520776569676874203d2033332e333320c2b573a420436f6d706c6578697479206f662063616e6469646174655f636f756e743a20302e33373520c2b573342053746174652072656164733a3820092d2043616e646964617465732c20092d204d656d626572733420092d2052756e6e65727355706420092d205b4163636f756e7442616c616e63652877686f295d38205374617465207772697465733a6420092d205b4163636f756e7442616c616e63652877686f295d3820092d2043616e64696461746573302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379042872656e6f756e63696e672852656e6f756e63696e679051012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a4101202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c2074686520626f6e64206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e5901202d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c2074686520626f6e6420697320756e72657365727665642c2072657475726e656420616e64902020206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e4d01202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c2074686520626f6e6420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f766f746572605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c7920757365642e24203c7765696768743e7820496620612063616e6469646174652069732072656e6f756e63696e673a60200942617365207765696768743a2031372e323820c2b573a82009436f6d706c6578697479206f662063616e6469646174655f636f756e743a20302e32333520c2b57338200953746174652072656164733a3c2009092d2043616e64696461746573982009092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665295d3c20095374617465207772697465733a3c2009092d2043616e64696461746573982009092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665295d64204966206d656d6265722069732072656e6f756e63696e673a60200942617365207765696768743a2034362e323520c2b57338200953746174652072656164733ad02009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d3c20095374617465207772697465733ad02009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d642049662072756e6e65722069732072656e6f756e63696e673a60200942617365207765696768743a2034362e323520c2b57338200953746174652072656164733aac2009092d2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d3c20095374617465207772697465733aac2009092d2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d28203c2f7765696768743e3472656d6f76655f6d656d626572080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653c6861735f7265706c6163656d656e7410626f6f6c485d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c61636573207468650101206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e6820496620776520686176652061207265706c6163656d656e743a6820092d2042617365207765696768743a2035302e393320c2b5734020092d2053746174652072656164733a502009092d2052756e6e65727355702e6c656e2829cc2009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572294420092d205374617465207772697465733acc2009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d62657229650120456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e642077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e302023203c2f7765696768743e01181c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e1069012041206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e20746865590120656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e656420666f726901207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e6420736c617368656420616e645901206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f20626567696e20776974682e24456d7074795465726d00083501204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dcc20604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f720004e820496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404244163636f756e7449640855012041205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f72342060456d7074795465726d602e3c4d656d62657252656e6f756e63656404244163636f756e74496404b02041205c5b6d656d6265725c5d206861732072656e6f756e6365642074686569722063616e6469646163792e34566f7465725265706f727465640c244163636f756e744964244163636f756e74496410626f6f6c080901204120766f74657220776173207265706f7274656420776974682074686520746865207265706f7274206265696e67207375636365737366756c206f72206e6f742e74205c5b766f7465722c207265706f727465722c20737563636573735c5d183443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d030000000000000000000028566f74696e67426f6e643042616c616e63654f663c543e4000407a10f35a000000000000000000000038446573697265644d656d626572730c753332100d00000000404465736972656452756e6e65727355700c753332100700000000305465726d4475726174696f6e38543a3a426c6f636b4e756d626572108013030000204d6f64756c654964384c6f636b4964656e74696669657220706872656c656374004430556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3052756e6e65725375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d6265720438204e6f742061206d656d6265722e54496e76616c696443616e646964617465436f756e7404e4205468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e7404d0205468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67040101205468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e740401012050726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e0d4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970081c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000030543a3a4163636f756e744964040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e011c286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00a0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e74496414c02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a4204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e001101205072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b6579040c6e657730543a3a4163636f756e74496414d82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e002101205072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d65040c77686f30543a3a4163636f756e7449640cc02053657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d65000c982052656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e00000e3c46696e616c697479547261636b65720001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d626572106500000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657210e8030000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e0838416c72656164795570646174656404c82046696e616c2068696e74206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b1c42616448696e7404902046696e616c697a6564206865696768742061626f766520626c6f636b206e756d6265720f1c4772616e647061013c4772616e64706146696e616c6974791814537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001051453657449643053657373696f6e496e6465780004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66240d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e00110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e306e6f74655f7374616c6c6564081464656c617938543a3a426c6f636b4e756d6265726c626573745f66696e616c697a65645f626c6f636b5f6e756d62657238543a3a426c6f636b4e756d6265721c1d01204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c69747920676164676574206861732901207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e672101206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c617915012073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e6720746865290120666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f7465727329012077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e5c204f6e6c792063616c6c61626c6520627920726f6f742e010c384e6577417574686f7269746965730434417574686f726974794c69737404d8204e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e001c2c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e1020547265617375727901205472656173757279243450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001053450726f706f73616c496e6465789c50726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e10546970730001051c543a3a48617368fc4f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c59012054697073207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001061c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e2c426f756e7479436f756e7401002c426f756e7479496e646578100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001052c426f756e7479496e646578d4426f756e74793c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e2c20543a3a426c6f636b4e756d6265723e000400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001052c426f756e7479496e6465781c5665633c75383e000400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100405665633c426f756e7479496e6465783e040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01443470726f706f73655f7370656e64081476616c756560436f6d706163743c42616c616e63654f663c542c20493e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129b4202d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460ec202d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e7460302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e24fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129d0202d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d4202d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e285d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e50202d20436f6d706c65786974793a204f2831292e90202d20446252656164733a206050726f706f73616c73602c2060417070726f76616c73605c202d20446257726974653a2060417070726f76616c7360302023203c2f7765696768743e387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173c02060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743ecc202d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e942020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e2774202d20446252656164733a2060526561736f6e73602c2060546970736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960dc2020202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e90202d20446252656164733a206054697073602c20606f726967696e206163636f756e7460c0202d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e7460302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c756560436f6d706163743c42616c616e63654f663c542c20493e3e58f4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e5501202d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732ec02020202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e6774682060546009012020202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e0d0120202020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ee42020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e6774682060526080202d20446252656164733a206054697070657273602c2060526561736f6e736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c756560436f6d706163743c42616c616e63654f663c542c20493e3e64b4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e15012020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e00610120202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d4202020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e74202d20446252656164733a206054697070657273602c206054697073604c202d2044625772697465733a20605469707360302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368446020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e9c2020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602eac202d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260dc202d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e64657260302023203c2f7765696768743e3870726f706f73655f626f756e7479081476616c756560436f6d706163743c42616c616e63654f663c542c20493e3e2c6465736372697074696f6e1c5665633c75383e30582050726f706f73652061206e657720626f756e74792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c20617355012060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c68206f7220736c6173686564207768656e2072656a65637465642e00fc202d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e68202d2060666565603a205468652063757261746f72206665652e2901202d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec4202d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e74790424626f756e74795f696458436f6d706163743c50726f706f73616c496e6465783e28610120417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e3c70726f706f73655f63757261746f720c24626f756e74795f696458436f6d706163743c50726f706f73616c496e6465783e1c63757261746f728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c66656560436f6d706163743c42616c616e63654f663c542c20493e3e24942041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e40756e61737369676e5f63757261746f720424626f756e74795f696458436f6d706163743c50726f706f73616c496e6465783e508020556e61737369676e2063757261746f722066726f6d206120626f756e74792e00210120546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e00690120496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f72206973206d616c6963696f75730d01206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e00650120496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e64610120746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f7665722074686569723901206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e290061012046696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f7773650120616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e643d012077652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e386163636570745f63757261746f720424626f756e74795f696458436f6d706163743c50726f706f73616c496e6465783e289820416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e2d012041206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e0094204d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e3061776172645f626f756e74790824626f756e74795f696458436f6d706163743c50726f706f73616c496e6465783e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518990120417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e1d01202d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e30636c61696d5f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e14f020436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e30636c6f73655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e183d012043616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64d0207468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00cc204f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e50657874656e645f626f756e74795f6578706972790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c5f72656d61726b1c5665633c75383e18b020457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e90202d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e01482050726f706f736564043450726f706f73616c496e6465780484204e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67041c42616c616e6365043d01205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964041d0120536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504250120412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74041c42616c616e636504b020536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572041c42616c616e6365083101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e54205c5b6275646765745f72656d61696e696e675c5d1c4465706f736974041c42616c616e636504b020536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d184e657754697004104861736804cc2041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e670410486173680411012041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504f02041207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d3054697052657472616374656404104861736804c82041207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d38426f756e747950726f706f736564042c426f756e7479496e6465780474204e657720626f756e74792070726f706f73616c2e205b696e6465785d38426f756e747952656a6563746564082c426f756e7479496e6465781c42616c616e6365040901204120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205b696e6465782c20626f6e645d48426f756e7479426563616d65416374697665042c426f756e7479496e64657804dc204120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205b696e6465785d34426f756e747941776172646564082c426f756e7479496e646578244163636f756e74496404ec204120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205b696e6465782c2062656e65666963696172795d34426f756e7479436c61696d65640c2c426f756e7479496e6465781c42616c616e6365244163636f756e744964040501204120626f756e747920697320636c61696d65642062792062656e65666963696172792e205b696e6465782c207061796f75742c2062656e65666963696172795d38426f756e747943616e63656c6564042c426f756e7479496e646578047c204120626f756e74792069732063616e63656c6c65642e205b696e6465785d38426f756e7479457874656e646564042c426f756e7479496e6465780494204120626f756e74792065787069727920697320657874656e6465642e205b696e6465785d383050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3c42616c616e63654f663c542c20493e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e30546970436f756e74646f776e38543a3a426c6f636b4e756d62657210807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e7404140431012054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653c42616c616e63654f663c542c20493e4000407a10f35a0000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e48446174614465706f736974506572427974653c42616c616e63654f663c542c20493e400010a5d4e800000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e204d6f64756c654964204d6f64756c6549642070792f7472737279041901205468652074726561737572792773206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e44426f756e74794465706f736974426173653c42616c616e63654f663c542c20493e4000407a10f35a0000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c617938543a3a426c6f636b4e756d6265721080700000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e50426f756e747943757261746f724465706f7369741c5065726d696c6c1020a10700046d012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e74792063757261746f722e48426f756e747956616c75654d696e696d756d3c42616c616e63654f663c542c20493e4000406352bfc601000000000000000000004c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e3470496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e40556e657870656374656453746174757304842054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720460205265717569726520626f756e74792063757261746f722e30496e76616c696456616c7565045820496e76616c696420626f756e74792076616c75652e28496e76616c6964466565045020496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740870204120626f756e7479207061796f75742069732070656e64696e672efc20546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e1124436f6e7472616374730124436f6e747261637473143c43757272656e745363686564756c650100205363686564756c6535020000000020a107000000000020a107000000000020a107000000000020a107000000000020a107000000000020a107000000000020a1070000000000e0f7050400000000e024370500000000e0f705040000000020a107000000000020a107000000000080f0fa020000000000e1f505000000000400000000000100100000000040000000200000000000080004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001062c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001062c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010530543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e0004000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e01143c7570646174655f7363686564756c6504207363686564756c65205363686564756c650cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f64650410636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e74696174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28bd0120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e011830496e7374616e74696174656408244163636f756e744964244163636f756e744964042d0120436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e205c5b6f776e65722c20636f6e74726163745c5d1c4576696374656408244163636f756e74496410626f6f6c1ce420436f6e747261637420686173206265656e206576696374656420616e64206973206e6f7720696e20746f6d6273746f6e652073746174652e60205c5b636f6e74726163742c20746f6d6273746f6e655c5d042024202320506172616d73000d01202d2060636f6e7472616374603a20604163636f756e744964603a20546865206163636f756e74204944206f6620746865206576696374656420636f6e74726163742e3501202d2060746f6d6273746f6e65603a2060626f6f6c603a205472756520696620746865206576696374656420636f6e7472616374206c65667420626568696e64206120746f6d6273746f6e652e20526573746f72656410244163636f756e744964244163636f756e74496410486173681c42616c616e636524c020526573746f726174696f6e20666f72206120636f6e747261637420686173206265656e207375636365737366756c2eac205c5b646f6e6f722c20646573742c20636f64655f686173682c2072656e745f616c6c6f77616e63655c5d042024202320506172616d7300f4202d2060646f6e6f72603a20604163636f756e744964603a204163636f756e74204944206f662074686520726573746f72696e6720636f6e7472616374ec202d206064657374603a20604163636f756e744964603a204163636f756e74204944206f662074686520726573746f72656420636f6e7472616374e8202d2060636f64655f68617368603a206048617368603a20436f64652068617368206f662074686520726573746f72656420636f6e74726163741901202d206072656e745f616c6c6f77616e63653a206042616c616e6365603a2052656e7420616c6c6f77616e6365206f662074686520726573746f72656420636f6e747261637428436f646553746f72656404104861736808b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e38205c5b636f64655f686173685c5d3c5363686564756c6555706461746564040c75333204d020547269676765726564207768656e207468652063757272656e74205c5b7363686564756c655c5d20697320757064617465642e44436f6e7472616374457865637574696f6e08244163636f756e7449641c5665633c75383e08090120416e206576656e74206465706f73697465642075706f6e20657865637574696f6e206f66206120636f6e74726163742066726f6d20746865206163636f756e742e48205c5b6163636f756e742c20646174615c5d204c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000a0acb903000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f66667365740c753332100800000018710120412073697a65206f666673657420666f7220616e20636f6e74726163742e2041206a7573742063726561746564206163636f756e74207769746820756e746f75636865642073746f726167652077696c6c20686176652074686174e0206d756368206f662073746f726167652066726f6d20746865207065727370656374697665206f66207468652073746174652072656e742e006101205468697320697320612073696d706c652077617920746f20656e73757265207468617420636f6e747261637473207769746820656d7074792073746f72616765206576656e7475616c6c79206765742064656c657465646501206279206d616b696e67207468656d207061792072656e742e2054686973206372656174657320616e20696e63656e7469766520746f2072656d6f7665207468656d206561726c7920696e206f7264657220746f2073617665182072656e742e2c52656e74427974654665653042616c616e63654f663c543e4000286bee000000000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f66667365743042616c616e63654f663c543e400010a5d4e800000000000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c5375726368617267655265776172643042616c616e63654f663c543e40005cb2ec22000000000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e204d617844657074680c753332102000000008310120546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f696e7374616e746961746520737461636b2e204120726561736f6e61626c652064656661756c74382076616c7565206973203130302e304d617856616c756553697a650c753332100040000004390120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520696e2062797465732e204120726561736f6e61626c652064656661756c74206973203136204b69422e4858496e76616c69645363686564756c6556657273696f6e0405012041206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e54496e76616c6964537572636861726765436c61696d04550120416e206f726967696e206d757374206265207369676e6564206f7220696e686572656e7420616e6420617578696c696172792073656e646572206f6e6c792070726f7669646564206f6e20696e686572656e742e54496e76616c6964536f75726365436f6e747261637404dc2043616e6e6f7420726573746f72652066726f6d206e6f6e6578697374696e67206f7220746f6d6273746f6e6520636f6e74726163742e68496e76616c696444657374696e6174696f6e436f6e747261637404c42043616e6e6f7420726573746f726520746f206e6f6e6578697374696e67206f7220616c69766520636f6e74726163742e40496e76616c6964546f6d6273746f6e65046020546f6d6273746f6e657320646f6e2774206d617463682e54496e76616c6964436f6e74726163744f726967696e04bc20416e206f726967696e20547269654964207772697474656e20696e207468652063757272656e7420626c6f636b2e204f75744f6647617304bc2054686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c04050120546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e6442656c6f7753756273697374656e63655468726573686f6c6410210120506572666f726d696e672074686520726571756573746564207472616e7366657220776f756c6420686176652062726f756768742074686520636f6e74726163742062656c6f773d01207468652073756273697374656e6365207468726573686f6c642e204e6f207472616e7366657220697320616c6c6f77656420746f20646f207468697320696e206f7264657220746f20616c6c6f77450120666f72206120746f6d6273746f6e6520746f20626520637265617465642e2055736520607365616c5f7465726d696e6174656020746f2072656d6f7665206120636f6e747261637420776974686f757470206c656176696e67206120746f6d6273746f6e6520626568696e642e504e6577436f6e74726163744e6f7446756e64656408390120546865206e65776c79206372656174656420636f6e74726163742069732062656c6f77207468652073756273697374656e6365207468726573686f6c6420616674657220657865637574696e6721012069747320636f6e74727563746f722e204e6f20636f6e7472616374732061726520616c6c6f77656420746f2065786973742062656c6f772074686174207468726573686f6c642e385472616e736665724661696c65640c250120506572666f726d696e672074686520726571756573746564207472616e73666572206661696c656420666f72206120726561736f6e206f726967696e6174696e6720696e2074686531012063686f73656e2063757272656e637920696d706c656d656e746174696f6e206f66207468652072756e74696d652e204d6f73742070726f6261626c79207468652062616c616e63652069738c20746f6f206c6f77206f72206c6f636b732061726520706c61636564206f6e2069742e4c4d617843616c6c44657074685265616368656408250120506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d697498206f6620776861742069732073706563696669656420696e20746865207363686564756c652e2c4e6f7443616c6c61626c650831012054686520636f6e74726163742074686174207761732063616c6c656420697320656974686572206e6f20636f6e747261637420617420616c6c20286120706c61696e206163636f756e74294c206f72206973206120746f6d6273746f6e652e30436f6465546f6f4c617267650455012054686520636f646520737570706c69656420746f20607075745f636f646560206578636565647320746865206c696d69742073706563696669656420696e207468652063757272656e74207363686564756c652e30436f64654e6f74466f756e6404c8204e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473042901204120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564042d0120496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564048c20436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e12105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0110107375646f041063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e547375646f5f756e636865636b65645f776569676874081063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e1c5f776569676874185765696768742839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e310120546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b4205375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292ed0202d2054686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e010c14537564696404384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d284b65794368616e67656404244163636f756e74496404010120546865205c5b7375646f65725c5d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e650410626f6f6c048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e741320496d4f6e6c696e650120496d4f6e6c696e6510384865617274626561744166746572010038543a3a426c6f636b4e756d62657210000000001831012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e2063757272656e742073657373696f6e2e0011012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c64d02066616c6c20726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e010120546865206964656120697320746f206669727374207761697420666f72207468652076616c696461746f727320746f2070726f64756365206120626c6f636b390120696e207468652063757272656e742073657373696f6e2c20736f20746861742074686520686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002053053657373696f6e496e6465782441757468496e6465781c5665633c75383e05040008f020466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e6465786020746f8020606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102053053657373696f6e496e64657838543a3a56616c696461746f7249640c75333205100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f662060543a3a56616c696461746f7249646020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265242c2023203c7765696768743e4101202d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e290101202020616e642045206973206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608c2020202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60b02020202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e677468206045603d01202d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5c202020605265636569766564486561727462656174736084202d2044625772697465733a206052656365697665644865617274626561747360302023203c2f7765696768743e010c444865617274626561745265636569766564042c417574686f7269747949640405012041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e043d012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e1448417574686f72697479446973636f7665727900010000000015204f6666656e63657301204f6666656e636573101c5265706f727473000105345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e4044656665727265644f6666656e6365730100645665633c44656665727265644f6666656e63654f663c543e3e0400086501204465666572726564207265706f72747320746861742068617665206265656e2072656a656374656420627920746865206f6666656e63652068616e646c657220616e64206e65656420746f206265207375626d6974746564442061742061206c617465722074696d652e58436f6e63757272656e745265706f727473496e646578010205104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010105104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e63650c104b696e64384f706171756554696d65536c6f7410626f6f6c10550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e644d0120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e206c617374190120656c656d656e7420696e64696361746573206f6620746865206f6666656e636520776173206170706c69656420287472756529206f7220717565756564202866616c73652974205c5b6b696e642c2074696d65736c6f742c206170706c6965645c5d2e00001628486973746f726963616c0000000000176052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e010000000018204964656e7469747901204964656e7469747910284964656e746974794f6600010530543a3a4163636f756e74496468526567697374726174696f6e3c42616c616e63654f663c543e3e0004000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010230543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010530543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e290044000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100d85665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e3e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e00010120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743e2901202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666f304964656e74697479496e666f4c2d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2858202b205827202b2052296021012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e42020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e6465642984202d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e2501202d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e54902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e00b4202d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002c2023203c7765696768743e34202d20604f2850202b20532960e82020202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e18202d2044423ae02020202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029c02020202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec42020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed42020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e302023203c2f7765696768743e38636c6561725f6964656e7469747900483d0120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e44202d20604f2852202b2053202b20582960d02020202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e25012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e8c202d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ecc202d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65bc2053656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e30202d204f6e65206576656e74302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e341d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496434c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee4202d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647334ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00fc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e1c6164645f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106461746110446174611cb0204164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656e616d655f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651064617461104461746110d020416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656d6f76655f737562040c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651cc42052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e20717569745f7375620028902052656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b820746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564402073757065722d6964656e746974792e004901204e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d150120636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e01282c4964656e7469747953657404244163636f756e7449640411012041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e63650415012041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c656408244163636f756e7449641c42616c616e6365040d012041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e6465780405012041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e64657804f02041206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e6465780409012041206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640438526567697374726172496e64657804ac204120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c244163636f756e744964244163636f756e7449641c42616c616e63650455012041207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c244163636f756e744964244163636f756e7449641c42616c616e6365080d012041207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e5c205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c244163636f756e744964244163636f756e7449641c42616c616e6365081d012041207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d207468652901206d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d183042617369634465706f7369743042616c616e63654f663c543e400080c6a47e8d0300000000000000000004d82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e746974792e304669656c644465706f7369743042616c616e63654f663c543e4000a031a95fe300000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f7369743042616c616e63654f663c543e400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637471012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c206265290120616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e74730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c64730c7533321064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d6178526567697374726172730c7533321014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e4048546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473047020546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e795265676973747261727304ec204d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d65640474204163636f756e7420494420697320616c7265616479206e616d65642e184e6f7453756204742053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564048c205375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e191c536f6369657479011c536f6369657479401c466f756e646572000030543a3a4163636f756e7449640400044820546865206669727374206d656d6265722e1452756c657300001c543a3a48617368040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e0400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010530543a3a4163636f756e744964e42842616c616e63654f663c542c20493e2c204269644b696e643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e2900040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f7401003c42616c616e63654f663c542c20493e400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000030543a3a4163636f756e744964040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d626572730100445665633c543a3a4163636f756e7449643e04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d6265727301010530543a3a4163636f756e74496410626f6f6c00040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010530543a3a4163636f756e74496438566f756368696e6753746174757300040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f75747301010530543a3a4163636f756e744964985665633c28543a3a426c6f636b4e756d6265722c2042616c616e63654f663c542c20493e293e000400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b657301010530543a3a4163636f756e7449642c537472696b65436f756e7400100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f74657300020530543a3a4163636f756e74496430543a3a4163636f756e74496410566f746505040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000030543a3a4163636f756e744964040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010530543a3a4163636f756e74496410566f7465000400046020566f74657320666f722074686520646566656e6465722e284d61784d656d6265727301000c753332100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e01300c626964041476616c75653c42616c616e63654f663c542c20493e84e020412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e003901205061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564f0207768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a5901202d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002c2023203c7765696768743e5501204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520726573657276652944202d2053746f726167652052656164733aec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d2948202d2053746f72616765205772697465733a810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6820092d204f6e65206576656e7420666f72206e6577206269642efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e14756e626964040c706f730c7533324cd82041206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792e010120427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f728420746865792077696c6c20756e766f75636820746865697220766f75636865722e00fc205061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e003020506172616d65746572733a1901202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002c2023203c7765696768743eb0204b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e72657365727665290d01202d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f2842294501202d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2842202b205829302023203c2f7765696768743e14766f7563680c0c77686f30543a3a4163636f756e7449641476616c75653c42616c616e63654f663c542c20493e0c7469703c42616c616e63654f663c542c20493eb045012041732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e005501205468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f725d01206f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062794101207468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e005901204173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c51012062652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733acc202d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e5101202d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d65642061206d656d62657220696e2074686520736f63696574792e4901202d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f15012074686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002c2023203c7765696768743e0101204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732944202d2053746f726167652052656164733ac820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29090120092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129ec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f28432948202d2053746f72616765205772697465733a0d0120092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f283129810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3ac020092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6020092d204f6e65206576656e7420666f7220766f7563682efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e1c756e766f756368040c706f730c753332442d01204173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f7563686564207573657220697394206f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e003020506172616d65746572733a2d01202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002c2023203c7765696768743e54204b65793a204220286c656e206f662062696473290901202d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722eec202d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422994202d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f284229302023203c2f7765696768743e10766f7465082463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c617070726f766510626f6f6c4c882041732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733a0d01202d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2ef4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265d82020202020202020202020202020617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743ebc204b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e58202d204f6e65206163636f756e74206c6f6f6b75702e2d01202d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204329302023203c2f7765696768743e34646566656e6465725f766f7465041c617070726f766510626f6f6c408c2041732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733af4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a420617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743e68202d204b65793a204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e007820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d29302023203c2f7765696768743e187061796f757400504501205472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e006901204e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e002101205061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d61747572656478207061796f757420746f20746865697220667265652062616c616e63652e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d62657220776974684c207061796f7574732072656d61696e696e672e002c2023203c7765696768743e1d01204b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d626572292501202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e8c202d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858291101202d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f285029009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b205829302023203c2f7765696768743e14666f756e640c1c666f756e64657230543a3a4163636f756e7449642c6d61785f6d656d626572730c7533321472756c65731c5665633c75383e4c4c20466f756e642074686520736f63696574792e00f0205468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f72207468651901206d6f64756c6520746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e003020506172616d65746572733a1901202d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e1501202d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef4202d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002c2023203c7765696768743ee0202d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f4202d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e1c756e666f756e6400348c20416e6e756c2074686520666f756e64696e67206f662074686520736f63696574792e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f74685901207468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e6520206d656d6265722e002c2023203c7765696768743e68202d2054776f2073746f72616765207265616473204f2831292e78202d20466f75722073746f726167652072656d6f76616c73204f2831292e34202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e586a756467655f73757370656e6465645f6d656d626572080c77686f30543a3a4163636f756e7449641c666f726769766510626f6f6c6c2d0120416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e00590120496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67cc20616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e00490120496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e670101207468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ab4202d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e3501202d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e2501202020202020202020202020202020666f726769766573202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002c2023203c7765696768743ea4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f8202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f2831297101202d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f20736f63696574792ef8202d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e4501202d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e70202d204f6e652073746f726167652072656d6f76616c2e204f2831297c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204229302023203c2f7765696768743e646a756467655f73757370656e6465645f63616e646964617465080c77686f30543a3a4163636f756e744964246a756467656d656e74244a756467656d656e74a0350120416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005d0120496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f70726961746574207061796d656e7420666f72206a6f696e696e6720736f63696574792e00550120496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b110120746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005d0120496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f94207468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ac0202d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec4202d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002c2023203c7765696768743ef4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29f0202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec8202d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e40202d20417070726f7665204c6f676963150120092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129dc20092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e820092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b420092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d29a020092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eb020092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4d0120092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e3c202d2052656a656374204c6f676963dc20092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292d0120092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e38202d205265626964204c6f676963410120092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e5c202d204f6e652073746f726167652072656d6f76616c2e7c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b205829302023203c2f7765696768743e3c7365745f6d61785f6d656d62657273040c6d61780c753332381d0120416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb4204d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00dc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e003020506172616d65746572733ae4202d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002c2023203c7765696768743eb0202d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e01401c466f756e64656404244163636f756e74496404e82054686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e205c5b666f756e6465725c5d0c42696408244163636f756e7449641c42616c616e63650861012041206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f666665729c20697320746865207365636f6e642e205c5b63616e6469646174655f69642c206f666665725c5d14566f7563680c244163636f756e7449641c42616c616e6365244163636f756e7449640861012041206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e647901207468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e205c5b63616e6469646174655f69642c206f666665722c20766f756368696e675c5d244175746f556e62696404244163636f756e7449640419012041205c5b63616e6469646174655c5d207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404244163636f756e74496404c02041205c5b63616e6469646174655c5d207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804244163636f756e7449640409012041205c5b63616e6469646174655c5d207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408244163636f756e744964385665633c4163636f756e7449643e08590120412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c20746865d420626174636820696e2066756c6c20697320746865207365636f6e642e205c5b7072696d6172792c2063616e646964617465735c5d6053757370656e6465644d656d6265724a756467656d656e7408244163636f756e74496410626f6f6c04d020412073757370656e646564206d656d62657220686173206265656e206a75646765642e205c5b77686f2c206a75646765645c5d4843616e64696461746553757370656e64656404244163636f756e744964048c2041205c5b63616e6469646174655c5d20686173206265656e2073757370656e6465643c4d656d62657253757370656e64656404244163636f756e74496404802041205c5b6d656d6265725c5d20686173206265656e2073757370656e646564284368616c6c656e67656404244163636f756e74496404842041205c5b6d656d6265725c5d20686173206265656e206368616c6c656e67656410566f74650c244163636f756e744964244163636f756e74496410626f6f6c04c8204120766f746520686173206265656e20706c61636564205c5b63616e6469646174652c20766f7465722c20766f74655c5d30446566656e646572566f746508244163636f756e74496410626f6f6c04f8204120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572205c5b766f7465722c20766f74655c5d344e65774d61784d656d62657273040c75333204a02041206e6577205c5b6d61785c5d206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404244163636f756e744964048820536f636965747920697320756e666f756e6465642e205c5b666f756e6465725c5d1c4465706f736974041c42616c616e636504f820536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e205c5b76616c75655c5d1c4043616e6469646174654465706f7369743c42616c616e63654f663c542c20493e400080c6a47e8d0300000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e3c42616c616e63654f663c542c20493e400080f420e6b5000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b65730c753332100a00000008750120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e207468657920617265206120736b65707469632978206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e643c42616c616e63654f663c542c20493e400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6438543a3a426c6f636b4e756d626572100077010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4368616c6c656e6765506572696f6438543a3a426c6f636b4e756d626572108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e204d6f64756c654964204d6f64756c6549642070792f736f63696504682054686520736f636965746965732773206d6f64756c65206964482c426164506f736974696f6e049020416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d62657204582055736572206973206e6f742061206d656d6265722e34416c72656164794d656d6265720468205573657220697320616c72656164792061206d656d6265722e2453757370656e646564044c20557365722069732073757370656e6465642e304e6f7453757370656e646564045c2055736572206973206e6f742073757370656e6465642e204e6f5061796f7574044c204e6f7468696e6720746f207061796f75742e38416c7265616479466f756e646564046420536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74049c204e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e6704e8204d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670460204d656d626572206973206e6f7420766f756368696e672e104865616404942043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572046c2043616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964047420557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e6469646174650474205573657220697320616c726561647920612063616e6469646174652e304e6f7443616e64696461746504642055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273048420546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572047c205468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640470205468652063616c6c6572206973206e6f742074686520686561642e1a205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010530543a3a4163636f756e744964e85265636f76657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e0004000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300020530543a3a4163636f756e74496430543a3a4163636f756e744964e84163746976655265636f766572793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e050400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010230543a3a4163636f756e74496430543a3a4163636f756e7449640004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01243061735f7265636f7665726564081c6163636f756e7430543a3a4163636f756e7449641063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e34a42053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a2501202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662e0101202d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002c2023203c7765696768743e94202d2054686520776569676874206f6620746865206063616c6c60202b2031302c3030302e0901202d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e347365745f7265636f766572656408106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e744964341d0120416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e747420666f722061206c6f7374206163636f756e74206469726563746c792e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e003020506172616d65746572733ab8202d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e1d01202d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002c2023203c7765696768743e64202d204f6e652073746f72616765207772697465204f28312930202d204f6e65206576656e74302023203c2f7765696768743e3c6372656174655f7265636f766572790c1c667269656e6473445665633c543a3a4163636f756e7449643e247468726573686f6c640c7531363064656c61795f706572696f6438543a3a426c6f636b4e756d6265726c5d01204372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e003101205061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e636549012077696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564bc20696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2501202d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732ed420202053686f756c64206265206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e3101202d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d70741d012020206265666f726520746865206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f94202020746865206c656e677468206f6620746865206c697374206f6620667269656e64732e3d01202d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a6564e820202074686174206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002c2023203c7765696768743e68202d204b65793a204620286c656e206f6620667269656e6473292d01202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292eec202d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f2846299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f2858299c202d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e44696e6974696174655f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496458ec20496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e001d01205061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e67207468652501207265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b820747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e7401012020206e6565647320746f206265207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743ef8202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846295101202d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f2831299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831296c202d204f6e652073746f726167652077726974652e204f2831292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e38766f7563685f7265636f7665727908106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e74496464290120416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f76657279682070726f6365737320666f722074686174206163636f756e742e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e64227420666f7220746865207265636f76657261626c65206163636f756e742e003020506172616d65746572733ad4202d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f755420202077616e7420746f20766f75636820666f722e0025012054686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f76657279242070726f636573732e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629ec202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f6746291d01202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f6756299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e00a420546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f675629302023203c2f7765696768743e38636c61696d5f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496450f420416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061202272657363756572221d012077686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c6563746564310120607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e003020506172616d65746572733a2d01202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79502020207265636f766572656420627920796f752e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205629302023203c2f7765696768743e38636c6f73655f7265636f76657279041c7265736375657230543a3a4163636f756e7449645015012041732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f76657279682070726f6365737320666f7220796f7572206163636f756e742e002101205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f820746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061f0207265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e003020506172616d65746572733a1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002c2023203c7765696768743e84204b65793a205620286c656e206f6620766f756368696e6720667269656e6473293d01202d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629c0202d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2856202b205829302023203c2f7765696768743e3c72656d6f76655f7265636f7665727900545d012052656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e001501204e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c206163746976650901207265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e002501205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e7265736572766598207468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef4202860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732900050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e4207265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743e60204b65793a204620286c656e206f6620667269656e6473292901202d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f2831293901202d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846299c202d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e4063616e63656c5f7265636f7665726564041c6163636f756e7430543a3a4163636f756e7449642ce02043616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a1901202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e002c2023203c7765696768743e1101202d204f6e652073746f72616765206d75746174696f6e20746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e01183c5265636f766572794372656174656404244163636f756e74496404dc2041207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e205c5b6163636f756e745c5d2e445265636f76657279496e6974696174656408244163636f756e744964244163636f756e744964082d012041207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f76657279566f75636865640c244163636f756e744964244163636f756e744964244163636f756e744964085d012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e68205c5b6c6f73742c20726573637565722c2073656e6465725c5d385265636f76657279436c6f73656408244163636f756e744964244163636f756e7449640821012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e48205c5b6c6f73742c20726573637565725c5d404163636f756e745265636f766572656408244163636f756e744964244163636f756e744964080501204c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f7665727952656d6f76656404244163636f756e74496404e02041207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e205c5b6163636f756e745c5d2e1044436f6e6669674465706f736974426173653042616c616e63654f663c543e4000406352bfc60100000000000000000004550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e4c467269656e644465706f736974466163746f723042616c616e63654f663c543e4000203d88792d000000000000000000000469012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e284d6178467269656e64730c753136080900040d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e3c5265636f766572794465706f7369743042616c616e63654f663c543e4000406352bfc601000000000000000000041d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e40284e6f74416c6c6f77656404f42055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640490205468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e647304d420467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e647304ac20467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f7274656404cc20467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c6504a02054686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c6504b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c72656164795374617274656404e02041207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f745374617274656404d02041207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e6404ac2054686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64041d012054686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f756368656404c0205468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c6404ec20546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c41637469766504010120546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f736564204f766572666c6f77049c2054686572652077617320616e206f766572666c6f7720696e20612063616c63756c6174696f6e30416c726561647950726f787904b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f766572791b1c56657374696e67011c56657374696e67041c56657374696e6700010230543a3a4163636f756e744964a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e011010766573740034bc20556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c68206c6f636b656420756e6465722074686973206d6f64756c652e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20322052656164732c203220577269746573fc20202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d010120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d302023203c2f7765696768743e28766573745f6f7468657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653cbc20556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501202d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c68206c6f636b656420756e6465722074686973206d6f64756c652e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c203320577269746573f420202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f820202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74302023203c2f7765696768743e3c7665737465645f7472616e7366657208187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e406820437265617465206120766573746564207472616e736665722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e001501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c2033205772697465733d0120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d410120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d302023203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e446420466f726365206120766573746564207472616e736665722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00ec202d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e1501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20342052656164732c203420577269746573350120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74390120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74302023203c2f7765696768743e01083856657374696e675570646174656408244163636f756e7449641c42616c616e63650c59012054686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e646963617465206d6f72652066756e64732061726520617661696c61626c652e2054686519012062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e58205c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c6574656404244163636f756e744964041d0120416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e204e6f20667572746865722076657374696e672063616e2068617070656e2e04444d696e5665737465645472616e736665723042616c616e63654f663c543e400000c16ff28623000000000000000000041d0120546865206d696e696d756d20616d6f756e7420746f206265207472616e7366657272656420746f206372656174652061206e65772076657374696e67207363686564756c652e0c284e6f7456657374696e67048820546865206163636f756e7420676976656e206973206e6f742076657374696e672e5c4578697374696e6756657374696e675363686564756c65045d0120416e206578697374696e672076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e7420746861742063616e6e6f7420626520636c6f6262657265642e24416d6f756e744c6f7704090120416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e1c245363686564756c657201245363686564756c65720c184167656e646101010538543a3a426c6f636b4e756d6265726d015665633c4f7074696f6e3c5363686564756c65643c3c542061732054726169743e3a3a43616c6c2c20543a3a426c6f636b4e756d6265722c20543a3a0a50616c6c6574734f726967696e2c20543a3a4163636f756e7449643e3e3e000400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001051c5665633c75383e6c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e0118207363686564756c6510107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e287420416e6f6e796d6f75736c79207363686564756c652061207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7390202d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64615020202020202d2057726974653a204167656e64613d01202d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e1863616e63656c08107768656e38543a3a426c6f636b4e756d62657214696e6465780c75333228982043616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64617020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f6e616d6564140869641c5665633c75383e107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e285c205363686564756c652061206e616d6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c202d2042617365205765696768743a2032392e36202b202e313539202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704d01202d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c73302023203c2f7765696768743e3063616e63656c5f6e616d6564040869641c5665633c75383e287c2043616e63656c2061206e616d6564207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f61667465721014616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e14ac20416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002c2023203c7765696768743e582053616d65206173205b607363686564756c65605d2e302023203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140869641c5665633c75383e14616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e1494205363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002c2023203c7765696768743e702053616d65206173205b607363686564756c655f6e616d6564605d2e302023203c2f7765696768743e010c245363686564756c6564082c426c6f636b4e756d6265720c7533320494205363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c6564082c426c6f636b4e756d6265720c75333204902043616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c605461736b416464726573733c426c6f636b4e756d6265723e3c4f7074696f6e3c5665633c75383e3e384469737061746368526573756c7404ac204469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d000c404661696c6564546f5363686564756c650468204661696c656420746f207363686564756c6520612063616c6c384661696c6564546f43616e63656c0488204661696c656420746f2063616e63656c2061207363686564756c65642063616c6c5c546172676574426c6f636b4e756d626572496e5061737404a820476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e1d1450726f7879011450726f7879081c50726f7869657301010530543a3a4163636f756e7449644501285665633c50726f7879446566696e6974696f6e3c543a3a4163636f756e7449642c20543a3a50726f7879547970652c20543a3a426c6f636b4e756d6265723e3e2c0a2042616c616e63654f663c543e29004400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010530543a3a4163636f756e7449643d01285665633c416e6e6f756e63656d656e743c543a3a4163636f756e7449642c2043616c6c486173684f663c543e2c20543a3a426c6f636b4e756d6265723e3e2c0a2042616c616e63654f663c543e290044000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01281470726f78790c107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e3c51012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e246164645f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722c490120526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792e0101202d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3072656d6f76655f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722cac20556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2901202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e4501202d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3872656d6f76655f70726f786965730028b820556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901205741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e5d012074686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e24616e6f6e796d6f75730c2870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657214696e6465780c7531365c3d0120537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64010120696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e0070205265717569726573206120605369676e656460206f726967696e2e005501202d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468655101206e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f7c20616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e5501202d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d656101207472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a757374442077616e7420746f20757365206030602e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e005501204661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659c2073616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e8204661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e9020544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f7573141c737061776e657230543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706514696e6465780c753136186865696768745c436f6d706163743c543a3a426c6f636b4e756d6265723e246578745f696e64657830436f6d706163743c7533323e50b82052656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e004d01205741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c2062653820696e61636365737369626c652e005d01205265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fac2060616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e005101202d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e5101202d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e0501202d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e4101202d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e4d01202d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e004d01204661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f4206163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e20616e6e6f756e636508107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e540901205075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e0061012054686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d707465642901206966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e001501204e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000d0120546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c2061731d012060416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e7408107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40742052656d6f7665206120676976656e20616e6e6f756e63656d656e742e005d01204d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e3420746865206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e74082064656c656761746530543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40b42052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e006501204d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c656761746573290120286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733af8202d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ec0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e3c70726f78795f616e6e6f756e636564102064656c656761746530543a3a4163636f756e744964107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e4451012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e010c3450726f7879457865637574656404384469737061746368526573756c7404ec20412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f75734372656174656410244163636f756e744964244163636f756e7449642450726f7879547970650c75313608ec20416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e690120646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c20646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c244163636f756e744964244163636f756e744964104861736804510120416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d184050726f78794465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000004110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e4850726f78794465706f736974466163746f723042616c616e63654f663c543e400060aa7714b40000000000000000000004bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e284d617850726f786965730c75313608200004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e670c7533321020000000047820604d617850656e64696e6760206d6574616461746120736861646f772e5c416e6e6f756e63656d656e744465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000004ac2060416e6e6f756e63656d656e744465706f7369744261736560206d6574616461746120736861646f772e64416e6e6f756e63656d656e744465706f736974466163746f723042616c616e63654f663c543e4000c054ef28680100000000000000000004b42060416e6e6f756e63656d656e744465706f736974466163746f7260206d6574616461746120736861646f772e1c1c546f6f4d616e790425012054686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e6404782050726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f787904d02053656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c6504250120412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650470204163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e0419012043616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e63656404d420416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e1e204d756c746973696701204d756c746973696708244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c73000106205b75383b2033325da0284f706171756543616c6c2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e290004000001105061735f6d756c74695f7468726573686f6c645f3108446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e40550120496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e004101202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468650501206d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00bc20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002c2023203c7765696768743e1d01204f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d48202d204442205765696768743a204e6f6e654c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e2061735f6d756c746918247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c284f706171756543616c6c2873746f72655f63616c6c10626f6f6c286d61785f77656967687418576569676874b8590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a250120202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029290120202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60294c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e40617070726f76655f61735f6d756c746914247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d286d61785f7765696768741857656967687490590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743abc20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dc020202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d6859012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a190120202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731d0120202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c73302023203c2f7765696768743e01102c4e65774d756c74697369670c244163636f756e744964244163636f756e7449642043616c6c48617368041d012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c10244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c4861736808cc2041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb8205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967457865637574656414244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368384469737061746368526573756c740459012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c486173680461012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d0c2c4465706f736974426173653042616c616e63654f663c543e4000f01c0adbed0100000000000000000008710120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f2073746f72656c20612064697370617463682063616c6c20666f72206c617465722e344465706f736974466163746f723042616c616e63654f663c543e400000cc7b9fae000000000000000000000455012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e384d61785369676e61746f726965730c75313608640004010120546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420666f72206120676976656e206d756c74697369672e38404d696e696d756d5468726573686f6c640480205468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f76656404b02043616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e656564656404a02043616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f7269657304ac2054686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f7269657304b02054686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f7264657204110120546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f72696573041101205468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e6404e0204d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e6572043101204f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e74042101204e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74043101204120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e7404f820412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e30576569676874546f6f4c6f7704d420546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f72656404a420546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e1f041c40436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74" diff --git a/types/metadataV12_test.go b/types/metadataV12_test.go index 3d8ab5fb9..2a4013e41 100644 --- a/types/metadataV12_test.go +++ b/types/metadataV12_test.go @@ -20,7 +20,6 @@ import ( "testing" . "github.com/centrifuge/go-substrate-rpc-client/v4/types" - . "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" "github.com/stretchr/testify/assert" ) @@ -79,29 +78,6 @@ var exampleModuleMetadataV122 = ModuleMetadataV12{ Index: 2, } -func TestNewMetadataV12_Decode(t *testing.T) { - tests := []struct { - name, hexData string - }{ - { - "PolkadotV12", ExamplaryMetadataV12PolkadotString, - }, - } - - for _, s := range tests { - t.Run(s.name, func(t *testing.T) { - metadata := NewMetadataV12() - err := Decode(MustHexDecodeString(s.hexData), metadata) - assert.EqualValues(t, metadata.Version, 12) - assert.NoError(t, err) - data, err := Encode(metadata) - assert.NoError(t, err) - assert.Equal(t, s.hexData, HexEncodeToString(data)) - }) - - } -} - func TestMetadataV12_ExistsModuleMetadata(t *testing.T) { assert.True(t, exampleMetadataV12.ExistsModuleMetadata("EmptyModule")) assert.False(t, exampleMetadataV12.ExistsModuleMetadata("NotExistModule")) diff --git a/types/metadataV13_examplary.go b/types/metadataV13_examplary.go deleted file mode 100644 index 580fe9344..000000000 --- a/types/metadataV13_examplary.go +++ /dev/null @@ -1,19 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -var ExamplaryMetadataV13 = &Metadata{MagicNumber: 0x6174656d, Version: 0xd, AsMetadataV4: MetadataV4{Modules: []ModuleMetadataV4(nil)}, AsMetadataV7: MetadataV7{Modules: []ModuleMetadataV7(nil)}, AsMetadataV8: MetadataV8{Modules: []ModuleMetadataV8(nil)}, AsMetadataV9: MetadataV9{Modules: []ModuleMetadataV8(nil)}, AsMetadataV10: MetadataV10{Modules: []ModuleMetadataV10(nil)}, AsMetadataV11: MetadataV11{MetadataV10: MetadataV10{Modules: []ModuleMetadataV10(nil)}, Extrinsic: ExtrinsicV11{Version: 0x0, SignedExtensions: []string(nil)}}, AsMetadataV12: MetadataV12{Modules: []ModuleMetadataV12(nil), Extrinsic: ExtrinsicV11{Version: 0x0, SignedExtensions: []string(nil)}}, AsMetadataV13: MetadataV13{Modules: []ModuleMetadataV13{ModuleMetadataV13{Name: "System", HasStorage: true, Storage: StorageMetadataV13{Prefix: "System", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Account", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "AccountInfo", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The full account information for a particular account ID."}}, StorageFunctionMetadataV13{Name: "ExtrinsicCount", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total extrinsics count for the current block."}}, StorageFunctionMetadataV13{Name: "BlockWeight", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "ConsumedWeight", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current weight for the block."}}, StorageFunctionMetadataV13{Name: "AllExtrinsicsLen", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total length (in bytes) for all extrinsics put together, for the current block."}}, StorageFunctionMetadataV13{Name: "BlockHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::BlockNumber", Value: "T::Hash", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Map of block numbers to block hashes."}}, StorageFunctionMetadataV13{Name: "ExtrinsicData", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "u32", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Extrinsics data for the current block (maps an extrinsic's index to its data)."}}, StorageFunctionMetadataV13{Name: "Number", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current block number being processed. Set by `execute_block`."}}, StorageFunctionMetadataV13{Name: "ParentHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Hash of the previous block."}}, StorageFunctionMetadataV13{Name: "Digest", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "DigestOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Digest of the current block, also part of the block header."}}, StorageFunctionMetadataV13{Name: "Events", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Events deposited for the current block."}}, StorageFunctionMetadataV13{Name: "EventCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "EventIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of events in the `Events` list."}}, StorageFunctionMetadataV13{Name: "EventTopics", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::Hash", Value: "Vec<(T::BlockNumber, EventIndex)>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Mapping between a topic (represented by T::Hash) and a vector of indexes", " of events in the `>` list.", "", " All topic vectors have deterministic storage locations depending on the topic. This", " allows light-clients to leverage the changes trie storage tracking mechanism and", " in case of changes fetch the list of events of interest.", "", " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", " the `EventIndex` then in case if the topic has the same contents on the next block", " no notification will be triggered thus the event might be lost."}}, StorageFunctionMetadataV13{Name: "LastRuntimeUpgrade", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "LastRuntimeUpgradeInfo", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened."}}, StorageFunctionMetadataV13{Name: "UpgradedToU32RefCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if we have upgraded so that `type RefCount` is `u32`. False (default) if not."}}, StorageFunctionMetadataV13{Name: "UpgradedToTripleRefCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", " (default) if not."}}, StorageFunctionMetadataV13{Name: "ExecutionPhase", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Phase", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The execution phase of the block."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "fill_block", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "_ratio", Type: "Perbill"}}, Documentation: []Text{" A dispatch that will fill the block weight up to the given ratio."}}, FunctionMetadataV4{Name: "remark", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "_remark", Type: "Vec"}}, Documentation: []Text{" Make some on-chain remark.", "", " # ", " - `O(1)`", " # "}}, FunctionMetadataV4{Name: "set_heap_pages", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "pages", Type: "u64"}}, Documentation: []Text{" Set the number of pages in the WebAssembly environment's heap.", "", " # ", " - `O(1)`", " - 1 storage write.", " - Base Weight: 1.405 µs", " - 1 write to HEAP_PAGES", " # "}}, FunctionMetadataV4{Name: "set_code", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "code", Type: "Vec"}}, Documentation: []Text{" Set the new runtime code.", "", " # ", " - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`", " - 1 storage write (codec `O(C)`).", " - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive).", " - 1 event.", " The weight of this function is dependent on the runtime, but generally this is very expensive.", " We will treat this as a full block.", " # "}}, FunctionMetadataV4{Name: "set_code_without_checks", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "code", Type: "Vec"}}, Documentation: []Text{" Set the new runtime code without doing any checks of the given `code`.", "", " # ", " - `O(C)` where `C` length of `code`", " - 1 storage write (codec `O(C)`).", " - 1 event.", " The weight of this function is dependent on the runtime. We will treat this as a full block.", " # "}}, FunctionMetadataV4{Name: "set_changes_trie_config", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "changes_trie_config", Type: "Option"}}, Documentation: []Text{" Set the new changes trie configuration.", "", " # ", " - `O(1)`", " - 1 storage write or delete (codec `O(1)`).", " - 1 call to `deposit_log`: Uses `append` API, so O(1)", " - Base Weight: 7.218 µs", " - DB Weight:", " - Writes: Changes Trie, System Digest", " # "}}, FunctionMetadataV4{Name: "set_storage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "items", Type: "Vec"}}, Documentation: []Text{" Set some items of storage.", "", " # ", " - `O(I)` where `I` length of `items`", " - `I` storage writes (`O(1)`).", " - Base Weight: 0.568 * i µs", " - Writes: Number of items", " # "}}, FunctionMetadataV4{Name: "kill_storage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "keys", Type: "Vec"}}, Documentation: []Text{" Kill some items from storage.", "", " # ", " - `O(IK)` where `I` length of `keys` and `K` length of one key", " - `I` storage deletions.", " - Base Weight: .378 * i µs", " - Writes: Number of items", " # "}}, FunctionMetadataV4{Name: "kill_prefix", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "prefix", Type: "Key"}, FunctionArgumentMetadata{Name: "_subkeys", Type: "u32"}}, Documentation: []Text{" Kill all storage items with a key that starts with the given prefix.", "", " **NOTE:** We rely on the Root origin to provide us the number of subkeys under", " the prefix we are removing to accurately calculate the weight of this function.", "", " # ", " - `O(P)` where `P` amount of keys with prefix `prefix`", " - `P` storage deletions.", " - Base Weight: 0.834 * P µs", " - Writes: Number of subkeys + 1", " # "}}, FunctionMetadataV4{Name: "remark_with_event", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "remark", Type: "Vec"}}, Documentation: []Text{" Make some on-chain remark and emit event.", "", " # ", " - `O(b)` where b is the length of the remark.", " - 1 event.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "ExtrinsicSuccess", Args: []Type{"DispatchInfo"}, Documentation: []Text{" An extrinsic completed successfully. \\[info\\]"}}, EventMetadataV4{Name: "ExtrinsicFailed", Args: []Type{"DispatchError", "DispatchInfo"}, Documentation: []Text{" An extrinsic failed. \\[error, info\\]"}}, EventMetadataV4{Name: "CodeUpdated", Args: []Type(nil), Documentation: []Text{" `:code` was updated."}}, EventMetadataV4{Name: "NewAccount", Args: []Type{"AccountId"}, Documentation: []Text{" A new \\[account\\] was created."}}, EventMetadataV4{Name: "KilledAccount", Args: []Type{"AccountId"}, Documentation: []Text{" An \\[account\\] was reaped."}}, EventMetadataV4{Name: "Remarked", Args: []Type{"AccountId", "Hash"}, Documentation: []Text{" On on-chain remark happened. \\[origin, remark_hash\\]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "BlockWeights", Type: "limits::BlockWeights", Value: Bytes{0x0, 0xf2, 0x5, 0x2a, 0x1, 0x0, 0x0, 0x0, 0x0, 0x20, 0x4a, 0xa9, 0xd1, 0x1, 0x0, 0x0, 0x40, 0x59, 0x73, 0x7, 0x0, 0x0, 0x0, 0x0, 0x1, 0xc0, 0x6e, 0x96, 0xa6, 0x2e, 0x1, 0x0, 0x0, 0x1, 0x0, 0x98, 0xf7, 0x3e, 0x5d, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x59, 0x73, 0x7, 0x0, 0x0, 0x0, 0x0, 0x1, 0xc0, 0xf6, 0xe8, 0x10, 0xa3, 0x1, 0x0, 0x0, 0x1, 0x0, 0x20, 0x4a, 0xa9, 0xd1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x88, 0x52, 0x6a, 0x74, 0x0, 0x0, 0x0, 0x40, 0x59, 0x73, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Block & extrinsics weights: base values and limits."}}, ModuleConstantMetadataV6{Name: "BlockLength", Type: "limits::BlockLength", Value: Bytes{0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x50, 0x0}, Documentation: []Text{" The maximum length of a block (in bytes)."}}, ModuleConstantMetadataV6{Name: "BlockHashCount", Type: "T::BlockNumber", Value: Bytes{0x60, 0x9, 0x0, 0x0}, Documentation: []Text{" Maximum number of block number to block hash mappings to keep (oldest pruned first)."}}, ModuleConstantMetadataV6{Name: "DbWeight", Type: "RuntimeDbWeight", Value: Bytes{0x40, 0x78, 0x7d, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe1, 0xf5, 0x5, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The weight of runtime database operations the runtime can invoke."}}, ModuleConstantMetadataV6{Name: "Version", Type: "RuntimeVersion", Value: Bytes{0x10, 0x6e, 0x6f, 0x64, 0x65, 0x38, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x2d, 0x6e, 0x6f, 0x64, 0x65, 0xa, 0x0, 0x0, 0x0, 0xb, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x34, 0xdf, 0x6a, 0xcb, 0x68, 0x99, 0x7, 0x60, 0x9b, 0x3, 0x0, 0x0, 0x0, 0x37, 0xe3, 0x97, 0xfc, 0x7c, 0x91, 0xf5, 0xe4, 0x1, 0x0, 0x0, 0x0, 0x40, 0xfe, 0x3a, 0xd4, 0x1, 0xf8, 0x95, 0x9a, 0x5, 0x0, 0x0, 0x0, 0xd2, 0xbc, 0x98, 0x97, 0xee, 0xd0, 0x8f, 0x15, 0x2, 0x0, 0x0, 0x0, 0xf7, 0x8b, 0x27, 0x8b, 0xe5, 0x3f, 0x45, 0x4c, 0x2, 0x0, 0x0, 0x0, 0xed, 0x99, 0xc5, 0xac, 0xb2, 0x5e, 0xed, 0xf5, 0x2, 0x0, 0x0, 0x0, 0xcb, 0xca, 0x25, 0xe3, 0x9f, 0x14, 0x23, 0x87, 0x2, 0x0, 0x0, 0x0, 0x68, 0x7a, 0xd4, 0x4a, 0xd3, 0x7f, 0x3, 0xc2, 0x1, 0x0, 0x0, 0x0, 0xbc, 0x9d, 0x89, 0x90, 0x4f, 0x5b, 0x92, 0x3f, 0x1, 0x0, 0x0, 0x0, 0x68, 0xb6, 0x6b, 0xa1, 0x22, 0xc9, 0x3f, 0xa7, 0x1, 0x0, 0x0, 0x0, 0x37, 0xc8, 0xbb, 0x13, 0x50, 0xa9, 0xa2, 0xa8, 0x1, 0x0, 0x0, 0x0, 0x91, 0xd5, 0xdf, 0x18, 0xb0, 0xd2, 0xcf, 0x58, 0x1, 0x0, 0x0, 0x0, 0xab, 0x3c, 0x5, 0x72, 0x29, 0x1f, 0xeb, 0x8b, 0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0}, Documentation: []Text{" Get the chain's current version."}}, ModuleConstantMetadataV6{Name: "SS58Prefix", Type: "u8", Value: Bytes{0x2a}, Documentation: []Text{" The designated SS85 prefix of this chain.", "", " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", " that the runtime should know about the prefix in order to make use of it as", " an identifier of the chain."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidSpecName", Documentation: []Text{" The name of specification does not match between the current runtime", " and the new runtime."}}, ErrorMetadataV8{Name: "SpecVersionNeedsToIncrease", Documentation: []Text{" The specification version is not allowed to decrease between the current runtime", " and the new runtime."}}, ErrorMetadataV8{Name: "FailedToExtractRuntimeVersion", Documentation: []Text{" Failed to extract the runtime version from the new runtime.", "", " Either calling `Core_version` or decoding `RuntimeVersion` failed."}}, ErrorMetadataV8{Name: "NonDefaultComposite", Documentation: []Text{" Suicide called when the account has non-default composite data."}}, ErrorMetadataV8{Name: "NonZeroRefCount", Documentation: []Text{" There is a non-zero reference count preventing the account from being purged."}}}, Index: 0x0}, ModuleMetadataV13{Name: "Utility", HasStorage: false, Storage: StorageMetadataV13{Prefix: "", Items: []StorageFunctionMetadataV13(nil)}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "batch", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "calls", Type: "Vec<::Call>"}}, Documentation: []Text{" Send a batch of dispatch calls.", "", " May be called from any origin.", "", " - `calls`: The calls to be dispatched from the same origin.", "", " If origin is root then call are dispatch without checking origin filter. (This includes", " bypassing `frame_system::Config::BaseCallFilter`).", "", " # ", " - Complexity: O(C) where C is the number of calls to be batched.", " # ", "", " This will return `Ok` in all circumstances. To determine the success of the batch, an", " event is deposited. If a call failed and the batch was interrupted, then the", " `BatchInterrupted` event is deposited, along with the number of successful calls made", " and the error of the failed call. If all were successful, then the `BatchCompleted`", " event is deposited."}}, FunctionMetadataV4{Name: "as_derivative", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "u16"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Send a call through an indexed pseudonym of the sender.", "", " Filter from origin are passed along. The call will be dispatched with an origin which", " use the same filter as the origin of this call.", "", " NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", " because you expect `proxy` to have been used prior in the call stack and you do not want", " the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", " in the Multisig pallet instead.", "", " NOTE: Prior to version *12, this was called `as_limited_sub`.", "", " The dispatch origin for this call must be _Signed_."}}, FunctionMetadataV4{Name: "batch_all", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "calls", Type: "Vec<::Call>"}}, Documentation: []Text{" Send a batch of dispatch calls and atomically execute them.", " The whole transaction will rollback and fail if any of the calls failed.", "", " May be called from any origin.", "", " - `calls`: The calls to be dispatched from the same origin.", "", " If origin is root then call are dispatch without checking origin filter. (This includes", " bypassing `frame_system::Config::BaseCallFilter`).", "", " # ", " - Complexity: O(C) where C is the number of calls to be batched.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "BatchInterrupted", Args: []Type{"u32", "DispatchError"}, Documentation: []Text{" Batch of dispatches did not complete fully. Index of first failing dispatch given, as", " well as the error. \\[index, error\\]"}}, EventMetadataV4{Name: "BatchCompleted", Args: []Type(nil), Documentation: []Text{" Batch of dispatches completed fully with no error."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil), Index: 0x1}, ModuleMetadataV13{Name: "Babe", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Babe", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "EpochIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current epoch index."}}, StorageFunctionMetadataV13{Name: "Authorities", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec<(AuthorityId, BabeAuthorityWeight)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Current epoch authorities."}}, StorageFunctionMetadataV13{Name: "GenesisSlot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Slot", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The slot at which the first epoch actually started. This is 0", " until the first block of the chain."}}, StorageFunctionMetadataV13{Name: "CurrentSlot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Slot", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current slot number."}}, StorageFunctionMetadataV13{Name: "Randomness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "schnorrkel::Randomness", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The epoch randomness for the *current* epoch.", "", " # Security", "", " This MUST NOT be used for gambling, as it can be influenced by a", " malicious validator in the short term. It MAY be used in many", " cryptographic protocols, however, so long as one remembers that this", " (like everything else on-chain) it is public. For example, it can be", " used where a number is needed that cannot have been chosen by an", " adversary, for purposes such as public-coin zero-knowledge proofs."}}, StorageFunctionMetadataV13{Name: "PendingEpochConfigChange", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "NextConfigDescriptor", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Pending epoch configuration change that will be applied when the next epoch is enacted."}}, StorageFunctionMetadataV13{Name: "NextRandomness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "schnorrkel::Randomness", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Next epoch randomness."}}, StorageFunctionMetadataV13{Name: "NextAuthorities", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec<(AuthorityId, BabeAuthorityWeight)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Next epoch authorities."}}, StorageFunctionMetadataV13{Name: "SegmentIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Randomness under construction.", "", " We make a tradeoff between storage accesses and list length.", " We store the under-construction randomness in segments of up to", " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", "", " Once a segment reaches this length, we begin the next one.", " We reset all segments and return to `0` at the beginning of every", " epoch."}}, StorageFunctionMetadataV13{Name: "UnderConstruction", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "u32", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay."}}, StorageFunctionMetadataV13{Name: "Initialized", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "MaybeRandomness", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Temporary value (cleared at block finalization) which is `Some`", " if per-block initialization has already been called for current block."}}, StorageFunctionMetadataV13{Name: "AuthorVrfRandomness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "MaybeRandomness", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Temporary value (cleared at block finalization) that includes the VRF output generated", " at this block. This field should always be populated during block processing unless", " secondary plain slots are enabled (which don't contain a VRF output)."}}, StorageFunctionMetadataV13{Name: "EpochStart", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "(T::BlockNumber, T::BlockNumber)", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The block numbers when the last and current epoch have started, respectively `N-1` and", " `N`.", " NOTE: We track this is in order to annotate the block number when a given pool of", " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", " slots, which may be skipped, the block numbers may not line up with the slot numbers."}}, StorageFunctionMetadataV13{Name: "Lateness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" How late the current block is compared to its parent.", "", " This entry is populated as part of block execution and is cleaned up", " on block finalization. Querying this storage entry outside of block", " execution context should always yield zero."}}, StorageFunctionMetadataV13{Name: "EpochConfig", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "BabeEpochConfiguration", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The configuration for the current epoch. Should never be `None` as it is initialized in genesis."}}, StorageFunctionMetadataV13{Name: "NextEpochConfig", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "BabeEpochConfiguration", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The configuration for the next epoch, `None` if the config will not change", " (you can fallback to `EpochConfig` instead in that case)."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "report_equivocation", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "equivocation_proof", Type: "EquivocationProof"}, FunctionArgumentMetadata{Name: "key_owner_proof", Type: "T::KeyOwnerProof"}}, Documentation: []Text{" Report authority equivocation/misbehavior. This method will verify", " the equivocation proof and validate the given key ownership proof", " against the extracted offender. If both are valid, the offence will", " be reported."}}, FunctionMetadataV4{Name: "report_equivocation_unsigned", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "equivocation_proof", Type: "EquivocationProof"}, FunctionArgumentMetadata{Name: "key_owner_proof", Type: "T::KeyOwnerProof"}}, Documentation: []Text{" Report authority equivocation/misbehavior. This method will verify", " the equivocation proof and validate the given key ownership proof", " against the extracted offender. If both are valid, the offence will", " be reported.", " This extrinsic must be called unsigned and it is expected that only", " block authors will call it (validated in `ValidateUnsigned`), as such", " if the block author is defined it will be defined as the equivocation", " reporter."}}, FunctionMetadataV4{Name: "plan_config_change", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "config", Type: "NextConfigDescriptor"}}, Documentation: []Text{" Plan an epoch config change. The epoch config change is recorded and will be enacted on", " the next call to `enact_epoch_change`. The config will be activated one epoch after.", " Multiple calls to this method will replace any existing planned config change that had", " not been enacted yet."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "EpochDuration", Type: "u64", Value: Bytes{0xc8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of time, in slots, that each epoch should last.", " NOTE: Currently it is not possible to change the epoch duration after", " the chain has started. Attempting to do so will brick block production."}}, ModuleConstantMetadataV6{Name: "ExpectedBlockTime", Type: "T::Moment", Value: Bytes{0xb8, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The expected average block time at which BABE should be creating", " blocks. Since BABE is probabilistic it is not trivial to figure out", " what the expected average block time should be based on the slot", " duration and the security parameter `c` (where `1 - c` represents", " the probability of a slot being empty)."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidEquivocationProof", Documentation: []Text{" An equivocation proof provided as part of an equivocation report is invalid."}}, ErrorMetadataV8{Name: "InvalidKeyOwnershipProof", Documentation: []Text{" A key ownership proof provided as part of an equivocation report is invalid."}}, ErrorMetadataV8{Name: "DuplicateOffenceReport", Documentation: []Text{" A given equivocation report is valid but already previously reported."}}}, Index: 0x2}, ModuleMetadataV13{Name: "Timestamp", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Timestamp", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Now", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::Moment", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current time for the current block."}}, StorageFunctionMetadataV13{Name: "DidUpdate", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Did the timestamp get updated in this block?"}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "now", Type: "Compact"}}, Documentation: []Text{" Set the current time.", "", " This call should be invoked exactly once per block. It will panic at the finalization", " phase, if this call hasn't been invoked by that time.", "", " The timestamp should be greater than the previous one by the amount specified by", " `MinimumPeriod`.", "", " The dispatch origin for this call must be `Inherent`.", "", " # ", " - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", " - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)", " - 1 event handler `on_timestamp_set`. Must be `O(1)`.", " # "}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "MinimumPeriod", Type: "T::Moment", Value: Bytes{0xdc, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum period between blocks. Beware that this is different to the *expected* period", " that the block production apparatus provides. Your chosen consensus system will generally", " work with this to determine a sensible block time. e.g. For Aura, it will be double this", " period on default settings."}}}, Errors: []ErrorMetadataV8(nil), Index: 0x3}, ModuleMetadataV13{Name: "Authorship", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Authorship", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Uncles", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Uncles"}}, StorageFunctionMetadataV13{Name: "Author", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Author of current block."}}, StorageFunctionMetadataV13{Name: "DidSetUncles", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Whether uncles were already set in this block."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_uncles", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_uncles", Type: "Vec"}}, Documentation: []Text{" Provide a set of uncles."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidUncleParent", Documentation: []Text{" The uncle parent not in the chain."}}, ErrorMetadataV8{Name: "UnclesAlreadySet", Documentation: []Text{" Uncles already set in the block."}}, ErrorMetadataV8{Name: "TooManyUncles", Documentation: []Text{" Too many uncles."}}, ErrorMetadataV8{Name: "GenesisUncle", Documentation: []Text{" The uncle is genesis."}}, ErrorMetadataV8{Name: "TooHighUncle", Documentation: []Text{" The uncle is too high in chain."}}, ErrorMetadataV8{Name: "UncleAlreadyIncluded", Documentation: []Text{" The uncle is already included."}}, ErrorMetadataV8{Name: "OldUncle", Documentation: []Text{" The uncle isn't recent enough to be included."}}}, Index: 0x4}, ModuleMetadataV13{Name: "Indices", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Indices", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Accounts", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountIndex", Value: "(T::AccountId, BalanceOf, bool)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The lookup from index to account."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "claim", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "T::AccountIndex"}}, Documentation: []Text{" Assign an previously unassigned index.", "", " Payment: `Deposit` is reserved from the sender account.", "", " The dispatch origin for this call must be _Signed_.", "", " - `index`: the index to be claimed. This must not be in use.", "", " Emits `IndexAssigned` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - One reserve operation.", " - One event.", " -------------------", " - DB Weight: 1 Read/Write (Accounts)", " # "}}, FunctionMetadataV4{Name: "transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "index", Type: "T::AccountIndex"}}, Documentation: []Text{" Assign an index already owned by the sender to another account. The balance reservation", " is effectively transferred to the new account.", "", " The dispatch origin for this call must be _Signed_.", "", " - `index`: the index to be re-assigned. This must be owned by the sender.", " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", "", " Emits `IndexAssigned` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - One transfer operation.", " - One event.", " -------------------", " - DB Weight:", " - Reads: Indices Accounts, System Account (recipient)", " - Writes: Indices Accounts, System Account (recipient)", " # "}}, FunctionMetadataV4{Name: "free", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "T::AccountIndex"}}, Documentation: []Text{" Free up an index owned by the sender.", "", " Payment: Any previous deposit placed for the index is unreserved in the sender account.", "", " The dispatch origin for this call must be _Signed_ and the sender must own the index.", "", " - `index`: the index to be freed. This must be owned by the sender.", "", " Emits `IndexFreed` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - One reserve operation.", " - One event.", " -------------------", " - DB Weight: 1 Read/Write (Accounts)", " # "}}, FunctionMetadataV4{Name: "force_transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "index", Type: "T::AccountIndex"}, FunctionArgumentMetadata{Name: "freeze", Type: "bool"}}, Documentation: []Text{" Force an index to an account. This doesn't require a deposit. If the index is already", " held, then any deposit is reimbursed to its current owner.", "", " The dispatch origin for this call must be _Root_.", "", " - `index`: the index to be (re-)assigned.", " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", " - `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", "", " Emits `IndexAssigned` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - Up to one reserve operation.", " - One event.", " -------------------", " - DB Weight:", " - Reads: Indices Accounts, System Account (original owner)", " - Writes: Indices Accounts, System Account (original owner)", " # "}}, FunctionMetadataV4{Name: "freeze", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "T::AccountIndex"}}, Documentation: []Text{" Freeze an index so it will always point to the sender account. This consumes the deposit.", "", " The dispatch origin for this call must be _Signed_ and the signing account must have a", " non-frozen account `index`.", "", " - `index`: the index to be frozen in place.", "", " Emits `IndexFrozen` if successful.", "", " # ", " - `O(1)`.", " - One storage mutation (codec `O(1)`).", " - Up to one slash operation.", " - One event.", " -------------------", " - DB Weight: 1 Read/Write (Accounts)", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "IndexAssigned", Args: []Type{"AccountId", "AccountIndex"}, Documentation: []Text{" A account index was assigned. \\[index, who\\]"}}, EventMetadataV4{Name: "IndexFreed", Args: []Type{"AccountIndex"}, Documentation: []Text{" A account index has been freed up (unassigned). \\[index\\]"}}, EventMetadataV4{Name: "IndexFrozen", Args: []Type{"AccountIndex", "AccountId"}, Documentation: []Text{" A account index has been frozen to its current account ID. \\[index, who\\]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "Deposit", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The deposit needed for reserving an index."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotAssigned", Documentation: []Text{" The index was not already assigned."}}, ErrorMetadataV8{Name: "NotOwner", Documentation: []Text{" The index is assigned to another account."}}, ErrorMetadataV8{Name: "InUse", Documentation: []Text{" The index was not available."}}, ErrorMetadataV8{Name: "NotTransfer", Documentation: []Text{" The source and destination accounts are identical."}}, ErrorMetadataV8{Name: "Permanent", Documentation: []Text{" The index is permanent and may not be freed/changed."}}}, Index: 0x5}, ModuleMetadataV13{Name: "Balances", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Balances", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "TotalIssuance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::Balance", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total units issued in the system."}}, StorageFunctionMetadataV13{Name: "Account", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "AccountData", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The balance of an account.", "", " NOTE: This is only used in the case that this pallet is used to store balances."}}, StorageFunctionMetadataV13{Name: "Locks", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "WeakBoundedVec, T::MaxLocks>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any liquidity locks on some account balances.", " NOTE: Should only be accessed when setting, changing and freeing a lock."}}, StorageFunctionMetadataV13{Name: "Reserves", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "BoundedVec, T::\nMaxReserves>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Named reserves on some account balances."}}, StorageFunctionMetadataV13{Name: "StorageVersion", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Releases", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Storage version of the pallet.", "", " This is set to v2.0.0 for new networks."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact"}}, Documentation: []Text{" Transfer some liquid free balance to another account.", "", " `transfer` will set the `FreeBalance` of the sender and receiver.", " It will decrease the total issuance of the system by the `TransferFee`.", " If the sender's account is below the existential deposit as a result", " of the transfer, the account will be reaped.", "", " The dispatch origin for this call must be `Signed` by the transactor.", "", " # ", " - Dependent on arguments but not critical, given proper implementations for", " input config See related functions below.", " - It contains a limited number of reads and writes internally and no complex computation.", "", " Related functions:", "", " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", " - Transferring balances to accounts that did not exist before will cause", " `T::OnNewAccount::on_new_account` to be called.", " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.", " - `transfer_keep_alive` works the same way as `transfer`, but has an additional", " check that the transfer will not kill the origin account.", " ---------------------------------", " - Base Weight: 73.64 µs, worst case scenario (account created, account removed)", " - DB Weight: 1 Read and 1 Write to destination account", " - Origin account is already in memory, so no DB operations for them.", " # "}}, FunctionMetadataV4{Name: "set_balance", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "::Source"}, FunctionArgumentMetadata{Name: "new_free", Type: "Compact"}, FunctionArgumentMetadata{Name: "new_reserved", Type: "Compact"}}, Documentation: []Text{" Set the balances of a given account.", "", " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", " also decrease the total issuance of the system (`TotalIssuance`).", " If the new free or reserved balance is below the existential deposit,", " it will reset the account nonce (`frame_system::AccountNonce`).", "", " The dispatch origin for this call is `root`.", "", " # ", " - Independent of the arguments.", " - Contains a limited number of reads and writes.", " ---------------------", " - Base Weight:", " - Creating: 27.56 µs", " - Killing: 35.11 µs", " - DB Weight: 1 Read, 1 Write to `who`", " # "}}, FunctionMetadataV4{Name: "force_transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "source", Type: "::Source"}, FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact"}}, Documentation: []Text{" Exactly as `transfer`, except the origin must be root and the source account may be", " specified.", " # ", " - Same as transfer, but additional read and write because the source account is", " not assumed to be in the overlay.", " # "}}, FunctionMetadataV4{Name: "transfer_keep_alive", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact"}}, Documentation: []Text{" Same as the [`transfer`] call, but with a check that the transfer will not kill the", " origin account.", "", " 99% of the time you want [`transfer`] instead.", "", " [`transfer`]: struct.Pallet.html#method.transfer", " # ", " - Cheaper than transfer because account cannot be killed.", " - Base Weight: 51.4 µs", " - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already)", " #"}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Endowed", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" An account was created with some free balance. \\[account, free_balance\\]"}}, EventMetadataV4{Name: "DustLost", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" An account was removed whose balance was non-zero but below ExistentialDeposit,", " resulting in an outright loss. \\[account, balance\\]"}}, EventMetadataV4{Name: "Transfer", Args: []Type{"AccountId", "AccountId", "Balance"}, Documentation: []Text{" Transfer succeeded. \\[from, to, value\\]"}}, EventMetadataV4{Name: "BalanceSet", Args: []Type{"AccountId", "Balance", "Balance"}, Documentation: []Text{" A balance was set by root. \\[who, free, reserved\\]"}}, EventMetadataV4{Name: "Deposit", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" Some amount was deposited (e.g. for transaction fees). \\[who, deposit\\]"}}, EventMetadataV4{Name: "Reserved", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" Some balance was reserved (moved from free to reserved). \\[who, value\\]"}}, EventMetadataV4{Name: "Unreserved", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" Some balance was unreserved (moved from reserved to free). \\[who, value\\]"}}, EventMetadataV4{Name: "ReserveRepatriated", Args: []Type{"AccountId", "AccountId", "Balance", "Status"}, Documentation: []Text{" Some balance was moved from the reserve of the first account to the second account.", " Final argument indicates the destination balance type.", " \\[from, to, balance, destination_status\\]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "ExistentialDeposit", Type: "T::Balance", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount required to keep an account open."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "VestingBalance", Documentation: []Text{" Vesting balance too high to send value"}}, ErrorMetadataV8{Name: "LiquidityRestrictions", Documentation: []Text{" Account liquidity restrictions prevent withdrawal"}}, ErrorMetadataV8{Name: "InsufficientBalance", Documentation: []Text{" Balance too low to send value"}}, ErrorMetadataV8{Name: "ExistentialDeposit", Documentation: []Text{" Value too low to create account due to existential deposit"}}, ErrorMetadataV8{Name: "KeepAlive", Documentation: []Text{" Transfer/payment would kill account"}}, ErrorMetadataV8{Name: "ExistingVestingSchedule", Documentation: []Text{" A vesting schedule already exists for this account"}}, ErrorMetadataV8{Name: "DeadAccount", Documentation: []Text{" Beneficiary account must pre-exist"}}, ErrorMetadataV8{Name: "TooManyReserves", Documentation: []Text{" Number of named reserves exceed MaxReserves"}}}, Index: 0x6}, ModuleMetadataV13{Name: "TransactionPayment", HasStorage: true, Storage: StorageMetadataV13{Prefix: "TransactionPayment", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "NextFeeMultiplier", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Multiplier", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x64, 0xa7, 0xb3, 0xb6, 0xe0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, StorageFunctionMetadataV13{Name: "StorageVersion", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Releases", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}}}, HasCalls: false, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "TransactionByteFee", Type: "BalanceOf", Value: Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the per-byte portion."}}, ModuleConstantMetadataV6{Name: "WeightToFee", Type: "Vec>>", Value: Bytes{0x4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}, Documentation: []Text{" The polynomial that is applied in order to derive fee from weight."}}}, Errors: []ErrorMetadataV8(nil), Index: 0x7}, ModuleMetadataV13{Name: "ElectionProviderMultiPhase", HasStorage: true, Storage: StorageMetadataV13{Prefix: "ElectionProviderMultiPhase", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Round", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x1, 0x0, 0x0, 0x0}, Documentation: []Text{" Internal counter for the number of rounds.", "", " This is useful for de-duplication of transactions submitted to the pool, and general", " diagnostics of the pallet.", "", " This is merely incremented once per every time that an upstream `elect` is called."}}, StorageFunctionMetadataV13{Name: "CurrentPhase", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Phase", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Current phase."}}, StorageFunctionMetadataV13{Name: "QueuedSolution", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "ReadySolution", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Current best solution, signed or unsigned, queued to be returned upon `elect`."}}, StorageFunctionMetadataV13{Name: "Snapshot", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "RoundSnapshot", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Snapshot data of the round.", "", " This is created at the beginning of the signed phase and cleared upon calling `elect`."}}, StorageFunctionMetadataV13{Name: "DesiredTargets", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Desired number of targets to elect for this round.", "", " Only exists when [`Snapshot`] is present."}}, StorageFunctionMetadataV13{Name: "SnapshotMetadata", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "SolutionOrSnapshotSize", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The metadata of the [`RoundSnapshot`]", "", " Only exists when [`Snapshot`] is present."}}, StorageFunctionMetadataV13{Name: "MinimumUntrustedScore", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "ElectionScore", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The minimum score that each 'untrusted' solution must attain in order to be considered", " feasible.", "", " Can be set via `set_minimum_untrusted_score`."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "submit_unsigned", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "solution", Type: "RawSolution>"}, FunctionArgumentMetadata{Name: "witness", Type: "SolutionOrSnapshotSize"}}, Documentation: []Text{" Submit a solution for the unsigned phase.", "", " The dispatch origin fo this call must be __none__.", "", " This submission is checked on the fly. Moreover, this unsigned solution is only", " validated when submitted to the pool from the **local** node. Effectively, this means", " that only active validators can submit this transaction when authoring a block (similar", " to an inherent).", "", " To prevent any incorrect solution (and thus wasted time/weight), this transaction will", " panic if the solution submitted by the validator is invalid in any way, effectively", " putting their authoring reward at risk.", "", " No deposit or reward is associated with this submission."}}, FunctionMetadataV4{Name: "set_minimum_untrusted_score", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "maybe_next_score", Type: "Option"}}, Documentation: []Text{" Set a new value for `MinimumUntrustedScore`.", "", " Dispatch origin must be aligned with `T::ForceOrigin`.", "", " This check can be turned off by setting the value to `None`."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "SolutionStored", Args: []Type{"ElectionCompute"}, Documentation: []Text{" A solution was stored with the given compute.", "", " If the solution is signed, this means that it hasn't yet been processed. If the", " solution is unsigned, this means that it has also been processed."}}, EventMetadataV4{Name: "ElectionFinalized", Args: []Type{"Option"}, Documentation: []Text{" The election has been finalized, with `Some` of the given computation, or else if the", " election failed, `None`."}}, EventMetadataV4{Name: "Rewarded", Args: []Type{"AccountId"}, Documentation: []Text{" An account has been rewarded for their signed submission being finalized."}}, EventMetadataV4{Name: "Slashed", Args: []Type{"AccountId"}, Documentation: []Text{" An account has been slashed for submitting an invalid signed submission."}}, EventMetadataV4{Name: "SignedPhaseStarted", Args: []Type{"u32"}, Documentation: []Text{" The signed phase of the given round has started."}}, EventMetadataV4{Name: "UnsignedPhaseStarted", Args: []Type{"u32"}, Documentation: []Text{" The unsigned phase of the given round has started."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "UnsignedPhase", Type: "T::BlockNumber", Value: Bytes{0x32, 0x0, 0x0, 0x0}, Documentation: []Text{" Duration of the unsigned phase."}}, ModuleConstantMetadataV6{Name: "SignedPhase", Type: "T::BlockNumber", Value: Bytes{0x32, 0x0, 0x0, 0x0}, Documentation: []Text{" Duration of the signed phase."}}, ModuleConstantMetadataV6{Name: "SolutionImprovementThreshold", Type: "Perbill", Value: Bytes{0xa0, 0x86, 0x1, 0x0}, Documentation: []Text{" The minimum amount of improvement to the solution score that defines a solution as", " \"better\" (in any phase)."}}, ModuleConstantMetadataV6{Name: "OffchainRepeat", Type: "T::BlockNumber", Value: Bytes{0x5, 0x0, 0x0, 0x0}, Documentation: []Text{" The repeat threshold of the offchain worker.", "", " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", " to submit the worker's solution."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "PreDispatchEarlySubmission", Documentation: []Text{" Submission was too early."}}, ErrorMetadataV8{Name: "PreDispatchWrongWinnerCount", Documentation: []Text{" Wrong number of winners presented."}}, ErrorMetadataV8{Name: "PreDispatchWeakSubmission", Documentation: []Text{" Submission was too weak, score-wise."}}, ErrorMetadataV8{Name: "OcwCallWrongEra", Documentation: []Text{" OCW submitted solution for wrong round"}}}, Index: 0x8}, ModuleMetadataV13{Name: "Staking", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Staking", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "HistoryDepth", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x54, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of eras to keep in history.", "", " Information is kept for eras in `[current_era - history_depth; current_era]`.", "", " Must be more than the number of eras delayed by session otherwise. I.e. active era must", " always be in history. I.e. `active_era > current_era - history_depth` must be", " guaranteed."}}, StorageFunctionMetadataV13{Name: "ValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The ideal number of staking participants."}}, StorageFunctionMetadataV13{Name: "MinimumValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum number of staking participants before emergency conditions are imposed."}}, StorageFunctionMetadataV13{Name: "Invulnerables", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", " easy to initialize and the performance hit is minimal (we expect no more than four", " invulnerables) and restricted to testnets."}}, StorageFunctionMetadataV13{Name: "Bonded", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all locked \"stash\" accounts to the controller account."}}, StorageFunctionMetadataV13{Name: "Ledger", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "StakingLedger>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all (unlocked) \"controller\" accounts to the info regarding the staking."}}, StorageFunctionMetadataV13{Name: "Payee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "RewardDestination", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Where the reward payment should be made. Keyed by stash."}}, StorageFunctionMetadataV13{Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "ValidatorPrefs", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0}, Documentation: []Text{" The map from (wannabe) validator stash key to the preferences of that validator."}}, StorageFunctionMetadataV13{Name: "Nominators", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "Nominations", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The map from nominator stash key to the set of stash keys of all validators to nominate."}}, StorageFunctionMetadataV13{Name: "CurrentEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "EraIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current era index.", "", " This is the latest planned era, depending on how the Session pallet queues the validator", " set, it might be active or not."}}, StorageFunctionMetadataV13{Name: "ActiveEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "ActiveEraInfo", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The active era information, it holds index and start.", "", " The active era is the era being currently rewarded. Validator set of this era must be", " equal to [`SessionInterface::validators`]."}}, StorageFunctionMetadataV13{Name: "ErasStartSessionIndex", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "EraIndex", Value: "SessionIndex", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The session index at which the era start for the last `HISTORY_DEPTH` eras.", "", " Note: This tracks the starting session (i.e. session index when era start being active)", " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`."}}, StorageFunctionMetadataV13{Name: "ErasStakers", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "Exposure>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0}, Documentation: []Text{" Exposure of validator at era.", "", " This is keyed first by the era index to allow bulk deletion and then the stash account.", "", " Is it removed after `HISTORY_DEPTH` eras.", " If stakers hasn't been set or has been removed then empty exposure is returned."}}, StorageFunctionMetadataV13{Name: "ErasStakersClipped", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "Exposure>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0}, Documentation: []Text{" Clipped Exposure of validator at era.", "", " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", " `T::MaxNominatorRewardedPerValidator` biggest stakers.", " (Note: the field `total` and `own` of the exposure remains unchanged).", " This is used to limit the i/o cost for the nominator payout.", "", " This is keyed fist by the era index to allow bulk deletion and then the stash account.", "", " Is it removed after `HISTORY_DEPTH` eras.", " If stakers hasn't been set or has been removed then empty exposure is returned."}}, StorageFunctionMetadataV13{Name: "ErasValidatorPrefs", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "ValidatorPrefs", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0}, Documentation: []Text{" Similar to `ErasStakers`, this holds the preferences of validators.", "", " This is keyed first by the era index to allow bulk deletion and then the stash account.", "", " Is it removed after `HISTORY_DEPTH` eras."}}, StorageFunctionMetadataV13{Name: "ErasValidatorReward", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "EraIndex", Value: "BalanceOf", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The total validator era payout for the last `HISTORY_DEPTH` eras.", "", " Eras that haven't finished yet or has been removed doesn't have reward."}}, StorageFunctionMetadataV13{Name: "ErasRewardPoints", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "EraIndex", Value: "EraRewardPoints", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Rewards for the last `HISTORY_DEPTH` eras.", " If reward hasn't been set or has been removed then 0 reward is returned."}}, StorageFunctionMetadataV13{Name: "ErasTotalStake", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "EraIndex", Value: "BalanceOf", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total amount staked for the last `HISTORY_DEPTH` eras.", " If total hasn't been set or has been removed then 0 stake is returned."}}, StorageFunctionMetadataV13{Name: "ForceEra", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Forcing", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Mode of era forcing."}}, StorageFunctionMetadataV13{Name: "SlashRewardFraction", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Perbill", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The percentage of the slash that is distributed to reporters.", "", " The rest of the slashed value is handled by the `Slash`."}}, StorageFunctionMetadataV13{Name: "CanceledSlashPayout", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of currency given to reporters of a slash event which was", " canceled by extraordinary circumstances (e.g. governance)."}}, StorageFunctionMetadataV13{Name: "UnappliedSlashes", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "EraIndex", Value: "Vec>>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" All unapplied slashes that are queued for later."}}, StorageFunctionMetadataV13{Name: "BondedEras", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec<(EraIndex, SessionIndex)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from still-bonded eras to the first session index of that era.", "", " Must contains information for eras for the range:", " `[active_era - bounding_duration; active_era]`"}}, StorageFunctionMetadataV13{Name: "ValidatorSlashInEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "(Perbill, BalanceOf)", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" All slashing events on validators, mapped by era to the highest slash proportion", " and slash value of the era."}}, StorageFunctionMetadataV13{Name: "NominatorSlashInEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "BalanceOf", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" All slashing events on nominators, mapped by era to the highest slash value of the era."}}, StorageFunctionMetadataV13{Name: "SlashingSpans", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "slashing::SlashingSpans", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Slashing spans for stash accounts."}}, StorageFunctionMetadataV13{Name: "SpanSlash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "(T::AccountId, slashing::SpanIndex)", Value: "slashing::SpanRecord>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Records information about the maximum slash of a stash within a slashing span,", " as well as how much reward has been paid out."}}, StorageFunctionMetadataV13{Name: "EarliestUnappliedSlash", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "EraIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The earliest era for which we have a pending, unapplied slash."}}, StorageFunctionMetadataV13{Name: "CurrentPlannedSession", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "SessionIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The last planned session scheduled by the session pallet.", "", " This is basically in sync with the call to [`SessionManager::new_session`]."}}, StorageFunctionMetadataV13{Name: "StorageVersion", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Releases", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x5}, Documentation: []Text{" True if network has been upgraded to this version.", " Storage version of the pallet.", "", " This is set to v6.0.0 for new networks."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "bond", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "controller", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}, FunctionArgumentMetadata{Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" Take the origin account as a stash and lock up `value` of its balance. `controller` will", " be the account that controls it.", "", " `value` must be more than the `minimum_balance` specified by `T::Currency`.", "", " The dispatch origin for this call must be _Signed_ by the stash account.", "", " Emits `Bonded`.", "", " # ", " - Independent of the arguments. Moderate complexity.", " - O(1).", " - Three extra DB entries.", "", " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", " unless the `origin` falls below _existential deposit_ and gets removed as dust.", " ------------------", " Weight: O(1)", " DB Weight:", " - Read: Bonded, Ledger, [Origin Account], Current Era, History Depth, Locks", " - Write: Bonded, Payee, [Origin Account], Locks, Ledger", " # "}}, FunctionMetadataV4{Name: "bond_extra", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "max_additional", Type: "Compact>"}}, Documentation: []Text{" Add some extra amount that have appeared in the stash `free_balance` into the balance up", " for staking.", "", " Use this if there are additional funds in your stash account that you wish to bond.", " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount", " that can be added.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller and", " it can be only called when [`EraElectionStatus`] is `Closed`.", "", " Emits `Bonded`.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - O(1).", " - One DB entry.", " ------------", " DB Weight:", " - Read: Era Election Status, Bonded, Ledger, [Origin Account], Locks", " - Write: [Origin Account], Locks, Ledger", " # "}}, FunctionMetadataV4{Name: "unbond", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Schedule a portion of the stash to be unlocked ready for transfer out after the bond", " period ends. If this leaves an amount actively bonded less than", " T::Currency::minimum_balance(), then it is increased to the full amount.", "", " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", " the funds out of management ready for transfer.", "", " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", " to be called first to remove some of the chunks (if possible).", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " Emits `Unbonded`.", "", " See also [`Call::withdraw_unbonded`].", "", " # ", " - Independent of the arguments. Limited but potentially exploitable complexity.", " - Contains a limited number of reads.", " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)", " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.", " The only way to clean the aforementioned storage item is also user-controlled via", " `withdraw_unbonded`.", " - One DB entry.", " ----------", " Weight: O(1)", " DB Weight:", " - Read: EraElectionStatus, Ledger, CurrentEra, Locks, BalanceOf Stash,", " - Write: Locks, Ledger, BalanceOf Stash,", " "}}, FunctionMetadataV4{Name: "withdraw_unbonded", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "num_slashing_spans", Type: "u32"}}, Documentation: []Text{" Remove any unlocked chunks from the `unlocking` queue from our management.", "", " This essentially frees up that balance to be used by the stash account to do", " whatever it wants.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " Emits `Withdrawn`.", "", " See also [`Call::unbond`].", "", " # ", " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.", " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is", " indirectly user-controlled. See [`unbond`] for more detail.", " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.", " - Writes are limited to the `origin` account key.", " ---------------", " Complexity O(S) where S is the number of slashing spans to remove", " Update:", " - Reads: EraElectionStatus, Ledger, Current Era, Locks, [Origin Account]", " - Writes: [Origin Account], Locks, Ledger", " Kill:", " - Reads: EraElectionStatus, Ledger, Current Era, Bonded, Slashing Spans, [Origin", " Account], Locks, BalanceOf stash", " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,", " [Origin Account], Locks, BalanceOf stash.", " - Writes Each: SpanSlash * S", " NOTE: Weight annotation is the kill scenario, we refund otherwise.", " # "}}, FunctionMetadataV4{Name: "validate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "prefs", Type: "ValidatorPrefs"}}, Documentation: []Text{" Declare the desire to validate for the origin controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " -----------", " Weight: O(1)", " DB Weight:", " - Read: Era Election Status, Ledger", " - Write: Nominators, Validators", " # "}}, FunctionMetadataV4{Name: "nominate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "targets", Type: "Vec<::Source>"}}, Documentation: []Text{" Declare the desire to nominate `targets` for the origin controller.", "", " Effects will be felt at the beginning of the next era. This can only be called when", " [`EraElectionStatus`] is `Closed`.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " # ", " - The transaction's complexity is proportional to the size of `targets` (N)", " which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS).", " - Both the reads and writes follow a similar pattern.", " ---------", " Weight: O(N)", " where N is the number of targets", " DB Weight:", " - Reads: Era Election Status, Ledger, Current Era", " - Writes: Validators, Nominators", " # "}}, FunctionMetadataV4{Name: "chill", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Declare no desire to either validate or nominate.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains one read.", " - Writes are limited to the `origin` account key.", " --------", " Weight: O(1)", " DB Weight:", " - Read: EraElectionStatus, Ledger", " - Write: Validators, Nominators", " # "}}, FunctionMetadataV4{Name: "set_payee", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" (Re-)set the payment target for a controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " ---------", " - Weight: O(1)", " - DB Weight:", " - Read: Ledger", " - Write: Payee", " # "}}, FunctionMetadataV4{Name: "set_controller", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "controller", Type: "::Source"}}, Documentation: []Text{" (Re-)set the controller of a stash.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " ----------", " Weight: O(1)", " DB Weight:", " - Read: Bonded, Ledger New Controller, Ledger Old Controller", " - Write: Bonded, Ledger New Controller, Ledger Old Controller", " # "}}, FunctionMetadataV4{Name: "set_validator_count", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "Compact"}}, Documentation: []Text{" Sets the ideal number of validators.", "", " The dispatch origin must be Root.", "", " # ", " Weight: O(1)", " Write: Validator Count", " # "}}, FunctionMetadataV4{Name: "increase_validator_count", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "additional", Type: "Compact"}}, Documentation: []Text{" Increments the ideal number of validators.", "", " The dispatch origin must be Root.", "", " # ", " Same as [`set_validator_count`].", " # "}}, FunctionMetadataV4{Name: "scale_validator_count", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "factor", Type: "Percent"}}, Documentation: []Text{" Scale up the ideal number of validators by a factor.", "", " The dispatch origin must be Root.", "", " # ", " Same as [`set_validator_count`].", " # "}}, FunctionMetadataV4{Name: "force_no_eras", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be no new eras indefinitely.", "", " The dispatch origin must be Root.", "", " # ", " - No arguments.", " - Weight: O(1)", " - Write: ForceEra", " # "}}, FunctionMetadataV4{Name: "force_new_era", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be a new era at the end of the next session. After this, it will be", " reset to normal (non-forced) behaviour.", "", " The dispatch origin must be Root.", "", " # ", " - No arguments.", " - Weight: O(1)", " - Write ForceEra", " # "}}, FunctionMetadataV4{Name: "set_invulnerables", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "invulnerables", Type: "Vec"}}, Documentation: []Text{" Set the validators who cannot be slashed (if any).", "", " The dispatch origin must be Root.", "", " # ", " - O(V)", " - Write: Invulnerables", " # "}}, FunctionMetadataV4{Name: "force_unstake", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "stash", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "num_slashing_spans", Type: "u32"}}, Documentation: []Text{" Force a current staker to become completely unstaked, immediately.", "", " The dispatch origin must be Root.", "", " # ", " O(S) where S is the number of slashing spans to be removed", " Reads: Bonded, Slashing Spans, Account, Locks", " Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks", " Writes Each: SpanSlash * S", " # "}}, FunctionMetadataV4{Name: "force_new_era_always", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be a new era at the end of sessions indefinitely.", "", " The dispatch origin must be Root.", "", " # ", " - Weight: O(1)", " - Write: ForceEra", " # "}}, FunctionMetadataV4{Name: "cancel_deferred_slash", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "era", Type: "EraIndex"}, FunctionArgumentMetadata{Name: "slash_indices", Type: "Vec"}}, Documentation: []Text{" Cancel enactment of a deferred slash.", "", " Can be called by the `T::SlashCancelOrigin`.", "", " Parameters: era and indices of the slashes for that era to kill.", "", " # ", " Complexity: O(U + S)", " with U unapplied slashes weighted with U=1000", " and S is the number of slash indices to be canceled.", " - Read: Unapplied Slashes", " - Write: Unapplied Slashes", " # "}}, FunctionMetadataV4{Name: "payout_stakers", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "validator_stash", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "era", Type: "EraIndex"}}, Documentation: []Text{" Pay out all the stakers behind a single validator for a single era.", "", " - `validator_stash` is the stash account of the validator. Their nominators, up to", " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.", " - `era` may be any era between `[current_era - history_depth; current_era]`.", "", " The origin of this call must be _Signed_. Any account can call this function, even if", " it is not one of the stakers.", "", " This can only be called when [`EraElectionStatus`] is `Closed`.", "", " # ", " - Time complexity: at most O(MaxNominatorRewardedPerValidator).", " - Contains a limited number of reads and writes.", " -----------", " N is the Number of payouts for the validator (including the validator)", " Weight:", " - Reward Destination Staked: O(N)", " - Reward Destination Controller (Creating): O(N)", " DB Weight:", " - Read: EraElectionStatus, CurrentEra, HistoryDepth, ErasValidatorReward,", " ErasStakersClipped, ErasRewardPoints, ErasValidatorPrefs (8 items)", " - Read Each: Bonded, Ledger, Payee, Locks, System Account (5 items)", " - Write Each: System Account, Locks, Ledger (3 items)", "", " NOTE: weights are assuming that payouts are made to alive stash account (Staked).", " Paying even a dead controller is cheaper weight-wise. We don't do any refunds here.", " # "}}, FunctionMetadataV4{Name: "rebond", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Rebond a portion of the stash scheduled to be unlocked.", "", " The dispatch origin must be signed by the controller, and it can be only called when", " [`EraElectionStatus`] is `Closed`.", "", " # ", " - Time complexity: O(L), where L is unlocking chunks", " - Bounded by `MAX_UNLOCKING_CHUNKS`.", " - Storage changes: Can't increase storage, only decrease it.", " ---------------", " - DB Weight:", " - Reads: EraElectionStatus, Ledger, Locks, [Origin Account]", " - Writes: [Origin Account], Locks, Ledger", " # "}}, FunctionMetadataV4{Name: "set_history_depth", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_history_depth", Type: "Compact"}, FunctionArgumentMetadata{Name: "_era_items_deleted", Type: "Compact"}}, Documentation: []Text{" Set `HistoryDepth` value. This function will delete any history information", " when `HistoryDepth` is reduced.", "", " Parameters:", " - `new_history_depth`: The new history depth you would like to set.", " - `era_items_deleted`: The number of items that will be deleted by this dispatch.", " This should report all the storage items that will be deleted by clearing old", " era history. Needed to report an accurate weight for the dispatch. Trusted by", " `Root` to report an accurate number.", "", " Origin must be root.", "", " # ", " - E: Number of history depths removed, i.e. 10 -> 7 = 3", " - Weight: O(E)", " - DB Weight:", " - Reads: Current Era, History Depth", " - Writes: History Depth", " - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs", " - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex", " # "}}, FunctionMetadataV4{Name: "reap_stash", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "stash", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "num_slashing_spans", Type: "u32"}}, Documentation: []Text{" Remove all data structure concerning a staker/stash once its balance is at the minimum.", " This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone", " and the target `stash` must have no funds left beyond the ED.", "", " This can be called from any origin.", "", " - `stash`: The stash account to reap. Its balance must be zero.", "", " # ", " Complexity: O(S) where S is the number of slashing spans on the account.", " DB Weight:", " - Reads: Stash Account, Bonded, Slashing Spans, Locks", " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks", " - Writes Each: SpanSlash * S", " # "}}, FunctionMetadataV4{Name: "kick", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "Vec<::Source>"}}, Documentation: []Text{" Remove the given nominations from the calling validator.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", " And, it can be only called when [`EraElectionStatus`] is `Closed`. The controller", " account should represent a validator.", "", " - `who`: A list of nominator stash accounts who are nominating this validator which", " should no longer be nominating this validator.", "", " Note: Making this call only makes sense if you first set the validator preferences to", " block any further nominations."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "EraPayout", Args: []Type{"EraIndex", "Balance", "Balance"}, Documentation: []Text{" The era payout has been set; the first balance is the validator-payout; the second is", " the remainder from the maximum amount of reward.", " \\[era_index, validator_payout, remainder\\]"}}, EventMetadataV4{Name: "Reward", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" The staker has been rewarded by this amount. \\[stash, amount\\]"}}, EventMetadataV4{Name: "Slash", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" One validator (and its nominators) has been slashed by the given amount.", " \\[validator, amount\\]"}}, EventMetadataV4{Name: "OldSlashingReportDiscarded", Args: []Type{"SessionIndex"}, Documentation: []Text{" An old slashing report from a prior era was discarded because it could", " not be processed. \\[session_index\\]"}}, EventMetadataV4{Name: "StakingElection", Args: []Type(nil), Documentation: []Text{" A new set of stakers was elected."}}, EventMetadataV4{Name: "Bonded", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" An account has bonded this amount. \\[stash, amount\\]", "", " NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", " it will not be emitted for staking rewards when they are added to stake."}}, EventMetadataV4{Name: "Unbonded", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" An account has unbonded this amount. \\[stash, amount\\]"}}, EventMetadataV4{Name: "Withdrawn", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", " from the unlocking queue. \\[stash, amount\\]"}}, EventMetadataV4{Name: "Kicked", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" A nominator has been kicked from a validator. \\[nominator, stash\\]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "SessionsPerEra", Type: "SessionIndex", Value: Bytes{0x6, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of sessions per era."}}, ModuleConstantMetadataV6{Name: "BondingDuration", Type: "EraIndex", Value: Bytes{0xa0, 0x2, 0x0, 0x0}, Documentation: []Text{" Number of eras that staked funds must remain bonded for."}}, ModuleConstantMetadataV6{Name: "SlashDeferDuration", Type: "EraIndex", Value: Bytes{0xa8, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of eras that slashes are deferred by, after computation.", "", " This should be less than the bonding duration.", " Set to 0 if slashes should be applied immediately, without opportunity for", " intervention."}}, ModuleConstantMetadataV6{Name: "MaxNominatorRewardedPerValidator", Type: "u32", Value: Bytes{0x0, 0x1, 0x0, 0x0}, Documentation: []Text{" The maximum number of nominators rewarded for each validator.", "", " For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim", " their reward. This used to limit the i/o cost for the nominator payout."}}, ModuleConstantMetadataV6{Name: "MaxNominations", Type: "u32", Value: Bytes{0x10, 0x0, 0x0, 0x0}, Documentation: []Text{" Maximum number of nominations per nominator."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotController", Documentation: []Text{" Not a controller account."}}, ErrorMetadataV8{Name: "NotStash", Documentation: []Text{" Not a stash account."}}, ErrorMetadataV8{Name: "AlreadyBonded", Documentation: []Text{" Stash is already bonded."}}, ErrorMetadataV8{Name: "AlreadyPaired", Documentation: []Text{" Controller is already paired."}}, ErrorMetadataV8{Name: "EmptyTargets", Documentation: []Text{" Targets cannot be empty."}}, ErrorMetadataV8{Name: "DuplicateIndex", Documentation: []Text{" Duplicate index."}}, ErrorMetadataV8{Name: "InvalidSlashIndex", Documentation: []Text{" Slash record index out of bounds."}}, ErrorMetadataV8{Name: "InsufficientValue", Documentation: []Text{" Can not bond with value less than minimum balance."}}, ErrorMetadataV8{Name: "NoMoreChunks", Documentation: []Text{" Can not schedule more unlock chunks."}}, ErrorMetadataV8{Name: "NoUnlockChunk", Documentation: []Text{" Can not rebond without unlocking chunks."}}, ErrorMetadataV8{Name: "FundedTarget", Documentation: []Text{" Attempting to target a stash that still has funds."}}, ErrorMetadataV8{Name: "InvalidEraToReward", Documentation: []Text{" Invalid era to reward."}}, ErrorMetadataV8{Name: "InvalidNumberOfNominations", Documentation: []Text{" Invalid number of nominations."}}, ErrorMetadataV8{Name: "NotSortedAndUnique", Documentation: []Text{" Items are not sorted and unique."}}, ErrorMetadataV8{Name: "AlreadyClaimed", Documentation: []Text{" Rewards for this era have already been claimed for this validator."}}, ErrorMetadataV8{Name: "IncorrectHistoryDepth", Documentation: []Text{" Incorrect previous history depth input provided."}}, ErrorMetadataV8{Name: "IncorrectSlashingSpans", Documentation: []Text{" Incorrect number of slashing spans provided."}}, ErrorMetadataV8{Name: "BadState", Documentation: []Text{" Internal state has become somehow corrupted and the operation cannot continue."}}, ErrorMetadataV8{Name: "TooManyTargets", Documentation: []Text{" Too many nomination targets supplied."}}, ErrorMetadataV8{Name: "BadTarget", Documentation: []Text{" A nomination target was supplied that was blocked or otherwise not a validator."}}}, Index: 0x9}, ModuleMetadataV13{Name: "Session", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Session", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of validators."}}, StorageFunctionMetadataV13{Name: "CurrentIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "SessionIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current index of the session."}}, StorageFunctionMetadataV13{Name: "QueuedChanged", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the underlying economic identities or weighting behind the validators", " has changed in the queued validator set."}}, StorageFunctionMetadataV13{Name: "QueuedKeys", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec<(T::ValidatorId, T::Keys)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."}}, StorageFunctionMetadataV13{Name: "DisabledValidators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Indices of disabled validators.", "", " The set is cleared when `on_session_ending` returns a new set of identities."}}, StorageFunctionMetadataV13{Name: "NextKeys", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::ValidatorId", Value: "T::Keys", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The next session keys for a validator."}}, StorageFunctionMetadataV13{Name: "KeyOwner", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "(KeyTypeId, Vec)", Value: "T::ValidatorId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The owner of a key. The key is the `KeyTypeId` + the encoded key."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_keys", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "keys", Type: "T::Keys"}, FunctionArgumentMetadata{Name: "proof", Type: "Vec"}}, Documentation: []Text{" Sets the session key(s) of the function caller to `keys`.", " Allows an account to set its session key prior to becoming a validator.", " This doesn't take effect until the next session.", "", " The dispatch origin of this function must be signed.", "", " # ", " - Complexity: `O(1)`", " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", " - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`", " - DbWrites: `origin account`, `NextKeys`", " - DbReads per key id: `KeyOwner`", " - DbWrites per key id: `KeyOwner`", " # "}}, FunctionMetadataV4{Name: "purge_keys", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Removes any session key(s) of the function caller.", " This doesn't take effect until the next session.", "", " The dispatch origin of this function must be signed.", "", " # ", " - Complexity: `O(1)` in number of key ", " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", " - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`", " - DbWrites: `NextKeys`, `origin account`", " - DbWrites per key id: `KeyOwnder`", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewSession", Args: []Type{"SessionIndex"}, Documentation: []Text{" New session has happened. Note that the argument is the \\[session_index\\], not the block", " number as the type might suggest."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidProof", Documentation: []Text{" Invalid ownership proof."}}, ErrorMetadataV8{Name: "NoAssociatedValidatorId", Documentation: []Text{" No associated validator ID for account."}}, ErrorMetadataV8{Name: "DuplicatedKey", Documentation: []Text{" Registered duplicate key."}}, ErrorMetadataV8{Name: "NoKeys", Documentation: []Text{" No keys are associated with this account."}}, ErrorMetadataV8{Name: "NoAccount", Documentation: []Text{" Key setting account is not live, so it's impossible to associate keys."}}}, Index: 0xa}, ModuleMetadataV13{Name: "Democracy", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Democracy", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "PublicPropCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "PropIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of (public) proposals that have been made so far."}}, StorageFunctionMetadataV13{Name: "PublicProps", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec<(PropIndex, T::Hash, T::AccountId)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The public proposals. Unsorted. The second item is the proposal's hash."}}, StorageFunctionMetadataV13{Name: "DepositOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "PropIndex", Value: "(Vec, BalanceOf)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Those who have locked a deposit.", "", " TWOX-NOTE: Safe, as increasing integer keys are safe."}}, StorageFunctionMetadataV13{Name: "Preimages", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: "PreimageStatus, T::BlockNumber>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map of hashes to the proposal preimage, along with who registered it and their deposit.", " The block number is the block at which it was deposited."}}, StorageFunctionMetadataV13{Name: "ReferendumCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next free referendum index, aka the number of referenda started so far."}}, StorageFunctionMetadataV13{Name: "LowestUnbaked", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The lowest referendum index representing an unbaked referendum. Equal to", " `ReferendumCount` if there isn't a unbaked referendum."}}, StorageFunctionMetadataV13{Name: "ReferendumInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "ReferendumIndex", Value: "ReferendumInfo>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information concerning any given referendum.", "", " TWOX-NOTE: SAFE as indexes are not under an attacker’s control."}}, StorageFunctionMetadataV13{Name: "VotingOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "Voting, T::AccountId, T::BlockNumber>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" All votes for a particular voter. We store the balance for the number of votes that we", " have recorded. The second item is the total amount of delegations, that will be added.", "", " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway."}}, StorageFunctionMetadataV13{Name: "Locks", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "T::BlockNumber", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Accounts for which there are locks in action which may be removed at some point in the", " future. The value is the block number at which the lock expires and may be removed.", "", " TWOX-NOTE: OK ― `AccountId` is a secure hash."}}, StorageFunctionMetadataV13{Name: "LastTabledWasExternal", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the last referendum tabled was submitted externally. False if it was a public", " proposal."}}, StorageFunctionMetadataV13{Name: "NextExternal", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "(T::Hash, VoteThreshold)", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The referendum to be tabled whenever it would be valid to table an external proposal.", " This happens when a referendum needs to be tabled and one of two conditions are met:", " - `LastTabledWasExternal` is `false`; or", " - `PublicProps` is empty."}}, StorageFunctionMetadataV13{Name: "Blacklist", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: "(T::BlockNumber, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" A record of who vetoed what. Maps proposal hash to a possible existent block number", " (until when it may not be resubmitted) and who vetoed it."}}, StorageFunctionMetadataV13{Name: "Cancellations", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: "bool", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Record of all proposals that have been subject to emergency cancellation."}}, StorageFunctionMetadataV13{Name: "StorageVersion", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Releases", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Storage version of the pallet.", "", " New networks start with last version."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Propose a sensitive action to be taken.", "", " The dispatch origin of this call must be _Signed_ and the sender must", " have funds to cover the deposit.", "", " - `proposal_hash`: The hash of the proposal preimage.", " - `value`: The amount of deposit (must be at least `MinimumDeposit`).", "", " Emits `Proposed`.", "", " Weight: `O(p)`"}}, FunctionMetadataV4{Name: "second", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "Compact"}, FunctionArgumentMetadata{Name: "seconds_upper_bound", Type: "Compact"}}, Documentation: []Text{" Signals agreement with a particular proposal.", "", " The dispatch origin of this call must be _Signed_ and the sender", " must have funds to cover the deposit, equal to the original deposit.", "", " - `proposal`: The index of the proposal to second.", " - `seconds_upper_bound`: an upper bound on the current number of seconds on this", " proposal. Extrinsic is weighted according to this value with no refund.", "", " Weight: `O(S)` where S is the number of seconds a proposal already has."}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "vote", Type: "AccountVote>"}}, Documentation: []Text{" Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", " otherwise it is a vote to keep the status quo.", "", " The dispatch origin of this call must be _Signed_.", "", " - `ref_index`: The index of the referendum to vote for.", " - `vote`: The vote configuration.", "", " Weight: `O(R)` where R is the number of referendums the voter has voted on."}}, FunctionMetadataV4{Name: "emergency_cancel", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "ReferendumIndex"}}, Documentation: []Text{" Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", " referendum.", "", " The dispatch origin of this call must be `CancellationOrigin`.", "", " -`ref_index`: The index of the referendum to cancel.", "", " Weight: `O(1)`."}}, FunctionMetadataV4{Name: "external_propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a referendum to be tabled once it is legal to schedule an external", " referendum.", "", " The dispatch origin of this call must be `ExternalOrigin`.", "", " - `proposal_hash`: The preimage hash of the proposal.", "", " Weight: `O(V)` with V number of vetoers in the blacklist of proposal.", " Decoding vec of length V. Charged as maximum"}}, FunctionMetadataV4{Name: "external_propose_majority", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a majority-carries referendum to be tabled next once it is legal to schedule", " an external referendum.", "", " The dispatch of this call must be `ExternalMajorityOrigin`.", "", " - `proposal_hash`: The preimage hash of the proposal.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "external_propose_default", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", " schedule an external referendum.", "", " The dispatch of this call must be `ExternalDefaultOrigin`.", "", " - `proposal_hash`: The preimage hash of the proposal.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "fast_track", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "voting_period", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "delay", Type: "T::BlockNumber"}}, Documentation: []Text{" Schedule the currently externally-proposed majority-carries referendum to be tabled", " immediately. If there is no externally-proposed referendum currently, or if there is one", " but it is not a majority-carries referendum then it fails.", "", " The dispatch of this call must be `FastTrackOrigin`.", "", " - `proposal_hash`: The hash of the current external proposal.", " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", " `FastTrackVotingPeriod` if too low.", " - `delay`: The number of block after voting has ended in approval and this should be", " enacted. This doesn't have a minimum amount.", "", " Emits `Started`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "veto_external", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Veto and blacklist the external proposal hash.", "", " The dispatch origin of this call must be `VetoOrigin`.", "", " - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", "", " Emits `Vetoed`.", "", " Weight: `O(V + log(V))` where V is number of `existing vetoers`"}}, FunctionMetadataV4{Name: "cancel_referendum", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "ref_index", Type: "Compact"}}, Documentation: []Text{" Remove a referendum.", "", " The dispatch origin of this call must be _Root_.", "", " - `ref_index`: The index of the referendum to cancel.", "", " # Weight: `O(1)`."}}, FunctionMetadataV4{Name: "cancel_queued", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "which", Type: "ReferendumIndex"}}, Documentation: []Text{" Cancel a proposal queued for enactment.", "", " The dispatch origin of this call must be _Root_.", "", " - `which`: The index of the referendum to cancel.", "", " Weight: `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`."}}, FunctionMetadataV4{Name: "delegate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "to", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "conviction", Type: "Conviction"}, FunctionArgumentMetadata{Name: "balance", Type: "BalanceOf"}}, Documentation: []Text{" Delegate the voting power (with some given conviction) of the sending account.", "", " The balance delegated is locked for as long as it's delegated, and thereafter for the", " time appropriate for the conviction's lock period.", "", " The dispatch origin of this call must be _Signed_, and the signing account must either:", " - be delegating already; or", " - have no voting activity (if there is, then it will need to be removed/consolidated", " through `reap_vote` or `unvote`).", "", " - `to`: The account whose voting the `target` account's voting power will follow.", " - `conviction`: The conviction that will be attached to the delegated votes. When the", " account is undelegated, the funds will be locked for the corresponding period.", " - `balance`: The amount of the account's balance to be used in delegating. This must", " not be more than the account's current balance.", "", " Emits `Delegated`.", "", " Weight: `O(R)` where R is the number of referendums the voter delegating to has", " voted on. Weight is charged as if maximum votes."}}, FunctionMetadataV4{Name: "undelegate", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Undelegate the voting power of the sending account.", "", " Tokens may be unlocked following once an amount of time consistent with the lock period", " of the conviction with which the delegation was issued.", "", " The dispatch origin of this call must be _Signed_ and the signing account must be", " currently delegating.", "", " Emits `Undelegated`.", "", " Weight: `O(R)` where R is the number of referendums the voter delegating to has", " voted on. Weight is charged as if maximum votes."}}, FunctionMetadataV4{Name: "clear_public_proposals", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Clears all public proposals.", "", " The dispatch origin of this call must be _Root_.", "", " Weight: `O(1)`."}}, FunctionMetadataV4{Name: "note_preimage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Register the preimage for an upcoming proposal. This doesn't require the proposal to be", " in the dispatch queue but does require a deposit, returned once enacted.", "", " The dispatch origin of this call must be _Signed_.", "", " - `encoded_proposal`: The preimage of a proposal.", "", " Emits `PreimageNoted`.", "", " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)."}}, FunctionMetadataV4{Name: "note_preimage_operational", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Same as `note_preimage` but origin is `OperationalPreimageOrigin`."}}, FunctionMetadataV4{Name: "note_imminent_preimage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Register the preimage for an upcoming proposal. This requires the proposal to be", " in the dispatch queue. No deposit is needed. When this call is successful, i.e.", " the preimage has not been uploaded before and matches some imminent proposal,", " no fee is paid.", "", " The dispatch origin of this call must be _Signed_.", "", " - `encoded_proposal`: The preimage of a proposal.", "", " Emits `PreimageNoted`.", "", " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)."}}, FunctionMetadataV4{Name: "note_imminent_preimage_operational", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`."}}, FunctionMetadataV4{Name: "reap_preimage", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "proposal_len_upper_bound", Type: "Compact"}}, Documentation: []Text{" Remove an expired proposal preimage and collect the deposit.", "", " The dispatch origin of this call must be _Signed_.", "", " - `proposal_hash`: The preimage hash of a proposal.", " - `proposal_length_upper_bound`: an upper bound on length of the proposal.", " Extrinsic is weighted according to this value with no refund.", "", " This will only work after `VotingPeriod` blocks from the time that the preimage was", " noted, if it's the same account doing it. If it's a different account, then it'll only", " work an additional `EnactmentPeriod` later.", "", " Emits `PreimageReaped`.", "", " Weight: `O(D)` where D is length of proposal."}}, FunctionMetadataV4{Name: "unlock", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "T::AccountId"}}, Documentation: []Text{" Unlock tokens that have an expired lock.", "", " The dispatch origin of this call must be _Signed_.", "", " - `target`: The account to remove the lock on.", "", " Weight: `O(R)` with R number of vote of target."}}, FunctionMetadataV4{Name: "remove_vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "ReferendumIndex"}}, Documentation: []Text{" Remove a vote for a referendum.", "", " If:", " - the referendum was cancelled, or", " - the referendum is ongoing, or", " - the referendum has ended such that", " - the vote of the account was in opposition to the result; or", " - there was no conviction to the account's vote; or", " - the account made a split vote", " ...then the vote is removed cleanly and a following call to `unlock` may result in more", " funds being available.", "", " If, however, the referendum has ended and:", " - it finished corresponding to the vote of the account, and", " - the account made a standard vote with conviction, and", " - the lock period of the conviction is not over", " ...then the lock will be aggregated into the overall account's lock, which may involve", " *overlocking* (where the two locks are combined into a single lock that is the maximum", " of both the amount locked and the time is it locked for).", "", " The dispatch origin of this call must be _Signed_, and the signer must have a vote", " registered for referendum `index`.", "", " - `index`: The index of referendum of the vote to be removed.", "", " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", " Weight is calculated for the maximum number of vote."}}, FunctionMetadataV4{Name: "remove_other_vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "index", Type: "ReferendumIndex"}}, Documentation: []Text{" Remove a vote for a referendum.", "", " If the `target` is equal to the signer, then this function is exactly equivalent to", " `remove_vote`. If not equal to the signer, then the vote must have expired,", " either because the referendum was cancelled, because the voter lost the referendum or", " because the conviction period is over.", "", " The dispatch origin of this call must be _Signed_.", "", " - `target`: The account of the vote to be removed; this account must have voted for", " referendum `index`.", " - `index`: The index of referendum of the vote to be removed.", "", " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", " Weight is calculated for the maximum number of vote."}}, FunctionMetadataV4{Name: "enact_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "ReferendumIndex"}}, Documentation: []Text{" Enact a proposal from a referendum. For now we just make the weight be the maximum."}}, FunctionMetadataV4{Name: "blacklist", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "maybe_ref_index", Type: "Option"}}, Documentation: []Text{" Permanently place a proposal into the blacklist. This prevents it from ever being", " proposed again.", "", " If called on a queued public or external proposal, then this will result in it being", " removed. If the `ref_index` supplied is an active referendum with the proposal hash,", " then it will be cancelled.", "", " The dispatch origin of this call must be `BlacklistOrigin`.", "", " - `proposal_hash`: The proposal hash to blacklist permanently.", " - `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be", " cancelled.", "", " Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a", " reasonable value)."}}, FunctionMetadataV4{Name: "cancel_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "prop_index", Type: "Compact"}}, Documentation: []Text{" Remove a proposal.", "", " The dispatch origin of this call must be `CancelProposalOrigin`.", "", " - `prop_index`: The index of the proposal to cancel.", "", " Weight: `O(p)` where `p = PublicProps::::decode_len()`"}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"PropIndex", "Balance"}, Documentation: []Text{" A motion has been proposed by a public account. \\[proposal_index, deposit\\]"}}, EventMetadataV4{Name: "Tabled", Args: []Type{"PropIndex", "Balance", "Vec"}, Documentation: []Text{" A public proposal has been tabled for referendum vote. \\[proposal_index, deposit, depositors\\]"}}, EventMetadataV4{Name: "ExternalTabled", Args: []Type(nil), Documentation: []Text{" An external proposal has been tabled."}}, EventMetadataV4{Name: "Started", Args: []Type{"ReferendumIndex", "VoteThreshold"}, Documentation: []Text{" A referendum has begun. \\[ref_index, threshold\\]"}}, EventMetadataV4{Name: "Passed", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A proposal has been approved by referendum. \\[ref_index\\]"}}, EventMetadataV4{Name: "NotPassed", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A proposal has been rejected by referendum. \\[ref_index\\]"}}, EventMetadataV4{Name: "Cancelled", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A referendum has been cancelled. \\[ref_index\\]"}}, EventMetadataV4{Name: "Executed", Args: []Type{"ReferendumIndex", "bool"}, Documentation: []Text{" A proposal has been enacted. \\[ref_index, is_ok\\]"}}, EventMetadataV4{Name: "Delegated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" An account has delegated their vote to another account. \\[who, target\\]"}}, EventMetadataV4{Name: "Undelegated", Args: []Type{"AccountId"}, Documentation: []Text{" An \\[account\\] has cancelled a previous delegation operation."}}, EventMetadataV4{Name: "Vetoed", Args: []Type{"AccountId", "Hash", "BlockNumber"}, Documentation: []Text{" An external proposal has been vetoed. \\[who, proposal_hash, until\\]"}}, EventMetadataV4{Name: "PreimageNoted", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A proposal's preimage was noted, and the deposit taken. \\[proposal_hash, who, deposit\\]"}}, EventMetadataV4{Name: "PreimageUsed", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A proposal preimage was removed and used (the deposit was returned).", " \\[proposal_hash, provider, deposit\\]"}}, EventMetadataV4{Name: "PreimageInvalid", Args: []Type{"Hash", "ReferendumIndex"}, Documentation: []Text{" A proposal could not be executed because its preimage was invalid.", " \\[proposal_hash, ref_index\\]"}}, EventMetadataV4{Name: "PreimageMissing", Args: []Type{"Hash", "ReferendumIndex"}, Documentation: []Text{" A proposal could not be executed because its preimage was missing.", " \\[proposal_hash, ref_index\\]"}}, EventMetadataV4{Name: "PreimageReaped", Args: []Type{"Hash", "AccountId", "Balance", "AccountId"}, Documentation: []Text{" A registered preimage was removed and the deposit collected by the reaper.", " \\[proposal_hash, provider, deposit, reaper\\]"}}, EventMetadataV4{Name: "Unlocked", Args: []Type{"AccountId"}, Documentation: []Text{" An \\[account\\] has been unlocked successfully."}}, EventMetadataV4{Name: "Blacklisted", Args: []Type{"Hash"}, Documentation: []Text{" A proposal \\[hash\\] has been blacklisted permanently."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "EnactmentPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x2f, 0xd, 0x0}, Documentation: []Text{" The minimum period of locking and the period between a proposal being approved and enacted.", "", " It should generally be a little more than the unstake period to ensure that", " voting stakers have an opportunity to remove themselves from the system in the case where", " they are on the losing side of a vote."}}, ModuleConstantMetadataV6{Name: "LaunchPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" How often (in blocks) new public referenda are launched."}}, ModuleConstantMetadataV6{Name: "VotingPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" How often (in blocks) to check for new votes."}}, ModuleConstantMetadataV6{Name: "MinimumDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount to be used as a deposit for a public referendum proposal."}}, ModuleConstantMetadataV6{Name: "FastTrackVotingPeriod", Type: "T::BlockNumber", Value: Bytes{0x80, 0x51, 0x1, 0x0}, Documentation: []Text{" Minimum voting period allowed for a fast-track referendum."}}, ModuleConstantMetadataV6{Name: "CooloffPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" Period in blocks where an external proposal may not be re-submitted after being vetoed."}}, ModuleConstantMetadataV6{Name: "PreimageByteDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of balance that must be deposited per byte of preimage stored."}}, ModuleConstantMetadataV6{Name: "MaxVotes", Type: "u32", Value: Bytes{0x64, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum number of votes for an account.", "", " Also used to compute weight, an overly big value can", " lead to extrinsic with very big weight: see `delegate` for instance."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "ValueLow", Documentation: []Text{" Value too low"}}, ErrorMetadataV8{Name: "ProposalMissing", Documentation: []Text{" Proposal does not exist"}}, ErrorMetadataV8{Name: "BadIndex", Documentation: []Text{" Unknown index"}}, ErrorMetadataV8{Name: "AlreadyCanceled", Documentation: []Text{" Cannot cancel the same proposal twice"}}, ErrorMetadataV8{Name: "DuplicateProposal", Documentation: []Text{" Proposal already made"}}, ErrorMetadataV8{Name: "ProposalBlacklisted", Documentation: []Text{" Proposal still blacklisted"}}, ErrorMetadataV8{Name: "NotSimpleMajority", Documentation: []Text{" Next external proposal not simple majority"}}, ErrorMetadataV8{Name: "InvalidHash", Documentation: []Text{" Invalid hash"}}, ErrorMetadataV8{Name: "NoProposal", Documentation: []Text{" No external proposal"}}, ErrorMetadataV8{Name: "AlreadyVetoed", Documentation: []Text{" Identity may not veto a proposal twice"}}, ErrorMetadataV8{Name: "NotDelegated", Documentation: []Text{" Not delegated"}}, ErrorMetadataV8{Name: "DuplicatePreimage", Documentation: []Text{" Preimage already noted"}}, ErrorMetadataV8{Name: "NotImminent", Documentation: []Text{" Not imminent"}}, ErrorMetadataV8{Name: "TooEarly", Documentation: []Text{" Too early"}}, ErrorMetadataV8{Name: "Imminent", Documentation: []Text{" Imminent"}}, ErrorMetadataV8{Name: "PreimageMissing", Documentation: []Text{" Preimage not found"}}, ErrorMetadataV8{Name: "ReferendumInvalid", Documentation: []Text{" Vote given for invalid referendum"}}, ErrorMetadataV8{Name: "PreimageInvalid", Documentation: []Text{" Invalid preimage"}}, ErrorMetadataV8{Name: "NoneWaiting", Documentation: []Text{" No proposals waiting"}}, ErrorMetadataV8{Name: "NotLocked", Documentation: []Text{" The target account does not have a lock."}}, ErrorMetadataV8{Name: "NotExpired", Documentation: []Text{" The lock on the account to be unlocked has not yet expired."}}, ErrorMetadataV8{Name: "NotVoter", Documentation: []Text{" The given account did not vote on the referendum."}}, ErrorMetadataV8{Name: "NoPermission", Documentation: []Text{" The actor has no permission to conduct the action."}}, ErrorMetadataV8{Name: "AlreadyDelegating", Documentation: []Text{" The account is already delegating."}}, ErrorMetadataV8{Name: "InsufficientFunds", Documentation: []Text{" Too high a balance was provided that the account cannot afford."}}, ErrorMetadataV8{Name: "NotDelegating", Documentation: []Text{" The account is not currently delegating."}}, ErrorMetadataV8{Name: "VotesExist", Documentation: []Text{" The account currently has votes attached to it and the operation cannot succeed until", " these are removed, either through `unvote` or `reap_vote`."}}, ErrorMetadataV8{Name: "InstantNotAllowed", Documentation: []Text{" The instant referendum origin is currently disallowed."}}, ErrorMetadataV8{Name: "Nonsense", Documentation: []Text{" Delegation to oneself makes no sense."}}, ErrorMetadataV8{Name: "WrongUpperBound", Documentation: []Text{" Invalid upper bound."}}, ErrorMetadataV8{Name: "MaxVotesReached", Documentation: []Text{" Maximum number of votes reached."}}, ErrorMetadataV8{Name: "InvalidWitness", Documentation: []Text{" The provided witness data is wrong."}}, ErrorMetadataV8{Name: "TooManyProposals", Documentation: []Text{" Maximum number of proposals reached."}}}, Index: 0xb}, ModuleMetadataV13{Name: "Council", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Instance1Collective", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "BoundedVec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The hashes of the active proposals."}}, StorageFunctionMetadataV13{Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: ">::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Actual proposal for a given hash, if it's current."}}, StorageFunctionMetadataV13{Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: "Votes", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes on a given proposal, if it is ongoing."}}, StorageFunctionMetadataV13{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proposals so far."}}, StorageFunctionMetadataV13{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current members of the collective. This is stored sorted (just by value)."}}, StorageFunctionMetadataV13{Name: "Prime", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The prime member that helps determine the default vote behavior in case of absentations."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_members", Type: "Vec"}, FunctionArgumentMetadata{Name: "prime", Type: "Option"}, FunctionArgumentMetadata{Name: "old_count", Type: "MemberCount"}}, Documentation: []Text{" Set the collective's membership.", "", " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", " - `prime`: The prime member whose vote sets the default.", " - `old_count`: The upper bound for the previous number of members in storage.", " Used for weight estimation.", "", " Requires root origin.", "", " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", " the weight estimations rely on it to estimate dispatchable weight.", "", " # ", " ## Weight", " - `O(MP + N)` where:", " - `M` old-members-count (code- and governance-bounded)", " - `N` new-members-count (code- and governance-bounded)", " - `P` proposals-count (code-bounded)", " - DB:", " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members", " - 1 storage read (codec `O(P)`) for reading the proposals", " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", " # "}}, FunctionMetadataV4{Name: "execute", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}, FunctionArgumentMetadata{Name: "length_bound", Type: "Compact"}}, Documentation: []Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective.", "", " # ", " ## Weight", " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`", " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", " - 1 event", " # "}}, FunctionMetadataV4{Name: "propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "Compact"}, FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}, FunctionArgumentMetadata{Name: "length_bound", Type: "Compact"}}, Documentation: []Text{" Add a new proposal to either be voted on or executed directly.", "", " Requires the sender to be member.", "", " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", " or put up for voting.", "", " # ", " ## Weight", " - `O(B + M + P1)` or `O(B + M + P2)` where:", " - `B` is `proposal` size in bytes (length-fee-bounded)", " - `M` is members-count (code- and governance-bounded)", " - branching is influenced by `threshold` where:", " - `P1` is proposal execution complexity (`threshold < 2`)", " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", " - DB:", " - 1 storage read `is_member` (codec `O(M)`)", " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", " - DB accesses influenced by `threshold`:", " - EITHER storage accesses done by `proposal` (`threshold < 2`)", " - OR proposal insertion (`threshold <= 2`)", " - 1 storage mutation `Proposals` (codec `O(P2)`)", " - 1 storage mutation `ProposalCount` (codec `O(1)`)", " - 1 storage write `ProposalOf` (codec `O(B)`)", " - 1 storage write `Voting` (codec `O(M)`)", " - 1 event", " # "}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "approve", Type: "bool"}}, Documentation: []Text{" Add an aye or nay vote for the sender to the given proposal.", "", " Requires the sender to be a member.", "", " Transaction fees will be waived if the member is voting on any particular proposal", " for the first time and the call is successful. Subsequent vote changes will charge a fee.", " # ", " ## Weight", " - `O(M)` where `M` is members-count (code- and governance-bounded)", " - DB:", " - 1 storage read `Members` (codec `O(M)`)", " - 1 storage mutation `Voting` (codec `O(M)`)", " - 1 event", " # "}}, FunctionMetadataV4{Name: "close", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "proposal_weight_bound", Type: "Compact"}, FunctionArgumentMetadata{Name: "length_bound", Type: "Compact"}}, Documentation: []Text{" Close a vote that is either approved, disapproved or whose voting period has ended.", "", " May be called by any signed account in order to finish voting and close the proposal.", "", " If called before the end of the voting period it will only close the vote if it is", " has enough votes to be approved or disapproved.", "", " If called after the end of the voting period abstentions are counted as rejections", " unless there is a prime member set and the prime member cast an approval.", "", " If the close operation completes successfully with disapproval, the transaction fee will", " be waived. Otherwise execution of the approved operation will be charged to the caller.", "", " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.", " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", " `storage::read` so it is `size_of::() == 4` larger than the pure length.", "", " # ", " ## Weight", " - `O(B + M + P1 + P2)` where:", " - `B` is `proposal` size in bytes (length-fee-bounded)", " - `M` is members-count (code- and governance-bounded)", " - `P1` is the complexity of `proposal` preimage.", " - `P2` is proposal-count (code-bounded)", " - DB:", " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)", " - any mutations done while executing `proposal` (`P1`)", " - up to 3 events", " # "}}, FunctionMetadataV4{Name: "disapprove_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Disapprove a proposal, close, and remove it from the system, regardless of its current state.", "", " Must be called by the Root origin.", "", " Parameters:", " * `proposal_hash`: The hash of the proposal that should be disapproved.", "", " # ", " Complexity: O(P) where P is the number of max proposals", " DB Weight:", " * Reads: Proposals", " * Writes: Voting, Proposals, ProposalOf", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`).", " \\[account, proposal_index, proposal_hash, threshold\\]"}}, EventMetadataV4{Name: "Voted", Args: []Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`).", " \\[account, proposal_hash, voted, yes, no\\]"}}, EventMetadataV4{Name: "Approved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was approved by the required threshold.", " \\[proposal_hash\\]"}}, EventMetadataV4{Name: "Disapproved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was not approved by the required threshold.", " \\[proposal_hash\\]"}}, EventMetadataV4{Name: "Executed", Args: []Type{"Hash", "DispatchResult"}, Documentation: []Text{" A motion was executed; result will be `Ok` if it returned without error.", " \\[proposal_hash, result\\]"}}, EventMetadataV4{Name: "MemberExecuted", Args: []Type{"Hash", "DispatchResult"}, Documentation: []Text{" A single member did some action; result will be `Ok` if it returned without error.", " \\[proposal_hash, result\\]"}}, EventMetadataV4{Name: "Closed", Args: []Type{"Hash", "MemberCount", "MemberCount"}, Documentation: []Text{" A proposal was closed because its threshold was reached or after its duration was up.", " \\[proposal_hash, yes, no\\]"}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" Account is not a member"}}, ErrorMetadataV8{Name: "DuplicateProposal", Documentation: []Text{" Duplicate proposals not allowed"}}, ErrorMetadataV8{Name: "ProposalMissing", Documentation: []Text{" Proposal must exist"}}, ErrorMetadataV8{Name: "WrongIndex", Documentation: []Text{" Mismatched index"}}, ErrorMetadataV8{Name: "DuplicateVote", Documentation: []Text{" Duplicate vote ignored"}}, ErrorMetadataV8{Name: "AlreadyInitialized", Documentation: []Text{" Members are already initialized!"}}, ErrorMetadataV8{Name: "TooEarly", Documentation: []Text{" The close call was made too early, before the end of the voting."}}, ErrorMetadataV8{Name: "TooManyProposals", Documentation: []Text{" There can only be a maximum of `MaxProposals` active proposals."}}, ErrorMetadataV8{Name: "WrongProposalWeight", Documentation: []Text{" The given weight bound for the proposal was too low."}}, ErrorMetadataV8{Name: "WrongProposalLength", Documentation: []Text{" The given length bound for the proposal was too low."}}}, Index: 0xc}, ModuleMetadataV13{Name: "TechnicalCommittee", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Instance2Collective", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "BoundedVec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The hashes of the active proposals."}}, StorageFunctionMetadataV13{Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: ">::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Actual proposal for a given hash, if it's current."}}, StorageFunctionMetadataV13{Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: "Votes", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes on a given proposal, if it is ongoing."}}, StorageFunctionMetadataV13{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proposals so far."}}, StorageFunctionMetadataV13{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current members of the collective. This is stored sorted (just by value)."}}, StorageFunctionMetadataV13{Name: "Prime", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The prime member that helps determine the default vote behavior in case of absentations."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "set_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new_members", Type: "Vec"}, FunctionArgumentMetadata{Name: "prime", Type: "Option"}, FunctionArgumentMetadata{Name: "old_count", Type: "MemberCount"}}, Documentation: []Text{" Set the collective's membership.", "", " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", " - `prime`: The prime member whose vote sets the default.", " - `old_count`: The upper bound for the previous number of members in storage.", " Used for weight estimation.", "", " Requires root origin.", "", " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", " the weight estimations rely on it to estimate dispatchable weight.", "", " # ", " ## Weight", " - `O(MP + N)` where:", " - `M` old-members-count (code- and governance-bounded)", " - `N` new-members-count (code- and governance-bounded)", " - `P` proposals-count (code-bounded)", " - DB:", " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members", " - 1 storage read (codec `O(P)`) for reading the proposals", " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", " # "}}, FunctionMetadataV4{Name: "execute", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}, FunctionArgumentMetadata{Name: "length_bound", Type: "Compact"}}, Documentation: []Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective.", "", " # ", " ## Weight", " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`", " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", " - 1 event", " # "}}, FunctionMetadataV4{Name: "propose", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "Compact"}, FunctionArgumentMetadata{Name: "proposal", Type: "Box<>::Proposal>"}, FunctionArgumentMetadata{Name: "length_bound", Type: "Compact"}}, Documentation: []Text{" Add a new proposal to either be voted on or executed directly.", "", " Requires the sender to be member.", "", " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", " or put up for voting.", "", " # ", " ## Weight", " - `O(B + M + P1)` or `O(B + M + P2)` where:", " - `B` is `proposal` size in bytes (length-fee-bounded)", " - `M` is members-count (code- and governance-bounded)", " - branching is influenced by `threshold` where:", " - `P1` is proposal execution complexity (`threshold < 2`)", " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", " - DB:", " - 1 storage read `is_member` (codec `O(M)`)", " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", " - DB accesses influenced by `threshold`:", " - EITHER storage accesses done by `proposal` (`threshold < 2`)", " - OR proposal insertion (`threshold <= 2`)", " - 1 storage mutation `Proposals` (codec `O(P2)`)", " - 1 storage mutation `ProposalCount` (codec `O(1)`)", " - 1 storage write `ProposalOf` (codec `O(B)`)", " - 1 storage write `Voting` (codec `O(M)`)", " - 1 event", " # "}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "approve", Type: "bool"}}, Documentation: []Text{" Add an aye or nay vote for the sender to the given proposal.", "", " Requires the sender to be a member.", "", " Transaction fees will be waived if the member is voting on any particular proposal", " for the first time and the call is successful. Subsequent vote changes will charge a fee.", " # ", " ## Weight", " - `O(M)` where `M` is members-count (code- and governance-bounded)", " - DB:", " - 1 storage read `Members` (codec `O(M)`)", " - 1 storage mutation `Voting` (codec `O(M)`)", " - 1 event", " # "}}, FunctionMetadataV4{Name: "close", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "proposal_weight_bound", Type: "Compact"}, FunctionArgumentMetadata{Name: "length_bound", Type: "Compact"}}, Documentation: []Text{" Close a vote that is either approved, disapproved or whose voting period has ended.", "", " May be called by any signed account in order to finish voting and close the proposal.", "", " If called before the end of the voting period it will only close the vote if it is", " has enough votes to be approved or disapproved.", "", " If called after the end of the voting period abstentions are counted as rejections", " unless there is a prime member set and the prime member cast an approval.", "", " If the close operation completes successfully with disapproval, the transaction fee will", " be waived. Otherwise execution of the approved operation will be charged to the caller.", "", " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.", " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", " `storage::read` so it is `size_of::() == 4` larger than the pure length.", "", " # ", " ## Weight", " - `O(B + M + P1 + P2)` where:", " - `B` is `proposal` size in bytes (length-fee-bounded)", " - `M` is members-count (code- and governance-bounded)", " - `P1` is the complexity of `proposal` preimage.", " - `P2` is proposal-count (code-bounded)", " - DB:", " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)", " - any mutations done while executing `proposal` (`P1`)", " - up to 3 events", " # "}}, FunctionMetadataV4{Name: "disapprove_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Disapprove a proposal, close, and remove it from the system, regardless of its current state.", "", " Must be called by the Root origin.", "", " Parameters:", " * `proposal_hash`: The hash of the proposal that should be disapproved.", "", " # ", " Complexity: O(P) where P is the number of max proposals", " DB Weight:", " * Reads: Proposals", " * Writes: Voting, Proposals, ProposalOf", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`).", " \\[account, proposal_index, proposal_hash, threshold\\]"}}, EventMetadataV4{Name: "Voted", Args: []Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`).", " \\[account, proposal_hash, voted, yes, no\\]"}}, EventMetadataV4{Name: "Approved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was approved by the required threshold.", " \\[proposal_hash\\]"}}, EventMetadataV4{Name: "Disapproved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was not approved by the required threshold.", " \\[proposal_hash\\]"}}, EventMetadataV4{Name: "Executed", Args: []Type{"Hash", "DispatchResult"}, Documentation: []Text{" A motion was executed; result will be `Ok` if it returned without error.", " \\[proposal_hash, result\\]"}}, EventMetadataV4{Name: "MemberExecuted", Args: []Type{"Hash", "DispatchResult"}, Documentation: []Text{" A single member did some action; result will be `Ok` if it returned without error.", " \\[proposal_hash, result\\]"}}, EventMetadataV4{Name: "Closed", Args: []Type{"Hash", "MemberCount", "MemberCount"}, Documentation: []Text{" A proposal was closed because its threshold was reached or after its duration was up.", " \\[proposal_hash, yes, no\\]"}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" Account is not a member"}}, ErrorMetadataV8{Name: "DuplicateProposal", Documentation: []Text{" Duplicate proposals not allowed"}}, ErrorMetadataV8{Name: "ProposalMissing", Documentation: []Text{" Proposal must exist"}}, ErrorMetadataV8{Name: "WrongIndex", Documentation: []Text{" Mismatched index"}}, ErrorMetadataV8{Name: "DuplicateVote", Documentation: []Text{" Duplicate vote ignored"}}, ErrorMetadataV8{Name: "AlreadyInitialized", Documentation: []Text{" Members are already initialized!"}}, ErrorMetadataV8{Name: "TooEarly", Documentation: []Text{" The close call was made too early, before the end of the voting."}}, ErrorMetadataV8{Name: "TooManyProposals", Documentation: []Text{" There can only be a maximum of `MaxProposals` active proposals."}}, ErrorMetadataV8{Name: "WrongProposalWeight", Documentation: []Text{" The given weight bound for the proposal was too low."}}, ErrorMetadataV8{Name: "WrongProposalLength", Documentation: []Text{" The given length bound for the proposal was too low."}}}, Index: 0xd}, ModuleMetadataV13{Name: "Elections", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Elections", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec>>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current elected members.", "", " Invariant: Always sorted based on account id."}}, StorageFunctionMetadataV13{Name: "RunnersUp", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec>>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current reserved runners-up.", "", " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the", " last (i.e. _best_) runner-up will be replaced."}}, StorageFunctionMetadataV13{Name: "Candidates", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec<(T::AccountId, BalanceOf)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The present candidate list. A current member or runner-up can never enter this vector", " and is always implicitly assumed to be a candidate.", "", " Second element is the deposit.", "", " Invariant: Always sorted based on account id."}}, StorageFunctionMetadataV13{Name: "ElectionRounds", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total number of vote rounds that have happened, excluding the upcoming one."}}, StorageFunctionMetadataV13{Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "Voter>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Votes and locked stake of a particular voter.", "", " TWOX-NOTE: SAFE as `AccountId` is a crypto hash."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "votes", Type: "Vec"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Vote for a set of candidates for the upcoming round of election. This can be called to", " set the initial votes, or update already existing votes.", "", " Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is", " reserved. The deposit is based on the number of votes and can be updated over time.", "", " The `votes` should:", " - not be empty.", " - be less than the number of possible candidates. Note that all current members and", " runners-up are also automatically candidates for the next round.", "", " If `value` is more than `who`'s total balance, then the maximum of the two is used.", "", " The dispatch origin of this call must be signed.", "", " ### Warning", "", " It is the responsibility of the caller to **NOT** place all of their balance into the", " lock and keep some for further operations.", "", " # ", " We assume the maximum weight among all 3 cases: vote_equal, vote_more and vote_less.", " # "}}, FunctionMetadataV4{Name: "remove_voter", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove `origin` as a voter.", "", " This removes the lock and returns the deposit.", "", " The dispatch origin of this call must be signed and be a voter."}}, FunctionMetadataV4{Name: "submit_candidacy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "candidate_count", Type: "Compact"}}, Documentation: []Text{" Submit oneself for candidacy. A fixed amount of deposit is recorded.", "", " All candidates are wiped at the end of the term. They either become a member/runner-up,", " or leave the system while their deposit is slashed.", "", " The dispatch origin of this call must be signed.", "", " ### Warning", "", " Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]", " to get their deposit back. Losing the spot in an election will always lead to a slash.", "", " # ", " The number of current candidates must be provided as witness data.", " # "}}, FunctionMetadataV4{Name: "renounce_candidacy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "renouncing", Type: "Renouncing"}}, Documentation: []Text{" Renounce one's intention to be a candidate for the next election round. 3 potential", " outcomes exist:", "", " - `origin` is a candidate and not elected in any set. In this case, the deposit is", " unreserved, returned and origin is removed as a candidate.", " - `origin` is a current runner-up. In this case, the deposit is unreserved, returned and", " origin is removed as a runner-up.", " - `origin` is a current member. In this case, the deposit is unreserved and origin is", " removed as a member, consequently not being a candidate for the next round anymore.", " Similar to [`remove_members`], if replacement runners exists, they are immediately", " used. If the prime is renouncing, then no prime will exist until the next round.", "", " The dispatch origin of this call must be signed, and have one of the above roles.", "", " # ", " The type of renouncing must be provided as witness data.", " # "}}, FunctionMetadataV4{Name: "remove_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "::Source"}, FunctionArgumentMetadata{Name: "has_replacement", Type: "bool"}}, Documentation: []Text{" Remove a particular member from the set. This is effective immediately and the bond of", " the outgoing member is slashed.", "", " If a runner-up is available, then the best runner-up will be removed and replaces the", " outgoing member. Otherwise, a new phragmen election is started.", "", " The dispatch origin of this call must be root.", "", " Note that this does not affect the designated block number of the next election.", "", " # ", " If we have a replacement, we use a small weight. Else, since this is a root call and", " will go into phragmen, we assume full block for now.", " # "}}, FunctionMetadataV4{Name: "clean_defunct_voters", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "_num_voters", Type: "u32"}, FunctionArgumentMetadata{Name: "_num_defunct", Type: "u32"}}, Documentation: []Text{" Clean all voters who are defunct (i.e. they do not serve any purpose at all). The", " deposit of the removed voters are returned.", "", " This is an root function to be used only for cleaning the state.", "", " The dispatch origin of this call must be root.", "", " # ", " The total number of voters and those that are defunct must be provided as witness data.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewTerm", Args: []Type{"Vec<(AccountId, Balance)>"}, Documentation: []Text{" A new term with \\[new_members\\]. This indicates that enough candidates existed to run", " the election, not that enough have has been elected. The inner value must be examined", " for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond", " slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to", " begin with."}}, EventMetadataV4{Name: "EmptyTerm", Args: []Type(nil), Documentation: []Text{" No (or not enough) candidates existed for this round. This is different from", " `NewTerm(\\[\\])`. See the description of `NewTerm`."}}, EventMetadataV4{Name: "ElectionError", Args: []Type(nil), Documentation: []Text{" Internal error happened while trying to perform election."}}, EventMetadataV4{Name: "MemberKicked", Args: []Type{"AccountId"}, Documentation: []Text{" A \\[member\\] has been removed. This should always be followed by either `NewTerm` or", " `EmptyTerm`."}}, EventMetadataV4{Name: "Renounced", Args: []Type{"AccountId"}, Documentation: []Text{" Someone has renounced their candidacy."}}, EventMetadataV4{Name: "CandidateSlashed", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A \\[candidate\\] was slashed by \\[amount\\] due to failing to obtain a seat as member or", " runner-up.", "", " Note that old members and runners-up are also candidates."}}, EventMetadataV4{Name: "SeatHolderSlashed", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A \\[seat holder\\] was slashed by \\[amount\\] by being forcefully removed from the set."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "PalletId", Type: "LockIdentifier", Value: Bytes{0x70, 0x68, 0x72, 0x65, 0x6c, 0x65, 0x63, 0x74}, Documentation: []Text{" Identifier for the elections-phragmen pallet's lock"}}, ModuleConstantMetadataV6{Name: "CandidacyBond", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" How much should be locked up in order to submit one's candidacy."}}, ModuleConstantMetadataV6{Name: "VotingBondBase", Type: "BalanceOf", Value: Bytes{0x0, 0xf0, 0x43, 0x6d, 0xe3, 0x6a, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Base deposit associated with voting.", "", " This should be sensibly high to economically ensure the pallet cannot be attacked by", " creating a gigantic number of votes."}}, ModuleConstantMetadataV6{Name: "VotingBondFactor", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0xcc, 0x7b, 0x9f, 0xae, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of bond that need to be locked for each vote (32 bytes)."}}, ModuleConstantMetadataV6{Name: "DesiredMembers", Type: "u32", Value: Bytes{0xd, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of members to elect."}}, ModuleConstantMetadataV6{Name: "DesiredRunnersUp", Type: "u32", Value: Bytes{0x7, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of runners_up to keep."}}, ModuleConstantMetadataV6{Name: "TermDuration", Type: "T::BlockNumber", Value: Bytes{0x80, 0x13, 0x3, 0x0}, Documentation: []Text{" How long each seat is kept. This defines the next block number at which an election", " round will happen. If set to zero, no elections are ever triggered and the module will", " be in passive mode."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "UnableToVote", Documentation: []Text{" Cannot vote when no candidates or members exist."}}, ErrorMetadataV8{Name: "NoVotes", Documentation: []Text{" Must vote for at least one candidate."}}, ErrorMetadataV8{Name: "TooManyVotes", Documentation: []Text{" Cannot vote more than candidates."}}, ErrorMetadataV8{Name: "MaximumVotesExceeded", Documentation: []Text{" Cannot vote more than maximum allowed."}}, ErrorMetadataV8{Name: "LowBalance", Documentation: []Text{" Cannot vote with stake less than minimum balance."}}, ErrorMetadataV8{Name: "UnableToPayBond", Documentation: []Text{" Voter can not pay voting bond."}}, ErrorMetadataV8{Name: "MustBeVoter", Documentation: []Text{" Must be a voter."}}, ErrorMetadataV8{Name: "ReportSelf", Documentation: []Text{" Cannot report self."}}, ErrorMetadataV8{Name: "DuplicatedCandidate", Documentation: []Text{" Duplicated candidate submission."}}, ErrorMetadataV8{Name: "MemberSubmit", Documentation: []Text{" Member cannot re-submit candidacy."}}, ErrorMetadataV8{Name: "RunnerUpSubmit", Documentation: []Text{" Runner cannot re-submit candidacy."}}, ErrorMetadataV8{Name: "InsufficientCandidateFunds", Documentation: []Text{" Candidate does not have enough funds."}}, ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" Not a member."}}, ErrorMetadataV8{Name: "InvalidWitnessData", Documentation: []Text{" The provided count of number of candidates is incorrect."}}, ErrorMetadataV8{Name: "InvalidVoteCount", Documentation: []Text{" The provided count of number of votes is incorrect."}}, ErrorMetadataV8{Name: "InvalidRenouncing", Documentation: []Text{" The renouncing origin presented a wrong `Renouncing` parameter."}}, ErrorMetadataV8{Name: "InvalidReplacement", Documentation: []Text{" Prediction regarding replacement after member removal is wrong."}}}, Index: 0xe}, ModuleMetadataV13{Name: "TechnicalMembership", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Instance1Membership", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current membership, stored as an ordered Vec."}}, StorageFunctionMetadataV13{Name: "Prime", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current prime member, if one exists."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "add_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Add a member `who` to the set.", "", " May only be called from `T::AddOrigin`."}}, FunctionMetadataV4{Name: "remove_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Remove a member `who` from the set.", "", " May only be called from `T::RemoveOrigin`."}}, FunctionMetadataV4{Name: "swap_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "remove", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "add", Type: "T::AccountId"}}, Documentation: []Text{" Swap out one member `remove` for another `add`.", "", " May only be called from `T::SwapOrigin`.", "", " Prime membership is *not* passed from `remove` to `add`, if extant."}}, FunctionMetadataV4{Name: "reset_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "members", Type: "Vec"}}, Documentation: []Text{" Change the membership to a new set, disregarding the existing membership. Be nice and", " pass `members` pre-sorted.", "", " May only be called from `T::ResetOrigin`."}}, FunctionMetadataV4{Name: "change_key", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "T::AccountId"}}, Documentation: []Text{" Swap out the sending member for some other key `new`.", "", " May only be called from `Signed` origin of a current member.", "", " Prime membership is passed from the origin account to `new`, if extant."}}, FunctionMetadataV4{Name: "set_prime", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Set the prime member. Must be a current member.", "", " May only be called from `T::PrimeOrigin`."}}, FunctionMetadataV4{Name: "clear_prime", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove the prime member if it exists.", "", " May only be called from `T::PrimeOrigin`."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "MemberAdded", Args: []Type(nil), Documentation: []Text{" The given member was added; see the transaction for who."}}, EventMetadataV4{Name: "MemberRemoved", Args: []Type(nil), Documentation: []Text{" The given member was removed; see the transaction for who."}}, EventMetadataV4{Name: "MembersSwapped", Args: []Type(nil), Documentation: []Text{" Two members were swapped; see the transaction for who."}}, EventMetadataV4{Name: "MembersReset", Args: []Type(nil), Documentation: []Text{" The membership was reset; see the transaction for who the new set is."}}, EventMetadataV4{Name: "KeyChanged", Args: []Type(nil), Documentation: []Text{" One of the members' keys changed."}}, EventMetadataV4{Name: "Dummy", Args: []Type{"sp_std::marker::PhantomData<(AccountId, Event)>"}, Documentation: []Text{" Phantom member, never used."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "AlreadyMember", Documentation: []Text{" Already a member."}}, ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" Not a member."}}}, Index: 0xf}, ModuleMetadataV13{Name: "Grandpa", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Grandpa", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "State", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "StoredState", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" State of the current authority set."}}, StorageFunctionMetadataV13{Name: "PendingChange", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "StoredPendingChange", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Pending change: (signaled at, scheduled change)."}}, StorageFunctionMetadataV13{Name: "NextForced", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" next block number where we can force a change."}}, StorageFunctionMetadataV13{Name: "Stalled", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "(T::BlockNumber, T::BlockNumber)", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" `true` if we are currently stalled."}}, StorageFunctionMetadataV13{Name: "CurrentSetId", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "SetId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of changes (both in terms of keys and underlying economic responsibilities)", " in the \"set\" of Grandpa validators from genesis."}}, StorageFunctionMetadataV13{Name: "SetIdSession", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "SetId", Value: "SessionIndex", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from grandpa set ID to the index of the *most recent* session for which its", " members were responsible.", "", " TWOX-NOTE: `SetId` is not under user control."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "report_equivocation", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "equivocation_proof", Type: "EquivocationProof"}, FunctionArgumentMetadata{Name: "key_owner_proof", Type: "T::KeyOwnerProof"}}, Documentation: []Text{" Report voter equivocation/misbehavior. This method will verify the", " equivocation proof and validate the given key ownership proof", " against the extracted offender. If both are valid, the offence", " will be reported."}}, FunctionMetadataV4{Name: "report_equivocation_unsigned", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "equivocation_proof", Type: "EquivocationProof"}, FunctionArgumentMetadata{Name: "key_owner_proof", Type: "T::KeyOwnerProof"}}, Documentation: []Text{" Report voter equivocation/misbehavior. This method will verify the", " equivocation proof and validate the given key ownership proof", " against the extracted offender. If both are valid, the offence", " will be reported.", "", " This extrinsic must be called unsigned and it is expected that only", " block authors will call it (validated in `ValidateUnsigned`), as such", " if the block author is defined it will be defined as the equivocation", " reporter."}}, FunctionMetadataV4{Name: "note_stalled", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "delay", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "best_finalized_block_number", Type: "T::BlockNumber"}}, Documentation: []Text{" Note that the current authority set of the GRANDPA finality gadget has", " stalled. This will trigger a forced authority set change at the beginning", " of the next session, to be enacted `delay` blocks after that. The delay", " should be high enough to safely assume that the block signalling the", " forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters", " will start the new authority set using the given finalized block as base.", " Only callable by root."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewAuthorities", Args: []Type{"AuthorityList"}, Documentation: []Text{" New authority set has been applied. \\[authority_set\\]"}}, EventMetadataV4{Name: "Paused", Args: []Type(nil), Documentation: []Text{" Current authority set has been paused."}}, EventMetadataV4{Name: "Resumed", Args: []Type(nil), Documentation: []Text{" Current authority set has been resumed."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "PauseFailed", Documentation: []Text{" Attempt to signal GRANDPA pause when the authority set isn't live", " (either paused or already pending pause)."}}, ErrorMetadataV8{Name: "ResumeFailed", Documentation: []Text{" Attempt to signal GRANDPA resume when the authority set isn't paused", " (either live or already pending resume)."}}, ErrorMetadataV8{Name: "ChangePending", Documentation: []Text{" Attempt to signal GRANDPA change with one already pending."}}, ErrorMetadataV8{Name: "TooSoon", Documentation: []Text{" Cannot signal forced change so soon after last."}}, ErrorMetadataV8{Name: "InvalidKeyOwnershipProof", Documentation: []Text{" A key ownership proof provided as part of an equivocation report is invalid."}}, ErrorMetadataV8{Name: "InvalidEquivocationProof", Documentation: []Text{" An equivocation proof provided as part of an equivocation report is invalid."}}, ErrorMetadataV8{Name: "DuplicateOffenceReport", Documentation: []Text{" A given equivocation report is valid but already previously reported."}}}, Index: 0x10}, ModuleMetadataV13{Name: "Treasury", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Treasury", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "ProposalIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of proposals that have been made."}}, StorageFunctionMetadataV13{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "ProposalIndex", Value: "Proposal>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposals that have been made."}}, StorageFunctionMetadataV13{Name: "Approvals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "BoundedVec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposal indices that have been approved but not yet awarded."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "propose_spend", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "Compact>"}, FunctionArgumentMetadata{Name: "beneficiary", Type: "::Source"}}, Documentation: []Text{" Put forward a suggestion for spending. A deposit proportional to the value", " is reserved and slashed if the proposal is rejected. It is returned once the", " proposal is awarded.", "", " # ", " - Complexity: O(1)", " - DbReads: `ProposalCount`, `origin account`", " - DbWrites: `ProposalCount`, `Proposals`, `origin account`", " # "}}, FunctionMetadataV4{Name: "reject_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Reject a proposed spend. The original deposit will be slashed.", "", " May only be called from `T::RejectOrigin`.", "", " # ", " - Complexity: O(1)", " - DbReads: `Proposals`, `rejected proposer account`", " - DbWrites: `Proposals`, `rejected proposer account`", " # "}}, FunctionMetadataV4{Name: "approve_proposal", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", " and the original deposit will be returned.", "", " May only be called from `T::ApproveOrigin`.", "", " # ", " - Complexity: O(1).", " - DbReads: `Proposals`, `Approvals`", " - DbWrite: `Approvals`", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Proposed", Args: []Type{"ProposalIndex"}, Documentation: []Text{" New proposal. \\[proposal_index\\]"}}, EventMetadataV4{Name: "Spending", Args: []Type{"Balance"}, Documentation: []Text{" We have ended a spend period and will now allocate funds. \\[budget_remaining\\]"}}, EventMetadataV4{Name: "Awarded", Args: []Type{"ProposalIndex", "Balance", "AccountId"}, Documentation: []Text{" Some funds have been allocated. \\[proposal_index, award, beneficiary\\]"}}, EventMetadataV4{Name: "Rejected", Args: []Type{"ProposalIndex", "Balance"}, Documentation: []Text{" A proposal was rejected; funds were slashed. \\[proposal_index, slashed\\]"}}, EventMetadataV4{Name: "Burnt", Args: []Type{"Balance"}, Documentation: []Text{" Some of our funds have been burnt. \\[burn\\]"}}, EventMetadataV4{Name: "Rollover", Args: []Type{"Balance"}, Documentation: []Text{" Spending has finished; this is the amount that rolls over until next spend.", " \\[budget_remaining\\]"}}, EventMetadataV4{Name: "Deposit", Args: []Type{"Balance"}, Documentation: []Text{" Some funds have been deposited. \\[deposit\\]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "ProposalBond", Type: "Permill", Value: Bytes{0x50, 0xc3, 0x0, 0x0}, Documentation: []Text{" Fraction of a proposal's value that should be bonded in order to place the proposal.", " An accepted proposal gets these back. A rejected proposal does not."}}, ModuleConstantMetadataV6{Name: "ProposalBondMinimum", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum amount of funds that should be placed in a deposit for making a proposal."}}, ModuleConstantMetadataV6{Name: "SpendPeriod", Type: "T::BlockNumber", Value: Bytes{0x80, 0x70, 0x0, 0x0}, Documentation: []Text{" Period between successive spends."}}, ModuleConstantMetadataV6{Name: "Burn", Type: "Permill", Value: Bytes{0x20, 0xa1, 0x7, 0x0}, Documentation: []Text{" Percentage of spare funds (if any) that are burnt per spend period."}}, ModuleConstantMetadataV6{Name: "PalletId", Type: "PalletId", Value: Bytes{0x70, 0x79, 0x2f, 0x74, 0x72, 0x73, 0x72, 0x79}, Documentation: []Text{" The treasury's module id, used for deriving its sovereign account ID."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InsufficientProposersBalance", Documentation: []Text{" Proposer's balance is too low."}}, ErrorMetadataV8{Name: "InvalidIndex", Documentation: []Text{" No proposal or bounty at that index."}}, ErrorMetadataV8{Name: "TooManyApprovals", Documentation: []Text{" Too many approvals in the queue."}}}, Index: 0x11}, ModuleMetadataV13{Name: "Contracts", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Contracts", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "PristineCode", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "CodeHash", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from an original code hash to the original code, untouched by instrumentation."}}, StorageFunctionMetadataV13{Name: "CodeStorage", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "CodeHash", Value: "PrefabWasmModule", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping between an original code hash and instrumented wasm code, ready for execution."}}, StorageFunctionMetadataV13{Name: "AccountCounter", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The subtrie counter."}}, StorageFunctionMetadataV13{Name: "ContractInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "ContractInfo", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The code associated with a given account.", "", " TWOX-NOTE: SAFE since `AccountId` is a secure hash."}}, StorageFunctionMetadataV13{Name: "DeletionQueue", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Evicted contracts that await child trie deletion.", "", " Child trie deletion is a heavy operation depending on the amount of storage items", " stored in said trie. Therefore this operation is performed lazily in `on_initialize`."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "call", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "value", Type: "Compact>"}, FunctionArgumentMetadata{Name: "gas_limit", Type: "Compact"}, FunctionArgumentMetadata{Name: "data", Type: "Vec"}}, Documentation: []Text{" Makes a call to an account, optionally transferring some balance.", "", " * If the account is a smart-contract account, the associated code will be", " executed and any value will be transferred.", " * If the account is a regular account, any value will be transferred.", " * If no account exists and the call value is not less than `existential_deposit`,", " a regular account will be created and any value will be transferred."}}, FunctionMetadataV4{Name: "instantiate_with_code", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "endowment", Type: "Compact>"}, FunctionArgumentMetadata{Name: "gas_limit", Type: "Compact"}, FunctionArgumentMetadata{Name: "code", Type: "Vec"}, FunctionArgumentMetadata{Name: "data", Type: "Vec"}, FunctionArgumentMetadata{Name: "salt", Type: "Vec"}}, Documentation: []Text{" Instantiates a new contract from the supplied `code` optionally transferring", " some balance.", "", " This is the only function that can deploy new code to the chain.", "", " # Parameters", "", " * `endowment`: The balance to transfer from the `origin` to the newly created contract.", " * `gas_limit`: The gas limit enforced when executing the constructor.", " * `code`: The contract code to deploy in raw bytes.", " * `data`: The input data to pass to the contract constructor.", " * `salt`: Used for the address derivation. See [`Pallet::contract_address`].", "", " Instantiation is executed as follows:", "", " - The supplied `code` is instrumented, deployed, and a `code_hash` is created for that code.", " - If the `code_hash` already exists on the chain the underlying `code` will be shared.", " - The destination address is computed based on the sender, code_hash and the salt.", " - The smart-contract account is created at the computed address.", " - The `endowment` is transferred to the new account.", " - The `deploy` function is executed in the context of the newly-created account."}}, FunctionMetadataV4{Name: "instantiate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "endowment", Type: "Compact>"}, FunctionArgumentMetadata{Name: "gas_limit", Type: "Compact"}, FunctionArgumentMetadata{Name: "code_hash", Type: "CodeHash"}, FunctionArgumentMetadata{Name: "data", Type: "Vec"}, FunctionArgumentMetadata{Name: "salt", Type: "Vec"}}, Documentation: []Text{" Instantiates a contract from a previously deployed wasm binary.", "", " This function is identical to [`Self::instantiate_with_code`] but without the", " code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary", " must be supplied."}}, FunctionMetadataV4{Name: "claim_surcharge", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "dest", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "aux_sender", Type: "Option"}}, Documentation: []Text{" Allows block producers to claim a small reward for evicting a contract. If a block", " producer fails to do so, a regular users will be allowed to claim the reward.", "", " In case of a successful eviction no fees are charged from the sender. However, the", " reward is capped by the total amount of rent that was paid by the contract while", " it was alive.", "", " If contract is not evicted as a result of this call, [`Error::ContractNotEvictable`]", " is returned and the sender is not eligible for the reward."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Instantiated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" Contract deployed by address at the specified address. \\[deployer, contract\\]"}}, EventMetadataV4{Name: "Evicted", Args: []Type{"AccountId"}, Documentation: []Text{" Contract has been evicted and is now in tombstone state. \\[contract\\]"}}, EventMetadataV4{Name: "Terminated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" Contract has been terminated without leaving a tombstone.", " \\[contract, beneficiary\\]", "", " # Params", "", " - `contract`: The contract that was terminated.", " - `beneficiary`: The account that received the contracts remaining balance.", "", " # Note", "", " The only way for a contract to be removed without a tombstone and emitting", " this event is by calling `seal_terminate`."}}, EventMetadataV4{Name: "Restored", Args: []Type{"AccountId", "AccountId", "Hash", "Balance"}, Documentation: []Text{" Restoration of a contract has been successful.", " \\[restorer, dest, code_hash, rent_allowance\\]", "", " # Params", "", " - `restorer`: Account ID of the restoring contract.", " - `dest`: Account ID of the restored contract.", " - `code_hash`: Code hash of the restored contract.", " - `rent_allowance`: Rent allowance of the restored contract."}}, EventMetadataV4{Name: "CodeStored", Args: []Type{"Hash"}, Documentation: []Text{" Code with the specified hash has been stored. \\[code_hash\\]"}}, EventMetadataV4{Name: "ScheduleUpdated", Args: []Type{"u32"}, Documentation: []Text{" Triggered when the current schedule is updated.", " \\[version\\]", "", " # Params", "", " - `version`: The version of the newly set schedule."}}, EventMetadataV4{Name: "ContractEmitted", Args: []Type{"AccountId", "Vec"}, Documentation: []Text{" A custom event emitted by the contract.", " \\[contract, data\\]", "", " # Params", "", " - `contract`: The contract that emitted the event.", " - `data`: Data supplied by the contract. Metadata generated during contract", " compilation is needed to decode it."}}, EventMetadataV4{Name: "CodeRemoved", Args: []Type{"Hash"}, Documentation: []Text{" A code with the specified hash was removed.", " \\[code_hash\\]", "", " This happens when the last contract that uses this code hash was removed or evicted."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "Schedule", Type: "Schedule", Value: Bytes{0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x2, 0x0, 0x0, 0x0, 0x8e, 0x6, 0x0, 0x0, 0xe2, 0xfc, 0x1, 0x0, 0xcd, 0xf, 0x3, 0x0, 0x9, 0x17, 0x0, 0x0, 0x86, 0x1d, 0x0, 0x0, 0x3, 0xc, 0x0, 0x0, 0x1f, 0x18, 0x0, 0x0, 0x56, 0x29, 0x0, 0x0, 0x82, 0x0, 0x0, 0x0, 0xb0, 0x59, 0x1, 0x0, 0x55, 0x81, 0x2, 0x0, 0xc0, 0xb, 0x0, 0x0, 0x29, 0x7, 0x0, 0x0, 0x59, 0x8, 0x0, 0x0, 0x3b, 0x6, 0x0, 0x0, 0xb8, 0x16, 0x0, 0x0, 0xa6, 0x1a, 0x0, 0x0, 0x60, 0x7, 0x0, 0x0, 0xd, 0xe8, 0xb6, 0x7, 0xb1, 0x6, 0x0, 0x0, 0x7d, 0x6, 0x0, 0x0, 0xe6, 0x9, 0x0, 0x0, 0xdc, 0x7, 0x0, 0x0, 0xd5, 0x5, 0x0, 0x0, 0xd7, 0x5, 0x0, 0x0, 0x5b, 0x6, 0x0, 0x0, 0x43, 0x9, 0x0, 0x0, 0x39, 0x9, 0x0, 0x0, 0x1c, 0x9, 0x0, 0x0, 0x4d, 0x9, 0x0, 0x0, 0x1d, 0x9, 0x0, 0x0, 0x30, 0x9, 0x0, 0x0, 0x18, 0x9, 0x0, 0x0, 0x41, 0x9, 0x0, 0x0, 0x38, 0x9, 0x0, 0x0, 0x68, 0x9, 0x0, 0x0, 0x7d, 0x8, 0x0, 0x0, 0xf8, 0x8, 0x0, 0x0, 0x8e, 0x8, 0x0, 0x0, 0x3, 0x22, 0x0, 0x0, 0x37, 0x1e, 0x0, 0x0, 0xfd, 0x21, 0x0, 0x0, 0xe7, 0x1d, 0x0, 0x0, 0xa6, 0x8, 0x0, 0x0, 0xab, 0x8, 0x0, 0x0, 0xd5, 0x8, 0x0, 0x0, 0xdb, 0x9, 0x0, 0x0, 0xd8, 0x9, 0x0, 0x0, 0x19, 0xa, 0x0, 0x0, 0x1e, 0xb, 0x0, 0x0, 0xc, 0x9, 0x0, 0x0, 0x52, 0xf7, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6e, 0xe5, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9c, 0x21, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x39, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x70, 0x2a, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x4f, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0xce, 0x3a, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0xdc, 0x54, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x18, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x31, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xc1, 0x47, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9a, 0x12, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x40, 0x6d, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x54, 0x42, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe3, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0x3a, 0x7d, 0x20, 0x0, 0x0, 0x0, 0x0, 0x67, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xa9, 0xe7, 0x29, 0x0, 0x0, 0x0, 0x0, 0x2c, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x65, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xac, 0x13, 0xaa, 0x9, 0x0, 0x0, 0x0, 0x0, 0x6c, 0x83, 0x5b, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc2, 0x29, 0x87, 0x0, 0x0, 0x0, 0x0, 0x0, 0xda, 0xd6, 0xc9, 0x7, 0x0, 0x0, 0x0, 0x0, 0x94, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x68, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0xb, 0x19, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x10, 0xb2, 0x9, 0x0, 0x0, 0x0, 0x0, 0xb5, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfe, 0xe1, 0x30, 0x8, 0x0, 0x0, 0x0, 0x0, 0xc2, 0x74, 0x8, 0x2, 0x0, 0x0, 0x0, 0x0, 0xdb, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6c, 0x54, 0x8a, 0xa, 0x0, 0x0, 0x0, 0x0, 0xaa, 0xb1, 0xda, 0xf, 0x0, 0x0, 0x0, 0x0, 0xf5, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x8b, 0x39, 0x8, 0x0, 0x0, 0x0, 0x0, 0x50, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8e, 0x63, 0xf0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x7e, 0x21, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x67, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x29, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa4, 0x1f, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc3, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0xa6, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbd, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x15, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa6, 0xa8, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfc, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Cost schedule and limits."}}, ModuleConstantMetadataV6{Name: "SignedClaimHandicap", Type: "T::BlockNumber", Value: Bytes{0x2, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of block delay an extrinsic claim surcharge has.", "", " When claim surcharge is called by an extrinsic the rent is checked", " for current_block - delay"}}, ModuleConstantMetadataV6{Name: "TombstoneDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0xf0, 0xe8, 0x85, 0x7a, 0x9c, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount required to generate a tombstone."}}, ModuleConstantMetadataV6{Name: "DepositPerContract", Type: "BalanceOf", Value: Bytes{0x0, 0xf0, 0xe8, 0x85, 0x7a, 0x9c, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The balance every contract needs to deposit to stay alive indefinitely.", "", " This is different from the [`Self::TombstoneDeposit`] because this only needs to be", " deposited while the contract is alive. Costs for additional storage are added to", " this base cost.", "", " This is a simple way to ensure that contracts with empty storage eventually get deleted by", " making them pay rent. This creates an incentive to remove them early in order to save rent."}}, ModuleConstantMetadataV6{Name: "DepositPerStorageByte", Type: "BalanceOf", Value: Bytes{0x0, 0x60, 0xde, 0xfb, 0x74, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The balance a contract needs to deposit per storage byte to stay alive indefinitely.", "", " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,", " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.", " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,", " then it would pay 500 BU/day."}}, ModuleConstantMetadataV6{Name: "DepositPerStorageItem", Type: "BalanceOf", Value: Bytes{0x0, 0xf0, 0xab, 0x75, 0xa4, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The balance a contract needs to deposit per storage item to stay alive indefinitely.", "", " It works the same as [`Self::DepositPerStorageByte`] but for storage items."}}, ModuleConstantMetadataV6{Name: "RentFraction", Type: "Perbill", Value: Bytes{0x85, 0x4, 0x0, 0x0}, Documentation: []Text{" The fraction of the deposit that should be used as rent per block.", "", " When a contract hasn't enough balance deposited to stay alive indefinitely it needs", " to pay per block for the storage it consumes that is not covered by the deposit.", " This determines how high this rent payment is per block as a fraction of the deposit."}}, ModuleConstantMetadataV6{Name: "SurchargeReward", Type: "BalanceOf", Value: Bytes{0x0, 0x5c, 0xb2, 0xec, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Reward that is received by the party whose touch has led", " to removal of a contract."}}, ModuleConstantMetadataV6{Name: "DeletionQueueDepth", Type: "u32", Value: Bytes{0x85, 0x4, 0x0, 0x0}, Documentation: []Text{" The maximum number of tries that can be queued for deletion."}}, ModuleConstantMetadataV6{Name: "DeletionWeightLimit", Type: "Weight", Value: Bytes{0x0, 0xd0, 0xed, 0x90, 0x2e, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum amount of weight that can be consumed per block for lazy trie removal."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidScheduleVersion", Documentation: []Text{" A new schedule must have a greater version than the current one."}}, ErrorMetadataV8{Name: "InvalidSurchargeClaim", Documentation: []Text{" An origin must be signed or inherent and auxiliary sender only provided on inherent."}}, ErrorMetadataV8{Name: "InvalidSourceContract", Documentation: []Text{" Cannot restore from nonexisting or tombstone contract."}}, ErrorMetadataV8{Name: "InvalidDestinationContract", Documentation: []Text{" Cannot restore to nonexisting or alive contract."}}, ErrorMetadataV8{Name: "InvalidTombstone", Documentation: []Text{" Tombstones don't match."}}, ErrorMetadataV8{Name: "InvalidContractOrigin", Documentation: []Text{" An origin TrieId written in the current block."}}, ErrorMetadataV8{Name: "OutOfGas", Documentation: []Text{" The executed contract exhausted its gas limit."}}, ErrorMetadataV8{Name: "OutputBufferTooSmall", Documentation: []Text{" The output buffer supplied to a contract API call was too small."}}, ErrorMetadataV8{Name: "BelowSubsistenceThreshold", Documentation: []Text{" Performing the requested transfer would have brought the contract below", " the subsistence threshold. No transfer is allowed to do this in order to allow", " for a tombstone to be created. Use `seal_terminate` to remove a contract without", " leaving a tombstone behind."}}, ErrorMetadataV8{Name: "NewContractNotFunded", Documentation: []Text{" The newly created contract is below the subsistence threshold after executing", " its contructor. No contracts are allowed to exist below that threshold."}}, ErrorMetadataV8{Name: "TransferFailed", Documentation: []Text{" Performing the requested transfer failed for a reason originating in the", " chosen currency implementation of the runtime. Most probably the balance is", " too low or locks are placed on it."}}, ErrorMetadataV8{Name: "MaxCallDepthReached", Documentation: []Text{" Performing a call was denied because the calling depth reached the limit", " of what is specified in the schedule."}}, ErrorMetadataV8{Name: "ContractNotFound", Documentation: []Text{" No contract was found at the specified address."}}, ErrorMetadataV8{Name: "ContractIsTombstone", Documentation: []Text{" A tombstone exist at the specified address.", "", " Tombstone cannot be called. Anyone can use `seal_restore_to` in order to revive", " the contract, though."}}, ErrorMetadataV8{Name: "RentNotPaid", Documentation: []Text{" The called contract does not have enough balance to pay for its storage.", "", " The contract ran out of balance and is therefore eligible for eviction into a", " tombstone. Anyone can evict the contract by submitting a `claim_surcharge`", " extrinsic. Alternatively, a plain balance transfer can be used in order to", " increase the contracts funds so that it can be called again."}}, ErrorMetadataV8{Name: "CodeTooLarge", Documentation: []Text{" The code supplied to `instantiate_with_code` exceeds the limit specified in the", " current schedule."}}, ErrorMetadataV8{Name: "CodeNotFound", Documentation: []Text{" No code could be found at the supplied code hash."}}, ErrorMetadataV8{Name: "OutOfBounds", Documentation: []Text{" A buffer outside of sandbox memory was passed to a contract API function."}}, ErrorMetadataV8{Name: "DecodingFailed", Documentation: []Text{" Input passed to a contract API function failed to decode as expected type."}}, ErrorMetadataV8{Name: "ContractTrapped", Documentation: []Text{" Contract trapped during execution."}}, ErrorMetadataV8{Name: "ValueTooLarge", Documentation: []Text{" The size defined in `T::MaxValueSize` was exceeded."}}, ErrorMetadataV8{Name: "ReentranceDenied", Documentation: []Text{" The action performed is not allowed while the contract performing it is already", " on the call stack. Those actions are contract self destruction and restoration", " of a tombstone."}}, ErrorMetadataV8{Name: "InputAlreadyRead", Documentation: []Text{" `seal_input` was called twice from the same contract execution context."}}, ErrorMetadataV8{Name: "RandomSubjectTooLong", Documentation: []Text{" The subject passed to `seal_random` exceeds the limit."}}, ErrorMetadataV8{Name: "TooManyTopics", Documentation: []Text{" The amount of topics passed to `seal_deposit_events` exceeds the limit."}}, ErrorMetadataV8{Name: "DuplicateTopics", Documentation: []Text{" The topics passed to `seal_deposit_events` contains at least one duplicate."}}, ErrorMetadataV8{Name: "NoChainExtension", Documentation: []Text{" The chain does not provide a chain extension. Calling the chain extension results", " in this error. Note that this usually shouldn't happen as deploying such contracts", " is rejected."}}, ErrorMetadataV8{Name: "DeletionQueueFull", Documentation: []Text{" Removal of a contract failed because the deletion queue is full.", "", " This can happen when either calling [`Pallet::claim_surcharge`] or `seal_terminate`.", " The queue is filled by deleting contracts and emptied by a fixed amount each block.", " Trying again during another block is the only way to resolve this issue."}}, ErrorMetadataV8{Name: "ContractNotEvictable", Documentation: []Text{" A contract could not be evicted because it has enough balance to pay rent.", "", " This can be returned from [`Pallet::claim_surcharge`] because the target", " contract has enough balance to pay for its rent."}}, ErrorMetadataV8{Name: "StorageExhausted", Documentation: []Text{" A storage modification exhausted the 32bit type that holds the storage size.", "", " This can either happen when the accumulated storage in bytes is too large or", " when number of storage items is too large."}}, ErrorMetadataV8{Name: "DuplicateContract", Documentation: []Text{" A contract with the same AccountId already exists."}}, ErrorMetadataV8{Name: "TerminatedInConstructor", Documentation: []Text{" A contract self destructed in its constructor.", "", " This can be triggered by a call to `seal_terminate` or `seal_restore_to`."}}, ErrorMetadataV8{Name: "DebugMessageInvalidUTF8", Documentation: []Text{" The debug message specified to `seal_debug_message` does contain invalid UTF-8."}}}, Index: 0x12}, ModuleMetadataV13{Name: "Sudo", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Sudo", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Key", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The `AccountId` of the sudo key."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "sudo", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Authenticates the sudo key and dispatches a function call with `Root` origin.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB write (event).", " - Weight of derivative `call` execution + 10,000.", " # "}}, FunctionMetadataV4{Name: "sudo_unchecked_weight", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}, FunctionArgumentMetadata{Name: "_weight", Type: "Weight"}}, Documentation: []Text{" Authenticates the sudo key and dispatches a function call with `Root` origin.", " This function does not check the weight of the call, and instead allows the", " Sudo user to specify the weight of the call.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - The weight of this call is defined by the caller.", " # "}}, FunctionMetadataV4{Name: "set_key", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "new", Type: "::Source"}}, Documentation: []Text{" Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change.", " # "}}, FunctionMetadataV4{Name: "sudo_as", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "::Source"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Authenticates the sudo key and dispatches a function call with `Signed` origin from", " a given account.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB write (event).", " - Weight of derivative `call` execution + 10,000.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Sudid", Args: []Type{"DispatchResult"}, Documentation: []Text{" A sudo just took place. \\[result\\]"}}, EventMetadataV4{Name: "KeyChanged", Args: []Type{"AccountId"}, Documentation: []Text{" The \\[sudoer\\] just switched identity; the old key is supplied."}}, EventMetadataV4{Name: "SudoAsDone", Args: []Type{"DispatchResult"}, Documentation: []Text{" A sudo just took place. \\[result\\]"}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "RequireSudo", Documentation: []Text{" Sender must be the Sudo account"}}}, Index: 0x13}, ModuleMetadataV13{Name: "ImOnline", HasStorage: true, Storage: StorageMetadataV13{Prefix: "ImOnline", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "HeartbeatAfter", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The block number after which it's ok to send heartbeats in the current", " session.", "", " At the beginning of each session we set this to a value that should fall", " roughly in the middle of the session duration. The idea is to first wait for", " the validators to produce a block in the current session, so that the", " heartbeat later on will not be necessary.", "", " This value will only be used as a fallback if we fail to get a proper session", " progress estimate from `NextSessionRotation`, as those estimates should be", " more accurate then the value we calculate for `HeartbeatAfter`."}}, StorageFunctionMetadataV13{Name: "Keys", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of keys that may issue a heartbeat."}}, StorageFunctionMetadataV13{Name: "ReceivedHeartbeats", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "SessionIndex", Key2: "AuthIndex", Value: "Vec", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" For each session index, we keep a mapping of `AuthIndex` to", " `offchain::OpaqueNetworkState`."}}, StorageFunctionMetadataV13{Name: "AuthoredBlocks", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "SessionIndex", Key2: "ValidatorId", Value: "u32", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" For each session index, we keep a mapping of `ValidatorId` to the", " number of blocks authored by the given authority."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "heartbeat", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "heartbeat", Type: "Heartbeat"}, FunctionArgumentMetadata{Name: "_signature", Type: "::Signature"}}, Documentation: []Text{" # ", " - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len)", " and E is length of `heartbeat.network_state.external_address`", " - `O(K)`: decoding of length `K`", " - `O(E)`: decoding/encoding of length `E`", " - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,", " `ReceivedHeartbeats`", " - DbWrites: `ReceivedHeartbeats`", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "HeartbeatReceived", Args: []Type{"AuthorityId"}, Documentation: []Text{" A new heartbeat was received from `AuthorityId` \\[authority_id\\]"}}, EventMetadataV4{Name: "AllGood", Args: []Type(nil), Documentation: []Text{" At the end of the session, no offence was committed."}}, EventMetadataV4{Name: "SomeOffline", Args: []Type{"Vec"}, Documentation: []Text{" At the end of the session, at least one validator was found to be \\[offline\\]."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InvalidKey", Documentation: []Text{" Non existent public key."}}, ErrorMetadataV8{Name: "DuplicatedHeartbeat", Documentation: []Text{" Duplicated heartbeat."}}}, Index: 0x14}, ModuleMetadataV13{Name: "AuthorityDiscovery", HasStorage: false, Storage: StorageMetadataV13{Prefix: "", Items: []StorageFunctionMetadataV13(nil)}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil), Index: 0x15}, ModuleMetadataV13{Name: "Offences", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Offences", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Reports", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "ReportIdOf", Value: "OffenceDetails", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The primary structure that holds all offence records keyed by report identifiers."}}, StorageFunctionMetadataV13{Name: "ConcurrentReportsIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "Kind", Key2: "OpaqueTimeSlot", Value: "Vec>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" A vector of reports of the same kind that happened at the same time slot."}}, StorageFunctionMetadataV13{Name: "ReportsByKindIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "Kind", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Enumerates all reports of a kind along with the time they happened.", "", " All reports are sorted by the time of offence.", "", " Note that the actual type of this mapping is `Vec`, this is because values of", " different types are not supported at the moment so we are doing the manual serialization."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Offence", Args: []Type{"Kind", "OpaqueTimeSlot"}, Documentation: []Text{" There is an offence reported of the given `kind` happened at the `session_index` and", " (kind-specific) time slot. This event is not deposited for duplicate slashes.", " \\[kind, timeslot\\]."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil), Index: 0x16}, ModuleMetadataV13{Name: "Historical", HasStorage: false, Storage: StorageMetadataV13{Prefix: "", Items: []StorageFunctionMetadataV13(nil)}, HasCalls: false, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil), Index: 0x17}, ModuleMetadataV13{Name: "RandomnessCollectiveFlip", HasStorage: true, Storage: StorageMetadataV13{Prefix: "RandomnessCollectiveFlip", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "RandomMaterial", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Series of block headers from the last 81 blocks that acts as random seed material. This", " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", " the oldest hash."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil), Index: 0x18}, ModuleMetadataV13{Name: "Identity", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Identity", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "IdentityOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "Registration>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information that is pertinent to identify the entity behind an account.", "", " TWOX-NOTE: OK ― `AccountId` is a secure hash."}}, StorageFunctionMetadataV13{Name: "SuperOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "(T::AccountId, Data)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The super-identity of an alternative \"sub\" identity together with its name, within that", " context. If the account is not some other account's sub-identity, then just `None`."}}, StorageFunctionMetadataV13{Name: "SubsOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "(BalanceOf, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Alternative \"sub\" identities of this account.", "", " The first item is the deposit, the second is a vector of the accounts.", "", " TWOX-NOTE: OK ― `AccountId` is a secure hash."}}, StorageFunctionMetadataV13{Name: "Registrars", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec, T::AccountId>>>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of registrars. Not expected to get very big as can only be added through a", " special origin (likely a council motion).", "", " The index into this can be cast to `RegistrarIndex` to get a valid value."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "add_registrar", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "account", Type: "T::AccountId"}}, Documentation: []Text{" Add a registrar to the system.", "", " The dispatch origin for this call must be `T::RegistrarOrigin`.", "", " - `account`: the account of the registrar.", "", " Emits `RegistrarAdded` if successful.", "", " # ", " - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).", " - One storage mutation (codec `O(R)`).", " - One event.", " # "}}, FunctionMetadataV4{Name: "set_identity", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "info", Type: "IdentityInfo"}}, Documentation: []Text{" Set an account's identity information and reserve the appropriate deposit.", "", " If the account already has identity information, the deposit is taken as part payment", " for the new deposit.", "", " The dispatch origin for this call must be _Signed_.", "", " - `info`: The identity information.", "", " Emits `IdentitySet` if successful.", "", " # ", " - `O(X + X' + R)`", " - where `X` additional-field-count (deposit-bounded and code-bounded)", " - where `R` judgements-count (registrar-count-bounded)", " - One balance reserve operation.", " - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).", " - One event.", " # "}}, FunctionMetadataV4{Name: "set_subs", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "subs", Type: "Vec<(T::AccountId, Data)>"}}, Documentation: []Text{" Set the sub-accounts of the sender.", "", " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " identity.", "", " - `subs`: The identity's (new) sub-accounts.", "", " # ", " - `O(P + S)`", " - where `P` old-subs-count (hard- and deposit-bounded).", " - where `S` subs-count (hard- and deposit-bounded).", " - At most one balance operations.", " - DB:", " - `P + S` storage mutations (codec complexity `O(1)`)", " - One storage read (codec complexity `O(P)`).", " - One storage write (codec complexity `O(S)`).", " - One storage-exists (`IdentityOf::contains_key`).", " # "}}, FunctionMetadataV4{Name: "clear_identity", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Clear an account's identity info and all sub-accounts and return all deposits.", "", " Payment: All reserved balances on the account are returned.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " identity.", "", " Emits `IdentityCleared` if successful.", "", " # ", " - `O(R + S + X)`", " - where `R` registrar-count (governance-bounded).", " - where `S` subs-count (hard- and deposit-bounded).", " - where `X` additional-field-count (deposit-bounded and code-bounded).", " - One balance-unreserve operation.", " - `2` storage reads and `S + 2` storage deletions.", " - One event.", " # "}}, FunctionMetadataV4{Name: "request_judgement", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reg_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "max_fee", Type: "Compact>"}}, Documentation: []Text{" Request a judgement from a registrar.", "", " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", " given.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a", " registered identity.", "", " - `reg_index`: The index of the registrar whose judgement is requested.", " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", "", " ```nocompile", " Self::registrars().get(reg_index).unwrap().fee", " ```", "", " Emits `JudgementRequested` if successful.", "", " # ", " - `O(R + X)`.", " - One balance-reserve operation.", " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.", " - One event.", " # "}}, FunctionMetadataV4{Name: "cancel_request", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reg_index", Type: "RegistrarIndex"}}, Documentation: []Text{" Cancel a previous request.", "", " Payment: A previously reserved deposit is returned on success.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a", " registered identity.", "", " - `reg_index`: The index of the registrar whose judgement is no longer requested.", "", " Emits `JudgementUnrequested` if successful.", "", " # ", " - `O(R + X)`.", " - One balance-reserve operation.", " - One storage mutation `O(R + X)`.", " - One event", " # "}}, FunctionMetadataV4{Name: "set_fee", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "fee", Type: "Compact>"}}, Documentation: []Text{" Set the fee required for a judgement to be requested from a registrar.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `index`.", "", " - `index`: the index of the registrar whose fee is to be set.", " - `fee`: the new fee.", "", " # ", " - `O(R)`.", " - One storage mutation `O(R)`.", " - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)", " # "}}, FunctionMetadataV4{Name: "set_account_id", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "new", Type: "T::AccountId"}}, Documentation: []Text{" Change the account associated with a registrar.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `index`.", "", " - `index`: the index of the registrar whose fee is to be set.", " - `new`: the new account ID.", "", " # ", " - `O(R)`.", " - One storage mutation `O(R)`.", " - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)", " # "}}, FunctionMetadataV4{Name: "set_fields", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "Compact"}, FunctionArgumentMetadata{Name: "fields", Type: "IdentityFields"}}, Documentation: []Text{" Set the field information for a registrar.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `index`.", "", " - `index`: the index of the registrar whose fee is to be set.", " - `fields`: the fields that the registrar concerns themselves with.", "", " # ", " - `O(R)`.", " - One storage mutation `O(R)`.", " - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)", " # "}}, FunctionMetadataV4{Name: "provide_judgement", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reg_index", Type: "Compact"}, FunctionArgumentMetadata{Name: "target", Type: "::Source"}, FunctionArgumentMetadata{Name: "judgement", Type: "Judgement>"}}, Documentation: []Text{" Provide a judgement for an account's identity.", "", " The dispatch origin for this call must be _Signed_ and the sender must be the account", " of the registrar whose index is `reg_index`.", "", " - `reg_index`: the index of the registrar whose judgement is being made.", " - `target`: the account whose identity the judgement is upon. This must be an account", " with a registered identity.", " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.", "", " Emits `JudgementGiven` if successful.", "", " # ", " - `O(R + X)`.", " - One balance-transfer operation.", " - Up to one account-lookup operation.", " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.", " - One event.", " # "}}, FunctionMetadataV4{Name: "kill_identity", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "::Source"}}, Documentation: []Text{" Remove an account's identity and sub-account information and slash the deposits.", "", " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", " `Slash`. Verification request deposits are not returned; they should be cancelled", " manually using `cancel_request`.", "", " The dispatch origin for this call must match `T::ForceOrigin`.", "", " - `target`: the account whose identity the judgement is upon. This must be an account", " with a registered identity.", "", " Emits `IdentityKilled` if successful.", "", " # ", " - `O(R + S + X)`.", " - One balance-reserve operation.", " - `S + 2` storage mutations.", " - One event.", " # "}}, FunctionMetadataV4{Name: "add_sub", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "sub", Type: "::Source"}, FunctionArgumentMetadata{Name: "data", Type: "Data"}}, Documentation: []Text{" Add the given account to the sender's subs.", "", " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", " to the sender.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " sub identity of `sub`."}}, FunctionMetadataV4{Name: "rename_sub", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "sub", Type: "::Source"}, FunctionArgumentMetadata{Name: "data", Type: "Data"}}, Documentation: []Text{" Alter the associated name of the given sub-account.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " sub identity of `sub`."}}, FunctionMetadataV4{Name: "remove_sub", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "sub", Type: "::Source"}}, Documentation: []Text{" Remove the given account from the sender's subs.", "", " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", " to the sender.", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " sub identity of `sub`."}}, FunctionMetadataV4{Name: "quit_sub", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove the sender as a sub-account.", "", " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", " to the sender (*not* the original depositor).", "", " The dispatch origin for this call must be _Signed_ and the sender must have a registered", " super-identity.", "", " NOTE: This should not normally be used, but is provided in the case that the non-", " controller of an account is maliciously registered as a sub-account."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "IdentitySet", Args: []Type{"AccountId"}, Documentation: []Text{" A name was set or reset (which will remove all judgements). \\[who\\]"}}, EventMetadataV4{Name: "IdentityCleared", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A name was cleared, and the given balance returned. \\[who, deposit\\]"}}, EventMetadataV4{Name: "IdentityKilled", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A name was removed and the given balance slashed. \\[who, deposit\\]"}}, EventMetadataV4{Name: "JudgementRequested", Args: []Type{"AccountId", "RegistrarIndex"}, Documentation: []Text{" A judgement was asked from a registrar. \\[who, registrar_index\\]"}}, EventMetadataV4{Name: "JudgementUnrequested", Args: []Type{"AccountId", "RegistrarIndex"}, Documentation: []Text{" A judgement request was retracted. \\[who, registrar_index\\]"}}, EventMetadataV4{Name: "JudgementGiven", Args: []Type{"AccountId", "RegistrarIndex"}, Documentation: []Text{" A judgement was given by a registrar. \\[target, registrar_index\\]"}}, EventMetadataV4{Name: "RegistrarAdded", Args: []Type{"RegistrarIndex"}, Documentation: []Text{" A registrar was added. \\[registrar_index\\]"}}, EventMetadataV4{Name: "SubIdentityAdded", Args: []Type{"AccountId", "AccountId", "Balance"}, Documentation: []Text{" A sub-identity was added to an identity and the deposit paid. \\[sub, main, deposit\\]"}}, EventMetadataV4{Name: "SubIdentityRemoved", Args: []Type{"AccountId", "AccountId", "Balance"}, Documentation: []Text{" A sub-identity was removed from an identity and the deposit freed.", " \\[sub, main, deposit\\]"}}, EventMetadataV4{Name: "SubIdentityRevoked", Args: []Type{"AccountId", "AccountId", "Balance"}, Documentation: []Text{" A sub-identity was cleared, and the given deposit repatriated from the", " main identity account to the sub-identity account. \\[sub, main, deposit\\]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "BasicDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit for a registered identity"}}, ModuleConstantMetadataV6{Name: "FieldDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit per additional field for a registered identity."}}, ModuleConstantMetadataV6{Name: "SubAccountDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xf4, 0x20, 0xe6, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit for a registered subaccount. This should account for the fact", " that one storage item's value will increase by the size of an account ID, and there will be", " another trie item whose value is the size of an account ID plus 32 bytes."}}, ModuleConstantMetadataV6{Name: "MaxSubAccounts", Type: "u32", Value: Bytes{0x64, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum number of sub-accounts allowed per identified account."}}, ModuleConstantMetadataV6{Name: "MaxAdditionalFields", Type: "u32", Value: Bytes{0x64, 0x0, 0x0, 0x0}, Documentation: []Text{" Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O", " required to access an identity, but can be pretty high."}}, ModuleConstantMetadataV6{Name: "MaxRegistrars", Type: "u32", Value: Bytes{0x14, 0x0, 0x0, 0x0}, Documentation: []Text{" Maxmimum number of registrars allowed in the system. Needed to bound the complexity", " of, e.g., updating judgements."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "TooManySubAccounts", Documentation: []Text{" Too many subs-accounts."}}, ErrorMetadataV8{Name: "NotFound", Documentation: []Text{" Account isn't found."}}, ErrorMetadataV8{Name: "NotNamed", Documentation: []Text{" Account isn't named."}}, ErrorMetadataV8{Name: "EmptyIndex", Documentation: []Text{" Empty index."}}, ErrorMetadataV8{Name: "FeeChanged", Documentation: []Text{" Fee is changed."}}, ErrorMetadataV8{Name: "NoIdentity", Documentation: []Text{" No identity found."}}, ErrorMetadataV8{Name: "StickyJudgement", Documentation: []Text{" Sticky judgement."}}, ErrorMetadataV8{Name: "JudgementGiven", Documentation: []Text{" Judgement given."}}, ErrorMetadataV8{Name: "InvalidJudgement", Documentation: []Text{" Invalid judgement."}}, ErrorMetadataV8{Name: "InvalidIndex", Documentation: []Text{" The index is invalid."}}, ErrorMetadataV8{Name: "InvalidTarget", Documentation: []Text{" The target is invalid."}}, ErrorMetadataV8{Name: "TooManyFields", Documentation: []Text{" Too many additional fields."}}, ErrorMetadataV8{Name: "TooManyRegistrars", Documentation: []Text{" Maximum amount of registrars reached. Cannot add any more."}}, ErrorMetadataV8{Name: "AlreadyClaimed", Documentation: []Text{" Account ID is already named."}}, ErrorMetadataV8{Name: "NotSub", Documentation: []Text{" Sender is not a sub-account."}}, ErrorMetadataV8{Name: "NotOwned", Documentation: []Text{" Sub-account isn't owned by sender."}}}, Index: 0x19}, ModuleMetadataV13{Name: "Society", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Society", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Founder", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The first member."}}, StorageFunctionMetadataV13{Name: "Rules", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" A hash of the rules of this society concerning membership. Can only be set once and", " only by the founder."}}, StorageFunctionMetadataV13{Name: "Candidates", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec>>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of candidates; bidders that are attempting to become members."}}, StorageFunctionMetadataV13{Name: "SuspendedCandidates", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "(BalanceOf, BidKind>)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of suspended candidates."}}, StorageFunctionMetadataV13{Name: "Pot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Amount of our account balance that is specifically for the next round's bid(s)."}}, StorageFunctionMetadataV13{Name: "Head", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The most primary from the most recently approved members."}}, StorageFunctionMetadataV13{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of members, ordered."}}, StorageFunctionMetadataV13{Name: "SuspendedMembers", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "bool", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of suspended members."}}, StorageFunctionMetadataV13{Name: "Bids", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec>>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current bids, stored ordered by the value of the bid."}}, StorageFunctionMetadataV13{Name: "Vouching", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "VouchingStatus", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Members currently vouching or banned from vouching again"}}, StorageFunctionMetadataV13{Name: "Payouts", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "Vec<(T::BlockNumber, BalanceOf)>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Pending payouts; ordered by block number, with the amount that should be paid out."}}, StorageFunctionMetadataV13{Name: "Strikes", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "StrikeCount", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The ongoing number of losing votes cast by the member."}}, StorageFunctionMetadataV13{Name: "Votes", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "T::AccountId", Key2: "T::AccountId", Value: "Vote", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Double map from Candidate -> Voter -> (Maybe) Vote."}}, StorageFunctionMetadataV13{Name: "Defender", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The defending member currently being challenged."}}, StorageFunctionMetadataV13{Name: "DefenderVotes", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "Vote", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes for the defender."}}, StorageFunctionMetadataV13{Name: "MaxMembers", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The max number of members for the society at one time."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "bid", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "BalanceOf"}}, Documentation: []Text{" A user outside of the society can make a bid for entry.", "", " Payment: `CandidateDeposit` will be reserved for making a bid. It is returned", " when the bid becomes a member, or if the bid calls `unbid`.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `value`: A one time payment the bid would like to receive when joining the society.", "", " # ", " Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)", " - Storage Reads:", " \t- One storage read to check for suspended candidate. O(1)", " \t- One storage read to check for suspended member. O(1)", " \t- One storage read to retrieve all current bids. O(B)", " \t- One storage read to retrieve all current candidates. O(C)", " \t- One storage read to retrieve all members. O(M)", " - Storage Writes:", " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", " - Notable Computation:", " \t- O(B + C + log M) search to check user is not already a part of society.", " \t- O(log B) search to insert the new bid sorted.", " - External Module Operations:", " \t- One balance reserve operation. O(X)", " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", " - Events:", " \t- One event for new bid.", " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", "", " Total Complexity: O(M + B + C + logM + logB + X)", " # "}}, FunctionMetadataV4{Name: "unbid", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "pos", Type: "u32"}}, Documentation: []Text{" A bidder can remove their bid for entry into society.", " By doing so, they will have their candidate deposit returned or", " they will unvouch their voucher.", "", " Payment: The bid deposit is unreserved if the user made a bid.", "", " The dispatch origin for this call must be _Signed_ and a bidder.", "", " Parameters:", " - `pos`: Position in the `Bids` vector of the bid who wants to unbid.", "", " # ", " Key: B (len of bids), X (balance unreserve)", " - One storage read and write to retrieve and update the bids. O(B)", " - Either one unreserve balance action O(X) or one vouching storage removal. O(1)", " - One event.", "", " Total Complexity: O(B + X)", " # "}}, FunctionMetadataV4{Name: "vouch", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "value", Type: "BalanceOf"}, FunctionArgumentMetadata{Name: "tip", Type: "BalanceOf"}}, Documentation: []Text{" As a member, vouch for someone to join society by placing a bid on their behalf.", "", " There is no deposit required to vouch for a new bid, but a member can only vouch for", " one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", " the suspension judgement origin, the member will be banned from vouching again.", "", " As a vouching member, you can claim a tip if the candidate is accepted. This tip will", " be paid as a portion of the reward the member will receive for joining the society.", "", " The dispatch origin for this call must be _Signed_ and a member.", "", " Parameters:", " - `who`: The user who you would like to vouch for.", " - `value`: The total reward to be paid between you and the candidate if they become", " a member in the society.", " - `tip`: Your cut of the total `value` payout when the candidate is inducted into", " the society. Tips larger than `value` will be saturated upon payout.", "", " # ", " Key: B (len of bids), C (len of candidates), M (len of members)", " - Storage Reads:", " \t- One storage read to retrieve all members. O(M)", " \t- One storage read to check member is not already vouching. O(1)", " \t- One storage read to check for suspended candidate. O(1)", " \t- One storage read to check for suspended member. O(1)", " \t- One storage read to retrieve all current bids. O(B)", " \t- One storage read to retrieve all current candidates. O(C)", " - Storage Writes:", " \t- One storage write to insert vouching status to the member. O(1)", " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", " - Notable Computation:", " \t- O(log M) search to check sender is a member.", " \t- O(B + C + log M) search to check user is not already a part of society.", " \t- O(log B) search to insert the new bid sorted.", " - External Module Operations:", " \t- One balance reserve operation. O(X)", " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", " - Events:", " \t- One event for vouch.", " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", "", " Total Complexity: O(M + B + C + logM + logB + X)", " # "}}, FunctionMetadataV4{Name: "unvouch", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "pos", Type: "u32"}}, Documentation: []Text{" As a vouching member, unvouch a bid. This only works while vouched user is", " only a bidder (and not a candidate).", "", " The dispatch origin for this call must be _Signed_ and a vouching member.", "", " Parameters:", " - `pos`: Position in the `Bids` vector of the bid who should be unvouched.", "", " # ", " Key: B (len of bids)", " - One storage read O(1) to check the signer is a vouching member.", " - One storage mutate to retrieve and update the bids. O(B)", " - One vouching storage removal. O(1)", " - One event.", "", " Total Complexity: O(B)", " # "}}, FunctionMetadataV4{Name: "vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "candidate", Type: "::Source"}, FunctionArgumentMetadata{Name: "approve", Type: "bool"}}, Documentation: []Text{" As a member, vote on a candidate.", "", " The dispatch origin for this call must be _Signed_ and a member.", "", " Parameters:", " - `candidate`: The candidate that the member would like to bid on.", " - `approve`: A boolean which says if the candidate should be", " approved (`true`) or rejected (`false`).", "", " # ", " Key: C (len of candidates), M (len of members)", " - One storage read O(M) and O(log M) search to check user is a member.", " - One account lookup.", " - One storage read O(C) and O(C) search to check that user is a candidate.", " - One storage write to add vote to votes. O(1)", " - One event.", "", " Total Complexity: O(M + logM + C)", " # "}}, FunctionMetadataV4{Name: "defender_vote", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "approve", Type: "bool"}}, Documentation: []Text{" As a member, vote on the defender.", "", " The dispatch origin for this call must be _Signed_ and a member.", "", " Parameters:", " - `approve`: A boolean which says if the candidate should be", " approved (`true`) or rejected (`false`).", "", " # ", " - Key: M (len of members)", " - One storage read O(M) and O(log M) search to check user is a member.", " - One storage write to add vote to votes. O(1)", " - One event.", "", " Total Complexity: O(M + logM)", " # "}}, FunctionMetadataV4{Name: "payout", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Transfer the first matured payout for the sender and remove it from the records.", "", " NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.", "", " Payment: The member will receive a payment equal to their first matured", " payout to their free balance.", "", " The dispatch origin for this call must be _Signed_ and a member with", " payouts remaining.", "", " # ", " Key: M (len of members), P (number of payouts for a particular member)", " - One storage read O(M) and O(log M) search to check signer is a member.", " - One storage read O(P) to get all payouts for a member.", " - One storage read O(1) to get the current block number.", " - One currency transfer call. O(X)", " - One storage write or removal to update the member's payouts. O(P)", "", " Total Complexity: O(M + logM + P + X)", " # "}}, FunctionMetadataV4{Name: "found", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "founder", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "max_members", Type: "u32"}, FunctionArgumentMetadata{Name: "rules", Type: "Vec"}}, Documentation: []Text{" Found the society.", "", " This is done as a discrete action in order to allow for the", " module to be included into a running chain and can only be done once.", "", " The dispatch origin for this call must be from the _FounderSetOrigin_.", "", " Parameters:", " - `founder` - The first member and head of the newly founded society.", " - `max_members` - The initial max number of members for the society.", " - `rules` - The rules of this society concerning membership.", "", " # ", " - Two storage mutates to set `Head` and `Founder`. O(1)", " - One storage write to add the first member to society. O(1)", " - One event.", "", " Total Complexity: O(1)", " # "}}, FunctionMetadataV4{Name: "unfound", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Annul the founding of the society.", "", " The dispatch origin for this call must be Signed, and the signing account must be both", " the `Founder` and the `Head`. This implies that it may only be done when there is one", " member.", "", " # ", " - Two storage reads O(1).", " - Four storage removals O(1).", " - One event.", "", " Total Complexity: O(1)", " # "}}, FunctionMetadataV4{Name: "judge_suspended_member", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "forgive", Type: "bool"}}, Documentation: []Text{" Allow suspension judgement origin to make judgement on a suspended member.", "", " If a suspended member is forgiven, we simply add them back as a member, not affecting", " any of the existing storage items for that member.", "", " If a suspended member is rejected, remove all associated storage items, including", " their payouts, and remove any vouched bids they currently have.", "", " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", "", " Parameters:", " - `who` - The suspended member to be judged.", " - `forgive` - A boolean representing whether the suspension judgement origin", " forgives (`true`) or rejects (`false`) a suspended member.", "", " # ", " Key: B (len of bids), M (len of members)", " - One storage read to check `who` is a suspended member. O(1)", " - Up to one storage write O(M) with O(log M) binary search to add a member back to society.", " - Up to 3 storage removals O(1) to clean up a removed member.", " - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.", " - Up to one additional event if unvouch takes place.", " - One storage removal. O(1)", " - One event for the judgement.", "", " Total Complexity: O(M + logM + B)", " # "}}, FunctionMetadataV4{Name: "judge_suspended_candidate", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "judgement", Type: "Judgement"}}, Documentation: []Text{" Allow suspended judgement origin to make judgement on a suspended candidate.", "", " If the judgement is `Approve`, we add them to society as a member with the appropriate", " payment for joining society.", "", " If the judgement is `Reject`, we either slash the deposit of the bid, giving it back", " to the society treasury, or we ban the voucher from vouching again.", "", " If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go", " through the induction process again.", "", " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", "", " Parameters:", " - `who` - The suspended candidate to be judged.", " - `judgement` - `Approve`, `Reject`, or `Rebid`.", "", " # ", " Key: B (len of bids), M (len of members), X (balance action)", " - One storage read to check `who` is a suspended candidate.", " - One storage removal of the suspended candidate.", " - Approve Logic", " \t- One storage read to get the available pot to pay users with. O(1)", " \t- One storage write to update the available pot. O(1)", " \t- One storage read to get the current block number. O(1)", " \t- One storage read to get all members. O(M)", " \t- Up to one unreserve currency action.", " \t- Up to two new storage writes to payouts.", " \t- Up to one storage write with O(log M) binary search to add a member to society.", " - Reject Logic", " \t- Up to one repatriate reserved currency action. O(X)", " \t- Up to one storage write to ban the vouching member from vouching again.", " - Rebid Logic", " \t- Storage mutate with O(log B) binary search to place the user back into bids.", " - Up to one additional event if unvouch takes place.", " - One storage removal.", " - One event for the judgement.", "", " Total Complexity: O(M + logM + B + X)", " # "}}, FunctionMetadataV4{Name: "set_max_members", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "max", Type: "u32"}}, Documentation: []Text{" Allows root origin to change the maximum number of members in society.", " Max membership count must be greater than 1.", "", " The dispatch origin for this call must be from _ROOT_.", "", " Parameters:", " - `max` - The maximum number of members for the society.", "", " # ", " - One storage write to update the max. O(1)", " - One event.", "", " Total Complexity: O(1)", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Founded", Args: []Type{"AccountId"}, Documentation: []Text{" The society is founded by the given identity. \\[founder\\]"}}, EventMetadataV4{Name: "Bid", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A membership bid just happened. The given account is the candidate's ID and their offer", " is the second. \\[candidate_id, offer\\]"}}, EventMetadataV4{Name: "Vouch", Args: []Type{"AccountId", "Balance", "AccountId"}, Documentation: []Text{" A membership bid just happened by vouching. The given account is the candidate's ID and", " their offer is the second. The vouching party is the third. \\[candidate_id, offer, vouching\\]"}}, EventMetadataV4{Name: "AutoUnbid", Args: []Type{"AccountId"}, Documentation: []Text{" A \\[candidate\\] was dropped (due to an excess of bids in the system)."}}, EventMetadataV4{Name: "Unbid", Args: []Type{"AccountId"}, Documentation: []Text{" A \\[candidate\\] was dropped (by their request)."}}, EventMetadataV4{Name: "Unvouch", Args: []Type{"AccountId"}, Documentation: []Text{" A \\[candidate\\] was dropped (by request of who vouched for them)."}}, EventMetadataV4{Name: "Inducted", Args: []Type{"AccountId", "Vec"}, Documentation: []Text{" A group of candidates have been inducted. The batch's primary is the first value, the", " batch in full is the second. \\[primary, candidates\\]"}}, EventMetadataV4{Name: "SuspendedMemberJudgement", Args: []Type{"AccountId", "bool"}, Documentation: []Text{" A suspended member has been judged. \\[who, judged\\]"}}, EventMetadataV4{Name: "CandidateSuspended", Args: []Type{"AccountId"}, Documentation: []Text{" A \\[candidate\\] has been suspended"}}, EventMetadataV4{Name: "MemberSuspended", Args: []Type{"AccountId"}, Documentation: []Text{" A \\[member\\] has been suspended"}}, EventMetadataV4{Name: "Challenged", Args: []Type{"AccountId"}, Documentation: []Text{" A \\[member\\] has been challenged"}}, EventMetadataV4{Name: "Vote", Args: []Type{"AccountId", "AccountId", "bool"}, Documentation: []Text{" A vote has been placed \\[candidate, voter, vote\\]"}}, EventMetadataV4{Name: "DefenderVote", Args: []Type{"AccountId", "bool"}, Documentation: []Text{" A vote has been placed for a defending member \\[voter, vote\\]"}}, EventMetadataV4{Name: "NewMaxMembers", Args: []Type{"u32"}, Documentation: []Text{" A new \\[max\\] member count has been set"}}, EventMetadataV4{Name: "Unfounded", Args: []Type{"AccountId"}, Documentation: []Text{" Society is unfounded. \\[founder\\]"}}, EventMetadataV4{Name: "Deposit", Args: []Type{"Balance"}, Documentation: []Text{" Some funds were deposited into the society account. \\[value\\]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "CandidateDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount of a deposit required for a bid to be made."}}, ModuleConstantMetadataV6{Name: "WrongSideDeduction", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xf4, 0x20, 0xe6, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of the unpaid reward that gets deducted in the case that either a skeptic", " doesn't vote or someone votes in the wrong way."}}, ModuleConstantMetadataV6{Name: "MaxStrikes", Type: "u32", Value: Bytes{0xa, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of times a member may vote the wrong way (or not at all, when they are a skeptic)", " before they become suspended."}}, ModuleConstantMetadataV6{Name: "PeriodSpend", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of incentive paid within each period. Doesn't include VoterTip."}}, ModuleConstantMetadataV6{Name: "RotationPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x77, 0x1, 0x0}, Documentation: []Text{" The number of blocks between candidate/membership rotation periods."}}, ModuleConstantMetadataV6{Name: "ChallengePeriod", Type: "T::BlockNumber", Value: Bytes{0x80, 0x13, 0x3, 0x0}, Documentation: []Text{" The number of blocks between membership challenges."}}, ModuleConstantMetadataV6{Name: "PalletId", Type: "PalletId", Value: Bytes{0x70, 0x79, 0x2f, 0x73, 0x6f, 0x63, 0x69, 0x65}, Documentation: []Text{" The societies's module id"}}, ModuleConstantMetadataV6{Name: "MaxCandidateIntake", Type: "u32", Value: Bytes{0xa, 0x0, 0x0, 0x0}, Documentation: []Text{" Maximum candidate intake per round."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "BadPosition", Documentation: []Text{" An incorrect position was provided."}}, ErrorMetadataV8{Name: "NotMember", Documentation: []Text{" User is not a member."}}, ErrorMetadataV8{Name: "AlreadyMember", Documentation: []Text{" User is already a member."}}, ErrorMetadataV8{Name: "Suspended", Documentation: []Text{" User is suspended."}}, ErrorMetadataV8{Name: "NotSuspended", Documentation: []Text{" User is not suspended."}}, ErrorMetadataV8{Name: "NoPayout", Documentation: []Text{" Nothing to payout."}}, ErrorMetadataV8{Name: "AlreadyFounded", Documentation: []Text{" Society already founded."}}, ErrorMetadataV8{Name: "InsufficientPot", Documentation: []Text{" Not enough in pot to accept candidate."}}, ErrorMetadataV8{Name: "AlreadyVouching", Documentation: []Text{" Member is already vouching or banned from vouching again."}}, ErrorMetadataV8{Name: "NotVouching", Documentation: []Text{" Member is not vouching."}}, ErrorMetadataV8{Name: "Head", Documentation: []Text{" Cannot remove the head of the chain."}}, ErrorMetadataV8{Name: "Founder", Documentation: []Text{" Cannot remove the founder."}}, ErrorMetadataV8{Name: "AlreadyBid", Documentation: []Text{" User has already made a bid."}}, ErrorMetadataV8{Name: "AlreadyCandidate", Documentation: []Text{" User is already a candidate."}}, ErrorMetadataV8{Name: "NotCandidate", Documentation: []Text{" User is not a candidate."}}, ErrorMetadataV8{Name: "MaxMembers", Documentation: []Text{" Too many members in the society."}}, ErrorMetadataV8{Name: "NotFounder", Documentation: []Text{" The caller is not the founder."}}, ErrorMetadataV8{Name: "NotHead", Documentation: []Text{" The caller is not the head."}}}, Index: 0x1a}, ModuleMetadataV13{Name: "Recovery", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Recovery", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Recoverable", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "RecoveryConfig, T::AccountId>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of recoverable accounts and their recovery configuration."}}, StorageFunctionMetadataV13{Name: "ActiveRecoveries", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "T::AccountId", Key2: "T::AccountId", Value: "ActiveRecovery, T::AccountId>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Active recovery attempts.", "", " First account is the account to be recovered, and the second account", " is the user trying to recover the account."}}, StorageFunctionMetadataV13{Name: "Proxy", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The list of allowed proxy accounts.", "", " Map from the user who can access it to the recovered account."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "as_recovered", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "account", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Send a call through a recovered account.", "", " The dispatch origin for this call must be _Signed_ and registered to", " be able to make calls on behalf of the recovered account.", "", " Parameters:", " - `account`: The recovered account you want to make a call on-behalf-of.", " - `call`: The call you want to make with the recovered account.", "", " # ", " - The weight of the `call` + 10,000.", " - One storage lookup to check account is recovered by `who`. O(1)", " # "}}, FunctionMetadataV4{Name: "set_recovered", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "lost", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "rescuer", Type: "T::AccountId"}}, Documentation: []Text{" Allow ROOT to bypass the recovery process and set an a rescuer account", " for a lost account directly.", "", " The dispatch origin for this call must be _ROOT_.", "", " Parameters:", " - `lost`: The \"lost account\" to be recovered.", " - `rescuer`: The \"rescuer account\" which can call as the lost account.", "", " # ", " - One storage write O(1)", " - One event", " # "}}, FunctionMetadataV4{Name: "create_recovery", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "friends", Type: "Vec"}, FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "delay_period", Type: "T::BlockNumber"}}, Documentation: []Text{" Create a recovery configuration for your account. This makes your account recoverable.", "", " Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", " will be reserved for storing the recovery configuration. This deposit is returned", " in full when the user calls `remove_recovery`.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `friends`: A list of friends you trust to vouch for recovery attempts.", " Should be ordered and contain no duplicate values.", " - `threshold`: The number of friends that must vouch for a recovery attempt", " before the account can be recovered. Should be less than or equal to", " the length of the list of friends.", " - `delay_period`: The number of blocks after a recovery attempt is initialized", " that needs to pass before the account can be recovered.", "", " # ", " - Key: F (len of friends)", " - One storage read to check that account is not already recoverable. O(1).", " - A check that the friends list is sorted and unique. O(F)", " - One currency reserve operation. O(X)", " - One storage write. O(1). Codec O(F).", " - One event.", "", " Total Complexity: O(F + X)", " # "}}, FunctionMetadataV4{Name: "initiate_recovery", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "account", Type: "T::AccountId"}}, Documentation: []Text{" Initiate the process for recovering a recoverable account.", "", " Payment: `RecoveryDeposit` balance will be reserved for initiating the", " recovery process. This deposit will always be repatriated to the account", " trying to be recovered. See `close_recovery`.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `account`: The lost account that you want to recover. This account", " needs to be recoverable (i.e. have a recovery configuration).", "", " # ", " - One storage read to check that account is recoverable. O(F)", " - One storage read to check that this recovery process hasn't already started. O(1)", " - One currency reserve operation. O(X)", " - One storage read to get the current block number. O(1)", " - One storage write. O(1).", " - One event.", "", " Total Complexity: O(F + X)", " # "}}, FunctionMetadataV4{Name: "vouch_recovery", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "lost", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "rescuer", Type: "T::AccountId"}}, Documentation: []Text{" Allow a \"friend\" of a recoverable account to vouch for an active recovery", " process for that account.", "", " The dispatch origin for this call must be _Signed_ and must be a \"friend\"", " for the recoverable account.", "", " Parameters:", " - `lost`: The lost account that you want to recover.", " - `rescuer`: The account trying to rescue the lost account that you", " want to vouch for.", "", " The combination of these two parameters must point to an active recovery", " process.", "", " # ", " Key: F (len of friends in config), V (len of vouching friends)", " - One storage read to get the recovery configuration. O(1), Codec O(F)", " - One storage read to get the active recovery process. O(1), Codec O(V)", " - One binary search to confirm caller is a friend. O(logF)", " - One binary search to confirm caller has not already vouched. O(logV)", " - One storage write. O(1), Codec O(V).", " - One event.", "", " Total Complexity: O(F + logF + V + logV)", " # "}}, FunctionMetadataV4{Name: "claim_recovery", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "account", Type: "T::AccountId"}}, Documentation: []Text{" Allow a successful rescuer to claim their recovered account.", "", " The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", " who has successfully completed the account recovery process: collected", " `threshold` or more vouches, waited `delay_period` blocks since initiation.", "", " Parameters:", " - `account`: The lost account that you want to claim has been successfully", " recovered by you.", "", " # ", " Key: F (len of friends in config), V (len of vouching friends)", " - One storage read to get the recovery configuration. O(1), Codec O(F)", " - One storage read to get the active recovery process. O(1), Codec O(V)", " - One storage read to get the current block number. O(1)", " - One storage write. O(1), Codec O(V).", " - One event.", "", " Total Complexity: O(F + V)", " # "}}, FunctionMetadataV4{Name: "close_recovery", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "rescuer", Type: "T::AccountId"}}, Documentation: []Text{" As the controller of a recoverable account, close an active recovery", " process for your account.", "", " Payment: By calling this function, the recoverable account will receive", " the recovery deposit `RecoveryDeposit` placed by the rescuer.", "", " The dispatch origin for this call must be _Signed_ and must be a", " recoverable account with an active recovery process for it.", "", " Parameters:", " - `rescuer`: The account trying to rescue this recoverable account.", "", " # ", " Key: V (len of vouching friends)", " - One storage read/remove to get the active recovery process. O(1), Codec O(V)", " - One balance call to repatriate reserved. O(X)", " - One event.", "", " Total Complexity: O(V + X)", " # "}}, FunctionMetadataV4{Name: "remove_recovery", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove the recovery process for your account. Recovered accounts are still accessible.", "", " NOTE: The user must make sure to call `close_recovery` on all active", " recovery attempts before calling this function else it will fail.", "", " Payment: By calling this function the recoverable account will unreserve", " their recovery configuration deposit.", " (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", "", " The dispatch origin for this call must be _Signed_ and must be a", " recoverable account (i.e. has a recovery configuration).", "", " # ", " Key: F (len of friends)", " - One storage read to get the prefix iterator for active recoveries. O(1)", " - One storage read/remove to get the recovery configuration. O(1), Codec O(F)", " - One balance call to unreserved. O(X)", " - One event.", "", " Total Complexity: O(F + X)", " # "}}, FunctionMetadataV4{Name: "cancel_recovered", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "account", Type: "T::AccountId"}}, Documentation: []Text{" Cancel the ability to use `as_recovered` for `account`.", "", " The dispatch origin for this call must be _Signed_ and registered to", " be able to make calls on behalf of the recovered account.", "", " Parameters:", " - `account`: The recovered account you are able to call on-behalf-of.", "", " # ", " - One storage mutation to check account is recovered by `who`. O(1)", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "RecoveryCreated", Args: []Type{"AccountId"}, Documentation: []Text{" A recovery process has been set up for an \\[account\\]."}}, EventMetadataV4{Name: "RecoveryInitiated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" A recovery process has been initiated for lost account by rescuer account.", " \\[lost, rescuer\\]"}}, EventMetadataV4{Name: "RecoveryVouched", Args: []Type{"AccountId", "AccountId", "AccountId"}, Documentation: []Text{" A recovery process for lost account by rescuer account has been vouched for by sender.", " \\[lost, rescuer, sender\\]"}}, EventMetadataV4{Name: "RecoveryClosed", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" A recovery process for lost account by rescuer account has been closed.", " \\[lost, rescuer\\]"}}, EventMetadataV4{Name: "AccountRecovered", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" Lost account has been successfully recovered by rescuer account.", " \\[lost, rescuer\\]"}}, EventMetadataV4{Name: "RecoveryRemoved", Args: []Type{"AccountId"}, Documentation: []Text{" A recovery process has been removed for an \\[account\\]."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "ConfigDepositBase", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x63, 0x52, 0xbf, 0xc6, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base amount of currency needed to reserve for creating a recovery configuration.", "", " This is held for an additional storage item whose value size is", " `2 + sizeof(BlockNumber, Balance)` bytes."}}, ModuleConstantMetadataV6{Name: "FriendDepositFactor", Type: "BalanceOf", Value: Bytes{0x0, 0x20, 0x3d, 0x88, 0x79, 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of currency needed per additional user when creating a recovery configuration.", "", " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage value."}}, ModuleConstantMetadataV6{Name: "MaxFriends", Type: "u16", Value: Bytes{0x9, 0x0}, Documentation: []Text{" The maximum amount of friends allowed in a recovery configuration."}}, ModuleConstantMetadataV6{Name: "RecoveryDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x63, 0x52, 0xbf, 0xc6, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base amount of currency needed to reserve for starting a recovery.", "", " This is primarily held for deterring malicious recovery attempts, and should", " have a value large enough that a bad actor would choose not to place this", " deposit. It also acts to fund additional storage item whose value size is", " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable", " threshold."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotAllowed", Documentation: []Text{" User is not allowed to make a call on behalf of this account"}}, ErrorMetadataV8{Name: "ZeroThreshold", Documentation: []Text{" Threshold must be greater than zero"}}, ErrorMetadataV8{Name: "NotEnoughFriends", Documentation: []Text{" Friends list must be greater than zero and threshold"}}, ErrorMetadataV8{Name: "MaxFriends", Documentation: []Text{" Friends list must be less than max friends"}}, ErrorMetadataV8{Name: "NotSorted", Documentation: []Text{" Friends list must be sorted and free of duplicates"}}, ErrorMetadataV8{Name: "NotRecoverable", Documentation: []Text{" This account is not set up for recovery"}}, ErrorMetadataV8{Name: "AlreadyRecoverable", Documentation: []Text{" This account is already set up for recovery"}}, ErrorMetadataV8{Name: "AlreadyStarted", Documentation: []Text{" A recovery process has already started for this account"}}, ErrorMetadataV8{Name: "NotStarted", Documentation: []Text{" A recovery process has not started for this rescuer"}}, ErrorMetadataV8{Name: "NotFriend", Documentation: []Text{" This account is not a friend who can vouch"}}, ErrorMetadataV8{Name: "DelayPeriod", Documentation: []Text{" The friend must wait until the delay period to vouch for this recovery"}}, ErrorMetadataV8{Name: "AlreadyVouched", Documentation: []Text{" This user has already vouched for this recovery"}}, ErrorMetadataV8{Name: "Threshold", Documentation: []Text{" The threshold for recovering this account has not been met"}}, ErrorMetadataV8{Name: "StillActive", Documentation: []Text{" There are still active recovery attempts that need to be closed"}}, ErrorMetadataV8{Name: "AlreadyProxy", Documentation: []Text{" This account is already set up for recovery"}}, ErrorMetadataV8{Name: "BadState", Documentation: []Text{" Some internal state is broken."}}}, Index: 0x1b}, ModuleMetadataV13{Name: "Vesting", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Vesting", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Vesting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AccountId", Value: "VestingInfo, T::BlockNumber>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information regarding the vesting of a given account."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "vest", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Unlock any vested funds of the sender account.", "", " The dispatch origin for this call must be _Signed_ and the sender must have funds still", " locked under this pallet.", "", " Emits either `VestingCompleted` or `VestingUpdated`.", "", " # ", " - `O(1)`.", " - DbWeight: 2 Reads, 2 Writes", " - Reads: Vesting Storage, Balances Locks, [Sender Account]", " - Writes: Vesting Storage, Balances Locks, [Sender Account]", " # "}}, FunctionMetadataV4{Name: "vest_other", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "::Source"}}, Documentation: []Text{" Unlock any vested funds of a `target` account.", "", " The dispatch origin for this call must be _Signed_.", "", " - `target`: The account whose vested funds should be unlocked. Must have funds still", " locked under this pallet.", "", " Emits either `VestingCompleted` or `VestingUpdated`.", "", " # ", " - `O(1)`.", " - DbWeight: 3 Reads, 3 Writes", " - Reads: Vesting Storage, Balances Locks, Target Account", " - Writes: Vesting Storage, Balances Locks, Target Account", " # "}}, FunctionMetadataV4{Name: "vested_transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "::Source"}, FunctionArgumentMetadata{Name: "schedule", Type: "VestingInfo, T::BlockNumber>"}}, Documentation: []Text{" Create a vested transfer.", "", " The dispatch origin for this call must be _Signed_.", "", " - `target`: The account that should be transferred the vested funds.", " - `amount`: The amount of funds to transfer and will be vested.", " - `schedule`: The vesting schedule attached to the transfer.", "", " Emits `VestingCreated`.", "", " # ", " - `O(1)`.", " - DbWeight: 3 Reads, 3 Writes", " - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]", " - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]", " # "}}, FunctionMetadataV4{Name: "force_vested_transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "source", Type: "::Source"}, FunctionArgumentMetadata{Name: "target", Type: "::Source"}, FunctionArgumentMetadata{Name: "schedule", Type: "VestingInfo, T::BlockNumber>"}}, Documentation: []Text{" Force a vested transfer.", "", " The dispatch origin for this call must be _Root_.", "", " - `source`: The account whose funds should be transferred.", " - `target`: The account that should be transferred the vested funds.", " - `amount`: The amount of funds to transfer and will be vested.", " - `schedule`: The vesting schedule attached to the transfer.", "", " Emits `VestingCreated`.", "", " # ", " - `O(1)`.", " - DbWeight: 4 Reads, 4 Writes", " - Reads: Vesting Storage, Balances Locks, Target Account, Source Account", " - Writes: Vesting Storage, Balances Locks, Target Account, Source Account", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "VestingUpdated", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" The amount vested has been updated. This could indicate more funds are available. The", " balance given is the amount which is left unvested (and thus locked).", " \\[account, unvested\\]"}}, EventMetadataV4{Name: "VestingCompleted", Args: []Type{"AccountId"}, Documentation: []Text{" An \\[account\\] has become fully vested. No further vesting can happen."}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "MinVestedTransfer", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount transferred to call `vested_transfer`."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotVesting", Documentation: []Text{" The account given is not vesting."}}, ErrorMetadataV8{Name: "ExistingVestingSchedule", Documentation: []Text{" An existing vesting schedule already exists for this account that cannot be clobbered."}}, ErrorMetadataV8{Name: "AmountLow", Documentation: []Text{" Amount being transferred is too low to create a vesting schedule."}}}, Index: 0x1c}, ModuleMetadataV13{Name: "Scheduler", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Scheduler", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Agenda", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::BlockNumber", Value: "Vec::Call, T::BlockNumber, T::\nPalletsOrigin, T::AccountId>>>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Items to be executed, indexed by the block number that they should be executed on."}}, StorageFunctionMetadataV13{Name: "Lookup", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "Vec", Value: "TaskAddress", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Lookup from identity to the block number and index of the task."}}, StorageFunctionMetadataV13{Name: "StorageVersion", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Releases", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Storage version of the pallet.", "", " New networks start with last version."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "schedule", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "when", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "maybe_periodic", Type: "Option>"}, FunctionArgumentMetadata{Name: "priority", Type: "schedule::Priority"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Anonymously schedule a task.", "", " # ", " - S = Number of already scheduled calls", " - Base Weight: 22.29 + .126 * S µs", " - DB Weight:", " - Read: Agenda", " - Write: Agenda", " - Will use base weight of 25 which should be good for up to 30 scheduled calls", " # "}}, FunctionMetadataV4{Name: "cancel", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "when", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "index", Type: "u32"}}, Documentation: []Text{" Cancel an anonymously scheduled task.", "", " # ", " - S = Number of already scheduled calls", " - Base Weight: 22.15 + 2.869 * S µs", " - DB Weight:", " - Read: Agenda", " - Write: Agenda, Lookup", " - Will use base weight of 100 which should be good for up to 30 scheduled calls", " # "}}, FunctionMetadataV4{Name: "schedule_named", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Vec"}, FunctionArgumentMetadata{Name: "when", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "maybe_periodic", Type: "Option>"}, FunctionArgumentMetadata{Name: "priority", Type: "schedule::Priority"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Schedule a named task.", "", " # ", " - S = Number of already scheduled calls", " - Base Weight: 29.6 + .159 * S µs", " - DB Weight:", " - Read: Agenda, Lookup", " - Write: Agenda, Lookup", " - Will use base weight of 35 which should be good for more than 30 scheduled calls", " # "}}, FunctionMetadataV4{Name: "cancel_named", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Vec"}}, Documentation: []Text{" Cancel a named scheduled task.", "", " # ", " - S = Number of already scheduled calls", " - Base Weight: 24.91 + 2.907 * S µs", " - DB Weight:", " - Read: Agenda, Lookup", " - Write: Agenda, Lookup", " - Will use base weight of 100 which should be good for up to 30 scheduled calls", " # "}}, FunctionMetadataV4{Name: "schedule_after", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "after", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "maybe_periodic", Type: "Option>"}, FunctionArgumentMetadata{Name: "priority", Type: "schedule::Priority"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Anonymously schedule a task after a delay.", "", " # ", " Same as [`schedule`].", " # "}}, FunctionMetadataV4{Name: "schedule_named_after", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Vec"}, FunctionArgumentMetadata{Name: "after", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "maybe_periodic", Type: "Option>"}, FunctionArgumentMetadata{Name: "priority", Type: "schedule::Priority"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Schedule a named task after a delay.", "", " # ", " Same as [`schedule_named`].", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Scheduled", Args: []Type{"BlockNumber", "u32"}, Documentation: []Text{" Scheduled some task. \\[when, index\\]"}}, EventMetadataV4{Name: "Canceled", Args: []Type{"BlockNumber", "u32"}, Documentation: []Text{" Canceled some task. \\[when, index\\]"}}, EventMetadataV4{Name: "Dispatched", Args: []Type{"TaskAddress", "Option>", "DispatchResult"}, Documentation: []Text{" Dispatched some task. \\[task, id, result\\]"}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "FailedToSchedule", Documentation: []Text{" Failed to schedule a call"}}, ErrorMetadataV8{Name: "NotFound", Documentation: []Text{" Cannot find the scheduled call."}}, ErrorMetadataV8{Name: "TargetBlockNumberInPast", Documentation: []Text{" Given target block number is in the past."}}, ErrorMetadataV8{Name: "RescheduleNoChange", Documentation: []Text{" Reschedule failed because it does not change scheduled time."}}}, Index: 0x1d}, ModuleMetadataV13{Name: "Proxy", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Proxy", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Proxies", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "(BoundedVec, T::MaxProxies,>, BalanceOf)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The set of account proxies. Maps the account which has delegated to the accounts", " which are being delegated to, together with the amount held on deposit."}}, StorageFunctionMetadataV13{Name: "Announcements", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "(BoundedVec, T::\n BlockNumber>, T::MaxPending,>, BalanceOf,)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The announcements made by the proxy (key)."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "proxy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "real", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "force_proxy_type", Type: "Option"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Dispatch the given `call` from an account that the sender is authorised for through", " `add_proxy`.", "", " Removes any corresponding announcement(s).", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `real`: The account that the proxy will make a call on behalf of.", " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", " - `call`: The call to be made by the `real` account.", "", " # ", " Weight is a function of the number of proxies the user has (P).", " # "}}, FunctionMetadataV4{Name: "add_proxy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "delegate", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "proxy_type", Type: "T::ProxyType"}, FunctionArgumentMetadata{Name: "delay", Type: "T::BlockNumber"}}, Documentation: []Text{" Register a proxy account for the sender that is able to make calls on its behalf.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `proxy`: The account that the `caller` would like to make a proxy.", " - `proxy_type`: The permissions allowed for this proxy account.", " - `delay`: The announcement period required of the initial proxy. Will generally be", " zero.", "", " # ", " Weight is a function of the number of proxies the user has (P).", " # "}}, FunctionMetadataV4{Name: "remove_proxy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "delegate", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "proxy_type", Type: "T::ProxyType"}, FunctionArgumentMetadata{Name: "delay", Type: "T::BlockNumber"}}, Documentation: []Text{" Unregister a proxy account for the sender.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `proxy`: The account that the `caller` would like to remove as a proxy.", " - `proxy_type`: The permissions currently enabled for the removed proxy account.", "", " # ", " Weight is a function of the number of proxies the user has (P).", " # "}}, FunctionMetadataV4{Name: "remove_proxies", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Unregister all proxy accounts for the sender.", "", " The dispatch origin for this call must be _Signed_.", "", " WARNING: This may be called on accounts created by `anonymous`, however if done, then", " the unreserved fees will be inaccessible. **All access to this account will be lost.**", "", " # ", " Weight is a function of the number of proxies the user has (P).", " # "}}, FunctionMetadataV4{Name: "anonymous", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proxy_type", Type: "T::ProxyType"}, FunctionArgumentMetadata{Name: "delay", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "index", Type: "u16"}}, Documentation: []Text{" Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", " initialize it with a proxy of `proxy_type` for `origin` sender.", "", " Requires a `Signed` origin.", "", " - `proxy_type`: The type of the proxy that the sender will be registered as over the", " new account. This will almost always be the most permissive `ProxyType` possible to", " allow for maximum flexibility.", " - `index`: A disambiguation index, in case this is called multiple times in the same", " transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", " want to use `0`.", " - `delay`: The announcement period required of the initial proxy. Will generally be", " zero.", "", " Fails with `Duplicate` if this has already been called in this transaction, from the", " same sender, with the same parameters.", "", " Fails if there are insufficient funds to pay for deposit.", "", " # ", " Weight is a function of the number of proxies the user has (P).", " # ", " TODO: Might be over counting 1 read"}}, FunctionMetadataV4{Name: "kill_anonymous", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "spawner", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "proxy_type", Type: "T::ProxyType"}, FunctionArgumentMetadata{Name: "index", Type: "u16"}, FunctionArgumentMetadata{Name: "height", Type: "Compact"}, FunctionArgumentMetadata{Name: "ext_index", Type: "Compact"}}, Documentation: []Text{" Removes a previously spawned anonymous proxy.", "", " WARNING: **All access to this account will be lost.** Any funds held in it will be", " inaccessible.", "", " Requires a `Signed` origin, and the sender account must have been created by a call to", " `anonymous` with corresponding parameters.", "", " - `spawner`: The account that originally called `anonymous` to create this account.", " - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`.", " - `proxy_type`: The proxy type originally passed to `anonymous`.", " - `height`: The height of the chain when the call to `anonymous` was processed.", " - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.", "", " Fails with `NoPermission` in case the caller is not a previously created anonymous", " account whose `anonymous` call has corresponding parameters.", "", " # ", " Weight is a function of the number of proxies the user has (P).", " # "}}, FunctionMetadataV4{Name: "announce", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "real", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "call_hash", Type: "CallHashOf"}}, Documentation: []Text{" Publish the hash of a proxy-call that will be made in the future.", "", " This must be called some number of blocks before the corresponding `proxy` is attempted", " if the delay associated with the proxy relationship is greater than zero.", "", " No more than `MaxPending` announcements may be made at any one time.", "", " This will take a deposit of `AnnouncementDepositFactor` as well as", " `AnnouncementDepositBase` if there are no other pending announcements.", "", " The dispatch origin for this call must be _Signed_ and a proxy of `real`.", "", " Parameters:", " - `real`: The account that the proxy will make a call on behalf of.", " - `call_hash`: The hash of the call to be made by the `real` account.", "", " # ", " Weight is a function of:", " - A: the number of announcements made.", " - P: the number of proxies the user has.", " # "}}, FunctionMetadataV4{Name: "remove_announcement", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "real", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "call_hash", Type: "CallHashOf"}}, Documentation: []Text{" Remove a given announcement.", "", " May be called by a proxy account to remove a call they previously announced and return", " the deposit.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `real`: The account that the proxy will make a call on behalf of.", " - `call_hash`: The hash of the call to be made by the `real` account.", "", " # ", " Weight is a function of:", " - A: the number of announcements made.", " - P: the number of proxies the user has.", " # "}}, FunctionMetadataV4{Name: "reject_announcement", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "delegate", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "call_hash", Type: "CallHashOf"}}, Documentation: []Text{" Remove the given announcement of a delegate.", "", " May be called by a target (proxied) account to remove a call that one of their delegates", " (`delegate`) has announced they want to execute. The deposit is returned.", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `delegate`: The account that previously announced the call.", " - `call_hash`: The hash of the call to be made.", "", " # ", " Weight is a function of:", " - A: the number of announcements made.", " - P: the number of proxies the user has.", " # "}}, FunctionMetadataV4{Name: "proxy_announced", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "delegate", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "real", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "force_proxy_type", Type: "Option"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Dispatch the given `call` from an account that the sender is authorized for through", " `add_proxy`.", "", " Removes any corresponding announcement(s).", "", " The dispatch origin for this call must be _Signed_.", "", " Parameters:", " - `real`: The account that the proxy will make a call on behalf of.", " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", " - `call`: The call to be made by the `real` account.", "", " # ", " Weight is a function of:", " - A: the number of announcements made.", " - P: the number of proxies the user has.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "ProxyExecuted", Args: []Type{"DispatchResult"}, Documentation: []Text{" A proxy was executed correctly, with the given \\[result\\]."}}, EventMetadataV4{Name: "AnonymousCreated", Args: []Type{"AccountId", "AccountId", "ProxyType", "u16"}, Documentation: []Text{" Anonymous account has been created by new proxy with given", " disambiguation index and proxy type. \\[anonymous, who, proxy_type, disambiguation_index\\]"}}, EventMetadataV4{Name: "Announced", Args: []Type{"AccountId", "AccountId", "Hash"}, Documentation: []Text{" An announcement was placed to make a call in the future. \\[real, proxy, call_hash\\]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "ProxyDepositBase", Type: "BalanceOf", Value: Bytes{0x0, 0xf0, 0x9e, 0x54, 0x4c, 0x39, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base amount of currency needed to reserve for creating a proxy.", "", " This is held for an additional storage item whose value size is", " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes."}}, ModuleConstantMetadataV6{Name: "ProxyDepositFactor", Type: "BalanceOf", Value: Bytes{0x0, 0x60, 0xaa, 0x77, 0x14, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of currency needed per proxy added.", "", " This is held for adding 32 bytes plus an instance of `ProxyType` more into a pre-existing", " storage value. Thus, when configuring `ProxyDepositFactor` one should take into account", " `32 + proxy_type.encode().len()` bytes of data."}}, ModuleConstantMetadataV6{Name: "MaxProxies", Type: "u32", Value: Bytes{0x20, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum amount of proxies allowed for a single account."}}, ModuleConstantMetadataV6{Name: "MaxPending", Type: "u32", Value: Bytes{0x20, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum amount of time-delayed announcements that are allowed to be pending."}}, ModuleConstantMetadataV6{Name: "AnnouncementDepositBase", Type: "BalanceOf", Value: Bytes{0x0, 0xf0, 0x9e, 0x54, 0x4c, 0x39, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base amount of currency needed to reserve for creating an announcement.", "", " This is held when a new storage item holding a `Balance` is created (typically 16 bytes)."}}, ModuleConstantMetadataV6{Name: "AnnouncementDepositFactor", Type: "BalanceOf", Value: Bytes{0x0, 0xc0, 0x54, 0xef, 0x28, 0x68, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of currency needed per announcement made.", "", " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", " into a pre-existing storage value."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "TooMany", Documentation: []Text{" There are too many proxies registered or too many announcements pending."}}, ErrorMetadataV8{Name: "NotFound", Documentation: []Text{" Proxy registration not found."}}, ErrorMetadataV8{Name: "NotProxy", Documentation: []Text{" Sender is not a proxy of the account to be proxied."}}, ErrorMetadataV8{Name: "Unproxyable", Documentation: []Text{" A call which is incompatible with the proxy type's filter was attempted."}}, ErrorMetadataV8{Name: "Duplicate", Documentation: []Text{" Account is already a proxy."}}, ErrorMetadataV8{Name: "NoPermission", Documentation: []Text{" Call may not be made by proxy because it may escalate its privileges."}}, ErrorMetadataV8{Name: "Unannounced", Documentation: []Text{" Announcement, if made at all, was made too recently."}}, ErrorMetadataV8{Name: "NoSelfProxy", Documentation: []Text{" Cannot add self as proxy."}}}, Index: 0x1e}, ModuleMetadataV13{Name: "Multisig", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Multisig", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Multisigs", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key1: "T::AccountId", Key2: "[u8; 32]", Value: "Multisig, T::AccountId>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The set of open multisig operations."}}, StorageFunctionMetadataV13{Name: "Calls", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "[u8; 32]", Value: "(OpaqueCall, T::AccountId, BalanceOf)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "as_multi_threshold_1", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Immediately dispatch a multi-signature call using a single approval from the caller.", "", " The dispatch origin for this call must be _Signed_.", "", " - `other_signatories`: The accounts (other than the sender) who are part of the", " multi-signature, but do not participate in the approval process.", " - `call`: The call to be executed.", "", " Result is equivalent to the dispatched result.", "", " # ", " O(Z + C) where Z is the length of the call and C its execution weight.", " -------------------------------", " - DB Weight: None", " - Plus Call Weight", " # "}}, FunctionMetadataV4{Name: "as_multi", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "maybe_timepoint", Type: "Option>"}, FunctionArgumentMetadata{Name: "call", Type: "OpaqueCall"}, FunctionArgumentMetadata{Name: "store_call", Type: "bool"}, FunctionArgumentMetadata{Name: "max_weight", Type: "Weight"}}, Documentation: []Text{" Register approval for a dispatch to be made from a deterministic composite account if", " approved by a total of `threshold - 1` of `other_signatories`.", "", " If there are enough, then dispatch the call.", "", " Payment: `DepositBase` will be reserved if this is the first approval, plus", " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", " is cancelled.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", " not the first approval, then it must be `Some`, with the timepoint (block number and", " transaction index) of the first approval transaction.", " - `call`: The call to be executed.", "", " NOTE: Unless this is the final approval, you will generally want to use", " `approve_as_multi` instead, since it only requires a hash of the call.", "", " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", " on success, result is `Ok` and the result from the interior call, if it was executed,", " may be found in the deposited `MultisigExecuted` event.", "", " # ", " - `O(S + Z + Call)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", " - One encode & hash, both of complexity `O(S)`.", " - Up to one binary search and insert (`O(logS + S)`).", " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", " - One event.", " - The weight of the `call`.", " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", " deposit taken for its lifetime of", " `DepositBase + threshold * DepositFactor`.", " -------------------------------", " - DB Weight:", " - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)", " - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`)", " - Plus Call Weight", " # "}}, FunctionMetadataV4{Name: "approve_as_multi", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "maybe_timepoint", Type: "Option>"}, FunctionArgumentMetadata{Name: "call_hash", Type: "[u8; 32]"}, FunctionArgumentMetadata{Name: "max_weight", Type: "Weight"}}, Documentation: []Text{" Register approval for a dispatch to be made from a deterministic composite account if", " approved by a total of `threshold - 1` of `other_signatories`.", "", " Payment: `DepositBase` will be reserved if this is the first approval, plus", " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", " is cancelled.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", " not the first approval, then it must be `Some`, with the timepoint (block number and", " transaction index) of the first approval transaction.", " - `call_hash`: The hash of the call to be executed.", "", " NOTE: If this is the final approval, you will want to use `as_multi` instead.", "", " # ", " - `O(S)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One encode & hash, both of complexity `O(S)`.", " - Up to one binary search and insert (`O(logS + S)`).", " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", " - One event.", " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", " deposit taken for its lifetime of", " `DepositBase + threshold * DepositFactor`.", " ----------------------------------", " - DB Weight:", " - Read: Multisig Storage, [Caller Account]", " - Write: Multisig Storage, [Caller Account]", " # "}}, FunctionMetadataV4{Name: "cancel_as_multi", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "threshold", Type: "u16"}, FunctionArgumentMetadata{Name: "other_signatories", Type: "Vec"}, FunctionArgumentMetadata{Name: "timepoint", Type: "Timepoint"}, FunctionArgumentMetadata{Name: "call_hash", Type: "[u8; 32]"}}, Documentation: []Text{" Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", " for this operation will be unreserved on success.", "", " The dispatch origin for this call must be _Signed_.", "", " - `threshold`: The total number of approvals for this dispatch before it is executed.", " - `other_signatories`: The accounts (other than the sender) who can approve this", " dispatch. May not be empty.", " - `timepoint`: The timepoint (block number and transaction index) of the first approval", " transaction for this dispatch.", " - `call_hash`: The hash of the call to be executed.", "", " # ", " - `O(S)`.", " - Up to one balance-reserve or unreserve operation.", " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", " - One encode & hash, both of complexity `O(S)`.", " - One event.", " - I/O: 1 read `O(S)`, one remove.", " - Storage: removes one item.", " ----------------------------------", " - DB Weight:", " - Read: Multisig Storage, [Caller Account], Refund Account, Calls", " - Write: Multisig Storage, [Caller Account], Refund Account, Calls", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewMultisig", Args: []Type{"AccountId", "AccountId", "CallHash"}, Documentation: []Text{" A new multisig operation has begun. \\[approving, multisig, call_hash\\]"}}, EventMetadataV4{Name: "MultisigApproval", Args: []Type{"AccountId", "Timepoint", "AccountId", "CallHash"}, Documentation: []Text{" A multisig operation has been approved by someone.", " \\[approving, timepoint, multisig, call_hash\\]"}}, EventMetadataV4{Name: "MultisigExecuted", Args: []Type{"AccountId", "Timepoint", "AccountId", "CallHash", "DispatchResult"}, Documentation: []Text{" A multisig operation has been executed. \\[approving, timepoint, multisig, call_hash\\]"}}, EventMetadataV4{Name: "MultisigCancelled", Args: []Type{"AccountId", "Timepoint", "AccountId", "CallHash"}, Documentation: []Text{" A multisig operation has been cancelled. \\[cancelling, timepoint, multisig, call_hash\\]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "DepositBase", Type: "BalanceOf", Value: Bytes{0x0, 0xf0, 0x1c, 0xa, 0xdb, 0xed, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base amount of currency needed to reserve for creating a multisig execution or to store", " a dispatch call for later.", "", " This is held for an additional storage item whose value size is", " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", " `32 + sizeof(AccountId)` bytes."}}, ModuleConstantMetadataV6{Name: "DepositFactor", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0xcc, 0x7b, 0x9f, 0xae, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of currency needed per unit threshold when creating a multisig execution.", "", " This is held for adding 32 bytes more into a pre-existing storage value."}}, ModuleConstantMetadataV6{Name: "MaxSignatories", Type: "u16", Value: Bytes{0x64, 0x0}, Documentation: []Text{" The maximum amount of signatories allowed in the multisig."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "MinimumThreshold", Documentation: []Text{" Threshold must be 2 or greater."}}, ErrorMetadataV8{Name: "AlreadyApproved", Documentation: []Text{" Call is already approved by this signatory."}}, ErrorMetadataV8{Name: "NoApprovalsNeeded", Documentation: []Text{" Call doesn't need any (more) approvals."}}, ErrorMetadataV8{Name: "TooFewSignatories", Documentation: []Text{" There are too few signatories in the list."}}, ErrorMetadataV8{Name: "TooManySignatories", Documentation: []Text{" There are too many signatories in the list."}}, ErrorMetadataV8{Name: "SignatoriesOutOfOrder", Documentation: []Text{" The signatories were provided out of order; they should be ordered."}}, ErrorMetadataV8{Name: "SenderInSignatories", Documentation: []Text{" The sender was contained in the other signatories; it shouldn't be."}}, ErrorMetadataV8{Name: "NotFound", Documentation: []Text{" Multisig operation not found when attempting to cancel."}}, ErrorMetadataV8{Name: "NotOwner", Documentation: []Text{" Only the account that originally created the multisig is able to cancel it."}}, ErrorMetadataV8{Name: "NoTimepoint", Documentation: []Text{" No timepoint was given, yet the multisig operation is already underway."}}, ErrorMetadataV8{Name: "WrongTimepoint", Documentation: []Text{" A different timepoint was given to the multisig operation that is underway."}}, ErrorMetadataV8{Name: "UnexpectedTimepoint", Documentation: []Text{" A timepoint was given, yet no multisig operation is underway."}}, ErrorMetadataV8{Name: "MaxWeightTooLow", Documentation: []Text{" The maximum weight information provided was too low."}}, ErrorMetadataV8{Name: "AlreadyStored", Documentation: []Text{" The data to be stored is already stored."}}}, Index: 0x1f}, ModuleMetadataV13{Name: "Bounties", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Treasury", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "BountyCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "BountyIndex", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of bounty proposals that have been made."}}, StorageFunctionMetadataV13{Name: "Bounties", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "BountyIndex", Value: "Bounty, T::BlockNumber>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Bounties that have been made."}}, StorageFunctionMetadataV13{Name: "BountyDescriptions", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "BountyIndex", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The description of each bounty."}}, StorageFunctionMetadataV13{Name: "BountyApprovals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Bounty indices that have been approved but not yet funded."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "propose_bounty", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "value", Type: "Compact>"}, FunctionArgumentMetadata{Name: "description", Type: "Vec"}}, Documentation: []Text{" Propose a new bounty.", "", " The dispatch origin for this call must be _Signed_.", "", " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", " `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", " or slashed when rejected.", "", " - `curator`: The curator account whom will manage this bounty.", " - `fee`: The curator fee.", " - `value`: The total payment amount of this bounty, curator fee included.", " - `description`: The description of this bounty."}}, FunctionMetadataV4{Name: "approve_bounty", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "bounty_id", Type: "Compact"}}, Documentation: []Text{" Approve a bounty proposal. At a later time, the bounty will be funded and become active", " and the original deposit will be returned.", "", " May only be called from `T::ApproveOrigin`.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name: "propose_curator", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "bounty_id", Type: "Compact"}, FunctionArgumentMetadata{Name: "curator", Type: "::Source"}, FunctionArgumentMetadata{Name: "fee", Type: "Compact>"}}, Documentation: []Text{" Assign a curator to a funded bounty.", "", " May only be called from `T::ApproveOrigin`.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name: "unassign_curator", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "bounty_id", Type: "Compact"}}, Documentation: []Text{" Unassign curator from a bounty.", "", " This function can only be called by the `RejectOrigin` a signed origin.", "", " If this function is called by the `RejectOrigin`, we assume that the curator is malicious", " or inactive. As a result, we will slash the curator when possible.", "", " If the origin is the curator, we take this as a sign they are unable to do their job and", " they willingly give up. We could slash them, but for now we allow them to recover their", " deposit and exit without issue. (We may want to change this if it is abused.)", "", " Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", " anyone in the community to call out that a curator is not doing their due diligence, and", " we should pick a new curator. In this case the curator should also be slashed.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name: "accept_curator", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "bounty_id", Type: "Compact"}}, Documentation: []Text{" Accept the curator role for a bounty.", " A deposit will be reserved from curator and refund upon successful payout.", "", " May only be called from the curator.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name: "award_bounty", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "bounty_id", Type: "Compact"}, FunctionArgumentMetadata{Name: "beneficiary", Type: "::Source"}}, Documentation: []Text{" Award bounty to a beneficiary account. The beneficiary will be able to claim the funds after a delay.", "", " The dispatch origin for this call must be the curator of this bounty.", "", " - `bounty_id`: Bounty ID to award.", " - `beneficiary`: The beneficiary account whom will receive the payout.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name: "claim_bounty", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "bounty_id", Type: "Compact"}}, Documentation: []Text{" Claim the payout from an awarded bounty after payout delay.", "", " The dispatch origin for this call must be the beneficiary of this bounty.", "", " - `bounty_id`: Bounty ID to claim.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name: "close_bounty", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "bounty_id", Type: "Compact"}}, Documentation: []Text{" Cancel a proposed or active bounty. All the funds will be sent to treasury and", " the curator deposit will be unreserved if possible.", "", " Only `T::RejectOrigin` is able to cancel a bounty.", "", " - `bounty_id`: Bounty ID to cancel.", "", " # ", " - O(1).", " # "}}, FunctionMetadataV4{Name: "extend_bounty_expiry", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "bounty_id", Type: "Compact"}, FunctionArgumentMetadata{Name: "_remark", Type: "Vec"}}, Documentation: []Text{" Extend the expiry time of an active bounty.", "", " The dispatch origin for this call must be the curator of this bounty.", "", " - `bounty_id`: Bounty ID to extend.", " - `remark`: additional information.", "", " # ", " - O(1).", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "BountyProposed", Args: []Type{"BountyIndex"}, Documentation: []Text{" New bounty proposal. \\[index\\]"}}, EventMetadataV4{Name: "BountyRejected", Args: []Type{"BountyIndex", "Balance"}, Documentation: []Text{" A bounty proposal was rejected; funds were slashed. \\[index, bond\\]"}}, EventMetadataV4{Name: "BountyBecameActive", Args: []Type{"BountyIndex"}, Documentation: []Text{" A bounty proposal is funded and became active. \\[index\\]"}}, EventMetadataV4{Name: "BountyAwarded", Args: []Type{"BountyIndex", "AccountId"}, Documentation: []Text{" A bounty is awarded to a beneficiary. \\[index, beneficiary\\]"}}, EventMetadataV4{Name: "BountyClaimed", Args: []Type{"BountyIndex", "Balance", "AccountId"}, Documentation: []Text{" A bounty is claimed by beneficiary. \\[index, payout, beneficiary\\]"}}, EventMetadataV4{Name: "BountyCanceled", Args: []Type{"BountyIndex"}, Documentation: []Text{" A bounty is cancelled. \\[index\\]"}}, EventMetadataV4{Name: "BountyExtended", Args: []Type{"BountyIndex"}, Documentation: []Text{" A bounty expiry is extended. \\[index\\]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "DataDepositPerByte", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit per byte within bounty description."}}, ModuleConstantMetadataV6{Name: "BountyDepositBase", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit for placing a bounty proposal."}}, ModuleConstantMetadataV6{Name: "BountyDepositPayoutDelay", Type: "T::BlockNumber", Value: Bytes{0x80, 0x70, 0x0, 0x0}, Documentation: []Text{" The delay period for which a bounty beneficiary need to wait before claim the payout."}}, ModuleConstantMetadataV6{Name: "BountyUpdatePeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x27, 0x6, 0x0}, Documentation: []Text{" Bounty duration in blocks."}}, ModuleConstantMetadataV6{Name: "BountyCuratorDeposit", Type: "Permill", Value: Bytes{0x20, 0xa1, 0x7, 0x0}, Documentation: []Text{" Percentage of the curator fee that will be reserved upfront as deposit for bounty curator."}}, ModuleConstantMetadataV6{Name: "BountyValueMinimum", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x63, 0x52, 0xbf, 0xc6, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum value for a bounty."}}, ModuleConstantMetadataV6{Name: "MaximumReasonLength", Type: "u32", Value: Bytes{0x0, 0x40, 0x0, 0x0}, Documentation: []Text{" Maximum acceptable reason length."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InsufficientProposersBalance", Documentation: []Text{" Proposer's balance is too low."}}, ErrorMetadataV8{Name: "InvalidIndex", Documentation: []Text{" No proposal or bounty at that index."}}, ErrorMetadataV8{Name: "ReasonTooBig", Documentation: []Text{" The reason given is just too big."}}, ErrorMetadataV8{Name: "UnexpectedStatus", Documentation: []Text{" The bounty status is unexpected."}}, ErrorMetadataV8{Name: "RequireCurator", Documentation: []Text{" Require bounty curator."}}, ErrorMetadataV8{Name: "InvalidValue", Documentation: []Text{" Invalid bounty value."}}, ErrorMetadataV8{Name: "InvalidFee", Documentation: []Text{" Invalid bounty fee."}}, ErrorMetadataV8{Name: "PendingPayout", Documentation: []Text{" A bounty payout is pending.", " To cancel the bounty, you must unassign and slash the curator."}}, ErrorMetadataV8{Name: "Premature", Documentation: []Text{" The bounties cannot be claimed/closed because it's still in the countdown period."}}}, Index: 0x20}, ModuleMetadataV13{Name: "Tips", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Treasury", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Tips", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::Hash", Value: "OpenTip, T::BlockNumber, T::Hash>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", " This has the insecure enumerable hash function since the key itself is already", " guaranteed to be a secure hash."}}, StorageFunctionMetadataV13{Name: "Reasons", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "T::Hash", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Simple preimage lookup from the reason's hash to the original data. Again, has an", " insecure enumerable hash since the key is guaranteed to be the result of a secure hash."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "report_awesome", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reason", Type: "Vec"}, FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Report something `reason` that deserves a tip and claim any eventual the finder's fee.", "", " The dispatch origin for this call must be _Signed_.", "", " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", " `DataDepositPerByte` for each byte in `reason`.", "", " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", " a UTF-8-encoded URL.", " - `who`: The account which should be credited for the tip.", "", " Emits `NewTip` if successful.", "", " # ", " - Complexity: `O(R)` where `R` length of `reason`.", " - encoding and hashing of 'reason'", " - DbReads: `Reasons`, `Tips`", " - DbWrites: `Reasons`, `Tips`", " # "}}, FunctionMetadataV4{Name: "retract_tip", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "hash", Type: "T::Hash"}}, Documentation: []Text{" Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", "", " If successful, the original deposit will be unreserved.", "", " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", " must have been reported by the signing account through `report_awesome` (and not", " through `tip_new`).", "", " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", "", " Emits `TipRetracted` if successful.", "", " # ", " - Complexity: `O(1)`", " - Depends on the length of `T::Hash` which is fixed.", " - DbReads: `Tips`, `origin account`", " - DbWrites: `Reasons`, `Tips`, `origin account`", " # "}}, FunctionMetadataV4{Name: "tip_new", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "reason", Type: "Vec"}, FunctionArgumentMetadata{Name: "who", Type: "T::AccountId"}, FunctionArgumentMetadata{Name: "tip_value", Type: "Compact>"}}, Documentation: []Text{" Give a tip for something new; no finder's fee will be taken.", "", " The dispatch origin for this call must be _Signed_ and the signing account must be a", " member of the `Tippers` set.", "", " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", " a UTF-8-encoded URL.", " - `who`: The account which should be credited for the tip.", " - `tip_value`: The amount of tip that the sender would like to give. The median tip", " value of active tippers will be given to the `who`.", "", " Emits `NewTip` if successful.", "", " # ", " - Complexity: `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", " - `O(T)`: decoding `Tipper` vec of length `T`", " `T` is charged as upper bound given by `ContainsLengthBound`.", " The actual cost depends on the implementation of `T::Tippers`.", " - `O(R)`: hashing and encoding of reason of length `R`", " - DbReads: `Tippers`, `Reasons`", " - DbWrites: `Reasons`, `Tips`", " # "}}, FunctionMetadataV4{Name: "tip", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "hash", Type: "T::Hash"}, FunctionArgumentMetadata{Name: "tip_value", Type: "Compact>"}}, Documentation: []Text{" Declare a tip value for an already-open tip.", "", " The dispatch origin for this call must be _Signed_ and the signing account must be a", " member of the `Tippers` set.", "", " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", " account ID.", " - `tip_value`: The amount of tip that the sender would like to give. The median tip", " value of active tippers will be given to the `who`.", "", " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", " has started.", "", " # ", " - Complexity: `O(T)` where `T` is the number of tippers.", " decoding `Tipper` vec of length `T`, insert tip and check closing,", " `T` is charged as upper bound given by `ContainsLengthBound`.", " The actual cost depends on the implementation of `T::Tippers`.", "", " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", " is weighted as if almost full i.e of length `T-1`.", " - DbReads: `Tippers`, `Tips`", " - DbWrites: `Tips`", " # "}}, FunctionMetadataV4{Name: "close_tip", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "hash", Type: "T::Hash"}}, Documentation: []Text{" Close and payout a tip.", "", " The dispatch origin for this call must be _Signed_.", "", " The tip identified by `hash` must have finished its countdown period.", "", " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", "", " # ", " - Complexity: `O(T)` where `T` is the number of tippers.", " decoding `Tipper` vec of length `T`.", " `T` is charged as upper bound given by `ContainsLengthBound`.", " The actual cost depends on the implementation of `T::Tippers`.", " - DbReads: `Tips`, `Tippers`, `tip finder`", " - DbWrites: `Reasons`, `Tips`, `Tippers`, `tip finder`", " # "}}, FunctionMetadataV4{Name: "slash_tip", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "hash", Type: "T::Hash"}}, Documentation: []Text{" Remove and slash an already-open tip.", "", " May only be called from `T::RejectOrigin`.", "", " As a result, the finder is slashed and the deposits are lost.", "", " Emits `TipSlashed` if successful.", "", " # ", " `T` is charged as upper bound given by `ContainsLengthBound`.", " The actual cost depends on the implementation of `T::Tippers`.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "NewTip", Args: []Type{"Hash"}, Documentation: []Text{" A new tip suggestion has been opened. \\[tip_hash\\]"}}, EventMetadataV4{Name: "TipClosing", Args: []Type{"Hash"}, Documentation: []Text{" A tip suggestion has reached threshold and is closing. \\[tip_hash\\]"}}, EventMetadataV4{Name: "TipClosed", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A tip suggestion has been closed. \\[tip_hash, who, payout\\]"}}, EventMetadataV4{Name: "TipRetracted", Args: []Type{"Hash"}, Documentation: []Text{" A tip suggestion has been retracted. \\[tip_hash\\]"}}, EventMetadataV4{Name: "TipSlashed", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A tip suggestion has been slashed. \\[tip_hash, finder, deposit\\]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "TipCountdown", Type: "T::BlockNumber", Value: Bytes{0x80, 0x70, 0x0, 0x0}, Documentation: []Text{" The period for which a tip remains open after is has achieved threshold tippers."}}, ModuleConstantMetadataV6{Name: "TipFindersFee", Type: "Percent", Value: Bytes{0x14}, Documentation: []Text{" The amount of the final tip which goes to the original reporter of the tip."}}, ModuleConstantMetadataV6{Name: "TipReportDepositBase", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit for placing a tip report."}}, ModuleConstantMetadataV6{Name: "DataDepositPerByte", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount held on deposit per byte within the tip report reason."}}, ModuleConstantMetadataV6{Name: "MaximumReasonLength", Type: "u32", Value: Bytes{0x0, 0x40, 0x0, 0x0}, Documentation: []Text{" Maximum acceptable reason length."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "ReasonTooBig", Documentation: []Text{" The reason given is just too big."}}, ErrorMetadataV8{Name: "AlreadyKnown", Documentation: []Text{" The tip was already found/started."}}, ErrorMetadataV8{Name: "UnknownTip", Documentation: []Text{" The tip hash is unknown."}}, ErrorMetadataV8{Name: "NotFinder", Documentation: []Text{" The account attempting to retract the tip is not the finder of the tip."}}, ErrorMetadataV8{Name: "StillOpen", Documentation: []Text{" The tip cannot be claimed/closed because there are not enough tippers yet."}}, ErrorMetadataV8{Name: "Premature", Documentation: []Text{" The tip cannot be claimed/closed because it's still in the countdown period."}}}, Index: 0x21}, ModuleMetadataV13{Name: "Assets", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Assets", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Asset", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AssetId", Value: "AssetDetails>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Details of an asset."}}, StorageFunctionMetadataV13{Name: "Account", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "T::AssetId", Key2: "T::AccountId", Value: "AssetBalance", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of units of assets held by any given account."}}, StorageFunctionMetadataV13{Name: "Approvals", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: true, AsNMap: NMapTypeV13{Keys: []Type{"T::AssetId", "T::AccountId", "T::AccountId"}, Hashers: []StorageHasherV10{StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, Value: "Approval>"}}, Fallback: Bytes{0x0}, Documentation: []Text{" Approved balance transfers. First balance is the amount approved for transfer. Second", " is the amount of `T::Currency` reserved for storing this.", " First key is the asset ID, second key is the owner and third key is the delegate."}}, StorageFunctionMetadataV13{Name: "Metadata", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::AssetId", Value: "AssetMetadata, BoundedVec\n>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Metadata of an asset."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "create", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "admin", Type: "::Source"}, FunctionArgumentMetadata{Name: "min_balance", Type: "T::Balance"}}, Documentation: []Text{" Issue a new class of fungible assets from a public origin.", "", " This new asset class has no assets initially and its owner is the origin.", "", " The origin must be Signed and the sender must have sufficient funds free.", "", " Funds of sender are reserved by `AssetDeposit`.", "", " Parameters:", " - `id`: The identifier of the new asset. This must not be currently in use to identify", " an existing asset.", " - `admin`: The admin of this class of assets. The admin is the initial address of each", " member of the asset class's admin team.", " - `min_balance`: The minimum balance of this new asset that any single account must", " have. If an account's balance is reduced below this, then it collapses to zero.", "", " Emits `Created` event when successful.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "force_create", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "owner", Type: "::Source"}, FunctionArgumentMetadata{Name: "is_sufficient", Type: "bool"}, FunctionArgumentMetadata{Name: "min_balance", Type: "Compact"}}, Documentation: []Text{" Issue a new class of fungible assets from a privileged origin.", "", " This new asset class has no assets initially.", "", " The origin must conform to `ForceOrigin`.", "", " Unlike `create`, no funds are reserved.", "", " - `id`: The identifier of the new asset. This must not be currently in use to identify", " an existing asset.", " - `owner`: The owner of this class of assets. The owner has full superuser permissions", " over this asset, but may later change and configure the permissions using `transfer_ownership`", " and `set_team`.", " - `min_balance`: The minimum balance of this new asset that any single account must", " have. If an account's balance is reduced below this, then it collapses to zero.", "", " Emits `ForceCreated` event when successful.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "destroy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "witness", Type: "DestroyWitness"}}, Documentation: []Text{" Destroy a class of fungible assets.", "", " The origin must conform to `ForceOrigin` or must be Signed and the sender must be the", " owner of the asset `id`.", "", " - `id`: The identifier of the asset to be destroyed. This must identify an existing", " asset.", "", " Emits `Destroyed` event when successful.", "", " Weight: `O(c + p + a)` where:", " - `c = (witness.accounts - witness.sufficients)`", " - `s = witness.sufficients`", " - `a = witness.approvals`"}}, FunctionMetadataV4{Name: "mint", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "beneficiary", Type: "::Source"}, FunctionArgumentMetadata{Name: "amount", Type: "Compact"}}, Documentation: []Text{" Mint assets of a particular class.", "", " The origin must be Signed and the sender must be the Issuer of the asset `id`.", "", " - `id`: The identifier of the asset to have some amount minted.", " - `beneficiary`: The account to be credited with the minted assets.", " - `amount`: The amount of the asset to be minted.", "", " Emits `Issued` event when successful.", "", " Weight: `O(1)`", " Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`."}}, FunctionMetadataV4{Name: "burn", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "who", Type: "::Source"}, FunctionArgumentMetadata{Name: "amount", Type: "Compact"}}, Documentation: []Text{" Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", "", " Origin must be Signed and the sender should be the Manager of the asset `id`.", "", " Bails with `BalanceZero` if the `who` is already dead.", "", " - `id`: The identifier of the asset to have some amount burned.", " - `who`: The account to be debited from.", " - `amount`: The maximum amount by which `who`'s balance should be reduced.", "", " Emits `Burned` with the actual amount burned. If this takes the balance to below the", " minimum for the asset, then the amount burned is increased to take it to zero.", "", " Weight: `O(1)`", " Modes: Post-existence of `who`; Pre & post Zombie-status of `who`."}}, FunctionMetadataV4{Name: "transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "target", Type: "::Source"}, FunctionArgumentMetadata{Name: "amount", Type: "Compact"}}, Documentation: []Text{" Move some assets from the sender account to another.", "", " Origin must be Signed.", "", " - `id`: The identifier of the asset to have some amount transferred.", " - `target`: The account to be credited.", " - `amount`: The amount by which the sender's balance of assets should be reduced and", " `target`'s balance increased. The amount actually transferred may be slightly greater in", " the case that the transfer would otherwise take the sender balance above zero but below", " the minimum balance. Must be greater than zero.", "", " Emits `Transferred` with the actual amount transferred. If this takes the source balance", " to below the minimum for the asset, then the amount transferred is increased to take it", " to zero.", "", " Weight: `O(1)`", " Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", " `target`."}}, FunctionMetadataV4{Name: "transfer_keep_alive", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "target", Type: "::Source"}, FunctionArgumentMetadata{Name: "amount", Type: "Compact"}}, Documentation: []Text{" Move some assets from the sender account to another, keeping the sender account alive.", "", " Origin must be Signed.", "", " - `id`: The identifier of the asset to have some amount transferred.", " - `target`: The account to be credited.", " - `amount`: The amount by which the sender's balance of assets should be reduced and", " `target`'s balance increased. The amount actually transferred may be slightly greater in", " the case that the transfer would otherwise take the sender balance above zero but below", " the minimum balance. Must be greater than zero.", "", " Emits `Transferred` with the actual amount transferred. If this takes the source balance", " to below the minimum for the asset, then the amount transferred is increased to take it", " to zero.", "", " Weight: `O(1)`", " Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", " `target`."}}, FunctionMetadataV4{Name: "force_transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "source", Type: "::Source"}, FunctionArgumentMetadata{Name: "dest", Type: "::Source"}, FunctionArgumentMetadata{Name: "amount", Type: "Compact"}}, Documentation: []Text{" Move some assets from one account to another.", "", " Origin must be Signed and the sender should be the Admin of the asset `id`.", "", " - `id`: The identifier of the asset to have some amount transferred.", " - `source`: The account to be debited.", " - `dest`: The account to be credited.", " - `amount`: The amount by which the `source`'s balance of assets should be reduced and", " `dest`'s balance increased. The amount actually transferred may be slightly greater in", " the case that the transfer would otherwise take the `source` balance above zero but", " below the minimum balance. Must be greater than zero.", "", " Emits `Transferred` with the actual amount transferred. If this takes the source balance", " to below the minimum for the asset, then the amount transferred is increased to take it", " to zero.", "", " Weight: `O(1)`", " Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", " `dest`."}}, FunctionMetadataV4{Name: "freeze", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "who", Type: "::Source"}}, Documentation: []Text{" Disallow further unprivileged transfers from an account.", "", " Origin must be Signed and the sender should be the Freezer of the asset `id`.", "", " - `id`: The identifier of the asset to be frozen.", " - `who`: The account to be frozen.", "", " Emits `Frozen`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "thaw", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "who", Type: "::Source"}}, Documentation: []Text{" Allow unprivileged transfers from an account again.", "", " Origin must be Signed and the sender should be the Admin of the asset `id`.", "", " - `id`: The identifier of the asset to be frozen.", " - `who`: The account to be unfrozen.", "", " Emits `Thawed`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "freeze_asset", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}}, Documentation: []Text{" Disallow further unprivileged transfers for the asset class.", "", " Origin must be Signed and the sender should be the Freezer of the asset `id`.", "", " - `id`: The identifier of the asset to be frozen.", "", " Emits `Frozen`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "thaw_asset", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}}, Documentation: []Text{" Allow unprivileged transfers for the asset again.", "", " Origin must be Signed and the sender should be the Admin of the asset `id`.", "", " - `id`: The identifier of the asset to be thawed.", "", " Emits `Thawed`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "transfer_ownership", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "owner", Type: "::Source"}}, Documentation: []Text{" Change the Owner of an asset.", "", " Origin must be Signed and the sender should be the Owner of the asset `id`.", "", " - `id`: The identifier of the asset.", " - `owner`: The new Owner of this asset.", "", " Emits `OwnerChanged`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "set_team", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "issuer", Type: "::Source"}, FunctionArgumentMetadata{Name: "admin", Type: "::Source"}, FunctionArgumentMetadata{Name: "freezer", Type: "::Source"}}, Documentation: []Text{" Change the Issuer, Admin and Freezer of an asset.", "", " Origin must be Signed and the sender should be the Owner of the asset `id`.", "", " - `id`: The identifier of the asset to be frozen.", " - `issuer`: The new Issuer of this asset.", " - `admin`: The new Admin of this asset.", " - `freezer`: The new Freezer of this asset.", "", " Emits `TeamChanged`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "set_metadata", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "name", Type: "Vec"}, FunctionArgumentMetadata{Name: "symbol", Type: "Vec"}, FunctionArgumentMetadata{Name: "decimals", Type: "u8"}}, Documentation: []Text{" Set the metadata for an asset.", "", " Origin must be Signed and the sender should be the Owner of the asset `id`.", "", " Funds of sender are reserved according to the formula:", " `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", " account any already reserved funds.", "", " - `id`: The identifier of the asset to update.", " - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", " - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", " - `decimals`: The number of decimals this asset uses to represent one unit.", "", " Emits `MetadataSet`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "clear_metadata", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}}, Documentation: []Text{" Clear the metadata for an asset.", "", " Origin must be Signed and the sender should be the Owner of the asset `id`.", "", " Any deposit is freed for the asset owner.", "", " - `id`: The identifier of the asset to clear.", "", " Emits `MetadataCleared`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "force_set_metadata", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "name", Type: "Vec"}, FunctionArgumentMetadata{Name: "symbol", Type: "Vec"}, FunctionArgumentMetadata{Name: "decimals", Type: "u8"}, FunctionArgumentMetadata{Name: "is_frozen", Type: "bool"}}, Documentation: []Text{" Force the metadata for an asset to some value.", "", " Origin must be ForceOrigin.", "", " Any deposit is left alone.", "", " - `id`: The identifier of the asset to update.", " - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", " - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", " - `decimals`: The number of decimals this asset uses to represent one unit.", "", " Emits `MetadataSet`.", "", " Weight: `O(N + S)` where N and S are the length of the name and symbol respectively."}}, FunctionMetadataV4{Name: "force_clear_metadata", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}}, Documentation: []Text{" Clear the metadata for an asset.", "", " Origin must be ForceOrigin.", "", " Any deposit is returned.", "", " - `id`: The identifier of the asset to clear.", "", " Emits `MetadataCleared`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "force_asset_status", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "owner", Type: "::Source"}, FunctionArgumentMetadata{Name: "issuer", Type: "::Source"}, FunctionArgumentMetadata{Name: "admin", Type: "::Source"}, FunctionArgumentMetadata{Name: "freezer", Type: "::Source"}, FunctionArgumentMetadata{Name: "min_balance", Type: "Compact"}, FunctionArgumentMetadata{Name: "is_sufficient", Type: "bool"}, FunctionArgumentMetadata{Name: "is_frozen", Type: "bool"}}, Documentation: []Text{" Alter the attributes of a given asset.", "", " Origin must be `ForceOrigin`.", "", " - `id`: The identifier of the asset.", " - `owner`: The new Owner of this asset.", " - `issuer`: The new Issuer of this asset.", " - `admin`: The new Admin of this asset.", " - `freezer`: The new Freezer of this asset.", " - `min_balance`: The minimum balance of this new asset that any single account must", " have. If an account's balance is reduced below this, then it collapses to zero.", " - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", " value to account for the state bloat associated with its balance storage. If set to", " `true`, then non-zero balances may be stored without a `consumer` reference (and thus", " an ED in the Balances pallet or whatever else is used to control user-account state", " growth).", " - `is_frozen`: Whether this asset class is frozen except for permissioned/admin", " instructions.", "", " Emits `AssetStatusChanged` with the identity of the asset.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "approve_transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "delegate", Type: "::Source"}, FunctionArgumentMetadata{Name: "amount", Type: "Compact"}}, Documentation: []Text{" Approve an amount of asset for transfer by a delegated third-party account.", "", " Origin must be Signed.", "", " Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", " for the purpose of holding the approval. If some non-zero amount of assets is already", " approved from signing account to `delegate`, then it is topped up or unreserved to", " meet the right value.", "", " NOTE: The signing account does not need to own `amount` of assets at the point of", " making this call.", "", " - `id`: The identifier of the asset.", " - `delegate`: The account to delegate permission to transfer asset.", " - `amount`: The amount of asset that may be transferred by `delegate`. If there is", " already an approval in place, then this acts additively.", "", " Emits `ApprovedTransfer` on success.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "cancel_approval", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "delegate", Type: "::Source"}}, Documentation: []Text{" Cancel all of some asset approved for delegated transfer by a third-party account.", "", " Origin must be Signed and there must be an approval in place between signer and", " `delegate`.", "", " Unreserves any deposit previously reserved by `approve_transfer` for the approval.", "", " - `id`: The identifier of the asset.", " - `delegate`: The account delegated permission to transfer asset.", "", " Emits `ApprovalCancelled` on success.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "force_cancel_approval", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "owner", Type: "::Source"}, FunctionArgumentMetadata{Name: "delegate", Type: "::Source"}}, Documentation: []Text{" Cancel all of some asset approved for delegated transfer by a third-party account.", "", " Origin must be either ForceOrigin or Signed origin with the signer being the Admin", " account of the asset `id`.", "", " Unreserves any deposit previously reserved by `approve_transfer` for the approval.", "", " - `id`: The identifier of the asset.", " - `delegate`: The account delegated permission to transfer asset.", "", " Emits `ApprovalCancelled` on success.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "transfer_approved", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "id", Type: "Compact"}, FunctionArgumentMetadata{Name: "owner", Type: "::Source"}, FunctionArgumentMetadata{Name: "destination", Type: "::Source"}, FunctionArgumentMetadata{Name: "amount", Type: "Compact"}}, Documentation: []Text{" Transfer some asset balance from a previously delegated account to some third-party", " account.", "", " Origin must be Signed and there must be an approval in place by the `owner` to the", " signer.", "", " If the entire amount approved for transfer is transferred, then any deposit previously", " reserved by `approve_transfer` is unreserved.", "", " - `id`: The identifier of the asset.", " - `owner`: The account which previously approved for a transfer of at least `amount` and", " from which the asset balance will be withdrawn.", " - `destination`: The account to which the asset balance of `amount` will be transferred.", " - `amount`: The amount of assets to transfer.", "", " Emits `TransferredApproved` on success.", "", " Weight: `O(1)`"}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Created", Args: []Type{"AssetId", "AccountId", "AccountId"}, Documentation: []Text{" Some asset class was created. \\[asset_id, creator, owner\\]"}}, EventMetadataV4{Name: "Issued", Args: []Type{"AssetId", "AccountId", "Balance"}, Documentation: []Text{" Some assets were issued. \\[asset_id, owner, total_supply\\]"}}, EventMetadataV4{Name: "Transferred", Args: []Type{"AssetId", "AccountId", "AccountId", "Balance"}, Documentation: []Text{" Some assets were transferred. \\[asset_id, from, to, amount\\]"}}, EventMetadataV4{Name: "Burned", Args: []Type{"AssetId", "AccountId", "Balance"}, Documentation: []Text{" Some assets were destroyed. \\[asset_id, owner, balance\\]"}}, EventMetadataV4{Name: "TeamChanged", Args: []Type{"AssetId", "AccountId", "AccountId", "AccountId"}, Documentation: []Text{" The management team changed \\[asset_id, issuer, admin, freezer\\]"}}, EventMetadataV4{Name: "OwnerChanged", Args: []Type{"AssetId", "AccountId"}, Documentation: []Text{" The owner changed \\[asset_id, owner\\]"}}, EventMetadataV4{Name: "Frozen", Args: []Type{"AssetId", "AccountId"}, Documentation: []Text{" Some account `who` was frozen. \\[asset_id, who\\]"}}, EventMetadataV4{Name: "Thawed", Args: []Type{"AssetId", "AccountId"}, Documentation: []Text{" Some account `who` was thawed. \\[asset_id, who\\]"}}, EventMetadataV4{Name: "AssetFrozen", Args: []Type{"AssetId"}, Documentation: []Text{" Some asset `asset_id` was frozen. \\[asset_id\\]"}}, EventMetadataV4{Name: "AssetThawed", Args: []Type{"AssetId"}, Documentation: []Text{" Some asset `asset_id` was thawed. \\[asset_id\\]"}}, EventMetadataV4{Name: "Destroyed", Args: []Type{"AssetId"}, Documentation: []Text{" An asset class was destroyed."}}, EventMetadataV4{Name: "ForceCreated", Args: []Type{"AssetId", "AccountId"}, Documentation: []Text{" Some asset class was force-created. \\[asset_id, owner\\]"}}, EventMetadataV4{Name: "MetadataSet", Args: []Type{"AssetId", "Vec", "Vec", "u8", "bool"}, Documentation: []Text{" New metadata has been set for an asset. \\[asset_id, name, symbol, decimals, is_frozen\\]"}}, EventMetadataV4{Name: "MetadataCleared", Args: []Type{"AssetId"}, Documentation: []Text{" Metadata has been cleared for an asset. \\[asset_id\\]"}}, EventMetadataV4{Name: "ApprovedTransfer", Args: []Type{"AssetId", "AccountId", "AccountId", "Balance"}, Documentation: []Text{" (Additional) funds have been approved for transfer to a destination account.", " \\[asset_id, source, delegate, amount\\]"}}, EventMetadataV4{Name: "ApprovalCancelled", Args: []Type{"AssetId", "AccountId", "AccountId"}, Documentation: []Text{" An approval for account `delegate` was cancelled by `owner`.", " \\[id, owner, delegate\\]"}}, EventMetadataV4{Name: "TransferredApproved", Args: []Type{"AssetId", "AccountId", "AccountId", "AccountId", "Balance"}, Documentation: []Text{" An `amount` was transferred in its entirety from `owner` to `destination` by", " the approved `delegate`.", " \\[id, owner, delegate, destination\\]"}}, EventMetadataV4{Name: "AssetStatusChanged", Args: []Type{"AssetId"}, Documentation: []Text{" An asset has had its attributes changed by the `Force` origin.", " \\[id\\]"}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "BalanceLow", Documentation: []Text{" Account balance must be greater than or equal to the transfer amount."}}, ErrorMetadataV8{Name: "BalanceZero", Documentation: []Text{" Balance should be non-zero."}}, ErrorMetadataV8{Name: "NoPermission", Documentation: []Text{" The signing account has no permission to do the operation."}}, ErrorMetadataV8{Name: "Unknown", Documentation: []Text{" The given asset ID is unknown."}}, ErrorMetadataV8{Name: "Frozen", Documentation: []Text{" The origin account is frozen."}}, ErrorMetadataV8{Name: "InUse", Documentation: []Text{" The asset ID is already taken."}}, ErrorMetadataV8{Name: "BadWitness", Documentation: []Text{" Invalid witness data given."}}, ErrorMetadataV8{Name: "MinBalanceZero", Documentation: []Text{" Minimum balance should be non-zero."}}, ErrorMetadataV8{Name: "NoProvider", Documentation: []Text{" No provider reference exists to allow a non-zero balance of a non-self-sufficient asset."}}, ErrorMetadataV8{Name: "BadMetadata", Documentation: []Text{" Invalid metadata given."}}, ErrorMetadataV8{Name: "Unapproved", Documentation: []Text{" No approval exists that would allow the transfer."}}, ErrorMetadataV8{Name: "WouldDie", Documentation: []Text{" The source account would not survive the transfer and it needs to stay alive."}}}, Index: 0x22}, ModuleMetadataV13{Name: "Mmr", HasStorage: true, Storage: StorageMetadataV13{Prefix: "MerkleMountainRange", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "RootHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: ">::Hash", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Latest MMR Root hash."}}, StorageFunctionMetadataV13{Name: "NumberOfLeaves", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current size of the MMR (number of leaves)."}}, StorageFunctionMetadataV13{Name: "Nodes", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: true}, Key: "u64", Value: ">::Hash", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Hashes of the nodes in the MMR.", "", " Note this collection only contains MMR peaks, the inner nodes (and leaves)", " are pruned and only stored in the Offchain DB."}}}}, HasCalls: false, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil), Index: 0x23}, ModuleMetadataV13{Name: "Lottery", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Lottery", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "LotteryIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, StorageFunctionMetadataV13{Name: "Lottery", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "LotteryConfig>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The configuration for the current lottery."}}, StorageFunctionMetadataV13{Name: "Participants", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "T::AccountId", Value: "(u32, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Users who have purchased a ticket. (Lottery Index, Tickets Purchased)"}}, StorageFunctionMetadataV13{Name: "TicketsCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Total number of tickets sold."}}, StorageFunctionMetadataV13{Name: "Tickets", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true, IsIdentity: false}, Key: "u32", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Each ticket's owner.", "", " May have residual storage from previous lotteries. Use `TicketsCount` to see which ones", " are actually valid ticket mappings."}}, StorageFunctionMetadataV13{Name: "CallIndices", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The calls stored in this pallet to be used in an active lottery if configured", " by `Config::ValidateCall`."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "buy_ticket", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "call", Type: "Box<::Call>"}}, Documentation: []Text{" Buy a ticket to enter the lottery.", "", " This extrinsic acts as a passthrough function for `call`. In all", " situations where `call` alone would succeed, this extrinsic should", " succeed.", "", " If `call` is successful, then we will attempt to purchase a ticket,", " which may fail silently. To detect success of a ticket purchase, you", " should listen for the `TicketBought` event.", "", " This extrinsic must be called by a signed origin."}}, FunctionMetadataV4{Name: "set_calls", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "calls", Type: "Vec<::Call>"}}, Documentation: []Text{" Set calls in storage which can be used to purchase a lottery ticket.", "", " This function only matters if you use the `ValidateCall` implementation", " provided by this pallet, which uses storage to determine the valid calls.", "", " This extrinsic must be called by the Manager origin."}}, FunctionMetadataV4{Name: "start_lottery", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "price", Type: "BalanceOf"}, FunctionArgumentMetadata{Name: "length", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "delay", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "repeat", Type: "bool"}}, Documentation: []Text{" Start a lottery using the provided configuration.", "", " This extrinsic must be called by the `ManagerOrigin`.", "", " Parameters:", "", " * `price`: The cost of a single ticket.", " * `length`: How long the lottery should run for starting at the current block.", " * `delay`: How long after the lottery end we should wait before picking a winner.", " * `repeat`: If the lottery should repeat when completed."}}, FunctionMetadataV4{Name: "stop_repeat", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" If a lottery is repeating, you can use this to stop the repeat.", " The lottery will continue to run to completion.", "", " This extrinsic must be called by the `ManagerOrigin`."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "LotteryStarted", Args: []Type(nil), Documentation: []Text{" A lottery has been started!"}}, EventMetadataV4{Name: "CallsUpdated", Args: []Type(nil), Documentation: []Text{" A new set of calls have been set!"}}, EventMetadataV4{Name: "Winner", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A winner has been chosen!"}}, EventMetadataV4{Name: "TicketBought", Args: []Type{"AccountId", "CallIndex"}, Documentation: []Text{" A ticket has been bought!"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "PalletId", Type: "PalletId", Value: Bytes{0x70, 0x79, 0x2f, 0x6c, 0x6f, 0x74, 0x74, 0x6f}, Documentation: []Text{" The Lottery's pallet id"}}, ModuleConstantMetadataV6{Name: "MaxCalls", Type: "u32", Value: Bytes{0xa, 0x0, 0x0, 0x0}, Documentation: []Text{" The max number of calls available in a single lottery."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NotConfigured", Documentation: []Text{" A lottery has not been configured."}}, ErrorMetadataV8{Name: "InProgress", Documentation: []Text{" A lottery is already in progress."}}, ErrorMetadataV8{Name: "AlreadyEnded", Documentation: []Text{" A lottery has already ended."}}, ErrorMetadataV8{Name: "InvalidCall", Documentation: []Text{" The call is not valid for an open lottery."}}, ErrorMetadataV8{Name: "AlreadyParticipating", Documentation: []Text{" You are already participating in the lottery with this call."}}, ErrorMetadataV8{Name: "TooManyCalls", Documentation: []Text{" Too many calls for a single lottery."}}, ErrorMetadataV8{Name: "EncodingFailed", Documentation: []Text{" Failed to encode calls"}}}, Index: 0x24}, ModuleMetadataV13{Name: "Gilt", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Gilt", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "QueueTotals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec<(u32, BalanceOf)>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The totals of items and balances within each queue. Saves a lot of storage reads in the", " case of sparsely packed queues.", "", " The vector is indexed by duration in `Period`s, offset by one, so information on the queue", " whose duration is one `Period` would be storage `0`."}}, StorageFunctionMetadataV13{Name: "Queues", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "u32", Value: "Vec, T::AccountId>>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The queues of bids ready to become gilts. Indexed by duration (in `Period`s)."}}, StorageFunctionMetadataV13{Name: "ActiveTotal", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "ActiveGiltsTotal>", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Information relating to the gilts currently active."}}, StorageFunctionMetadataV13{Name: "Active", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "ActiveIndex", Value: "ActiveGilt,::AccountId,<\nT as frame_system::Config>::BlockNumber>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The currently active gilts, indexed according to the order of creation."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "place_bid", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "amount", Type: "Compact>"}, FunctionArgumentMetadata{Name: "duration", Type: "u32"}}, Documentation: []Text{" Place a bid for a gilt to be issued.", "", " Origin must be Signed, and account must have at least `amount` in free balance.", "", " - `amount`: The amount of the bid; these funds will be reserved. If the bid is", " successfully elevated into an issued gilt, then these funds will continue to be", " reserved until the gilt expires. Must be at least `MinFreeze`.", " - `duration`: The number of periods for which the funds will be locked if the gilt is", " issued. It will expire only after this period has elapsed after the point of issuance.", " Must be greater than 1 and no more than `QueueCount`.", "", " Complexities:", " - `Queues[duration].len()` (just take max)."}}, FunctionMetadataV4{Name: "retract_bid", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "amount", Type: "Compact>"}, FunctionArgumentMetadata{Name: "duration", Type: "u32"}}, Documentation: []Text{" Retract a previously placed bid.", "", " Origin must be Signed, and the account should have previously issued a still-active bid", " of `amount` for `duration`.", "", " - `amount`: The amount of the previous bid.", " - `duration`: The duration of the previous bid."}}, FunctionMetadataV4{Name: "set_target", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "target", Type: "Compact"}}, Documentation: []Text{" Set target proportion of gilt-funds.", "", " Origin must be `AdminOrigin`.", "", " - `target`: The target proportion of effective issued funds that should be under gilts", " at any one time."}}, FunctionMetadataV4{Name: "thaw", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "index", Type: "Compact"}}, Documentation: []Text{" Remove an active but expired gilt. Reserved funds under gilt are freed and balance is", " adjusted to ensure that the funds grow or shrink to maintain the equivalent proportion", " of effective total issued funds.", "", " Origin must be Signed and the account must be the owner of the gilt of the given index.", "", " - `index`: The index of the gilt to be thawed."}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "BidPlaced", Args: []Type{"AccountId", "BalanceOf", "u32"}, Documentation: []Text{" A bid was successfully placed.", " \\[ who, amount, duration \\]"}}, EventMetadataV4{Name: "BidRetracted", Args: []Type{"AccountId", "BalanceOf", "u32"}, Documentation: []Text{" A bid was successfully removed (before being accepted as a gilt).", " \\[ who, amount, duration \\]"}}, EventMetadataV4{Name: "GiltIssued", Args: []Type{"ActiveIndex", "T::BlockNumber", "AccountId", "BalanceOf"}, Documentation: []Text{" A bid was accepted as a gilt. The balance may not be released until expiry.", " \\[ index, expiry, who, amount \\]"}}, EventMetadataV4{Name: "GiltThawed", Args: []Type{"ActiveIndex", "AccountId", "BalanceOf", "BalanceOf"}, Documentation: []Text{" An expired gilt has been thawed.", " \\[ index, who, original_amount, additional_amount \\]"}}}, Constants: []ModuleConstantMetadataV6{ModuleConstantMetadataV6{Name: "QueueCount", Type: "u32", Value: Bytes{0x2c, 0x1, 0x0, 0x0}, Documentation: []Text{" Number of duration queues in total. This sets the maximum duration supported, which is", " this value multiplied by `Period`."}}, ModuleConstantMetadataV6{Name: "MaxQueueLen", Type: "u32", Value: Bytes{0xe8, 0x3, 0x0, 0x0}, Documentation: []Text{" Maximum number of items that may be in each duration queue."}}, ModuleConstantMetadataV6{Name: "FifoQueueLen", Type: "u32", Value: Bytes{0xf4, 0x1, 0x0, 0x0}, Documentation: []Text{" Portion of the queue which is free from ordering and just a FIFO.", "", " Must be no greater than `MaxQueueLen`."}}, ModuleConstantMetadataV6{Name: "Period", Type: "T::BlockNumber", Value: Bytes{0x0, 0x2f, 0xd, 0x0}, Documentation: []Text{" The base period for the duration queues. This is the common multiple across all", " supported freezing durations that can be bid upon."}}, ModuleConstantMetadataV6{Name: "MinFreeze", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount of funds that may be offered to freeze for a gilt. Note that this", " does not actually limit the amount which may be frozen in a gilt since gilts may be", " split up in order to satisfy the desired amount of funds under gilts.", "", " It should be at least big enough to ensure that there is no possible storage spam attack", " or queue-filling attack."}}, ModuleConstantMetadataV6{Name: "IntakePeriod", Type: "T::BlockNumber", Value: Bytes{0xa, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of blocks between consecutive attempts to issue more gilts in an effort to", " get to the target amount to be frozen.", "", " A larger value results in fewer storage hits each block, but a slower period to get to", " the target."}}, ModuleConstantMetadataV6{Name: "MaxIntakeBids", Type: "u32", Value: Bytes{0xa, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum amount of bids that can be turned into issued gilts each block. A larger", " value here means less of the block available for transactions should there be a glut of", " bids to make into gilts to reach the target."}}}, Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "DurationTooSmall", Documentation: []Text{" The duration of the bid is less than one."}}, ErrorMetadataV8{Name: "DurationTooBig", Documentation: []Text{" The duration is the bid is greater than the number of queues."}}, ErrorMetadataV8{Name: "AmountTooSmall", Documentation: []Text{" The amount of the bid is less than the minimum allowed."}}, ErrorMetadataV8{Name: "BidTooLow", Documentation: []Text{" The queue for the bid's duration is full and the amount bid is too low to get in through", " replacing an existing bid."}}, ErrorMetadataV8{Name: "Unknown", Documentation: []Text{" Gilt index is unknown."}}, ErrorMetadataV8{Name: "NotOwner", Documentation: []Text{" Not the owner of the gilt."}}, ErrorMetadataV8{Name: "NotExpired", Documentation: []Text{" Gilt not yet at expiry date."}}, ErrorMetadataV8{Name: "NotFound", Documentation: []Text{" The given bid for retraction is not found."}}}, Index: 0x25}, ModuleMetadataV13{Name: "Uniques", HasStorage: true, Storage: StorageMetadataV13{Prefix: "Uniques", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Class", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::ClassId", Value: "ClassDetails>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Details of an asset class."}}, StorageFunctionMetadataV13{Name: "Account", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: true, AsNMap: NMapTypeV13{Keys: []Type{"T::AccountId", "T::ClassId", "T::InstanceId"}, Hashers: []StorageHasherV10{StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, Value: "()"}}, Fallback: Bytes{0x0}, Documentation: []Text{" The assets held by any given account; set out this way so that assets owned by a single", " account can be enumerated."}}, StorageFunctionMetadataV13{Name: "Asset", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "T::ClassId", Key2: "T::InstanceId", Value: "InstanceDetails>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The assets in existence and their ownership details."}}, StorageFunctionMetadataV13{Name: "ClassMetadataOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::ClassId", Value: "ClassMetadata, T::StringLimit>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Metadata of an asset class."}}, StorageFunctionMetadataV13{Name: "InstanceMetadataOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "T::ClassId", Key2: "T::InstanceId", Value: "InstanceMetadata, T::StringLimit>", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Metadata of an asset instance."}}, StorageFunctionMetadataV13{Name: "Attribute", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: true, AsNMap: NMapTypeV13{Keys: []Type{"T::ClassId", "Option", "BoundedVec"}, Hashers: []StorageHasherV10{StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, Value: "(BoundedVec, DepositBalanceOf)"}}, Fallback: Bytes{0x0}, Documentation: []Text{" Metadata of an asset class."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "create", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "admin", Type: "::Source"}}, Documentation: []Text{" Issue a new class of non-fungible assets from a public origin.", "", " This new asset class has no assets initially and its owner is the origin.", "", " The origin must be Signed and the sender must have sufficient funds free.", "", " `AssetDeposit` funds of sender are reserved.", "", " Parameters:", " - `class`: The identifier of the new asset class. This must not be currently in use.", " - `admin`: The admin of this class of assets. The admin is the initial address of each", " member of the asset class's admin team.", "", " Emits `Created` event when successful.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "force_create", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "owner", Type: "::Source"}, FunctionArgumentMetadata{Name: "free_holding", Type: "bool"}}, Documentation: []Text{" Issue a new class of non-fungible assets from a privileged origin.", "", " This new asset class has no assets initially.", "", " The origin must conform to `ForceOrigin`.", "", " Unlike `create`, no funds are reserved.", "", " - `class`: The identifier of the new asset. This must not be currently in use.", " - `owner`: The owner of this class of assets. The owner has full superuser permissions", " over this asset, but may later change and configure the permissions using", " `transfer_ownership` and `set_team`.", "", " Emits `ForceCreated` event when successful.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "destroy", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "witness", Type: "DestroyWitness"}}, Documentation: []Text{" Destroy a class of fungible assets.", "", " The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", " owner of the asset `class`.", "", " - `class`: The identifier of the asset class to be destroyed.", " - `witness`: Information on the instances minted in the asset class. This must be", " correct.", "", " Emits `Destroyed` event when successful.", "", " Weight: `O(n + m)` where:", " - `n = witness.instances`", " - `m = witness.instance_metdadatas`", " - `a = witness.attributes`"}}, FunctionMetadataV4{Name: "mint", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "instance", Type: "Compact"}, FunctionArgumentMetadata{Name: "owner", Type: "::Source"}}, Documentation: []Text{" Mint an asset instance of a particular class.", "", " The origin must be Signed and the sender must be the Issuer of the asset `class`.", "", " - `class`: The class of the asset to be minted.", " - `instance`: The instance value of the asset to be minted.", " - `beneficiary`: The initial owner of the minted asset.", "", " Emits `Issued` event when successful.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "burn", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "instance", Type: "Compact"}, FunctionArgumentMetadata{Name: "check_owner", Type: "Option<::Source>"}}, Documentation: []Text{" Destroy a single asset instance.", "", " Origin must be Signed and the sender should be the Admin of the asset `class`.", "", " - `class`: The class of the asset to be burned.", " - `instance`: The instance of the asset to be burned.", " - `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", " asset is owned by this value.", "", " Emits `Burned` with the actual amount burned.", "", " Weight: `O(1)`", " Modes: `check_owner.is_some()`."}}, FunctionMetadataV4{Name: "transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "instance", Type: "Compact"}, FunctionArgumentMetadata{Name: "dest", Type: "::Source"}}, Documentation: []Text{" Move an asset from the sender account to another.", "", " Origin must be Signed and the signing account must be either:", " - the Admin of the asset `class`;", " - the Owner of the asset `instance`;", " - the approved delegate for the asset `instance` (in this case, the approval is reset).", "", " Arguments:", " - `class`: The class of the asset to be transferred.", " - `instance`: The instance of the asset to be transferred.", " - `dest`: The account to receive ownership of the asset.", "", " Emits `Transferred`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "redeposit", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "instances", Type: "Vec"}}, Documentation: []Text{" Reevaluate the deposits on some assets.", "", " Origin must be Signed and the sender should be the Owner of the asset `class`.", "", " - `class`: The class of the asset to be frozen.", " - `instances`: The instances of the asset class whose deposits will be reevaluated.", "", " NOTE: This exists as a best-effort function. Any asset instances which are unknown or", " in the case that the owner account does not have reservable funds to pay for a", " deposit increase are ignored. Generally the owner isn't going to call this on instances", " whose existing deposit is less than the refreshed deposit as it would only cost them,", " so it's of little consequence.", "", " It will still return an error in the case that the class is unknown of the signer is", " not permitted to call it.", "", " Weight: `O(instances.len())`"}}, FunctionMetadataV4{Name: "freeze", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "instance", Type: "Compact"}}, Documentation: []Text{" Disallow further unprivileged transfer of an asset instance.", "", " Origin must be Signed and the sender should be the Freezer of the asset `class`.", "", " - `class`: The class of the asset to be frozen.", " - `instance`: The instance of the asset to be frozen.", "", " Emits `Frozen`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "thaw", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "instance", Type: "Compact"}}, Documentation: []Text{" Re-allow unprivileged transfer of an asset instance.", "", " Origin must be Signed and the sender should be the Freezer of the asset `class`.", "", " - `class`: The class of the asset to be thawed.", " - `instance`: The instance of the asset to be thawed.", "", " Emits `Thawed`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "freeze_class", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}}, Documentation: []Text{" Disallow further unprivileged transfers for a whole asset class.", "", " Origin must be Signed and the sender should be the Freezer of the asset `class`.", "", " - `class`: The asset class to be frozen.", "", " Emits `ClassFrozen`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "thaw_class", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}}, Documentation: []Text{" Re-allow unprivileged transfers for a whole asset class.", "", " Origin must be Signed and the sender should be the Admin of the asset `class`.", "", " - `class`: The class to be thawed.", "", " Emits `ClassThawed`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "transfer_ownership", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "owner", Type: "::Source"}}, Documentation: []Text{" Change the Owner of an asset class.", "", " Origin must be Signed and the sender should be the Owner of the asset `class`.", "", " - `class`: The asset class whose owner should be changed.", " - `owner`: The new Owner of this asset class.", "", " Emits `OwnerChanged`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "set_team", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "issuer", Type: "::Source"}, FunctionArgumentMetadata{Name: "admin", Type: "::Source"}, FunctionArgumentMetadata{Name: "freezer", Type: "::Source"}}, Documentation: []Text{" Change the Issuer, Admin and Freezer of an asset class.", "", " Origin must be Signed and the sender should be the Owner of the asset `class`.", "", " - `class`: The asset class whose team should be changed.", " - `issuer`: The new Issuer of this asset class.", " - `admin`: The new Admin of this asset class.", " - `freezer`: The new Freezer of this asset class.", "", " Emits `TeamChanged`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "approve_transfer", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "instance", Type: "Compact"}, FunctionArgumentMetadata{Name: "delegate", Type: "::Source"}}, Documentation: []Text{" Approve an instance to be transferred by a delegated third-party account.", "", " Origin must be Signed and must be the owner of the asset `instance`.", "", " - `class`: The class of the asset to be approved for delegated transfer.", " - `instance`: The instance of the asset to be approved for delegated transfer.", " - `delegate`: The account to delegate permission to transfer the asset.", "", " Emits `ApprovedTransfer` on success.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "cancel_approval", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "instance", Type: "Compact"}, FunctionArgumentMetadata{Name: "maybe_check_delegate", Type: "Option<::Source>"}}, Documentation: []Text{" Cancel the prior approval for the transfer of an asset by a delegate.", "", " Origin must be either:", " - the `Force` origin;", " - `Signed` with the signer being the Admin of the asset `class`;", " - `Signed` with the signer being the Owner of the asset `instance`;", "", " Arguments:", " - `class`: The class of the asset of whose approval will be cancelled.", " - `instance`: The instance of the asset of whose approval will be cancelled.", " - `maybe_check_delegate`: If `Some` will ensure that the given account is the one to", " which permission of transfer is delegated.", "", " Emits `ApprovalCancelled` on success.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "force_asset_status", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "owner", Type: "::Source"}, FunctionArgumentMetadata{Name: "issuer", Type: "::Source"}, FunctionArgumentMetadata{Name: "admin", Type: "::Source"}, FunctionArgumentMetadata{Name: "freezer", Type: "::Source"}, FunctionArgumentMetadata{Name: "free_holding", Type: "bool"}, FunctionArgumentMetadata{Name: "is_frozen", Type: "bool"}}, Documentation: []Text{" Alter the attributes of a given asset.", "", " Origin must be `ForceOrigin`.", "", " - `class`: The identifier of the asset.", " - `owner`: The new Owner of this asset.", " - `issuer`: The new Issuer of this asset.", " - `admin`: The new Admin of this asset.", " - `freezer`: The new Freezer of this asset.", " - `free_holding`: Whether a deposit is taken for holding an instance of this asset", " class.", " - `is_frozen`: Whether this asset class is frozen except for permissioned/admin", " instructions.", "", " Emits `AssetStatusChanged` with the identity of the asset.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "set_attribute", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "maybe_instance", Type: "Option"}, FunctionArgumentMetadata{Name: "key", Type: "BoundedVec"}, FunctionArgumentMetadata{Name: "value", Type: "BoundedVec"}}, Documentation: []Text{" Set an attribute for an asset class or instance.", "", " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", " asset `class`.", "", " If the origin is Signed, then funds of signer are reserved according to the formula:", " `MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", " account any already reserved funds.", "", " - `class`: The identifier of the asset class whose instance's metadata to set.", " - `maybe_instance`: The identifier of the asset instance whose metadata to set.", " - `key`: The key of the attribute.", " - `value`: The value to which to set the attribute.", "", " Emits `AttributeSet`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "clear_attribute", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "maybe_instance", Type: "Option"}, FunctionArgumentMetadata{Name: "key", Type: "BoundedVec"}}, Documentation: []Text{" Set an attribute for an asset class or instance.", "", " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", " asset `class`.", "", " If the origin is Signed, then funds of signer are reserved according to the formula:", " `MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", " account any already reserved funds.", "", " - `class`: The identifier of the asset class whose instance's metadata to set.", " - `instance`: The identifier of the asset instance whose metadata to set.", " - `key`: The key of the attribute.", " - `value`: The value to which to set the attribute.", "", " Emits `AttributeSet`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "set_metadata", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "instance", Type: "Compact"}, FunctionArgumentMetadata{Name: "data", Type: "BoundedVec"}, FunctionArgumentMetadata{Name: "is_frozen", Type: "bool"}}, Documentation: []Text{" Set the metadata for an asset instance.", "", " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", " asset `class`.", "", " If the origin is Signed, then funds of signer are reserved according to the formula:", " `MetadataDepositBase + DepositPerByte * data.len` taking into", " account any already reserved funds.", "", " - `class`: The identifier of the asset class whose instance's metadata to set.", " - `instance`: The identifier of the asset instance whose metadata to set.", " - `data`: The general information of this asset. Limited in length by `StringLimit`.", " - `is_frozen`: Whether the metadata should be frozen against further changes.", "", " Emits `MetadataSet`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "clear_metadata", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "instance", Type: "Compact"}}, Documentation: []Text{" Clear the metadata for an asset instance.", "", " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", " asset `instance`.", "", " Any deposit is freed for the asset class owner.", "", " - `class`: The identifier of the asset class whose instance's metadata to clear.", " - `instance`: The identifier of the asset instance whose metadata to clear.", "", " Emits `MetadataCleared`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "set_class_metadata", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}, FunctionArgumentMetadata{Name: "data", Type: "BoundedVec"}, FunctionArgumentMetadata{Name: "is_frozen", Type: "bool"}}, Documentation: []Text{" Set the metadata for an asset class.", "", " Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", " the asset `class`.", "", " If the origin is `Signed`, then funds of signer are reserved according to the formula:", " `MetadataDepositBase + DepositPerByte * data.len` taking into", " account any already reserved funds.", "", " - `class`: The identifier of the asset whose metadata to update.", " - `data`: The general information of this asset. Limited in length by `StringLimit`.", " - `is_frozen`: Whether the metadata should be frozen against further changes.", "", " Emits `ClassMetadataSet`.", "", " Weight: `O(1)`"}}, FunctionMetadataV4{Name: "clear_class_metadata", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "class", Type: "Compact"}}, Documentation: []Text{" Clear the metadata for an asset class.", "", " Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", " the asset `class`.", "", " Any deposit is freed for the asset class owner.", "", " - `class`: The identifier of the asset class whose metadata to clear.", "", " Emits `ClassMetadataCleared`.", "", " Weight: `O(1)`"}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Created", Args: []Type{"ClassId", "AccountId", "AccountId"}, Documentation: []Text{" An asset class was created. \\[ class, creator, owner \\]"}}, EventMetadataV4{Name: "ForceCreated", Args: []Type{"ClassId", "AccountId"}, Documentation: []Text{" An asset class was force-created. \\[ class, owner \\]"}}, EventMetadataV4{Name: "Destroyed", Args: []Type{"ClassId"}, Documentation: []Text{" An asset `class` was destroyed. \\[ class \\]"}}, EventMetadataV4{Name: "Issued", Args: []Type{"ClassId", "InstanceId", "AccountId"}, Documentation: []Text{" An asset `instace` was issued. \\[ class, instance, owner \\]"}}, EventMetadataV4{Name: "Transferred", Args: []Type{"ClassId", "InstanceId", "AccountId", "AccountId"}, Documentation: []Text{" An asset `instace` was transferred. \\[ class, instance, from, to \\]"}}, EventMetadataV4{Name: "Burned", Args: []Type{"ClassId", "InstanceId", "AccountId"}, Documentation: []Text{" An asset `instance` was destroyed. \\[ class, instance, owner \\]"}}, EventMetadataV4{Name: "Frozen", Args: []Type{"ClassId", "InstanceId"}, Documentation: []Text{" Some asset `instance` was frozen. \\[ class, instance \\]"}}, EventMetadataV4{Name: "Thawed", Args: []Type{"ClassId", "InstanceId"}, Documentation: []Text{" Some asset `instance` was thawed. \\[ class, instance \\]"}}, EventMetadataV4{Name: "ClassFrozen", Args: []Type{"ClassId"}, Documentation: []Text{" Some asset `class` was frozen. \\[ class \\]"}}, EventMetadataV4{Name: "ClassThawed", Args: []Type{"ClassId"}, Documentation: []Text{" Some asset `class` was thawed. \\[ class \\]"}}, EventMetadataV4{Name: "OwnerChanged", Args: []Type{"ClassId", "AccountId"}, Documentation: []Text{" The owner changed \\[ class, new_owner \\]"}}, EventMetadataV4{Name: "TeamChanged", Args: []Type{"ClassId", "AccountId", "AccountId", "AccountId"}, Documentation: []Text{" The management team changed \\[ class, issuer, admin, freezer \\]"}}, EventMetadataV4{Name: "ApprovedTransfer", Args: []Type{"ClassId", "InstanceId", "AccountId", "AccountId"}, Documentation: []Text{" An `instance` of an asset `class` has been approved by the `owner` for transfer by a", " `delegate`.", " \\[ class, instance, owner, delegate \\]"}}, EventMetadataV4{Name: "ApprovalCancelled", Args: []Type{"ClassId", "InstanceId", "AccountId", "AccountId"}, Documentation: []Text{" An approval for a `delegate` account to transfer the `instance` of an asset `class` was", " cancelled by its `owner`.", " \\[ class, instance, owner, delegate \\]"}}, EventMetadataV4{Name: "AssetStatusChanged", Args: []Type{"ClassId"}, Documentation: []Text{" An asset `class` has had its attributes changed by the `Force` origin.", " \\[ class \\]"}}, EventMetadataV4{Name: "ClassMetadataSet", Args: []Type{"ClassId", "BoundedVec", "bool"}, Documentation: []Text{" New metadata has been set for an asset class. \\[ class, data, is_frozen \\]"}}, EventMetadataV4{Name: "ClassMetadataCleared", Args: []Type{"ClassId"}, Documentation: []Text{" Metadata has been cleared for an asset class. \\[ class \\]"}}, EventMetadataV4{Name: "MetadataSet", Args: []Type{"ClassId", "InstanceId", "BoundedVec", "bool"}, Documentation: []Text{" New metadata has been set for an asset instance.", " \\[ class, instance, data, is_frozen \\]"}}, EventMetadataV4{Name: "MetadataCleared", Args: []Type{"ClassId", "InstanceId"}, Documentation: []Text{" Metadata has been cleared for an asset instance. \\[ class, instance \\]"}}, EventMetadataV4{Name: "Redeposited", Args: []Type{"ClassId", "Vec"}, Documentation: []Text{" Metadata has been cleared for an asset instance. \\[ class, successful_instances \\]"}}, EventMetadataV4{Name: "AttributeSet", Args: []Type{"ClassId", "Option", "BoundedVec", "BoundedVec"}, Documentation: []Text{" New attribute metadata has been set for an asset class or instance.", " \\[ class, maybe_instance, key, value \\]"}}, EventMetadataV4{Name: "AttributeCleared", Args: []Type{"ClassId", "Option", "BoundedVec"}, Documentation: []Text{" Attribute metadata has been cleared for an asset class or instance.", " \\[ class, maybe_instance, key, maybe_value \\]"}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "NoPermission", Documentation: []Text{" The signing account has no permission to do the operation."}}, ErrorMetadataV8{Name: "Unknown", Documentation: []Text{" The given asset ID is unknown."}}, ErrorMetadataV8{Name: "AlreadyExists", Documentation: []Text{" The asset instance ID has already been used for an asset."}}, ErrorMetadataV8{Name: "WrongOwner", Documentation: []Text{" The owner turned out to be different to what was expected."}}, ErrorMetadataV8{Name: "BadWitness", Documentation: []Text{" Invalid witness data given."}}, ErrorMetadataV8{Name: "InUse", Documentation: []Text{" The asset ID is already taken."}}, ErrorMetadataV8{Name: "Frozen", Documentation: []Text{" The asset instance or class is frozen."}}, ErrorMetadataV8{Name: "WrongDelegate", Documentation: []Text{" The delegate turned out to be different to what was expected."}}, ErrorMetadataV8{Name: "NoDelegate", Documentation: []Text{" There is no delegate approved."}}, ErrorMetadataV8{Name: "Unapproved", Documentation: []Text{" No approval exists that would allow the transfer."}}}, Index: 0x26}, ModuleMetadataV13{Name: "TransactionStorage", HasStorage: true, Storage: StorageMetadataV13{Prefix: "TransactionStorage", Items: []StorageFunctionMetadataV13{StorageFunctionMetadataV13{Name: "Transactions", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::BlockNumber", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Collection of transaction metadata by block number."}}, StorageFunctionMetadataV13{Name: "ChunkCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "T::BlockNumber", Value: "u32", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Count indexed chunks for each block."}}, StorageFunctionMetadataV13{Name: "ByteFee", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Storage fee per byte."}}, StorageFunctionMetadataV13{Name: "EntryFee", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Storage fee per transaction."}}, StorageFunctionMetadataV13{Name: "MaxTransactionSize", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Maximum data set in a single transaction in bytes."}}, StorageFunctionMetadataV13{Name: "MaxBlockTransactions", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Maximum number of indexed transactions in the block."}}, StorageFunctionMetadataV13{Name: "StoragePeriod", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Storage period for data in blocks. Should match `sp_storage_proof::DEFAULT_STORAGE_PERIOD`", " for block authoring."}}, StorageFunctionMetadataV13{Name: "BlockTransactions", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}, StorageFunctionMetadataV13{Name: "ProofChecked", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV13{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV10{Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasherV10{IsBlake2_128: false, IsBlake2_256: false, IsBlake2_128Concat: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false, IsIdentity: false}}, IsNMap: false, AsNMap: NMapTypeV13{Keys: []Type(nil), Hashers: []StorageHasherV10(nil), Value: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Was the proof checked in this block?"}}}}, HasCalls: true, Calls: []FunctionMetadataV4{FunctionMetadataV4{Name: "store", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "data", Type: "Vec"}}, Documentation: []Text{" Index and store data on chain. Minimum data size is 1 bytes, maximum is `MaxTransactionSize`.", " Data will be removed after `STORAGE_PERIOD` blocks, unless `renew` is called.", " # ", " - n*log(n) of data size, as all data is pushed to an in-memory trie.", " Additionally contains a DB write.", " # "}}, FunctionMetadataV4{Name: "renew", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "block", Type: "T::BlockNumber"}, FunctionArgumentMetadata{Name: "index", Type: "u32"}}, Documentation: []Text{" Renew previously stored data. Parameters are the block number that contains", " previous `store` or `renew` call and transaction index within that block.", " Transaction index is emitted in the `Stored` or `Renewed` event.", " Applies same fees as `store`.", " # ", " - Constant.", " # "}}, FunctionMetadataV4{Name: "check_proof", Args: []FunctionArgumentMetadata{FunctionArgumentMetadata{Name: "proof", Type: "TransactionStorageProof"}}, Documentation: []Text{" Check storage proof for block number `block_number() - StoragePeriod`.", " If such block does not exist the proof is expected to be `None`.", " # ", " - Linear w.r.t the number of indexed transactions in the proved block for random probing.", " There's a DB read for each transaction.", " Here we assume a maximum of 100 probed transactions.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{EventMetadataV4{Name: "Stored", Args: []Type{"u32"}, Documentation: []Text{" Stored data under specified index."}}, EventMetadataV4{Name: "Renewed", Args: []Type{"u32"}, Documentation: []Text{" Renewed data under specified index."}}, EventMetadataV4{Name: "ProofChecked", Args: []Type(nil), Documentation: []Text{" Storage proof was successfully checked."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{ErrorMetadataV8{Name: "InsufficientFunds", Documentation: []Text{" Insufficient account balance."}}, ErrorMetadataV8{Name: "NotConfigured", Documentation: []Text{" Invalid configuration."}}, ErrorMetadataV8{Name: "RenewedNotFound", Documentation: []Text{" Renewed extrinsic is not found."}}, ErrorMetadataV8{Name: "EmptyTransaction", Documentation: []Text{" Attempting to store empty transaction"}}, ErrorMetadataV8{Name: "UnexpectedProof", Documentation: []Text{" Proof was not expected in this block."}}, ErrorMetadataV8{Name: "InvalidProof", Documentation: []Text{" Proof failed verification."}}, ErrorMetadataV8{Name: "MissingProof", Documentation: []Text{" Missing storage proof."}}, ErrorMetadataV8{Name: "MissingStateData", Documentation: []Text{" Unable to verify proof becasue state data is missing."}}, ErrorMetadataV8{Name: "DoubleCheck", Documentation: []Text{" Double proof check in the block."}}, ErrorMetadataV8{Name: "ProofNotChecked", Documentation: []Text{" Storage proof was not checked in the block."}}, ErrorMetadataV8{Name: "TransactionTooLarge", Documentation: []Text{" Transaction is too large."}}, ErrorMetadataV8{Name: "TooManyTransactions", Documentation: []Text{" Too many transactions in the block."}}, ErrorMetadataV8{Name: "BadContext", Documentation: []Text{" Attempted to call `store` outside of block execution."}}}, Index: 0x27}}, Extrinsic: ExtrinsicV11{Version: 0x4, SignedExtensions: []string{"CheckSpecVersion", "CheckTxVersion", "CheckGenesis", "CheckMortality", "CheckNonce", "CheckWeight", "ChargeTransactionPayment"}}}} diff --git a/types/metadataV13_examplary_string.go b/types/metadataV13_examplary_string.go deleted file mode 100644 index eaaaa13be..000000000 --- a/types/metadataV13_examplary_string.go +++ /dev/null @@ -1,3 +0,0 @@ -package types - -var ExamplaryMetadataV13SubstrateString = "0x6d6574610da01853797374656d011853797374656d401c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e004101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010038436f6e73756d6564576569676874600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010010626f6f6c0400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010010626f6f6c0400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e146c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e28682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e7901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2c202d2031206576656e742e7d012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e902057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e75012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e4472656d61726b5f776974685f6576656e74041872656d61726b1c5665633c75383e18a8204d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002c2023203c7765696768743eb8202d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e2c202d2031206576656e742e302023203c2f7765696768743e01184045787472696e7369635375636365737304304469737061746368496e666f04b820416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f049420416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e744964047c2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046c20416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b656408244163636f756e744964104861736804d4204f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d1830426c6f636b57656967687473506c696d6974733a3a426c6f636b57656967687473850100f2052a0100000000204aa9d1010000405973070000000001c06e96a62e010000010098f73e5d010000010000000000000000405973070000000001c0f6e810a30100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684c6c696d6974733a3a426c6f636b4c656e6774683000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e7438543a3a426c6f636b4e756d6265721060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768743c52756e74696d6544625765696768744040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e3852756e74696d6556657273696f6e0503106e6f6465387375627374726174652d6e6f64650a0000000b0100000000000034df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1502000000f78b278be53f454c02000000ed99c5acb25eedf502000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000068b66ba122c93fa70100000037c8bb1350a9a2a80100000091d5df18b0d2cf5801000000ab3c0572291feb8b01000000020000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978087538042a14a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e001c5574696c69747900010c146261746368041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e48802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e34f02053656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e2501205468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e0108404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173902077656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e0000011042616265011042616265402845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f74010010536c6f7420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f74010010536c6f7420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e65737380000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000504e657874436f6e66696744657363726970746f7204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e657373800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e04000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101050c7533326c5665633c7363686e6f72726b656c3a3a52616e646f6d6e6573733e0004000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a656400003c4d6179626552616e646f6d6e65737304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301003c4d6179626552616e646f6d6e65737304000c5d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207468617420696e636c756465732074686520565246206f75747075742067656e6572617465645101206174207468697320626c6f636b2e2054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e2845706f6368537461727401008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d62657229200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010038543a3a426c6f636b4e756d626572100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e04000485012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e2067656e657369732e3c4e65787445706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e0400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66200d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e48706c616e5f636f6e6669675f6368616e67650418636f6e666967504e657874436f6e66696744657363726970746f7210610120506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e550120746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e5d01204d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e676520746861742068616458206e6f74206265656e20656e6163746564207965742e00083445706f63684475726174696f6e0c75363420c8000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e0c60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e022454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e3c5820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743e3501202d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f2831296029a101202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e20606f6e5f66696e616c697a656029d8202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e041c496e6469636573011c496e646963657304204163636f756e74730001023c543a3a4163636f756e74496e6465788828543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20626f6f6c29000400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e011414636c61696d0414696e6465783c543a3a4163636f756e74496e646578489c2041737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00e0205061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f4202d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e207472616e73666572080c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e6465785061012041737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6ebc206973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002901202d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e68202d204f6e65207472616e73666572206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743ae4202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e8202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429302023203c2f7765696768743e10667265650414696e6465783c543a3a4163636f756e74496e6465784898204672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e006101205061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e001101202d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e008820456d6974732060496e646578467265656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e38666f7263655f7472616e736665720c0c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e64657818667265657a6510626f6f6c54590120466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479ec2068656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a8202d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e4501202d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e7c202d20557020746f206f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743af8202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229fc202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229302023203c2f7765696768743e18667265657a650414696e6465783c543a3a4163636f756e74496e64657844690120467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742068617665206170206e6f6e2d66726f7a656e206163636f756e742060696e646578602e00b0202d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e008c20456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e74202d20557020746f206f6e6520736c617368206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e010c34496e64657841737369676e656408244163636f756e744964304163636f756e74496e64657804b42041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e646578467265656404304163636f756e74496e64657804e82041206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e08304163636f756e74496e646578244163636f756e7449640429012041206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d041c4465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e142c4e6f7441737369676e656404902054686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e657204a82054686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e55736504742054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e7366657204cc2054686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e7404d42054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e052042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964d05765616b426f756e6465645665633c42616c616e63654c6f636b3c543a3a42616c616e63653e2c20543a3a4d61784c6f636b733e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010230543a3a4163636f756e7449642901426f756e6465645665633c52657365727665446174613c543a3a526573657276654964656e7469666965722c20543a3a42616c616e63653e2c20543a3a0a4d617852657365727665733e00040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e6cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e4101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973902020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e636504250120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cd020726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e636504a0205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504cc20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f73697408244163636f756e7449641c42616c616e636504210120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20526573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e726573657276656408244163636f756e7449641c42616c616e636504290120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea8205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e79526573657276657304b0204e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657306485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c0401000000000000000000000000000000000000000001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e000768456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173651c14526f756e6401000c753332100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e74506861736501005450686173653c543a3a426c6f636b4e756d6265723e0400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e00006c5265616479536f6c7574696f6e3c543a3a4163636f756e7449643e0400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f7400006c526f756e64536e617073686f743c543a3a4163636f756e7449643e04000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300000c75333204000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d65746164617461000058536f6c7574696f6e4f72536e617073686f7453697a6504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e544d696e696d756d556e7472757374656453636f7265000034456c656374696f6e53636f72650400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01083c7375626d69745f756e7369676e65640820736f6c7574696f6e64526177536f6c7574696f6e3c436f6d706163744f663c543e3e1c7769746e65737358536f6c7574696f6e4f72536e617073686f7453697a6538a8205375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00cc20546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e0041012054686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c7959012076616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e7361012074686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c61724420746f20616e20696e686572656e74292e005d0120546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c51012070616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c79a02070757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e4204e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f726504406d617962655f6e6578745f73636f7265544f7074696f6e3c456c656374696f6e53636f72653e14b4205365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00dc204469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f4205468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e011838536f6c7574696f6e53746f726564043c456c656374696f6e436f6d7075746510b8204120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e0041012049662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e20496620746865090120736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e44456c656374696f6e46696e616c697a6564045c4f7074696f6e3c456c656374696f6e436f6d707574653e0859012054686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c7365206966207468656420656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656404244163636f756e74496404290120416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656404244163636f756e74496404250120416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040c75333204c420546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040c75333204cc2054686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e1034556e7369676e6564506861736538543a3a426c6f636b4e756d62657210320000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e6564506861736538543a3a426c6f636b4e756d62657210320000000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c641c50657262696c6c10a0860100084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e384f6666636861696e52657065617438543a3a426c6f636b4e756d626572100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e106850726544697370617463684561726c795375626d697373696f6e0468205375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e74048c2057726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e0494205375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c4f637743616c6c57726f6e67457261049c204f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e64081c5374616b696e67011c5374616b696e677830486973746f7279446570746801000c75333210540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010530543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010230543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010530543a3a4163636f756e7449647c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010530543a3a4163636f756e7449643856616c696461746f7250726566730008000004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010530543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e00040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e2843757272656e74457261000020457261496e6465780400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e24416374697665457261000034416374697665457261496e666f040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e64657800010520457261496e6465783053657373696f6e496e646578000400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301020520457261496e64657830543a3a4163636f756e7449643856616c696461746f725072656673050800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010520457261496e6465783042616c616e63654f663c543e0004000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010520457261496e64657874457261526577617264506f696e74733c543a3a4163636f756e7449643e0014000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010520457261496e6465783042616c616e63654f663c543e00400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f72636545726101001c466f7263696e6704000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010520457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2905040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e05040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010530543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101058c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01003053657373696f6e496e64657810000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0031012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6053657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01002052656c6561736573040510cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076362e302e3020666f72206e6577206e6574776f726b732e015c10626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e5865012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e004020456d6974732060426f6e646564602e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e005101204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e6564410120756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e4c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a3101202d20526561643a20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c2043757272656e74204572612c20486973746f72792044657074682c204c6f636b73e0202d2057726974653a20426f6e6465642c2050617965652c205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e5465012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c657220616e64f82069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004020456d6974732060426f6e646564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e34202d2d2d2d2d2d2d2d2d2d2d2d2c204442205765696768743a1501202d20526561643a2045726120456c656374696f6e205374617475732c20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c204c6f636b73a4202d2057726974653a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e805501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004820456d6974732060556e626f6e646564602e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652e5101202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c6564207669615c2020206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a1d01202d20526561643a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e744572612c204c6f636b732c2042616c616e63654f662053746173682ca4202d2057726974653a204c6f636b732c204c65646765722c2042616c616e63654f662053746173682c28203c2f7765696768743e4477697468647261775f756e626f6e64656404486e756d5f736c617368696e675f7370616e730c7533327c2d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004c20456d697473206057697468647261776e602e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d090120436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766520205570646174653a2501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c204c6f636b732c205b4f726967696e204163636f756e745da8202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657218204b696c6c3a4501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c20426f6e6465642c20536c617368696e67205370616e732c205b4f726967696e8c2020204163636f756e745d2c204c6f636b732c2042616c616e63654f662073746173685101202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732cb02020205b4f726967696e204163636f756e745d2c204c6f636b732c2042616c616e63654f662073746173682e74202d2057726974657320456163683a205370616e536c617368202a20530d01204e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f72507265667344e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e30202d2d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a90202d20526561643a2045726120456c656374696f6e205374617475732c204c656467657280202d2057726974653a204e6f6d696e61746f72732c2056616c696461746f7273302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e4c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00510120456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e20546869732063616e206f6e6c792062652063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e3101202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e2901012077686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e28202d2d2d2d2d2d2d2d2d34205765696768743a204f284e2984207768657265204e20697320746865206e756d626572206f6620746172676574732c204442205765696768743ac8202d2052656164733a2045726120456c656374696f6e205374617475732c204c65646765722c2043757272656e742045726184202d205772697465733a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e146368696c6c0044c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e24202d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a88202d20526561643a20457261456c656374696f6e5374617475732c204c656467657280202d2057726974653a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e247365745f7061796565041470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e40b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e28202d2d2d2d2d2d2d2d2d3c202d205765696768743a204f28312934202d204442205765696768743a4c20202020202d20526561643a204c65646765724c20202020202d2057726974653a205061796565302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654090202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743af4202d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f8202d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e209420536574732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e34205765696768743a204f2831295c2057726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e7404286164646974696f6e616c30436f6d706163743c7533323e1cac20496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e842053616d65206173205b607365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e547363616c655f76616c696461746f725f636f756e740418666163746f721c50657263656e741cd4205363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e842053616d65206173205b607365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e34666f7263655f6e6f5f657261730024b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e34666f7263655f6e65775f65726100284d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312944202d20577269746520466f726365457261302023203c2f7765696768743e447365745f696e76756c6e657261626c65730434696e76756c6e657261626c6573445665633c543a3a4163636f756e7449643e20cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e1c202d204f2856295c202d2057726974653a20496e76756c6e657261626c6573302023203c2f7765696768743e34666f7263655f756e7374616b650814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c753332280d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743eec204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b82052656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b738501205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c204163636f756e742c204c6f636b736c2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730020050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e34982043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b42043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e00050120506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e5420436f6d706c65786974793a204f2855202b205329b82077697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d420616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e68202d20526561643a20556e6170706c69656420536c61736865736c202d2057726974653a20556e6170706c69656420536c6173686573302023203c2f7765696768743e387061796f75745f7374616b657273083c76616c696461746f725f737461736830543a3a4163636f756e7449640c65726120457261496e64657870110120506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e004d01202d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f290120202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e3501202d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e00590120546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e20696678206974206973206e6f74206f6e65206f6620746865207374616b6572732e00010120546869732063616e206f6e6c792062652063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e0101202d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e30202d2d2d2d2d2d2d2d2d2d2d1d01204e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f722920205765696768743a88202d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c4202d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e292c204442205765696768743a2901202d20526561643a20457261456c656374696f6e5374617475732c2043757272656e744572612c20486973746f727944657074682c204572617356616c696461746f725265776172642c2d01202020202020202020457261735374616b657273436c69707065642c2045726173526577617264506f696e74732c204572617356616c696461746f725072656673202838206974656d73291101202d205265616420456163683a20426f6e6465642c204c65646765722c2050617965652c204c6f636b732c2053797374656d204163636f756e74202835206974656d7329d8202d20577269746520456163683a2053797374656d204163636f756e742c204c6f636b732c204c6564676572202833206974656d73290051012020204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e5901202020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e38e0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00550120546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722c20616e642069742063616e206265206f6e6c792063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ed4202d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b7394202d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a010120202020202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c204c6f636b732c205b4f726967696e204163636f756e745db820202020202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e447365745f686973746f72795f646570746808446e65775f686973746f72795f646570746844436f6d706163743c457261496e6465783e485f6572615f6974656d735f64656c6574656430436f6d706163743c7533323e543101205365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e80207768656e2060486973746f727944657074686020697320726564756365642e003020506172616d65746572733a1101202d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e4901202d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e450120202020546869732073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c6445012020202065726120686973746f72792e204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e2054727573746564206279a02020202060526f6f746020746f207265706f727420616e206163637572617465206e756d6265722e0054204f726967696e206d75737420626520726f6f742e002c2023203c7765696768743ee0202d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d20333c202d205765696768743a204f28452934202d204442205765696768743aa020202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074687020202020202d205772697465733a20486973746f7279204465707468310120202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f725072656673810120202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c2045726173537461727453657373696f6e496e646578302023203c2f7765696768743e28726561705f73746173680814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533323c61012052656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e6101205468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f820616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e009020546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e000101202d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002c2023203c7765696768743e250120436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e2c204442205765696768743ad8202d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b73a501202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c205374617368204163636f756e742c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e106b69636b040c77686fa05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e34e42052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e490120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e2054686520636f6e74726f6c6c657298206163636f756e742073686f756c6420726570726573656e7420612076616c696461746f722e005101202d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c420202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e005901204e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f7c20626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e0124244572615061796f75740c20457261496e6465781c42616c616e63651c42616c616e63650c59012054686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c4207468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642eac205c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d1852657761726408244163636f756e7449641c42616c616e636504fc20546865207374616b657220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d14536c61736808244163636f756e7449641c42616c616e6365082501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e58205c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6490206e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d3c5374616b696e67456c656374696f6e0004882041206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e64656408244163636f756e7449641c42616c616e636510d420416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d005101204e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c25012069742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e64656408244163636f756e7449641c42616c616e636504dc20416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e08244163636f756e7449641c42616c616e6365085d0120416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560b02066726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b656408244163636f756e744964244163636f756e744964040d012041206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d143853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e20457261496e64657810a8000000140101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e00bc20546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2d012053657420746f203020696620736c61736865732073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f723820696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f720c753332100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00690120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e20636c61696d2101207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e730c753332101000000004b4204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e7320706572206e6f6d696e61746f722e50344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e44496e73756666696369656e7456616c756504cc2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e64656454617267657404cc20417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264045c20496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73047c20496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e697175650484204974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564040d01205265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f7279446570746804c420496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e7304b420496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e204261645374617465043d0120496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e7954617267657473049820546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740441012041206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e091c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010538543a3a56616c696461746f7249641c543a3a4b657973000400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010550284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496400040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e0108207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e38e82053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a4202d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b6579736084202d204462526561647320706572206b65792069643a20604b65794f776e65726088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e2870757267655f6b6579730030cc2052656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743eb4202d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a4202d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e74608c202d20446257726974657320706572206b65792069643a20604b65794f776e64657260302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578086501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e001430496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e184e6f4b65797304a8204e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e74041d01204b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e0a2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001052450726f70496e64657884285665633c543a3a4163636f756e7449643e2c2042616c616e63654f663c543e290004000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001061c543a3a48617368e8507265696d6167655374617475733c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001053c5265666572656e64756d496e646578d45265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173682c2042616c616e63654f663c543e3e0004000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010530543a3a4163636f756e744964c8566f74696e673c42616c616e63654f663c543e2c20543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b7300010530543a3a4163636f756e74496438543a3a426c6f636b4e756d626572000400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001061c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101061c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e00002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01641c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e2ca02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e00190120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573748420686176652066756e647320746f20636f76657220746865206465706f7369742e00d8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e1901202d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e004820456d697473206050726f706f736564602e003c205765696768743a20604f28702960187365636f6e64082070726f706f73616c48436f6d706163743c50726f70496e6465783e4c7365636f6e64735f75707065725f626f756e6430436f6d706163743c7533323e28b8205369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e6465721501206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00cc202d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e4501202d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e2074686973290120202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e002101205765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f7465644163636f756e74566f74653c42616c616e63654f663c543e3e24350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00e0202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e88202d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e003101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578205101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e00fc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d4202d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0040205765696768743a20604f283129602e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368243101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e00ec20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e001901205765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2ebc2020204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a486173682c5901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e00f020546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a486173682c4901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e00ec20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f2831296028666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265723c5101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d420546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f982020206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e004420456d697473206053746172746564602e003c205765696768743a20604f28312960347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736824bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00dc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e003101202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e004020456d69747320605665746f6564602e000101205765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e1c542052656d6f76652061207265666572656e64756d2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d8202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e00482023205765696768743a20604f283129602e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e6465781ca02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c8202d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004d01205765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c08746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e1c62616c616e63653042616c616e63654f663c543e503d012044656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e005901205468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865cc2074696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e00610120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a782020202d2062652064656c65676174696e6720616c72656164793b206f725d012020202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c6964617465649820202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e004901202d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5901202d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e2074686545012020206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e5501202d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374c82020206e6f74206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e004c20456d697473206044656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c65676174650030d020556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e00610120546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64e0206f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265582063757272656e746c792064656c65676174696e672e005420456d6974732060556e64656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c7300147420436c6561727320616c6c207075626c69632070726f706f73616c732e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e0040205765696768743a20604f283129602e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e2861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e040d012053616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e3045012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265410120696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e39012074686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c40206e6f2066656520697320706169642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e0431012053616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d616765083470726f706f73616c5f686173681c543a3a486173686070726f706f73616c5f6c656e5f75707065725f626f756e6430436f6d706163743c7533323e3cf42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e2d01202d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e010120202045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e006020456d6974732060507265696d616765526561706564602e00b8205765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b041874617267657430543a3a4163636f756e7449641ca420556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00bc202d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00c0205765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f74650414696e6465783c5265666572656e64756d496e6465786c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e00102049663a8c202d20746865207265666572656e64756d207761732063616e63656c6c65642c206f7280202d20746865207265666572656e64756d206973206f6e676f696e672c206f7294202d20746865207265666572656e64756d2068617320656e6465642073756368207468617401012020202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d82020202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f72882020202d20746865206163636f756e74206d61646520612073706c697420766f74656101202e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655c2066756e6473206265696e6720617661696c61626c652e00ac2049662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643af0202d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64e0202d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64c0202d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f7665725d01202e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c76655d01202a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de8206f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f74658c207265676973746572656420666f72207265666572656e64756d2060696e646578602e00f8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465081874617267657430543a3a4163636f756e74496414696e6465783c5265666572656e64756d496e6465783c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e0051012049662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f3101206072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c590120656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f729c20626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e005101202d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f72582020207265666572656e64756d2060696e646578602ef8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c083470726f706f73616c5f686173681c543a3a4861736814696e6465783c5265666572656e64756d496e64657804510120456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c697374083470726f706f73616c5f686173681c543a3a486173683c6d617962655f7265665f696e6465785c4f7074696f6e3c5265666572656e64756d496e6465783e3c4901205065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e67402070726f706f73656420616761696e2e0055012049662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e6755012072656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c6c207468656e2069742077696c6c2062652063616e63656c6c65642e00f020546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00fc202d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e4901202d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652c2063616e63656c6c65642e004501205765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d6520697420686173206154202020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c042870726f705f696e64657848436f6d706163743c50726f70496e6465783e1c4c2052656d6f766520612070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d4202d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e8205765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e28296001482050726f706f736564082450726f70496e6465781c42616c616e63650431012041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e047d012041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c206465706f7369746f72735c5d3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404c42041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564043c5265666572656e64756d496e64657804bc2041207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564083c5265666572656e64756d496e64657810626f6f6c04c820412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c2069735f6f6b5c5d2444656c65676174656408244163636f756e744964244163636f756e74496404210120416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c65676174656404244163636f756e74496404f820416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657204110120416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504610120412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636508150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e94205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964082d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb4205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d20556e6c6f636b656404244163636f756e74496404bc20416e205c5b6163636f756e745c5d20686173206265656e20756e6c6f636b6564207375636365737366756c6c792e2c426c61636b6c697374656404104861736804d820412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e203c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e5446617374547261636b566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f7465730c753332106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e842056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f7420657869737420426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e7420546f6f4561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e67244e6f744c6f636b656404a42054686520746172676574206163636f756e7420646f6573206e6f7420686176652061206c6f636b2e284e6f744578706972656404f020546865206c6f636b206f6e20746865206163636f756e7420746f20626520756e6c6f636b656420686173206e6f742079657420657870697265642e204e6f74566f74657204c82054686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e04cc20546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67048c20546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e647304010120546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e6704a420546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f746573457869737408590120546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696cec207468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f77656404dc2054686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e736504982044656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e64045420496e76616c696420757070657220626f756e642e3c4d6178566f746573526561636865640484204d6178696d756d206e756d626572206f6620766f74657320726561636865642e38496e76616c69645769746e6573730490205468652070726f7669646564207769746e65737320646174612069732077726f6e672e40546f6f4d616e7950726f706f73616c730494204d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e0b1c436f756e63696c014c496e7374616e636531436f6c6c656374697665182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c38f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c690120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e78510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0c48546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c38f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c690120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e78510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0d24456c656374696f6e730124456c656374696f6e73141c4d656d626572730100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010530543a3a4163636f756e74496484566f7465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5d0120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe4207365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e0061012055706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e7420697351012072657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792e59012020202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e641501202020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e005101204966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e670059012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865ac206c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002c2023203c7765696768743e550120576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e302023203c2f7765696768743e3072656d6f76655f766f7465720014702052656d6f766520606f726967696e60206173206120766f7465722e00bc20546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00010120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e646964616379043c63616e6469646174655f636f756e7430436f6d706163743c7533323e3c1501205375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e00610120416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702cd0206f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e67006101204576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5d0120746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002c2023203c7765696768743e0d0120546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379042872656e6f756e63696e672852656e6f756e63696e674451012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a004d01202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e6501202d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e64902020206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e5901202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e550120202053696d696c617220746f205b6072656d6f76655f6d656d62657273605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c794d01202020757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c20746865206e65787420726f756e642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002c2023203c7765696768743ee4205468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e3472656d6f76655f6d656d626572080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653c6861735f7265706c6163656d656e7410626f6f6c385d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c61636573207468650101206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e550120496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d42077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e302023203c2f7765696768743e50636c65616e5f646566756e63745f766f74657273082c5f6e756d5f766f746572730c753332305f6e756d5f646566756e63740c75333228490120436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865b0206465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e000501205468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002c2023203c7765696768743e61012054686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e011c1c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e1459012041206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e59012074686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e6564490120666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e64590120736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f3020626567696e20776974682e24456d7074795465726d00083501204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dcc20604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f720004e820496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404244163636f756e7449640855012041205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f72342060456d7074795465726d602e2452656e6f756e63656404244163636f756e744964049c20536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408244163636f756e7449641c42616c616e6365105d012041205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722c2072756e6e65722d75702e00e8204e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408244163636f756e7449641c42616c616e63650459012041205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e1c2050616c6c65744964384c6f636b4964656e74696669657220706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d0300000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173653042616c616e63654f663c543e4000f0436de36a0100000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f723042616c616e63654f663c543e400000cc7b9fae000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d626572730c753332100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355700c75333210070000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e38543a3a426c6f636b4e756d62657210801303000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e4430556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d6265720438204e6f742061206d656d6265722e48496e76616c69645769746e6573734461746104e4205468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e7404d0205468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67040101205468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e740401012050726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e0e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970081c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000030543a3a4163636f756e744964040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e011c286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00a0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e74496414c02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a4204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e001101205072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b6579040c6e657730543a3a4163636f756e74496414d82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e002101205072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d65040c77686f30543a3a4163636f756e7449640cc02053657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d65000c982052656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e000834416c72656164794d656d626572044820416c72656164792061206d656d6265722e244e6f744d656d6265720438204e6f742061206d656d6265722e0f1c4772616e647061011c4772616e6470611814537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001051453657449643053657373696f6e496e6465780004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66240d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e00110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e306e6f74655f7374616c6c6564081464656c617938543a3a426c6f636b4e756d6265726c626573745f66696e616c697a65645f626c6f636b5f6e756d62657238543a3a426c6f636b4e756d6265721c1d01204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c69747920676164676574206861732901207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e672101206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c617915012073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e6720746865290120666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f7465727329012077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e5c204f6e6c792063616c6c61626c6520627920726f6f742e010c384e6577417574686f7269746965730434417574686f726974794c69737404d8204e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e001c2c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e10205472656173757279012054726561737572790c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001053450726f706f73616c496e6465789c50726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100a8426f756e6465645665633c50726f706f73616c496e6465782c20543a3a4d6178417070726f76616c733e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756560436f6d706163743c42616c616e63654f663c542c20493e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129b4202d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460ec202d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e7460302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e24fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129d0202d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d4202d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e285d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e50202d20436f6d706c65786974793a204f2831292e90202d20446252656164733a206050726f706f73616c73602c2060417070726f76616c73605c202d20446257726974653a2060417070726f76616c7360302023203c2f7765696768743e011c2050726f706f736564043450726f706f73616c496e6465780484204e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67041c42616c616e6365043d01205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964041d0120536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504250120412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74041c42616c616e636504b020536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572041c42616c616e6365083101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e54205c5b6275646765745f72656d61696e696e675c5d1c4465706f736974041c42616c616e636504b020536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d143050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3c42616c616e63654f663c542c20493e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c657449642050616c6c657449642070792f7472737279041901205468652074726561737572792773206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e0c70496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c73048420546f6f206d616e7920617070726f76616c7320696e207468652071756575652e1124436f6e7472616374730124436f6e74726163747314305072697374696e65436f64650001062c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001062c436f6465486173683c543e4c5072656661625761736d4d6f64756c653c543e0004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010530543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e0004000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e3444656c6574696f6e51756575650100505665633c44656c65746564436f6e74726163743e040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7359012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f696e697469616c697a65602e01101063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e54696e7374616e74696174655f776974685f636f64651424656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e10636f64651c5665633c75383e10646174611c5665633c75383e1073616c741c5665633c75383e54350120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d2074686520737570706c6965642060636f646560206f7074696f6e616c6c79207472616e7366657272696e673820736f6d652062616c616e63652e000501205468697320697320746865206f6e6c792066756e6374696f6e20746861742063616e206465706c6f79206e657720636f646520746f2074686520636861696e2e0034202320506172616d6574657273006101202a2060656e646f776d656e74603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f20746865206e65776c79206372656174656420636f6e74726163742e1901202a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722ed0202a2060636f6465603a2054686520636f6e747261637420636f646520746f206465706c6f7920696e207261772062797465732ef8202a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e747261637420636f6e7374727563746f722e3501202a206073616c74603a205573656420666f722074686520616464726573732064657269766174696f6e2e20536565205b6050616c6c65743a3a636f6e74726163745f61646472657373605d2e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a007501202d2054686520737570706c6965642060636f64656020697320696e737472756d656e7465642c206465706c6f7965642c20616e6420612060636f64655f6861736860206973206372656174656420666f72207468617420636f64652e5d01202d204966207468652060636f64655f686173686020616c726561647920657869737473206f6e2074686520636861696e2074686520756e6465726c79696e672060636f6465602077696c6c206265207368617265642e4d01202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e6465722c20636f64655f6861736820616e64207468652073616c742e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732ed4202d205468652060656e646f776d656e7460206973207472616e7366657272656420746f20746865206e6577206163636f756e742e4501202d2054686520606465706c6f79602066756e6374696f6e20697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e2c696e7374616e74696174651424656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e1073616c741c5665633c75383e14010120496e7374616e746961746573206120636f6e74726163742066726f6d20612070726576696f75736c79206465706c6f796564207761736d2062696e6172792e00390120546869732066756e6374696f6e206973206964656e746963616c20746f205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2062757420776974686f7574207468654d0120636f6465206465706c6f796d656e7420737465702e20496e73746561642c207468652060636f64655f6861736860206f6620616e206f6e2d636861696e206465706c6f796564207761736d2062696e61727948206d75737420626520737570706c6965642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e244d0120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b39012070726f6475636572206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e004d0120496e2063617365206f662061207375636365737366756c206576696374696f6e206e6f20666565732061726520636861726765642066726f6d207468652073656e6465722e20486f77657665722c20746865450120726577617264206973206361707065642062792074686520746f74616c20616d6f756e74206f662072656e7420746861742077617320706169642062792074686520636f6e7472616374207768696c65382069742077617320616c6976652e00550120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c205b604572726f723a3a436f6e74726163744e6f74457669637461626c65605dec2069732072657475726e656420616e64207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e012030496e7374616e74696174656408244163636f756e744964244163636f756e74496404390120436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e205c5b6465706c6f7965722c20636f6e74726163745c5d1c4576696374656404244163636f756e74496404190120436f6e747261637420686173206265656e206576696374656420616e64206973206e6f7720696e20746f6d6273746f6e652073746174652e205c5b636f6e74726163745c5d285465726d696e6174656408244163636f756e744964244163636f756e74496430e820436f6e747261637420686173206265656e207465726d696e6174656420776974686f7574206c656176696e67206120746f6d6273746f6e652e68205c5b636f6e74726163742c2062656e65666963696172795c5d0024202320506172616d7300c0202d2060636f6e7472616374603a2054686520636f6e7472616374207468617420776173207465726d696e617465642e3101202d206062656e6566696369617279603a20546865206163636f756e7420746861742072656365697665642074686520636f6e7472616374732072656d61696e696e672062616c616e63652e001c2023204e6f7465002d0120546865206f6e6c792077617920666f72206120636f6e747261637420746f2062652072656d6f76656420776974686f7574206120746f6d6273746f6e6520616e6420656d697474696e67ac2074686973206576656e742069732062792063616c6c696e6720607365616c5f7465726d696e617465602e20526573746f72656410244163636f756e744964244163636f756e74496410486173681c42616c616e636524bc20526573746f726174696f6e206f66206120636f6e747261637420686173206265656e207375636365737366756c2eb8205c5b726573746f7265722c20646573742c20636f64655f686173682c2072656e745f616c6c6f77616e63655c5d0024202320506172616d7300d0202d2060726573746f726572603a204163636f756e74204944206f662074686520726573746f72696e6720636f6e74726163742ebc202d206064657374603a204163636f756e74204944206f662074686520726573746f72656420636f6e74726163742ecc202d2060636f64655f68617368603a20436f64652068617368206f662074686520726573746f72656420636f6e74726163742ef4202d206072656e745f616c6c6f77616e6365603a2052656e7420616c6c6f77616e6365206f662074686520726573746f72656420636f6e74726163742e28436f646553746f72656404104861736804f020436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e205c5b636f64655f686173685c5d3c5363686564756c6555706461746564040c75333218c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e30205c5b76657273696f6e5c5d0024202320506172616d7300d0202d206076657273696f6e603a205468652076657273696f6e206f6620746865206e65776c7920736574207363686564756c652e3c436f6e7472616374456d697474656408244163636f756e7449641c5665633c75383e20a0204120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e4c205c5b636f6e74726163742c20646174615c5d0024202320506172616d7300cc202d2060636f6e7472616374603a2054686520636f6e7472616374207468617420656d697474656420746865206576656e742e3101202d206064617461603a204461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e7472616374b82020202020202020202020636f6d70696c6174696f6e206973206e656564656420746f206465636f64652069742e2c436f646552656d6f76656404104861736810b0204120636f6465207769746820746865207370656369666965642068617368207761732072656d6f7665642e38205c5b636f64655f686173685c5d00550120546869732068617070656e73207768656e20746865206c61737420636f6e747261637420746861742075736573207468697320636f64652068617368207761732072656d6f766564206f7220657669637465642e28205363686564756c652c5363686564756c653c543e710a0400000000020000000100008000000010000000001000000001000020000000200000000040000000000200020000008e060000e2fc0100cd0f030009170000861d0000030c00001f1800005629000082000000b059010055810200c00b000029070000590800003b060000b8160000a61a0000600700000de8b607b10600007d060000e6090000dc070000d5050000d70500005b06000043090000390900001c0900004d0900001d09000030090000180900004109000038090000680900007d080000f80800008e08000003220000371e0000fd210000e71d0000a6080000ab080000d5080000db090000d8090000190a00001e0b00000c09000052f72400000000006ee52400000000009c212400000000003039500000000000702a240000000000644f240000000000ce3a240000000000dc54240000000000f0182400000000001e31240000000000b0c14700000000009a12120000000000c0406d0000000000f4000000000000007854420000000000e302000000000000f03a7d2000000000672000000000000040a9e729000000002c1e000000000000650f000000000000ac13aa09000000006c835b0000000000c229870000000000dad6c907000000009409000000000000c0681300000000007c0b1900000000000210b20900000000b502000000000000fee1300800000000c274080200000000db050000000000006c548a0a00000000aab1da0f00000000f50e000000000000608b390800000000500200000000000002030000000000008e63f022000000007e2100000000000067020000000000002c030000000000002909000000000000a41f230000000000c3120000000000007ca6230000000000020d00000000000000bd1f00000000001506000000000000a6a81f0000000000fc05000000000000046820436f7374207363686564756c6520616e64206c696d6974732e4c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000f0e8857a9c0200000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e484465706f736974506572436f6e74726163743042616c616e63654f663c543e4000f0e8857a9c02000000000000000000202101205468652062616c616e636520657665727920636f6e7472616374206e6565647320746f206465706f73697420746f207374617920616c69766520696e646566696e6974656c792e005101205468697320697320646966666572656e742066726f6d20746865205b6053656c663a3a546f6d6273746f6e654465706f736974605d20626563617573652074686973206f6e6c79206e6565647320746f2062654501206465706f7369746564207768696c652074686520636f6e747261637420697320616c6976652e20436f73747320666f72206164646974696f6e616c2073746f726167652061726520616464656420746f402074686973206261736520636f73742e006d01205468697320697320612073696d706c652077617920746f20656e73757265207468617420636f6e747261637473207769746820656d7074792073746f72616765206576656e7475616c6c79206765742064656c657465642062797101206d616b696e67207468656d207061792072656e742e2054686973206372656174657320616e20696e63656e7469766520746f2072656d6f7665207468656d206561726c7920696e206f7264657220746f20736176652072656e742e544465706f73697450657253746f72616765427974653042616c616e63654f663c543e400060defb740500000000000000000000185501205468652062616c616e6365206120636f6e7472616374206e6565647320746f206465706f736974207065722073746f72616765206279746520746f207374617920616c69766520696e646566696e6974656c792e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e544465706f73697450657253746f726167654974656d3042616c616e63654f663c543e4000f0ab75a40d000000000000000000000c5501205468652062616c616e6365206120636f6e7472616374206e6565647320746f206465706f736974207065722073746f72616765206974656d20746f207374617920616c69766520696e646566696e6974656c792e00310120497420776f726b73207468652073616d65206173205b6053656c663a3a4465706f73697450657253746f7261676542797465605d2062757420666f722073746f72616765206974656d732e3052656e744672616374696f6e1c50657262696c6c1085040000140d0120546865206672616374696f6e206f6620746865206465706f73697420746861742073686f756c6420626520757365642061732072656e742070657220626c6f636b2e005101205768656e206120636f6e7472616374206861736e277420656e6f7567682062616c616e6365206465706f736974656420746f207374617920616c69766520696e646566696e6974656c79206974206e65656473450120746f207061792070657220626c6f636b20666f72207468652073746f7261676520697420636f6e73756d65732074686174206973206e6f7420636f766572656420627920746865206465706f7369742e590120546869732064657465726d696e657320686f77206869676820746869732072656e74207061796d656e742069732070657220626c6f636b2061732061206672616374696f6e206f6620746865206465706f7369742e3c5375726368617267655265776172643042616c616e63654f663c543e40005cb2ec22000000000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e4844656c6574696f6e517565756544657074680c753332108504000004f420546865206d6178696d756d206e756d626572206f6620747269657320746861742063616e2062652071756575656420666f722064656c6574696f6e2e4c44656c6574696f6e5765696768744c696d6974185765696768742000d0ed902e000000044d0120546865206d6178696d756d20616d6f756e74206f662077656967687420746861742063616e20626520636f6e73756d65642070657220626c6f636b20666f72206c617a7920747269652072656d6f76616c2e8458496e76616c69645363686564756c6556657273696f6e0405012041206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e54496e76616c6964537572636861726765436c61696d04550120416e206f726967696e206d757374206265207369676e6564206f7220696e686572656e7420616e6420617578696c696172792073656e646572206f6e6c792070726f7669646564206f6e20696e686572656e742e54496e76616c6964536f75726365436f6e747261637404dc2043616e6e6f7420726573746f72652066726f6d206e6f6e6578697374696e67206f7220746f6d6273746f6e6520636f6e74726163742e68496e76616c696444657374696e6174696f6e436f6e747261637404c42043616e6e6f7420726573746f726520746f206e6f6e6578697374696e67206f7220616c69766520636f6e74726163742e40496e76616c6964546f6d6273746f6e65046020546f6d6273746f6e657320646f6e2774206d617463682e54496e76616c6964436f6e74726163744f726967696e04bc20416e206f726967696e20547269654964207772697474656e20696e207468652063757272656e7420626c6f636b2e204f75744f6647617304bc2054686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c04050120546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e6442656c6f7753756273697374656e63655468726573686f6c6410210120506572666f726d696e672074686520726571756573746564207472616e7366657220776f756c6420686176652062726f756768742074686520636f6e74726163742062656c6f773d01207468652073756273697374656e6365207468726573686f6c642e204e6f207472616e7366657220697320616c6c6f77656420746f20646f207468697320696e206f7264657220746f20616c6c6f77450120666f72206120746f6d6273746f6e6520746f20626520637265617465642e2055736520607365616c5f7465726d696e6174656020746f2072656d6f7665206120636f6e747261637420776974686f757470206c656176696e67206120746f6d6273746f6e6520626568696e642e504e6577436f6e74726163744e6f7446756e64656408390120546865206e65776c79206372656174656420636f6e74726163742069732062656c6f77207468652073756273697374656e6365207468726573686f6c6420616674657220657865637574696e6721012069747320636f6e74727563746f722e204e6f20636f6e7472616374732061726520616c6c6f77656420746f2065786973742062656c6f772074686174207468726573686f6c642e385472616e736665724661696c65640c250120506572666f726d696e672074686520726571756573746564207472616e73666572206661696c656420666f72206120726561736f6e206f726967696e6174696e6720696e2074686531012063686f73656e2063757272656e637920696d706c656d656e746174696f6e206f66207468652072756e74696d652e204d6f73742070726f6261626c79207468652062616c616e63652069738c20746f6f206c6f77206f72206c6f636b732061726520706c61636564206f6e2069742e4c4d617843616c6c44657074685265616368656408250120506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d697498206f6620776861742069732073706563696669656420696e20746865207363686564756c652e40436f6e74726163744e6f74466f756e6404c0204e6f20636f6e74726163742077617320666f756e64206174207468652073706563696669656420616464726573732e4c436f6e74726163744973546f6d6273746f6e6510b0204120746f6d6273746f6e65206578697374206174207468652073706563696669656420616464726573732e00410120546f6d6273746f6e652063616e6e6f742062652063616c6c65642e20416e796f6e652063616e2075736520607365616c5f726573746f72655f746f6020696e206f7264657220746f20726576697665582074686520636f6e74726163742c2074686f7567682e2c52656e744e6f7450616964182501205468652063616c6c656420636f6e747261637420646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920666f72206974732073746f726167652e0039012054686520636f6e74726163742072616e206f7574206f662062616c616e636520616e64206973207468657265666f726520656c696769626c6520666f72206576696374696f6e20696e746f20612d0120746f6d6273746f6e652e20416e796f6e652063616e2065766963742074686520636f6e7472616374206279207375626d697474696e6720612060636c61696d5f737572636861726765602d012065787472696e7369632e20416c7465726e61746976656c792c206120706c61696e2062616c616e6365207472616e736665722063616e206265207573656420696e206f7264657220746ff420696e6372656173652074686520636f6e7472616374732066756e647320736f20746861742069742063616e2062652063616c6c656420616761696e2e30436f6465546f6f4c617267650841012054686520636f646520737570706c69656420746f2060696e7374616e74696174655f776974685f636f646560206578636565647320746865206c696d69742073706563696669656420696e20746865482063757272656e74207363686564756c652e30436f64654e6f74466f756e6404c8204e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473042901204120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564042d0120496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564048c20436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c6172676504d0205468652073697a6520646566696e656420696e2060543a3a4d617856616c756553697a6560207761732065786365656465642e405265656e7472616e636544656e6965640c41012054686520616374696f6e20706572666f726d6564206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420706572666f726d696e6720697420697320616c72656164793d01206f6e207468652063616c6c20737461636b2e2054686f736520616374696f6e732061726520636f6e74726163742073656c66206465737472756374696f6e20616e6420726573746f726174696f6e40206f66206120746f6d6273746f6e652e40496e707574416c72656164795265616404210120607365616c5f696e70757460207761732063616c6c65642074776963652066726f6d207468652073616d6520636f6e747261637420657865637574696f6e20636f6e746578742e5052616e646f6d5375626a656374546f6f4c6f6e6704dc20546865207375626a6563742070617373656420746f20607365616c5f72616e646f6d60206578636565647320746865206c696d69742e34546f6f4d616e79546f706963730421012054686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e3c4475706c6963617465546f706963730431012054686520746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e74736020636f6e7461696e73206174206c65617374206f6e65206475706c69636174652e404e6f436861696e457874656e73696f6e0c49012054686520636861696e20646f6573206e6f742070726f76696465206120636861696e20657874656e73696f6e2e2043616c6c696e672074686520636861696e20657874656e73696f6e20726573756c7473510120696e2074686973206572726f722e204e6f74652074686174207468697320757375616c6c79202073686f756c646e27742068617070656e206173206465706c6f79696e67207375636820636f6e747261637473342069732072656a65637465642e4444656c6574696f6e517565756546756c6c1405012052656d6f76616c206f66206120636f6e7472616374206661696c65642062656361757365207468652064656c6574696f6e2071756575652069732066756c6c2e00550120546869732063616e2068617070656e207768656e206569746865722063616c6c696e67205b6050616c6c65743a3a636c61696d5f737572636861726765605d206f7220607365616c5f7465726d696e617465602e5101205468652071756575652069732066696c6c65642062792064656c6574696e6720636f6e74726163747320616e6420656d7074696564206279206120666978656420616d6f756e74206561636820626c6f636b2e250120547279696e6720616761696e20647572696e6720616e6f7468657220626c6f636b20697320746865206f6e6c792077617920746f207265736f6c766520746869732069737375652e50436f6e74726163744e6f74457669637461626c65102d01204120636f6e747261637420636f756c64206e6f74206265206576696374656420626563617573652069742068617320656e6f7567682062616c616e636520746f207061792072656e742e00250120546869732063616e2062652072657475726e65642066726f6d205b6050616c6c65743a3a636c61696d5f737572636861726765605d20626563617573652074686520746172676574c420636f6e74726163742068617320656e6f7567682062616c616e636520746f2070617920666f72206974732072656e742e4053746f7261676545786861757374656410350120412073746f72616765206d6f64696669636174696f6e20657868617573746564207468652033326269742074797065207468617420686f6c6473207468652073746f726167652073697a652e00350120546869732063616e206569746865722068617070656e207768656e2074686520616363756d756c617465642073746f7261676520696e20627974657320697320746f6f206c61726765206f72ac207768656e206e756d626572206f662073746f72616765206974656d7320697320746f6f206c617267652e444475706c6963617465436f6e747261637404cc204120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e5c5465726d696e61746564496e436f6e7374727563746f720cbc204120636f6e74726163742073656c66206465737472756374656420696e2069747320636f6e7374727563746f722e00290120546869732063616e2062652074726967676572656420627920612063616c6c20746f20607365616c5f7465726d696e61746560206f7220607365616c5f726573746f72655f746f602e5c44656275674d657373616765496e76616c69645554463804410120546865206465627567206d6573736167652073706563696669656420746f20607365616c5f64656275675f6d6573736167656020646f657320636f6e7461696e20696e76616c6964205554462d382e12105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0110107375646f041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e547375646f5f756e636865636b65645f776569676874081063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1c5f776569676874185765696768742839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e310120546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b4205375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292ed0202d2054686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e010c14537564696404384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d284b65794368616e67656404244163636f756e74496404010120546865205c5b7375646f65725c5d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e6504384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e741320496d4f6e6c696e650120496d4f6e6c696e6510384865617274626561744166746572010038543a3a426c6f636b4e756d62657210000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002053053657373696f6e496e6465782441757468496e6465781c5665633c75383e05040008f020466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e6465786020746f8020606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102053053657373696f6e496e6465783856616c696461746f7249643c543e0c75333205100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265242c2023203c7765696768743e4101202d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e290101202020616e642045206973206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608c2020202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60b02020202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e677468206045603d01202d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5c202020605265636569766564486561727462656174736084202d2044625772697465733a206052656365697665644865617274626561747360302023203c2f7765696768743e010c444865617274626561745265636569766564042c417574686f7269747949640405012041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e043d012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e1448417574686f72697479446973636f7665727900010000000015204f6666656e63657301204f6666656e6365730c1c5265706f727473000105345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010205104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010105104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e636508104b696e64384f706171756554696d65536c6f740c550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e50205c5b6b696e642c2074696d65736c6f745c5d2e00001628486973746f726963616c0000000000176052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e010000000018204964656e7469747901204964656e7469747910284964656e746974794f6600010530543a3a4163636f756e74496468526567697374726174696f6e3c42616c616e63654f663c543e3e0004000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010230543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010530543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e290044000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100d85665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e3e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e00010120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743e2901202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666f304964656e74697479496e666f4c2d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2858202b205827202b2052296021012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e42020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e6465642984202d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e2501202d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e54902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e00b4202d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002c2023203c7765696768743e34202d20604f2850202b20532960e82020202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e18202d2044423ae02020202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029c02020202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec42020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed42020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e302023203c2f7765696768743e38636c6561725f6964656e7469747900483d0120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e44202d20604f2852202b2053202b20582960d02020202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e25012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e8c202d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ecc202d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65bc2053656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e30202d204f6e65206576656e74302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e341d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496434c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee4202d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647334ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00fc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e1c6164645f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106461746110446174611cb0204164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656e616d655f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651064617461104461746110d020416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656d6f76655f737562040c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651cc42052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e20717569745f7375620028902052656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b820746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564402073757065722d6964656e746974792e004901204e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d150120636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e01282c4964656e7469747953657404244163636f756e7449640411012041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e63650415012041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c656408244163636f756e7449641c42616c616e6365040d012041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e6465780405012041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e64657804f02041206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e6465780409012041206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640438526567697374726172496e64657804ac204120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c244163636f756e744964244163636f756e7449641c42616c616e63650455012041207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c244163636f756e744964244163636f756e7449641c42616c616e6365080d012041207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e5c205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c244163636f756e744964244163636f756e7449641c42616c616e6365081d012041207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d207468652901206d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d183042617369634465706f7369743042616c616e63654f663c543e400080c6a47e8d0300000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f7369743042616c616e63654f663c543e4000a031a95fe300000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f7369743042616c616e63654f663c543e400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637471012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c206265290120616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e74730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c64730c7533321064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d6178526567697374726172730c7533321014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e4048546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473047020546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e795265676973747261727304ec204d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d65640474204163636f756e7420494420697320616c7265616479206e616d65642e184e6f7453756204742053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564048c205375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e191c536f6369657479011c536f6369657479401c466f756e646572000030543a3a4163636f756e7449640400044820546865206669727374206d656d6265722e1452756c657300001c543a3a48617368040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e0400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010530543a3a4163636f756e744964e42842616c616e63654f663c542c20493e2c204269644b696e643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e2900040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f7401003c42616c616e63654f663c542c20493e400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000030543a3a4163636f756e744964040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d626572730100445665633c543a3a4163636f756e7449643e04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d6265727301010530543a3a4163636f756e74496410626f6f6c00040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010530543a3a4163636f756e74496438566f756368696e6753746174757300040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f75747301010530543a3a4163636f756e744964985665633c28543a3a426c6f636b4e756d6265722c2042616c616e63654f663c542c20493e293e000400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b657301010530543a3a4163636f756e7449642c537472696b65436f756e7400100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f74657300020530543a3a4163636f756e74496430543a3a4163636f756e74496410566f746505040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000030543a3a4163636f756e744964040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010530543a3a4163636f756e74496410566f7465000400046020566f74657320666f722074686520646566656e6465722e284d61784d656d6265727301000c753332100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e01300c626964041476616c75653c42616c616e63654f663c542c20493e84e020412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e003901205061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564f0207768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a5901202d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002c2023203c7765696768743e5501204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520726573657276652944202d2053746f726167652052656164733aec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d2948202d2053746f72616765205772697465733a810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6820092d204f6e65206576656e7420666f72206e6577206269642efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e14756e626964040c706f730c7533324cd82041206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792e010120427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f728420746865792077696c6c20756e766f75636820746865697220766f75636865722e00fc205061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e003020506172616d65746572733a1901202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002c2023203c7765696768743eb0204b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e72657365727665290d01202d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f2842294501202d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2842202b205829302023203c2f7765696768743e14766f7563680c0c77686f30543a3a4163636f756e7449641476616c75653c42616c616e63654f663c542c20493e0c7469703c42616c616e63654f663c542c20493eb045012041732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e005501205468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f725d01206f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062794101207468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e005901204173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c51012062652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733acc202d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e5101202d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d65642061206d656d62657220696e2074686520736f63696574792e4901202d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f15012074686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002c2023203c7765696768743e0101204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732944202d2053746f726167652052656164733ac820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29090120092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129ec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f28432948202d2053746f72616765205772697465733a0d0120092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f283129810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3ac020092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6020092d204f6e65206576656e7420666f7220766f7563682efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e1c756e766f756368040c706f730c753332442d01204173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f7563686564207573657220697394206f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e003020506172616d65746572733a2d01202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002c2023203c7765696768743e54204b65793a204220286c656e206f662062696473290901202d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722eec202d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422994202d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f284229302023203c2f7765696768743e10766f7465082463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c617070726f766510626f6f6c4c882041732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733a0d01202d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2ef4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265d82020202020202020202020202020617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743ebc204b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e58202d204f6e65206163636f756e74206c6f6f6b75702e2d01202d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204329302023203c2f7765696768743e34646566656e6465725f766f7465041c617070726f766510626f6f6c408c2041732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733af4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a420617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743e68202d204b65793a204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e007820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d29302023203c2f7765696768743e187061796f757400504501205472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e006901204e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e002101205061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d61747572656478207061796f757420746f20746865697220667265652062616c616e63652e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d62657220776974684c207061796f7574732072656d61696e696e672e002c2023203c7765696768743e1d01204b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d626572292501202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e8c202d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858291101202d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f285029009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b205829302023203c2f7765696768743e14666f756e640c1c666f756e64657230543a3a4163636f756e7449642c6d61785f6d656d626572730c7533321472756c65731c5665633c75383e4c4c20466f756e642074686520736f63696574792e00f0205468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f72207468651901206d6f64756c6520746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e003020506172616d65746572733a1901202d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e1501202d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef4202d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002c2023203c7765696768743ee0202d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f4202d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e1c756e666f756e6400348c20416e6e756c2074686520666f756e64696e67206f662074686520736f63696574792e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f74685901207468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e6520206d656d6265722e002c2023203c7765696768743e68202d2054776f2073746f72616765207265616473204f2831292e78202d20466f75722073746f726167652072656d6f76616c73204f2831292e34202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e586a756467655f73757370656e6465645f6d656d626572080c77686f30543a3a4163636f756e7449641c666f726769766510626f6f6c6c2d0120416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e00590120496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67cc20616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e00490120496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e670101207468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ab4202d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e3501202d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e2501202020202020202020202020202020666f726769766573202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002c2023203c7765696768743ea4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f8202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f2831297101202d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f20736f63696574792ef8202d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e4501202d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e70202d204f6e652073746f726167652072656d6f76616c2e204f2831297c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204229302023203c2f7765696768743e646a756467655f73757370656e6465645f63616e646964617465080c77686f30543a3a4163636f756e744964246a756467656d656e74244a756467656d656e74a0350120416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005d0120496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f70726961746574207061796d656e7420666f72206a6f696e696e6720736f63696574792e00550120496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b110120746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005d0120496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f94207468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ac0202d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec4202d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002c2023203c7765696768743ef4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29f0202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec8202d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e40202d20417070726f7665204c6f676963150120092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129dc20092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e820092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b420092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d29a020092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eb020092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4d0120092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e3c202d2052656a656374204c6f676963dc20092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292d0120092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e38202d205265626964204c6f676963410120092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e5c202d204f6e652073746f726167652072656d6f76616c2e7c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b205829302023203c2f7765696768743e3c7365745f6d61785f6d656d62657273040c6d61780c753332381d0120416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb4204d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00dc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e003020506172616d65746572733ae4202d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002c2023203c7765696768743eb0202d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e01401c466f756e64656404244163636f756e74496404e82054686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e205c5b666f756e6465725c5d0c42696408244163636f756e7449641c42616c616e63650861012041206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f666665729c20697320746865207365636f6e642e205c5b63616e6469646174655f69642c206f666665725c5d14566f7563680c244163636f756e7449641c42616c616e6365244163636f756e7449640861012041206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e647901207468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e205c5b63616e6469646174655f69642c206f666665722c20766f756368696e675c5d244175746f556e62696404244163636f756e7449640419012041205c5b63616e6469646174655c5d207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404244163636f756e74496404c02041205c5b63616e6469646174655c5d207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804244163636f756e7449640409012041205c5b63616e6469646174655c5d207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408244163636f756e744964385665633c4163636f756e7449643e08590120412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c20746865d420626174636820696e2066756c6c20697320746865207365636f6e642e205c5b7072696d6172792c2063616e646964617465735c5d6053757370656e6465644d656d6265724a756467656d656e7408244163636f756e74496410626f6f6c04d020412073757370656e646564206d656d62657220686173206265656e206a75646765642e205c5b77686f2c206a75646765645c5d4843616e64696461746553757370656e64656404244163636f756e744964048c2041205c5b63616e6469646174655c5d20686173206265656e2073757370656e6465643c4d656d62657253757370656e64656404244163636f756e74496404802041205c5b6d656d6265725c5d20686173206265656e2073757370656e646564284368616c6c656e67656404244163636f756e74496404842041205c5b6d656d6265725c5d20686173206265656e206368616c6c656e67656410566f74650c244163636f756e744964244163636f756e74496410626f6f6c04c8204120766f746520686173206265656e20706c61636564205c5b63616e6469646174652c20766f7465722c20766f74655c5d30446566656e646572566f746508244163636f756e74496410626f6f6c04f8204120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572205c5b766f7465722c20766f74655c5d344e65774d61784d656d62657273040c75333204a02041206e6577205c5b6d61785c5d206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404244163636f756e744964048820536f636965747920697320756e666f756e6465642e205c5b666f756e6465725c5d1c4465706f736974041c42616c616e636504f820536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e205c5b76616c75655c5d204043616e6469646174654465706f7369743c42616c616e63654f663c542c20493e400080c6a47e8d0300000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e3c42616c616e63654f663c542c20493e400080f420e6b5000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b65730c753332100a00000008750120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e207468657920617265206120736b65707469632978206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e643c42616c616e63654f663c542c20493e400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6438543a3a426c6f636b4e756d626572100077010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4368616c6c656e6765506572696f6438543a3a426c6f636b4e756d626572108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e2050616c6c657449642050616c6c657449642070792f736f63696504682054686520736f636965746965732773206d6f64756c65206964484d617843616e646964617465496e74616b650c753332100a0000000490204d6178696d756d2063616e64696461746520696e74616b652070657220726f756e642e482c426164506f736974696f6e049020416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d62657204582055736572206973206e6f742061206d656d6265722e34416c72656164794d656d6265720468205573657220697320616c72656164792061206d656d6265722e2453757370656e646564044c20557365722069732073757370656e6465642e304e6f7453757370656e646564045c2055736572206973206e6f742073757370656e6465642e204e6f5061796f7574044c204e6f7468696e6720746f207061796f75742e38416c7265616479466f756e646564046420536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74049c204e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e6704e8204d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670460204d656d626572206973206e6f7420766f756368696e672e104865616404942043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572046c2043616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964047420557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e6469646174650474205573657220697320616c726561647920612063616e6469646174652e304e6f7443616e64696461746504642055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273048420546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572047c205468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640470205468652063616c6c6572206973206e6f742074686520686561642e1a205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010530543a3a4163636f756e744964e85265636f76657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e0004000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300020530543a3a4163636f756e74496430543a3a4163636f756e744964e84163746976655265636f766572793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e050400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010230543a3a4163636f756e74496430543a3a4163636f756e7449640004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01243061735f7265636f7665726564081c6163636f756e7430543a3a4163636f756e7449641063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34a42053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a2501202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662e0101202d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002c2023203c7765696768743e94202d2054686520776569676874206f6620746865206063616c6c60202b2031302c3030302e0901202d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e347365745f7265636f766572656408106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e744964341d0120416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e747420666f722061206c6f7374206163636f756e74206469726563746c792e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e003020506172616d65746572733ab8202d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e1d01202d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002c2023203c7765696768743e64202d204f6e652073746f72616765207772697465204f28312930202d204f6e65206576656e74302023203c2f7765696768743e3c6372656174655f7265636f766572790c1c667269656e6473445665633c543a3a4163636f756e7449643e247468726573686f6c640c7531363064656c61795f706572696f6438543a3a426c6f636b4e756d6265726c5d01204372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e003101205061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e636549012077696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564bc20696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2501202d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732ed420202053686f756c64206265206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e3101202d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d70741d012020206265666f726520746865206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f94202020746865206c656e677468206f6620746865206c697374206f6620667269656e64732e3d01202d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a6564e820202074686174206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002c2023203c7765696768743e68202d204b65793a204620286c656e206f6620667269656e6473292d01202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292eec202d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f2846299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f2858299c202d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e44696e6974696174655f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496458ec20496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e001d01205061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e67207468652501207265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b820747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e7401012020206e6565647320746f206265207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743ef8202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846295101202d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f2831299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831296c202d204f6e652073746f726167652077726974652e204f2831292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e38766f7563685f7265636f7665727908106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e74496464290120416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f76657279682070726f6365737320666f722074686174206163636f756e742e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e64227420666f7220746865207265636f76657261626c65206163636f756e742e003020506172616d65746572733ad4202d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f755420202077616e7420746f20766f75636820666f722e0025012054686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f76657279242070726f636573732e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629ec202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f6746291d01202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f6756299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e00a420546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f675629302023203c2f7765696768743e38636c61696d5f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496450f420416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061202272657363756572221d012077686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c6563746564310120607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e003020506172616d65746572733a2d01202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79502020207265636f766572656420627920796f752e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205629302023203c2f7765696768743e38636c6f73655f7265636f76657279041c7265736375657230543a3a4163636f756e7449645015012041732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f76657279682070726f6365737320666f7220796f7572206163636f756e742e002101205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f820746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061f0207265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e003020506172616d65746572733a1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002c2023203c7765696768743e84204b65793a205620286c656e206f6620766f756368696e6720667269656e6473293d01202d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629c0202d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2856202b205829302023203c2f7765696768743e3c72656d6f76655f7265636f7665727900545d012052656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e001501204e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c206163746976650901207265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e002501205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e7265736572766598207468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef4202860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732900050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e4207265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743e60204b65793a204620286c656e206f6620667269656e6473292901202d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f2831293901202d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846299c202d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e4063616e63656c5f7265636f7665726564041c6163636f756e7430543a3a4163636f756e7449642ce02043616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a1901202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e002c2023203c7765696768743e1101202d204f6e652073746f72616765206d75746174696f6e20746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e01183c5265636f766572794372656174656404244163636f756e74496404dc2041207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e205c5b6163636f756e745c5d2e445265636f76657279496e6974696174656408244163636f756e744964244163636f756e744964082d012041207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f76657279566f75636865640c244163636f756e744964244163636f756e744964244163636f756e744964085d012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e68205c5b6c6f73742c20726573637565722c2073656e6465725c5d385265636f76657279436c6f73656408244163636f756e744964244163636f756e7449640821012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e48205c5b6c6f73742c20726573637565725c5d404163636f756e745265636f766572656408244163636f756e744964244163636f756e744964080501204c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f7665727952656d6f76656404244163636f756e74496404e02041207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e205c5b6163636f756e745c5d2e1044436f6e6669674465706f736974426173653042616c616e63654f663c543e4000406352bfc60100000000000000000010550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a65206973a8206032202b2073697a656f6628426c6f636b4e756d6265722c2042616c616e636529602062797465732e4c467269656e644465706f736974466163746f723042616c616e63654f663c543e4000203d88792d000000000000000000000c69012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00690120546869732069732068656c6420666f7220616464696e67206073697a656f66284163636f756e7449642960206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e284d6178467269656e64730c753136080900040d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e3c5265636f766572794465706f7369743042616c616e63654f663c543e4000406352bfc6010000000000000000001c1d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e0035012054686973206973207072696d6172696c792068656c6420666f7220646574657272696e67206d616c6963696f7573207265636f7665727920617474656d7074732c20616e642073686f756c642901206861766520612076616c7565206c6172676520656e6f7567682074686174206120626164206163746f7220776f756c642063686f6f7365206e6f7420746f20706c61636520746869732901206465706f7369742e20497420616c736f206163747320746f2066756e64206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069734101206073697a656f6628426c6f636b4e756d6265722c2042616c616e6365202b2054202a204163636f756e74496429602062797465732e2057686572652054206973206120636f6e666967757261626c652c207468726573686f6c642e40284e6f74416c6c6f77656404f42055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640490205468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e647304d420467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e647304ac20467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f7274656404cc20467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c6504a02054686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c6504b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c72656164795374617274656404e02041207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f745374617274656404d02041207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e6404ac2054686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64041d012054686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f756368656404c0205468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c6404ec20546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c41637469766504010120546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f73656430416c726561647950726f787904b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465047c20536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e1b1c56657374696e67011c56657374696e67041c56657374696e6700010230543a3a4163636f756e744964a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e011010766573740034bc20556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20322052656164732c203220577269746573fc20202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d010120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d302023203c2f7765696768743e28766573745f6f7468657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653cbc20556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501202d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c203320577269746573f420202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f820202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74302023203c2f7765696768743e3c7665737465645f7472616e7366657208187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e406820437265617465206120766573746564207472616e736665722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e001501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c2033205772697465733d0120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d410120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d302023203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e446420466f726365206120766573746564207472616e736665722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00ec202d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e1501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20342052656164732c203420577269746573350120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74390120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74302023203c2f7765696768743e01083856657374696e675570646174656408244163636f756e7449641c42616c616e63650c59012054686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e646963617465206d6f72652066756e64732061726520617661696c61626c652e2054686519012062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e58205c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c6574656404244163636f756e744964041d0120416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e204e6f20667572746865722076657374696e672063616e2068617070656e2e04444d696e5665737465645472616e736665723042616c616e63654f663c543e400000c16ff2862300000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0c284e6f7456657374696e67048820546865206163636f756e7420676976656e206973206e6f742076657374696e672e5c4578697374696e6756657374696e675363686564756c65045d0120416e206578697374696e672076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e7420746861742063616e6e6f7420626520636c6f6262657265642e24416d6f756e744c6f7704090120416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e1c245363686564756c657201245363686564756c65720c184167656e646101010538543a3a426c6f636b4e756d62657271015665633c4f7074696f6e3c5363686564756c65643c3c5420617320436f6e6669673e3a3a43616c6c2c20543a3a426c6f636b4e756d6265722c20543a3a0a50616c6c6574734f726967696e2c20543a3a4163636f756e7449643e3e3e000400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001051c5665633c75383e6c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e0118207363686564756c6510107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e287420416e6f6e796d6f75736c79207363686564756c652061207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7390202d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64615020202020202d2057726974653a204167656e64613d01202d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e1863616e63656c08107768656e38543a3a426c6f636b4e756d62657214696e6465780c75333228982043616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64617020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f6e616d6564140869641c5665633c75383e107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e285c205363686564756c652061206e616d6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c202d2042617365205765696768743a2032392e36202b202e313539202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704d01202d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c73302023203c2f7765696768743e3063616e63656c5f6e616d6564040869641c5665633c75383e287c2043616e63656c2061206e616d6564207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f61667465721014616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e14ac20416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002c2023203c7765696768743e582053616d65206173205b607363686564756c65605d2e302023203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140869641c5665633c75383e14616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1494205363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002c2023203c7765696768743e702053616d65206173205b607363686564756c655f6e616d6564605d2e302023203c2f7765696768743e010c245363686564756c6564082c426c6f636b4e756d6265720c7533320494205363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c6564082c426c6f636b4e756d6265720c75333204902043616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c605461736b416464726573733c426c6f636b4e756d6265723e3c4f7074696f6e3c5665633c75383e3e384469737061746368526573756c7404ac204469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d0010404661696c6564546f5363686564756c650468204661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e6404802043616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e5061737404a820476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e676504f42052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e1d1450726f7879011450726f7879081c50726f7869657301010530543a3a4163636f756e744964a50128426f756e6465645665633c50726f7879446566696e6974696f6e3c543a3a4163636f756e7449642c20543a3a50726f7879547970652c20543a3a0a20426c6f636b4e756d6265723e2c20543a3a4d617850726f786965732c3e2c2042616c616e63654f663c543e29004400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010530543a3a4163636f756e744964a10128426f756e6465645665633c416e6e6f756e63656d656e743c543a3a4163636f756e7449642c2043616c6c486173684f663c543e2c20543a3a0a20426c6f636b4e756d6265723e2c20543a3a4d617850656e64696e672c3e2c2042616c616e63654f663c543e2c290044000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01281470726f78790c107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e3c51012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e246164645f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657234490120526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792e0101202d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3072656d6f76655f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722cac20556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2901202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e4501202d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3872656d6f76655f70726f786965730028b820556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901205741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e5d012074686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e24616e6f6e796d6f75730c2870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657214696e6465780c7531365c3d0120537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64010120696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e0070205265717569726573206120605369676e656460206f726967696e2e005501202d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468655101206e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f7c20616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e5501202d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d656101207472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a757374442077616e7420746f20757365206030602e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e005501204661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659c2073616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e8204661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e9020544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f7573141c737061776e657230543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706514696e6465780c753136186865696768745c436f6d706163743c543a3a426c6f636b4e756d6265723e246578745f696e64657830436f6d706163743c7533323e50b82052656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e004d01205741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c2062653820696e61636365737369626c652e005d01205265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fac2060616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e005101202d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e5101202d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e0501202d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e4101202d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e4d01202d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e004d01204661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f4206163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e20616e6e6f756e636508107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e540901205075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e0061012054686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d707465642901206966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e001501204e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000d0120546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c2061731d012060416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e7408107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40742052656d6f7665206120676976656e20616e6e6f756e63656d656e742e005d01204d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e3420746865206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e74082064656c656761746530543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40b42052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e006501204d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c656761746573290120286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733af8202d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ec0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e3c70726f78795f616e6e6f756e636564102064656c656761746530543a3a4163636f756e744964107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e4451012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e010c3450726f7879457865637574656404384469737061746368526573756c7404ec20412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f75734372656174656410244163636f756e744964244163636f756e7449642450726f7879547970650c75313608ec20416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e690120646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c20646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c244163636f756e744964244163636f756e744964104861736804510120416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d184050726f78794465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f723042616c616e63654f663c543e400060aa7714b40000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00690120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f2061207072652d6578697374696e6761012073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b6520696e746f206163636f756e74c020603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f786965730c753332102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e670c753332102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f736974426173653042616c616e63654f663c543e4000f09e544c39000000000000000000000c310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00690120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c79203136206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f723042616c616e63654f663c543e4000c054ef28680100000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e201c546f6f4d616e790425012054686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e6404782050726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f787904d02053656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c6504250120412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650470204163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e0419012043616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e63656404d420416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f787904682043616e6e6f74206164642073656c662061732070726f78792e1e204d756c746973696701204d756c746973696708244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c73000106205b75383b2033325da0284f706171756543616c6c2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e290004000001105061735f6d756c74695f7468726573686f6c645f3108446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e40550120496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e004101202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468650501206d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00bc20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002c2023203c7765696768743e1d01204f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d48202d204442205765696768743a204e6f6e654c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e2061735f6d756c746918247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c284f706171756543616c6c2873746f72655f63616c6c10626f6f6c286d61785f77656967687418576569676874b8590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a250120202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029290120202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60294c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e40617070726f76655f61735f6d756c746914247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d286d61785f7765696768741857656967687490590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743abc20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dc020202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d6859012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a190120202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731d0120202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c73302023203c2f7765696768743e01102c4e65774d756c74697369670c244163636f756e744964244163636f756e7449642043616c6c48617368041d012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c10244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c4861736808cc2041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb8205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967457865637574656414244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368384469737061746368526573756c740459012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c486173680461012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d0c2c4465706f736974426173653042616c616e63654f663c543e4000f01c0adbed0100000000000000000018710120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f2073746f72656c20612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f723042616c616e63654f663c543e400000cc7b9fae000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f726965730c75313608640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e38404d696e696d756d5468726573686f6c640480205468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f76656404b02043616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e656564656404a02043616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f7269657304ac2054686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f7269657304b02054686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f7264657204110120546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f72696573041101205468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e6404e0204d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e6572043101204f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e74042101204e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74043101204120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e7404f820412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f7704d420546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f72656404a420546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e1f20426f756e7469657301205472656173757279102c426f756e7479436f756e7401002c426f756e7479496e646578100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001052c426f756e7479496e646578c8426f756e74793c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001052c426f756e7479496e6465781c5665633c75383e000400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100405665633c426f756e7479496e6465783e040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01243870726f706f73655f626f756e7479081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c6465736372697074696f6e1c5665633c75383e30582050726f706f73652061206e657720626f756e74792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c20617355012060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c68206f7220736c6173686564207768656e2072656a65637465642e00fc202d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e68202d2060666565603a205468652063757261746f72206665652e2901202d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec4202d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e20610120417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3c70726f706f73655f63757261746f720c24626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c63757261746f728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c66656554436f6d706163743c42616c616e63654f663c543e3e1c942041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e40756e61737369676e5f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e488020556e61737369676e2063757261746f722066726f6d206120626f756e74792e00210120546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e00690120496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f72206973206d616c6963696f75730d01206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e00650120496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e64610120746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f7665722074686569723901206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e290061012046696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f7773650120616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e643d012077652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e386163636570745f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e209820416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e2d012041206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e0094204d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3061776172645f626f756e74790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528990120417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e1d01202d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c61696d5f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e24f020436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c6f73655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e283d012043616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64d0207468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00cc204f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e50657874656e645f626f756e74795f6578706972790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c5f72656d61726b1c5665633c75383e28b020457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e90202d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e011c38426f756e747950726f706f736564042c426f756e7479496e646578047c204e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564082c426f756e7479496e6465781c42616c616e6365041101204120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665042c426f756e7479496e64657804e4204120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564082c426f756e7479496e646578244163636f756e74496404f4204120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c2c426f756e7479496e6465781c42616c616e6365244163636f756e744964040d01204120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564042c426f756e7479496e6465780484204120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564042c426f756e7479496e646578049c204120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d1c48446174614465706f736974506572427974653042616c616e63654f663c543e400010a5d4e8000000000000000000000004fc2054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e20626f756e7479206465736372697074696f6e2e44426f756e74794465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c617938543a3a426c6f636b4e756d6265721080700000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f6438543a3a426c6f636b4e756d6265721000270600046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f7369741c5065726d696c6c1020a10700046d012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e74792063757261746f722e48426f756e747956616c75654d696e696d756d3042616c616e63654f663c543e4000406352bfc6010000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e4c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e2470496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e657870656374656453746174757304842054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720460205265717569726520626f756e74792063757261746f722e30496e76616c696456616c7565045820496e76616c696420626f756e74792076616c75652e28496e76616c6964466565045020496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740870204120626f756e7479207061796f75742069732070656e64696e672efc20546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d61747572650449012054686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e201054697073012054726561737572790810546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001061c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e0118387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173c02060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743ecc202d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e942020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e2774202d20446252656164733a2060526561736f6e73602c2060546970736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960dc2020202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e90202d20446252656164733a206054697073602c20606f726967696e206163636f756e7460c0202d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e7460302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e58f4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e5501202d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732ec02020202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e6774682060546009012020202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e0d0120202020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ee42020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e6774682060526080202d20446252656164733a206054697070657273602c2060526561736f6e736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e64b4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e15012020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e00610120202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d4202020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e74202d20446252656164733a206054697070657273602c206054697073604c202d2044625772697465733a20605469707360302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368446020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e9c2020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602eac202d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260dc202d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e64657260302023203c2f7765696768743e24736c6173685f7469700410686173681c543a3a4861736830982052656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f8204173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e008820456d6974732060546970536c617368656460206966207375636365737366756c2e002c2023203c7765696768743e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e302023203c2f7765696768743e0114184e657754697004104861736804cc2041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e670410486173680411012041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504f02041207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d3054697052657472616374656404104861736804c82041207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c1048617368244163636f756e7449641c42616c616e63650405012041207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d1430546970436f756e74646f776e38543a3a426c6f636b4e756d62657210807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e7404140431012054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e48446174614465706f736974506572427974653042616c616e63654f663c543e400010a5d4e800000000000000000000000409012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e2e4c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e1830526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e211841737365747301184173736574731014417373657400010228543a3a41737365744964f8417373657444657461696c733c543a3a42616c616e63652c20543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e00040004542044657461696c73206f6620616e2061737365742e1c4163636f756e7401020228543a3a4173736574496430543a3a4163636f756e74496488417373657442616c616e63653c543a3a42616c616e63652c20543a3a45787472613e02280000000000000000000004e420546865206e756d626572206f6620756e697473206f66206173736574732068656c6420627920616e7920676976656e206163636f756e742e24417070726f76616c7300030c28543a3a4173736574496430543a3a4163636f756e74496430543a3a4163636f756e7449640c020202b0417070726f76616c3c543a3a42616c616e63652c204465706f73697442616c616e63654f663c542c20493e3e04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d6574616461746101010228543a3a41737365744964190141737365744d657461646174613c4465706f73697442616c616e63654f663c542c20493e2c20426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0a3e005000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e015c186372656174650c0869644c436f6d706163743c543a3a417373657449643e1461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c6d696e5f62616c616e636528543a3a42616c616e63654cec2049737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e0029012054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e00290120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c02046756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e003020506172616d65746572733a5d01202d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966794c20616e206578697374696e672061737365742e5d01202d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368a0206d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e009c20456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f2831296030666f7263655f637265617465100869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653469735f73756666696369656e7410626f6f6c2c6d696e5f62616c616e63654c436f6d706163743c543a3a42616c616e63653e4cfc2049737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b82054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a820546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e00a020556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e005d01202d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966794c20616e206578697374696e672061737365742e5d01202d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e737d01206f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6720607472616e736665725f6f776e657273686970604020616e6420607365745f7465616d602e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00b020456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129601c64657374726f79080869644c436f6d706163743c543a3a417373657449643e1c7769746e6573733844657374726f795769746e65737338902044657374726f79206120636c617373206f662066756e6769626c65206173736574732e00590120546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686564206f776e6572206f662074686520617373657420606964602e005101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e671c2061737365742e00a420456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e0078205765696768743a20604f2863202b2070202b206129602077686572653ac4202d206063203d20287769746e6573732e6163636f756e7473202d207769746e6573732e73756666696369656e7473296070202d206073203d207769746e6573732e73756666696369656e74736068202d206061203d207769746e6573732e617070726f76616c7360106d696e740c0869644c436f6d706163743c543a3a417373657449643e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e308c204d696e7420617373657473206f66206120706172746963756c617220636c6173732e003d0120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e000101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e1101202d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec8202d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e009820456d697473206049737375656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129605901204d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c0869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e3c490120526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00dc204261696c732077697468206042616c616e63655a65726f6020696620746865206077686f6020697320616c726561647920646561642e000101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea4202d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e2d01202d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e00550120456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f77207468653d01206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e003c205765696768743a20604f283129600d01204d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c0869644c436f6d706163743c543a3a417373657449643e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e48d4204d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e005c204f726967696e206d757374206265205369676e65642e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642ea0202d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e5501202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64650120607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e6101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77c020746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605501204d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f66282060746172676574602e4c7472616e736665725f6b6565705f616c6976650c0869644c436f6d706163743c543a3a417373657449643e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e485d01204d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e005c204f726967696e206d757374206265205369676e65642e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642ea0202d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e5501202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64650120607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e6101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77c020746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605501204d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f66282060746172676574602e38666f7263655f7472616e73666572100869644c436f6d706163743c543a3a417373657449643e18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e4cb8204d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c202d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e98202d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e5d01202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e645d012060646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d82062656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605501204d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f6620206064657374602e18667265657a65080869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528e420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e742e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e8c202d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f283129601074686177080869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528d020416c6c6f7720756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e7420616761696e2e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e94202d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e004020456d6974732060546861776564602e003c205765696768743a20604f2831296030667265657a655f6173736574040869644c436f6d706163743c543a3a417373657449643e24f420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f2831296028746861775f6173736574040869644c436f6d706163743c543a3a417373657449643e24c820416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e004020456d6974732060546861776564602e003c205765696768743a20604f28312960487472616e736665725f6f776e657273686970080869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652878204368616e676520746865204f776e6572206f6620616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e005820456d69747320604f776e65724368616e676564602e003c205765696768743a20604f28312960207365745f7465616d100869644c436f6d706163743c543a3a417373657449643e186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530c8204368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e005420456d69747320605465616d4368616e676564602e003c205765696768743a20604f28312960307365745f6d65746164617461100869644c436f6d706163743c543a3a417373657449643e106e616d651c5665633c75383e1873796d626f6c1c5665633c75383e20646563696d616c73087538407c2053657420746865206d6574616461746120666f7220616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00dc2046756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a550120604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00bc202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e5101202d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e5101202d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3101202d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e005420456d69747320604d65746164617461536574602e003c205765696768743a20604f2831296038636c6561725f6d65746164617461040869644c436f6d706163743c543a3a417373657449643e2c8420436c65617220746865206d6574616461746120666f7220616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a820416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f2831296048666f7263655f7365745f6d65746164617461140869644c436f6d706163743c543a3a417373657449643e106e616d651c5665633c75383e1873796d626f6c1c5665633c75383e20646563696d616c730875382469735f66726f7a656e10626f6f6c38bc20466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e0070204f726967696e206d75737420626520466f7263654f726967696e2e006c20416e79206465706f736974206973206c65667420616c6f6e652e00bc202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e5101202d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e5101202d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3101202d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e005420456d69747320604d65746164617461536574602e005501205765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d65746164617461040869644c436f6d706163743c543a3a417373657449643e2c8420436c65617220746865206d6574616461746120666f7220616e2061737365742e0070204f726967696e206d75737420626520466f7263654f726967696e2e006420416e79206465706f7369742069732072657475726e65642e00b8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f2831296048666f7263655f61737365745f737461747573200869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c6d696e5f62616c616e63654c436f6d706163743c543a3a42616c616e63653e3469735f73756666696369656e7410626f6f6c2469735f66726f7a656e10626f6f6c589c20416c746572207468652061747472696275746573206f66206120676976656e2061737365742e0078204f726967696e206d7573742062652060466f7263654f726967696e602e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e5501202d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e7451012076616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f5901206074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e642074687573510120616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e74207374617465242067726f777468292e4101202d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e3820696e737472756374696f6e732e00ec20456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e003c205765696768743a20604f2831296040617070726f76655f7472616e736665720c0869644c436f6d706163743c543a3a417373657449643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e50310120417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e005c204f726967696e206d757374206265205369676e65642e00510120456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e74590120666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794d0120617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f58206d656574207468652072696768742076616c75652e004901204e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f6648206d616b696e6720746869732063616c6c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e1101202d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e4d01202d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e420616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e009420456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e003c205765696768743a20604f283129603c63616e63656c5f617070726f76616c080869644c436f6d706163743c543a3a417373657449643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365344d012043616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e004101204f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e6430206064656c6567617465602e004d0120556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e0901202d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c0869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365344d012043616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e004d01204f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e6c206163636f756e74206f662074686520617373657420606964602e004d0120556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e0901202d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f28312960447472616e736665725f617070726f766564100869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c64657374696e6174696f6e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e485101205472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d706172747924206163636f756e742e004d01204f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f2074686520207369676e65722e005d012049662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b82072657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e6501202d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64c02066726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e6501202d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb8202d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e00a020456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e003c205765696768743a20604f2831296001481c437265617465640c1c41737365744964244163636f756e744964244163636f756e74496404ec20536f6d6520617373657420636c6173732077617320637265617465642e205c5b61737365745f69642c2063726561746f722c206f776e65725c5d184973737565640c1c41737365744964244163636f756e7449641c42616c616e636504ec20536f6d65206173736574732077657265206973737565642e205c5b61737365745f69642c206f776e65722c20746f74616c5f737570706c795c5d2c5472616e73666572726564101c41737365744964244163636f756e744964244163636f756e7449641c42616c616e636504f420536f6d65206173736574732077657265207472616e736665727265642e205c5b61737365745f69642c2066726f6d2c20746f2c20616d6f756e745c5d184275726e65640c1c41737365744964244163636f756e7449641c42616c616e636504e420536f6d652061737365747320776572652064657374726f7965642e205c5b61737365745f69642c206f776e65722c2062616c616e63655c5d2c5465616d4368616e676564101c41737365744964244163636f756e744964244163636f756e744964244163636f756e74496404050120546865206d616e6167656d656e74207465616d206368616e676564205c5b61737365745f69642c206973737565722c2061646d696e2c20667265657a65725c5d304f776e65724368616e676564081c41737365744964244163636f756e744964049820546865206f776e6572206368616e676564205c5b61737365745f69642c206f776e65725c5d1846726f7a656e081c41737365744964244163636f756e74496404c420536f6d65206163636f756e74206077686f60207761732066726f7a656e2e205c5b61737365745f69642c2077686f5c5d18546861776564081c41737365744964244163636f756e74496404c420536f6d65206163636f756e74206077686f6020776173207468617765642e205c5b61737365745f69642c2077686f5c5d2c417373657446726f7a656e041c4173736574496404bc20536f6d65206173736574206061737365745f696460207761732066726f7a656e2e205c5b61737365745f69645c5d2c4173736574546861776564041c4173736574496404bc20536f6d65206173736574206061737365745f69646020776173207468617765642e205c5b61737365745f69645c5d2444657374726f796564041c41737365744964047820416e20617373657420636c617373207761732064657374726f7965642e30466f72636543726561746564081c41737365744964244163636f756e74496404e020536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e205c5b61737365745f69642c206f776e65725c5d2c4d65746164617461536574141c417373657449641c5665633c75383e1c5665633c75383e08753810626f6f6c046101204e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e205c5b61737365745f69642c206e616d652c2073796d626f6c2c20646563696d616c732c2069735f66726f7a656e5c5d3c4d65746164617461436c6561726564041c4173736574496404d4204d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e205c5b61737365745f69645c5d40417070726f7665645472616e73666572101c41737365744964244163636f756e744964244163636f756e7449641c42616c616e636508350120284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e9c205c5b61737365745f69642c20736f757263652c2064656c65676174652c20616d6f756e745c5d44417070726f76616c43616e63656c6c65640c1c41737365744964244163636f756e744964244163636f756e74496408f420416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e60205c5b69642c206f776e65722c2064656c65676174655c5d4c5472616e73666572726564417070726f766564141c41737365744964244163636f756e744964244163636f756e744964244163636f756e7449641c42616c616e63650c350120416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e60206279642074686520617070726f766564206064656c6567617465602e94205c5b69642c206f776e65722c2064656c65676174652c2064657374696e6174696f6e5c5d4841737365745374617475734368616e676564041c4173736574496408fc20416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e1c205c5b69645c5d00302842616c616e63654c6f77041901204163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e2c42616c616e63655a65726f04702042616c616e63652073686f756c64206265206e6f6e2d7a65726f2e304e6f5065726d697373696f6e04ec20546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e047c2054686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e047820546865206f726967696e206163636f756e742069732066726f7a656e2e14496e557365047c2054686520617373657420494420697320616c72656164792074616b656e2e284261645769746e657373047020496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0490204d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e284e6f50726f7669646572046501204e6f2070726f7669646572207265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742e2c4261644d65746164617461046020496e76616c6964206d6574616461746120676976656e2e28556e617070726f76656404c8204e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c644469650439012054686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e220c4d6d72014c4d65726b6c654d6f756e7461696e52616e67650c20526f6f74486173680100583c5420617320436f6e6669673c493e3e3a3a486173688000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301000c75363420000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001060c753634583c5420617320436f6e6669673c493e3e3a3a48617368000400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e00000000231c4c6f7474657279011c4c6f747465727918304c6f7474657279496e64657801000c7533321000000000001c4c6f74746572790000ac4c6f7474657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e040004ac2054686520636f6e66696775726174696f6e20666f72207468652063757272656e74206c6f74746572792e305061727469636970616e747301010530543a3a4163636f756e74496454287533322c205665633c43616c6c496e6465783e29001400000000000419012055736572732077686f2068617665207075726368617365642061207469636b65742e20284c6f747465727920496e6465782c205469636b6574732050757263686173656429305469636b657473436f756e7401000c7533321000000000047820546f74616c206e756d626572206f66207469636b65747320736f6c642e1c5469636b6574730001050c75333230543a3a4163636f756e74496400040010542045616368207469636b65742773206f776e65722e006101204d6179206861766520726573696475616c2073746f726167652066726f6d2070726576696f7573206c6f747465726965732e2055736520605469636b657473436f756e746020746f20736565207768696368206f6e657390206172652061637475616c6c792076616c6964207469636b6574206d617070696e67732e2c43616c6c496e64696365730100385665633c43616c6c496e6465783e0400083901205468652063616c6c732073746f72656420696e20746869732070616c6c657420746f206265207573656420696e20616e20616374697665206c6f747465727920696620636f6e666967757265646c2062792060436f6e6669673a3a56616c696461746543616c6c602e0110286275795f7469636b6574041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c8c204275792061207469636b657420746f20656e74657220746865206c6f74746572792e00050120546869732065787472696e7369632061637473206173206120706173737468726f7567682066756e6374696f6e20666f72206063616c6c602e20496e20616c6c0d0120736974756174696f6e73207768657265206063616c6c6020616c6f6e6520776f756c6420737563636565642c20746869732065787472696e7369632073686f756c642420737563636565642e001101204966206063616c6c60206973207375636365737366756c2c207468656e2077652077696c6c20617474656d707420746f2070757263686173652061207469636b65742c1501207768696368206d6179206661696c2073696c656e746c792e20546f206465746563742073756363657373206f662061207469636b65742070757263686173652c20796f75b02073686f756c64206c697374656e20666f722074686520605469636b6574426f7567687460206576656e742e00c820546869732065787472696e736963206d7573742062652063616c6c65642062792061207369676e6564206f726967696e2e247365745f63616c6c73041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e181501205365742063616c6c7320696e2073746f726167652077686963682063616e206265207573656420746f2070757263686173652061206c6f7474657279207469636b65742e00210120546869732066756e6374696f6e206f6e6c79206d61747465727320696620796f752075736520746865206056616c696461746543616c6c6020696d706c656d656e746174696f6e29012070726f766964656420627920746869732070616c6c65742c20776869636820757365732073746f7261676520746f2064657465726d696e65207468652076616c69642063616c6c732e00d420546869732065787472696e736963206d7573742062652063616c6c656420627920746865204d616e61676572206f726967696e2e3473746172745f6c6f7474657279101470726963653042616c616e63654f663c543e186c656e67746838543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265721872657065617410626f6f6c28c82053746172742061206c6f7474657279207573696e67207468652070726f766964656420636f6e66696775726174696f6e2e00d820546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e003020506172616d65746572733a00a0202a20607072696365603a2054686520636f7374206f6620612073696e676c65207469636b65742e3d01202a20606c656e677468603a20486f77206c6f6e6720746865206c6f74746572792073686f756c642072756e20666f72207374617274696e67206174207468652063757272656e7420626c6f636b2e4901202a206064656c6179603a20486f77206c6f6e6720616674657220746865206c6f747465727920656e642077652073686f756c642077616974206265666f7265207069636b696e6720612077696e6e65722ee4202a2060726570656174603a20496620746865206c6f74746572792073686f756c6420726570656174207768656e20636f6d706c657465642e2c73746f705f726570656174001001012049662061206c6f747465727920697320726570656174696e672c20796f752063616e20757365207468697320746f2073746f7020746865207265706561742ec020546865206c6f74746572792077696c6c20636f6e74696e756520746f2072756e20746f20636f6d706c6574696f6e2e00d820546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e0110384c6f7474657279537461727465640004702041206c6f747465727920686173206265656e2073746172746564213043616c6c73557064617465640004882041206e657720736574206f662063616c6c732068617665206265656e20736574211857696e6e657208244163636f756e7449641c42616c616e6365046820412077696e6e657220686173206265656e2063686f73656e21305469636b6574426f7567687408244163636f756e7449642443616c6c496e64657804682041207469636b657420686173206265656e20626f7567687421082050616c6c657449642050616c6c657449642070792f6c6f74746f046020546865204c6f747465727927732070616c6c6574206964204d617843616c6c730c753332100a00000004dc20546865206d6178206e756d626572206f662063616c6c7320617661696c61626c6520696e20612073696e676c65206c6f74746572792e1c344e6f74436f6e66696775726564048c2041206c6f747465727920686173206e6f74206265656e20636f6e666967757265642e28496e50726f677265737304882041206c6f747465727920697320616c726561647920696e2070726f67726573732e30416c7265616479456e64656404742041206c6f74746572792068617320616c726561647920656e6465642e2c496e76616c696443616c6c04ac205468652063616c6c206973206e6f742076616c696420666f7220616e206f70656e206c6f74746572792e50416c726561647950617274696369706174696e6704f420596f752061726520616c72656164792070617274696369706174696e6720696e20746865206c6f7474657279207769746820746869732063616c6c2e30546f6f4d616e7943616c6c73049420546f6f206d616e792063616c6c7320666f7220612073696e676c65206c6f74746572792e38456e636f64696e674661696c6564045c204661696c656420746f20656e636f64652063616c6c73241047696c74011047696c74102c5175657565546f74616c730100605665633c287533322c2042616c616e63654f663c543e293e04001461012054686520746f74616c73206f66206974656d7320616e642062616c616e6365732077697468696e20656163682071756575652e2053617665732061206c6f74206f662073746f7261676520726561647320696e20746865802063617365206f66207370617273656c79207061636b6564207175657565732e006d012054686520766563746f7220697320696e6465786564206279206475726174696f6e20696e2060506572696f6460732c206f6666736574206279206f6e652c20736f20696e666f726d6174696f6e206f6e20746865207175657565d42077686f7365206475726174696f6e206973206f6e652060506572696f646020776f756c642062652073746f72616765206030602e185175657565730101020c753332a05665633c47696c744269643c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e0004000439012054686520717565756573206f66206269647320726561647920746f206265636f6d652067696c74732e20496e6465786564206279206475726174696f6e2028696e2060506572696f646073292e2c416374697665546f74616c01007841637469766547696c7473546f74616c3c42616c616e63654f663c543e3e9000000000000000000000000000000000000000000000000000000000000000000000000004d020496e666f726d6174696f6e2072656c6174696e6720746f207468652067696c74732063757272656e746c79206163746976652e184163746976650001022c416374697665496e646578a50141637469766547696c743c42616c616e63654f663c543e2c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c3c0a54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a426c6f636b4e756d6265723e000400042101205468652063757272656e746c79206163746976652067696c74732c20696e6465786564206163636f7264696e6720746f20746865206f72646572206f66206372656174696f6e2e011024706c6163655f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c753332349420506c61636520612062696420666f7220612067696c7420746f206265206973737565642e004101204f726967696e206d757374206265205369676e65642c20616e64206163636f756e74206d7573742068617665206174206c656173742060616d6f756e746020696e20667265652062616c616e63652e003d01202d2060616d6f756e74603a2054686520616d6f756e74206f6620746865206269643b2074686573652066756e64732077696c6c2062652072657365727665642e20496620746865206269642069734101207375636365737366756c6c7920656c65766174656420696e746f20616e206973737565642067696c742c207468656e2074686573652066756e64732077696c6c20636f6e74696e756520746f206265fc20726573657276656420756e74696c207468652067696c7420657870697265732e204d757374206265206174206c6561737420604d696e467265657a65602e5901202d20606475726174696f6e603a20546865206e756d626572206f6620706572696f647320666f72207768696368207468652066756e64732077696c6c206265206c6f636b6564206966207468652067696c742069735d01206973737565642e2049742077696c6c20657870697265206f6e6c79206166746572207468697320706572696f642068617320656c61707365642061667465722074686520706f696e74206f662069737375616e63652ed8204d7573742062652067726561746572207468616e203120616e64206e6f206d6f7265207468616e20605175657565436f756e74602e003820436f6d706c657869746965733ab0202d20605175657565735b6475726174696f6e5d2e6c656e28296020286a7573742074616b65206d6178292e2c726574726163745f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c7533321c84205265747261637420612070726576696f75736c7920706c61636564206269642e006101204f726967696e206d757374206265205369676e65642c20616e6420746865206163636f756e742073686f756c6420686176652070726576696f75736c79206973737565642061207374696c6c2d6163746976652062696470206f662060616d6f756e746020666f7220606475726174696f6e602e00b0202d2060616d6f756e74603a2054686520616d6f756e74206f66207468652070726576696f7573206269642ec0202d20606475726174696f6e603a20546865206475726174696f6e206f66207468652070726576696f7573206269642e287365745f746172676574041874617267657450436f6d706163743c5065727175696e74696c6c3e189420536574207461726765742070726f706f7274696f6e206f662067696c742d66756e64732e0078204f726967696e206d757374206265206041646d696e4f726967696e602e005d01202d2060746172676574603a20546865207461726765742070726f706f7274696f6e206f6620656666656374697665206973737565642066756e647320746861742073686f756c6420626520756e6465722067696c74734420617420616e79206f6e652074696d652e10746861770414696e64657850436f6d706163743c416374697665496e6465783e1c59012052656d6f766520616e206163746976652062757420657870697265642067696c742e2052657365727665642066756e647320756e6465722067696c742061726520667265656420616e642062616c616e63652069735d012061646a757374656420746f20656e737572652074686174207468652066756e64732067726f77206f7220736872696e6b20746f206d61696e7461696e20746865206571756976616c656e742070726f706f7274696f6e84206f662065666665637469766520746f74616c206973737565642066756e64732e006101204f726967696e206d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f66207468652067696c74206f662074686520676976656e20696e6465782e00bc202d2060696e646578603a2054686520696e646578206f66207468652067696c7420746f206265207468617765642e011024426964506c616365640c244163636f756e7449643042616c616e63654f663c543e0c753332087c20412062696420776173207375636365737366756c6c7920706c616365642e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d304269645265747261637465640c244163636f756e7449643042616c616e63654f663c543e0c75333208090120412062696420776173207375636365737366756c6c792072656d6f76656420286265666f7265206265696e6720616363657074656420617320612067696c74292e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d2847696c74497373756564102c416374697665496e64657838543a3a426c6f636b4e756d626572244163636f756e7449643042616c616e63654f663c543e0831012041206269642077617320616363657074656420617320612067696c742e205468652062616c616e6365206d6179206e6f742062652072656c656173656420756e74696c206578706972792e84205c5b20696e6465782c206578706972792c2077686f2c20616d6f756e74205c5d2847696c74546861776564102c416374697665496e646578244163636f756e7449643042616c616e63654f663c543e3042616c616e63654f663c543e088420416e20657870697265642067696c7420686173206265656e207468617765642ed4205c5b20696e6465782c2077686f2c206f726967696e616c5f616d6f756e742c206164646974696f6e616c5f616d6f756e74205c5d1c285175657565436f756e740c753332102c010000085d01204e756d626572206f66206475726174696f6e2071756575657320696e20746f74616c2e2054686973207365747320746865206d6178696d756d206475726174696f6e20737570706f727465642c2077686963682069738c20746869732076616c7565206d756c7469706c6965642062792060506572696f64602e2c4d617851756575654c656e0c75333210e803000004f0204d6178696d756d206e756d626572206f66206974656d732074686174206d617920626520696e2065616368206475726174696f6e2071756575652e304669666f51756575654c656e0c75333210f40100000c090120506f7274696f6e206f662074686520717565756520776869636820697320667265652066726f6d206f72646572696e6720616e64206a7573742061204649464f2e009c204d757374206265206e6f2067726561746572207468616e20604d617851756575654c656e602e18506572696f6438543a3a426c6f636b4e756d62657210002f0d0008410120546865206261736520706572696f6420666f7220746865206475726174696f6e207175657565732e20546869732069732074686520636f6d6d6f6e206d756c7469706c65206163726f737320616c6ccc20737570706f7274656420667265657a696e67206475726174696f6e7320746861742063616e206265206269642075706f6e2e244d696e467265657a653042616c616e63654f663c543e400000c16ff2862300000000000000000018550120546865206d696e696d756d20616d6f756e74206f662066756e64732074686174206d6179206265206f66666572656420746f20667265657a6520666f7220612067696c742e204e6f746520746861742074686973510120646f6573206e6f742061637475616c6c79206c696d69742074686520616d6f756e74207768696368206d61792062652066726f7a656e20696e20612067696c742073696e63652067696c7473206d617920626519012073706c697420757020696e206f7264657220746f207361746973667920746865206465736972656420616d6f756e74206f662066756e647320756e6465722067696c74732e0065012049742073686f756c64206265206174206c656173742062696720656e6f75676820746f20656e737572652074686174207468657265206973206e6f20706f737369626c652073746f72616765207370616d2061747461636b64206f722071756575652d66696c6c696e672061747461636b2e30496e74616b65506572696f6438543a3a426c6f636b4e756d626572100a00000014590120546865206e756d626572206f6620626c6f636b73206265747765656e20636f6e736563757469766520617474656d70747320746f206973737565206d6f72652067696c747320696e20616e206566666f727420746f9c2067657420746f207468652074617267657420616d6f756e7420746f2062652066726f7a656e2e005d012041206c61726765722076616c756520726573756c747320696e2066657765722073746f726167652068697473206561636820626c6f636b2c20627574206120736c6f77657220706572696f6420746f2067657420746f3020746865207461726765742e344d6178496e74616b65426964730c753332100a0000000c550120546865206d6178696d756d20616d6f756e74206f66206269647320746861742063616e206265207475726e656420696e746f206973737565642067696c7473206561636820626c6f636b2e2041206c617267657261012076616c75652068657265206d65616e73206c657373206f662074686520626c6f636b20617661696c61626c6520666f72207472616e73616374696f6e732073686f756c64207468657265206265206120676c7574206f66b4206269647320746f206d616b6520696e746f2067696c747320746f20726561636820746865207461726765742e20404475726174696f6e546f6f536d616c6c04a820546865206475726174696f6e206f662074686520626964206973206c657373207468616e206f6e652e384475726174696f6e546f6f42696704f820546865206475726174696f6e20697320746865206269642069732067726561746572207468616e20746865206e756d626572206f66207175657565732e38416d6f756e74546f6f536d616c6c04e02054686520616d6f756e74206f662074686520626964206973206c657373207468616e20746865206d696e696d756d20616c6c6f7765642e24426964546f6f4c6f770865012054686520717565756520666f7220746865206269642773206475726174696f6e2069732066756c6c20616e642074686520616d6f756e742062696420697320746f6f206c6f7720746f2067657420696e207468726f7567686c207265706c6163696e6720616e206578697374696e67206269642e1c556e6b6e6f776e045c2047696c7420696e64657820697320756e6b6e6f776e2e204e6f744f776e6572046c204e6f7420746865206f776e6572206f66207468652067696c742e284e6f744578706972656404742047696c74206e6f74207965742061742065787069727920646174652e204e6f74466f756e6404ac2054686520676976656e2062696420666f722072657472616374696f6e206973206e6f7420666f756e642e251c556e6971756573011c556e69717565731814436c61737300010228543a3a436c6173734964c8436c61737344657461696c733c543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e000400046c2044657461696c73206f6620616e20617373657420636c6173732e1c4163636f756e7400030c30543a3a4163636f756e74496428543a3a436c617373496434543a3a496e7374616e636549640c020202082829040008610120546865206173736574732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420617373657473206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e14417373657400020228543a3a436c617373496434543a3a496e7374616e63654964d4496e7374616e636544657461696c733c543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e02040004d4205468652061737365747320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e3c436c6173734d657461646174614f6600010228543a3a436c6173734964d4436c6173734d657461646174613c4465706f73697442616c616e63654f663c542c20493e2c20543a3a537472696e674c696d69743e0004000470204d65746164617461206f6620616e20617373657420636c6173732e48496e7374616e63654d657461646174614f6600020228543a3a436c617373496434543a3a496e7374616e63654964e0496e7374616e63654d657461646174613c4465706f73697442616c616e63654f663c542c20493e2c20543a3a537472696e674c696d69743e020400047c204d65746164617461206f6620616e20617373657420696e7374616e63652e2441747472696275746500030c28543a3a436c6173734964544f7074696f6e3c543a3a496e7374616e636549643e6c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0c020202dc28426f756e6465645665633c75382c20543a3a56616c75654c696d69743e2c204465706f73697442616c616e63654f663c542c20493e2904000470204d65746164617461206f6620616e20617373657420636c6173732e0158186372656174650814636c6173734c436f6d706163743c543a3a436c61737349643e1461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636540fc2049737375652061206e657720636c617373206f66206e6f6e2d66756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e0029012054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e00290120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00b4206041737365744465706f736974602066756e6473206f662073656e646572206172652072657365727665642e003020506172616d65746572733a5501202d2060636c617373603a20546865206964656e746966696572206f6620746865206e657720617373657420636c6173732e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e5d01202d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368a0206d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e009c20456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f2831296030666f7263655f6372656174650c14636c6173734c436f6d706163743c543a3a436c61737349643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530667265655f686f6c64696e6710626f6f6c400d012049737375652061206e657720636c617373206f66206e6f6e2d66756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b82054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a820546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e00a020556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e003d01202d2060636c617373603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e5d01202d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e732901206f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e679420607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00b020456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129601c64657374726f790814636c6173734c436f6d706163743c543a3a436c61737349643e1c7769746e6573733844657374726f795769746e6573733c902044657374726f79206120636c617373206f662066756e6769626c65206173736574732e00610120546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d7573742062652074686570206f776e6572206f66207468652061737365742060636c617373602e00f8202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c61737320746f2062652064657374726f7965642e4901202d20607769746e657373603a20496e666f726d6174696f6e206f6e2074686520696e7374616e636573206d696e74656420696e2074686520617373657420636c6173732e2054686973206d7573742062652420636f72726563742e00a420456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e0068205765696768743a20604f286e202b206d29602077686572653a68202d20606e203d207769746e6573732e696e7374616e6365736090202d20606d203d207769746e6573732e696e7374616e63655f6d657464616461746173606c202d206061203d207769746e6573732e6174747269627574657360106d696e740c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652cb8204d696e7420616e20617373657420696e7374616e6365206f66206120706172746963756c617220636c6173732e00490120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265206d696e7465642ef0202d2060696e7374616e6365603a2054686520696e7374616e63652076616c7565206f662074686520617373657420746f206265206d696e7465642ee0202d206062656e6566696369617279603a2054686520696e697469616c206f776e6572206f6620746865206d696e7465642061737365742e009820456d697473206049737375656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f28312960106275726e0c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e2c636865636b5f6f776e6572ac4f7074696f6e3c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e34842044657374726f7920612073696e676c6520617373657420696e7374616e63652e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265206275726e65642ed8202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265206275726e65642e5501202d2060636865636b5f6f776e6572603a2049662060536f6d6560207468656e20746865206f7065726174696f6e2077696c6c206661696c2077697468206057726f6e674f776e65726020756e6c65737320746865802020206173736574206973206f776e656420627920746869732076616c75652e00b820456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e003c205765696768743a20604f2831296080204d6f6465733a2060636865636b5f6f776e65722e69735f736f6d652829602e207472616e736665720c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e10646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653cc8204d6f766520616e2061737365742066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f8204f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a88202d207468652041646d696e206f66207468652061737365742060636c617373603b94202d20746865204f776e6572206f66207468652061737365742060696e7374616e6365603b6101202d2074686520617070726f7665642064656c656761746520666f72207468652061737365742060696e7374616e6365602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e002c20417267756d656e74733ad4202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265207472616e736665727265642eec202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265207472616e736665727265642ee4202d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f66207468652061737365742e005420456d69747320605472616e73666572726564602e003c205765696768743a20604f283129602472656465706f7369740814636c6173734c436f6d706163743c543a3a436c61737349643e24696e7374616e636573485665633c543a3a496e7374616e636549643e44a02052656576616c7561746520746865206465706f73697473206f6e20736f6d65206173736574732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f2062652066726f7a656e2e5101202d2060696e7374616e636573603a2054686520696e7374616e636573206f662074686520617373657420636c6173732077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e005901204e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e7920617373657420696e7374616e6365732077686963682061726520756e6b6e6f776e206f723d0120696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220616101206465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e20696e7374616e63657359012077686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c7c20736f2069742773206f66206c6974746c6520636f6e73657175656e63652e0055012049742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636c61737320697320756e6b6e6f776e206f6620746865207369676e657220697368206e6f74207065726d697474656420746f2063616c6c2069742e0074205765696768743a20604f28696e7374616e6365732e6c656e2829296018667265657a650814636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e28f420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e20617373657420696e7374616e63652e004501204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f2062652066726f7a656e2ed8202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f2831296010746861770814636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e28d42052652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e20617373657420696e7374616e63652e004501204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265207468617765642ed8202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265207468617765642e004020456d6974732060546861776564602e003c205765696768743a20604f2831296030667265657a655f636c6173730414636c6173734c436f6d706163743c543a3a436c61737349643e24050120446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520617373657420636c6173732e004501204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00a4202d2060636c617373603a2054686520617373657420636c61737320746f2062652066726f7a656e2e005420456d6974732060436c61737346726f7a656e602e003c205765696768743a20604f2831296028746861775f636c6173730414636c6173734c436f6d706163743c543a3a436c61737349643e24e42052652d616c6c6f7720756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520617373657420636c6173732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652061737365742060636c617373602e008c202d2060636c617373603a2054686520636c61737320746f206265207468617765642e005420456d6974732060436c617373546861776564602e003c205765696768743a20604f28312960487472616e736665725f6f776e6572736869700814636c6173734c436f6d706163743c543a3a436c61737349643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652890204368616e676520746865204f776e6572206f6620616e20617373657420636c6173732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00e8202d2060636c617373603a2054686520617373657420636c6173732077686f7365206f776e65722073686f756c64206265206368616e6765642eb8202d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320617373657420636c6173732e005820456d69747320604f776e65724368616e676564602e003c205765696768743a20604f28312960207365745f7465616d1014636c6173734c436f6d706163743c543a3a436c61737349643e186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530e0204368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e20617373657420636c6173732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00e4202d2060636c617373603a2054686520617373657420636c6173732077686f7365207465616d2073686f756c64206265206368616e6765642ec0202d2060697373756572603a20546865206e657720497373756572206f66207468697320617373657420636c6173732eb8202d206061646d696e603a20546865206e65772041646d696e206f66207468697320617373657420636c6173732ec8202d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320617373657420636c6173732e005420456d69747320605465616d4368616e676564602e003c205765696768743a20604f2831296040617070726f76655f7472616e736665720c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c290120417070726f766520616e20696e7374616e636520746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e001501204f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f66207468652061737365742060696e7374616e6365602e002501202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e3d01202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e2101202d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e73666572207468652061737365742e009420456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e003c205765696768743a20604f283129603c63616e63656c5f617070726f76616c0c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e506d617962655f636865636b5f64656c6567617465ac4f7074696f6e3c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e4019012043616e63656c20746865207072696f7220617070726f76616c20666f7220746865207472616e73666572206f6620616e20617373657420627920612064656c65676174652e005c204f726967696e206d757374206265206569746865723a58202d207468652060466f72636560206f726967696e3b0501202d20605369676e656460207769746820746865207369676e6572206265696e67207468652041646d696e206f66207468652061737365742060636c617373603b1101202d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f66207468652061737365742060696e7374616e6365603b002c20417267756d656e74733a1d01202d2060636c617373603a2054686520636c617373206f6620746865206173736574206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e3501202d2060696e7374616e6365603a2054686520696e7374616e6365206f6620746865206173736574206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e5501202d20606d617962655f636865636b5f64656c6567617465603a2049662060536f6d65602077696c6c20656e7375726520746861742074686520676976656e206163636f756e7420697320746865206f6e6520746fb42020207768696368207065726d697373696f6e206f66207472616e736665722069732064656c6567617465642e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f2831296048666f7263655f61737365745f7374617475731c14636c6173734c436f6d706163743c543a3a436c61737349643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530667265655f686f6c64696e6710626f6f6c2469735f66726f7a656e10626f6f6c449c20416c746572207468652061747472696275746573206f66206120676976656e2061737365742e0078204f726967696e206d7573742062652060466f7263654f726967696e602e00a0202d2060636c617373603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d01202d2060667265655f686f6c64696e67603a20576865746865722061206465706f7369742069732074616b656e20666f7220686f6c64696e6720616e20696e7374616e6365206f66207468697320617373657424202020636c6173732e4101202d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e3820696e737472756374696f6e732e00ec20456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e003c205765696768743a20604f28312960347365745f6174747269627574651014636c6173734c436f6d706163743c543a3a436c61737349643e386d617962655f696e7374616e6365544f7074696f6e3c543a3a496e7374616e636549643e0c6b65796c426f756e6465645665633c75382c20543a3a4b65794c696d69743e1476616c756574426f756e6465645665633c75382c20543a3a56616c75654c696d69743e44c42053657420616e2061747472696275746520666f7220616e20617373657420636c617373206f7220696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653c2061737365742060636c617373602e00550120496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d0120604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e003d01202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e4101202d20606d617962655f696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e8c202d20606b6579603a20546865206b6579206f6620746865206174747269627574652ed0202d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e005820456d6974732060417474726962757465536574602e003c205765696768743a20604f283129603c636c6561725f6174747269627574650c14636c6173734c436f6d706163743c543a3a436c61737349643e386d617962655f696e7374616e6365544f7074696f6e3c543a3a496e7374616e636549643e0c6b65796c426f756e6465645665633c75382c20543a3a4b65794c696d69743e44c42053657420616e2061747472696275746520666f7220616e20617373657420636c617373206f7220696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653c2061737365742060636c617373602e00550120496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d0120604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e003d01202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e2901202d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e8c202d20606b6579603a20546865206b6579206f6620746865206174747269627574652ed0202d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e005820456d6974732060417474726962757465536574602e003c205765696768743a20604f28312960307365745f6d657461646174611014636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e106461746178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e2469735f66726f7a656e10626f6f6c44a02053657420746865206d6574616461746120666f7220616e20617373657420696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653c2061737365742060636c617373602e00550120496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af820604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e003d01202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e2901202d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e5501202d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3901202d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e005420456d69747320604d65746164617461536574602e003c205765696768743a20604f2831296038636c6561725f6d657461646174610814636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e34a820436c65617220746865206d6574616461746120666f7220616e20617373657420696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865482061737365742060696e7374616e6365602e00c020416e79206465706f73697420697320667265656420666f722074686520617373657420636c617373206f776e65722e004501202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f20636c6561722e3101202d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f28312960487365745f636c6173735f6d657461646174610c14636c6173734c436f6d706163743c543a3a436c61737349643e106461746178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e2469735f66726f7a656e10626f6f6c40942053657420746865206d6574616461746120666f7220616e20617373657420636c6173732e005901204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f664c207468652061737365742060636c617373602e005d0120496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af820604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e000501202d2060636c617373603a20546865206964656e746966696572206f66207468652061737365742077686f7365206d6574616461746120746f207570646174652e5501202d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3901202d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e006820456d6974732060436c6173734d65746164617461536574602e003c205765696768743a20604f2831296050636c6561725f636c6173735f6d657461646174610414636c6173734c436f6d706163743c543a3a436c61737349643e309c20436c65617220746865206d6574616461746120666f7220616e20617373657420636c6173732e005901204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f664c207468652061737365742060636c617373602e00c020416e79206465706f73697420697320667265656420666f722074686520617373657420636c617373206f776e65722e001901202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f7365206d6574616461746120746f20636c6561722e007820456d6974732060436c6173734d65746164617461436c6561726564602e003c205765696768743a20604f2831296001581c437265617465640c1c436c6173734964244163636f756e744964244163636f756e74496404e020416e20617373657420636c6173732077617320637265617465642e205c5b20636c6173732c2063726561746f722c206f776e6572205c5d30466f72636543726561746564081c436c6173734964244163636f756e74496404d420416e20617373657420636c6173732077617320666f7263652d637265617465642e205c5b20636c6173732c206f776e6572205c5d2444657374726f796564041c436c617373496404b020416e2061737365742060636c61737360207761732064657374726f7965642e205c5b20636c617373205c5d184973737565640c1c436c617373496428496e7374616e63654964244163636f756e74496404f020416e2061737365742060696e73746163656020776173206973737565642e205c5b20636c6173732c20696e7374616e63652c206f776e6572205c5d2c5472616e73666572726564101c436c617373496428496e7374616e63654964244163636f756e744964244163636f756e74496404110120416e2061737365742060696e73746163656020776173207472616e736665727265642e205c5b20636c6173732c20696e7374616e63652c2066726f6d2c20746f205c5d184275726e65640c1c436c617373496428496e7374616e63654964244163636f756e74496404010120416e2061737365742060696e7374616e636560207761732064657374726f7965642e205c5b20636c6173732c20696e7374616e63652c206f776e6572205c5d1846726f7a656e081c436c617373496428496e7374616e6365496404e020536f6d652061737365742060696e7374616e636560207761732066726f7a656e2e205c5b20636c6173732c20696e7374616e6365205c5d18546861776564081c436c617373496428496e7374616e6365496404e020536f6d652061737365742060696e7374616e63656020776173207468617765642e205c5b20636c6173732c20696e7374616e6365205c5d2c436c61737346726f7a656e041c436c617373496404ac20536f6d652061737365742060636c61737360207761732066726f7a656e2e205c5b20636c617373205c5d2c436c617373546861776564041c436c617373496404ac20536f6d652061737365742060636c6173736020776173207468617765642e205c5b20636c617373205c5d304f776e65724368616e676564081c436c6173734964244163636f756e74496404a420546865206f776e6572206368616e676564205c5b20636c6173732c206e65775f6f776e6572205c5d2c5465616d4368616e676564101c436c6173734964244163636f756e744964244163636f756e744964244163636f756e74496404010120546865206d616e6167656d656e74207465616d206368616e676564205c5b20636c6173732c206973737565722c2061646d696e2c20667265657a6572205c5d40417070726f7665645472616e73666572101c436c617373496428496e7374616e63654964244163636f756e744964244163636f756e7449640c550120416e2060696e7374616e636560206f6620616e2061737365742060636c6173736020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e73666572206279206130206064656c6567617465602e9c205c5b20636c6173732c20696e7374616e63652c206f776e65722c2064656c6567617465205c5d44417070726f76616c43616e63656c6c6564101c436c617373496428496e7374616e63654964244163636f756e744964244163636f756e7449640c610120416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e73666572207468652060696e7374616e636560206f6620616e2061737365742060636c6173736020776173682063616e63656c6c65642062792069747320606f776e6572602e9c205c5b20636c6173732c20696e7374616e63652c206f776e65722c2064656c6567617465205c5d4841737365745374617475734368616e676564041c436c6173734964081d0120416e2061737365742060636c617373602068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e30205c5b20636c617373205c5d40436c6173734d657461646174615365740c1c436c617373496478426f756e6465645665633c75382c20543a3a537472696e674c696d69743e10626f6f6c042d01204e6577206d6574616461746120686173206265656e2073657420666f7220616e20617373657420636c6173732e205c5b20636c6173732c20646174612c2069735f66726f7a656e205c5d50436c6173734d65746164617461436c6561726564041c436c617373496404e8204d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420636c6173732e205c5b20636c617373205c5d2c4d65746164617461536574101c436c617373496428496e7374616e6365496478426f756e6465645665633c75382c20543a3a537472696e674c696d69743e10626f6f6c08c4204e6577206d6574616461746120686173206265656e2073657420666f7220616e20617373657420696e7374616e63652e9c205c5b20636c6173732c20696e7374616e63652c20646174612c2069735f66726f7a656e205c5d3c4d65746164617461436c6561726564081c436c617373496428496e7374616e63654964041d01204d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420696e7374616e63652e205c5b20636c6173732c20696e7374616e6365205c5d2c52656465706f7369746564081c436c6173734964485665633c543a3a496e7374616e636549643e044d01204d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420696e7374616e63652e205c5b20636c6173732c207375636365737366756c5f696e7374616e636573205c5d30417474726962757465536574101c436c6173734964544f7074696f6e3c543a3a496e7374616e636549643e6c426f756e6465645665633c75382c20543a3a4b65794c696d69743e74426f756e6465645665633c75382c20543a3a56616c75654c696d69743e081101204e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220616e20617373657420636c617373206f7220696e7374616e63652ea0205c5b20636c6173732c206d617962655f696e7374616e63652c206b65792c2076616c7565205c5d40417474726962757465436c65617265640c1c436c6173734964544f7074696f6e3c543a3a496e7374616e636549643e6c426f756e6465645665633c75382c20543a3a4b65794c696d69743e08110120417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420636c617373206f7220696e7374616e63652eb8205c5b20636c6173732c206d617962655f696e7374616e63652c206b65792c206d617962655f76616c7565205c5d0028304e6f5065726d697373696f6e04ec20546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e047c2054686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c726561647945786973747304e82054686520617373657420696e7374616e63652049442068617320616c7265616479206265656e207573656420666f7220616e2061737365742e2857726f6e674f776e657204ec20546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e657373047020496e76616c6964207769746e657373206461746120676976656e2e14496e557365047c2054686520617373657420494420697320616c72656164792074616b656e2e1846726f7a656e049c2054686520617373657420696e7374616e6365206f7220636c6173732069732066726f7a656e2e3457726f6e6744656c656761746504f8205468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284e6f44656c6567617465047c205468657265206973206e6f2064656c656761746520617070726f7665642e28556e617070726f76656404c8204e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e26485472616e73616374696f6e53746f7261676501485472616e73616374696f6e53746f7261676524305472616e73616374696f6e7300010238543a3a426c6f636b4e756d626572505665633c5472616e73616374696f6e496e666f3e00040004d020436f6c6c656374696f6e206f66207472616e73616374696f6e206d6574616461746120627920626c6f636b206e756d6265722e284368756e6b436f756e7401010238543a3a426c6f636b4e756d6265720c753332001000000000049420436f756e7420696e6465786564206368756e6b7320666f72206561636820626c6f636b2e1c4279746546656500003042616c616e63654f663c543e040004582053746f72616765206665652070657220627974652e20456e74727946656500003042616c616e63654f663c543e040004742053746f726167652066656520706572207472616e73616374696f6e2e484d61785472616e73616374696f6e53697a6501000c753332100000000004cc204d6178696d756d20646174612073657420696e20612073696e676c65207472616e73616374696f6e20696e2062797465732e504d6178426c6f636b5472616e73616374696f6e7301000c753332100000000004d4204d6178696d756d206e756d626572206f6620696e6465786564207472616e73616374696f6e7320696e2074686520626c6f636b2e3453746f72616765506572696f64010038543a3a426c6f636b4e756d6265721000000000086d012053746f7261676520706572696f6420666f72206461746120696e20626c6f636b732e2053686f756c64206d61746368206073705f73746f726167655f70726f6f663a3a44454641554c545f53544f524147455f504552494f44605420666f7220626c6f636b20617574686f72696e672e44426c6f636b5472616e73616374696f6e730100505665633c5472616e73616374696f6e496e666f3e0400003050726f6f66436865636b6564010010626f6f6c0400049420576173207468652070726f6f6620636865636b656420696e207468697320626c6f636b3f010c1473746f72650410646174611c5665633c75383e18790120496e64657820616e642073746f72652064617461206f6e20636861696e2e204d696e696d756d20646174612073697a6520697320312062797465732c206d6178696d756d20697320604d61785472616e73616374696f6e53697a65602e390120446174612077696c6c2062652072656d6f766564206166746572206053544f524147455f504552494f446020626c6f636b732c20756e6c657373206072656e6577602069732063616c6c65642e2c2023203c7765696768743e1501202d206e2a6c6f67286e29206f6620646174612073697a652c20617320616c6c20646174612069732070757368656420746f20616e20696e2d6d656d6f727920747269652e88204164646974696f6e616c6c7920636f6e7461696e7320612044422077726974652e302023203c2f7765696768743e1472656e65770814626c6f636b38543a3a426c6f636b4e756d62657214696e6465780c7533321c31012052656e65772070726576696f75736c792073746f72656420646174612e20506172616d6574657273206172652074686520626c6f636b206e756d626572207468617420636f6e7461696e7329012070726576696f7573206073746f726560206f72206072656e6577602063616c6c20616e64207472616e73616374696f6e20696e6465782077697468696e207468617420626c6f636b2e0501205472616e73616374696f6e20696e64657820697320656d697474656420696e20746865206053746f72656460206f72206052656e6577656460206576656e742e78204170706c6965732073616d652066656573206173206073746f7265602e2c2023203c7765696768743e30202d20436f6e7374616e742e302023203c2f7765696768743e2c636865636b5f70726f6f66041470726f6f665c5472616e73616374696f6e53746f7261676550726f6f661c1d0120436865636b2073746f726167652070726f6f6620666f7220626c6f636b206e756d6265722060626c6f636b5f6e756d6265722829202d2053746f72616765506572696f64602e0501204966207375636820626c6f636b20646f6573206e6f74206578697374207468652070726f6f6620697320657870656374656420746f20626520604e6f6e65602e2c2023203c7765696768743e6901202d204c696e65617220772e722e7420746865206e756d626572206f6620696e6465786564207472616e73616374696f6e7320696e207468652070726f76656420626c6f636b20666f722072616e646f6d2070726f62696e672ea020546865726527732061204442207265616420666f722065616368207472616e73616374696f6e2ed4204865726520776520617373756d652061206d6178696d756d206f66203130302070726f626564207472616e73616374696f6e732e302023203c2f7765696768743e010c1853746f726564040c753332048c2053746f726564206461746120756e6465722073706563696669656420696e6465782e1c52656e65776564040c75333204902052656e65776564206461746120756e6465722073706563696669656420696e6465782e3050726f6f66436865636b65640004a02053746f726167652070726f6f6620776173207375636365737366756c6c7920636865636b65642e003444496e73756666696369656e7446756e6473047820496e73756666696369656e74206163636f756e742062616c616e63652e344e6f74436f6e66696775726564045c20496e76616c696420636f6e66696775726174696f6e2e3c52656e657765644e6f74466f756e6404802052656e657765642065787472696e736963206973206e6f7420666f756e642e40456d7074795472616e73616374696f6e049820417474656d7074696e6720746f2073746f726520656d707479207472616e73616374696f6e3c556e657870656374656450726f6f6604982050726f6f6620776173206e6f7420657870656374656420696e207468697320626c6f636b2e30496e76616c696450726f6f66046c2050726f6f66206661696c656420766572696669636174696f6e2e304d697373696e6750726f6f66045c204d697373696e672073746f726167652070726f6f662e404d697373696e6753746174654461746104d820556e61626c6520746f207665726966792070726f6f6620626563617375652073746174652064617461206973206d697373696e672e2c446f75626c65436865636b048420446f75626c652070726f6f6620636865636b20696e2074686520626c6f636b2e3c50726f6f664e6f74436865636b656404b02053746f726167652070726f6f6620776173206e6f7420636865636b656420696e2074686520626c6f636b2e4c5472616e73616374696f6e546f6f4c617267650468205472616e73616374696f6e20697320746f6f206c617267652e4c546f6f4d616e795472616e73616374696f6e73049020546f6f206d616e79207472616e73616374696f6e7320696e2074686520626c6f636b2e28426164436f6e7465787404d820417474656d7074656420746f2063616c6c206073746f726560206f757473696465206f6620626c6f636b20657865637574696f6e2e27041c40436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74" diff --git a/types/metadataV13_test.go b/types/metadataV13_test.go index b7c2a144a..383e4a611 100644 --- a/types/metadataV13_test.go +++ b/types/metadataV13_test.go @@ -20,7 +20,6 @@ import ( "testing" . "github.com/centrifuge/go-substrate-rpc-client/v4/types" - . "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" "github.com/stretchr/testify/assert" ) @@ -157,13 +156,3 @@ func TestMetadataV13_TestFindCallIndexWithUnknownFunction(t *testing.T) { _, err := exampleMetadataV13.FindCallIndex("Module2_13.unknownFunction") assert.Error(t, err) } - -func TestNewMetadataV13_Decode(t *testing.T) { - metadata := NewMetadataV13() - err := Decode(MustHexDecodeString(ExamplaryMetadataV13SubstrateString), metadata) - assert.EqualValues(t, metadata.Version, 13) - assert.NoError(t, err) - data, err := Encode(metadata) - assert.NoError(t, err) - assert.Equal(t, ExamplaryMetadataV13SubstrateString, HexEncodeToString(data)) -} diff --git a/types/metadataV14_examplary_string.go b/types/metadataV14_examplary_string.go deleted file mode 100644 index cb41fa1dc..000000000 --- a/types/metadataV14_examplary_string.go +++ /dev/null @@ -1,21 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -const ( - MetadataV14Data = "0x6d6574610e6109000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f0814496e64657801102c4163636f756e74446174610114001401146e6f6e6365100114496e646578000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e7444617461000010000005050014083c70616c6c65745f62616c616e6365732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500012c6d6973635f66726f7a656e18011c42616c616e63650001286665655f66726f7a656e18011c42616c616e636500001800000507001c0c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540120000c01186e6f726d616c2001045400012c6f7065726174696f6e616c200104540001246d616e6461746f727920010454000020000005060024083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00002800000208002c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677330013c5665633c4469676573744974656d3e000030000002340034102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e00060024436f6e73656e7375730800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000400105365616c0800380144436f6e73656e737573456e67696e654964000028011c5665633c75383e000500144f74686572040028011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000380000030400000008003c00000240004008306672616d655f73797374656d2c4576656e745265636f7264080445014404540124000c01147068617365b101011450686173650001146576656e7444010445000118746f70696373b50101185665633c543e00004408306e6f64655f72756e74696d65144576656e7400019c1853797374656d04004801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c5574696c697479040068015470616c6c65745f7574696c6974793a3a4576656e740001001c496e6469636573040074017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0005002042616c616e636573040078017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e00060068456c656374696f6e50726f76696465724d756c7469506861736504008001d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0009001c5374616b696e67040090017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000a001c53657373696f6e040094015470616c6c65745f73657373696f6e3a3a4576656e74000b002444656d6f6372616379040098018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e000c001c436f756e63696c0400ac01fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000d0048546563686e6963616c436f6d6d69747465650400b001fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e000e0024456c656374696f6e730400b401a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4576656e743c52756e74696d653e000f004c546563686e6963616c4d656d626572736869700400c001fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e0010001c4772616e6470610400c4015470616c6c65745f6772616e6470613a3a4576656e740011002054726561737572790400d8017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00120024436f6e7472616374730400dc018070616c6c65745f636f6e7472616374733a3a4576656e743c52756e74696d653e001300105375646f0400e0016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00140020496d4f6e6c696e650400e8018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e001500204f6666656e63657304000d01015870616c6c65745f6f6666656e6365733a3a4576656e74001700204964656e7469747904001501017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e001a001c536f636965747904001901017870616c6c65745f736f63696574793a3a4576656e743c52756e74696d653e001b00205265636f7665727904001d01017c70616c6c65745f7265636f766572793a3a4576656e743c52756e74696d653e001c001c56657374696e6704002101017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001d00245363686564756c657204002501018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e001e0020507265696d61676504003501017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e001f001450726f787904003901017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e002000204d756c746973696704004501017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e00210020426f756e7469657304004d01017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e002200105469707304005101016c70616c6c65745f746970733a3a4576656e743c52756e74696d653e0023001841737365747304005501017470616c6c65745f6173736574733a3a4576656e743c52756e74696d653e0024001c4c6f747465727904005901017870616c6c65745f6c6f74746572793a3a4576656e743c52756e74696d653e0026001047696c7404006101016c70616c6c65745f67696c743a3a4576656e743c52756e74696d653e0027001c556e697175657304006501017870616c6c65745f756e69717565733a3a4576656e743c52756e74696d653e002800485472616e73616374696f6e53746f7261676504007d0101a870616c6c65745f7472616e73616374696f6e5f73746f726167653a3a4576656e743c52756e74696d653e00290020426167734c69737404008101018070616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d653e002a00485374617465547269654d6967726174696f6e0400850101ac70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4576656e743c52756e74696d653e002b00344368696c64426f756e7469657304008d01019470616c6c65745f6368696c645f626f756e746965733a3a4576656e743c52756e74696d653e002c00245265666572656e646104009101018070616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d653e002d0040436f6e76696374696f6e566f74696e670400990101a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4576656e743c52756e74696d653e002e002457686974656c69737404009d01018070616c6c65745f77686974656c6973743a3a4576656e743c52756e74696d653e002f0000480c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f4c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7258013444697370617463684572726f7200013464697370617463685f696e666f4c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736824011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e4c0c346672616d655f737570706f72741c77656967687473304469737061746368496e666f00000c0118776569676874200118576569676874000114636c6173735001344469737061746368436c617373000120706179735f666565540110506179730000500c346672616d655f737570706f72741c77656967687473344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000540c346672616d655f737570706f72741c7765696768747310506179730001080c596573000000084e6f0001000058082873705f72756e74696d653444697370617463684572726f72000124144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504005c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400600128546f6b656e4572726f720007002841726974686d65746963040064013c41726974686d657469634572726f72000800005c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f720801087538000060082873705f72756e74696d6528546f6b656e4572726f7200011c1c4e6f46756e647300000020576f756c644469650001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006000064082873705f72756e74696d653c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f00020000680c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000110404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7258013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e344974656d436f6d706c657465640002041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e30446973706174636865644173040118726573756c746c01384469737061746368526573756c7400030458412063616c6c2077617320646973706174636865642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a0909096c0418526573756c740804540170044501580108084f6b040070000000000c4572720400580000010000700000040000740c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400010c34496e64657841737369676e656408010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780000047441206163636f756e7420696e646578207761732061737369676e65642e28496e6465784672656564040114696e64657810013c543a3a4163636f756e74496e646578000104bc41206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e2c496e64657846726f7a656e080114696e64657810013c543a3a4163636f756e74496e64657800010c77686f000130543a3a4163636f756e744964000204e841206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909780c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001281c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e63655365740c010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475737c01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a0909097c14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000800c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f726564080140656c656374696f6e5f636f6d7075746584013c456c656374696f6e436f6d70757465000130707265765f656a6563746564880110626f6f6c000018b44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e003d0149662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e204966207468650501736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e0051015468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6520726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a6564040140656c656374696f6e5f636f6d707574658c015c4f7074696f6e3c456c656374696f6e436f6d707574653e000108550154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c73652069662074686560656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0002042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040114726f756e6410010c753332000404c0546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040114726f756e6410010c753332000504c854686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090984089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e6379000400008800000500008c04184f7074696f6e04045401840108104e6f6e6500000010536f6d65040084000001000090103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e740404540001301c457261506169640c00100120457261496e646578000018013042616c616e63654f663c543e000018013042616c616e63654f663c543e00000c550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642ea85c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d2052657761726465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0001040501546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d1c536c61736865640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e00020821014f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e545c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564040010013053657373696f6e496e6465780003081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c648c6e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d385374616b657273456c65637465640004048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000510d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000604d8416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e0800000130543a3a4163636f756e744964000018013042616c616e63654f663c543e0007085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560ac66726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b65640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e744964000804090141206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d545374616b696e67456c656374696f6e4661696c6564000904ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640400000130543a3a4163636f756e744964000a082101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e245c5b73746173685c5d345061796f7574537461727465640800100120457261496e6465780000000130543a3a4163636f756e744964000b041501546865207374616b657273272072657761726473206172652067657474696e6720706169642e205c5b6572615f696e6465782c2076616c696461746f725f73746173685c5d0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909940c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909980c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e7404045400014c2050726f706f73656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000004bc41206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c65640c013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e0001286465706f7369746f72739c01445665633c543a3a4163636f756e7449643e000104d841207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400020494416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c537461727465640801247265665f696e64657810013c5265666572656e64756d496e6465780001247468726573686f6c64a00134566f74655468726573686f6c640003045c41207265666572656e64756d2068617320626567756e2e185061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000404ac412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f745061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000504ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c65640401247265665f696e64657810013c5265666572656e64756d496e6465780006048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e2045786563757465640801247265665f696e64657810013c5265666572656e64756d496e646578000118726573756c746c01384469737061746368526573756c7400070470412070726f706f73616c20686173206265656e20656e61637465642e2444656c65676174656408010c77686f000130543a3a4163636f756e744964000118746172676574000130543a3a4163636f756e744964000804dc416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404011c6163636f756e74000130543a3a4163636f756e744964000904e4416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c010c77686f000130543a3a4163636f756e74496400013470726f706f73616c5f6861736824011c543a3a48617368000114756e74696c100138543a3a426c6f636b4e756d626572000a0494416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e34507265696d6167654e6f7465640c013470726f706f73616c5f6861736824011c543a3a4861736800010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000b04dc412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e30507265696d616765557365640c013470726f706f73616c5f6861736824011c543a3a4861736800012070726f7669646572000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000c041101412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e3c507265696d616765496e76616c696408013470726f706f73616c5f6861736824011c543a3a486173680001247265665f696e64657810013c5265666572656e64756d496e646578000d040901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e3c507265696d6167654d697373696e6708013470726f706f73616c5f6861736824011c543a3a486173680001247265665f696e64657810013c5265666572656e64756d496e646578000e040901412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e38507265696d61676552656170656410013470726f706f73616c5f6861736824011c543a3a4861736800012070726f7669646572000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000118726561706572000130543a3a4163636f756e744964000f04290141207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722e2c426c61636b6c697374656404013470726f706f73616c5f6861736824011c543a3a48617368001004c4412070726f706f73616c5f6861736820686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e14566f7465640c0114766f746572000130543a3a4163636f756e7449640001247265665f696e64657810013c5265666572656e64756d496e646578000110766f7465a401644163636f756e74566f74653c42616c616e63654f663c543e3e00110490416e206163636f756e742068617320766f74656420696e2061207265666572656e64756d205365636f6e6465640801207365636f6e646572000130543a3a4163636f756e74496400012870726f705f696e64657810012450726f70496e6465780012048c416e206163636f756e742068617320736563636f6e64656420612070726f706f73616c0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a0909099c0000020000a00c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f7269747900020000a40c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f7465a80110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e636500010000a80c4070616c6c65745f64656d6f637261637910766f746510566f74650000040008000000ac0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736824011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736824011c543a3a48617368000114766f746564880110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736824011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736824011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736824011c543a3a48617368000118726573756c746c01384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736824011c543a3a48617368000118726573756c746c01384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736824011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909b00c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736824011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736824011c543a3a48617368000114766f746564880110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736824011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736824011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736824011c543a3a48617368000118726573756c746c01384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736824011c543a3a48617368000118726573756c746c01384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736824011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909b40c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144576656e7404045400011c1c4e65775465726d04012c6e65775f6d656d62657273b801ec5665633c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2042616c616e63654f663c543e293e000014450141206e6577207465726d2077697468206e65775f6d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e550174686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e65644501666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e645501736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f2c626567696e20776974682e24456d7074795465726d00010831014e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc8604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f72000204e4496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b65640401186d656d6265720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000308410141206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f723060456d7074795465726d602e2452656e6f756e63656404012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400040498536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0005103901412063616e6469646174652077617320736c617368656420627920616d6f756e742064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722872756e6e65722d75702e00e44e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408012c736561745f686f6c6465720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000604350141207365617420686f6c6465722077617320736c617368656420627920616d6f756e74206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909b8000002bc00bc00000408001800c00c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000004e054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f766564000104e854686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d6265727353776170706564000204d854776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740003041501546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000404844f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d790005046c5068616e746f6d206d656d6265722c206e6576657220757365642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909c40c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574c80134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909c8000002cc00cc00000408d02000d00c4c73705f66696e616c6974795f6772616e6470610c617070185075626c696300000400d4013c656432353531393a3a5075626c69630000d40c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000d80c3c70616c6c65745f74726561737572791870616c6c6574144576656e7408045400044900011c2050726f706f73656404013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000004344e65772070726f706f73616c2e205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000104e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640002047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e2052656a656374656408013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800011c736c617368656418013c42616c616e63654f663c542c20493e000304b0412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00040488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0005042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0006047c536f6d652066756e64732068617665206265656e206465706f73697465642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909dc0c4070616c6c65745f636f6e7472616374731870616c6c6574144576656e7404045400011830496e7374616e7469617465640801206465706c6f796572000130543a3a4163636f756e744964000120636f6e7472616374000130543a3a4163636f756e744964000004d8436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e285465726d696e61746564080120636f6e7472616374000130543a3a4163636f756e744964048454686520636f6e7472616374207468617420776173207465726d696e617465642e012c62656e6566696369617279000130543a3a4163636f756e74496404e4546865206163636f756e7420746861742072656365697665642074686520636f6e7472616374732072656d61696e696e672062616c616e6365011868436f6e747261637420686173206265656e2072656d6f7665642e001823204e6f7465003d01546865206f6e6c792077617920666f72206120636f6e747261637420746f2062652072656d6f76656420616e6420656d697474696e672074686973206576656e742069732062792063616c6c696e6744607365616c5f7465726d696e617465602e28436f646553746f726564040124636f64655f6861736824011c543a3a48617368000204b4436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c436f6e7472616374456d6974746564080120636f6e7472616374000130543a3a4163636f756e744964049054686520636f6e7472616374207468617420656d697474656420746865206576656e742e01106461746128011c5665633c75383e0835014461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e747261637420636f6d70696c6174696f6e5c6973206e656564656420746f206465636f64652069742e03049c4120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e2c436f646552656d6f766564040124636f64655f6861736824011c543a3a48617368000404ac4120636f6465207769746820746865207370656369666965642068617368207761732072656d6f7665642e4c436f6e7472616374436f6465557064617465640c0120636f6e7472616374000130543a3a4163636f756e744964048c54686520636f6e7472616374207468617420686173206265656e20757064617465642e01346e65775f636f64655f6861736824011c543a3a4861736804b04e657720636f646520686173682074686174207761732073657420666f722074686520636f6e74726163742e01346f6c645f636f64655f6861736824011c543a3a48617368048c50726576696f757320636f64652068617368206f662074686520636f6e74726163742e0504784120636f6e7472616374277320636f64652077617320757064617465642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909e00c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c746c01384469737061746368526573756c740000048841207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d284b65794368616e6765640401286f6c645f7375646f6572e401504f7074696f6e3c543a3a4163636f756e7449643e0001043901546865205c5b7375646f65725c5d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c696564206966206f6e6520657869737465642e285375646f4173446f6e6504012c7375646f5f726573756c746c01384469737061746368526573756c740002048841207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909e404184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000e80c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f6964ec0138543a3a417574686f726974794964000004c041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964602e1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504011c6f66666c696e65f4016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204290141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909ec104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400f0013c737232353531393a3a5075626c69630000f00c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000f4000002f800f80000040800fc00fc083870616c6c65745f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616c0101011c42616c616e636500010c6f776e0101011c42616c616e63650001186f7468657273050101ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e00000101000006180005010000020901000901083870616c6c65745f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c75650101011c42616c616e636500000d010c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64110101104b696e6400012074696d65736c6f742801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652e110100000310000000080015010c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001282c4964656e7469747953657404010c77686f000130543a3a4163636f756e744964000004ec41206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e3c4964656e74697479436c656172656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000104cc41206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e384964656e746974794b696c6c656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000204c441206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e484a756467656d656e7452657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780003049c41206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e504a756467656d656e74556e72657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780004048841206a756467656d656e74207265717565737420776173207265747261637465642e384a756467656d656e74476976656e080118746172676574000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780005049441206a756467656d656e742077617320676976656e2062792061207265676973747261722e38526567697374726172416464656404013c7265676973747261725f696e646578100138526567697374726172496e646578000604584120726567697374726172207761732061646465642e405375624964656e7469747941646465640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000704f441207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e485375624964656e7469747952656d6f7665640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e485375624964656e746974795265766f6b65640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000908190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d20746865c86d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090919010c3870616c6c65745f736f63696574791870616c6c6574144576656e740804540004490001401c466f756e64656404011c666f756e646572000130543a3a4163636f756e744964000004b454686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e0c42696408013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e0001085d0141206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f6666657238697320746865207365636f6e642e14566f7563680c013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e000120766f756368696e67000130543a3a4163636f756e7449640002085d0141206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64ec7468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e244175746f556e62696404012463616e646964617465000130543a3a4163636f756e7449640003040501412063616e646964617465207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404012463616e646964617465000130543a3a4163636f756e744964000404ac412063616e646964617465207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804012463616e646964617465000130543a3a4163636f756e744964000504f4412063616e646964617465207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408011c7072696d617279000130543a3a4163636f756e74496400012863616e646964617465739c01445665633c543a3a4163636f756e7449643e0006085501412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c2074686570626174636820696e2066756c6c20697320746865207365636f6e642e6053757370656e6465644d656d6265724a756467656d656e7408010c77686f000130543a3a4163636f756e7449640001186a7564676564880110626f6f6c0007048c412073757370656e646564206d656d62657220686173206265656e206a75646765642e4843616e64696461746553757370656e64656404012463616e646964617465000130543a3a4163636f756e74496400080478412063616e64696461746520686173206265656e2073757370656e6465643c4d656d62657253757370656e6465640401186d656d626572000130543a3a4163636f756e7449640009046c41206d656d62657220686173206265656e2073757370656e646564284368616c6c656e6765640401186d656d626572000130543a3a4163636f756e744964000a047041206d656d62657220686173206265656e206368616c6c656e67656410566f74650c012463616e646964617465000130543a3a4163636f756e744964000114766f746572000130543a3a4163636f756e744964000110766f7465880110626f6f6c000b04584120766f746520686173206265656e20706c6163656430446566656e646572566f7465080114766f746572000130543a3a4163636f756e744964000110766f7465880110626f6f6c000c04b44120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572344e65774d61784d656d6265727304010c6d617810010c753332000d049c41206e6577205c5b6d61785c5d206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404011c666f756e646572000130543a3a4163636f756e744964000e0454536f636965747920697320756e666f756e6465642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e000f04cc536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a0909091d010c3c70616c6c65745f7265636f766572791870616c6c6574144576656e740404540001183c5265636f766572794372656174656404011c6163636f756e74000130543a3a4163636f756e744964000004c841207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e206163636f756e742e445265636f76657279496e697469617465640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e744964000104290141207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e3c5265636f76657279566f75636865640c01306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400011873656e646572000130543a3a4163636f756e744964000204590141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e385265636f76657279436c6f7365640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e7449640003041d0141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e404163636f756e745265636f76657265640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400040401014c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e3c5265636f7665727952656d6f7665640401306c6f73745f6163636f756e74000130543a3a4163636f756e744964000504cc41207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e206163636f756e742e04304576656e747320747970652e21010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090925010c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000110245363686564756c65640801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736b2901016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869642d01013c4f7074696f6e3c5665633c75383e3e000118726573756c746c01384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e4043616c6c4c6f6f6b75704661696c65640c01107461736b2901016c5461736b416464726573733c543a3a426c6f636b4e756d6265723e00010869642d01013c4f7074696f6e3c5665633c75383e3e0001146572726f723101012c4c6f6f6b75704572726f7200030429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e04304576656e747320747970652e2901000004081010002d0104184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000310110346672616d655f737570706f727418747261697473207363686564756c652c4c6f6f6b75704572726f720001081c556e6b6e6f776e00000024426164466f726d61740001000035010c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736824011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736824011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736824011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090939010c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001143450726f78794578656375746564040118726573756c746c01384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e40416e6f6e796d6f757343726561746564100124616e6f6e796d6f7573000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f747970653d010130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465784101010c753136000108e8416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e000204e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f747970653d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200030448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f747970653d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200040450412070726f7879207761732072656d6f7665642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a0909093d0108306e6f64655f72756e74696d652450726f7879547970650001100c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e67000300004101000005040045010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e744901016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e744901016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c746c01384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e744901016454696d65706f696e743c543a3a426c6f636b4e756d6265723e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a0909094901083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c75333200004d010c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7404045400011c38426f756e747950726f706f736564040114696e64657810012c426f756e7479496e646578000004504e657720626f756e74792070726f706f73616c2e38426f756e747952656a6563746564080114696e64657810012c426f756e7479496e646578000110626f6e6418013042616c616e63654f663c543e000104cc4120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e48426f756e7479426563616d65416374697665040114696e64657810012c426f756e7479496e646578000204b84120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e34426f756e747941776172646564080114696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000304944120626f756e7479206973206177617264656420746f20612062656e65666963696172792e34426f756e7479436c61696d65640c0114696e64657810012c426f756e7479496e6465780001187061796f757418013042616c616e63654f663c543e00012c62656e6566696369617279000130543a3a4163636f756e7449640004048c4120626f756e747920697320636c61696d65642062792062656e65666963696172792e38426f756e747943616e63656c6564040114696e64657810012c426f756e7479496e646578000504584120626f756e74792069732063616e63656c6c65642e38426f756e7479457874656e646564040114696e64657810012c426f756e7479496e646578000604704120626f756e74792065787069727920697320657874656e6465642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090951010c2c70616c6c65745f746970731870616c6c6574144576656e74040454000114184e65775469700401207469705f6861736824011c543a3a486173680000049441206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e28546970436c6f73696e670401207469705f6861736824011c543a3a48617368000104d841207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e24546970436c6f7365640c01207469705f6861736824011c543a3a4861736800010c77686f000130543a3a4163636f756e7449640001187061796f757418013042616c616e63654f663c543e0002048441207469702073756767657374696f6e20686173206265656e20636c6f7365642e305469705265747261637465640401207469705f6861736824011c543a3a486173680003049041207469702073756767657374696f6e20686173206265656e207265747261637465642e28546970536c61736865640c01207469705f6861736824011c543a3a4861736800011866696e646572000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0004048841207469702073756767657374696f6e20686173206265656e20736c61736865642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090955010c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001481c437265617465640c012061737365745f6964100128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000130746f74616c5f737570706c79180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f6964100128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f6964100128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f6964100128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f6964100128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e2444657374726f79656404012061737365745f6964100128543a3a41737365744964000a0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000b048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f6964100128543a3a417373657449640001106e616d6528011c5665633c75383e00011873796d626f6c28011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e880110626f6f6c000c049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f6964100128543a3a41737365744964000d049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f6964100128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000e043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000f04f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650010083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f6964100128543a3a41737365744964001104f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090959010c3870616c6c65745f6c6f74746572791870616c6c6574144576656e74040454000110384c6f7474657279537461727465640000046c41206c6f747465727920686173206265656e2073746172746564213043616c6c73557064617465640001048441206e657720736574206f662063616c6c732068617665206265656e20736574211857696e6e657208011877696e6e6572000130543a3a4163636f756e74496400013c6c6f74746572795f62616c616e636518013042616c616e63654f663c543e00020464412077696e6e657220686173206265656e2063686f73656e21305469636b6574426f7567687408010c77686f000130543a3a4163636f756e74496400012863616c6c5f696e6465785d01012443616c6c496e6465780003046441207469636b657420686173206265656e20626f75676874210499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a0909095d010000040808080061010c2c70616c6c65745f67696c741870616c6c6574144576656e7404045400011024426964506c616365640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c75333200000478412062696420776173207375636365737366756c6c7920706c616365642e304269645265747261637465640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c7533320001040501412062696420776173207375636365737366756c6c792072656d6f76656420286265666f7265206265696e6720616363657074656420617320612067696c74292e2847696c74497373756564100114696e64657810012c416374697665496e646578000118657870697279100138543a3a426c6f636b4e756d62657200010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002042d0141206269642077617320616363657074656420617320612067696c742e205468652062616c616e6365206d6179206e6f742062652072656c656173656420756e74696c206578706972792e2847696c74546861776564100114696e64657810012c416374697665496e64657800010c77686f000130543a3a4163636f756e74496400013c6f726967696e616c5f616d6f756e7418013042616c616e63654f663c543e0001446164646974696f6e616c5f616d6f756e7418013042616c616e63654f663c543e00030480416e20657870697265642067696c7420686173206265656e207468617765642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090965010c3870616c6c65745f756e69717565731870616c6c6574144576656e7408045400044900015c1c437265617465640c0114636c617373100128543a3a436c617373496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c416e20617373657420636c6173732077617320637265617465642e30466f72636543726561746564080114636c617373100128543a3a436c61737349640001146f776e6572000130543a3a4163636f756e74496400010484416e20617373657420636c6173732077617320666f7263652d637265617465642e2444657374726f796564040114636c617373100128543a3a436c61737349640002047c416e2061737365742060636c61737360207761732064657374726f7965642e184973737565640c0114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e636549640001146f776e6572000130543a3a4163636f756e7449640003047c416e2061737365742060696e7374616e63656020776173206973737565642e2c5472616e73666572726564100114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e6365496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040490416e2061737365742060696e7374616e63656020776173207472616e736665727265642e184275726e65640c0114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e636549640001146f776e6572000130543a3a4163636f756e74496400050488416e2061737365742060696e7374616e636560207761732064657374726f7965642e1846726f7a656e080114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e6365496400060484536f6d652061737365742060696e7374616e636560207761732066726f7a656e2e18546861776564080114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e6365496400070484536f6d652061737365742060696e7374616e63656020776173207468617765642e2c436c61737346726f7a656e040114636c617373100128543a3a436c617373496400080478536f6d652061737365742060636c61737360207761732066726f7a656e2e2c436c617373546861776564040114636c617373100128543a3a436c617373496400090478536f6d652061737365742060636c6173736020776173207468617765642e304f776e65724368616e676564080114636c617373100128543a3a436c61737349640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100114636c617373100128543a3a436c6173734964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e744964000b0470546865206d616e6167656d656e74207465616d206368616e6765642e40417070726f7665645472616e73666572100114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e636549640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000c085101416e2060696e7374616e636560206f6620616e2061737365742060636c6173736020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e7366657220627920612c6064656c6567617465602e44417070726f76616c43616e63656c6c6564100114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e636549640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d085d01416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e73666572207468652060696e7374616e636560206f6620616e2061737365742060636c61737360207761736463616e63656c6c65642062792069747320606f776e6572602e4841737365745374617475734368616e676564040114636c617373100128543a3a436c6173734964000e041901416e2061737365742060636c617373602068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e40436c6173734d657461646174615365740c0114636c617373100128543a3a436c61737349640001106461746169010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e880110626f6f6c000f04b44e6577206d6574616461746120686173206265656e2073657420666f7220616e20617373657420636c6173732e50436c6173734d65746164617461436c6561726564040114636c617373100128543a3a436c6173734964001004b44d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420636c6173732e2c4d65746164617461536574100114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e636549640001106461746169010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e880110626f6f6c001104c04e6577206d6574616461746120686173206265656e2073657420666f7220616e20617373657420696e7374616e63652e3c4d65746164617461436c6561726564080114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e63654964001204c04d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420696e7374616e63652e2c52656465706f7369746564080114636c617373100128543a3a436c61737349640001507375636365737366756c5f696e7374616e6365736d0101485665633c543a3a496e7374616e636549643e001304c04d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420696e7374616e63652e30417474726962757465536574100114636c617373100128543a3a436c61737349640001386d617962655f696e7374616e6365710101544f7074696f6e3c543a3a496e7374616e636549643e00010c6b65797501016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0014040d014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220616e20617373657420636c617373206f7220696e7374616e63652e40417474726962757465436c65617265640c0114636c617373100128543a3a436c61737349640001386d617962655f696e7374616e6365710101544f7074696f6e3c543a3a496e7374616e636549643e00010c6b65797501016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0015040d01417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420636c617373206f7220696e7374616e63652e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e74496400012c6d617962655f636c617373710101484f7074696f6e3c543a3a436c61737349643e001604c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909690110346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401080453000004002801185665633c543e00006d010000021000710104184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000750110346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401080453000004002801185665633c543e0000790110346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401080453000004002801185665633c543e00007d010c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c6574144576656e7404045400010c1853746f726564040114696e64657810010c7533320000048853746f726564206461746120756e6465722073706563696669656420696e6465782e1c52656e65776564040114696e64657810010c7533320001048c52656e65776564206461746120756e6465722073706563696669656420696e6465782e3050726f6f66436865636b65640002049c53746f726167652070726f6f6620776173207375636365737366756c6c7920636865636b65642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090981010c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001042052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d200120543a3a53636f7265000108746f200120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090985010c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144576656e74040454000110204d696772617465640c010c746f7010010c7533320001146368696c6410010c75333200011c636f6d70757465890101404d6967726174696f6e436f6d707574650000083901476976656e206e756d626572206f66206028746f702c206368696c642960206b6579732077657265206d6967726174656420726573706563746976656c792c20776974682074686520676976656e2860636f6d70757465602e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104b4536f6d65206163636f756e7420676f7420736c61736865642062792074686520676976656e20616d6f756e742e544175746f4d6967726174696f6e46696e697368656400020484546865206175746f206d6967726174696f6e207461736b2066696e69736865642e1848616c746564000304544d6967726174696f6e20676f742068616c7465642e0470496e6e6572206576656e7473206f6620746869732070616c6c65742e89010c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574404d6967726174696f6e436f6d70757465000108185369676e6564000000104175746f000100008d010c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144576656e74040454000110144164646564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780000046041206368696c642d626f756e74792069732061646465642e1c417761726465640c0114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000104ac41206368696c642d626f756e7479206973206177617264656420746f20612062656e65666963696172792e1c436c61696d6564100114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780001187061796f757418013042616c616e63654f663c543e00012c62656e6566696369617279000130543a3a4163636f756e744964000204a441206368696c642d626f756e747920697320636c61696d65642062792062656e65666963696172792e2043616e63656c6564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780003047041206368696c642d626f756e74792069732063616e63656c6c65642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090991010c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74040454000134245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b080130547261636b49644f663c543e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e013470726f706f73616c5f6861736824011c543a3a4861736804ac5468652068617368206f66207468652070726f706f73616c20757020666f72207265666572656e64756d2e00048441207265666572656e64756d20686173206265696e67207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013042616c616e63654f663c543e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013042616c616e63654f663c543e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013042616c616e63654f663c543e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03047041206465706f73697420686173206265656e20736c6173686165642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b080130547261636b49644f663c543e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e013470726f706f73616c5f6861736824011c543a3a4861736804ac5468652068617368206f66207468652070726f706f73616c20757020666f72207265666572656e64756d2e011474616c6c7995010120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7995010120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7995010120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7995010120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7995010120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7995010120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a09090995010c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065731454616c6c790814566f746573011814546f74616c00000c011061796573180114566f7465730001106e617973180114566f74657300011c7475726e6f7574180114566f746573000099010c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144576656e740404540001082444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000104f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e0499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a0909099d010c4070616c6c65745f77686974656c6973741870616c6c6574144576656e7404045400010c3c43616c6c57686974656c697374656404012463616c6c5f6861736824011c543a3a486173680000005857686974656c697374656443616c6c52656d6f76656404012463616c6c5f6861736824011c543a3a486173680001006457686974656c697374656443616c6c4469737061746368656408012463616c6c5f6861736824011c543a3a48617368000118726573756c74a10101684469737061746368526573756c7457697468506f7374496e666f0002000499010a090909546865205b6576656e745d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f72732920656d69747465640a090909627920746869732070616c6c65742e0a090909a1010418526573756c7408045401a501044501ad010108084f6b0400a501000000000c4572720400ad010000010000a5010c346672616d655f737570706f72741c7765696768747340506f73744469737061746368496e666f000008013461637475616c5f776569676874a90101384f7074696f6e3c5765696768743e000120706179735f666565540110506179730000a90104184f7074696f6e04045401200108104e6f6e6500000010536f6d650400200000010000ad01082873705f72756e74696d656444697370617463684572726f7257697468506f7374496e666f0410496e666f01a50100080124706f73745f696e666fa5010110496e666f0001146572726f7258013444697370617463684572726f720000b10108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000b5010000022400b901000002290100bd0108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ec101014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65c501016473705f72756e74696d653a3a52756e74696d65537472696e670000c1010000061000c5010000050200c9010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001242866696c6c5f626c6f636b040114726174696fcd01011c50657262696c6c00000405014120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b04011872656d61726b28011c5665633c75383e000114684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002823203c7765696768743e202d20604f283129602c23203c2f7765696768743e387365745f686561705f7061676573040114706167657320010c753634000204f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646528011c5665633c75383e0003306453657420746865206e65772072756e74696d6520636f64652e002823203c7765696768743e31012d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656045012d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e60207768696368206973342020657870656e73697665292e842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e4d0154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c7920746869732069732076657279b8657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e2c23203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b73040110636f646528011c5665633c75383e000424190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002823203c7765696768743e8c2d20604f2843296020776865726520604360206c656e677468206f662060636f646560842d20312073746f726167652077726974652028636f64656320604f28432960292e402d203120646967657374206974656d2e282d2031206576656e742e550154686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c48626c6f636b2e2023203c2f7765696768743e2c7365745f73746f726167650401146974656d73d10101345665633c4b657956616c75653e0005046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973d90101205665633c4b65793e000604744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697828010c4b657900011c7375626b65797310010c75333200071011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b28011c5665633c75383e000804a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ecd010c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000d101000002d50100d50100000408282800d9010000022800dd010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2001185765696768740001246d61785f626c6f636b2001185765696768740001247065725f636c617373e10101845065724469737061746368436c6173733c57656967687473506572436c6173733e0000e1010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c61737304045401e501000c01186e6f726d616ce50101045400012c6f7065726174696f6e616ce5010104540001246d616e6461746f7279e5010104540000e5010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632001185765696768740001346d61785f65787472696e736963a90101384f7074696f6e3c5765696768743e0001246d61785f746f74616ca90101384f7074696f6e3c5765696768743e0001207265736572766564a90101384f7074696f6e3c5765696768743e0000e9010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178ed0101545065724469737061746368436c6173733c7533323e0000ed010c346672616d655f737570706f72741c77656967687473405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000f1010c346672616d655f737570706f72741c776569676874733c52756e74696d65446257656967687400000801107265616420011857656967687400011477726974652001185765696768740000f501082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65c501013452756e74696d65537472696e67000124696d706c5f6e616d65c501013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973f901011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000f901040c436f7704045401fd01000400fd01000000fd0100000201020001020000040805021000050200000308000000080009020c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c65740d020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011014626174636804011463616c6c73110201605665633c3c5420617320436f6e6669673e3a3a43616c6c3e00004c7c53656e642061206261746368206f662064697370617463682063616c6c732e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465784101010c75313600011063616c6c15020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73110201605665633c3c5420617320436f6e6669673e3a3a43616c6c3e000238ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00784d61792062652063616c6c65642066726f6d20616e79206f726967696e2e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e005d014966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c8627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002823203c7765696768743e01012d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c23203c2f7765696768743e2c64697370617463685f617308012461735f6f726967696e29050154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c15020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000328c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002823203c7765696768743e1c2d204f2831292e602d204c696d697465642073746f726167652072656164732e5c2d204f6e6520444220777269746520286576656e74292e1d012d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b20543a3a576569676874496e666f3a3a64697370617463685f617328292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e1102000002150200150208306e6f64655f72756e74696d651043616c6c0001a41853797374656d0400c90101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c5574696c69747904000d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e00010010426162650400190201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d700400410201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e00030028417574686f72736869700400490201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c417574686f72736869702c2052756e74696d653e0004001c496e64696365730400510201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0005002042616c616e6365730400550201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00060068456c656374696f6e50726f76696465724d756c746950686173650400610201fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e0009001c5374616b696e6704004d0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e000a001c53657373696f6e0400750301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e000b002444656d6f63726163790400810301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e000c001c436f756e63696c0400890301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e000d0048546563686e6963616c436f6d6d697474656504008d0301dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e000e0024456c656374696f6e730400910301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e732c2052756e74696d653e000f004c546563686e6963616c4d656d626572736869700400990301e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c4d656d626572736869702c2052756e74696d653e0010001c4772616e64706104009d0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e0011002054726561737572790400cd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00120024436f6e7472616374730400d10301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e7472616374732c2052756e74696d653e001300105375646f0400d90301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00140020496d4f6e6c696e650400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e001500204964656e746974790400fd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e001a001c536f636965747904009d0401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536f63696574792c2052756e74696d653e001b00205265636f766572790400a50401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265636f766572792c2052756e74696d653e001c001c56657374696e670400a90401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001d00245363686564756c65720400b10401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e001e0020507265696d6167650400bd0401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e001f001450726f78790400c10401a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e002000204d756c74697369670400c90401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e00210020426f756e746965730400d50401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e00220010546970730400d90401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546970732c2052756e74696d653e002300184173736574730400dd0401ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574732c2052756e74696d653e0024001c4c6f74746572790400e50401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6f74746572792c2052756e74696d653e0026001047696c740400e90401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c47696c742c2052756e74696d653e0027001c556e69717565730400f50401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556e69717565732c2052756e74696d653e002800485472616e73616374696f6e53746f726167650400010501dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73616374696f6e53746f726167652c2052756e74696d653e00290020426167734c6973740400090501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426167734c6973742c2052756e74696d653e002a00485374617465547269654d6967726174696f6e04000d0501dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374617465547269654d6967726174696f6e2c2052756e74696d653e002b00344368696c64426f756e746965730400210501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4368696c64426f756e746965732c2052756e74696d653e002c00245265666572656e64610400250501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64612c2052756e74696d653e002d0040436f6e76696374696f6e566f74696e670400410501d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e76696374696f6e566f74696e672c2052756e74696d653e002e002457686974656c6973740400550501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c57686974656c6973742c2052756e74696d653e002f000019020c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f661d020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6631020140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f661d020184426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e00013c6b65795f6f776e65725f70726f6f6631020140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967350201504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e1d02084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572012102084964012902001001206f6666656e646572290201084964000110736c6f742d020110536c6f7400013066697273745f686561646572210201184865616465720001347365636f6e645f6865616465722102011848656164657200002102102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d626572011010486173680125020014012c706172656e745f68617368240130486173683a3a4f75747075740001186e756d626572c10101184e756d62657200012873746174655f726f6f74240130486173683a3a4f757470757400013c65787472696e736963735f726f6f74240130486173683a3a4f75747075740001186469676573742c0118446967657374000025020c2873705f72756e74696d65187472616974732c426c616b6554776f3235360000000029020c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400f0013c737232353531393a3a5075626c696300002d02084873705f636f6e73656e7375735f736c6f747310536c6f740000040020010c75363400003102082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573d90101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000035020c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046339020128287536342c2075363429000134616c6c6f7765645f736c6f74733d020130416c6c6f776564536c6f7473000100003902000004082020003d02084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f74730002000041020c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f7745020124543a3a4d6f6d656e7400004054536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627940604d696e696d756d506572696f64602e00d4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002823203c7765696768743e31012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602961012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4502000006200049020c4470616c6c65745f617574686f72736869701870616c6c65741043616c6c040454000104287365745f756e636c65730401286e65775f756e636c65734d0201385665633c543a3a4865616465723e0000046050726f76696465206120736574206f6620756e636c65732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e4d0200000221020051020c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011414636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000489841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e207472616e7366657208010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780001505d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e642d204f6e65207472616e73666572206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ae02020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e42020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e74292c23203c2f7765696768743e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000248944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e602d204f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e38666f7263655f7472616e736665720c010c6e6577000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65880110626f6f6c0003545501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e782d20557020746f206f6e652072657365727665206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743af42020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229f82020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e6572292c23203c2f7765696768743e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004484101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002823203c7765696768743e242d20604f283129602e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e702d20557020746f206f6e6520736c617368206f7065726174696f6e2e302d204f6e65206576656e742e4c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d902d204442205765696768743a203120526561642f577269746520284163636f756e7473292c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e55020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000118207472616e73666572080110646573745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c756501010128543a3a42616c616e6365000064d45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e000501607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002823203c7765696768743e61012d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e66696794202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e31012d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c6578382020636f6d7075746174696f6e2e004852656c617465642066756e6374696f6e733a004d0120202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e290120202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365cc2020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e5d0120202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e5d0120202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636bdc202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e842d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d11012d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e2c23203c2f7765696768743e2c7365745f62616c616e63650c010c77686f5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001206e65775f6672656501010128543a3a42616c616e63650001306e65775f726573657276656401010128543a3a42616c616e636500012090536574207468652062616c616e636573206f66206120676976656e206163636f756e742e001d01546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c3101616c736f20616c7465722074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e6365602920617070726f7072696174656c792e1501496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742cfc69742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e38666f7263655f7472616e736665720c0118736f757263655902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646573745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c756501010128543a3a42616c616e63650002184d0145786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d6179206265287370656369666965642e2823203c7765696768743e4d012d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f747c2020617373756d656420746f20626520696e20746865206f7665726c61792e2c23203c2f7765696768743e4c7472616e736665725f6b6565705f616c697665080110646573745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c756501010128543a3a42616c616e63650003184d0153616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c207468653c6f726967696e206163636f756e742e00b8393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c05b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001286b6565705f616c697665880110626f6f6c00044405015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fc820206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e2023203c7765696768743e39012d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e302020233c2f7765696768743e3c666f7263655f756e7265736572766508010c77686f5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e59020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780110011408496404000001244163636f756e74496400000014496e6465780400c10101304163636f756e74496e6465780001000c526177040028011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004005d0201205b75383b2032305d000400005d0200000314000000080061020c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6e6502017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e00011c7769746e65737339030158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f72653d0301544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f72747341030158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6e6502017c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b0801406d617962655f6d61785f766f746572737101012c4f7074696f6e3c7533323e0001446d617962655f6d61785f746172676574737101012c4f7074696f6e3c7533323e00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e6502089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e040453016902000c0120736f6c7574696f6e690201045300011473636f726535030134456c656374696f6e53636f7265000114726f756e6410010c7533320000690208306e6f64655f72756e74696d65384e706f73536f6c7574696f6e31360000400118766f746573316d0200000118766f74657332790200000118766f746573338d0200000118766f74657334990200000118766f74657335a50200000118766f74657336b10200000118766f74657337bd0200000118766f74657338c90200000118766f74657339d5020000011c766f7465733130e1020000011c766f7465733131ed020000011c766f7465733132f9020000011c766f746573313305030000011c766f746573313411030000011c766f74657331351d030000011c766f746573313629030000006d02000002710200710200000408c101750200750200000641010079020000027d02007d020000040cc10181027502008102000004087502850200850200000689020089020c3473705f61726974686d65746963287065725f7468696e677318506572553136000004004101010c75313600008d0200000291020091020000040cc101950275020095020000030200000081020099020000029d02009d020000040cc101a102750200a10200000303000000810200a502000002a90200a9020000040cc101ad02750200ad0200000304000000810200b102000002b50200b5020000040cc101b902750200b90200000305000000810200bd02000002c10200c1020000040cc101c502750200c50200000306000000810200c902000002cd0200cd020000040cc101d102750200d10200000307000000810200d502000002d90200d9020000040cc101dd02750200dd0200000308000000810200e102000002e50200e5020000040cc101e902750200e90200000309000000810200ed02000002f10200f1020000040cc101f502750200f5020000030a000000810200f902000002fd0200fd020000040cc101010375020001030000030b000000810200050300000209030009030000040cc1010d037502000d030000030c000000810200110300000215030015030000040cc101190375020019030000030d0000008102001d0300000221030021030000040cc101250375020025030000030e00000081020029030000022d03002d030000040cc101310375020031030000030f0000008102003503084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e636500003903089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273c101010c75333200011c74617267657473c101010c75333200003d0304184f7074696f6e0404540135030108104e6f6e6500000010536f6d650400350300000100004103000002450300450300000408004903004903084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273b801845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e00004d03103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400016810626f6e640c0128636f6e74726f6c6c65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c75650101013042616c616e63654f663c543e00011470617965655103017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000044610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e2823203c7765696768743ed02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65643d01756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e482d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c23203c2f7765696768743e28626f6e645f65787472610401386d61785f6164646974696f6e616c0101013042616c616e63654f663c543e00013c610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e2c23203c2f7765696768743e18756e626f6e6404011476616c75650101013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029390163616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564f8746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200033c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0031015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4877686174657665722069742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002823203c7765696768743e0501436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2c23203c2f7765696768743e2076616c696461746504011470726566735503013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574735d0301a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00052c0d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743e2d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e2c23203c2f7765696768743e146368696c6c00062cc44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c23203c2f7765696768743e247365745f706179656504011470617965655103017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000740b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d382d205765696768743a204f283129302d204442205765696768743a48202020202d20526561643a204c656467657248202020202d2057726974653a2050617965652c23203c2f7765696768743e387365745f636f6e74726f6c6c6572040128636f6e74726f6c6c65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650008408c2852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002823203c7765696768743ee42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e282d2d2d2d2d2d2d2d2d2d305765696768743a204f283129284442205765696768743af02d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f42d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c65722c23203c2f7765696768743e4c7365745f76616c696461746f725f636f756e7404010c6e6577c101010c75333200092090536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e305765696768743a204f2831295857726974653a2056616c696461746f7220436f756e742c23203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616cc101010c753332000a1ca8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e547363616c655f76616c696461746f725f636f756e74040118666163746f726103011c50657263656e74000b1cd05363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002823203c7765696768743e9853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e2c23203c2f7765696768743e34666f7263655f6e6f5f65726173000c3cac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129442d2057726974653a20466f7263654572612c23203c2f7765696768743e34666f7263655f6e65775f657261000d404901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002823203c7765696768743e3c2d204e6f20617267756d656e74732e382d205765696768743a204f283129402d20577269746520466f7263654572612c23203c2f7765696768743e447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c65739c01445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f0c0901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e64696365736d0101205665633c7533323e0011149443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012540d01506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e0049012d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f2501202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e002823203c7765696768743efc2d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec02d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e2c2d2d2d2d2d2d2d2d2d2d2d19014e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f72291c5765696768743a842d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c02d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e29004d0120204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e55012020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e2c23203c2f7765696768743e187265626f6e6404011476616c75650101013042616c616e63654f663c543e001324dc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e002823203c7765696768743ed02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602ef02d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e2c23203c2f7765696768743e447365745f686973746f72795f64657074680801446e65775f686973746f72795f6465707468c1010120457261496e6465780001446572615f6974656d735f64656c65746564c101010c7533320014582d015365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e7c7768656e2060486973746f727944657074686020697320726564756365642e002c506172616d65746572733a0d012d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e59012d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e20546869735d01202073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c642065726120686973746f72792e590120204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e20547275737465642062792060526f6f746020746f207265706f727420616e4820206163637572617465206e756d6265722e00504f726967696e206d75737420626520726f6f742e002823203c7765696768743edc2d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d2033382d205765696768743a204f284529302d204442205765696768743a9c202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074686c202020202d205772697465733a20486973746f72792044657074682d01202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f7250726566732501202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c6c20202020202045726173537461727453657373696f6e496e6465782c23203c2f7765696768743e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320015305d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e106b69636b04010c77686f5d0301a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e00162ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731801486d696e5f6e6f6d696e61746f725f626f6e6465030158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e6465030158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e7469030134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e7469030134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c646d030144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e71030144436f6e6669674f703c50657262696c6c3e001744ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00a84f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f74686572040128636f6e74726f6c6c6572000130543a3a4163636f756e74496400186841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400190c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e5103083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400005503083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6e5903011c50657262696c6c00011c626c6f636b6564880110626f6f6c00005903000006cd01005d0300000259020061030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800006503103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200006903103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200006d03103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454016103010c104e6f6f700000000c536574040061030104540001001852656d6f7665000200007103103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401cd01010c104e6f6f700000000c5365740400cd010104540001001852656d6f76650002000075030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579737903011c543a3a4b65797300011470726f6f6628011c5665633c75383e000038e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002823203c7765696768743e11012d20436f6d706c65786974793a20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a02d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b65797360802d204462526561647320706572206b65792069643a20604b65794f776e657260842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e2870757267655f6b657973000140c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e002823203c7765696768743e61012d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468a420206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642eec2d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a02d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e7460842d20446257726974657320706572206b65792069643a20604b65794f776e6572602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e790308306e6f64655f72756e74696d652c53657373696f6e4b657973000010011c6772616e647061d001d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265290201c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65ec01d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f766572797d0301fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300007d030c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400f0013c737232353531393a3a5075626c6963000081030c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c0404540001641c70726f706f736508013470726f706f73616c5f6861736824011c543a3a4861736800011476616c75650101013042616c616e63654f663c543e00002c9c50726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e001501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737480686176652066756e647320746f20636f76657220746865206465706f7369742e00d42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e15012d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e0044456d697473206050726f706f736564602e00385765696768743a20604f28702960187365636f6e6408012070726f706f73616cc101012450726f70496e64657800014c7365636f6e64735f75707065725f626f756e64c101010c753332000128b45369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e64657211016d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00c82d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e41012d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e20746869732501202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e001d015765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f74650801247265665f696e646578c101013c5265666572656e64756d496e646578000110766f7465a401644163636f756e74566f74653c42616c616e63654f663c543e3e0002243101566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00dc2d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e002d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e6465780003204d015363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d652c7265666572656e64756d2e00f8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d02d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e003c5765696768743a20604f283129602e4065787465726e616c5f70726f706f736504013470726f706f73616c5f6861736824011c543a3a486173680004242d015363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c2c7265666572656e64756d2e00e8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e0015015765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2eb820204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f7269747904013470726f706f73616c5f6861736824011c543a3a4861736800052c55015363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c655c616e2065787465726e616c207265666572656e64756d2e00ec546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c7404013470726f706f73616c5f6861736824011c543a3a4861736800062c45015363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f807363686564756c6520616e2065787465726e616c207265666572656e64756d2e00e8546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f2831296028666173745f747261636b0c013470726f706f73616c5f6861736824011c543a3a48617368000134766f74696e675f706572696f64100138543a3a426c6f636b4e756d62657200011464656c6179100138543a3a426c6f636b4e756d62657200073c4d015363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c65646101696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65e8627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d0546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e5d012d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9420206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e51012d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265b82020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e0040456d697473206053746172746564602e00385765696768743a20604f28312960347665746f5f65787465726e616c04013470726f706f73616c5f6861736824011c543a3a48617368000824b85665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00d8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e002d012d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e003c456d69747320605665746f6564602e00fc5765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d0401247265665f696e646578c101013c5265666572656e64756d496e64657800091c5052656d6f76652061207265666572656e64756d2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d42d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004423205765696768743a20604f283129602e3463616e63656c5f717565756564040114776869636810013c5265666572656e64756d496e646578000a1c9c43616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c42d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0049015765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c0108746f000130543a3a4163636f756e744964000128636f6e76696374696f6e85030128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000b50390144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72590120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c69646174656494202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c6567617465000c30cc556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64dc6f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e0050456d6974732060556e64656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c73000d1470436c6561727320616c6c207075626c69632070726f706f73616c732e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e003c5765696768743a20604f283129602e346e6f74655f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e000e285d0152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f2062652101696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e000f04090153616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d616765040140656e636f6465645f70726f706f73616c28011c5665633c75383e001030410152656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f2062653d01696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e350174686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c3c6e6f2066656520697320706169642e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c42d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e0058456d6974732060507265696d6167654e6f746564602e004d015765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c040140656e636f6465645f70726f706f73616c28011c5665633c75383e0011042d0153616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d61676508013470726f706f73616c5f6861736824011c543a3a4861736800016070726f706f73616c5f6c656e5f75707065725f626f756e64c101010c75333200123cf052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e5d012d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e2045787472696e736963206973c820207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e004d01546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d6167652077617359016e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79ac776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e005c456d6974732060507265696d616765526561706564602e00b45765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b040118746172676574000130543a3a4163636f756e74496400131ca0556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00b82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e64657800146c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e000c49663a882d20746865207265666572656e64756d207761732063616e63656c6c65642c206f727c2d20746865207265666572656e64756d206973206f6e676f696e672c206f72902d20746865207265666572656e64756d2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e00a849662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465887265676973746572656420666f72207265666572656e64756d2060696e646578602e00f42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465080118746172676574000130543a3a4163636f756e744964000114696e64657810013c5265666572656e64756d496e64657800153c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c5501656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e004d012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f725420207265666572656e64756d2060696e646578602ef42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c08013470726f706f73616c5f6861736824011c543a3a48617368000114696e64657810013c5265666572656e64756d496e6465780016044d01456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c69737408013470726f706f73616c5f6861736824011c543a3a4861736800013c6d617962655f7265665f696e6465787101015c4f7074696f6e3c5265666572656e64756d496e6465783e00173c45015065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e673c70726f706f73656420616761696e2e00510149662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e67510172656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c687468656e2069742077696c6c2062652063616e63656c6c65642e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00f82d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e45012d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652863616e63656c6c65642e0041015765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d65206974206861732061502020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c04012870726f705f696e646578c101012450726f70496e64657800181c4852656d6f766520612070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d02d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e45765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e282960042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e85030c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b656436780006000089030c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d626572739c01445665633c543a3a4163636f756e7449643e0001147072696d65e401504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000080805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c1502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64c101010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64c101012c4d656d626572436f756e7400012070726f706f73616c1502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64c101010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578c101013450726f706f73616c496e64657800011c617070726f7665880110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578c101013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64450201185765696768740001306c656e6774685f626f756e64c101010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e8d030c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d626572739c01445665633c543a3a4163636f756e7449643e0001147072696d65e401504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000080805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e0054526571756972657320726f6f74206f726967696e2e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e002823203c7765696768743e24232320576569676874502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e64656429142d2044423a510120202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468652c202020206d656d62657273ec20202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c73450120202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c5d0120202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e652c23203c2f7765696768743e1c6578656375746508012070726f706f73616c1502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64c101010c75333200012cf0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002823203c7765696768743e2423232057656967687455012d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e673020206070726f706f73616c60d42d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c60242d2031206576656e742c23203c2f7765696768743e1c70726f706f73650c01247468726573686f6c64c101012c4d656d626572436f756e7400012070726f706f73616c1502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64c101010c75333200026cf84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e002823203c7765696768743e24232320576569676874ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d20326029142d2044423ab420202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029a820202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0901202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029b8202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029d82020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e42020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029cc2020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029bc2020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d2960292c20202d2031206576656e742c23203c2f7765696768743e10766f74650c012070726f706f73616c24011c543a3a48617368000114696e646578c101013450726f706f73616c496e64657800011c617070726f7665880110626f6f6c00033cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e2823203c7765696768743e2423232057656967687409012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429142d2044423aac20202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029b820202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d296029242d2031206576656e742c23203c2f7765696768743e14636c6f736510013470726f706f73616c5f6861736824011c543a3a48617368000114696e646578c101013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e64450201185765696768740001306c656e6774685f626f756e64c101010c7533320004804d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002823203c7765696768743e24232320576569676874742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429142d2044423a0d01202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295901202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465632c202020604f285032296029dc202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c6020286050316029402d20757020746f2033206576656e74732c23203c2f7765696768743e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736824011c543a3a486173680005385901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002823203c7765696768743edc436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c73284442205765696768743a482a2052656164733a2050726f706f73616c739c2a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f662c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e91030c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c65741043616c6c04045400011810766f7465080114766f7465739c01445665633c543a3a4163636f756e7449643e00011476616c75650101013042616c616e63654f663c543e00005c5901566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe07365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e005d0155706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e742069734d0172657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e004c5468652060766f746573602073686f756c643a4420202d206e6f7420626520656d7074792e550120202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e6411012020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e0049014966206076616c756560206973206d6f7265207468616e206077686f60277320667265652062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e6700550149742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865a86c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002823203c7765696768743e5101576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e2c23203c2f7765696768743e3072656d6f76655f766f7465720001146c52656d6f766520606f726967696e60206173206120766f7465722e00b8546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00fc546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e64696461637904013c63616e6469646174655f636f756e74c101010c75333200023c11015375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e005d01416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702ccc6f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e67005d014576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5901746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002823203c7765696768743e0901546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e4872656e6f756e63655f63616e64696461637904012872656e6f756e63696e679503012852656e6f756e63696e670003484d0152656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c3c6f7574636f6d65732065786973743a0049012d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f02020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e61012d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e648c20206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e55012d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e2069735501202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e6101202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795901202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c207468653420206e65787420726f756e642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002823203c7765696768743ee05468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e3472656d6f76655f6d656d62657208010c77686f5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013c6861735f7265706c6163656d656e74880110626f6f6c000438590152656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f667c746865206f7574676f696e67206d656d62657220697320736c61736865642e005501496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865fc6f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0041014e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002823203c7765696768743e5101496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e2c23203c2f7765696768743e50636c65616e5f646566756e63745f766f746572730801286e756d5f766f7465727310010c75333200012c6e756d5f646566756e637410010c7533320005284501436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865ac6465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e0001015468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002823203c7765696768743e5d0154686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e9503086470616c6c65745f656c656374696f6e735f70687261676d656e2852656e6f756e63696e6700010c184d656d6265720000002052756e6e657255700001002443616e6469646174650400c101010c7533320002000099030c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f000130543a3a4163636f756e74496400000c784164642061206d656d626572206077686f6020746f20746865207365742e009c4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d62657204010c77686f000130543a3a4163636f756e74496400010c8c52656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d62657208011872656d6f7665000130543a3a4163636f756e74496400010c616464000130543a3a4163636f756e744964000214bc53776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a04d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e000d015072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d6265727304011c6d656d626572739c01445665633c543a3a4163636f756e7449643e00031055014368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e64687061737320606d656d6265727360207072652d736f727465642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b657904010c6e6577000130543a3a4163636f756e744964000414d453776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f04d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e001d015072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d6504010c77686f000130543a3a4163636f756e74496400050cbc53657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d6500060c9452656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e9d030c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66a10301bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6631020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66a10301bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e00013c6b65795f6f776e65725f70726f6f6631020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100138543a3a426c6f636b4e756d62657200016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100138543a3a426c6f636b4e756d62657200021c19014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c697479206761646765742068617325017374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e671d016f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c6179110173686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e67207468652501666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f74657273250177696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e584f6e6c792063616c6c61626c6520627920726f6f742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ea103084c73705f66696e616c6974795f6772616e6470614445717569766f636174696f6e50726f6f660804480124044e0110000801187365745f6964200114536574496400013065717569766f636174696f6ea503014845717569766f636174696f6e3c482c204e3e0000a503084c73705f66696e616c6974795f6772616e6470613045717569766f636174696f6e0804480124044e011001081c507265766f74650400a9030139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d69740400c1030141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e00010000a903084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401d0045601ad03045301b10300100130726f756e645f6e756d62657220010c7536340001206964656e74697479d0010849640001146669727374bd03011828562c2053290001187365636f6e64bd03011828562c2053290000ad03084066696e616c6974795f6772616e6470611c507265766f74650804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000b1030c4c73705f66696e616c6974795f6772616e6470610c617070245369676e617475726500000400b5030148656432353531393a3a5369676e61747572650000b5030c1c73705f636f72651c65643235353139245369676e617475726500000400b90301205b75383b2036345d0000b903000003400000000800bd0300000408ad03b10300c103084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401d0045601c503045301b10300100130726f756e645f6e756d62657220010c7536340001206964656e74697479d0010849640001146669727374c903011828562c2053290001187365636f6e64c903011828562c2053290000c503084066696e616c6974795f6772616e64706124507265636f6d6d69740804480124044e01100008012c7461726765745f68617368240104480001347461726765745f6e756d6265721001044e0000c90300000408c503b10300cd030c3c70616c6c65745f74726561737572791870616c6c65741043616c6c08045400044900010c3470726f706f73655f7370656e6408011476616c75650101013c42616c616e63654f663c542c20493e00012c62656e65666963696172795902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000024290150757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c75653101697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e6365207468655070726f706f73616c20697320617761726465642e002823203c7765696768743e482d20436f6d706c65786974793a204f283129b02d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460e82d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e74602c23203c2f7765696768743e3c72656a6563745f70726f706f73616c04012c70726f706f73616c5f6964c101013450726f706f73616c496e646578000124f852656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002823203c7765696768743e482d20436f6d706c65786974793a204f283129cc2d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d02d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e74602c23203c2f7765696768743e40617070726f76655f70726f706f73616c04012c70726f706f73616c5f6964c101013450726f706f73616c496e6465780002285901417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e4c2d20436f6d706c65786974793a204f2831292e8c2d20446252656164733a206050726f706f73616c73602c2060417070726f76616c7360582d20446257726974653a2060417070726f76616c73602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed1030c4070616c6c65745f636f6e7472616374731870616c6c65741043616c6c0404540001141063616c6c140110646573745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011476616c75650101013042616c616e63654f663c543e0001246761735f6c696d69744502011857656967687400015473746f726167655f6465706f7369745f6c696d6974d50301c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e0001106461746128011c5665633c75383e00004005014d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e00302320506172616d657465727300a82a206064657374603a2041646472657373206f662074686520636f6e747261637420746f2063616c6c2efc2a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f206064657374602e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642066726f6d20746865a4202063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ec42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e74726163742e0025012a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265ac657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e15012a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e45012a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c11016120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e54696e7374616e74696174655f776974685f636f646518011476616c75650101013042616c616e63654f663c543e0001246761735f6c696d69744502011857656967687400015473746f726167655f6465706f7369745f6c696d6974d50301c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000110636f646528011c5665633c75383e0001106461746128011c5665633c75383e00011073616c7428011c5665633c75383e0001683101496e7374616e7469617465732061206e657720636f6e74726163742066726f6d2074686520737570706c6965642060636f646560206f7074696f6e616c6c79207472616e7366657272696e6734736f6d652062616c616e63652e0021015468697320646973706174636861626c6520686173207468652073616d65206566666563742061732063616c6c696e67205b6053656c663a3a75706c6f61645f636f6465605d202b3d015b6053656c663a3a696e7374616e7469617465605d2e2042756e646c696e67207468656d20746f6765746865722070726f766964657320656666696369656e6379206761696e732e20506c65617365d8616c736f20636865636b2074686520646f63756d656e746174696f6e206f66205b6053656c663a3a75706c6f61645f636f6465605d2e00302320506172616d6574657273004d012a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f20746865206e65776c79206372656174656420636f6e74726163742e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642f7265736572766564c8202066726f6d207468652063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ecc2a2060636f6465603a2054686520636f6e747261637420636f646520746f206465706c6f7920696e207261772062797465732ef42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e747261637420636f6e7374727563746f722e31012a206073616c74603a205573656420666f722074686520616464726573732064657269766174696f6e2e20536565205b6050616c6c65743a3a636f6e74726163745f61646472657373605d2e0094496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a0059012d2054686520737570706c6965642060636f64656020697320696e737472756d656e7465642c206465706c6f7965642c20616e6420612060636f64655f6861736860206973206372656174656420666f7220746861741c2020636f64652e59012d204966207468652060636f64655f686173686020616c726561647920657869737473206f6e2074686520636861696e2074686520756e6465726c79696e672060636f6465602077696c6c206265207368617265642e49012d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e6465722c20636f64655f6861736820616e64207468652073616c742e01012d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732ec02d20546865206076616c756560206973207472616e7366657272656420746f20746865206e6577206163636f756e742e41012d2054686520606465706c6f79602066756e6374696f6e20697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e2c696e7374616e746961746518011476616c75650101013042616c616e63654f663c543e0001246761735f6c696d69744502011857656967687400015473746f726167655f6465706f7369745f6c696d6974d50301c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000124636f64655f6861736824012c436f6465486173683c543e0001106461746128011c5665633c75383e00011073616c7428011c5665633c75383e000214fc496e7374616e746961746573206120636f6e74726163742066726f6d20612070726576696f75736c79206465706c6f796564207761736d2062696e6172792e003501546869732066756e6374696f6e206973206964656e746963616c20746f205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2062757420776974686f7574207468654901636f6465206465706c6f796d656e7420737465702e20496e73746561642c207468652060636f64655f6861736860206f6620616e206f6e2d636861696e206465706c6f796564207761736d2062696e617279446d75737420626520737570706c6965642e2c75706c6f61645f636f6465080110636f646528011c5665633c75383e00015473746f726167655f6465706f7369745f6c696d6974d50301c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000340ec55706c6f6164206e65772060636f64656020776974686f757420696e7374616e74696174696e67206120636f6e74726163742066726f6d2069742e00210149662074686520636f646520646f6573206e6f7420616c72656164792065786973742061206465706f7369742069732072657365727665642066726f6d207468652063616c6c65724501616e6420756e7265736572766564206f6e6c79207768656e205b6053656c663a3a72656d6f76655f636f6465605d2069732063616c6c65642e205468652073697a65206f66207468652072657365727665f0646570656e6473206f6e2074686520696e737472756d656e7465642073697a65206f66207468652074686520737570706c6965642060636f6465602e00310149662074686520636f646520616c72656164792065786973747320696e2073746f726167652069742077696c6c207374696c6c2072657475726e20604f6b6020616e642075706772616465739474686520696e2073746f726167652076657273696f6e20746f207468652063757272656e74d05b60496e737472756374696f6e576569676874733a3a76657273696f6e605d28496e737472756374696f6e57656967687473292e001823204e6f7465005901416e796f6e652063616e20696e7374616e7469617465206120636f6e74726163742066726f6d20616e792075706c6f6164656420636f646520616e6420746875732070726576656e74206974732072656d6f76616c2e4101546f2061766f6964207468697320736974756174696f6e206120636f6e7374727563746f7220636f756c6420656d706c6f792061636365737320636f6e74726f6c20736f20746861742069742063616e39016f6e6c7920626520696e7374616e746961746564206279207065726d697373696f6e656420656e7469746965732e205468652073616d652069732074727565207768656e2075706c6f6164696e67a07468726f756768205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2e2c72656d6f76655f636f6465040124636f64655f6861736824012c436f6465486173683c543e000410350152656d6f76652074686520636f64652073746f72656420756e6465722060636f64655f686173686020616e6420726566756e6420746865206465706f73697420746f20697473206f776e65722e0045014120636f64652063616e206f6e6c792062652072656d6f76656420627920697473206f726967696e616c2075706c6f616465722028697473206f776e65722920616e64206f6e6c79206966206974206973646e6f74207573656420627920616e7920636f6e74726163742e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed50304184f7074696f6e0404540101010108104e6f6e6500000010536f6d65040001010000010000d9030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c15020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000028350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002823203c7765696768743e1c2d204f2831292e602d204c696d697465642073746f726167652072656164732e5c2d204f6e6520444220777269746520286576656e74292ec42d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e2c23203c2f7765696768743e547375646f5f756e636865636b65645f77656967687408011063616c6c15020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000118776569676874200118576569676874000128350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002823203c7765696768743e1c2d204f2831292ecc2d2054686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e2c23203c2f7765696768743e1c7365745f6b657904010c6e65775902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650002285d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002823203c7765696768743e1c2d204f2831292e602d204c696d697465642073746f726167652072656164732e402d204f6e65204442206368616e67652e2c23203c2f7765696768743e1c7375646f5f617308010c77686f5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011063616c6c15020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00032c4d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002823203c7765696768743e1c2d204f2831292e602d204c696d697465642073746f726167652072656164732e5c2d204f6e6520444220777269746520286576656e74292ec42d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd030c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174e10301644865617274626561743c543a3a426c6f636b4e756d6265723e0001247369676e6174757265f50301bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e61747572650000242823203c7765696768743e61012d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973d820206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60ac20202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e6774682060456039012d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5820206052656365697665644865617274626561747360802d2044625772697465733a2060526563656976656448656172746265617473602c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee103084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000140130626c6f636b5f6e756d62657210012c426c6f636b4e756d6265720001346e6574776f726b5f7374617465e50301484f70617175654e6574776f726b537461746500013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c7533320000e5030c1c73705f636f7265206f6666636861696e484f70617175654e6574776f726b5374617465000008011c706565725f6964e90301304f706171756550656572496400014865787465726e616c5f616464726573736573ed0301505665633c4f70617175654d756c7469616464723e0000e903081c73705f636f7265304f70617175655065657249640000040028011c5665633c75383e0000ed03000002f10300f1030c1c73705f636f7265206f6666636861696e3c4f70617175654d756c7469616464720000040028011c5665633c75383e0000f503104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e617475726500000400f9030148737232353531393a3a5369676e61747572650000f9030c1c73705f636f72651c73723235353139245369676e617475726500000400b90301205b75383b2036345d0000fd030c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c04045400013c346164645f72656769737472617204011c6163636f756e74000130543a3a4163636f756e7449640000347841646420612072656769737472617220746f207468652073797374656d2e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00a82d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e0094456d6974732060526567697374726172416464656460206966207375636365737366756c2e002823203c7765696768743e25012d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e982d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e307365745f6964656e74697479040110696e666f010401a4426f783c4964656e74697479496e666f3c543a3a4d61784164646974696f6e616c4669656c64733e3e00014c290153657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e005501496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e7450666f7220746865206e6577206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e008c2d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e0088456d69747320604964656e7469747953657460206966207375636365737366756c2e002823203c7765696768743e442d20604f2858202b205827202b205229601d0120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e64656429802d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e21012d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e302d204f6e65206576656e742e2c23203c2f7765696768743e207365745f7375627304011073756273890401645665633c28543a3a4163636f756e7449642c2044617461293e0002548c53657420746865207375622d6163636f756e7473206f66207468652073656e6465722e0055015061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e65642d01616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e00b02d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002823203c7765696768743e302d20604f2850202b20532960e420202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e842d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e142d2044423adc20202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029bc20202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e2c23203c2f7765696768743e38636c6561725f6964656e746974790003483901436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00ec5061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e0098456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002823203c7765696768743e402d20604f2852202b2053202b20582960cc20202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed420202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e210120202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e882d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ec82d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e44726571756573745f6a756467656d656e740801247265675f696e646578c1010138526567697374726172496e64657800011c6d61785f6665650101013042616c616e63654f663c543e00045c94526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e0055015061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e7418676976656e2e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e001d012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e55012d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a00306060606e6f636f6d70696c65b853656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e6665650c60606000a4456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e302d204f6e65206576656e742e2c23203c2f7765696768743e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005446843616e63656c20612070726576696f757320726571756573742e00f85061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e0045012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00ac456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e882d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e2c2d204f6e65206576656e742c23203c2f7765696768743e1c7365745f666565080114696e646578c1010138526567697374726172496e64657800010c6665650101013042616c616e63654f663c543e0006341901536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e542d2060666565603a20746865206e6577206665652e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e387365745f6163636f756e745f6964080114696e646578c1010138526567697374726172496e64657800010c6e6577000130543a3a4163636f756e744964000734bc4368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e702d20606e6577603a20746865206e6577206163636f756e742049442e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee02d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e287365745f6669656c6473080114696e646578c1010138526567697374726172496e6465780001186669656c6473910401384964656e746974794669656c6473000834a853657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e0d012d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002823203c7765696768743e242d20604f285229602e782d204f6e652073746f72616765206d75746174696f6e20604f285229602ee42d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c79736973292c23203c2f7765696768743e4470726f766964655f6a756467656d656e740c01247265675f696e646578c1010138526567697374726172496e6465780001187461726765745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001246a756467656d656e749904015c4a756467656d656e743c42616c616e63654f663c543e3e00094cb850726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b06f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e0021012d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e55012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e49012d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e0094456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002823203c7765696768743e342d20604f2852202b205829602e842d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e942d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2eb82d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e302d204f6e65206576656e742e2c23203c2f7765696768743e346b696c6c5f6964656e746974790401187461726765745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000a4c410152656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e0061015061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c6564206279450160536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c6564806d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e0055012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e0094456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002823203c7765696768743e442d20604f2852202b2053202b205829602e802d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e702d206053202b2032602073746f72616765206d75746174696f6e732e302d204f6e65206576656e742e2c23203c2f7765696768743e1c6164645f73756208010c7375625902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174610d04011044617461000b1cac4164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656e616d655f73756208010c7375625902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646174610d04011044617461000c10cc416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656d6f76655f73756204010c7375625902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000d1cc052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e20717569745f737562000e288c52656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b4746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265643c73757065722d6964656e746974792e0045014e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d1101636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e04704964656e746974792070616c6c6574206465636c61726174696f6e2e01040c3c70616c6c65745f6964656e74697479147479706573304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616c05040190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c61790d040110446174610001146c6567616c0d0401104461746100010c7765620d0401104461746100011072696f740d04011044617461000114656d61696c0d0401104461746100013c7067705f66696e6765727072696e74850401404f7074696f6e3c5b75383b2032305d3e000114696d6167650d0401104461746100011c747769747465720d040110446174610000050410346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454010904045300000400810401185665633c543e00000904000004080d040d04000d040c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e65000000105261773004001104000001001052617731040015040000020010526177320400190400000300105261773304001d040000040010526177340400380000050010526177350400210400000600105261773604002504000007001052617737040029040000080010526177380400050200000900105261773904002d0400000a001452617731300400310400000b001452617731310400350400000c001452617731320400390400000d0014526177313304003d0400000e001452617731340400410400000f0014526177313504004504000010001452617731360400110100001100145261773137040049040000120014526177313804004d0400001300145261773139040051040000140014526177323004005d02000015001452617732310400550400001600145261773232040059040000170014526177323304005d040000180014526177323404006104000019001452617732350400650400001a001452617732360400690400001b0014526177323704006d0400001c001452617732380400710400001d001452617732390400750400001e001452617733300400790400001f0014526177333104007d0400002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c536861546872656532353604000400002500001104000003000000000800150400000301000000080019040000030200000008001d040000030300000008002104000003050000000800250400000306000000080029040000030700000008002d0400000309000000080031040000030a000000080035040000030b000000080039040000030c00000008003d040000030d000000080041040000030e000000080045040000030f000000080049040000031100000008004d040000031200000008005104000003130000000800550400000315000000080059040000031600000008005d040000031700000008006104000003180000000800650400000319000000080069040000031a00000008006d040000031b000000080071040000031c000000080075040000031d000000080079040000031e00000008007d040000031f00000008008104000002090400850404184f7074696f6e040454015d020108104e6f6e6500000010536f6d6504005d02000001000089040000028d04008d0400000408000d040091040c3c70616c6c65745f6964656e7469747914747970657320426974466c6167730404540195040004002001344964656e746974794669656c64000095040c3c70616c6c65745f6964656e74697479147479706573344964656e746974794669656c640001201c446973706c6179000100144c6567616c0002000c5765620004001052696f7400080014456d61696c0010003850677046696e6765727072696e7400200014496d6167650040001c547769747465720080000099040c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f7573000600009d040c3870616c6c65745f736f63696574791870616c6c65741043616c6c0804540004490001300c62696404011476616c756518013c42616c616e63654f663c542c20493e000088dc412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e0035015061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564ec7768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a55012d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002823203c7765696768743e51014b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e6365207265736572766529402d2053746f726167652052656164733ae8092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129dc092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129d8092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f0092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c4092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29442d2053746f72616765205772697465733a5901092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e2c202020772f207265616429fc092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f283129582d204e6f7461626c6520436f6d7075746174696f6e3a2901092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec0092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e742d2045787465726e616c2050616c6c6574204f7065726174696f6e733a98092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f2858291d01092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e242d204576656e74733a64092d204f6e65206576656e7420666f72206e6577206269642ef8092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c0546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b2058292c23203c2f7765696768743e14756e62696404010c706f7310010c75333200014cd441206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792efc427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f7280746865792077696c6c20756e766f75636820746865697220766f75636865722e00f85061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e002c506172616d65746572733a15012d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002823203c7765696768743eac4b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e726573657276652909012d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422941012d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f283129302d204f6e65206576656e742e0068546f74616c20436f6d706c65786974793a204f2842202b2058292c23203c2f7765696768743e14766f7563680c010c77686f000130543a3a4163636f756e74496400011476616c756518013c42616c616e63654f663c542c20493e00010c74697018013c42616c616e63654f663c542c20493e0002b4410141732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e0051015468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f7259016f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062793d017468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e0055014173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c4d0162652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733ac82d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e4d012d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d656061206d656d62657220696e2074686520736f63696574792e45012d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f110174686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002823203c7765696768743efc4b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d6265727329402d2053746f726167652052656164733ac4092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d290501092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129e8092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129dc092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129d8092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f0092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329442d2053746f72616765205772697465733a0901092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f2831295901092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e2c202020772f207265616429fc092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f283129582d204e6f7461626c6520436f6d7075746174696f6e3abc092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2901092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec0092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e742d2045787465726e616c2050616c6c6574204f7065726174696f6e733a98092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f2858291d01092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e242d204576656e74733a5c092d204f6e65206576656e7420666f7220766f7563682ef8092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c0546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b2058292c23203c2f7765696768743e1c756e766f75636804010c706f7310010c75333200034429014173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f75636865642075736572206973906f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e002c506172616d65746572733a29012d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002823203c7765696768743e504b65793a204220286c656e206f6620626964732905012d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722ee82d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f284229902d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f283129302d204f6e65206576656e742e0058546f74616c20436f6d706c65786974793a204f2842292c23203c2f7765696768743e10766f746508012463616e6469646174655902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011c617070726f7665880110626f6f6c00044c8441732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733a09012d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2e45012d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c6420626520617070726f766564202860747275656029206f7254202072656a656374656420286066616c736560292e002823203c7765696768743eb84b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732919012d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e542d204f6e65206163636f756e74206c6f6f6b75702e29012d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652eb82d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f283129302d204f6e65206576656e742e0084546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2043292c23203c2f7765696768743e34646566656e6465725f766f746504011c617070726f7665880110626f6f6c0005408841732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733af02d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a0617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002823203c7765696768743e642d204b65793a204d20286c656e206f66206d656d626572732919012d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722eb82d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f283129302d204f6e65206576656e742e0074546f74616c20436f6d706c65786974793a204f284d202b206c6f674d292c23203c2f7765696768743e187061796f757400065441015472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e0041014e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e001d015061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d617475726564747061796f757420746f20746865697220667265652062616c616e63652e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722077697468487061796f7574732072656d61696e696e672e002823203c7765696768743e19014b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d6265722921012d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee02d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee02d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e882d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858290d012d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f2850290094546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b2058292c23203c2f7765696768743e14666f756e640c011c666f756e646572000130543a3a4163636f756e74496400012c6d61785f6d656d6265727310010c75333200011472756c657328011c5665633c75383e00074c48466f756e642074686520736f63696574792e00ec5468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f7220746865150170616c6c657420746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e002c506172616d65746572733a15012d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e11012d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef02d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002823203c7765696768743edc2d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f02d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f283129302d204f6e65206576656e742e0058546f74616c20436f6d706c65786974793a204f2831292c23203c2f7765696768743e1c756e666f756e6400083488416e6e756c2074686520666f756e64696e67206f662074686520736f63696574792e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f746855017468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e651c6d656d6265722e002823203c7765696768743e642d2054776f2073746f72616765207265616473204f2831292e742d20466f75722073746f726167652072656d6f76616c73204f2831292e302d204f6e65206576656e742e0058546f74616c20436f6d706c65786974793a204f2831292c23203c2f7765696768743e586a756467655f73757370656e6465645f6d656d62657208010c77686f000130543a3a4163636f756e74496400011c666f7267697665880110626f6f6c0009702901416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e005501496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67c8616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e004501496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e67fc7468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e003d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e002c506172616d65746572733ab02d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e55012d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e20666f726769766573cc20202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002823203c7765696768743ea04b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f42d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f28312949012d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f282020736f63696574792ef42d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e41012d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed02d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e6c2d204f6e652073746f726167652072656d6f76616c2e204f283129782d204f6e65206576656e7420666f7220746865206a756467656d656e742e0084546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042292c23203c2f7765696768743e646a756467655f73757370656e6465645f63616e64696461746508010c77686f000130543a3a4163636f756e7449640001246a756467656d656e74a10401244a756467656d656e74000aa03101416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005901496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f707269617465707061796d656e7420666f72206a6f696e696e6720736f63696574792e005101496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b0d01746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005901496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f907468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e003d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e002c506172616d65746572733abc2d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec02d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002823203c7765696768743ef04b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29ec2d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec42d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e3c2d20417070726f7665204c6f6769631101092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129d8092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e4092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b0092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d299c092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eac092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4901092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e382d2052656a656374204c6f676963d8092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292901092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e342d205265626964204c6f6769633d01092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed02d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e582d204f6e652073746f726167652072656d6f76616c2e782d204f6e65206576656e7420666f7220746865206a756467656d656e742e0094546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b2058292c23203c2f7765696768743e3c7365745f6d61785f6d656d6265727304010c6d617810010c753332000b381901416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb04d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00d8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e002c506172616d65746572733ae02d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002823203c7765696768743eac2d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f283129302d204f6e65206576656e742e0058546f74616c20436f6d706c65786974793a204f2831292c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ea104083870616c6c65745f736f6369657479244a756467656d656e7400010c1452656269640000001852656a6563740001001c417070726f766500020000a5040c3c70616c6c65745f7265636f766572791870616c6c65741043616c6c0404540001243061735f7265636f766572656408011c6163636f756e74000130543a3a4163636f756e74496400011063616c6c15020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000034a053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a21012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662efc2d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002823203c7765696768743e902d2054686520776569676874206f6620746865206063616c6c60202b2031302c3030302e05012d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f2831292c23203c2f7765696768743e347365745f7265636f76657265640801106c6f7374000130543a3a4163636f756e74496400011c72657363756572000130543a3a4163636f756e7449640001341901416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e7470666f722061206c6f7374206163636f756e74206469726563746c792e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e002c506172616d65746572733ab42d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e19012d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002823203c7765696768743e602d204f6e652073746f72616765207772697465204f2831292c2d204f6e65206576656e742c23203c2f7765696768743e3c6372656174655f7265636f766572790c011c667269656e64739c01445665633c543a3a4163636f756e7449643e0001247468726573686f6c644101010c75313600013064656c61795f706572696f64100138543a3a426c6f636b4e756d62657200026c59014372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e002d015061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e6365450177696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564b8696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a49012d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732e2053686f756c64206265a820206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e59012d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d7074206265666f726520746865550120206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f20746865206c656e677468206f6620746865206c697374206f66282020667269656e64732e4d012d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a65642074686174d020206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002823203c7765696768743e642d204b65793a204620286c656e206f6620667269656e64732929012d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292ee82d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f284629982d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829982d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e302d204f6e65206576656e742e0068546f74616c20436f6d706c65786974793a204f2846202b2058292c23203c2f7765696768743e44696e6974696174655f7265636f7665727904011c6163636f756e74000130543a3a4163636f756e744964000358e8496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e0019015061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e672074686521017265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b4747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a41012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e74206e6565647320746f206265cc20207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002823203c7765696768743ef42d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846294d012d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f283129982d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e02d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129682d204f6e652073746f726167652077726974652e204f2831292e302d204f6e65206576656e742e0068546f74616c20436f6d706c65786974793a204f2846202b2058292c23203c2f7765696768743e38766f7563685f7265636f766572790801106c6f7374000130543a3a4163636f756e74496400011c72657363756572000130543a3a4163636f756e7449640004602501416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f766572796470726f6365737320666f722074686174206163636f756e742e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e642270666f7220746865207265636f76657261626c65206163636f756e742e002c506172616d65746572733ad02d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e59012d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f752077616e7420746f20766f75636820666f722e00210154686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f766572792070726f636573732e002823203c7765696768743ef84b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e64732919012d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846291d012d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e82d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f67462919012d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f675629982d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e302d204f6e65206576656e742e00a0546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f6756292c23203c2f7765696768743e38636c61696d5f7265636f7665727904011c6163636f756e74000130543a3a4163636f756e744964000550f0416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d757374206265206120227265736375657222190177686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c65637465642d01607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e002c506172616d65746572733a5d012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79207265636f7665726564206279182020796f752e002823203c7765696768743ef84b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e64732919012d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846291d012d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e02d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129982d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e302d204f6e65206576656e742e0068546f74616c20436f6d706c65786974793a204f2846202b2056292c23203c2f7765696768743e38636c6f73655f7265636f7665727904011c72657363756572000130543a3a4163636f756e744964000650110141732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f766572796470726f6365737320666f7220796f7572206163636f756e742e001d015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f4746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061ec7265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e002c506172616d65746572733a0d012d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002823203c7765696768743e804b65793a205620286c656e206f6620766f756368696e6720667269656e64732939012d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629bc2d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f285829302d204f6e65206576656e742e0068546f74616c20436f6d706c65786974793a204f2856202b2058292c23203c2f7765696768743e3c72656d6f76655f7265636f76657279000754590152656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e0011014e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c2061637469766505017265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e0021015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e72657365727665947468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef02860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e647329000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e07265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002823203c7765696768743e5c4b65793a204620286c656e206f6620667269656e64732925012d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f28312935012d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f284629982d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f285829302d204f6e65206576656e742e0068546f74616c20436f6d706c65786974793a204f2846202b2058292c23203c2f7765696768743e4063616e63656c5f7265636f766572656404011c6163636f756e74000130543a3a4163636f756e74496400082cdc43616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a15012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e002823203c7765696768743e0d012d204f6e652073746f72616765206d75746174696f6e20746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f2831292c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ea9040c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001141076657374000034b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20322052656164732c203220577269746573f8202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745dfc202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d2c23203c2f7765696768743e28766573745f6f746865720401187461726765745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c203320577269746573f0202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f4202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c23203c2f7765696768743e3c7665737465645f7472616e736665720801187461726765745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65ad0401a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00024464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20332052656164732c2033205772697465733901202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d3d01202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d2c23203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c0118736f757263655902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001187461726765745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65ad0401a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00034860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002823203c7765696768743e242d20604f283129602e742d2044625765696768743a20342052656164732c2034205772697465733101202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e743501202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e742c23203c2f7765696768743e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ead040c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d6265720000b1040c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963b50401a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cb9040150426f783c43616c6c4f72486173684f663c543e3e00000470416e6f6e796d6f75736c79207363686564756c652061207461736b2e1863616e63656c0801107768656e100138543a3a426c6f636b4e756d626572000114696e64657810010c7533320001049443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e387363686564756c655f6e616d6564140108696428011c5665633c75383e0001107768656e100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963b50401a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cb9040150426f783c43616c6c4f72486173684f663c543e3e000204585363686564756c652061206e616d6564207461736b2e3063616e63656c5f6e616d6564040108696428011c5665633c75383e0003047843616e63656c2061206e616d6564207363686564756c6564207461736b2e387363686564756c655f61667465721001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963b50401a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cb9040150426f783c43616c6c4f72486173684f663c543e3e000414a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002823203c7765696768743e5453616d65206173205b607363686564756c65605d2e2c23203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140108696428011c5665633c75383e0001146166746572100138543a3a426c6f636b4e756d6265720001386d617962655f706572696f646963b50401a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cb9040150426f783c43616c6c4f72486173684f663c543e3e000514905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002823203c7765696768743ec453616d65206173205b607363686564756c655f6e616d6564605d2853656c663a3a7363686564756c655f6e616d6564292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eb50404184f7074696f6e0404540129010108104e6f6e6500000010536f6d65040029010000010000b90410346672616d655f737570706f727418747261697473207363686564756c652c4d617962654861736865640804540115021048617368012401081456616c756504001502010454000000104861736804002401104861736800010000bd040c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000110346e6f74655f707265696d616765040114627974657328011c5665633c75383e000010745265676973746572206120707265696d616765206f6e2d636861696e2e00550149662074686520707265696d616765207761732070726576696f75736c79207265717565737465642c206e6f2066656573206f72206465706f73697473206172652074616b656e20666f722070726f766964696e67550174686520707265696d6167652e204f74686572776973652c2061206465706f7369742069732074616b656e2070726f706f7274696f6e616c20746f207468652073697a65206f662074686520707265696d6167652e3c756e6e6f74655f707265696d6167650401106861736824011c543a3a48617368000104dc436c65617220616e20756e72657175657374656420707265696d6167652066726f6d207468652072756e74696d652073746f726167652e40726571756573745f707265696d6167650401106861736824011c543a3a48617368000210410152657175657374206120707265696d6167652062652075706c6f6164656420746f2074686520636861696e20776974686f757420706179696e6720616e792066656573206f72206465706f736974732e00550149662074686520707265696d6167652072657175657374732068617320616c7265616479206265656e2070726f7669646564206f6e2d636861696e2c20776520756e7265736572766520616e79206465706f7369743901612075736572206d6179206861766520706169642c20616e642074616b652074686520636f6e74726f6c206f662074686520707265696d616765206f7574206f662074686569722068616e64732e48756e726571756573745f707265696d6167650401106861736824011c543a3a4861736800030cbc436c65617220612070726576696f75736c79206d616465207265717565737420666f72206120707265696d6167652e002d014e4f54453a2054484953204d555354204e4f542042452043414c4c4544204f4e20606861736860204d4f52452054494d4553205448414e2060726571756573745f707265696d616765602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ec1040c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065c50401504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c15020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00003c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e246164645f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f747970653d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d6265720001344501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3072656d6f76655f70726f78790c012064656c6567617465000130543a3a4163636f756e74496400012870726f78795f747970653d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d62657200022ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e3872656d6f76655f70726f78696573000328b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e24616e6f6e796d6f75730c012870726f78795f747970653d010130543a3a50726f78795479706500011464656c6179100138543a3a426c6f636b4e756d626572000114696e6465784101010c75313600045c3901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e8c544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f757314011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f747970653d010130543a3a50726f787954797065000114696e6465784101010c753136000118686569676874c1010138543a3a426c6f636b4e756d6265720001246578745f696e646578c101010c753332000550b452656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fa860616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e004d012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e4d012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e01012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e3d012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e49012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e0049014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f06163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002823203c7765696768743efc57656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e2c23203c2f7765696768743e20616e6e6f756e63650801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e00065405015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e0007407052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465000130543a3a4163636f756e74496400012463616c6c5f6861736824013443616c6c486173684f663c543e000840b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e3c70726f78795f616e6e6f756e63656410012064656c6567617465000130543a3a4163636f756e7449640001107265616c000130543a3a4163636f756e744964000140666f7263655f70726f78795f74797065c50401504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c15020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0009444d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002823203c7765696768743e6057656967687420697320612066756e6374696f6e206f663a982d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea02d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ec50404184f7074696f6e040454013d010108104e6f6e6500000010536f6d6504003d010000010000c9040c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965739c01445665633c543a3a4163636f756e7449643e00011063616c6c15020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e0000405101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002823203c7765696768743e19014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d442d204442205765696768743a204e6f6e65482d20506c75732043616c6c205765696768742c23203c2f7765696768743e2061735f6d756c74691801247468726573686f6c644101010c7531360001446f746865725f7369676e61746f726965739c01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74cd0401844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00011063616c6cd10401344f706171756543616c6c3c543e00012873746f72655f63616c6c880110626f6f6c0001286d61785f7765696768742001185765696768740001b45501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002823203c7765696768743e502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e7c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a2101202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60292501202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029482d20506c75732043616c6c205765696768742c23203c2f7765696768743e40617070726f76655f61735f6d756c74691401247468726573686f6c644101010c7531360001446f746865725f7369676e61746f726965739c01445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74cd0401844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f77656967687420011857656967687400028c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743ab8202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dbc202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c23203c2f7765696768743e3c63616e63656c5f61735f6d756c74691001247468726573686f6c644101010c7531360001446f746865725f7369676e61746f726965739c01445665633c543a3a4163636f756e7449643e00012474696d65706f696e744901016454696d65706f696e743c543a3a426c6f636b4e756d6265723e00012463616c6c5f686173680401205b75383b2033325d000368550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002823203c7765696768743e242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e882d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302d204442205765696768743a1501202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731901202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c732c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ecd0404184f7074696f6e0404540149010108104e6f6e6500000010536f6d65040049010000010000d10410346672616d655f737570706f727418747261697473106d69736344577261707065724b6565704f7061717565040454011502000800c10100000015020104540000d5040c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c0404540001243870726f706f73655f626f756e747908011476616c75650101013042616c616e63654f663c543e00012c6465736372697074696f6e28011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f6964c101012c426f756e7479496e6465780001205d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3c70726f706f73655f63757261746f720c0124626f756e74795f6964c101012c426f756e7479496e64657800011c63757261746f725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500010c6665650101013042616c616e63654f663c543e00021c9041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00ac4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e40756e61737369676e5f63757261746f72040124626f756e74795f6964c101012c426f756e7479496e6465780003487c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e386163636570745f63757261746f72040124626f756e74795f6964c101012c426f756e7479496e64657800042094416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e3061776172645f626f756e7479080124626f756e74795f6964c101012c426f756e7479496e64657800012c62656e65666963696172795902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500052c5901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c61696d5f626f756e7479040124626f756e74795f6964c101012c426f756e7479496e646578000624ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e30636c6f73655f626f756e7479040124626f756e74795f6964c101012c426f756e7479496e646578000728390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e50657874656e645f626f756e74795f657870697279080124626f756e74795f6964c101012c426f756e7479496e64657800011872656d61726b28011c5665633c75383e000828ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002823203c7765696768743e1c2d204f2831292e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ed9040c2c70616c6c65745f746970731870616c6c65741043616c6c040454000118387265706f72745f617765736f6d65080118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e74496400004c59015265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173bc60446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743ec82d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e9020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e27702d20446252656164733a2060526561736f6e73602c20605469707360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e2c726574726163745f7469700401106861736824011c543a3a4861736800014c5101526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00dc4966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e004d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e7469666965642062792060686173686041016d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f744c7468726f75676820607469705f6e657760292e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e008c456d697473206054697052657472616374656460206966207375636365737366756c2e002823203c7765696768743e502d20436f6d706c65786974793a20604f28312960d820202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e8c2d20446252656164733a206054697073602c20606f726967696e206163636f756e7460bc2d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e74602c23203c2f7765696768743e1c7469705f6e65770c0118726561736f6e28011c5665633c75383e00010c77686f000130543a3a4163636f756e7449640001247469705f76616c75650101013042616c616e63654f663c543e000258f04769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e0074456d69747320604e657754697060206966207375636365737366756c2e002823203c7765696768743e51012d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e5d0120202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792d012020202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f66442020202060543a3a54697070657273602ee020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e677468206052607c2d20446252656164733a206054697070657273602c2060526561736f6e7360742d2044625772697465733a2060526561736f6e73602c206054697073602c23203c2f7765696768743e0c7469700801106861736824011c543a3a486173680001247469705f76616c75650101013042616c616e63654f663c543e000360b04465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e65666963696172793420206163636f756e742049442e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e006101456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f643068617320737461727465642e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e6774682d0120206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c20605460206973206368617267656420617320757070657220626f756e6420676976656e2062795d01202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e005d01202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d02020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e702d20446252656164733a206054697070657273602c20605469707360482d2044625772697465733a206054697073602c23203c2f7765696768743e24636c6f73655f7469700401106861736824011c543a3a486173680004405c436c6f736520616e64207061796f75742061207469702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00150154686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002823203c7765696768743e61012d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e677468510120206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f7374c02020646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ea82d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260d82d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e646572602c23203c2f7765696768743e24736c6173685f7469700401106861736824011c543a3a486173680005309452656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f44173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e0084456d6974732060546970536c617368656460206966207375636365737366756c2e002823203c7765696768743efc2020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e010120205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632edd040c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000164186372656174650c01086964c1010128543a3a4173736574496400011461646d696e5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c6d696e5f62616c616e6365180128543a3a42616c616e636500004ce849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00bc46756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e002c506172616d65746572733a59012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e7469667948616e206578697374696e672061737365742e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174651001086964c1010128543a3a417373657449640001146f776e65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500013469735f73756666696369656e74880110626f6f6c00012c6d696e5f62616c616e636501010128543a3a42616c616e636500014cf849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0059012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e7469667948616e206578697374696e672061737365742e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f790801086964c1010128543a3a4173736574496400011c7769746e657373e104013844657374726f795769746e6573730002488c44657374726f79206120636c617373206f662066756e6769626c65206173736574732e005501546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e64207468652073656e646572206d75737420626520746865606f776e6572206f662074686520617373657420606964602e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e671861737365742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e0045014e4f54453a2049742063616e2062652068656c7066756c20746f20666972737420667265657a6520616e206173736574206265666f72652064657374726f79696e6720697420736f207468617420796f75490163616e2070726f76696465206163637572617465207769746e65737320696e666f726d6174696f6e20616e642070726576656e742075736572732066726f6d206d616e6970756c6174696e67207374617465b0696e20612077617920746861742063616e206d616b652069742068617264657220746f2064657374726f792e00745765696768743a20604f2863202b2070202b206129602077686572653ac02d206063203d20287769746e6573732e6163636f756e7473202d207769746e6573732e73756666696369656e747329606c2d206073203d207769746e6573732e73756666696369656e747360642d206061203d207769746e6573732e617070726f76616c7360106d696e740c01086964c1010128543a3a4173736574496400012c62656e65666963696172795902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e7401010128543a3a42616c616e6365000330884d696e7420617373657473206f66206120706172746963756c617220636c6173732e003901546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e0d012d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec42d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296055014d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c01086964c1010128543a3a4173736574496400010c77686f5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e7401010128543a3a42616c616e636500043c4501526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00d04261696c73207769746820604e6f4163636f756e746020696620746865206077686f6020697320616c726561647920646561642e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea02d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e29012d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e005101456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f772074686539016d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296009014d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c01086964c1010128543a3a417373657449640001187461726765745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e7401010128543a3a42616c616e6365000548d04d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e4c7472616e736665725f6b6565705f616c6976650c01086964c1010128543a3a417373657449640001187461726765745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e7401010128543a3a42616c616e636500064859014d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e38666f7263655f7472616e736665721001086964c1010128543a3a41737365744964000118736f757263655902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646573745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e7401010128543a3a42616c616e636500074cb44d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e982d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e942d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e59012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64590160646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e4d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d462656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f661c6064657374602e18667265657a650801086964c1010128543a3a4173736574496400010c77686f5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000828e0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e742e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e882d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296010746861770801086964c1010128543a3a4173736574496400010c77686f5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000928cc416c6c6f7720756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e7420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e902d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f61737365740401086964c1010128543a3a41737365744964000a24f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296028746861775f61737365740401086964c1010128543a3a41737365744964000b24c4416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e6572736869700801086964c1010128543a3a417373657449640001146f776e65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000c28744368616e676520746865204f776e6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d1001086964c1010128543a3a417373657449640001186973737565725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011461646d696e5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011c667265657a65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000d30c44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f28312960307365745f6d657461646174611001086964c1010128543a3a417373657449640001106e616d6528011c5665633c75383e00011873796d626f6c28011c5665633c75383e000120646563696d616c730801087538000e407853657420746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00d846756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a5101604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d657461646174610401086964c1010128543a3a41737365744964000f2c80436c65617220746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a4416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f7365745f6d657461646174611401086964c1010128543a3a417373657449640001106e616d6528011c5665633c75383e00011873796d626f6c28011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e880110626f6f6c001038b8466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e006c4f726967696e206d75737420626520466f7263654f726967696e2e0068416e79206465706f736974206973206c65667420616c6f6e652e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e0051015765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d657461646174610401086964c1010128543a3a4173736574496400112c80436c65617220746865206d6574616461746120666f7220616e2061737365742e006c4f726967696e206d75737420626520466f7263654f726967696e2e0060416e79206465706f7369742069732072657475726e65642e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f61737365745f7374617475732001086964c1010128543a3a417373657449640001146f776e65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001186973737565725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011461646d696e5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011c667265657a65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c6d696e5f62616c616e636501010128543a3a42616c616e636500013469735f73756666696369656e74880110626f6f6c00012469735f66726f7a656e880110626f6f6c00125898416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e51012d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e744d0176616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f55016074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e6420746875734d01616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e742073746174652067726f777468292e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c01086964c1010128543a3a4173736574496400012064656c65676174655902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e7401010128543a3a42616c616e63650013502d01417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e00584f726967696e206d757374206265205369676e65642e004d01456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e745501666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794901617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f546d656574207468652072696768742076616c75652e0045014e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f66446d616b696e6720746869732063616c6c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e0d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e49012d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e0616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0801086964c1010128543a3a4173736574496400012064656c65676174655902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365001434490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e003d014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e642c6064656c6567617465602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c01086964c1010128543a3a417373657449640001146f776e65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012064656c65676174655902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365001534490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e0049014f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e686163636f756e74206f662074686520617373657420606964602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960447472616e736665725f617070726f7665641001086964c1010128543a3a417373657449640001146f776e65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c64657374696e6174696f6e5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000118616d6f756e7401010128543a3a42616c616e63650016484d015472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d7061727479206163636f756e742e0049014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f207468651c7369676e65722e00590149662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b472657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e61012d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64bc66726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e61012d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb42d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e009c456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e00385765696768743a20604f2831296014746f7563680401086964c1010128543a3a41737365744964001724c043726561746520616e206173736574206163636f756e7420666f72206e6f6e2d70726f7669646572206173736574732e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e005d012d20606f726967696e603a204d757374206265205369676e65643b20746865207369676e6572206163636f756e74206d75737420686176652073756666696369656e742066756e647320666f722061206465706f736974382020746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e18726566756e640801086964c1010128543a3a41737365744964000128616c6c6f775f6275726e880110626f6f6c001820c052657475726e20746865206465706f7369742028696620616e7929206f6620616e206173736574206163636f756e742e0068546865206f726967696e206d757374206265205369676e65642e0009012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e5d012d2060616c6c6f775f6275726e603a20496620607472756560207468656e20617373657473206d61792062652064657374726f79656420696e206f7264657220746f20636f6d706c6574652074686520726566756e642e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee1040c3470616c6c65745f6173736574731474797065733844657374726f795769746e65737300000c01206163636f756e7473c101010c75333200012c73756666696369656e7473c101010c753332000124617070726f76616c73c101010c7533320000e5040c3870616c6c65745f6c6f74746572791870616c6c65741043616c6c040454000110286275795f7469636b657404011063616c6c15020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e00002c884275792061207469636b657420746f20656e74657220746865206c6f74746572792e000101546869732065787472696e7369632061637473206173206120706173737468726f7567682066756e6374696f6e20666f72206063616c6c602e20496e20616c6c0901736974756174696f6e73207768657265206063616c6c6020616c6f6e6520776f756c6420737563636565642c20746869732065787472696e7369632073686f756c6420737563636565642e000d014966206063616c6c60206973207375636365737366756c2c207468656e2077652077696c6c20617474656d707420746f2070757263686173652061207469636b65742c11017768696368206d6179206661696c2073696c656e746c792e20546f206465746563742073756363657373206f662061207469636b65742070757263686173652c20796f75ac73686f756c64206c697374656e20666f722074686520605469636b6574426f7567687460206576656e742e00c4546869732065787472696e736963206d7573742062652063616c6c65642062792061207369676e6564206f726967696e2e247365745f63616c6c7304011463616c6c73110201605665633c3c5420617320436f6e6669673e3a3a43616c6c3e00011811015365742063616c6c7320696e2073746f726167652077686963682063616e206265207573656420746f2070757263686173652061206c6f7474657279207469636b65742e001d01546869732066756e6374696f6e206f6e6c79206d61747465727320696620796f752075736520746865206056616c696461746543616c6c6020696d706c656d656e746174696f6e250170726f766964656420627920746869732070616c6c65742c20776869636820757365732073746f7261676520746f2064657465726d696e65207468652076616c69642063616c6c732e00d0546869732065787472696e736963206d7573742062652063616c6c656420627920746865204d616e61676572206f726967696e2e3473746172745f6c6f7474657279100114707269636518013042616c616e63654f663c543e0001186c656e677468100138543a3a426c6f636b4e756d62657200011464656c6179100138543a3a426c6f636b4e756d626572000118726570656174880110626f6f6c000228c453746172742061206c6f7474657279207573696e67207468652070726f766964656420636f6e66696775726174696f6e2e00d4546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e002c506172616d65746572733a009c2a20607072696365603a2054686520636f7374206f6620612073696e676c65207469636b65742e39012a20606c656e677468603a20486f77206c6f6e6720746865206c6f74746572792073686f756c642072756e20666f72207374617274696e67206174207468652063757272656e7420626c6f636b2e45012a206064656c6179603a20486f77206c6f6e6720616674657220746865206c6f747465727920656e642077652073686f756c642077616974206265666f7265207069636b696e6720612077696e6e65722ee02a2060726570656174603a20496620746865206c6f74746572792073686f756c6420726570656174207768656e20636f6d706c657465642e2c73746f705f726570656174000310fc49662061206c6f747465727920697320726570656174696e672c20796f752063616e20757365207468697320746f2073746f7020746865207265706561742ebc546865206c6f74746572792077696c6c20636f6e74696e756520746f2072756e20746f20636f6d706c6574696f6e2e00d4546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ee9040c2c70616c6c65745f67696c741870616c6c65741043616c6c04045400011024706c6163655f626964080118616d6f756e740101013042616c616e63654f663c543e0001206475726174696f6e10010c75333200003490506c61636520612062696420666f7220612067696c7420746f206265206973737565642e003d014f726967696e206d757374206265205369676e65642c20616e64206163636f756e74206d7573742068617665206174206c656173742060616d6f756e746020696e20667265652062616c616e63652e0039012d2060616d6f756e74603a2054686520616d6f756e74206f6620746865206269643b2074686573652066756e64732077696c6c2062652072657365727665642e20496620746865206269642069733d017375636365737366756c6c7920656c65766174656420696e746f20616e206973737565642067696c742c207468656e2074686573652066756e64732077696c6c20636f6e74696e756520746f206265f8726573657276656420756e74696c207468652067696c7420657870697265732e204d757374206265206174206c6561737420604d696e467265657a65602e55012d20606475726174696f6e603a20546865206e756d626572206f6620706572696f647320666f72207768696368207468652066756e64732077696c6c206265206c6f636b6564206966207468652067696c7420697359016973737565642e2049742077696c6c20657870697265206f6e6c79206166746572207468697320706572696f642068617320656c61707365642061667465722074686520706f696e74206f662069737375616e63652ed44d7573742062652067726561746572207468616e203120616e64206e6f206d6f7265207468616e20605175657565436f756e74602e0034436f6d706c657869746965733aac2d20605175657565735b6475726174696f6e5d2e6c656e28296020286a7573742074616b65206d6178292e2c726574726163745f626964080118616d6f756e740101013042616c616e63654f663c543e0001206475726174696f6e10010c75333200011c805265747261637420612070726576696f75736c7920706c61636564206269642e005d014f726967696e206d757374206265205369676e65642c20616e6420746865206163636f756e742073686f756c6420686176652070726576696f75736c79206973737565642061207374696c6c2d616374697665206269646c6f662060616d6f756e746020666f7220606475726174696f6e602e00ac2d2060616d6f756e74603a2054686520616d6f756e74206f66207468652070726576696f7573206269642ebc2d20606475726174696f6e603a20546865206475726174696f6e206f66207468652070726576696f7573206269642e287365745f746172676574040118746172676574ed04012c5065727175696e74696c6c00021890536574207461726765742070726f706f7274696f6e206f662067696c742d66756e64732e00744f726967696e206d757374206265206041646d696e4f726967696e602e0059012d2060746172676574603a20546865207461726765742070726f706f7274696f6e206f6620656666656374697665206973737565642066756e647320746861742073686f756c6420626520756e6465722067696c747340617420616e79206f6e652074696d652e1074686177040114696e646578c101012c416374697665496e64657800031c550152656d6f766520616e206163746976652062757420657870697265642067696c742e2052657365727665642066756e647320756e6465722067696c742061726520667265656420616e642062616c616e6365206973590161646a757374656420746f20656e737572652074686174207468652066756e64732067726f77206f7220736872696e6b20746f206d61696e7461696e20746865206571756976616c656e742070726f706f7274696f6e806f662065666665637469766520746f74616c206973737565642066756e64732e005d014f726967696e206d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f66207468652067696c74206f662074686520676976656e20696e6465782e00b82d2060696e646578603a2054686520696e646578206f66207468652067696c7420746f206265207468617765642e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632eed04000006f10400f1040c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040020010c7536340000f5040c3870616c6c65745f756e69717565731870616c6c65741043616c6c08045400044900015c18637265617465080114636c617373100128543a3a436c617373496400011461646d696e5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000040f849737375652061206e657720636c617373206f66206e6f6e2d66756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00b06041737365744465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a51012d2060636c617373603a20546865206964656e746966696572206f6620746865206e657720617373657420636c6173732e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650c0114636c617373100128543a3a436c61737349640001146f776e65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000130667265655f686f6c64696e67880110626f6f6c000140090149737375652061206e657720636c617373206f66206e6f6e2d66756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d2060636c617373603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080114636c617373100128543a3a436c617373496400011c7769746e657373f904013844657374726f795769746e65737300023c8c44657374726f79206120636c617373206f662066756e6769626c65206173736574732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c6f776e6572206f66207468652061737365742060636c617373602e00f42d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c61737320746f2062652064657374726f7965642e45012d20607769746e657373603a20496e666f726d6174696f6e206f6e2074686520696e7374616e636573206d696e74656420696e2074686520617373657420636c6173732e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00645765696768743a20604f286e202b206d29602077686572653a642d20606e203d207769746e6573732e696e7374616e63657360882d20606d203d207769746e6573732e696e7374616e63655f6d657461646174617360682d206061203d207769746e6573732e6174747269627574657360106d696e740c0114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e636549640001146f776e65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500032cb44d696e7420616e20617373657420696e7374616e6365206f66206120706172746963756c617220636c6173732e004501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f66207468652061737365742060636c617373602e00bc2d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265206d696e7465642eec2d2060696e7374616e6365603a2054686520696e7374616e63652076616c7565206f662074686520617373657420746f206265206d696e7465642edc2d206062656e6566696369617279603a2054686520696e697469616c206f776e6572206f6620746865206d696e7465642061737365742e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e0c0114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e6365496400012c636865636b5f6f776e6572fd0401ac4f7074696f6e3c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e0004348044657374726f7920612073696e676c6520617373657420696e7374616e63652e0039014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652061737365742060636c617373602e00bc2d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265206275726e65642ed42d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265206275726e65642e51012d2060636865636b5f6f776e6572603a2049662060536f6d6560207468656e20746865206f7065726174696f6e2077696c6c206661696c2077697468206057726f6e674f776e65726020756e6c657373207468657c20206173736574206973206f776e656420627920746869732076616c75652e00b4456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e00385765696768743a20604f283129607c4d6f6465733a2060636865636b5f6f776e65722e69735f736f6d652829602e207472616e736665720c0114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e63654964000110646573745902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500053cc44d6f766520616e2061737365742066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a842d207468652041646d696e206f66207468652061737365742060636c617373603b902d20746865204f776e6572206f66207468652061737365742060696e7374616e6365603b5d012d2074686520617070726f7665642064656c656761746520666f72207468652061737365742060696e7374616e6365602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733ad02d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265207472616e736665727265642ee82d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265207472616e736665727265642ee02d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f66207468652061737365742e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080114636c617373100128543a3a436c6173734964000124696e7374616e6365736d0101485665633c543a3a496e7374616e636549643e0006449c52656576616c7561746520746865206465706f73697473206f6e20736f6d65206173736574732e0039014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00bc2d2060636c617373603a2054686520636c617373206f662074686520617373657420746f2062652066726f7a656e2e4d012d2060696e7374616e636573603a2054686520696e7374616e636573206f662074686520617373657420636c6173732077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e0055014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e7920617373657420696e7374616e6365732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220615d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e20696e7374616e636573550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00510149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636c61737320697320756e6b6e6f776e206f6620746865207369676e6572206973646e6f74207065726d697474656420746f2063616c6c2069742e00705765696768743a20604f28696e7374616e6365732e6c656e2829296018667265657a65080114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e63654964000728f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e20617373657420696e7374616e63652e0041014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00bc2d2060636c617373603a2054686520636c617373206f662074686520617373657420746f2062652066726f7a656e2ed42d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f283129601074686177080114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e63654964000828d052652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e20617373657420696e7374616e63652e0041014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00bc2d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265207468617765642ed42d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f636c617373040114636c617373100128543a3a436c61737349640009240101446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520617373657420636c6173732e0041014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00a02d2060636c617373603a2054686520617373657420636c61737320746f2062652066726f7a656e2e0050456d6974732060436c61737346726f7a656e602e00385765696768743a20604f2831296028746861775f636c617373040114636c617373100128543a3a436c6173734964000a24e052652d616c6c6f7720756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520617373657420636c6173732e0039014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652061737365742060636c617373602e00882d2060636c617373603a2054686520636c61737320746f206265207468617765642e0050456d6974732060436c617373546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080114636c617373100128543a3a436c61737349640001146f776e65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000b2c8c4368616e676520746865204f776e6572206f6620616e20617373657420636c6173732e0039014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00e42d2060636c617373603a2054686520617373657420636c6173732077686f7365206f776e65722073686f756c64206265206368616e6765642e0d012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320617373657420636c6173732e2054686579206d75737420686176652063616c6c656435012020607365745f6163636570745f6f776e6572736869706020776974682060636c6173736020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100114636c617373100128543a3a436c61737349640001186973737565725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011461646d696e5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011c667265657a65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000c30dc4368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e20617373657420636c6173732e0039014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00e02d2060636c617373603a2054686520617373657420636c6173732077686f7365207465616d2073686f756c64206265206368616e6765642ebc2d2060697373756572603a20546865206e657720497373756572206f66207468697320617373657420636c6173732eb42d206061646d696e603a20546865206e65772041646d696e206f66207468697320617373657420636c6173732ec42d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320617373657420636c6173732e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c0114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e6365496400012064656c65676174655902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000d2c2501417070726f766520616e20696e7374616e636520746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e0011014f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f66207468652061737365742060696e7374616e6365602e0021012d2060636c617373603a2054686520636c617373206f662074686520617373657420746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e39012d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e1d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e73666572207468652061737365742e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e636549640001506d617962655f636865636b5f64656c6567617465fd0401ac4f7074696f6e3c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e000e40150143616e63656c20746865207072696f7220617070726f76616c20666f7220746865207472616e73666572206f6620616e20617373657420627920612064656c65676174652e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3b01012d20605369676e656460207769746820746865207369676e6572206265696e67207468652041646d696e206f66207468652061737365742060636c617373603b0d012d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f66207468652061737365742060696e7374616e6365603b0028417267756d656e74733a19012d2060636c617373603a2054686520636c617373206f6620746865206173736574206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e31012d2060696e7374616e6365603a2054686520696e7374616e6365206f6620746865206173736574206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e51012d20606d617962655f636865636b5f64656c6567617465603a2049662060536f6d65602077696c6c20656e7375726520746861742074686520676976656e206163636f756e7420697320746865206f6e6520746fb020207768696368207065726d697373696f6e206f66207472616e736665722069732064656c6567617465642e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296048666f7263655f61737365745f7374617475731c0114636c617373100128543a3a436c61737349640001146f776e65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001186973737565725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011461646d696e5902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500011c667265657a65725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000130667265655f686f6c64696e67880110626f6f6c00012469735f66726f7a656e880110626f6f6c000f4498416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e009c2d2060636c617373603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e49012d2060667265655f686f6c64696e67603a20576865746865722061206465706f7369742069732074616b656e20666f7220686f6c64696e6720616e20696e7374616e6365206f662074686973206173736574202020636c6173732e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f28312960347365745f617474726962757465100114636c617373100128543a3a436c61737349640001386d617962655f696e7374616e6365710101544f7074696f6e3c543a3a496e7374616e636549643e00010c6b65797501016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001044c053657420616e2061747472696275746520666f7220616e20617373657420636c617373206f7220696e7374616e63652e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653861737365742060636c617373602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2901604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e3d012d20606d617962655f696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f6174747269627574650c0114636c617373100128543a3a436c61737349640001386d617962655f696e7374616e6365710101544f7074696f6e3c543a3a496e7374616e636549643e00010c6b65797501016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e001138c8436c65617220616e2061747472696275746520666f7220616e20617373657420636c617373206f7220696e7374616e63652e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653861737365742060636c617373602e00bc416e79206465706f73697420697320667265656420666f722074686520617373657420636c617373206f776e65722e0041012d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f20636c6561722e45012d20606d617962655f696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f20636c6561722e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f28312960307365745f6d65746164617461100114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e636549640001106461746169010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e880110626f6f6c0012449c53657420746865206d6574616461746120666f7220616e20617373657420696e7374616e63652e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653861737365742060636c617373602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e25012d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e51012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e35012d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080114636c617373100128543a3a436c6173734964000120696e7374616e6365100134543a3a496e7374616e63654964001334a4436c65617220746865206d6574616461746120666f7220616e20617373657420696e7374616e63652e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468654461737365742060696e7374616e6365602e00bc416e79206465706f73697420697320667265656420666f722074686520617373657420636c617373206f776e65722e0041012d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f20636c6561722e2d012d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f28312960487365745f636c6173735f6d657461646174610c0114636c617373100128543a3a436c61737349640001106461746169010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e880110626f6f6c0014409053657420746865206d6574616461746120666f7220616e20617373657420636c6173732e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66487468652061737365742060636c617373602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0001012d2060636c617373603a20546865206964656e746966696572206f66207468652061737365742077686f7365206d6574616461746120746f207570646174652e51012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e35012d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e0064456d6974732060436c6173734d65746164617461536574602e00385765696768743a20604f2831296050636c6561725f636c6173735f6d65746164617461040114636c617373100128543a3a436c617373496400153098436c65617220746865206d6574616461746120666f7220616e20617373657420636c6173732e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66487468652061737365742060636c617373602e00bc416e79206465706f73697420697320667265656420666f722074686520617373657420636c617373206f776e65722e0015012d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f7365206d6574616461746120746f20636c6561722e0074456d6974732060436c6173734d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e65727368697004012c6d617962655f636c617373710101484f7074696f6e3c543a3a436c61737349643e001628110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e004d014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636c617373602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0061012d20606d617962655f636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f7365206f776e65727368697020746865207369676e65722069732077696c6c696e6741012020746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632ef9040c3870616c6c65745f756e69717565731474797065733844657374726f795769746e65737300000c0124696e7374616e636573c101010c753332000148696e7374616e63655f6d6574616461746173c101010c75333200012861747472696275746573c101010c7533320000fd0404184f7074696f6e0404540159020108104e6f6e6500000010536f6d6504005902000001000001050c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c65741043616c6c04045400010c1473746f72650401106461746128011c5665633c75383e0000181d01496e64657820616e642073746f72652064617461206f6e20636861696e2e204d696e696d756d20646174612073697a6520697320312062797465732c206d6178696d756d2069736101604d61785472616e73616374696f6e53697a65602e20446174612077696c6c2062652072656d6f766564206166746572206053544f524147455f504552494f446020626c6f636b732c20756e6c657373206072656e6577605469732063616c6c65642e2023203c7765696768743e11012d206e2a6c6f67286e29206f6620646174612073697a652c20617320616c6c20646174612069732070757368656420746f20616e20696e2d6d656d6f727920747269652e844164646974696f6e616c6c7920636f6e7461696e7320612044422077726974652e2c23203c2f7765696768743e1472656e6577080114626c6f636b100138543a3a426c6f636b4e756d626572000114696e64657810010c75333200011c2d0152656e65772070726576696f75736c792073746f72656420646174612e20506172616d6574657273206172652074686520626c6f636b206e756d626572207468617420636f6e7461696e73250170726576696f7573206073746f726560206f72206072656e6577602063616c6c20616e64207472616e73616374696f6e20696e6465782077697468696e207468617420626c6f636b2e01015472616e73616374696f6e20696e64657820697320656d697474656420696e20746865206053746f72656460206f72206052656e6577656460206576656e742e744170706c6965732073616d652066656573206173206073746f7265602e2823203c7765696768743e2c2d20436f6e7374616e742e2c23203c2f7765696768743e2c636865636b5f70726f6f6604011470726f6f660505015c5472616e73616374696f6e53746f7261676550726f6f660002201901436865636b2073746f726167652070726f6f6620666f7220626c6f636b206e756d6265722060626c6f636b5f6e756d6265722829202d2053746f72616765506572696f64602e01014966207375636820626c6f636b20646f6573206e6f74206578697374207468652070726f6f6620697320657870656374656420746f20626520604e6f6e65602e2823203c7765696768743e41012d204c696e65617220772e722e7420746865206e756d626572206f6620696e6465786564207472616e73616374696f6e7320696e207468652070726f76656420626c6f636b20666f722072616e646f6d28202070726f62696e672e9c546865726527732061204442207265616420666f722065616368207472616e73616374696f6e2ed04865726520776520617373756d652061206d6178696d756d206f66203130302070726f626564207472616e73616374696f6e732e2c23203c2f7765696768743e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0505087073705f7472616e73616374696f6e5f73746f726167655f70726f6f665c5472616e73616374696f6e53746f7261676550726f6f6600000801146368756e6b28011c5665633c75383e00011470726f6f66d90101305665633c5665633c75383e3e000009050c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c0804540004490001081472656261670401286469736c6f6361746564000130543a3a4163636f756e74496400002059014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00610157696c6c206e657665722072657475726e20616e206572726f723b20696620606469736c6f63617465646020646f6573206e6f74206578697374206f7220646f65736e2774206e65656420612072656261672c207468656ee069742069732061206e6f6f7020616e64206665657320617265207374696c6c20636f6c6c65637465642066726f6d20606f726967696e602e3c7075745f696e5f66726f6e745f6f6604011c6c696768746572000130543a3a4163636f756e744964000120d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f66a0746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e00344f6e6c7920776f726b73206966942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e0d050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65741043616c6c04045400011858636f6e74726f6c5f6175746f5f6d6967726174696f6e0401306d617962655f636f6e6669671105015c4f7074696f6e3c4d6967726174696f6e4c696d6974733e00000c80436f6e74726f6c20746865206175746f6d61746963206d6967726174696f6e2e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e40636f6e74696e75655f6d6967726174650c01186c696d6974731505013c4d6967726174696f6e4c696d69747300013c7265616c5f73697a655f757070657210010c7533320001307769746e6573735f7461736b190501404d6967726174696f6e5461736b3c543e000154b8436f6e74696e756520746865206d6967726174696f6e20666f722074686520676976656e20606c696d697473602e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e20626520616e79207369676e6564206163636f756e742e005d0154686973207472616e73616374696f6e20686173204e4f204d4f4e455441525920494e43454e54495645532e2063616c6c696e672069742077696c6c206e6f742072657761726420616e796f6e652e20416c626569742cec55706f6e207375636365737366756c20657865637574696f6e2c20746865207472616e73616374696f6e206665652069732072657475726e65642e0041015468652028706f74656e7469616c6c79206f7665722d657374696d6174656429206f66207468652062797465206c656e677468206f6620616c6c2074686520646174612072656164206d757374206265590170726f766964656420666f722075702d66726f6e74206665652d7061796d656e7420616e64207765696768696e672e20496e20657373656e63652c207468652063616c6c65722069732067756172616e746565696e6749017468617420657865637574696e67207468652063757272656e7420604d6967726174696f6e5461736b6020776974682074686520676976656e20606c696d697473602077696c6c206e6f742065786365656494607265616c5f73697a655f757070657260206279746573206f66207265616420646174612e00450154686520607769746e6573735f7461736b60206973206d6572656c7920612068656c70657220746f2070726576656e74207468652063616c6c65722066726f6d206265696e6720736c6173686564206f725d0167656e6572616c6c7920747269676765722061206d6967726174696f6e2074686174207468657920646f206e6f7420696e74656e642e205468697320706172616d65746572206973206a7573742061206d6573736167653d0166726f6d2063616c6c65722c20736179696e67207468617420746865792062656c696576656420607769746e6573735f7461736b602077617320746865206c617374207374617465206f662074686559016d6967726174696f6e2c20616e642074686579206f6e6c79207769736820666f72207468656972207472616e73616374696f6e20746f20646f20616e797468696e672c206966207468697320617373756d7074696f6e1101686f6c64732e20496e206361736520607769746e6573735f7461736b6020646f6573206e6f74206d617463682c20746865207472616e73616374696f6e206661696c732e0039014261736564206f6e2074686520646f63756d656e746174696f6e206f66205b604d6967726174696f6e5461736b3a3a6d6967726174655f756e74696c5f65786861757374696f6e605d2c207468654d017265636f6d6d656e64656420776179206f6620646f696e67207468697320697320746f2070617373206120606c696d6974602074686174206f6e6c7920626f756e64732060636f756e74602c206173207468659c6073697a6560206c696d69742063616e20616c77617973206265206f7665727772697474656e2e486d6967726174655f637573746f6d5f746f700801106b657973d90101305665633c5665633c75383e3e0001307769746e6573735f73697a6510010c75333200021009014d69677261746520746865206c697374206f6620746f70206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e506d6967726174655f637573746f6d5f6368696c640c0110726f6f7428011c5665633c75383e0001286368696c645f6b657973d90101305665633c5665633c75383e3e000128746f74616c5f73697a6510010c75333200031811014d69677261746520746865206c697374206f66206368696c64206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e000d01416c6c206f662074686520676976656e206368696c64206b657973206d7573742062652070726573656e7420756e646572206f6e6520606368696c645f726f6f74602e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e547365745f7369676e65645f6d61785f6c696d6974730401186c696d6974731505013c4d6967726174696f6e4c696d697473000404b853657420746865206d6178696d756d206c696d6974206f6620746865207369676e6564206d6967726174696f6e2e48666f7263655f7365745f70726f677265737308013070726f67726573735f746f701d05012050726f677265737300013870726f67726573735f6368696c641d05012050726f6772657373000524c8466f72636566756c6c7920736574207468652070726f6772657373207468652072756e6e696e67206d6967726174696f6e2e005d0154686973206973206f6e6c792075736566756c20696e206f6e6520636173653a20746865206e657874206b657920746f206d69677261746520697320746f6f2062696720746f206265206d696772617465642077697468550161207369676e6564206163636f756e742c20696e20612070617261636861696e20636f6e746578742c20616e642077652073696d706c792077616e7420746f20736b69702069742e204120726561736f6e61626c6561016578616d706c65206f66207468697320776f756c6420626520603a636f64653a602c20776869636820697320626f7468207665727920657870656e7369766520746f206d6967726174652c20616e6420636f6d6d6f6e6c79a4757365642c20736f2070726f6261626c7920697420697320616c7265616479206d696772617465642e005d01496e206361736520796f75206d657373207468696e67732075702c20796f752063616e20616c736f2c20696e207072696e6369706c652c20757365207468697320746f20726573657420746865206d6967726174696f6e2070726f636573732e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e110504184f7074696f6e0404540115050108104e6f6e6500000010536f6d6504001505000001000015050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65743c4d6967726174696f6e4c696d697473000008011073697a6510010c7533320001106974656d10010c753332000019050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574344d6967726174696f6e5461736b040454000014013070726f67726573735f746f701d05012050726f677265737300013870726f67726573735f6368696c641d05012050726f677265737300011073697a6510010c753332000124746f705f6974656d7310010c75333200012c6368696c645f6974656d7310010c75333200001d050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65742050726f677265737300010c1c546f53746172740000001c4c6173744b6579040028011c5665633c75383e00010020436f6d706c6574650002000021050c5470616c6c65745f6368696c645f626f756e746965731870616c6c65741043616c6c04045400011c406164645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f6964c101012c426f756e7479496e64657800011476616c75650101013042616c616e63654f663c543e00012c6465736372697074696f6e28011c5665633c75383e00004c5c4164642061206e6577206368696c642d626f756e74792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f6620706172656e74dc626f756e747920616e642074686520706172656e7420626f756e7479206d75737420626520696e2022616374697665222073746174652e0005014368696c642d626f756e74792067657473206164646564207375636365737366756c6c7920262066756e642067657473207472616e736665727265642066726f6d0901706172656e7420626f756e747920746f206368696c642d626f756e7479206163636f756e742c20696620706172656e7420626f756e74792068617320656e6f7567686c66756e64732c20656c7365207468652063616c6c206661696c732e000d01557070657220626f756e6420746f206d6178696d756d206e756d626572206f662061637469766520206368696c642d626f756e7469657320746861742063616e206265a8616464656420617265206d616e61676564207669612072756e74696d6520747261697420636f6e666967985b60436f6e6669673a3a4d61784163746976654368696c64426f756e7479436f756e74605d2e0001014966207468652063616c6c20697320737563636573732c2074686520737461747573206f66206368696c642d626f756e7479206973207570646174656420746f20224164646564222e004d012d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e747920666f72207768696368206368696c642d626f756e7479206973206265696e672061646465642eb02d206076616c7565603a2056616c756520666f7220657865637574696e67207468652070726f706f73616c2edc2d20606465736372697074696f6e603a2054657874206465736372697074696f6e20666f7220746865206368696c642d626f756e74792e3c70726f706f73655f63757261746f72100140706172656e745f626f756e74795f6964c101012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964c101012c426f756e7479496e64657800011c63757261746f725902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500010c6665650101013042616c616e63654f663c543e00013ca050726f706f73652063757261746f7220666f722066756e646564206368696c642d626f756e74792e000d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652063757261746f72206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e20224164646564222073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6405017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202243757261746f7250726f706f73656422206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792eb42d206063757261746f72603a2041646472657373206f66206368696c642d626f756e74792063757261746f722eec2d2060666565603a207061796d656e742066656520746f206368696c642d626f756e74792063757261746f7220666f7220657865637574696f6e2e386163636570745f63757261746f72080140706172656e745f626f756e74795f6964c101012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964c101012c426f756e7479496e64657800024cb4416363657074207468652063757261746f7220726f6c6520666f7220746865206368696c642d626f756e74792e00f4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f662074686973346368696c642d626f756e74792e00ec41206465706f7369742077696c6c2062652072657365727665642066726f6d207468652063757261746f7220616e6420726566756e642075706f6e887375636365737366756c207061796f7574206f722063616e63656c6c6174696f6e2e00f846656520666f722063757261746f722069732064656475637465642066726f6d2063757261746f7220666565206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e202243757261746f7250726f706f736564222073746174652c20666f722070726f63657373696e6720746865090163616c6c2e20416e64207374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202241637469766522206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e40756e61737369676e5f63757261746f72080140706172656e745f626f756e74795f6964c101012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964c101012c426f756e7479496e64657800038894556e61737369676e2063757261746f722066726f6d2061206368696c642d626f756e74792e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c2063616e20626520656974686572206052656a6563744f726967696e602c206f72dc7468652063757261746f72206f662074686520706172656e7420626f756e74792c206f7220616e79207369676e6564206f726967696e2e00f8466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e20616e6420746865206368696c642d626f756e7479010163757261746f722c20706172656e742d626f756e7479206d75737420626520696e206163746976652073746174652c20666f7220746869732063616c6c20746f0901776f726b2e20576520616c6c6f77206368696c642d626f756e74792063757261746f7220616e6420543a3a52656a6563744f726967696e20746f2065786563757465c8746869732063616c6c20697272657370656374697665206f662074686520706172656e742d626f756e74792073746174652e00dc496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e60206f72207468650501706172656e742d626f756e74792063757261746f722c20776520617373756d65207468617420746865206368696c642d626f756e74792063757261746f722069730d016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e000501496620746865206f726967696e20697320746865206368696c642d626f756e74792063757261746f722c2077652074616b6520746869732061732061207369676e09017468617420746865792061726520756e61626c6520746f20646f207468656972206a6f622c20616e64206172652077696c6c696e676c7920676976696e672075702e0901576520636f756c6420736c61736820746865206465706f7369742c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f20756e7265736572766511017468656972206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966386974206973206162757365642e2900050146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e652069666620746865206368696c642d626f756e74792063757261746f72206973090122696e616374697665222e204578706972792075706461746520647565206f6620706172656e7420626f756e7479206973207573656420746f20657374696d6174659c696e616374697665207374617465206f66206368696c642d626f756e74792063757261746f722e000d015468697320616c6c6f777320616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f757420746861742061206368696c642d626f756e7479090163757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e642077652073686f756c64207069636b2061206e6577f86f6e652e20496e2074686973206361736520746865206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e0001015374617465206f66206368696c642d626f756e7479206973206d6f76656420746f204164646564207374617465206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e4861776172645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f6964c101012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964c101012c426f756e7479496e64657800012c62656e65666963696172795902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000444904177617264206368696c642d626f756e747920746f20612062656e65666963696172792e00f85468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520746865206d61737465722063757261746f72206f727463757261746f72206f662074686973206368696c642d626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e0009014368696c642d626f756e7479206d75737420626520696e206163746976652073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6411017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202250656e64696e675061796f757422206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e942d206062656e6566696369617279603a2042656e6566696369617279206163636f756e742e48636c61696d5f6368696c645f626f756e7479080140706172656e745f626f756e74795f6964c101012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964c101012c426f756e7479496e6465780005400501436c61696d20746865207061796f75742066726f6d20616e2061776172646564206368696c642d626f756e7479206166746572207061796f75742064656c61792e00ec546865206469737061746368206f726967696e20666f7220746869732063616c6c206d617920626520616e79207369676e6564206f726967696e2e00050143616c6c20776f726b7320696e646570656e64656e74206f6620706172656e7420626f756e74792073746174652c204e6f206e65656420666f7220706172656e7474626f756e747920746f20626520696e206163746976652073746174652e0011015468652042656e65666963696172792069732070616964206f757420776974682061677265656420626f756e74792076616c75652e2043757261746f7220666565206973947061696420262063757261746f72206465706f73697420697320756e72657365727665642e0005014368696c642d626f756e7479206d75737420626520696e202250656e64696e675061796f7574222073746174652c20666f722070726f63657373696e6720746865fc63616c6c2e20416e6420696e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e6c7375636365737366756c2063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e48636c6f73655f6368696c645f626f756e7479080140706172656e745f626f756e74795f6964c101012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964c101012c426f756e7479496e646578000658110143616e63656c20612070726f706f736564206f7220616374697665206368696c642d626f756e74792e204368696c642d626f756e7479206163636f756e742066756e64730901617265207472616e7366657272656420746f20706172656e7420626f756e7479206163636f756e742e20546865206368696c642d626f756e74792063757261746f72986465706f736974206d617920626520756e726573657276656420696620706f737369626c652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652065697468657220706172656e742063757261746f72206f724860543a3a52656a6563744f726967696e602e00f0496620746865207374617465206f66206368696c642d626f756e74792069732060416374697665602c2063757261746f72206465706f7369742069732c756e72657365727665642e00f4496620746865207374617465206f66206368696c642d626f756e7479206973206050656e64696e675061796f7574602c2063616c6c206661696c7320267872657475726e73206050656e64696e675061796f757460206572726f722e000d01466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e2c20706172656e7420626f756e7479206d75737420626520696ef06163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f20776f726b2e20466f72206f726967696e90543a3a52656a6563744f726967696e20657865637574696f6e20697320666f726365642e000101496e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e25050c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c04045400011c187375626d69740c013c70726f706f73616c5f6f726967696e2905014850616c6c6574734f726967696e4f663c543e00013470726f706f73616c5f6861736824011c543a3a48617368000140656e6163746d656e745f6d6f6d656e743d050170446973706174636854696d653c543a3a426c6f636b4e756d6265723e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0041012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642ed42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636b080130547261636b49644f663c543e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e290508306e6f64655f72756e74696d65304f726967696e43616c6c65720001101873797374656d04002d0501746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c0400310501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000d0048546563686e6963616c436f6d6d69747465650400350501010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e000e0010566f69640400390501110173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a566f6964000300002d050c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200003105084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d000200003505084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d000200003905081c73705f636f726510566f6964000100003d0510346672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d6265720001000041050c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c65741043616c6c04045400011810766f7465080128706f6c6c5f696e646578c1010138506f6c6c496e6465784f663c543e000110766f7465450501644163636f756e74566f74653c42616c616e63654f663c543e3e0000241901566f746520696e206120706f6c6c2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c82d2060706f6c6c5f696e646578603a2054686520696e646578206f662074686520706f6c6c20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e0015015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722068617320766f746564206f6e2e2064656c6567617465100114636c617373080128436c6173734f663c543e000108746f000130543a3a4163636f756e744964000128636f6e76696374696f6e4d050128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e00015c4d0144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e7420666f72206168706172746963756c617220636c617373206f6620706f6c6c732e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72590120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c69646174656494202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5d012d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2064656c65676174652e20546f2064656c6567617465206d756c7469706c6520636c61737365732c206d756c7469706c652063616c6c73802020746f20746869732066756e6374696f6e206172652072657175697265642e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e28756e64656c6567617465040114636c617373080128436c6173734f663c543e0002384d01556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e7420666f72206120706172746963756c617220636c617373206f6620706f6c6c732e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64dc6f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e00f02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2072656d6f7665207468652064656c65676174696f6e2066726f6d2e0050456d6974732060556e64656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e18756e6c6f636b080114636c617373080128436c6173734f663c543e000118746172676574000130543a3a4163636f756e744964000324510152656d6f766520746865206c6f636b20636175736564207072696f7220766f74696e672f64656c65676174696e672077686963682068617320657870697265642077697468696e2061207061727469636c75617218636c6173732e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00a02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f20756e6c6f636b2eb82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465080114636c617373510501484f7074696f6e3c436c6173734f663c543e3e000114696e646578100138506f6c6c496e6465784f663c543e0004746452656d6f7665206120766f746520666f72206120706f6c6c2e000c49663a702d2074686520706f6c6c207761732063616e63656c6c65642c206f72642d2074686520706f6c6c206973206f6e676f696e672c206f72782d2074686520706f6c6c2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e009049662c20686f77657665722c2074686520706f6c6c2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465707265676973746572656420666f7220706f6c6c2060696e646578602e00dc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e55012d2060636c617373603a204f7074696f6e616c20706172616d657465722c20696620676976656e20697420696e646963617465732074686520636c617373206f662074686520706f6c6c2e20466f7220706f6c6c73f02020776869636820686176652066696e6973686564206f72206172652063616e63656c6c65642c2074686973206d7573742062652060536f6d65602e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f74650c0118746172676574000130543a3a4163636f756e744964000114636c617373080128436c6173734f663c543e000114696e646578100138506f6c6c496e6465784f663c543e0005406452656d6f7665206120766f746520666f72206120706f6c6c2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c250165697468657220626563617573652074686520706f6c6c207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f73742074686520706f6c6c206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e0061012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f7220706f6c6c28202060696e646578602edc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e842d2060636c617373603a2054686520636c617373206f662074686520706f6c6c2e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e45050c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f746549050110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001000049050c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746510566f746500000400080000004d050c6070616c6c65745f636f6e76696374696f6e5f766f74696e6728636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000510504184f7074696f6e04045401080108104e6f6e6500000010536f6d65040008000001000055050c4070616c6c65745f77686974656c6973741870616c6c65741043616c6c0404540001103877686974656c6973745f63616c6c04012463616c6c5f6861736824011c543a3a486173680000005c72656d6f76655f77686974656c69737465645f63616c6c04012463616c6c5f6861736824011c543a3a486173680001006464697370617463685f77686974656c69737465645f63616c6c08012463616c6c5f6861736824011c543a3a4861736800014c63616c6c5f7765696768745f7769746e6573732001185765696768740002009c64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d61676504011063616c6c15020160426f783c3c5420617320436f6e6669673e3a3a43616c6c3e000300042501436f6e7461696e73206f6e652076617269616e742070657220646973706174636861626c6520746861742063616e2062652063616c6c656420627920616e2065787472696e7369632e59050c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909095d0510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454016105045300000400650501185665633c543e0000610500000408290220006505000002610500690510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401040453000004006d0501185665633c543e00006d050000020400710504184f7074696f6e04045401040108104e6f6e6500000010536f6d6504000400000100007505084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046339020128287536342c2075363429000134616c6c6f7765645f736c6f74733d020130416c6c6f776564536c6f7473000079050c2c70616c6c65745f626162651870616c6c6574144572726f7204045400010c60496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909097d050000028105008105084470616c6c65745f617574686f727368697038556e636c65456e7472794974656d0c2c426c6f636b4e756d62657201101048617368012418417574686f72010001083c496e636c7573696f6e486569676874040010012c426c6f636b4e756d62657200000014556e636c650800240110486173680000e401384f7074696f6e3c417574686f723e0001000085050c4470616c6c65745f617574686f72736869701870616c6c6574144572726f7204045400011c48496e76616c6964556e636c65506172656e740000048854686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c726561647953657400010480556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c657300020440546f6f206d616e7920756e636c65732e3047656e65736973556e636c650003045454686520756e636c652069732067656e657369732e30546f6f48696768556e636c650004047c54686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c756465640005047854686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c65000604b454686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a09090989050000040c001888008d050c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909910510346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540195050453000004009d0501185665633c543e00009505083c70616c6c65745f62616c616e6365732c42616c616e63654c6f636b041c42616c616e63650118000c01086964050201384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e739905011c526561736f6e7300009905083c70616c6c65745f62616c616e6365731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200009d05000002950500a10510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401a505045300000400a90501185665633c543e0000a505083c70616c6c65745f62616c616e6365732c52657365727665446174610844526573657276654964656e7469666965720105021c42616c616e6365011800080108696405020144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000a905000002a50500ad05083c70616c6c65745f62616c616e6365732052656c65617365730001081856315f305f300000001856325f305f3000010000b1050c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001203856657374696e6742616c616e63650000049856657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e73000104c44163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e63650002047442616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f736974000304e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c65000504c8412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000704ac4e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b5050c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b905086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000bd05000002c10500c1050c346672616d655f737570706f72741c7765696768747358576569676874546f466565436f656666696369656e74041c42616c616e6365011800100134636f6566665f696e746567657218011c42616c616e6365000128636f6566665f66726163cd01011c50657262696c6c0001206e65676174697665880110626f6f6c00011864656772656508010875380000c505089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400c905012828626f6f6c2c20426e2900020024456d657267656e637900030000c90500000408881000cd05089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e0404410100000c0120737570706f7274734103012c537570706f7274733c413e00011473636f726535030134456c656374696f6e53636f726500011c636f6d7075746584013c456c656374696f6e436f6d707574650000d105089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f740404540000080118766f74657273d505013c5665633c566f7465724f663c543e3e00011c746172676574739c01445665633c543a3a4163636f756e7449643e0000d505000002d90500d9050000040c0020dd0500dd0510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401000453000004009c01185665633c543e0000e10510346672616d655f737570706f72741c73746f7261676544626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01350304560110045300000400e505013842547265654d61703c4b2c20563e0000e505042042547265654d617008044b01350304560110000400e905000000e905000002ed0500ed050000040835031000f1050c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e0169020010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6e65020154526177536f6c7574696f6e3c536f6c7574696f6e3e00011872657761726418011c42616c616e63650000f5050c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f720404540001306850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c6564040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732ef905083870616c6c65745f7374616b696e67345374616b696e674c656467657208244163636f756e74496401001c42616c616e636501180014011473746173680001244163636f756e744964000114746f74616c0101011c42616c616e63650001186163746976650101011c42616c616e6365000124756e6c6f636b696e67fd0501d0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63653e2c204d6178556e6c6f636b696e674368756e6b733e00013c636c61696d65645f726577617264736d0101345665633c457261496e6465783e0000fd0510346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454010106045300000400050601185665633c543e00000106083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c75650101011c42616c616e636500010c657261c1010120457261496e646578000005060000020106000906083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473dd0501ac426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61784e6f6d696e6174696f6e733e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564880110626f6f6c00000d06083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e6465780001147374617274a901012c4f7074696f6e3c7536343e00001106000004081000001506083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c1906018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00001906042042547265654d617008044b0100045601100004001d060000001d060000022106002106000004080010002506083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c776179730003000029060000022d06002d06083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273b801645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f72746572739c01385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000310600000408cd01180035060c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f726d0101345665633c457261496e6465783e000039060c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e636500003d060000024106004106000004081088004506083870616c6c65745f7374616b696e672052656c65617365730001203456315f305f30416e6369656e740000001856325f305f300001001856335f305f300002001856345f305f300003001856355f305f300004001856365f305f300005001856375f305f300006001856385f305f30000700004906103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f72040454000160344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001004b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650011043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300120494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740013043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001404550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730015084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f72730016084d0154686572652061726520746f6f206d616e792076616c696461746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001704e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909094d06000002510600510600000408007903005506000004085906280059060c1c73705f636f72651863727970746f244b65795479706549640000040038011c5b75383b20345d00005d060c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e610600000265060065060000040c102400006906000004089c18006d06084070616c6c65745f64656d6f637261637938507265696d6167655374617475730c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011001081c4d697373696e67040010012c426c6f636b4e756d62657200000024417661696c61626c651401106461746128011c5665633c75383e00012070726f76696465720001244163636f756e74496400011c6465706f73697418011c42616c616e636500011473696e636510012c426c6f636b4e756d6265720001186578706972797101014c4f7074696f6e3c426c6f636b4e756d6265723e0001000071060c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d6265720110104861736801241c42616c616e6365011801081c4f6e676f696e670400750601b05265666572656e64756d5374617475733c426c6f636b4e756d6265722c20486173682c2042616c616e63653e0000002046696e6973686564080120617070726f766564880110626f6f6c00010c656e6410012c426c6f636b4e756d6265720001000075060c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d6265720110104861736801241c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200013470726f706f73616c5f68617368240110486173680001247468726573686f6c64a00134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c797906013854616c6c793c42616c616e63653e000079060c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e636500007d060c4070616c6c65745f64656d6f637261637910766f746518566f74696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100108184469726563740c0114766f746573810601b05665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e293e00012c64656c65676174696f6e738906015044656c65676174696f6e733c42616c616e63653e0001147072696f728d06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6e85030128436f6e76696374696f6e00012c64656c65676174696f6e738906015044656c65676174696f6e733c42616c616e63653e0001147072696f728d06017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00010000810600000285060085060000040810a40089060c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e636500008d060c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e6365000091060000040824a000950600000408109c009906084070616c6c65745f64656d6f63726163792052656c6561736573000104085631000000009d060c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f720404540001702056616c75654c6f770000043456616c756520746f6f206c6f773c50726f706f73616c4d697373696e670001045c50726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c65640002049443616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c0003045450726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c69737465640004046850726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f72697479000504a84e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c69644861736800060430496e76616c69642068617368284e6f50726f706f73616c000704504e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564000804984964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365444475706c6963617465507265696d61676500090458507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e74000a04304e6f7420696d6d696e656e7420546f6f4561726c79000b0424546f6f206561726c7920496d6d696e656e74000c0420496d6d696e656e743c507265696d6167654d697373696e67000d0448507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964000e0484566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964000f0440496e76616c696420707265696d6167652c4e6f6e6557616974696e67001004504e6f2070726f706f73616c732077616974696e67204e6f74566f746572001104c454686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e001204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e6700130488546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e6473001404fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67001504a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f74657345786973740016085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f776564001704d854686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e73650018049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e6400190450496e76616c696420757070657220626f756e642e3c4d6178566f74657352656163686564001a04804d6178696d756d206e756d626572206f6620766f74657320726561636865642e40546f6f4d616e7950726f706f73616c73001b04904d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a10610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400b50101185665633c543e0000a506084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e74000110617965739c01385665633c4163636f756e7449643e0001106e6179739c01385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d6265720000a9060c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909ad0610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400b50101185665633c543e0000b1060c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000128244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b506000002b90600b906086470616c6c65745f656c656374696f6e735f70687261676d656e2853656174486f6c64657208244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000bd06086470616c6c65745f656c656374696f6e735f70687261676d656e14566f74657208244163636f756e74496401001c42616c616e63650118000c0114766f7465739c01385665633c4163636f756e7449643e0001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000c1060c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144572726f7204045400014430556e61626c65546f566f7465000004c043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f746573000104944d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f7465730002048443616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f74657345786365656465640003049843616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e6365000404c443616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e6400050478566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f746572000604404d757374206265206120766f7465722e285265706f727453656c660007044c43616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e646964617465000804804475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974000904884d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974000a048852756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e6473000b049443616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d626572000c04344e6f742061206d656d6265722e48496e76616c69645769746e65737344617461000d04e05468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e74000e04cc5468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67000f04fc5468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e74001004fc50726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909c5060c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010834416c72656164794d656d62657200000444416c72656164792061206d656d6265722e244e6f744d656d626572000104344e6f742061206d656d6265722e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909c906083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e00030000cd06083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f726974696573d106016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564710101244f7074696f6e3c4e3e0000d10610346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401cc045300000400c801185665633c543e0000d5060c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d906083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e63650000dd0610346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401100453000004006d0101185665633c543e0000e1060c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000e50604184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000e90608346672616d655f737570706f72742050616c6c65744964000004000502011c5b75383b20385d0000ed060c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900010c70496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300020480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e04784572726f7220666f72207468652074726561737572792070616c6c65742ef1060c4070616c6c65745f636f6e747261637473107761736d405072656661625761736d4d6f64756c65040454000010016c696e737472756374696f6e5f776569676874735f76657273696f6ec101010c75333200011c696e697469616cc101010c75333200011c6d6178696d756dc101010c753332000110636f646528011c5665633c75383e0000f5060c4070616c6c65745f636f6e747261637473107761736d244f776e6572496e666f04045400000c01146f776e65720001384163636f756e7449644f663c543e00011c6465706f7369740101013042616c616e63654f663c543e000120726566636f756e744502010c7536340000f9060c4070616c6c65745f636f6e7472616374731c73746f726167653c526177436f6e7472616374496e666f0820436f64654861736801241c42616c616e63650118000c011c747269655f6964280118547269654964000124636f64655f68617368240120436f64654861736800013c73746f726167655f6465706f73697418011c42616c616e63650000fd0600000201070001070c4070616c6c65745f636f6e7472616374731c73746f726167653c44656c65746564436f6e7472616374000004011c747269655f6964280118547269654964000005070c4070616c6c65745f636f6e747261637473207363686564756c65205363686564756c6504045400000c01186c696d697473090701184c696d69747300014c696e737472756374696f6e5f776569676874730d070154496e737472756374696f6e576569676874733c543e00013c686f73745f666e5f7765696768747311070140486f7374466e576569676874733c543e000009070c4070616c6c65745f636f6e747261637473207363686564756c65184c696d69747300002c01306576656e745f746f7069637310010c753332000130737461636b5f6865696768747101012c4f7074696f6e3c7533323e00011c676c6f62616c7310010c753332000128706172616d657465727310010c7533320001306d656d6f72795f706167657310010c7533320001287461626c655f73697a6510010c75333200013462725f7461626c655f73697a6510010c75333200012c7375626a6563745f6c656e10010c75333200012863616c6c5f646570746810010c75333200012c7061796c6f61645f6c656e10010c753332000120636f64655f6c656e10010c75333200000d070c4070616c6c65745f636f6e747261637473207363686564756c6548496e737472756374696f6e576569676874730404540000d0011c76657273696f6e10010c753332000120693634636f6e737410010c75333200011c6936346c6f616410010c75333200012069363473746f726510010c75333200011873656c65637410010c7533320001107223696610010c753332000108627210010c75333200011462725f696610010c75333200012062725f7461626c6510010c75333200014862725f7461626c655f7065725f656e74727910010c75333200011063616c6c10010c75333200013463616c6c5f696e64697265637410010c75333200015c63616c6c5f696e6469726563745f7065725f706172616d10010c7533320001246c6f63616c5f67657410010c7533320001246c6f63616c5f73657410010c7533320001246c6f63616c5f74656510010c753332000128676c6f62616c5f67657410010c753332000128676c6f62616c5f73657410010c7533320001386d656d6f72795f63757272656e7410010c75333200012c6d656d6f72795f67726f7710010c753332000118693634636c7a10010c75333200011869363463747a10010c753332000124693634706f70636e7410010c75333200011869363465717a10010c753332000134693634657874656e647369333210010c753332000134693634657874656e647569333210010c7533320001286933327772617069363410010c753332000114693634657110010c7533320001146936346e6510010c7533320001186936346c747310010c7533320001186936346c747510010c75333200011869363467747310010c75333200011869363467747510010c7533320001186936346c657310010c7533320001186936346c657510010c75333200011869363467657310010c75333200011869363467657510010c75333200011869363461646410010c75333200011869363473756210010c7533320001186936346d756c10010c75333200011c6936346469767310010c75333200011c6936346469767510010c75333200011c69363472656d7310010c75333200011c69363472656d7510010c753332000118693634616e6410010c7533320001146936346f7210010c753332000118693634786f7210010c75333200011869363473686c10010c75333200011c6936347368727310010c75333200011c6936347368727510010c75333200011c693634726f746c10010c75333200011c693634726f747210010c753332000011070c4070616c6c65745f636f6e747261637473207363686564756c6534486f7374466e576569676874730404540000cc011863616c6c657220011857656967687400012c69735f636f6e747261637420011857656967687400014063616c6c65725f69735f6f726967696e20011857656967687400011c616464726573732001185765696768740001206761735f6c65667420011857656967687400011c62616c616e636520011857656967687400014476616c75655f7472616e7366657272656420011857656967687400013c6d696e696d756d5f62616c616e6365200118576569676874000130626c6f636b5f6e756d62657220011857656967687400010c6e6f772001185765696768740001347765696768745f746f5f66656520011857656967687400010c676173200118576569676874000114696e707574200118576569676874000138696e7075745f7065725f62797465200118576569676874000120722372657475726e20011857656967687400013c72657475726e5f7065725f627974652001185765696768740001247465726d696e61746520011857656967687400011872616e646f6d2001185765696768740001346465706f7369745f6576656e7420011857656967687400015c6465706f7369745f6576656e745f7065725f746f7069632001185765696768740001586465706f7369745f6576656e745f7065725f6279746520011857656967687400013464656275675f6d65737361676520011857656967687400012c7365745f73746f726167652001185765696768740001607365745f73746f726167655f7065725f6e65775f627974652001185765696768740001607365745f73746f726167655f7065725f6f6c645f627974652001185765696768740001347365745f636f64655f68617368200118576569676874000134636c6561725f73746f72616765200118576569676874000158636c6561725f73746f726167655f7065725f62797465200118576569676874000140636f6e7461696e735f73746f72616765200118576569676874000164636f6e7461696e735f73746f726167655f7065725f6279746520011857656967687400012c6765745f73746f726167652001185765696768740001506765745f73746f726167655f7065725f6279746520011857656967687400013074616b655f73746f7261676520011857656967687400015474616b655f73746f726167655f7065725f627974652001185765696768740001207472616e7366657220011857656967687400011063616c6c20011857656967687400013464656c65676174655f63616c6c20011857656967687400015c63616c6c5f7472616e736665725f73757263686172676520011857656967687400015063616c6c5f7065725f636c6f6e65645f6279746520011857656967687400012c696e7374616e7469617465200118576569676874000178696e7374616e74696174655f7472616e736665725f737572636861726765200118576569676874000164696e7374616e74696174655f7065725f73616c745f62797465200118576569676874000134686173685f736861325f323536200118576569676874000158686173685f736861325f3235365f7065725f6279746520011857656967687400013c686173685f6b656363616b5f323536200118576569676874000160686173685f6b656363616b5f3235365f7065725f6279746520011857656967687400013c686173685f626c616b65325f323536200118576569676874000160686173685f626c616b65325f3235365f7065725f6279746520011857656967687400013c686173685f626c616b65325f313238200118576569676874000160686173685f626c616b65325f3132385f7065725f6279746520011857656967687400013465636473615f7265636f766572200118576569676874000015070c4070616c6c65745f636f6e7472616374731870616c6c6574144572726f7204045400017458496e76616c69645363686564756c6556657273696f6e000004010141206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e40496e76616c696443616c6c466c6167730001043501496e76616c696420636f6d62696e6174696f6e206f6620666c61677320737570706c69656420746f20607365616c5f63616c6c60206f7220607365616c5f64656c65676174655f63616c6c602e204f75744f66476173000204b854686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c0003040101546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e385472616e736665724661696c65640004083501506572666f726d696e672074686520726571756573746564207472616e73666572206661696c65642e2050726f6261626c7920626563617573652074686572652069736e277420656e6f75676894667265652062616c616e636520696e207468652073656e6465722773206163636f756e742e4c4d617843616c6c4465707468526561636865640005082101506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d6974946f6620776861742069732073706563696669656420696e20746865207363686564756c652e40436f6e74726163744e6f74466f756e64000604bc4e6f20636f6e74726163742077617320666f756e64206174207468652073706563696669656420616464726573732e30436f6465546f6f4c617267650007083d0154686520636f646520737570706c69656420746f2060696e7374616e74696174655f776974685f636f646560206578636565647320746865206c696d69742073706563696669656420696e207468654463757272656e74207363686564756c652e30436f64654e6f74466f756e64000804c44e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e647300090425014120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564000a042901496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564000b0488436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c61726765000c04cc5468652073697a6520646566696e656420696e2060543a3a4d617856616c756553697a6560207761732065786365656465642e605465726d696e617465645768696c655265656e7472616e74000d0819015465726d696e6174696f6e206f66206120636f6e7472616374206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420697320616c7265616479e06f6e207468652063616c6c20737461636b2e2043616e2062652074726967676572656420627920607365616c5f7465726d696e617465602e38496e707574466f72776172646564000e044101607365616c5f63616c6c6020666f72776172646564207468697320636f6e74726163747320696e7075742e204974207468657265666f7265206973206e6f206c6f6e67657220617661696c61626c652e5052616e646f6d5375626a656374546f6f4c6f6e67000f04d8546865207375626a6563742070617373656420746f20607365616c5f72616e646f6d60206578636565647320746865206c696d69742e34546f6f4d616e79546f706963730010041d0154686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e3c4475706c6963617465546f706963730011042d0154686520746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e74736020636f6e7461696e73206174206c65617374206f6e65206475706c69636174652e404e6f436861696e457874656e73696f6e00120c450154686520636861696e20646f6573206e6f742070726f76696465206120636861696e20657874656e73696f6e2e2043616c6c696e672074686520636861696e20657874656e73696f6e20726573756c74734d01696e2074686973206572726f722e204e6f74652074686174207468697320757375616c6c79202073686f756c646e27742068617070656e206173206465706c6f79696e67207375636820636f6e7472616374733069732072656a65637465642e4444656c6574696f6e517565756546756c6c001314010152656d6f76616c206f66206120636f6e7472616374206661696c65642062656361757365207468652064656c6574696f6e2071756575652069732066756c6c2e00b8546869732063616e2068617070656e207768656e2063616c6c696e6720607365616c5f7465726d696e617465602e4d015468652071756575652069732066696c6c65642062792064656c6574696e6720636f6e74726163747320616e6420656d7074696564206279206120666978656420616d6f756e74206561636820626c6f636b2e2101547279696e6720616761696e20647572696e6720616e6f7468657220626c6f636b20697320746865206f6e6c792077617920746f207265736f6c766520746869732069737375652e444475706c6963617465436f6e7472616374001404c84120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e5c5465726d696e61746564496e436f6e7374727563746f7200150cb84120636f6e74726163742073656c66206465737472756374656420696e2069747320636f6e7374727563746f722e00d0546869732063616e2062652074726967676572656420627920612063616c6c20746f20607365616c5f7465726d696e617465602e5c44656275674d657373616765496e76616c6964555446380016043d01546865206465627567206d6573736167652073706563696669656420746f20607365616c5f64656275675f6d6573736167656020646f657320636f6e7461696e20696e76616c6964205554462d382e405265656e7472616e636544656e6965640017040d01412063616c6c20747269656420746f20696e766f6b65206120636f6e7472616374207468617420697320666c6167676564206173206e6f6e2d7265656e7472616e742e7053746f726167654465706f7369744e6f74456e6f75676846756e647300180421014f726967696e20646f65736e2774206861766520656e6f7567682062616c616e636520746f20706179207468652072657175697265642073746f72616765206465706f736974732e7053746f726167654465706f7369744c696d69744578686175737465640019040d014d6f72652073746f72616765207761732063726561746564207468616e20616c6c6f776564206279207468652073746f72616765206465706f736974206c696d69742e24436f6465496e557365001a044901436f64652072656d6f76616c207761732064656e69656420626563617573652074686520636f6465206973207374696c6c20696e20757365206279206174206c65617374206f6e6520636f6e74726163742e40436f6e74726163745265766572746564001b10250154686520636f6e74726163742072616e20746f20636f6d706c6574696f6e20627574206465636964656420746f20726576657274206974732073746f72616765206368616e6765732e4901506c65617365206e6f746520746861742074686973206572726f72206973206f6e6c792072657475726e65642066726f6d2065787472696e736963732e205768656e2063616c6c6564206469726563746c795d016f72207669612052504320616e20604f6b602077696c6c2062652072657475726e65642e20496e20746869732063617365207468652063616c6c6572206e6565647320746f20696e73706563742074686520666c616773c4746f2064657465726d696e652077686574686572206120726576657273696f6e206861732074616b656e20706c6163652e30436f646552656a6563746564001c0c450154686520636f6e7472616374277320636f64652077617320666f756e6420746f20626520696e76616c696420647572696e672076616c69646174696f6e206f7220696e737472756d656e746174696f6e2e510141206d6f72652064657461696c6564206572726f722063616e20626520666f756e64206f6e20746865206e6f646520636f6e736f6c65206966206465627567206d657373616765732061726520656e61626c6564e06f7220696e20746865206465627567206275666665722077686963682069732072657475726e656420746f2052504320636c69656e74732e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a09090919070c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c65741d0710346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401ec045300000400210701185665633c543e00002107000002ec00250710346672616d655f737570706f727418747261697473106d69736334577261707065724f7061717565040454012907000800c101000000290701045400002907084070616c6c65745f696d5f6f6e6c696e6564426f756e6465644f70617175654e6574776f726b53746174650c4c506565724964456e636f64696e674c696d697400584d756c746941646472456e636f64696e674c696d697400384164647265737365734c696d6974000008011c706565725f69642d07019c5765616b426f756e6465645665633c75382c20506565724964456e636f64696e674c696d69743e00014865787465726e616c5f6164647265737365733107012d015765616b426f756e6465645665633c5765616b426f756e6465645665633c75382c204d756c746941646472456e636f64696e674c696d69743e2c204164647265737365734c696d69740a3e00002d0710346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004002801185665633c543e0000310710346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d07045300000400350701185665633c543e000035070000022d070039070c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909093d0710346672616d655f737570706f72741c73746f72616765407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454017d03045300000400410701185665633c543e000041070000027d030045070c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201f8000801206f6666656e646572f801204f6666656e6465720001247265706f72746572739c01345665633c5265706f727465723e0000490700000408110128004d0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540124045300000400b50101185665633c543e000051070c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e7473004c4d61784164646974696f6e616c4669656c647300000c01286a756467656d656e7473550701fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666f010401844964656e74697479496e666f3c4d61784164646974696f6e616c4669656c64733e0000550710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540159070453000004005d0701185665633c543e0000590700000408109904005d0700000259070061070000040818650700650710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401000453000004009c01185665633c543e0000690710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454016d07045300000400750701185665633c543e00006d0704184f7074696f6e0404540171070108104e6f6e6500000010536f6d6504007107000001000071070c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f081c42616c616e63650118244163636f756e7449640100000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c6473910401384964656e746974794669656c6473000075070000026d070079070c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400014048546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473000b046c546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e7952656769737472617273000c04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000d04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000e047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000f04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909097d070000028107008107083870616c6c65745f736f63696574790c42696408244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001106b696e648507016c4269644b696e643c4163636f756e7449642c2042616c616e63653e00011476616c756518011c42616c616e636500008507083870616c6c65745f736f63696574791c4269644b696e6408244163636f756e74496401001c42616c616e6365011801081c4465706f736974040018011c42616c616e636500000014566f75636808000001244163636f756e744964000018011c42616c616e636500010000890700000408188507008d07083870616c6c65745f736f636965747938566f756368696e6753746174757300010820566f756368696e670000001842616e6e65640001000091070000029507009507000004081018009907000004080000009d07083870616c6c65745f736f636965747910566f746500010c1c536b65707469630000001852656a6563740001001c417070726f766500020000a1070c3870616c6c65745f736f63696574791870616c6c6574144572726f720804540004490001482c426164506f736974696f6e0000048c416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d6265720001045455736572206973206e6f742061206d656d6265722e34416c72656164794d656d626572000204645573657220697320616c72656164792061206d656d6265722e2453757370656e64656400030448557365722069732073757370656e6465642e304e6f7453757370656e6465640004045855736572206973206e6f742073757370656e6465642e204e6f5061796f7574000504484e6f7468696e6720746f207061796f75742e38416c7265616479466f756e64656400060460536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74000704984e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e67000804e44d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670009045c4d656d626572206973206e6f7420766f756368696e672e1048656164000a049043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572000b046843616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964000c0470557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e646964617465000d04705573657220697320616c726561647920612063616e6469646174652e304e6f7443616e646964617465000e046055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273000f0480546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572001004785468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640011046c5468652063616c6c6572206973206e6f742074686520686561642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a507083c70616c6c65745f7265636f76657279385265636f76657279436f6e6669670c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e647301a9070010013064656c61795f706572696f6410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e6473a907011c467269656e64730001247468726573686f6c644101010c7531360000a90710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401000453000004009c01185665633c543e0000ad07083c70616c6c65745f7265636f76657279384163746976655265636f766572790c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e647301a907000c011c6372656174656410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e6473a907011c467269656e64730000b1070c3c70616c6c65745f7265636f766572791870616c6c6574144572726f72040454000140284e6f74416c6c6f776564000004f055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640001048c5468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e6473000204d0467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e6473000304a8467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f72746564000404c8467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c650005049c54686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c65000604ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c726561647953746172746564000704dc41207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f7453746172746564000804cc41207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e64000904a854686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64000a04190154686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f7563686564000b04bc5468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c64000c04e8546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c416374697665000d04fc546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f73656430416c726561647950726f7879000e04ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465000f0478536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b50710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401ad04045300000400b90701185665633c543e0000b907000002ad0400bd07083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000c1070c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742ec507000002c90700c90704184f7074696f6e04045401cd070108104e6f6e6500000010536f6d650400cd070000010000cd07084070616c6c65745f7363686564756c65722c5363686564756c65645633101043616c6c01b9042c426c6f636b4e756d62657201103450616c6c6574734f726967696e012905244163636f756e7449640100001401206d617962655f69642d01013c4f7074696f6e3c5665633c75383e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cb904011043616c6c0001386d617962655f706572696f646963b50401944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e2905013450616c6c6574734f726967696e0000d1070c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000110404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909d507083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e7265717565737465640400d90701704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e00000024526571756573746564040010010c75333200010000d90704184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc0000010000dd0710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401080453000004002801185665633c543e0000e1070c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400011820546f6f4c61726765000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909e50700000408e9071800e90710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401ed07045300000400f10701185665633c543e0000ed07083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f787954797065013d012c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970653d01012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000f107000002ed0700f50700000408f9071800f90710346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401fd07045300000400010801185665633c543e0000fd07083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801242c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173682401104861736800011868656967687410012c426c6f636b4e756d62657200000108000002fd070005080c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909090908000004080004000d08083c70616c6c65745f6d756c7469736967204d756c74697369670c2c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100001001107768656e4901015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c739c01385665633c4163636f756e7449643e000011080000040cd10400180015080c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909091908083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e63650001187374617475731d080190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e00001d08083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001182050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200050000210810346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e64656456656308045401080453000004002801185665633c543e000025080c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7204045400012c70496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e504861734163746976654368696c64426f756e7479000904050154686520626f756e74792063616e6e6f7420626520636c6f73656420626563617573652069742068617320616374697665206368696c642d626f756e746965732e34546f6f4d616e79517565756564000a0498546f6f206d616e7920617070726f76616c732061726520616c7265616479207175657565642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909092908082c70616c6c65745f746970731c4f70656e54697010244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011010486173680124001c0118726561736f6e2401104861736800010c77686f0001244163636f756e74496400011866696e6465720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000118636c6f7365737101014c4f7074696f6e3c426c6f636b4e756d6265723e00011074697073b801645665633c284163636f756e7449642c2042616c616e6365293e00012c66696e646572735f666565880110626f6f6c00002d080c2c70616c6c65745f746970731870616c6c6574144572726f7204045400011830526561736f6e546f6f4269670000048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e00010488546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e5469700002046054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e6465720003041d01546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e0004042901546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d61747572650005043101546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a09090931080c3470616c6c65745f61737365747314747970657330417373657444657461696c730c1c42616c616e63650118244163636f756e7449640100384465706f73697442616c616e63650118003001146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000118737570706c7918011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e636500012c6d696e5f62616c616e636518011c42616c616e636500013469735f73756666696369656e74880110626f6f6c0001206163636f756e747310010c75333200012c73756666696369656e747310010c753332000124617070726f76616c7310010c75333200012469735f66726f7a656e880110626f6f6c000035080c3470616c6c65745f6173736574731474797065733041737365744163636f756e740c1c42616c616e63650118384465706f73697442616c616e6365011814457874726101700010011c62616c616e636518011c42616c616e636500012469735f66726f7a656e880110626f6f6c000118726561736f6e3908017c4578697374656e6365526561736f6e3c4465706f73697442616c616e63653e00011465787472617001144578747261000039080c3470616c6c65745f6173736574731474797065733c4578697374656e6365526561736f6e041c42616c616e63650118011020436f6e73756d65720000002853756666696369656e740001002c4465706f73697448656c64040018011c42616c616e63650002003c4465706f736974526566756e646564000300003d080000040c1000000041080c3470616c6c65745f61737365747314747970657320417070726f76616c081c42616c616e63650118384465706f73697442616c616e6365011800080118616d6f756e7418011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e6365000045080c3470616c6c65745f6173736574731474797065733441737365744d6574616461746108384465706f73697442616c616e6365011834426f756e646564537472696e670169010014011c6465706f7369741801384465706f73697442616c616e63650001106e616d6569010134426f756e646564537472696e6700011873796d626f6c69010134426f756e646564537472696e67000120646563696d616c73080108753800012469735f66726f7a656e880110626f6f6c000049080c3470616c6c65745f6173736574731870616c6c6574144572726f7208045400044900013c2842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e284e6f50726f766964657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f7220746865b46d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909094d08083870616c6c65745f6c6f7474657279344c6f7474657279436f6e666967082c426c6f636b4e756d62657201101c42616c616e6365011800140114707269636518011c42616c616e6365000114737461727410012c426c6f636b4e756d6265720001186c656e67746810012c426c6f636b4e756d62657200011464656c617910012c426c6f636b4e756d626572000118726570656174880110626f6f6c000051080000040810550800550810346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454015d01045300000400590801185665633c543e000059080000025d01005d080c3870616c6c65745f6c6f74746572791870616c6c6574144572726f7204045400011c344e6f74436f6e666967757265640000048841206c6f747465727920686173206e6f74206265656e20636f6e666967757265642e28496e50726f67726573730001048441206c6f747465727920697320616c726561647920696e2070726f67726573732e30416c7265616479456e6465640002047041206c6f74746572792068617320616c726561647920656e6465642e2c496e76616c696443616c6c000304a85468652063616c6c206973206e6f742076616c696420666f7220616e206f70656e206c6f74746572792e50416c726561647950617274696369706174696e67000404f0596f752061726520616c72656164792070617274696369706174696e6720696e20746865206c6f7474657279207769746820746869732063616c6c2e30546f6f4d616e7943616c6c7300050490546f6f206d616e792063616c6c7320666f7220612073696e676c65206c6f74746572792e38456e636f64696e674661696c6564000604584661696c656420746f20656e636f64652063616c6c7304ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909610810346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454019507045300000400910701185665633c543e0000650810346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e6465645665630804540169080453000004006d0801185665633c543e000069080c2c70616c6c65745f67696c741870616c6c65741c47696c74426964081c42616c616e63650118244163636f756e744964010000080118616d6f756e7418011c42616c616e636500010c77686f0001244163636f756e74496400006d0800000269080071080c2c70616c6c65745f67696c741870616c6c65744041637469766547696c7473546f74616c041c42616c616e636501180010011866726f7a656e18011c42616c616e636500012870726f706f7274696f6ef104012c5065727175696e74696c6c000114696e64657810012c416374697665496e646578000118746172676574f104012c5065727175696e74696c6c000075080c2c70616c6c65745f67696c741870616c6c65742841637469766547696c740c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100010012870726f706f7274696f6ef104012c5065727175696e74696c6c000118616d6f756e7418011c42616c616e636500010c77686f0001244163636f756e74496400011865787069727910012c426c6f636b4e756d626572000079080c2c70616c6c65745f67696c741870616c6c6574144572726f72040454000120404475726174696f6e546f6f536d616c6c000004a4546865206475726174696f6e206f662074686520626964206973206c657373207468616e206f6e652e384475726174696f6e546f6f426967000104f4546865206475726174696f6e20697320746865206269642069732067726561746572207468616e20746865206e756d626572206f66207175657565732e38416d6f756e74546f6f536d616c6c000204dc54686520616d6f756e74206f662074686520626964206973206c657373207468616e20746865206d696e696d756d20616c6c6f7765642e24426964546f6f4c6f77000308410154686520717565756520666f7220746865206269642773206475726174696f6e2069732066756c6c20616e642074686520616d6f756e742062696420697320746f6f206c6f7720746f2067657420696e887468726f756768207265706c6163696e6720616e206578697374696e67206269642e1c556e6b6e6f776e0004045847696c7420696e64657820697320756e6b6e6f776e2e204e6f744f776e6572000504684e6f7420746865206f776e6572206f66207468652067696c742e284e6f74457870697265640006047047696c74206e6f74207965742061742065787069727920646174652e204e6f74466f756e64000704a854686520676976656e2062696420666f722072657472616374696f6e206973206e6f7420666f756e642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909097d080c3870616c6c65745f756e697175657314747970657330436c61737344657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118002801146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000134746f74616c5f6465706f7369741801384465706f73697442616c616e6365000130667265655f686f6c64696e67880110626f6f6c000124696e7374616e63657310010c753332000148696e7374616e63655f6d657461646174617310010c7533320001286174747269627574657310010c75333200012469735f66726f7a656e880110626f6f6c000081080000040c0010100085080c3870616c6c65745f756e69717565731474797065733c496e7374616e636544657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001001146f776e65720001244163636f756e744964000120617070726f766564e401444f7074696f6e3c4163636f756e7449643e00012469735f66726f7a656e880110626f6f6c00011c6465706f7369741801384465706f73697442616c616e6365000089080c3870616c6c65745f756e697175657314747970657334436c6173734d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e6365000110646174616901016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e880110626f6f6c00008d080c3870616c6c65745f756e697175657314747970657340496e7374616e63654d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e6365000110646174616901016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e880110626f6f6c000091080000040c1071017501009508000004087901180099080c3870616c6c65745f756e69717565731870616c6c6574144572726f7208045400044900012c304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e30556e6b6e6f776e436c6173730001047854686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c7265616479457869737473000204e454686520617373657420696e7374616e63652049442068617320616c7265616479206265656e207573656420666f7220616e2061737365742e2857726f6e674f776e6572000304e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730004046c496e76616c6964207769746e657373206461746120676976656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e1846726f7a656e0006049854686520617373657420696e7374616e6365206f7220636c6173732069732066726f7a656e2e3457726f6e6744656c6567617465000704f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284e6f44656c6567617465000804785468657265206973206e6f2064656c656761746520617070726f7665642e28556e617070726f766564000904c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000a041101546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e657273686970206f662074686520636c6173732069732061636365707461626c652e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909099d08000002a10800a108086870616c6c65745f7472616e73616374696f6e5f73746f726167653c5472616e73616374696f6e496e666f00001001286368756e6b5f726f6f742401743c426c616b6554776f32353620617320486173683e3a3a4f7574707574000130636f6e74656e745f686173682401743c426c616b6554776f32353620617320486173683e3a3a4f757470757400011073697a6510010c753332000130626c6f636b5f6368756e6b7310010c7533320000a5080c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c6574144572726f7204045400013444496e73756666696369656e7446756e647300000474496e73756666696369656e74206163636f756e742062616c616e63652e344e6f74436f6e6669677572656400010458496e76616c696420636f6e66696775726174696f6e2e3c52656e657765644e6f74466f756e640002047c52656e657765642065787472696e736963206973206e6f7420666f756e642e40456d7074795472616e73616374696f6e00030494417474656d7074696e6720746f2073746f726520656d707479207472616e73616374696f6e3c556e657870656374656450726f6f660004049450726f6f6620776173206e6f7420657870656374656420696e207468697320626c6f636b2e30496e76616c696450726f6f660005046850726f6f66206661696c656420766572696669636174696f6e2e304d697373696e6750726f6f66000604584d697373696e672073746f726167652070726f6f662e404d697373696e67537461746544617461000704d4556e61626c6520746f207665726966792070726f6f6620626563617375652073746174652064617461206973206d697373696e672e2c446f75626c65436865636b00080480446f75626c652070726f6f6620636865636b20696e2074686520626c6f636b2e3c50726f6f664e6f74436865636b6564000904ac53746f726167652070726f6f6620776173206e6f7420636865636b656420696e2074686520626c6f636b2e4c5472616e73616374696f6e546f6f4c61726765000a04645472616e73616374696f6e20697320746f6f206c617267652e4c546f6f4d616e795472616e73616374696f6e73000b048c546f6f206d616e79207472616e73616374696f6e7320696e2074686520626c6f636b2e28426164436f6e74657874000c04d4417474656d7074656420746f2063616c6c206073746f726560206f757473696465206f6620626c6f636b20657865637574696f6e2e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909a9080c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001001086964000130543a3a4163636f756e74496400011070726576e401504f7074696f6e3c543a3a4163636f756e7449643e0001106e657874e401504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572200120543a3a53636f72650000ad080c4070616c6c65745f626167735f6c697374106c6973740c426167080454000449000008011068656164e401504f7074696f6e3c543a3a4163636f756e7449643e0001107461696ce401504f7074696f6e3c543a3a4163636f756e7449643e0000b1080000022000b5080c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f7208045400044900010c304e6f74496e53616d65426167000004e8417474656d7074656420746f20706c616365206e6f646520696e2066726f6e74206f662061206e6f646520696e20616e6f74686572206261672e2849644e6f74466f756e64000104544964206e6f7420666f756e6420696e206c6973742e284e6f7448656176696572000204d0416e20496420646f6573206e6f742068617665206120677265617465722073636f7265207468616e20616e6f746865722049642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909b9080c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144572726f720404540001143c4d61785369676e65644c696d697473000004806d6178207369676e6564206c696d697473206e6f74207265737065637465642e384e6f74456e6f75676846756e6473000104947375626d697474657220646f6573206e6f74206861766520656e6f7567682066756e64732e284261645769746e65737300020468626164207769746e65737320646174612070726f76696465642e5853697a655570706572426f756e64457863656564656400030480757070657220626f756e64206f662073697a652069732065786365656465642c645369676e65644d6967726174696f6e4e6f74416c6c6f77656400040425015369676e6564206d6967726174696f6e206973206e6f7420616c6c6f776564206265636175736520746865206d6178696d756d206c696d6974206973206e6f7420736574207965742e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909bd08085470616c6c65745f6368696c645f626f756e746965732c4368696c64426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011000140134706172656e745f626f756e747910012c426f756e7479496e64657800011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000118737461747573c10801a44368696c64426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000c108085470616c6c65745f6368696c645f626f756e74696573444368696c64426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001101441646465640000003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640001001841637469766504011c63757261746f720001244163636f756e7449640002003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200030000c5080c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144572726f7204045400010c54506172656e74426f756e74794e6f74416374697665000004a454686520706172656e7420626f756e7479206973206e6f7420696e206163746976652073746174652e64496e73756666696369656e74426f756e747942616c616e6365000104e454686520626f756e74792062616c616e6365206973206e6f7420656e6f75676820746f20616464206e6577206368696c642d626f756e74792e50546f6f4d616e794368696c64426f756e746965730002040d014e756d626572206f66206368696c642d626f756e746965732065786365656473206c696d697420604d61784163746976654368696c64426f756e7479436f756e74602e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909c9080c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640108184f726967696e012905184d6f6d656e740110104861736801241c42616c616e636501181454616c6c79019501244163636f756e74496401003c5363686564756c654164647265737301290101181c4f6e676f696e670400cd08016d015265666572656e64756d5374617475733c547261636b49642c204f726967696e2c204d6f6d656e742c20486173682c2042616c616e63652c2054616c6c792c204163636f756e7449642c0a5363686564756c65416464726573733e00000020417070726f7665640c001001184d6f6d656e740000d108016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0000d508018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e740000d108016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0000d508018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e740000d108016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0000d508018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e740000d108016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0000d508018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000cd080c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640108184f726967696e012905184d6f6d656e740110104861736801241c42616c616e636501181454616c6c79019501244163636f756e74496401003c5363686564756c6541646472657373012901002c0114747261636b08011c547261636b49640001186f726967696e290501184f726967696e00013470726f706f73616c5f6861736824011048617368000124656e6163746d656e743d050150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974d108016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f736974d508018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e67d90801784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c799501011454616c6c79000120696e5f7175657565880110626f6f6c000114616c61726de10801844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000d1080c4070616c6c65745f7265666572656e64611474797065731c4465706f73697408244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e744964000118616d6f756e7418011c42616c616e63650000d50804184f7074696f6e04045401d1080108104e6f6e6500000010536f6d650400d1080000010000d90804184f7074696f6e04045401dd080108104e6f6e6500000010536f6d650400dd080000010000dd080c4070616c6c65745f7265666572656e6461147479706573384465636964696e67537461747573042c426c6f636b4e756d62657201100008011473696e636510012c426c6f636b4e756d626572000128636f6e6669726d696e677101014c4f7074696f6e3c426c6f636b4e756d6265723e0000e10804184f7074696f6e04045401e5080108104e6f6e6500000010536f6d650400e5080000010000e5080000040810290100e90810346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454019507045300000400910701185665633c543e0000ed080c4070616c6c65745f7265666572656e64611870616c6c6574144572726f7204045400012c284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304390154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e64756d7320696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a090909f10800000408000800f5080c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e670400f90801c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400110901ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e00010000f9080c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f746573fd0801dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e730909015044656c65676174696f6e733c42616c616e63653e0001147072696f720d09017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000fd0810346672616d655f737570706f72741c73746f726167652c626f756e6465645f76656328426f756e646564566563080454010109045300000400050901185665633c543e000001090000040810450500050900000201090009090c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e636500000d090c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e6365000011090c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652844656c65676174696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100014011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6e4d050128436f6e76696374696f6e00012c64656c65676174696f6e730909015044656c65676174696f6e733c42616c616e63653e0001147072696f720d09017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e000015090000021909001909000004080818001d090c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144572726f72040454000130284e6f744f6e676f696e6700000450506f6c6c206973206e6f74206f6e676f696e672e204e6f74566f746572000104ac54686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e2074686520706f6c6c2e304e6f5065726d697373696f6e000204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e3c4e6f5065726d697373696f6e5965740003045901546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e207269676874206e6f77206275742077696c6c20646f20696e20746865206675747572652e44416c726561647944656c65676174696e6700040488546865206163636f756e7420697320616c72656164792064656c65676174696e672e34416c7265616479566f74696e670005085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e73756666696369656e7446756e6473000604fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000704a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e204e6f6e73656e73650008049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c4d6178566f74657352656163686564000904804d6178696d756d206e756d626572206f6620766f74657320726561636865642e2c436c6173734e6565646564000a04390154686520636c617373206d75737420626520737570706c6965642073696e6365206974206973206e6f7420656173696c792064657465726d696e61626c652066726f6d207468652073746174652e20426164436c617373000b048454686520636c61737320494420737570706c69656420697320696e76616c69642e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a09090921090c4070616c6c65745f77686974656c6973741870616c6c6574144572726f720404540001144c556e617661696c61626c65507265496d616765000004c854686520707265696d616765206f66207468652063616c6c206861736820636f756c64206e6f74206265206c6f616465642e3c556e6465636f6461626c6543616c6c000104785468652063616c6c20636f756c64206e6f74206265206465636f6465642e60496e76616c696443616c6c5765696768745769746e657373000204ec54686520776569676874206f6620746865206465636f6465642063616c6c2077617320686967686572207468616e20746865207769746e6573732e5043616c6c49734e6f7457686974656c6973746564000304745468652063616c6c20776173206e6f742077686974656c69737465642e5843616c6c416c726561647957686974656c6973746564000404a05468652063616c6c2077617320616c72656164792077686974656c69737465643b204e6f2d4f702e04ad010a090909437573746f6d205b6469737061746368206572726f72735d2868747470733a2f2f646f63732e7375627374726174652e696f2f76332f72756e74696d652f6576656e74732d616e642d6572726f7273290a0909096f6620746869732070616c6c65742e0a0909092509102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730159021043616c6c011502245369676e6174757265012909144578747261013509000400280000002909082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400b5030148656432353531393a3a5369676e61747572650000001c537232353531390400f9030148737232353531393a3a5369676e617475726500010014456364736104002d09014065636473613a3a5369676e6174757265000200002d090c1c73705f636f7265146563647361245369676e617475726500000400310901205b75383b2036355d0000310900000341000000080035090000042039093d0941094509490951095509590900390910306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e646572040454000000003d0910306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000410910306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000450910306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000490910306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004004d09010c45726100004d09102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000510910306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400c1010120543a3a496e6465780000550910306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000005909085c70616c6c65745f61737365745f74785f7061796d656e7450436861726765417373657454785061796d656e74040454000008010c7469700101013042616c616e63654f663c543e00012061737365745f6964710101684f7074696f6e3c436861726765417373657449644f663c543e3e00005d0908306e6f64655f72756e74696d651c52756e74696d6500000000c01853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b57656967687401001c600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510248000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510280400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801002480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301003c040010a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e005901204e4f54453a20546869732073746f72616765206974656d206973206578706c696369746c7920756e626f756e6465642073696e6365206974206973206e6576657220696e74656e64656420746f2062652072656164642066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101040224b9010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000bd0104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100880400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100880400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000b101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01c90101481830426c6f636b57656967687473dd01850100f2052a0100000000204aa9d1010000405973070000000001c06e96a62e010000010098f73e5d010000010000000000000000405973070000000001c0f6e810a30100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468e9013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874f1014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ef5010903106e6f6465387375627374726174652d6e6f64650a0000000c0100000000000034df6acb689907609b0400000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000068b66ba122c93fa70100000037c8bb1350a9a2a80100000091d5df18b0d2cf5801000000ab3c0572291feb8b0100000002000000010484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669784101082a0014a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e010902001c5574696c69747900010d020168044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e015905011042616265011042616265402845706f6368496e64657801002020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301005d050400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401002d0220000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401002d0220000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000350204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f72697469657301005d0504000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510690504000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000710504000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100710504001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0051012049742069732073657420696e20606f6e5f696e697469616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f6368537461727401002901200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000750504000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e666967000075050400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e011902000c3445706f63684475726174696f6e2020c8000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652020b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010640000000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f776564017905022454696d657374616d70012454696d657374616d70080c4e6f7701002020000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010088040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0141020004344d696e696d756d506572696f642020dc05000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700c18556e636c657301007d050400041c20556e636c657318417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010088040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e014902000440556e636c6547656e65726174696f6e731010050000000ccc20546865206e756d626572206f6620626c6f636b73206261636b2077652073686f756c642061636365707420756e636c65732ee42054686973206d65616e7320746861742077652077696c6c206465616c207769746820756e636c652d706172656e7473207468617420617265942060556e636c6547656e65726174696f6e73202b203160206265666f726520606e6f77602e018505041c496e6469636573011c496e646963657304204163636f756e7473000104021089050400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e0151020174041c4465706f736974184000407a10f35a0000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e018d05052042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009105040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200a105040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e0100ad0504000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e01550201780c484578697374656e7469616c4465706f736974184000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01b10506485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100b50540000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b90504000000000c485472616e73616374696f6e42797465466565184000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e2c576569676874546f466565bd055c0401000000000000000000000000000000000000000001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e000738417373657454785061796d656e7400000000000868456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100c5050400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e0000cd050400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f740000d10504000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300001004000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d657461646174610000390304000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100e1050400184d01204120736f727465642c20626f756e64656420736574206f6620602873636f72652c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f20612076616c756520696e5420605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510f10504001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f7265000035030400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01610201803c34556e7369676e656450686173651010320000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010320000000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c64cd0110a0860100084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e384f6666636861696e52657065617410100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974792020feffffffffffff7f04250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365384d696e65724d61785765696768742020c07c907c2d01000010b8204d6178696d756d20776569676874207468617420746865206d696e65722073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c20776569676874206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f7420657863656564d820746869732076616c75652c206261736564206f6e205b60576569676874496e666f3a3a7375626d69745f756e7369676e6564605d2e505369676e65644d61785375626d697373696f6e7310100a0000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d61785765696768742020c07c907c2d0100000c94204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e00fc20546869732073686f756c642070726f6261626c792062652073696d696c617220746f205b60436f6e6669673a3a4d696e65724d6178576569676874605d2e405369676e656452657761726442617365184000407a10f35a00000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f73697442617365184000407a10f35a0000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f7369744279746518400010a5d4e8000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e444d6178456c656374696e67566f746572731010102700000c5d0120546865206d6178696d756d206e756d626572206f6620656c656374696e6720766f7465727320746f2070757420696e2074686520736e617073686f742e20417420746865206d6f6d656e742c20736e617073686f7473590120617265206f6e6c79206f76657220612073696e676c6520626c6f636b2c20627574206f6e6365206d756c74692d626c6f636b20656c656374696f6e732061726520696e74726f647563656420746865792077696c6c842074616b6520706c616365206f766572206d756c7469706c6520626c6f636b732e4c4d6178456c65637461626c6554617267657473410108ffff04010120546865206d6178696d756d206e756d626572206f6620656c65637461626c65207461726765747320746f2070757420696e2074686520736e617073686f742e384d696e65724d61784c656e67746810100000360010fc204d6178696d756d206c656e6774682028627974657329207468617420746865206d696e656420736f6c7574696f6e2073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c206c656e677468206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f74206578636565643020746869732076616c75652e01f505091c5374616b696e67011c5374616b696e679c30486973746f7279446570746801001010540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e74010010100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c657301009c04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e6465640001040500000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e344d696e436f6d6d697373696f6e0100cd0110000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c65646765720001040200f9050400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010405005103040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f72730101040500550308000004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010405000906040040750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468656d01205b60436f6e6669673a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e20496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100000d06040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805051106fc0c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401010805051106fc0c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f7250726566730101080505110655030800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010405101804000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510150614000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b65010104051018400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100250604000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100cd0110000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405102906040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100b90104001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050511063106040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505110618040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050035060400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040521063906800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000010040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e4c4f6666656e64696e6756616c696461746f727301003d06040024690120496e6469636573206f662076616c696461746f727320746861742068617665206f6666656e64656420696e20746865206163746976652065726120616e6420776865746865722074686579206172652063757272656e746c79282064697361626c65642e00690120546869732076616c75652073686f756c642062652061207375706572736574206f662064697361626c65642076616c696461746f72732073696e6365206e6f7420616c6c206f6666656e636573206c65616420746f2074686571012076616c696461746f72206265696e672064697361626c65642028696620746865726520776173206e6f20736c617368292e2054686973206973206e656564656420746f20747261636b207468652070657263656e74616765206f6649012076616c696461746f727320746861742068617665206f6666656e64656420696e207468652063757272656e74206572612c20656e737572696e672061206e65772065726120697320666f72636564206966750120604f6666656e64696e6756616c696461746f72735468726573686f6c646020697320726561636865642e205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e6471012077686574686572206120676976656e2076616c696461746f72206861732070726576696f75736c79206f6666656e646564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e38207468652065726120656e64732e3853746f7261676556657273696f6e01004506040710cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076372e302e3020666f72206e6577206e6574776f726b732e384368696c6c5468726573686f6c640000610304000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e014d03019018384d61784e6f6d696e6174696f6e7310101000000004b4204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e7320706572206e6f6d696e61746f722e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e1010a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e1010a8000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f7210100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e484d6178556e6c6f636b696e674368756e6b73101020000000084d0120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e20686176652e204566666563746976656c79f82064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d617920626520756e626f6e64696e6720696e2e0149060a1c53657373696f6e011c53657373696f6e1c2856616c696461746f727301009c0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010088040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301004d060400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f727301006d010400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050079030400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405550600040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e017503019400015d060b2444656d6f6372616379012444656d6f6372616379343c5075626c696350726f70436f756e74010010100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301006106040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001040510690604000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d6167657300010406246d060400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b6564010010100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001040510710604000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010405007d06d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e544c6173745461626c656457617345787465726e616c0100880400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00009106040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001040624950604000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101040624880400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e0000990604000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01810301982c3c456e6163746d656e74506572696f641010002f0d0014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f641010004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f641010004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f641010002f0d00109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f73697418400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f7765648804010c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6410108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f641010004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f73697418400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f74657310106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c73101064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e019d060c1c436f756e63696c011c436f756e63696c182450726f706f73616c730100a106040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406241502040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624a506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d6265727301009c0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01890301ac0001a9060d48546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c730100ad06040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406241502040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040624a506040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d6265727301009c0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e018d0301b00001b1060e24456c656374696f6e730124456c656374696f6e73141c4d656d626572730100b50604000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100b50604001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100b80400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301001010000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e670101040500bd06840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e01910301b41c2050616c6c65744964050220706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e6418400080c6a47e8d0300000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e6442617365184000f0436de36a0100000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f7218400000cc7b9fae000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d6265727310100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355701010070000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e1010801303000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e01c1060f4c546563686e6963616c4d656d62657273686970014c546563686e6963616c4d656d62657273686970081c4d656d6265727301009c040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000000040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e01990301c00001c506101c4772616e647061011c4772616e647061181453746174650100c90604000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e67650000cd06040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c6564000029010400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010020200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405201004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e019d0301c404384d6178417574686f726974696573101064000000045c204d617820417574686f72697469657320696e2075736501d50611205472656173757279012054726561737572790c3450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001040510d9060400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100dd06040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e01cd0301d81c3050726f706f73616c426f6e64e1061050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d184000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4c50726f706f73616c426f6e644d6178696d756de5060400044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64101080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726ee1061020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c65744964e9062070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c731010640000000c150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e01ed061224436f6e7472616374730124436f6e74726163747318305072697374696e65436f646500010406242804000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001040624f10604000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e2c4f776e6572496e666f4f660001040624f5060400040d012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420697473206f776e657220696e666f726d6174696f6e2e144e6f6e6365010020200000000000000000581d0120546869732069732061202a2a6d6f6e6f746f6e69632a2a20636f756e74657220696e6372656d656e746564206f6e20636f6e747261637420696e7374616e74696174696f6e2e0005012054686973206973207573656420696e206f7264657220746f2067656e657261746520756e6971756520747269652069647320666f7220636f6e7472616374732e2901205468652074726965206964206f662061206e657720636f6e74726163742069732063616c63756c617465642066726f6d2068617368286163636f756e745f69642c206e6f6e6365292e350120546865206e6f6e63652069732072657175697265642062656361757365206f74686572776973652074686520666f6c6c6f77696e672073657175656e636520776f756c64206c65616420746f84206120706f737369626c6520636f6c6c6973696f6e206f662073746f726167653a006820312e204372656174652061206e657720636f6e74726163742e6c20322e205465726d696e6174652074686520636f6e74726163742efc20332e20496d6d6564696174656c792072656372656174652074686520636f6e74726163742077697468207468652073616d65206163636f756e745f69642e00450120546869732069732062616420626563617573652074686520636f6e74656e7473206f6620612074726965206172652064656c65746564206c617a696c7920616e64207468657265206d6967687420626559012073746f72616765206f6620746865206f6c6420696e7374616e74696174696f6e207374696c6c20696e206974207768656e20746865206e657720636f6e747261637420697320637265617465642e20506c656173655901206e6f746520746861742077652063616e2774207265706c6163652074686520636f756e7465722062792074686520626c6f636b206e756d6265722062656361757365207468652073657175656e63652061626f766551012063616e2068617070656e20696e207468652073616d6520626c6f636b2e20576520616c736f2063616e2774206b65657020746865206163636f756e7420636f756e74657220696e206d656d6f7279206f6e6c79490120626563617573652073746f7261676520697320746865206f6e6c792077617920746f20636f6d6d756e6963617465206163726f737320646966666572656e742065787472696e7369637320696e20746865302073616d6520626c6f636b2e001c2023204e6f7465003d0120446f206e6f742075736520697420746f2064657465726d696e6520746865206e756d626572206f6620636f6e7472616374732e20497420776f6e27742062652064656372656d656e74656420696664206120636f6e74726163742069732064657374726f7965642e38436f6e7472616374496e666f4f660001040500f90604000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e3444656c6574696f6e51756575650100fd06040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7359012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f696e697469616c697a65602e01d10301dc14205363686564756c650507450a0400000000000100008000000010000000001000000001000020000000200000000040000000000200020000009f0b00008a1b0000e01f00008417000051270000080c0000b31500008b1a000028000000c8040100754d01002b070000df0c0000d30e0000860b000089210000bd290000bf0e00007550b100c20b0000b80b0000540b0000b20c0000fa0a0000c80a0000cc0b000089120000fd1100004d12000007120000fd110000751200004312000039120000a712000025120000ad110000851100002b1100000b2c0000372d0000e32b0000c32d000053110000491100005d110000e9110000431200003912000007120000f31100001ab10700000000004ac7b501000000009648030000000000d2a8070000000000fa9907000000000020b6150000000000689f070000000000b093070000000000fea4070000000000589607000000000020f512000000000050e8030000000000727c070000000000730000000000000088d01f0000000000bc0000000000000088b5f52600000000746e180000000000b4462d00000000005241a107000000002603000000000000e6590600000000000843b2070000000017010000000000006a000000000000005658ef0700000000d452ae0700000000680000000000000042fdaa01000000005e000000000000004677af01000000007002000000000000941fb307000000007802000000000000e697830800000000f2243a130000000002a0460d00000000589785080000000020d401000000000096383f2e000000000120000000000000ef0500000000000038610c0000000000ba11000000000000a83f0e0000000000ad0b0000000000006eec0900000000008904000000000000f8d0090000000000890400000000000082d12f0900000000046820436f7374207363686564756c6520616e64206c696d6974732e4844656c6574696f6e517565756544657074681010524400003c090120546865206d6178696d756d206e756d626572206f6620636f6e74726163747320746861742063616e2062652070656e64696e6720666f722064656c6574696f6e2e003d01205768656e206120636f6e74726163742069732064656c657465642062792063616c6c696e6720607365616c5f7465726d696e61746560206974206265636f6d657320696e61636365737369626c654d0120696d6d6564696174656c792c20627574207468652064656c6574696f6e206f66207468652073746f72616765206974656d732069742068617320616363756d756c6174656420697320706572666f726d65642901206c617465722e2054686520636f6e74726163742069732070757420696e746f207468652064656c6574696f6e2071756575652e205468697320646566696e657320686f77206d616e795d0120636f6e7472616374732063616e20626520717565756564207570206174207468652073616d652074696d652e2049662074686174206c696d6974206973207265616368656420607365616c5f7465726d696e6174656015012077696c6c206661696c2e2054686520616374696f6e206d757374206265207265747269656420696e2061206c6174657220626c6f636b20696e207468617420636173652e00b82054686520726561736f6e7320666f72206c696d6974696e6720746865207175657565206465707468206172653a00590120312e2054686520717565756520697320696e2073746f7261676520696e206f7264657220746f2062652070657273697374656e74206265747765656e20626c6f636b732e2057652077616e7420746f206c696d6974b4200974686520616d6f756e74206f662073746f7261676520746861742063616e20626520636f6e73756d65642e4d0120322e205468652071756575652069732073746f72656420696e206120766563746f7220616e64206e6565647320746f206265206465636f64656420617320612077686f6c65207768656e2072656164696e674501090969742061742074686520656e64206f66206561636820626c6f636b2e204c6f6e676572207175657565732074616b65206d6f72652077656967687420746f206465636f646520616e642068656e6365e809096c696d69742074686520616d6f756e74206f66206974656d7320746861742063616e2062652064656c657465642070657220626c6f636b2e4c44656c6574696f6e5765696768744c696d6974202000d0ed902e000000184d0120546865206d6178696d756d20616d6f756e74206f662077656967687420746861742063616e20626520636f6e73756d65642070657220626c6f636b20666f72206c617a7920747269652072656d6f76616c2e005d012054686520616d6f756e74206f66207765696768742074686174206973206465646963617465642070657220626c6f636b20746f20776f726b206f6e207468652064656c6574696f6e2071756575652e204c617267657245012076616c75657320616c6c6f77206d6f72652074726965206b65797320746f2062652064656c6574656420696e206561636820626c6f636b20627574207265647563652074686520616d6f756e74206f664101207765696768742074686174206973206c65667420666f72207472616e73616374696f6e732e20536565205b6053656c663a3a44656c6574696f6e51756575654465707468605d20666f72206d6f72659820696e666f726d6174696f6e2061626f7574207468652064656c6574696f6e2071756575652e384465706f7369745065724279746518400060defb7405000000000000000000001411012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682062797465206f662073746f726167652e001c2023204e6f7465002901204368616e67696e6720746869732076616c756520666f7220616e206578697374696e6720636861696e206d69676874206e65656420612073746f72616765206d6967726174696f6e2e384465706f7369745065724974656d184000f0ab75a40d000000000000000000001405012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682073746f72616765206974656d2e001c2023204e6f7465002901204368616e67696e6720746869732076616c756520666f7220616e206578697374696e6720636861696e206d69676874206e65656420612073746f72616765206d6967726174696f6e2e01150713105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01d90301e0000119071420496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301001d07040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730001080505290125070400083d0120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206053657373696f6e496e6465786020616e64206041757468496e6465786020746fb02060577261707065724f70617175653c426f756e6465644f70617175654e6574776f726b53746174653e602e38417574686f726564426c6f636b730101080505110610100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e01dd0301e80440556e7369676e65645072696f726974792020ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e0139071548417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b65797301003d070400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b65797301003d0704000480204b657973206f6620746865206e65787420617574686f72697479207365742e0000000016204f6666656e63657301204f6666656e6365730c1c5265706f72747300010405244507040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805054907b5010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405110128040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00010d0100001728486973746f726963616c0000000000186052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c01004d0704000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e0000000019204964656e7469747901204964656e7469747910284964656e746974794f660001040500510704000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010402008d040400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f660101040500610744000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e2852656769737472617273010069070400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e01fd03011501183042617369634465706f73697418400080c6a47e8d0300000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f736974184000a031a95fe300000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f73697418400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c6473101064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d617852656769737472617273101014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e0179071a1c536f6369657479011c536f6369657479401c466f756e6465720000000400044820546865206669727374206d656d6265722e1452756c6573000024040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301007d070400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010405008907040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f74010018400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000000040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d6265727301009c04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d62657273010104050088040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301007d07040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010405008d07040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f757473010104050091070400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b6573010104050010100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f746573000108050599079d07040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000000040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010405009d070400046020566f74657320666f722074686520646566656e6465722e284d61784d656d62657273010010100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e019d04011901242050616c6c65744964e9062070792f736f63696504682054686520736f6369657469657327732070616c6c65742069644043616e6469646174654465706f73697418400080c6a47e8d0300000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e18400080f420e6b5000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b657310100a00000008510120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e20746865792061726520619c20736b657074696329206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e6418400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6410100077010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4d61784c6f636b4475726174696f6e1010009cda0104a420546865206d6178696d756d206475726174696f6e206f6620746865207061796f7574206c6f636b2e3c4368616c6c656e6765506572696f6410108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e484d617843616e646964617465496e74616b6510100a00000004ec20546865206d6178696d756d206e756d626572206f662063616e646964617465732074686174207765206163636570742070657220726f756e642e01a1071b205265636f7665727901205265636f766572790c2c5265636f76657261626c650001040500a50704000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300010805059907ad070400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010402000004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01a504011d011044436f6e6669674465706f73697442617365184000406352bfc60100000000000000000010550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a65206973a8206032202b2073697a656f6628426c6f636b4e756d6265722c2042616c616e636529602062797465732e4c467269656e644465706f736974466163746f72184000203d88792d00000000000000000000142d012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f766572793c20636f6e66696775726174696f6e2e004d0120546869732069732068656c6420666f7220616464696e67206073697a656f66284163636f756e7449642960206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167651c2076616c75652e284d6178467269656e6473101009000000180d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e000d01204e4f54453a20546865207468726573686f6c642070726f6772616d6d656420696e20746869732050616c6c65742075736573207531362c20736f20697420646f65730901206e6f74207265616c6c79206d616b652073656e736520746f20686176652061206c696d697420686572652067726561746572207468616e207531363a3a4d41582e15012042757420616c736f2c20746861742069732061206c6f74206d6f7265207468616e20796f752073686f756c642070726f6261626c792073657420746869732076616c75653420746f20616e797761792e2e2e3c5265636f766572794465706f736974184000406352bfc6010000000000000000001c1d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e0035012054686973206973207072696d6172696c792068656c6420666f7220646574657272696e67206d616c6963696f7573207265636f7665727920617474656d7074732c20616e642073686f756c642901206861766520612076616c7565206c6172676520656e6f7567682074686174206120626164206163746f7220776f756c642063686f6f7365206e6f7420746f20706c61636520746869732901206465706f7369742e20497420616c736f206163747320746f2066756e64206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069734101206073697a656f6628426c6f636b4e756d6265722c2042616c616e6365202b2054202a204163636f756e74496429602062797465732e2057686572652054206973206120636f6e666967757261626c652c207468726573686f6c642e01b1071c1c56657374696e67011c56657374696e67081c56657374696e670001040200b507040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100bd0704000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01a90401210108444d696e5665737465645472616e7366657218400000c16ff2862300000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001c1071d245363686564756c657201245363686564756c657208184167656e64610101040510c5070400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b7570000104052829010400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e01b10401250108344d6178696d756d576569676874202000806e877401000008450120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c6573206f66206c657373a4207072696f72697479207468616e20607363686564756c653a3a484152445f444541444c494e45602e504d61785363686564756c6564506572426c6f636b101032000000081d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e01d1071e20507265696d6167650120507265696d6167650824537461747573466f720001040624d5070400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f720001040624dd07040004942054686520707265696d616765732073746f72656420627920746869732070616c6c65742e01bd040135010001e1071f1450726f7879011450726f7879081c50726f786965730101040500e5074400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500f50744000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01c104013901184050726f78794465706f73697442617365184000f09e544c390000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218400060aa7714b40000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f73697442617365184000f09e544c390000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000c054ef28680100000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01050820204d756c746973696701204d756c746973696708244d756c746973696773000108050209080d08040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c730001040604110804000001c9040145010c2c4465706f73697442617365184000f01c0adbed0100000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f7218400000cc7b9fae000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f72696573410108640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e0115082120426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e74696573000104051019080400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e73000104051021080400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100dd06040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01d504014d011c44426f756e74794465706f73697442617365184000407a10f35a0000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101080700000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f64101000270600046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f736974e1061020a107000849012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e7479242063757261746f722e48426f756e747956616c75654d696e696d756d184000406352bfc6010000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f7369745065724279746518400010a5d4e800000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e67746810102c0100000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c75650125082210546970730110546970730810546970730001040524290804000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e7300010406242804000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01d904015101144c4d6178696d756d526561736f6e4c656e67746810102c0100000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c756548446174614465706f7369745065724279746518400010a5d4e800000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e30546970436f756e74646f776e1010807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e6465727346656561030414043501205468652070657263656e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f73697442617365184000407a10f35a0000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e012d08231841737365747301184173736574731014417373657400010402103108040004542044657461696c73206f6620616e2061737365742e1c4163636f756e74000108020211063508040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e24417070726f76616c7300010c0202023d08410804000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d65746164617461010104021045085000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e01dd04015501183041737365744465706f73697418400000c16ff2862300000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e4c41737365744163636f756e744465706f736974184000407a10f35a000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e4c4d657461646174614465706f7369744261736518400080c6a47e8d030000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e584d657461646174614465706f73697450657242797465184000407a10f35a0000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e3c417070726f76616c4465706f736974184000407a10f35a000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e014908240c4d6d72010c4d6d720c20526f6f74486173680100248000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001040620240400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e00000000251c4c6f7474657279011c4c6f747465727918304c6f7474657279496e6465780100101000000000001c4c6f747465727900004d08040004ac2054686520636f6e66696775726174696f6e20666f72207468652063757272656e74206c6f74746572792e305061727469636970616e7473010104050051081400000000000419012055736572732077686f2068617665207075726368617365642061207469636b65742e20284c6f747465727920496e6465782c205469636b6574732050757263686173656429305469636b657473436f756e740100101000000000047820546f74616c206e756d626572206f66207469636b65747320736f6c642e1c5469636b657473000104051000040010542045616368207469636b65742773206f776e65722e006101204d6179206861766520726573696475616c2073746f726167652066726f6d2070726576696f7573206c6f747465726965732e2055736520605469636b657473436f756e746020746f20736565207768696368206f6e657390206172652061637475616c6c792076616c6964207469636b6574206d617070696e67732e2c43616c6c496e6469636573010055080400083901205468652063616c6c732073746f72656420696e20746869732070616c6c657420746f206265207573656420696e20616e20616374697665206c6f747465727920696620636f6e666967757265646c2062792060436f6e6669673a3a56616c696461746543616c6c602e01e5040159010c2050616c6c65744964e9062070792f6c6f74746f046020546865204c6f747465727927732070616c6c6574206964204d617843616c6c7310100a00000004dc20546865206d6178206e756d626572206f662063616c6c7320617661696c61626c6520696e20612073696e676c65206c6f74746572792e444d617847656e657261746552616e646f6d10100a0000000c4901204e756d626572206f662074696d652077652073686f756c642074727920746f2067656e657261746520612072616e646f6d206e756d626572207468617420686173206e6f206d6f64756c6f20626961732e5d0120546865206c61726765722074686973206e756d6265722c20746865206d6f726520706f74656e7469616c20636f6d7075746174696f6e206973207573656420666f72207069636b696e67207468652077696e6e65722c01012062757420616c736f20746865206d6f7265206c696b656c792074686174207468652063686f73656e2077696e6e657220697320646f6e6520666169726c792e015d08261047696c74011047696c74102c5175657565546f74616c730100610804001461012054686520746f74616c73206f66206974656d7320616e642062616c616e6365732077697468696e20656163682071756575652e2053617665732061206c6f74206f662073746f7261676520726561647320696e20746865802063617365206f66207370617273656c79207061636b6564207175657565732e006d012054686520766563746f7220697320696e6465786564206279206475726174696f6e20696e2060506572696f6460732c206f6666736574206279206f6e652c20736f20696e666f726d6174696f6e206f6e20746865207175657565d42077686f7365206475726174696f6e206973206f6e652060506572696f646020776f756c642062652073746f72616765206030602e185175657565730101040210650804000439012054686520717565756573206f66206269647320726561647920746f206265636f6d652067696c74732e20496e6465786564206279206475726174696f6e2028696e2060506572696f646073292e2c416374697665546f74616c010071089000000000000000000000000000000000000000000000000000000000000000000000000004d020496e666f726d6174696f6e2072656c6174696e6720746f207468652067696c74732063757272656e746c79206163746976652e18416374697665000104021075080400042101205468652063757272656e746c79206163746976652067696c74732c20696e6465786564206163636f7264696e6720746f20746865206f72646572206f66206372656174696f6e2e01e9040161011c285175657565436f756e7410102c010000085d01204e756d626572206f66206475726174696f6e2071756575657320696e20746f74616c2e2054686973207365747320746865206d6178696d756d206475726174696f6e20737570706f727465642c2077686963682069738c20746869732076616c7565206d756c7469706c6965642062792060506572696f64602e2c4d617851756575654c656e1010e803000004f0204d6178696d756d206e756d626572206f66206974656d732074686174206d617920626520696e2065616368206475726174696f6e2071756575652e304669666f51756575654c656e1010f40100000c090120506f7274696f6e206f662074686520717565756520776869636820697320667265652066726f6d206f72646572696e6720616e64206a7573742061204649464f2e009c204d757374206265206e6f2067726561746572207468616e20604d617851756575654c656e602e18506572696f641010002f0d0008410120546865206261736520706572696f6420666f7220746865206475726174696f6e207175657565732e20546869732069732074686520636f6d6d6f6e206d756c7469706c65206163726f737320616c6ccc20737570706f7274656420667265657a696e67206475726174696f6e7320746861742063616e206265206269642075706f6e2e244d696e467265657a6518400000c16ff2862300000000000000000018550120546865206d696e696d756d20616d6f756e74206f662066756e64732074686174206d6179206265206f66666572656420746f20667265657a6520666f7220612067696c742e204e6f746520746861742074686973510120646f6573206e6f742061637475616c6c79206c696d69742074686520616d6f756e74207768696368206d61792062652066726f7a656e20696e20612067696c742073696e63652067696c7473206d617920626519012073706c697420757020696e206f7264657220746f207361746973667920746865206465736972656420616d6f756e74206f662066756e647320756e6465722067696c74732e0065012049742073686f756c64206265206174206c656173742062696720656e6f75676820746f20656e737572652074686174207468657265206973206e6f20706f737369626c652073746f72616765207370616d2061747461636b64206f722071756575652d66696c6c696e672061747461636b2e30496e74616b65506572696f6410100a00000014590120546865206e756d626572206f6620626c6f636b73206265747765656e20636f6e736563757469766520617474656d70747320746f206973737565206d6f72652067696c747320696e20616e206566666f727420746f9c2067657420746f207468652074617267657420616d6f756e7420746f2062652066726f7a656e2e005d012041206c61726765722076616c756520726573756c747320696e2066657765722073746f726167652068697473206561636820626c6f636b2c20627574206120736c6f77657220706572696f6420746f2067657420746f3020746865207461726765742e344d6178496e74616b654269647310100a0000000c550120546865206d6178696d756d20616d6f756e74206f66206269647320746861742063616e206265207475726e656420696e746f206973737565642067696c7473206561636820626c6f636b2e2041206c617267657261012076616c75652068657265206d65616e73206c657373206f662074686520626c6f636b20617661696c61626c6520666f72207472616e73616374696f6e732073686f756c64207468657265206265206120676c7574206f66b4206269647320746f206d616b6520696e746f2067696c747320746f20726561636820746865207461726765742e017908271c556e6971756573011c556e69717565732014436c61737300010402107d080400046c2044657461696c73206f6620616e20617373657420636c6173732e4c4f776e657273686970416363657074616e636500010402001004000415012054686520636c6173732c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202810870040008610120546865206173736574732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420617373657473206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e30436c6173734163636f756e7400010802022106700400086d012054686520636c6173736573206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636c6173736573206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e144173736574000108020229018508040004d4205468652061737365747320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e3c436c6173734d657461646174614f660001040210890804000470204d65746164617461206f6620616e20617373657420636c6173732e48496e7374616e63654d657461646174614f66000108020229018d080400047c204d65746164617461206f6620616e20617373657420696e7374616e63652e2441747472696275746500010c0202029108950804000470204d65746164617461206f6620616e20617373657420636c6173732e01f5040165012030436c6173734465706f73697418400000c16ff286230000000000000000000411012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e20617373657420636c6173732e3c496e7374616e63654465706f736974184000407a10f35a00000000000000000000041d012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e20617373657420696e7374616e63652e4c4d657461646174614465706f7369744261736518400080c6a47e8d030000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e504174747269627574654465706f7369744261736518400080c6a47e8d030000000000000000000459012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e2061737365742e384465706f73697450657242797465184000407a10f35a0000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410103200000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410102000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e01990828485472616e73616374696f6e53746f7261676501485472616e73616374696f6e53746f7261676524305472616e73616374696f6e7300010402109d08040004d020436f6c6c656374696f6e206f66207472616e73616374696f6e206d6574616461746120627920626c6f636b206e756d6265722e284368756e6b436f756e740101040210101000000000049420436f756e7420696e6465786564206368756e6b7320666f72206561636820626c6f636b2e1c42797465466565000018040004582053746f72616765206665652070657220627974652e20456e747279466565000018040004742053746f726167652066656520706572207472616e73616374696f6e2e484d61785472616e73616374696f6e53697a65010010100000000004cc204d6178696d756d20646174612073657420696e20612073696e676c65207472616e73616374696f6e20696e2062797465732e504d6178426c6f636b5472616e73616374696f6e73010010100000000004d4204d6178696d756d206e756d626572206f6620696e6465786564207472616e73616374696f6e7320696e2074686520626c6f636b2e3453746f72616765506572696f640100101000000000086d012053746f7261676520706572696f6420666f72206461746120696e20626c6f636b732e2053686f756c64206d61746368206073705f73746f726167655f70726f6f663a3a44454641554c545f53544f524147455f504552494f44605420666f7220626c6f636b20617574686f72696e672e44426c6f636b5472616e73616374696f6e7301009d080400003050726f6f66436865636b65640100880400049420576173207468652070726f6f6620636865636b656420696e207468697320626c6f636b3f010105017d010001a5082920426167734c6973740120426167734c6973740c244c6973744e6f6465730001040500a90804000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040520ad0804000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e01090501810104344261675468726573686f6c6473b1080919210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e01b5082a485374617465547269654d6967726174696f6e01485374617465547269654d6967726174696f6e0c404d6967726174696f6e50726f63657373010019053800000000000000000000000000001050204d6967726174696f6e2070726f67726573732e005d0120546869732073746f7265732074686520736e617073686f74206f6620746865206c617374206d69677261746564206b6579732e2049742063616e2062652073657420696e746f206d6f74696f6e20616e64206d6f7665d420666f727761726420627920616e79206f6620746865206d65616e732070726f766964656420627920746869732070616c6c65742e284175746f4c696d6974730100110504000cd420546865206c696d69747320746861742061726520696d706f736564206f6e206175746f6d61746963206d6967726174696f6e732e00d42049662073657420746f204e6f6e652c207468656e206e6f206175746f6d61746963206d6967726174696f6e2068617070656e732e605369676e65644d6967726174696f6e4d61784c696d6974730000150504000ce020546865206d6178696d756d206c696d697473207468617420746865207369676e6564206d6967726174696f6e20636f756c64207573652e00b4204966206e6f74207365742c206e6f207369676e6564207375626d697373696f6e20697320616c6c6f7765642e010d050185010001b9082b344368696c64426f756e7469657301344368696c64426f756e7469657314404368696c64426f756e7479436f756e7401001010000000000480204e756d626572206f6620746f74616c206368696c6420626f756e746965732e4c506172656e744368696c64426f756e74696573010104051010100000000008b0204e756d626572206f66206368696c642d626f756e746965732070657220706172656e7420626f756e74792ee0204d6170206f6620706172656e7420626f756e747920696e64657820746f206e756d626572206f66206368696c6420626f756e746965732e344368696c64426f756e7469657300010805052901bd0804000494204368696c642d626f756e7469657320746861742068617665206265656e2061646465642e5c4368696c64426f756e74794465736372697074696f6e73000104051021080400049820546865206465736372697074696f6e206f662065616368206368696c642d626f756e74792e4c4368696c6472656e43757261746f72466565730101040510184000000000000000000000000000000000040101205468652063756d756c6174697665206368696c642d626f756e74792063757261746f722066656520666f72206561636820706172656e7420626f756e74792e012105018d010c644d61784163746976654368696c64426f756e7479436f756e74101005000000041d01204d6178696d756d206e756d626572206f66206368696c642d626f756e7469657320746861742063616e20626520616464656420746f206120706172656e7420626f756e74792e5c4368696c64426f756e747956616c75654d696e696d756d184000407a10f35a000000000000000000000488204d696e696d756d2076616c756520666f722061206368696c642d626f756e74792e744368696c64426f756e747943757261746f724465706f73697442617365e10610a0860100080d012050657263656e74616765206f66206368696c642d626f756e74792076616c756520746f2062652072657365727665642061732063757261746f72206465706f73697468207768656e2063757261746f7220666565206973207a65726f2e01c5082c245265666572656e646101245265666572656e6461103c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210c908040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b51756575650101040508e9080400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e74010104050810100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e01250501910110445375626d697373696f6e4465706f73697418400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f75741010004e0c0008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e01ed082d40436f6e76696374696f6e566f74696e670140436f6e76696374696f6e566f74696e670824566f74696e67466f720101080505f108f508d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008750120416c6c20766f74696e6720666f72206120706172746963756c617220766f74657220696e206120706172746963756c617220766f74696e6720636c6173732e2057652073746f7265207468652062616c616e636520666f72207468659c206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e34436c6173734c6f636b73466f720101040500150904000c69012054686520766f74696e6720636c617373657320776869636820686176652061206e6f6e2d7a65726f206c6f636b20726571756972656d656e7420616e6420746865206c6f636b20616d6f756e747320776869636820746865796d0120726571756972652e205468652061637475616c20616d6f756e74206c6f636b6564206f6e20626568616c66206f6620746869732070616c6c65742073686f756c6420616c7761797320626520746865206d6178696d756d206f662c2074686973206c6973742e01410501990108204d6178566f74657310100002000010f020546865206d6178696d756d206e756d626572206f6620636f6e63757272656e7420766f74657320616e206163636f756e74206d617920686176652e00dc20416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206c617267652076616c75652063616e3501206c65616420746f2065787472696e7369632077697468206c617267652077656967687420657374696d6174696f6e3a20736565206064656c65676174656020666f7220696e7374616e63652e44566f74654c6f636b696e67506572696f641010002f0d00109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e011d092e2457686974656c697374012457686974656c697374043c57686974656c697374656443616c6c000104052470040000015505019d01000121092f2509042048436865636b4e6f6e5a65726f53656e64657239097040436865636b5370656356657273696f6e3d091038436865636b547856657273696f6e41091030436865636b47656e6573697345092438436865636b4d6f7274616c69747949092428436865636b4e6f6e63655109702c436865636b57656967687455097050436861726765417373657454785061796d656e745909705d09" -) diff --git a/types/metadataV14_example.go b/types/metadataV14_example.go new file mode 100644 index 000000000..249506499 --- /dev/null +++ b/types/metadataV14_example.go @@ -0,0 +1,24 @@ +// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls +// +// Copyright 2019 Centrifuge GmbH +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package types + +const ( + // MetadataV14Data holds the hex encoded metadata taken from the Centrifuge development runtime at block 467559. + + //nolint:lll + MetadataV14Data = "0x6d6574610e2110000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173653909011450686173650001146576656e7450010445000118746f70696373290301185665633c543e000050084c646576656c6f706d656e745f72756e74696d653052756e74696d654576656e74000105011853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e001400485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e00150044436f6c6c61746f7253656c656374696f6e04009001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0047001c53657373696f6e040098015470616c6c65745f73657373696f6e3a3a4576656e74001f00204d756c746973696704009c017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e003c001450726f78790400ac017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e003d001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e74003e00245363686564756c65720400bc018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e003f001c436f756e63696c0400c401fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e00400024456c656374696f6e730400c801a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4576656e743c52756e74696d653e0041002444656d6f63726163790400d4018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e004200204964656e746974790400e8017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e0043001c56657374696e670400f0017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e0044002054726561737572790400f4017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e0045001c556e69717565730400f8017870616c6c65745f756e69717565733a3a4576656e743c52756e74696d653e00460020507265696d61676504001501017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e00480040436f6e76696374696f6e566f74696e670400190101a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4576656e743c52756e74696d653e005000245265666572656e646104001d01018070616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d653e0051002457686974656c69737404007d07018070616c6c65745f77686974656c6973743a3a4576656e743c52756e74696d653e00530048546563686e6963616c436f6d6d697474656504008d0701fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e00540070546563686e6963616c436f6d6d69747465654d656d626572736869700400910701fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e005500104665657304009507016c70616c6c65745f666565733a3a4576656e743c52756e74696d653e005a0028506f6f6c53797374656d04009907018870616c6c65745f706f6f6c5f73797374656d3a3a4576656e743c52756e74696d653e005f00144c6f616e730400e507017070616c6c65745f6c6f616e733a3a4576656e743c52756e74696d653e0060002c5065726d697373696f6e730400ed07018870616c6c65745f7065726d697373696f6e733a3a4576656e743c52756e74696d653e00610044436f6c6c61746f72416c6c6f776c6973740400f10701a470616c6c65745f636f6c6c61746f725f616c6c6f776c6973743a3a4576656e743c52756e74696d653e00620018546f6b656e730400f50701a070616c6c65745f726573747269637465645f746f6b656e733a3a4576656e743c52756e74696d653e006300184272696467650400f907017470616c6c65745f6272696467653a3a4576656e743c52756e74696d653e0065003c496e7465726573744163637275616c0400fd07019c70616c6c65745f696e7465726573745f6163637275616c3a3a4576656e743c52756e74696d653e006600204b657973746f726504000108017c70616c6c65745f6b657973746f72653a3a4576656e743c52756e74696d653e0068002c496e766573746d656e747304000508018870616c6c65745f696e766573746d656e74733a3a4576656e743c52756e74696d653e006900504c697175696469747952657761726473426173650400210801e470616c6c65745f726577617264733a3a4576656e743c52756e74696d652c2070616c6c65745f726577617264733a3a496e7374616e6365323e006a00404c6971756964697479526577617264730400250801a070616c6c65745f6c69717569646974795f726577617264733a3a4576656e743c52756e74696d653e006b00384c6971756964697479506f6f6c7304004d08019870616c6c65745f6c69717569646974795f706f6f6c733a3a4576656e743c52756e74696d653e006c0030506f6f6c526567697374727904007108019070616c6c65745f706f6f6c5f72656769737472793a3a4576656e743c52756e74696d653e006d0040426c6f636b52657761726473426173650400790801e470616c6c65745f726577617264733a3a4576656e743c52756e74696d652c2070616c6c65745f726577617264733a3a496e7374616e6365313e006e0030426c6f636b5265776172647304007d08019070616c6c65745f626c6f636b5f726577617264733a3a4576656e743c52756e74696d653e006f00445472616e73666572416c6c6f774c6973740400910801a470616c6c65745f7472616e736665725f616c6c6f776c6973743a3a4576656e743c52756e74696d653e007000544c6971756964697479506f6f6c73476174657761790400950801b870616c6c65745f6c69717569646974795f706f6f6c735f676174657761793a3a4576656e743c52756e74696d653e007300244f72646572426f6f6b04009908018470616c6c65745f6f726465725f626f6f6b3a3a4576656e743c52756e74696d653e00740048466f726569676e496e766573746d656e747304009d0801a870616c6c65745f666f726569676e5f696e766573746d656e74733a3a4576656e743c52756e74696d653e0075003c4f7261636c655072696365466565640400ad08018870616c6c65745f6f7261636c655f666565643a3a4576656e743c52756e74696d653e007600544f7261636c655072696365436f6c6c656374696f6e0400b10801a070616c6c65745f6f7261636c655f636f6c6c656374696f6e3a3a4576656e743c52756e74696d653e00770024416e63686f727356320400b508018470616c6c65745f616e63686f72735f76323a3a4576656e743c52756e74696d653e008200684c6971756964697479506f6f6c734761746577617951756575650400b90801d070616c6c65745f6c69717569646974795f706f6f6c735f676174657761795f71756575653a3a4576656e743c52756e74696d653e0083002458636d7051756575650400c10801a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e0078002c506f6c6b61646f7458636d0400c508016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e0079002843756d756c757358636d0400cd08018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e007a003458636d5472616e736163746f720400d108019470616c6c65745f78636d5f7472616e736163746f723a3a4576656e743c52756e74696d653e007d002c4f726d6c58546f6b656e730400d90801706f726d6c5f78746f6b656e733a3a4576656e743c52756e74696d653e007e00304d65737361676551756575650400dd08019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e007f00284f726d6c546f6b656e730400e508016c6f726d6c5f746f6b656e733a3a4576656e743c52756e74696d653e0096002c436861696e4272696467650400e908016c636861696e6272696467653a3a4576656e743c52756e74696d653e009700444f726d6c417373657452656769737472790400ed0801ac6f726d6c5f61737365745f72656769737472793a3a6d6f64756c653a3a4576656e743c52756e74696d653e0098001c4f726d6c58636d0400f10801606f726d6c5f78636d3a3a4576656e743c52756e74696d653e0099000c45564d0400f508016870616c6c65745f65766d3a3a4576656e743c52756e74696d653e00a0001c426173654665650400fd08015870616c6c65745f626173655f6665653a3a4576656e7400a20020457468657265756d04000109015870616c6c65745f657468657265756d3a3a4576656e7400a3006c4c6971756964697479506f6f6c734178656c6172476174657761790400250901a46178656c61725f676174657761795f707265636f6d70696c653a3a4576656e743c52756e74696d653e00a500105375646f04002909016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00c80020506f6f6c4665657304002d09018070616c6c65745f706f6f6c5f666565733a3a4576656e743c52756e74696d653e00fa001c52656d61726b7304003109017870616c6c65745f72656d61726b733a3a4576656e743c52756e74696d653e00fb0020546f6b656e4d757804003509018070616c6c65745f746f6b656e5f6d75783a3a4576656e743c52756e74696d653e00fd0000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564240118576569676874000120646d715f6865616430014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c65739401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940000020000980c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749c0c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e74a0017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e74a0017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c74a401384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e74a0017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a0083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c7533320000a40418526573756c7408045401a8044501640108084f6b0400a8000000000c4572720400640000010000a80000040000ac0c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001143450726f78794578656375746564040118726573756c74a401384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f74797065b00130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e646578b4010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736830013443616c6c486173684f663c543e000204e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065b00130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00030448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065b00130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040450412070726f7879207761732072656d6f7665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b0084c646576656c6f706d656e745f72756e74696d652450726f7879547970650001340c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e6365000200205f5374616b696e67000300204e6f6e50726f787900040018426f72726f7700050018496e766573740006003c50726f78794d616e6167656d656e74000700484b657973746f72654d616e6167656d656e7400080030506f644f7065726174696f6e0009001c506f6441757468000a00505065726d697373696f6e4d616e6167656d656e74000b00205472616e73666572000c0000b40000050400b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74a401384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000118245363686564756c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736bc001785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648001404f7074696f6e3c5461736b4e616d653e000118726573756c74a401384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736bc001785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648001404f7074696f6e3c5461736b4e616d653e00030429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736bc001785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648001404f7074696f6e3c5461736b4e616d653e0004043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e545065726d616e656e746c794f7665727765696768740801107461736bc001785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648001404f7074696f6e3c5461736b4e616d653e000504f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e04304576656e747320747970652ec000000408101000c40c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736830011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736830011c543a3a48617368000114766f746564780110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736830011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736830011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736830011c543a3a48617368000118726573756c74a401384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736830011c543a3a48617368000118726573756c74a401384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736830011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c80c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144576656e7404045400011c1c4e65775465726d04012c6e65775f6d656d62657273cc01ec5665633c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2042616c616e63654f663c543e293e000014450141206e6577207465726d2077697468206e65775f6d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e550174686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e65644501666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e645501736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f2c626567696e20776974682e24456d7074795465726d00010831014e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc8604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f72000204e4496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b65640401186d656d6265720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000308410141206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f723060456d7074795465726d602e2452656e6f756e63656404012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400040498536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0005103901412063616e6469646174652077617320736c617368656420627920616d6f756e742064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722872756e6e65722d75702e00e44e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408012c736561745f686f6c6465720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000604350141207365617420686f6c6465722077617320736c617368656420627920616d6f756e74206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc000002d000d000000408001800d40c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e740404540001442050726f706f73656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000004bc41206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000104d841207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400020494416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c537461727465640801247265665f696e64657810013c5265666572656e64756d496e6465780001247468726573686f6c64d80134566f74655468726573686f6c640003045c41207265666572656e64756d2068617320626567756e2e185061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000404ac412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f745061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000504ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c65640401247265665f696e64657810013c5265666572656e64756d496e6465780006048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e2444656c65676174656408010c77686f000130543a3a4163636f756e744964000118746172676574000130543a3a4163636f756e744964000704dc416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404011c6163636f756e74000130543a3a4163636f756e744964000804e4416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c010c77686f000130543a3a4163636f756e74496400013470726f706f73616c5f6861736830011c543a3a48617368000114756e74696c100144426c6f636b4e756d626572466f723c543e00090494416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e2c426c61636b6c697374656404013470726f706f73616c5f6861736830011c543a3a48617368000a04c4412070726f706f73616c5f6861736820686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e14566f7465640c0114766f746572000130543a3a4163636f756e7449640001247265665f696e64657810013c5265666572656e64756d496e646578000110766f7465dc01644163636f756e74566f74653c42616c616e63654f663c543e3e000b0490416e206163636f756e742068617320766f74656420696e2061207265666572656e64756d205365636f6e6465640801207365636f6e646572000130543a3a4163636f756e74496400012870726f705f696e64657810012450726f70496e646578000c048c416e206163636f756e742068617320736563636f6e64656420612070726f706f73616c4050726f706f73616c43616e63656c656404012870726f705f696e64657810012450726f70496e646578000d0460412070726f706f73616c20676f742063616e63656c65642e2c4d657461646174615365740801146f776e6572e401344d657461646174614f776e6572043c4d65746164617461206f776e65722e01106861736830011c543a3a486173680438507265696d61676520686173682e0e04d44d6574616461746120666f7220612070726f706f73616c206f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c65617265640801146f776e6572e401344d657461646174614f776e6572043c4d65746164617461206f776e65722e01106861736830011c543a3a486173680438507265696d61676520686173682e0f04e44d6574616461746120666f7220612070726f706f73616c206f722061207265666572656e64756d20686173206265656e20636c65617265642e4c4d657461646174615472616e736665727265640c0128707265765f6f776e6572e401344d657461646174614f776e6572046050726576696f7573206d65746164617461206f776e65722e01146f776e6572e401344d657461646174614f776e6572044c4e6577206d65746164617461206f776e65722e01106861736830011c543a3a486173680438507265696d61676520686173682e1004ac4d6574616461746120686173206265656e207472616e7366657272656420746f206e6577206f776e65722e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d80c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f7269747900020000dc0c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f7465e00110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e636500010000e00c4070616c6c65745f64656d6f637261637910766f746510566f74650000040008000000e40c4070616c6c65745f64656d6f6372616379147479706573344d657461646174614f776e657200010c2045787465726e616c0000002050726f706f73616c040010012450726f70496e646578000100285265666572656e64756d040010013c5265666572656e64756d496e64657800020000e80c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001442c4964656e7469747953657404010c77686f000130543a3a4163636f756e744964000004ec41206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e3c4964656e74697479436c656172656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000104cc41206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e384964656e746974794b696c6c656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000204c441206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e484a756467656d656e7452657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780003049c41206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e504a756467656d656e74556e72657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780004048841206a756467656d656e74207265717565737420776173207265747261637465642e384a756467656d656e74476976656e080118746172676574000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780005049441206a756467656d656e742077617320676976656e2062792061207265676973747261722e38526567697374726172416464656404013c7265676973747261725f696e646578100138526567697374726172496e646578000604584120726567697374726172207761732061646465642e405375624964656e7469747941646465640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000704f441207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e485375624964656e7469747952656d6f7665640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e485375624964656e746974795265766f6b65640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000908190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d20746865c86d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e38417574686f726974794164646564040124617574686f72697479000130543a3a4163636f756e744964000a047c4120757365726e616d6520617574686f72697479207761732061646465642e40417574686f7269747952656d6f766564040124617574686f72697479000130543a3a4163636f756e744964000b04844120757365726e616d6520617574686f72697479207761732072656d6f7665642e2c557365726e616d6553657408010c77686f000130543a3a4163636f756e744964000120757365726e616d65ec012c557365726e616d653c543e000c04744120757365726e616d65207761732073657420666f72206077686f602e38557365726e616d655175657565640c010c77686f000130543a3a4163636f756e744964000120757365726e616d65ec012c557365726e616d653c543e00012865787069726174696f6e100144426c6f636b4e756d626572466f723c543e000d0419014120757365726e616d6520776173207175657565642c20627574206077686f60206d75737420616363657074206974207072696f7220746f206065787069726174696f6e602e48507265617070726f76616c4578706972656404011477686f7365000130543a3a4163636f756e744964000e043901412071756575656420757365726e616d6520706173736564206974732065787069726174696f6e20776974686f7574206265696e6720636c61696d656420616e64207761732072656d6f7665642e485072696d617279557365726e616d6553657408010c77686f000130543a3a4163636f756e744964000120757365726e616d65ec012c557365726e616d653c543e000f0401014120757365726e616d6520776173207365742061732061207072696d61727920616e642063616e206265206c6f6f6b65642075702066726f6d206077686f602e5c44616e676c696e67557365726e616d6552656d6f76656408010c77686f000130543a3a4163636f756e744964000120757365726e616d65ec012c557365726e616d653c543e0010085d01412064616e676c696e6720757365726e616d652028617320696e2c206120757365726e616d6520636f72726573706f6e64696e6720746f20616e206163636f756e742074686174206861732072656d6f766564206974736c6964656e746974792920686173206265656e2072656d6f7665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ec0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000f00c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f40c3c70616c6c65745f74726561737572791870616c6c6574144576656e740804540004490001382050726f706f73656404013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000004344e65772070726f706f73616c2e205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000104e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640002047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e2052656a656374656408013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800011c736c617368656418013c42616c616e63654f663c542c20493e000304b0412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00040488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0005042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0006047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640007049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000804cc54686520696e6163746976652066756e6473206f66207468652070616c6c65742068617665206265656e20757064617465642e4841737365745370656e64417070726f766564180114696e6465781001285370656e64496e64657800012861737365745f6b696e64a80130543a3a41737365744b696e64000118616d6f756e74180150417373657442616c616e63654f663c542c20493e00012c62656e6566696369617279000138543a3a42656e656669636961727900012876616c69645f66726f6d100144426c6f636b4e756d626572466f723c543e0001246578706972655f6174100144426c6f636b4e756d626572466f723c543e000904b441206e6577206173736574207370656e642070726f706f73616c20686173206265656e20617070726f7665642e4041737365745370656e64566f69646564040114696e6465781001285370656e64496e646578000a0474416e20617070726f766564207370656e642077617320766f696465642e1050616964080114696e6465781001285370656e64496e6465780001287061796d656e745f6964a801643c543a3a5061796d6173746572206173205061793e3a3a4964000b044c41207061796d656e742068617070656e65642e345061796d656e744661696c6564080114696e6465781001285370656e64496e6465780001287061796d656e745f6964a801643c543a3a5061796d6173746572206173205061793e3a3a4964000c049041207061796d656e74206661696c656420616e642063616e20626520726574726965642e385370656e6450726f636573736564040114696e6465781001285370656e64496e646578000d084d0141207370656e64207761732070726f63657373656420616e642072656d6f7665642066726f6d207468652073746f726167652e204974206d696768742068617665206265656e207375636365737366756c6c797070616964206f72206974206d6179206861766520657870697265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f80c3870616c6c65745f756e69717565731870616c6c6574144576656e7408045400044900016c1c437265617465640c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e1846726f7a656e080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640006045c536f6d6520606974656d60207761732066726f7a656e2e18546861776564080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640007045c536f6d6520606974656d6020776173207468617765642e40436f6c6c656374696f6e46726f7a656e040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400080474536f6d652060636f6c6c656374696f6e60207761732066726f7a656e2e40436f6c6c656374696f6e546861776564040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173207468617765642e304f776e65724368616e676564080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e4964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e744964000b0470546865206d616e6167656d656e74207465616d206368616e6765642e40417070726f7665645472616e73666572100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e444974656d5374617475734368616e676564040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e4964000e041101412060636f6c6c656374696f6e602068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d657461646174615365740c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106461746101010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e780110626f6f6c000f04b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e4964001004b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e2c4d65746164617461536574100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001106461746101010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e780110626f6f6c001104984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e3c4d65746164617461436c6561726564080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d4964001204984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73050101385665633c543a3a4974656d49643e001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e30417474726962757465536574100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d090101444f7074696f6e3c543a3a4974656d49643e00010c6b65790101016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756501010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e00140405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c65617265640c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d090101444f7074696f6e3c543a3a4974656d49643e00010c6b65790101016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0015040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e0d01015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001604c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001704a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e304974656d5072696365536574100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f6275796572110101504f7074696f6e3c543a3a4163636f756e7449643e0018048c546865207072696365207761732073657420666f722074686520696e7374616e63652e404974656d507269636552656d6f766564080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640019049c54686520707269636520666f722074686520696e7374616e6365207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001a044c416e206974656d2077617320626f756768742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fc0c386366675f7072696d697469766573147479706573184974656d49640000040018011075313238000001010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e00000501000002fc00090104184f7074696f6e04045401fc0108104e6f6e6500000010536f6d650400fc00000100000d0104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c0000010000110104184f7074696f6e04045401000108104e6f6e6500000010536f6d65040000000001000015010c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736830011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736830011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736830011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657419010c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144576656e740804540004490001082444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000104f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65741d010c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636bb4013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c2101014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636bb4013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c2101014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c7979070120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7979070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7979070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7979070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7979070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7979070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736830011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736830011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574210110346672616d655f737570706f72741874726169747324707265696d616765731c426f756e6465640804540125010448017107010c184c656761637904011068617368300124483a3a4f757470757400000018496e6c696e65040075070134426f756e646564496e6c696e65000100184c6f6f6b757008011068617368300124483a3a4f757470757400010c6c656e10010c753332000200002501084c646576656c6f706d656e745f72756e74696d652c52756e74696d6543616c6c0001f01853797374656d0400290101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400390101d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400710101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003002042616c616e6365730400750101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00140044436f6c6c61746f7253656c656374696f6e04008d0101d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0047001c53657373696f6e0400910101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e001f00204d756c74697369670400a10101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e003c001450726f78790400a90101a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e003d001c5574696c6974790400b50101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e003e00245363686564756c65720400290201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e003f001c436f756e63696c0400310201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e00400024456c656374696f6e730400350201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e732c2052756e74696d653e0041002444656d6f637261637904003d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e004200204964656e7469747904004d0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e0043001c56657374696e670400090301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e0044002054726561737572790400110301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e0045001c556e69717565730400150301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556e69717565732c2052756e74696d653e00460020507265696d6167650400250301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e00480040436f6e76696374696f6e566f74696e6704002d0301d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e76696374696f6e566f74696e672c2052756e74696d653e005000245265666572656e64610400410301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64612c2052756e74696d653e0051002457686974656c6973740400490301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c57686974656c6973742c2052756e74696d653e00530048546563686e6963616c436f6d6d697474656504004d0301dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e00540070546563686e6963616c436f6d6d69747465654d656d626572736869700400510301050273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465654d656d626572736869702c2052756e74696d653e00550010466565730400550301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466565732c2052756e74696d653e005a0018416e63686f7204005d0301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c416e63686f722c2052756e74696d653e005b0028506f6f6c53797374656d0400650301bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6f6c53797374656d2c2052756e74696d653e005f00144c6f616e730400750301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6f616e732c2052756e74696d653e0060002c5065726d697373696f6e730400110401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5065726d697373696f6e732c2052756e74696d653e00610044436f6c6c61746f72416c6c6f776c6973740400250401d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f72416c6c6f776c6973742c2052756e74696d653e00620018546f6b656e730400290401ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546f6b656e732c2052756e74696d653e0063001842726964676504002d0401ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4272696467652c2052756e74696d653e006500204b657973746f72650400310401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4b657973746f72652c2052756e74696d653e0068002c496e766573746d656e74730400450401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e766573746d656e74732c2052756e74696d653e006900404c69717569646974795265776172647304004d0401d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6971756964697479526577617264732c2052756e74696d653e006b00384c6971756964697479506f6f6c730400510401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6971756964697479506f6f6c732c2052756e74696d653e006c0030506f6f6c52656769737472790400590401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6f6c52656769737472792c2052756e74696d653e006d0030426c6f636b526577617264730400bd0401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426c6f636b526577617264732c2052756e74696d653e006f00445472616e73666572416c6c6f774c6973740400c10401d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73666572416c6c6f774c6973742c2052756e74696d653e007000544c6971756964697479506f6f6c73476174657761790400010501e90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6971756964697479506f6f6c73476174657761792c2052756e74696d653e007300244f72646572426f6f6b04002d0501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f72646572426f6f6b2c2052756e74696d653e0074003c4f7261636c655072696365466565640400390501d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7261636c655072696365466565642c2052756e74696d653e007600544f7261636c655072696365436f6c6c656374696f6e04003d0501e90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f7261636c655072696365436f6c6c656374696f6e2c2052756e74696d653e00770024416e63686f727356320400510501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c416e63686f727356322c2052756e74696d653e008200684c6971756964697479506f6f6c734761746577617951756575650400550501fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6971756964697479506f6f6c734761746577617951756575652c2052756e74696d653e0083002458636d7051756575650400590501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e0078002c506f6c6b61646f7458636d04005d0501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e0079001c58546f6b656e730400910601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58546f6b656e732c2052756e74696d653e007c003458636d5472616e736163746f720400a10601c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d5472616e736163746f722c2052756e74696d653e007d00304d65737361676551756575650400c90601c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e007f002c436861696e4272696467650400d10601c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436861696e4272696467652c2052756e74696d653e009700444f726d6c417373657452656769737472790400d50601d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f726d6c417373657452656769737472792c2052756e74696d653e0098001c4f726d6c58636d0400010701b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f726d6c58636d2c2052756e74696d653e0099000c45564d0400050701a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c45564d2c2052756e74696d653e00a0001c426173654665650400150701b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426173654665652c2052756e74696d653e00a20020457468657265756d04001d0701b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c457468657265756d2c2052756e74696d653e00a3006c4c6971756964697479506f6f6c734178656c6172476174657761790400450701010273656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6971756964697479506f6f6c734178656c6172476174657761792c2052756e74696d653e00a500105375646f04004d0701a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00c80020506f6f6c466565730400510701b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6f6c466565732c2052756e74696d653e00fa001c52656d61726b730400550701b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52656d61726b732c2052756e74696d653e00fb0020546f6b656e4d757804006d0701b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546f6b656e4d75782c2052756e74696d653e00fd000029010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d732d0101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973350101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d010000023101003101000004083434003501000002340039010c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174613d01015450617261636861696e496e686572656e744461746100000490536565205b6050616c6c65743a3a7365745f76616c69646174696f6e5f64617461605d2e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653401345570776172644d657373616765000104a4536565205b6050616c6c65743a3a7375646f5f73656e645f7570776172645f6d657373616765605d2e44617574686f72697a655f75706772616465080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00020488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e60656e6163745f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000304a4536565205b6050616c6c65743a3a656e6163745f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d01089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174614101015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174654901015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765735101016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573590101a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e000041010c4c706f6c6b61646f745f7072696d6974697665730876365c50657273697374656456616c69646174696f6e446174610804480130044e01100010012c706172656e745f6865616445010120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74300104480001306d61785f706f765f73697a6510010c753332000045010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040034011c5665633c75383e000049010c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465734d01014442547265655365743c5665633c75383e3e00004d010420425472656553657404045401340004003501000000510100000255010055010860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736734013c446f776e776172644d65737361676500005901042042547265654d617008044b015d01045601610100040069010000005d010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000610100000265010065010860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746134015073705f7374643a3a7665633a3a5665633c75383e000069010000026d01006d01000004085d0161010071010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75010c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374790101504163636f756e7449644c6f6f6b75704f663c543e00011476616c756585010128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365790101504163636f756e7449644c6f6f6b75704f663c543e00011064657374790101504163636f756e7449644c6f6f6b75704f663c543e00011476616c756585010128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374790101504163636f756e7449644c6f6f6b75704f663c543e00011476616c756585010128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374790101504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f9401445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f6672656585010128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e8901014c41646a7573746d656e74446972656374696f6e00011464656c746185010128543a3a42616c616e6365000904b0536565205b6050616c6c65743a3a666f7263655f61646a7573745f746f74616c5f69737375616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e79010c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801a8011408496404000001244163636f756e74496400000014496e64657804007d0101304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400810101205b75383b2032305d000400007d01000006a80081010000031400000008008501000006180089010c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e637265617365000000204465637265617365000100008d010c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e65779401445665633c543a3a4163636f756e7449643e00000488536565205b6050616c6c65743a3a7365745f696e76756c6e657261626c6573605d2e587365745f646573697265645f63616e6469646174657304010c6d617810010c7533320001049c536565205b6050616c6c65743a3a7365745f646573697265645f63616e64696461746573605d2e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e0002048c536565205b6050616c6c65743a3a7365745f63616e6469646163795f626f6e64605d2e5472656769737465725f61735f63616e64696461746500030498536565205b6050616c6c65743a3a72656769737465725f61735f63616e646964617465605d2e306c656176655f696e74656e7400040474536565205b6050616c6c65743a3a6c656176655f696e74656e74605d2e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400050484536565205b6050616c6c65743a3a6164645f696e76756c6e657261626c65605d2e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400060490536565205b6050616c6c65743a3a72656d6f76655f696e76756c6e657261626c65605d2e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00070470536565205b6050616c6c65743a3a7570646174655f626f6e64605d2e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400080490536565205b6050616c6c65743a3a74616b655f63616e6469646174655f736c6f74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91010c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579739501011c543a3a4b65797300011470726f6f6634011c5665633c75383e00000464536565205b6050616c6c65743a3a7365745f6b657973605d2e2870757267655f6b6579730001046c536565205b6050616c6c65743a3a70757267655f6b657973605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9501084c646576656c6f706d656e745f72756e74696d652c53657373696f6e4b657973000008011061757261990101c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000134626c6f636b5f72657761726473990101e43c426c6f636b52657761726473206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300009901104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c6963000004009d01013c737232353531393a3a5075626c696300009d010c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a1010c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965739401445665633c543a3a4163636f756e7449643e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000494536565205b6050616c6c65743a3a61735f6d756c74695f7468726573686f6c645f31605d2e2061735f6d756c74691401247468726573686f6c64b4010c7531360001446f746865725f7369676e61746f726965739401445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74a50101904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687424011857656967687400010464536565205b6050616c6c65743a3a61735f6d756c7469605d2e40617070726f76655f61735f6d756c74691401247468726573686f6c64b4010c7531360001446f746865725f7369676e61746f726965739401445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74a50101904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f77656967687424011857656967687400020484536565205b6050616c6c65743a3a617070726f76655f61735f6d756c7469605d2e3c63616e63656c5f61735f6d756c74691001247468726573686f6c64b4010c7531360001446f746865725f7369676e61746f726965739401445665633c543a3a4163636f756e7449643e00012474696d65706f696e74a0017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d00030480536565205b6050616c6c65743a3a63616e63656c5f61735f6d756c7469605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea50104184f7074696f6e04045401a00108104e6f6e6500000010536f6d650400a00000010000a9010c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c790101504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065ad0101504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a70726f7879605d2e246164645f70726f78790c012064656c6567617465790101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065b00130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00010468536565205b6050616c6c65743a3a6164645f70726f7879605d2e3072656d6f76655f70726f78790c012064656c6567617465790101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065b00130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00020474536565205b6050616c6c65743a3a72656d6f76655f70726f7879605d2e3872656d6f76655f70726f786965730003047c536565205b6050616c6c65743a3a72656d6f76655f70726f78696573605d2e2c6372656174655f707572650c012870726f78795f74797065b00130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e646578b4010c75313600040470536565205b6050616c6c65743a3a6372656174655f70757265605d2e246b696c6c5f7075726514011c737061776e6572790101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065b00130543a3a50726f787954797065000114696e646578b4010c753136000118686569676874b1010144426c6f636b4e756d626572466f723c543e0001246578745f696e646578b101010c75333200050468536565205b6050616c6c65743a3a6b696c6c5f70757265605d2e20616e6e6f756e63650801107265616c790101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736830013443616c6c486173684f663c543e00060464536565205b6050616c6c65743a3a616e6e6f756e6365605d2e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c790101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736830013443616c6c486173684f663c543e00070490536565205b6050616c6c65743a3a72656d6f76655f616e6e6f756e63656d656e74605d2e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465790101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736830013443616c6c486173684f663c543e00080490536565205b6050616c6c65743a3a72656a6563745f616e6e6f756e63656d656e74605d2e3c70726f78795f616e6e6f756e63656410012064656c6567617465790101504163636f756e7449644c6f6f6b75704f663c543e0001107265616c790101504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065ad0101504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00090480536565205b6050616c6c65743a3a70726f78795f616e6e6f756e636564605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead0104184f7074696f6e04045401b00108104e6f6e6500000010536f6d650400b00000010000b1010000061000b5010c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73b901017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e646578b4010c75313600011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c73b901017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ebd010154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c73b901017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb901000002250100bd01084c646576656c6f706d656e745f72756e74696d65304f726967696e43616c6c65720001241873797374656d0400c10101746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c0400c50101010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e0040001c4f726967696e730400c901017470616c6c65745f637573746f6d5f6f726967696e733a3a4f726967696e00520048546563686e6963616c436f6d6d69747465650400cd0101010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e005400544c6971756964697479506f6f6c73476174657761790400d101019870616c6c65745f6c69717569646974795f706f6f6c735f676174657761793a3a4f726967696e0073002c506f6c6b61646f7458636d0400d901014870616c6c65745f78636d3a3a4f726967696e0079002843756d756c757358636d04001902016863756d756c75735f70616c6c65745f78636d3a3a4f726967696e007a0020457468657265756d04001d02015c70616c6c65745f657468657265756d3a3a4f726967696e00a30010566f69640400250201410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400080000c1010c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000c501084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000c901143872756e74696d655f636f6d6d6f6e1c6f726967696e730c676f765470616c6c65745f637573746f6d5f6f726967696e73184f726967696e0001144457686974656c697374656443616c6c65720000002454726561737572657200010024506f6f6c41646d696e0002004c5265666572656e64756d43616e63656c6c6572000300405265666572656e64756d4b696c6c657200040000cd01084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000d1010c7870616c6c65745f6c69717569646974795f706f6f6c735f67617465776179186f726967696e34476174657761794f726967696e00010418446f6d61696e0400d5010134446f6d61696e4164647265737300000000d5010c246366675f747970657338646f6d61696e5f6164647265737334446f6d61696e416464726573730001082843656e7472696675676504000401205b75383b2033325d0000000c45564d08002c012845564d436861696e49640000810101205b75383b2032305d00010000d9010c2870616c6c65745f78636d1870616c6c6574184f726967696e0001080c58636d0400dd0101204c6f636174696f6e00000020526573706f6e73650400dd0101204c6f636174696f6e00010000dd01102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72e10101244a756e6374696f6e730000e101102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400e50101484172633c5b4a756e6374696f6e3b20315d3e0001000858320400fd0101484172633c5b4a756e6374696f6e3b20325d3e0002000858330400010201484172633c5b4a756e6374696f6e3b20335d3e0003000858340400050201484172633c5b4a756e6374696f6e3b20345d3e0004000858350400090201484172633c5b4a756e6374696f6e3b20355d3e00050008583604000d0201484172633c5b4a756e6374696f6e3b20365d3e0006000858370400110201484172633c5b4a756e6374696f6e3b20375d3e0007000858380400150201484172633c5b4a756e6374696f6e3b20385d3e00080000e50100000301000000e90100e901102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400b101010c7533320000002c4163636f756e744964333208011c6e6574776f726bed0101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bed0101444f7074696f6e3c4e6574776f726b49643e000114696e64657828010c753634000200304163636f756e744b6579323008011c6e6574776f726bed0101444f7074696f6e3c4e6574776f726b49643e00010c6b6579810101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e646578040085010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964f5010118426f6479496400011070617274f9010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400f10101244e6574776f726b496400090000ed0104184f7074696f6e04045401f1010108104e6f6e6500000010536f6d650400f1010000010000f101102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d6265722c010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f696428010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000f501100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040044011c5b75383b20345d00010014496e6465780400b101010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000f901100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74b101010c753332000100204672616374696f6e08010c6e6f6db101010c75333200011464656e6f6db101010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6db101010c75333200011464656e6f6db101010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6db101010c75333200011464656e6f6db101010c75333200040000fd0100000302000000e90100010200000303000000e90100050200000304000000e90100090200000305000000e901000d0200000306000000e90100110200000307000000e90100150200000308000000e9010019020c4863756d756c75735f70616c6c65745f78636d1870616c6c6574184f726967696e0001081452656c6179000000405369626c696e6750617261636861696e04005d010118506172614964000100001d02083c70616c6c65745f657468657265756d245261774f726967696e0001044c457468657265756d5472616e73616374696f6e04002102011048313630000000002102083c7072696d69746976655f7479706573104831363000000400810101205b75383b2032305d00002502081c73705f636f726510566f69640001000029020c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f6469632d0201ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000464536565205b6050616c6c65743a3a7363686564756c65605d2e1863616e63656c0801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001045c536565205b6050616c6c65743a3a63616e63656c605d2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f6469632d0201ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0002047c536565205b6050616c6c65743a3a7363686564756c655f6e616d6564605d2e3063616e63656c5f6e616d656404010869640401205461736b4e616d6500030474536565205b6050616c6c65743a3a63616e63656c5f6e616d6564605d2e387363686564756c655f61667465721001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f6469632d0201ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004047c536565205b6050616c6c65743a3a7363686564756c655f6166746572605d2e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f6469632d0201ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00050494536565205b6050616c6c65743a3a7363686564756c655f6e616d65645f6166746572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d0204184f7074696f6e04045401c00108104e6f6e6500000010536f6d650400c0000001000031020c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d626572739401445665633c543a3a4163636f756e7449643e0001147072696d65110101504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e7400000470536565205b6050616c6c65743a3a7365745f6d656d62657273605d2e1c6578656375746508012070726f706f73616c2501017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64b101010c75333200010460536565205b6050616c6c65743a3a65786563757465605d2e1c70726f706f73650c01247468726573686f6c64b101012c4d656d626572436f756e7400012070726f706f73616c2501017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64b101010c75333200020460536565205b6050616c6c65743a3a70726f706f7365605d2e10766f74650c012070726f706f73616c30011c543a3a48617368000114696e646578b101013450726f706f73616c496e64657800011c617070726f7665780110626f6f6c00030454536565205b6050616c6c65743a3a766f7465605d2e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736830011c543a3a4861736800050490536565205b6050616c6c65743a3a646973617070726f76655f70726f706f73616c605d2e14636c6f736510013470726f706f73616c5f6861736830011c543a3a48617368000114696e646578b101013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642401185765696768740001306c656e6774685f626f756e64b101010c75333200060458536565205b6050616c6c65743a3a636c6f7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35020c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c65741043616c6c04045400011810766f7465080114766f7465739401445665633c543a3a4163636f756e7449643e00011476616c75658501013042616c616e63654f663c543e00000454536565205b6050616c6c65743a3a766f7465605d2e3072656d6f76655f766f74657200010474536565205b6050616c6c65743a3a72656d6f76655f766f746572605d2e407375626d69745f63616e64696461637904013c63616e6469646174655f636f756e74b101010c75333200020484536565205b6050616c6c65743a3a7375626d69745f63616e646964616379605d2e4872656e6f756e63655f63616e64696461637904012872656e6f756e63696e673902012852656e6f756e63696e670003048c536565205b6050616c6c65743a3a72656e6f756e63655f63616e646964616379605d2e3472656d6f76655f6d656d6265720c010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e000128736c6173685f626f6e64780110626f6f6c000138726572756e5f656c656374696f6e780110626f6f6c00040478536565205b6050616c6c65743a3a72656d6f76655f6d656d626572605d2e50636c65616e5f646566756e63745f766f746572730801286e756d5f766f7465727310010c75333200012c6e756d5f646566756e637410010c75333200050494536565205b6050616c6c65743a3a636c65616e5f646566756e63745f766f74657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3902086470616c6c65745f656c656374696f6e735f70687261676d656e2852656e6f756e63696e6700010c184d656d6265720000002052756e6e657255700001002443616e6469646174650400b101010c753332000200003d020c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c04045400014c1c70726f706f736508012070726f706f73616c21010140426f756e64656443616c6c4f663c543e00011476616c75658501013042616c616e63654f663c543e00000460536565205b6050616c6c65743a3a70726f706f7365605d2e187365636f6e6404012070726f706f73616cb101012450726f70496e6465780001045c536565205b6050616c6c65743a3a7365636f6e64605d2e10766f74650801247265665f696e646578b101013c5265666572656e64756d496e646578000110766f7465dc01644163636f756e74566f74653c42616c616e63654f663c543e3e00020454536565205b6050616c6c65743a3a766f7465605d2e40656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e64657800030484536565205b6050616c6c65743a3a656d657267656e63795f63616e63656c605d2e4065787465726e616c5f70726f706f736504012070726f706f73616c21010140426f756e64656443616c6c4f663c543e00040484536565205b6050616c6c65743a3a65787465726e616c5f70726f706f7365605d2e6465787465726e616c5f70726f706f73655f6d616a6f7269747904012070726f706f73616c21010140426f756e64656443616c6c4f663c543e000504a8536565205b6050616c6c65743a3a65787465726e616c5f70726f706f73655f6d616a6f72697479605d2e6065787465726e616c5f70726f706f73655f64656661756c7404012070726f706f73616c21010140426f756e64656443616c6c4f663c543e000604a4536565205b6050616c6c65743a3a65787465726e616c5f70726f706f73655f64656661756c74605d2e28666173745f747261636b0c013470726f706f73616c5f6861736830011c543a3a48617368000134766f74696e675f706572696f64100144426c6f636b4e756d626572466f723c543e00011464656c6179100144426c6f636b4e756d626572466f723c543e0007046c536565205b6050616c6c65743a3a666173745f747261636b605d2e347665746f5f65787465726e616c04013470726f706f73616c5f6861736830011c543a3a4861736800080478536565205b6050616c6c65743a3a7665746f5f65787465726e616c605d2e4463616e63656c5f7265666572656e64756d0401247265665f696e646578b101013c5265666572656e64756d496e64657800090488536565205b6050616c6c65743a3a63616e63656c5f7265666572656e64756d605d2e2064656c65676174650c0108746f790101504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6e41020128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000a0464536565205b6050616c6c65743a3a64656c6567617465605d2e28756e64656c6567617465000b046c536565205b6050616c6c65743a3a756e64656c6567617465605d2e58636c6561725f7075626c69635f70726f706f73616c73000c049c536565205b6050616c6c65743a3a636c6561725f7075626c69635f70726f706f73616c73605d2e18756e6c6f636b040118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e000d045c536565205b6050616c6c65743a3a756e6c6f636b605d2e2c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e646578000e0470536565205b6050616c6c65743a3a72656d6f76655f766f7465605d2e4472656d6f76655f6f746865725f766f7465080118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c5265666572656e64756d496e646578000f0488536565205b6050616c6c65743a3a72656d6f76655f6f746865725f766f7465605d2e24626c61636b6c69737408013470726f706f73616c5f6861736830011c543a3a4861736800013c6d617962655f7265665f696e6465784502015c4f7074696f6e3c5265666572656e64756d496e6465783e00100468536565205b6050616c6c65743a3a626c61636b6c697374605d2e3c63616e63656c5f70726f706f73616c04012870726f705f696e646578b101012450726f70496e64657800110480536565205b6050616c6c65743a3a63616e63656c5f70726f706f73616c605d2e307365745f6d657461646174610801146f776e6572e401344d657461646174614f776e65720001286d617962655f686173684902013c4f7074696f6e3c543a3a486173683e00120474536565205b6050616c6c65743a3a7365745f6d65746164617461605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41020c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000450204184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000490204184f7074696f6e04045401300108104e6f6e6500000010536f6d6504003000000100004d020c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c040454000158346164645f72656769737472617204011c6163636f756e74790101504163636f756e7449644c6f6f6b75704f663c543e00000478536565205b6050616c6c65743a3a6164645f726567697374726172605d2e307365745f6964656e74697479040110696e666f5102016c426f783c543a3a4964656e74697479496e666f726d6174696f6e3e00010474536565205b6050616c6c65743a3a7365745f6964656e74697479605d2e207365745f7375627304011073756273e10201645665633c28543a3a4163636f756e7449642c2044617461293e00020464536565205b6050616c6c65743a3a7365745f73756273605d2e38636c6561725f6964656e746974790003047c536565205b6050616c6c65743a3a636c6561725f6964656e74697479605d2e44726571756573745f6a756467656d656e740801247265675f696e646578b1010138526567697374726172496e64657800011c6d61785f6665658501013042616c616e63654f663c543e00040488536565205b6050616c6c65743a3a726571756573745f6a756467656d656e74605d2e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005047c536565205b6050616c6c65743a3a63616e63656c5f72657175657374605d2e1c7365745f666565080114696e646578b1010138526567697374726172496e64657800010c6665658501013042616c616e63654f663c543e00060460536565205b6050616c6c65743a3a7365745f666565605d2e387365745f6163636f756e745f6964080114696e646578b1010138526567697374726172496e64657800010c6e6577790101504163636f756e7449644c6f6f6b75704f663c543e0007047c536565205b6050616c6c65743a3a7365745f6163636f756e745f6964605d2e287365745f6669656c6473080114696e646578b1010138526567697374726172496e6465780001186669656c64732c0129013c543a3a4964656e74697479496e666f726d6174696f6e206173204964656e74697479496e666f726d6174696f6e50726f76696465723e3a3a0a4669656c64734964656e7469666965720008046c536565205b6050616c6c65743a3a7365745f6669656c6473605d2e4470726f766964655f6a756467656d656e741001247265675f696e646578b1010138526567697374726172496e646578000118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e0001246a756467656d656e74e902015c4a756467656d656e743c42616c616e63654f663c543e3e0001206964656e7469747930011c543a3a4861736800090488536565205b6050616c6c65743a3a70726f766964655f6a756467656d656e74605d2e346b696c6c5f6964656e74697479040118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e000a0478536565205b6050616c6c65743a3a6b696c6c5f6964656e74697479605d2e1c6164645f73756208010c737562790101504163636f756e7449644c6f6f6b75704f663c543e000110646174615d02011044617461000b0460536565205b6050616c6c65743a3a6164645f737562605d2e2872656e616d655f73756208010c737562790101504163636f756e7449644c6f6f6b75704f663c543e000110646174615d02011044617461000c046c536565205b6050616c6c65743a3a72656e616d655f737562605d2e2872656d6f76655f73756204010c737562790101504163636f756e7449644c6f6f6b75704f663c543e000d046c536565205b6050616c6c65743a3a72656d6f76655f737562605d2e20717569745f737562000e0464536565205b6050616c6c65743a3a717569745f737562605d2e586164645f757365726e616d655f617574686f726974790c0124617574686f72697479790101504163636f756e7449644c6f6f6b75704f663c543e00011873756666697834011c5665633c75383e000128616c6c6f636174696f6e10010c753332000f049c536565205b6050616c6c65743a3a6164645f757365726e616d655f617574686f72697479605d2e6472656d6f76655f757365726e616d655f617574686f72697479040124617574686f72697479790101504163636f756e7449644c6f6f6b75704f663c543e001004a8536565205b6050616c6c65743a3a72656d6f76655f757365726e616d655f617574686f72697479605d2e407365745f757365726e616d655f666f720c010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e000120757365726e616d6534011c5665633c75383e0001247369676e6174757265ed0201704f7074696f6e3c543a3a4f6666636861696e5369676e61747572653e00110484536565205b6050616c6c65743a3a7365745f757365726e616d655f666f72605d2e3c6163636570745f757365726e616d65040120757365726e616d65ec012c557365726e616d653c543e00120480536565205b6050616c6c65743a3a6163636570745f757365726e616d65605d2e5c72656d6f76655f657870697265645f617070726f76616c040120757365726e616d65ec012c557365726e616d653c543e001304a0536565205b6050616c6c65743a3a72656d6f76655f657870697265645f617070726f76616c605d2e507365745f7072696d6172795f757365726e616d65040120757365726e616d65ec012c557365726e616d653c543e00140494536565205b6050616c6c65743a3a7365745f7072696d6172795f757365726e616d65605d2e6072656d6f76655f64616e676c696e675f757365726e616d65040120757365726e616d65ec012c557365726e616d653c543e001504a4536565205b6050616c6c65743a3a72656d6f76655f64616e676c696e675f757365726e616d65605d2e04704964656e746974792070616c6c6574206465636c61726174696f6e2e51020c3c70616c6c65745f6964656e74697479186c6567616379304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616c55020190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c61795d020110446174610001146c6567616c5d0201104461746100010c7765625d0201104461746100011072696f745d02011044617461000114656d61696c5d0201104461746100013c7067705f66696e6765727072696e74dd0201404f7074696f6e3c5b75383b2032305d3e000114696d6167655d0201104461746100011c747769747465725d02011044617461000055020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015902045300000400d90201185665633c543e00005902000004085d025d02005d020c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e65000000105261773004006102000001001052617731040065020000020010526177320400690200000300105261773304006d0200000400105261773404004400000500105261773504007102000006001052617736040075020000070010526177370400790200000800105261773804007d020000090010526177390400810200000a001452617731300400850200000b001452617731310400890200000c0014526177313204008d0200000d001452617731330400910200000e001452617731340400950200000f00145261773135040099020000100014526177313604009d02000011001452617731370400a102000012001452617731380400a502000013001452617731390400a9020000140014526177323004008101000015001452617732310400ad02000016001452617732320400b102000017001452617732330400b502000018001452617732340400b902000019001452617732350400bd0200001a001452617732360400c10200001b001452617732370400c50200001c001452617732380400c90200001d001452617732390400cd0200001e001452617733300400d10200001f001452617733310400d50200002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c536861546872656532353604000400002500006102000003000000000800650200000301000000080069020000030200000008006d020000030300000008007102000003050000000800750200000306000000080079020000030700000008007d02000003080000000800810200000309000000080085020000030a000000080089020000030b00000008008d020000030c000000080091020000030d000000080095020000030e000000080099020000030f00000008009d02000003100000000800a102000003110000000800a502000003120000000800a902000003130000000800ad02000003150000000800b102000003160000000800b502000003170000000800b902000003180000000800bd02000003190000000800c1020000031a0000000800c5020000031b0000000800c9020000031c0000000800cd020000031d0000000800d1020000031e0000000800d5020000031f0000000800d902000002590200dd0204184f7074696f6e0404540181010108104e6f6e6500000010536f6d65040081010000010000e102000002e50200e50200000408005d0200e9020c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f757300060000ed0204184f7074696f6e04045401f1020108104e6f6e6500000010536f6d650400f1020000010000f102082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400f5020148656432353531393a3a5369676e61747572650000001c537232353531390400fd020148737232353531393a3a5369676e617475726500010014456364736104000103014065636473613a3a5369676e617475726500020000f5020c1c73705f636f72651c65643235353139245369676e617475726500000400f90201205b75383b2036345d0000f902000003400000000800fd020c1c73705f636f72651c73723235353139245369676e617475726500000400f90201205b75383b2036345d000001030c1c73705f636f7265146563647361245369676e6174757265000004000503017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d0000050300000341000000080009030c3870616c6c65745f76657374696e671870616c6c65741043616c6c040454000118107665737400000454536565205b6050616c6c65743a3a76657374605d2e28766573745f6f74686572040118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e0001046c536565205b6050616c6c65743a3a766573745f6f74686572605d2e3c7665737465645f7472616e73666572080118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c650d0301b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00020480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e54666f7263655f7665737465645f7472616e736665720c0118736f75726365790101504163636f756e7449644c6f6f6b75704f663c543e000118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c650d0301b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00030498536565205b6050616c6c65743a3a666f7263655f7665737465645f7472616e73666572605d2e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c75333200040480536565205b6050616c6c65743a3a6d657267655f7363686564756c6573605d2e74666f7263655f72656d6f76655f76657374696e675f7363686564756c650801187461726765747901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001387363686564756c655f696e64657810010c753332000504b8536565205b6050616c6c65743a3a666f7263655f72656d6f76655f76657374696e675f7363686564756c65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d030c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d626572000011030c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001243470726f706f73655f7370656e6408011476616c75658501013c42616c616e63654f663c542c20493e00012c62656e6566696369617279790101504163636f756e7449644c6f6f6b75704f663c543e00000478536565205b6050616c6c65743a3a70726f706f73655f7370656e64605d2e3c72656a6563745f70726f706f73616c04012c70726f706f73616c5f6964b101013450726f706f73616c496e64657800010480536565205b6050616c6c65743a3a72656a6563745f70726f706f73616c605d2e40617070726f76655f70726f706f73616c04012c70726f706f73616c5f6964b101013450726f706f73616c496e64657800020484536565205b6050616c6c65743a3a617070726f76655f70726f706f73616c605d2e2c7370656e645f6c6f63616c080118616d6f756e748501013c42616c616e63654f663c542c20493e00012c62656e6566696369617279790101504163636f756e7449644c6f6f6b75704f663c543e00030470536565205b6050616c6c65743a3a7370656e645f6c6f63616c605d2e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f6964b101013450726f706f73616c496e64657800040480536565205b6050616c6c65743a3a72656d6f76655f617070726f76616c605d2e147370656e6410012861737365745f6b696e64a80144426f783c543a3a41737365744b696e643e000118616d6f756e7485010150417373657442616c616e63654f663c542c20493e00012c62656e6566696369617279000178426f783c42656e65666963696172794c6f6f6b75704f663c542c20493e3e00012876616c69645f66726f6d450201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00050458536565205b6050616c6c65743a3a7370656e64605d2e187061796f7574040114696e6465781001285370656e64496e6465780006045c536565205b6050616c6c65743a3a7061796f7574605d2e30636865636b5f737461747573040114696e6465781001285370656e64496e64657800070474536565205b6050616c6c65743a3a636865636b5f737461747573605d2e28766f69645f7370656e64040114696e6465781001285370656e64496e6465780008046c536565205b6050616c6c65743a3a766f69645f7370656e64605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e15030c3870616c6c65745f756e69717565731870616c6c65741043616c6c08045400044900016818637265617465080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400011461646d696e790101504163636f756e7449644c6f6f6b75704f663c543e0000045c536565205b6050616c6c65743a3a637265617465605d2e30666f7263655f6372656174650c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001146f776e6572790101504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67780110626f6f6c00010474536565205b6050616c6c65743a3a666f7263655f637265617465605d2e1c64657374726f79080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400011c7769746e6573731903013844657374726f795769746e65737300020460536565205b6050616c6c65743a3a64657374726f79605d2e106d696e740c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001146f776e6572790101504163636f756e7449644c6f6f6b75704f663c543e00030454536565205b6050616c6c65743a3a6d696e74605d2e106275726e0c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d496400012c636865636b5f6f776e65721d0301704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00040454536565205b6050616c6c65743a3a6275726e605d2e207472616e736665720c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d496400011064657374790101504163636f756e7449644c6f6f6b75704f663c543e00050464536565205b6050616c6c65743a3a7472616e73666572605d2e2472656465706f736974080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001146974656d73050101385665633c543a3a4974656d49643e00060468536565205b6050616c6c65743a3a72656465706f736974605d2e18667265657a65080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640007045c536565205b6050616c6c65743a3a667265657a65605d2e1074686177080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d496400080454536565205b6050616c6c65743a3a74686177605d2e44667265657a655f636f6c6c656374696f6e040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e496400090488536565205b6050616c6c65743a3a667265657a655f636f6c6c656374696f6e605d2e3c746861775f636f6c6c656374696f6e040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e4964000a0480536565205b6050616c6c65743a3a746861775f636f6c6c656374696f6e605d2e487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572790101504163636f756e7449644c6f6f6b75704f663c543e000b048c536565205b6050616c6c65743a3a7472616e736665725f6f776e657273686970605d2e207365745f7465616d100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e4964000118697373756572790101504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e790101504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572790101504163636f756e7449644c6f6f6b75704f663c543e000c0464536565205b6050616c6c65743a3a7365745f7465616d605d2e40617070726f76655f7472616e736665720c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d496400012064656c6567617465790101504163636f756e7449644c6f6f6b75704f663c543e000d0484536565205b6050616c6c65743a3a617070726f76655f7472616e73666572605d2e3c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001506d617962655f636865636b5f64656c65676174651d0301704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000e0480536565205b6050616c6c65743a3a63616e63656c5f617070726f76616c605d2e44666f7263655f6974656d5f7374617475731c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001146f776e6572790101504163636f756e7449644c6f6f6b75704f663c543e000118697373756572790101504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e790101504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572790101504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67780110626f6f6c00012469735f66726f7a656e780110626f6f6c000f0488536565205b6050616c6c65743a3a666f7263655f6974656d5f737461747573605d2e347365745f617474726962757465100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d090101444f7074696f6e3c543a3a4974656d49643e00010c6b65790101016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756501010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e00100478536565205b6050616c6c65743a3a7365745f617474726962757465605d2e3c636c6561725f6174747269627574650c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d090101444f7074696f6e3c543a3a4974656d49643e00010c6b65790101016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00110480536565205b6050616c6c65743a3a636c6561725f617474726962757465605d2e307365745f6d65746164617461100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001106461746101010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e780110626f6f6c00120474536565205b6050616c6c65743a3a7365745f6d65746164617461605d2e38636c6561725f6d65746164617461080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640013047c536565205b6050616c6c65743a3a636c6561725f6d65746164617461605d2e5c7365745f636f6c6c656374696f6e5f6d657461646174610c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106461746101010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e780110626f6f6c001404a0536565205b6050616c6c65743a3a7365745f636f6c6c656374696f6e5f6d65746164617461605d2e64636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e4964001504a8536565205b6050616c6c65743a3a636c6561725f636f6c6c656374696f6e5f6d65746164617461605d2e507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e0d01015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e00160494536565205b6050616c6c65743a3a7365745f6163636570745f6f776e657273686970605d2e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001704a8536565205b6050616c6c65743a3a7365745f636f6c6c656374696f6e5f6d61785f737570706c79605d2e247365745f7072696365100128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d496400011470726963652103015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f62757965721d0301704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00180468536565205b6050616c6c65743a3a7365745f7072696365605d2e206275795f6974656d0c0128636f6c6c656374696f6e2c013c543a3a436f6c6c656374696f6e49640001106974656dfc0124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e00190464536565205b6050616c6c65743a3a6275795f6974656d605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e19030c3870616c6c65745f756e69717565731474797065733844657374726f795769746e65737300000c01146974656d73b101010c7533320001386974656d5f6d6574616461746173b101010c75333200012861747472696275746573b101010c75333200001d0304184f7074696f6e0404540179010108104e6f6e6500000010536f6d65040079010000010000210304184f7074696f6e04045401180108104e6f6e6500000010536f6d65040018000001000025030c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000114346e6f74655f707265696d616765040114627974657334011c5665633c75383e00000478536565205b6050616c6c65743a3a6e6f74655f707265696d616765605d2e3c756e6e6f74655f707265696d6167650401106861736830011c543a3a4861736800010480536565205b6050616c6c65743a3a756e6e6f74655f707265696d616765605d2e40726571756573745f707265696d6167650401106861736830011c543a3a4861736800020484536565205b6050616c6c65743a3a726571756573745f707265696d616765605d2e48756e726571756573745f707265696d6167650401106861736830011c543a3a486173680003048c536565205b6050616c6c65743a3a756e726571756573745f707265696d616765605d2e38656e737572655f75706461746564040118686173686573290301305665633c543a3a486173683e0004047c536565205b6050616c6c65743a3a656e737572655f75706461746564605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e290300000230002d030c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c65741043616c6c08045400044900011810766f7465080128706f6c6c5f696e646578b1010144506f6c6c496e6465784f663c542c20493e000110766f7465310301704163636f756e74566f74653c42616c616e63654f663c542c20493e3e00000454536565205b6050616c6c65743a3a766f7465605d2e2064656c6567617465100114636c617373b40134436c6173734f663c542c20493e000108746f790101504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6e39030128436f6e76696374696f6e00011c62616c616e636518013c42616c616e63654f663c542c20493e00010464536565205b6050616c6c65743a3a64656c6567617465605d2e28756e64656c6567617465040114636c617373b40134436c6173734f663c542c20493e0002046c536565205b6050616c6c65743a3a756e64656c6567617465605d2e18756e6c6f636b080114636c617373b40134436c6173734f663c542c20493e000118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e0003045c536565205b6050616c6c65743a3a756e6c6f636b605d2e2c72656d6f76655f766f7465080114636c6173733d0301544f7074696f6e3c436c6173734f663c542c20493e3e000114696e646578100144506f6c6c496e6465784f663c542c20493e00040470536565205b6050616c6c65743a3a72656d6f76655f766f7465605d2e4472656d6f76655f6f746865725f766f74650c0118746172676574790101504163636f756e7449644c6f6f6b75704f663c543e000114636c617373b40134436c6173734f663c542c20493e000114696e646578100144506f6c6c496e6465784f663c542c20493e00050488536565205b6050616c6c65743a3a72656d6f76655f6f746865725f766f7465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31030c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652c4163636f756e74566f7465041c42616c616e63650118010c205374616e64617264080110766f746535030110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001003053706c69744162737461696e0c010c61796518011c42616c616e636500010c6e617918011c42616c616e636500011c6162737461696e18011c42616c616e63650002000035030c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746510566f7465000004000800000039030c6070616c6c65745f636f6e76696374696f6e5f766f74696e6728636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b65643678000600003d0304184f7074696f6e04045401b40108104e6f6e6500000010536f6d650400b4000001000041030c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696ebd01015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c2101014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e744503017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e0000045c536565205b6050616c6c65743a3a7375626d6974605d2e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e6465780001049c536565205b6050616c6c65743a3a706c6163655f6465636973696f6e5f6465706f736974605d2e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000204a0536565205b6050616c6c65743a3a726566756e645f6465636973696f6e5f6465706f736974605d2e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003045c536565205b6050616c6c65743a3a63616e63656c605d2e106b696c6c040114696e64657810013c5265666572656e64756d496e64657800040454536565205b6050616c6c65743a3a6b696c6c605d2e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e64657800050484536565205b6050616c6c65743a3a6e756467655f7265666572656e64756d605d2e486f6e655f66657765725f6465636964696e67040114747261636bb4013c547261636b49644f663c542c20493e0006048c536565205b6050616c6c65743a3a6f6e655f66657765725f6465636964696e67605d2e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000704a8536565205b6050616c6c65743a3a726566756e645f7375626d697373696f6e5f6465706f736974605d2e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f686173684902013c4f7074696f6e3c543a3a486173683e00080474536565205b6050616c6c65743a3a7365745f6d65746164617461605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e450310346672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d6265720001000049030c4070616c6c65745f77686974656c6973741870616c6c65741043616c6c0404540001103877686974656c6973745f63616c6c04012463616c6c5f6861736830011c543a3a486173680000047c536565205b6050616c6c65743a3a77686974656c6973745f63616c6c605d2e5c72656d6f76655f77686974656c69737465645f63616c6c04012463616c6c5f6861736830011c543a3a48617368000104a0536565205b6050616c6c65743a3a72656d6f76655f77686974656c69737465645f63616c6c605d2e6464697370617463685f77686974656c69737465645f63616c6c0c012463616c6c5f6861736830011c543a3a4861736800014063616c6c5f656e636f6465645f6c656e10010c75333200014c63616c6c5f7765696768745f7769746e657373240118576569676874000204a8536565205b6050616c6c65743a3a64697370617463685f77686974656c69737465645f63616c6c605d2e9c64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d61676504011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000304e0536565205b6050616c6c65743a3a64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d616765605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d030c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d626572739401445665633c543a3a4163636f756e7449643e0001147072696d65110101504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e7400000470536565205b6050616c6c65743a3a7365745f6d656d62657273605d2e1c6578656375746508012070726f706f73616c2501017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64b101010c75333200010460536565205b6050616c6c65743a3a65786563757465605d2e1c70726f706f73650c01247468726573686f6c64b101012c4d656d626572436f756e7400012070726f706f73616c2501017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e64b101010c75333200020460536565205b6050616c6c65743a3a70726f706f7365605d2e10766f74650c012070726f706f73616c30011c543a3a48617368000114696e646578b101013450726f706f73616c496e64657800011c617070726f7665780110626f6f6c00030454536565205b6050616c6c65743a3a766f7465605d2e4c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736830011c543a3a4861736800050490536565205b6050616c6c65743a3a646973617070726f76655f70726f706f73616c605d2e14636c6f736510013470726f706f73616c5f6861736830011c543a3a48617368000114696e646578b101013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642401185765696768740001306c656e6774685f626f756e64b101010c75333200060458536565205b6050616c6c65743a3a636c6f7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e51030c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e0000046c536565205b6050616c6c65743a3a6164645f6d656d626572605d2e3472656d6f76655f6d656d62657204010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e00010478536565205b6050616c6c65743a3a72656d6f76655f6d656d626572605d2e2c737761705f6d656d62657208011872656d6f7665790101504163636f756e7449644c6f6f6b75704f663c543e00010c616464790101504163636f756e7449644c6f6f6b75704f663c543e00020470536565205b6050616c6c65743a3a737761705f6d656d626572605d2e3472657365745f6d656d6265727304011c6d656d626572739401445665633c543a3a4163636f756e7449643e00030478536565205b6050616c6c65743a3a72657365745f6d656d62657273605d2e286368616e67655f6b657904010c6e6577790101504163636f756e7449644c6f6f6b75704f663c543e0004046c536565205b6050616c6c65743a3a6368616e67655f6b6579605d2e247365745f7072696d6504010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e00050468536565205b6050616c6c65743a3a7365745f7072696d65605d2e2c636c6561725f7072696d6500060470536565205b6050616c6c65743a3a636c6561725f7072696d65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55030c2c70616c6c65745f666565731870616c6c65741043616c6c0404540001041c7365745f66656508010c6b657959030124543a3a4665654b657900010c66656518013042616c616e63654f663c543e00000460536565205b6050616c6c65743a3a7365745f666565605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e59030c246366675f7479706573206665655f6b657973184665654b657900011834416e63686f7273436f6d6d697400000040416e63686f7273507265436f6d6d6974000100504272696467654e61746976655472616e73666572000200484e667450726f6f6656616c69646174696f6e00030044416c6c6f77616e63654372656174696f6e000400584f72646572426f6f6b4f726465724372656174696f6e000500005d030c3870616c6c65745f616e63686f72731870616c6c65741043616c6c040454000110287072655f636f6d6d6974080124616e63686f725f696430011c543a3a486173680001307369676e696e675f726f6f7430011c543a3a486173680000046c536565205b6050616c6c65743a3a7072655f636f6d6d6974605d2e18636f6d6d6974100148616e63686f725f69645f707265696d61676530011c543a3a48617368000120646f635f726f6f7430011c543a3a4861736800011470726f6f6630011c543a3a4861736800014473746f7265645f756e74696c5f646174652c0124543a3a4d6f6d656e740001045c536565205b6050616c6c65743a3a636f6d6d6974605d2e4465766963745f7072655f636f6d6d697473040128616e63686f725f696473610301e4426f756e6465645665633c543a3a486173682c20436f6e73745533323c45564943545f5052455f434f4d4d49545f4c4953545f53495a453e3e00020488536565205b6050616c6c65743a3a65766963745f7072655f636f6d6d697473605d2e3465766963745f616e63686f727300030478536565205b6050616c6c65743a3a65766963745f616e63686f7273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e61030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540130045300000400290301185665633c543e000065030c4870616c6c65745f706f6f6c5f73797374656d1870616c6c65741043616c6c0404540001103c7365745f6d61785f7265736572766508011c706f6f6c5f69642c0124543a3a506f6f6c496400012c6d61785f72657365727665180128543a3a42616c616e636500000480536565205b6050616c6c65743a3a7365745f6d61785f72657365727665605d2e2c636c6f73655f65706f636804011c706f6f6c5f69642c0124543a3a506f6f6c496400010470536565205b6050616c6c65743a3a636c6f73655f65706f6368605d2e3c7375626d69745f736f6c7574696f6e08011c706f6f6c5f69642c0124543a3a506f6f6c4964000120736f6c7574696f6e690301505665633c5472616e636865536f6c7574696f6e3e00020480536565205b6050616c6c65743a3a7375626d69745f736f6c7574696f6e605d2e34657865637574655f65706f636804011c706f6f6c5f69642c0124543a3a506f6f6c496400030478536565205b6050616c6c65743a3a657865637574655f65706f6368605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030000026d03006d030c4870616c6c65745f706f6f6c5f73797374656d207472616e636865733c5472616e636865536f6c7574696f6e0000080148696e766573745f66756c66696c6c6d656e747103012c5065727175696e74696c6c00014872656465656d5f66756c66696c6c6d656e747103012c5065727175696e74696c6c000071030c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c000004002c010c753634000075030c3070616c6c65745f6c6f616e731870616c6c65741043616c6c04045400013c1863726561746508011c706f6f6c5f69642c0124543a3a506f6f6c4964000110696e666f7903012c4c6f616e496e666f3c543e0000045c536565205b6050616c6c65743a3a637265617465605d2e18626f72726f770c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74d90301445072696e636970616c496e7075743c543e0001045c536565205b6050616c6c65743a3a626f72726f77605d2e1472657061790c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74e1030138526570616964496e7075743c543e00020458536565205b6050616c6c65743a3a7265706179605d2e2477726974655f6f666608011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e496400030468536565205b6050616c6c65743a3a77726974655f6f6666605d2e3c61646d696e5f77726974655f6f666610011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e496400012870657263656e746167659503011c543a3a5261746500011c70656e616c74799503011c543a3a5261746500040480536565205b6050616c6c65743a3a61646d696e5f77726974655f6f6666605d2e5470726f706f73655f6c6f616e5f6d75746174696f6e0c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e49640001206d75746174696f6ee50301544c6f616e4d75746174696f6e3c543a3a526174653e00050498536565205b6050616c6c65743a3a70726f706f73655f6c6f616e5f6d75746174696f6e605d2e4c6170706c795f6c6f616e5f6d75746174696f6e08011c706f6f6c5f69642c0124543a3a506f6f6c49640001246368616e67655f696430011c543a3a4861736800060490536565205b6050616c6c65743a3a6170706c795f6c6f616e5f6d75746174696f6e605d2e14636c6f736508011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e496400070458536565205b6050616c6c65743a3a636c6f7365605d2e6070726f706f73655f77726974655f6f66665f706f6c69637908011c706f6f6c5f69642c0124543a3a506f6f6c4964000118706f6c696379ed0301ec426f756e6465645665633c57726974654f666652756c653c543a3a526174653e2c20543a3a4d617857726974654f6666506f6c69637953697a653e000804a4536565205b6050616c6c65743a3a70726f706f73655f77726974655f6f66665f706f6c696379605d2e586170706c795f77726974655f6f66665f706f6c69637908011c706f6f6c5f69642c0124543a3a506f6f6c49640001246368616e67655f696430011c543a3a486173680009049c536565205b6050616c6c65743a3a6170706c795f77726974655f6f66665f706f6c696379605d2e687570646174655f706f7274666f6c696f5f76616c756174696f6e04011c706f6f6c5f69642c0124543a3a506f6f6c4964000a04ac536565205b6050616c6c65743a3a7570646174655f706f7274666f6c696f5f76616c756174696f6e605d2e5470726f706f73655f7472616e736665725f6465627414011c706f6f6c5f69642c0124543a3a506f6f6c496400013066726f6d5f6c6f616e5f69642c0124543a3a4c6f616e4964000128746f5f6c6f616e5f69642c0124543a3a4c6f616e49640001347265706169645f616d6f756e74e1030138526570616964496e7075743c543e000134626f72726f775f616d6f756e74d90301445072696e636970616c496e7075743c543e000b0498536565205b6050616c6c65743a3a70726f706f73655f7472616e736665725f64656274605d2e4c6170706c795f7472616e736665725f6465627408011c706f6f6c5f69642c0124543a3a506f6f6c49640001246368616e67655f696430011c543a3a48617368000c0490536565205b6050616c6c65743a3a6170706c795f7472616e736665725f64656274605d2e34696e6372656173655f646562740c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74d90301445072696e636970616c496e7075743c543e000d0478536565205b6050616c6c65743a3a696e6372656173655f64656274605d2e3464656372656173655f646562740c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74e1030138526570616964496e7075743c543e000e0478536565205b6050616c6c65743a3a64656372656173655f64656274605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7903103070616c6c65745f6c6f616e7320656e746974696573146c6f616e73204c6f616e496e666f04045400001401207363686564756c657d03014452657061796d656e745363686564756c65000128636f6c6c61746572616c8d03012841737365744f663c543e000134696e7465726573745f7261746591030154496e746572657374526174653c543a3a526174653e00011c70726963696e679d03012850726963696e673c543e0001307265737472696374696f6e73cd0301404c6f616e5265737472696374696f6e7300007d03103070616c6c65745f6c6f616e731474797065732063617368666c6f774452657061796d656e745363686564756c6500000c01206d61747572697479810301204d61747572697479000144696e7465726573745f7061796d656e747385030140496e7465726573745061796d656e74730001447061795f646f776e5f7363686564756c658903013c506179446f776e5363686564756c6500008103103070616c6c65745f6c6f616e731474797065732063617368666c6f77204d61747572697479000108144669786564080110646174652c011c5365636f6e6473000124657874656e73696f6e2c011c5365636f6e6473000000104e6f6e65000100008503103070616c6c65745f6c6f616e731474797065732063617368666c6f7740496e7465726573745061796d656e7473000104384f6e636541744d61747572697479000000008903103070616c6c65745f6c6f616e731474797065732063617368666c6f773c506179446f776e5363686564756c65000104104e6f6e65000000008d03000004082cfc0091030c286366675f74726169747320696e74657265737430496e746572657374526174650410526174650195030104144669786564080134726174655f7065725f79656172950301105261746500012c636f6d706f756e64696e679903014c436f6d706f756e64696e675363686564756c650000000095030c246366675f74797065732c66697865645f706f696e74244669786564553132380000040018011075313238000099030c286366675f74726169747320696e7465726573744c436f6d706f756e64696e675363686564756c65000104205365636f6e646c79000000009d03103070616c6c65745f6c6f616e7320656e7469746965731c70726963696e671c50726963696e6704045400010820496e7465726e616c0400a1030170696e7465726e616c3a3a496e7465726e616c50726963696e673c543e0000002045787465726e616c0400b103017065787465726e616c3a3a45787465726e616c50726963696e673c543e00010000a103143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e6720696e7465726e616c3c496e7465726e616c50726963696e6704045400000c0140636f6c6c61746572616c5f76616c7565180128543a3a42616c616e636500014076616c756174696f6e5f6d6574686f64a503016056616c756174696f6e4d6574686f643c543a3a526174653e0001446d61785f626f72726f775f616d6f756e74ad0301604d6178426f72726f77416d6f756e743c543a3a526174653e0000a503103070616c6c65745f6c6f616e731474797065732476616c756174696f6e3c56616c756174696f6e4d6574686f64041052617465019503010c48446973636f756e74656443617368466c6f770400a9030160446973636f756e74656443617368466c6f773c526174653e0000003c4f75747374616e64696e6744656274000100104361736800020000a903103070616c6c65745f6c6f616e731474797065732476616c756174696f6e48446973636f756e74656443617368466c6f77041052617465019503000c015870726f626162696c6974795f6f665f64656661756c7495030110526174650001486c6f73735f676976656e5f64656661756c749503011052617465000134646973636f756e745f7261746591030148496e746572657374526174653c526174653e0000ad03143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e6720696e7465726e616c3c4d6178426f72726f77416d6f756e740410526174650195030108445570546f546f74616c426f72726f776564040130616476616e63655f7261746595030110526174650000004c5570546f4f75747374616e64696e6744656274040130616476616e63655f72617465950301105261746500010000b103143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e672065787465726e616c3c45787465726e616c50726963696e67040454000014012070726963655f6964b5030128543a3a507269636549640001446d61785f626f72726f775f616d6f756e74c50301704d6178426f72726f77416d6f756e743c543a3a5175616e746974793e0001206e6f74696f6e616c180128543a3a42616c616e636500014c6d61785f70726963655f766172696174696f6e9503011c543a3a5261746500014c776974685f6c696e6561725f70726963696e67780110626f6f6c0000b5030c246366675f74797065731c6f7261636c6573244f7261636c654b657900010c104973696e04008d0201104973696e0000003c436f6e76657273696f6e526174696f0800b903012843757272656e637949640000b903012843757272656e6379496400010028506f6f6c4c6f616e496408002c0118506f6f6c496400002c01184c6f616e496400020000b9030c246366675f747970657318746f6b656e732843757272656e63794964000118184e61746976650000001c5472616e63686508002c0118506f6f6c496400009d0201245472616e6368654964000100104155534400030030466f726569676e41737365740400100138466f726569676e417373657449640004001c5374616b696e670400bd03013c5374616b696e6743757272656e6379000500284c6f63616c41737365740400c10301304c6f63616c4173736574496400060000bd030c246366675f747970657318746f6b656e733c5374616b696e6743757272656e637900010430426c6f636b5265776172647300000000c1030c246366675f747970657318746f6b656e73304c6f63616c417373657449640000040010010c7533320000c503143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e672065787465726e616c3c4d6178426f72726f77416d6f756e7404205175616e7469747901c90301081c4e6f4c696d6974000000205175616e746974790400c90301205175616e7469747900010000c9030c246366675f74797065732c66697865645f706f696e742446697865645531323800000400180110753132380000cd030c3070616c6c65745f6c6f616e73147479706573404c6f616e5265737472696374696f6e73000008011c626f72726f7773d1030148426f72726f775265737472696374696f6e7300012872657061796d656e7473d503014452657061795265737472696374696f6e730000d1030c3070616c6c65745f6c6f616e7314747970657348426f72726f775265737472696374696f6e7300010c344e6f745772697474656e4f66660000002046756c6c4f6e63650001004c4f7261636c655072696365526571756972656400020000d5030c3070616c6c65745f6c6f616e731474797065734452657061795265737472696374696f6e73000108104e6f6e650000001046756c6c00010000d903103070616c6c65745f6c6f616e7320656e74697469657314696e707574385072696e636970616c496e70757404045400010820496e7465726e616c0400180128543a3a42616c616e63650000002045787465726e616c0400dd03014445787465726e616c416d6f756e743c543e00010000dd03143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e672065787465726e616c3845787465726e616c416d6f756e7404045400000801207175616e74697479c903012c543a3a5175616e74697479000140736574746c656d656e745f7072696365180128543a3a42616c616e63650000e103103070616c6c65745f6c6f616e7320656e74697469657314696e7075742c526570616964496e70757404045400000c01247072696e636970616cd90301445072696e636970616c496e7075743c543e000120696e746572657374180128543a3a42616c616e636500012c756e7363686564756c6564180128543a3a42616c616e63650000e503103070616c6c65745f6c6f616e7320656e7469746965731c6368616e676573304c6f616e4d75746174696f6e0410526174650195030118204d617475726974790400810301204d61747572697479000000444d61747572697479457874656e73696f6e04002c011c5365636f6e647300010030496e74657265737452617465040091030148496e746572657374526174653c526174653e00020040496e7465726573745061796d656e7473040085030140496e7465726573745061796d656e74730003003c506179446f776e5363686564756c6504008903013c506179446f776e5363686564756c6500040020496e7465726e616c0400e9030158496e7465726e616c4d75746174696f6e3c526174653e00050000e903103070616c6c65745f6c6f616e7320656e7469746965731c6368616e67657340496e7465726e616c4d75746174696f6e04105261746501950301103c56616c756174696f6e4d6574686f640400a503015456616c756174696f6e4d6574686f643c526174653e0000005050726f626162696c6974794f6644656661756c7404009503011052617465000100404c6f7373476976656e44656661756c740400950301105261746500020030446973636f756e7452617465040091030148496e746572657374526174653c526174653e00030000ed030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f1030453000004000d0401185665633c543e0000f103103070616c6c65745f6c6f616e7314747970657318706f6c6963793057726974654f666652756c65041052617465019503000801207472696767657273f50301cc426f756e64656442547265655365743c556e6971756557726974654f6666547269676765722c205472696767657253697a653e0001187374617475730904015057726974654f66665374617475733c526174653e0000f5030c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401f9030453000004000104012c42547265655365743c543e0000f903103070616c6c65745f6c6f616e7314747970657318706f6c69637954556e6971756557726974654f66665472696767657200000400fd03013c57726974654f6666547269676765720000fd03103070616c6c65745f6c6f616e7314747970657318706f6c6963793c57726974654f666654726967676572000108405072696e636970616c4f76657264756504002c011c5365636f6e64730000003450726963654f7574646174656404002c011c5365636f6e64730001000001040420425472656553657404045401f90300040005040000000504000002f903000904103070616c6c65745f6c6f616e7314747970657318706f6c6963793857726974654f66665374617475730410526174650195030008012870657263656e74616765950301105261746500011c70656e616c7479950301105261746500000d04000002f1030011040c4870616c6c65745f7065726d697373696f6e731870616c6c65741043616c6c0404540001100c616464100124776974685f726f6c651504011c543a3a526f6c65000108746f000130543a3a4163636f756e74496400011473636f706521040120543a3a53636f7065000110726f6c651504011c543a3a526f6c6500000450536565205b6050616c6c65743a3a616464605d2e1872656d6f7665100124776974685f726f6c651504011c543a3a526f6c6500011066726f6d000130543a3a4163636f756e74496400011473636f706521040120543a3a53636f7065000110726f6c651504011c543a3a526f6c650001045c536565205b6050616c6c65743a3a72656d6f7665605d2e14707572676504011473636f706521040120543a3a53636f706500020458536565205b6050616c6c65743a3a7075726765605d2e2c61646d696e5f707572676508011066726f6d000130543a3a4163636f756e74496400011473636f706521040120543a3a53636f706500030470536565205b6050616c6c65743a3a61646d696e5f7075726765605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e15040c246366675f74797065732c7065726d697373696f6e7310526f6c6504245472616e6368654964019d02010820506f6f6c526f6c6504001904014c506f6f6c526f6c653c5472616e63686549643e000000605065726d697373696f6e656443757272656e6379526f6c6504001d0401605065726d697373696f6e656443757272656e6379526f6c650001000019040c246366675f74797065732c7065726d697373696f6e7320506f6f6c526f6c6504245472616e6368654964019d02012424506f6f6c41646d696e00000020426f72726f7765720001003050726963696e6741646d696e000200384c697175696469747941646d696e00030034496e766573746f7241646d696e000400244c6f616e41646d696e0005003c5472616e636865496e766573746f7208009d0201245472616e636865496400002c011c5365636f6e647300060034504f44526561644163636573730007005446726f7a656e5472616e636865496e766573746f7204009d0201245472616e6368654964000800001d040c246366675f74797065732c7065726d697373696f6e73605065726d697373696f6e656443757272656e6379526f6c6500010c18486f6c64657204002c011c5365636f6e64730000001c4d616e61676572000100184973737565720002000021040c246366675f74797065732c7065726d697373696f6e733c5065726d697373696f6e53636f70650818506f6f6c4964012c2843757272656e6379496401b903010810506f6f6c04002c0118506f6f6c49640000002043757272656e63790400b903012843757272656e637949640001000025040c6470616c6c65745f636f6c6c61746f725f616c6c6f776c6973741870616c6c65741043616c6c0404540001080c61646404012c636f6c6c61746f725f6964000138543a3a56616c696461746f72496400000450536565205b6050616c6c65743a3a616464605d2e1872656d6f766504012c636f6c6c61746f725f6964000138543a3a56616c696461746f7249640001045c536565205b6050616c6c65743a3a72656d6f7665605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29040c6070616c6c65745f726573747269637465645f746f6b656e731870616c6c65741043616c6c040454000114207472616e736665720c0110646573747901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e7485010128543a3a42616c616e636500000464536565205b6050616c6c65743a3a7472616e73666572605d2e307472616e736665725f616c6c0c0110646573747901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286b6565705f616c697665780110626f6f6c00010474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e4c7472616e736665725f6b6565705f616c6976650c0110646573747901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e7485010128543a3a42616c616e636500020490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e38666f7263655f7472616e73666572100118736f757263657901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000110646573747901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e7485010128543a3a42616c616e63650003047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e2c7365745f62616c616e636510010c77686f7901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500012c63757272656e63795f6964b9030134543a3a43757272656e637949640001206e65775f6672656585010128543a3a42616c616e63650001306e65775f726573657276656485010128543a3a42616c616e636500040470536565205b6050616c6c65743a3a7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d040c3470616c6c65745f6272696467651870616c6c65741043616c6c04045400010c3c7472616e736665725f6e61746976650c0118616d6f756e7418013042616c616e63654f663c543e000124726563697069656e7434011c5665633c75383e00011c646573745f696408011c436861696e496400000480536565205b6050616c6c65743a3a7472616e736665725f6e6174697665605d2e207472616e736665720c0108746f0001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000110725f69640401285265736f75726365496400010464536565205b6050616c6c65743a3a7472616e73666572605d2e1872656d61726b080110686173683001843c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a48617368000110725f69640401285265736f7572636549640002045c536565205b6050616c6c65743a3a72656d61726b605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31040c3c70616c6c65745f6b657973746f72651870616c6c65741043616c6c04045400010c206164645f6b6579730401106b657973350401505665633c4164644b65793c543a3a486173683e3e00000464536565205b6050616c6c65743a3a6164645f6b657973605d2e2c7265766f6b655f6b6579730801106b657973290301305665633c543a3a486173683e00012c6b65795f707572706f73653d0401284b6579507572706f736500010470536565205b6050616c6c65743a3a7265766f6b655f6b657973605d2e2c7365745f6465706f73697404012c6e65775f6465706f736974180128543a3a42616c616e636500020470536565205b6050616c6c65743a3a7365745f6465706f736974605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35040000023904003904083c70616c6c65745f6b657973746f7265184164644b65790410486173680130000c010c6b65793001104861736800011c707572706f73653d0401284b6579507572706f73650001206b65795f747970654104011c4b65795479706500003d04083c70616c6c65745f6b657973746f7265284b6579507572706f736500010830503250446973636f7665727900000048503250446f63756d656e745369676e696e67000100004104083c70616c6c65745f6b657973746f72651c4b6579547970650001081445434453410000001445444453410001000045040c4870616c6c65745f696e766573746d656e74731870616c6c65741043616c6c0404540001184c7570646174655f696e766573745f6f72646572080134696e766573746d656e745f69644904013c543a3a496e766573746d656e744964000118616d6f756e74180124543a3a416d6f756e7400000490536565205b6050616c6c65743a3a7570646174655f696e766573745f6f72646572605d2e4c7570646174655f72656465656d5f6f72646572080134696e766573746d656e745f69644904013c543a3a496e766573746d656e744964000118616d6f756e74180124543a3a416d6f756e7400010490536565205b6050616c6c65743a3a7570646174655f72656465656d5f6f72646572605d2e4c636f6c6c6563745f696e766573746d656e7473040134696e766573746d656e745f69644904013c543a3a496e766573746d656e74496400020490536565205b6050616c6c65743a3a636f6c6c6563745f696e766573746d656e7473605d2e4c636f6c6c6563745f726564656d7074696f6e73040134696e766573746d656e745f69644904013c543a3a496e766573746d656e74496400030490536565205b6050616c6c65743a3a636f6c6c6563745f726564656d7074696f6e73605d2e5c636f6c6c6563745f696e766573746d656e74735f666f7208010c77686f000130543a3a4163636f756e744964000134696e766573746d656e745f69644904013c543a3a496e766573746d656e744964000404a0536565205b6050616c6c65743a3a636f6c6c6563745f696e766573746d656e74735f666f72605d2e5c636f6c6c6563745f726564656d7074696f6e735f666f7208010c77686f000130543a3a4163636f756e744964000134696e766573746d656e745f69644904013c543a3a496e766573746d656e744964000504a0536565205b6050616c6c65743a3a636f6c6c6563745f726564656d7074696f6e735f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4904000004082c9d02004d040c6070616c6c65745f6c69717569646974795f726577617264731870616c6c65741043616c6c04045400011c147374616b6508012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e636500000458536565205b6050616c6c65743a3a7374616b65605d2e1c756e7374616b6508012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e636500010460536565205b6050616c6c65743a3a756e7374616b65605d2e30636c61696d5f72657761726404012c63757272656e63795f6964b9030134543a3a43757272656e6379496400020474536565205b6050616c6c65743a3a636c61696d5f726577617264605d2e587365745f64697374726962757465645f72657761726404011c62616c616e6365180128543a3a42616c616e63650003049c536565205b6050616c6c65743a3a7365745f64697374726962757465645f726577617264605d2e487365745f65706f63685f6475726174696f6e0401206475726174696f6e2c012c4d6f6d656e744f663c543e0004048c536565205b6050616c6c65743a3a7365745f65706f63685f6475726174696f6e605d2e407365745f67726f75705f77656967687408012067726f75705f6964100128543a3a47726f757049640001187765696768742c0124543a3a57656967687400050484536565205b6050616c6c65743a3a7365745f67726f75705f776569676874605d2e487365745f63757272656e63795f67726f757008012c63757272656e63795f6964b9030134543a3a43757272656e6379496400012067726f75705f6964100128543a3a47726f757049640006048c536565205b6050616c6c65743a3a7365745f63757272656e63795f67726f7570605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e51040c5870616c6c65745f6c69717569646974795f706f6f6c731870616c6c65741043616c6c04045400013c206164645f706f6f6c08011c706f6f6c5f69642c0124543a3a506f6f6c4964000118646f6d61696e55040118446f6d61696e00020464536565205b6050616c6c65743a3a6164645f706f6f6c605d2e2c6164645f7472616e6368650c011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000118646f6d61696e55040118446f6d61696e00030470536565205b6050616c6c65743a3a6164645f7472616e636865605d2e487570646174655f746f6b656e5f707269636510011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e636865496400012c63757272656e63795f6964b9030134543a3a43757272656e6379496400012c64657374696e6174696f6e55040118446f6d61696e0004048c536565205b6050616c6c65743a3a7570646174655f746f6b656e5f7072696365605d2e347570646174655f6d656d62657210011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000138646f6d61696e5f61646472657373d5010134446f6d61696e4164647265737300012c76616c69645f756e74696c2c011c5365636f6e647300050478536565205b6050616c6c65743a3a7570646174655f6d656d626572605d2e5c7472616e736665725f7472616e6368655f746f6b656e7310011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000138646f6d61696e5f61646472657373d5010134446f6d61696e41646472657373000118616d6f756e74180128543a3a42616c616e6365000604a0536565205b6050616c6c65743a3a7472616e736665725f7472616e6368655f746f6b656e73605d2e207472616e736665720c012c63757272656e63795f6964b9030134543a3a43757272656e637949640001207265636569766572d5010134446f6d61696e41646472657373000118616d6f756e74180128543a3a42616c616e636500070464536565205b6050616c6c65743a3a7472616e73666572605d2e306164645f63757272656e637904012c63757272656e63795f6964b9030134543a3a43757272656e6379496400080474536565205b6050616c6c65743a3a6164645f63757272656e6379605d2e64616c6c6f775f696e766573746d656e745f63757272656e637908011c706f6f6c5f69642c0124543a3a506f6f6c496400012c63757272656e63795f6964b9030134543a3a43757272656e63794964000904a8536565205b6050616c6c65743a3a616c6c6f775f696e766573746d656e745f63757272656e6379605d2e407363686564756c655f7570677261646508013065766d5f636861696e5f69642c012845564d436861696e4964000120636f6e7472616374810101205b75383b2032305d000a0484536565205b6050616c6c65743a3a7363686564756c655f75706772616465605d2e3863616e63656c5f7570677261646508013065766d5f636861696e5f69642c012845564d436861696e4964000120636f6e7472616374810101205b75383b2032305d000b047c536565205b6050616c6c65743a3a63616e63656c5f75706772616465605d2e747570646174655f7472616e6368655f746f6b656e5f6d657461646174610c011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000118646f6d61696e55040118446f6d61696e000c04b8536565205b6050616c6c65743a3a7570646174655f7472616e6368655f746f6b656e5f6d65746164617461605d2e70646973616c6c6f775f696e766573746d656e745f63757272656e637908011c706f6f6c5f69642c0124543a3a506f6f6c496400012c63757272656e63795f6964b9030134543a3a43757272656e63794964000d04b4536565205b6050616c6c65743a3a646973616c6c6f775f696e766573746d656e745f63757272656e6379605d2e3c667265657a655f696e766573746f720c011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000138646f6d61696e5f61646472657373d5010134446f6d61696e41646472657373000e0480536565205b6050616c6c65743a3a667265657a655f696e766573746f72605d2e44756e667265657a655f696e766573746f720c011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000138646f6d61696e5f61646472657373d5010134446f6d61696e41646472657373000f0488536565205b6050616c6c65743a3a756e667265657a655f696e766573746f72605d2e4c7570646174655f7472616e6368655f686f6f6b10011c706f6f6c5f69642c0124543a3a506f6f6c49640001287472616e6368655f69649d020130543a3a5472616e6368654964000118646f6d61696e55040118446f6d61696e000110686f6f6b810101205b75383b2032305d00100490536565205b6050616c6c65743a3a7570646174655f7472616e6368655f686f6f6b605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55040c246366675f747970657338646f6d61696e5f6164647265737318446f6d61696e0001082843656e747269667567650000000c45564d04002c012845564d436861696e49640001000059040c5070616c6c65745f706f6f6c5f72656769737472791870616c6c65741043616c6c04045400011020726567697374657220011461646d696e000130543a3a4163636f756e74496400011c706f6f6c5f69642c0124543a3a506f6f6c49640001387472616e6368655f696e707574735d0401585665633c5472616e636865496e7075744f663c543e3e00012063757272656e6379b9030134543a3a43757272656e6379496400012c6d61785f72657365727665180128543a3a42616c616e63650001206d657461646174617504013c4f7074696f6e3c5665633c75383e3e00014077726974655f6f66665f706f6c696379ed03012c506f6c6963794f663c543e000124706f6f6c5f66656573790401585665633c506f6f6c466565496e7075744f663c543e3e00000464536565205b6050616c6c65743a3a7265676973746572605d2e1875706461746508011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6368616e67657395040140506f6f6c4368616e6765734f663c543e0001045c536565205b6050616c6c65743a3a757064617465605d2e38657865637574655f75706461746504011c706f6f6c5f69642c0124543a3a506f6f6c49640002047c536565205b6050616c6c65743a3a657865637574655f757064617465605d2e307365745f6d6574616461746108011c706f6f6c5f69642c0124543a3a506f6f6c49640001206d6574616461746134011c5665633c75383e00030474536565205b6050616c6c65743a3a7365745f6d65746164617461605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5d0400000261040061040c4870616c6c65745f706f6f6c5f73797374656d207472616e63686573305472616e636865496e7075740810526174650195032c537472696e674c696d6974016504000c01307472616e6368655f74797065690401445472616e636865547970653c526174653e00012473656e696f72697479450201444f7074696f6e3c53656e696f726974793e0001206d657461646174616d0401705472616e6368654d657461646174613c537472696e674c696d69743e000065040c246366675f747970657318746f6b656e73404173736574537472696e674c696d69740000000069040c4870616c6c65745f706f6f6c5f73797374656d207472616e636865732c5472616e63686554797065041052617465019503010820526573696475616c0000002c4e6f6e526573696475616c080154696e7465726573745f726174655f7065725f736563950301105261746500013c6d696e5f7269736b5f6275666665727103012c5065727175696e74696c6c000100006d040c246366675f747970657314706f6f6c733c5472616e6368654d65746164617461042c537472696e674c696d697401650400080128746f6b656e5f6e616d657104016c426f756e6465645665633c75382c20537472696e674c696d69743e000130746f6b656e5f73796d626f6c7104016c426f756e6465645665633c75382c20537472696e674c696d69743e000071040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000750404184f7074696f6e04045401340108104e6f6e6500000010536f6d65040034000001000079040000027d04007d0400000408810485040081040c286366675f7472616974730c66656534506f6f6c4665654275636b65740001040c546f700000000085040c246366675f747970657314706f6f6c732c506f6f6c466565496e666f0c244163636f756e74496401001c42616c616e636501181052617465019503000c012c64657374696e6174696f6e0001244163636f756e744964000118656469746f7289040160506f6f6c466565456469746f723c4163636f756e7449643e0001206665655f747970658d040168506f6f6c466565547970653c42616c616e63652c20526174653e000089040c246366675f747970657314706f6f6c7334506f6f6c466565456469746f7204244163636f756e7449640100010810526f6f740000001c4163636f756e7404000001244163636f756e744964000100008d040c246366675f747970657314706f6f6c732c506f6f6c46656554797065081c42616c616e63650118105261746501950301081446697865640401146c696d697491040170506f6f6c466565416d6f756e743c42616c616e63652c20526174653e0000002c436861726765645570546f0401146c696d697491040170506f6f6c466565416d6f756e743c42616c616e63652c20526174653e0001000091040c246366675f747970657314706f6f6c7334506f6f6c466565416d6f756e74081c42616c616e63650118105261746501950301086453686172654f66506f7274666f6c696f56616c756174696f6e040095030110526174650000003c416d6f756e745065725365636f6e64040018011c42616c616e63650001000095040c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f74797065732c506f6f6c4368616e6765730c10526174650195032c537472696e674c696d69740165042c4d61785472616e63686573019904001001207472616e636865739d0401d04368616e67653c426f756e6465645665633c5472616e6368655570646174653c526174653e2c204d61785472616e636865733e3e0001407472616e6368655f6d65746164617461ad0401f44368616e67653c426f756e6465645665633c5472616e6368654d657461646174613c537472696e674c696d69743e2c204d61785472616e636865733e3e0001386d696e5f65706f63685f74696d65b904013c4368616e67653c5365636f6e64733e00012c6d61785f6e61765f616765b904013c4368616e67653c5365636f6e64733e00009904084c646576656c6f706d656e745f72756e74696d652c4d61785472616e63686573000000009d04082c6f726d6c5f747261697473184368616e6765041456616c756501a1040108204e6f4368616e6765000000204e657756616c75650400a104011456616c756500010000a1040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a504045300000400a90401185665633c543e0000a5040c4870616c6c65745f706f6f6c5f73797374656d207472616e63686573345472616e636865557064617465041052617465019503000801307472616e6368655f74797065690401445472616e636865547970653c526174653e00012473656e696f72697479450201444f7074696f6e3c53656e696f726974793e0000a904000002a50400ad04082c6f726d6c5f747261697473184368616e6765041456616c756501b1040108204e6f4368616e6765000000204e657756616c75650400b104011456616c756500010000b1040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016d04045300000400b50401185665633c543e0000b5040000026d0400b904082c6f726d6c5f747261697473184368616e6765041456616c7565012c0108204e6f4368616e6765000000204e657756616c756504002c011456616c756500010000bd040c5070616c6c65745f626c6f636b5f726577617264731870616c6c65741043616c6c04045400010c30636c61696d5f7265776172640401286163636f756e745f6964000130543a3a4163636f756e74496400000474536565205b6050616c6c65743a3a636c61696d5f726577617264605d2e7c7365745f636f6c6c61746f725f7265776172645f7065725f73657373696f6e04016c636f6c6c61746f725f7265776172645f7065725f73657373696f6e180128543a3a42616c616e6365000104c0536565205b6050616c6c65743a3a7365745f636f6c6c61746f725f7265776172645f7065725f73657373696f6e605d2e887365745f616e6e75616c5f74726561737572795f696e666c6174696f6e5f7261746504015c74726561737572795f696e666c6174696f6e5f726174659503011c543a3a52617465000204cc536565205b6050616c6c65743a3a7365745f616e6e75616c5f74726561737572795f696e666c6174696f6e5f72617465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec1040c6470616c6c65745f7472616e736665725f616c6c6f776c6973741870616c6c65741043616c6c04045400011c586164645f7472616e736665725f616c6c6f77616e636508012c63757272656e63795f6964c5040134543a3a43757272656e637949640001207265636569766572c904012c543a3a4c6f636174696f6e0000049c536565205b6050616c6c65743a3a6164645f7472616e736665725f616c6c6f77616e6365605d2e6472656d6f76655f7472616e736665725f616c6c6f77616e636508012c63757272656e63795f6964c5040134543a3a43757272656e637949640001207265636569766572c904012c543a3a4c6f636174696f6e000104a8536565205b6050616c6c65743a3a72656d6f76655f7472616e736665725f616c6c6f77616e6365605d2e6070757267655f7472616e736665725f616c6c6f77616e636508012c63757272656e63795f6964c5040134543a3a43757272656e637949640001207265636569766572c904012c543a3a4c6f636174696f6e000204a4536565205b6050616c6c65743a3a70757267655f7472616e736665725f616c6c6f77616e6365605d2e4c6164645f616c6c6f77616e63655f64656c617908012c63757272656e63795f6964c5040134543a3a43757272656e6379496400011464656c6179100144426c6f636b4e756d626572466f723c543e00030490536565205b6050616c6c65743a3a6164645f616c6c6f77616e63655f64656c6179605d2e587570646174655f616c6c6f77616e63655f64656c617908012c63757272656e63795f6964c5040134543a3a43757272656e6379496400011464656c6179100144426c6f636b4e756d626572466f723c543e0004049c536565205b6050616c6c65743a3a7570646174655f616c6c6f77616e63655f64656c6179605d2eb4746f67676c655f616c6c6f77616e63655f64656c61795f6f6e63655f6675747572655f6d6f6469666961626c6504012c63757272656e63795f6964c5040134543a3a43757272656e63794964000504f8536565205b6050616c6c65743a3a746f67676c655f616c6c6f77616e63655f64656c61795f6f6e63655f6675747572655f6d6f6469666961626c65605d2e5470757267655f616c6c6f77616e63655f64656c617904012c63757272656e63795f6964c5040134543a3a43757272656e6379496400060498536565205b6050616c6c65743a3a70757267655f616c6c6f77616e63655f64656c6179605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec5040c246366675f747970657318746f6b656e733846696c74657243757272656e63790001080c416c6c0000002053706563696669630400b903012843757272656e6379496400010000c9040c246366675f7479706573246c6f636174696f6e7368526573747269637465645472616e736665724c6f636174696f6e00010c144c6f63616c04000001244163636f756e7449640000000c58636d0400cd040158426f783c56657273696f6e65644c6f636174696f6e3e0001001c416464726573730400d5010134446f6d61696e4164647265737300020000cd04080c78636d4456657273696f6e65644c6f636174696f6e00010c0856320400d104014476323a3a4d756c74694c6f636174696f6e0001000856330400ed04014476333a3a4d756c74694c6f636174696f6e0003000856340400dd01013076343a3a4c6f636174696f6e00040000d104100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72d50401244a756e6374696f6e730000d504100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400d90401204a756e6374696f6e0001000858320800d90401204a756e6374696f6e0000d90401204a756e6374696f6e0002000858330c00d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0003000858341000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0004000858351400d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0005000858361800d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0006000858371c00d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0007000858382000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e0000d90401204a756e6374696f6e00080000d904100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400b101010c7533320000002c4163636f756e744964333208011c6e6574776f726bdd0401244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bdd0401244e6574776f726b4964000114696e64657828010c753634000200304163636f756e744b6579323008011c6e6574776f726bdd0401244e6574776f726b496400010c6b6579810101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e646578040085010110753132380005002847656e6572616c4b65790400e10401805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c6974790801086964e5040118426f6479496400011070617274e9040120426f64795061727400080000dd040c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400e10401805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d6100030000e1040c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003401185665633c543e0000e5040c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400e10401805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400b101010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e9040c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74b101010c753332000100204672616374696f6e08010c6e6f6db101010c75333200011464656e6f6db101010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6db101010c75333200011464656e6f6db101010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6db101010c75333200011464656e6f6db101010c75333200040000ed04102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72f10401244a756e6374696f6e730000f104100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400f50401204a756e6374696f6e0001000858320800f50401204a756e6374696f6e0000f50401204a756e6374696f6e0002000858330c00f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0003000858341000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0004000858351400f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0005000858361800f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0006000858371c00f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0007000858382000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e0000f50401204a756e6374696f6e00080000f504100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400b101010c7533320000002c4163636f756e744964333208011c6e6574776f726bf90401444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bf90401444f7074696f6e3c4e6574776f726b49643e000114696e64657828010c753634000200304163636f756e744b6579323008011c6e6574776f726bf90401444f7074696f6e3c4e6574776f726b49643e00010c6b6579810101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e646578040085010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964f5010118426f6479496400011070617274f9010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400fd0401244e6574776f726b496400090000f90404184f7074696f6e04045401fd040108104e6f6e6500000010536f6d650400fd040000010000fd04100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d6265722c010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f696428010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a000001050c7870616c6c65745f6c69717569646974795f706f6f6c735f676174657761791870616c6c65741043616c6c04045400011c447365745f646f6d61696e5f726f75746572080118646f6d61696e55040118446f6d61696e000118726f7574657205050124543a3a526f7574657200000488536565205b6050616c6c65743a3a7365745f646f6d61696e5f726f75746572605d2e306164645f696e7374616e6365040120696e7374616e6365d5010134446f6d61696e4164647265737300010474536565205b6050616c6c65743a3a6164645f696e7374616e6365605d2e3c72656d6f76655f696e7374616e6365040120696e7374616e6365d5010134446f6d61696e4164647265737300020480536565205b6050616c6c65743a3a72656d6f76655f696e7374616e6365605d2e3c726563656976655f6d65737361676504010c6d7367290501a4426f756e6465645665633c75382c20543a3a4d6178496e636f6d696e674d65737361676553697a653e00050480536565205b6050616c6c65743a3a726563656976655f6d657373616765605d2e5c7365745f646f6d61696e5f686f6f6b5f61646472657373080118646f6d61696e55040118446f6d61696e000130686f6f6b5f61646472657373810101205b75383b2032305d000804a0536565205b6050616c6c65743a3a7365745f646f6d61696e5f686f6f6b5f61646472657373605d2e4c73746172745f62617463685f6d65737361676504012c64657374696e6174696f6e55040118446f6d61696e00090490536565205b6050616c6c65743a3a73746172745f62617463685f6d657373616765605d2e44656e645f62617463685f6d65737361676504012c64657374696e6174696f6e55040118446f6d61696e000a0488536565205b6050616c6c65743a3a656e645f62617463685f6d657373616765605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0505087c6c69717569646974795f706f6f6c735f676174657761795f726f757465727330446f6d61696e526f757465720404540109050104244178656c617245564d04000d0501484178656c617245564d526f757465723c543e000000000905084c646576656c6f706d656e745f72756e74696d651c52756e74696d65000000000d05107c6c69717569646974795f706f6f6c735f676174657761795f726f75746572731c726f7574657273286178656c61725f65766d3c4178656c617245564d526f75746572040454010905000c0118726f757465721105013045564d526f757465723c543e00012465766d5f636861696e250501cc426f756e6465645665633c75382c20436f6e73745533323c4d41585f4158454c41525f45564d5f434841494e5f53495a453e3e0001806c69717569646974795f706f6f6c735f636f6e74726163745f61646472657373210201104831363000001105087c6c69717569646974795f706f6f6c735f676174657761795f726f75746572732445564d526f757465720404540109050004012865766d5f646f6d61696e1505012445564d446f6d61696e00001505087c6c69717569646974795f706f6f6c735f676174657761795f726f75746572732445564d446f6d61696e00000c015c7461726765745f636f6e74726163745f6164647265737321020110483136300001507461726765745f636f6e74726163745f68617368300110483235360001286665655f76616c7565731905012446656556616c75657300001905087c6c69717569646974795f706f6f6c735f676174657761795f726f75746572732446656556616c75657300000c011476616c75651d050110553235360001246761735f70726963651d050110553235360001246761735f6c696d69741d0501105532353600001d05083c7072696d69746976655f7479706573105532353600000400210501205b7536343b20345d00002105000003040000002c0025050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000029050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e00002d050c4470616c6c65745f6f726465725f626f6f6b1870616c6c65741043616c6c0404540001142c706c6163655f6f7264657210012c63757272656e63795f696eb9030134543a3a43757272656e6379496400013063757272656e63795f6f7574b9030134543a3a43757272656e63794964000128616d6f756e745f6f7574180134543a3a42616c616e63654f7574000114726174696f310501504f72646572526174696f3c543a3a526174696f3e00000470536565205b6050616c6c65743a3a706c6163655f6f72646572605d2e307570646174655f6f726465720c01206f726465725f69642c013c543a3a4f7264657249644e6f6e6365000128616d6f756e745f6f7574180134543a3a42616c616e63654f7574000114726174696f310501504f72646572526174696f3c543a3a526174696f3e00010474536565205b6050616c6c65743a3a7570646174655f6f72646572605d2e3063616e63656c5f6f726465720401206f726465725f69642c013c543a3a4f7264657249644e6f6e636500020474536565205b6050616c6c65743a3a63616e63656c5f6f72646572605d2e2866696c6c5f6f726465720801206f726465725f69642c013c543a3a4f7264657249644e6f6e6365000128616d6f756e745f6f7574180134543a3a42616c616e63654f75740003046c536565205b6050616c6c65743a3a66696c6c5f6f72646572605d2e447365745f6d61726b65745f6665656465720401246665656465725f69643505012c543a3a466565646572496400040488536565205b6050616c6c65743a3a7365745f6d61726b65745f666565646572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31050c286366675f747261697473147377617073284f72646572526174696f0414526174696f01c9030108184d61726b657400000018437573746f6d0400c9030114526174696f0001000035050c3872756e74696d655f636f6d6d6f6e186f7261636c651846656564657204044f00000400bd0101404f3a3a50616c6c6574734f726967696e000039050c4870616c6c65745f6f7261636c655f666565641870616c6c65741043616c6c040454000104106665656408010c6b6579b5030130543a3a4f7261636c654b657900011476616c7565c9030138543a3a4f7261636c6556616c756500000454536565205b6050616c6c65743a3a66656564605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d050c6070616c6c65745f6f7261636c655f636f6c6c656374696f6e1870616c6c65741043616c6c04045400010c7870726f706f73655f7570646174655f636f6c6c656374696f6e5f696e666f080134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e4964000110696e666f4105016074797065733a3a436f6c6c656374696f6e496e666f3c543e000004bc536565205b6050616c6c65743a3a70726f706f73655f7570646174655f636f6c6c656374696f6e5f696e666f605d2e706170706c795f7570646174655f636f6c6c656374696f6e5f696e666f080134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e49640001246368616e67655f696430011c543a3a48617368000104b4536565205b6050616c6c65743a3a6170706c795f7570646174655f636f6c6c656374696f6e5f696e666f605d2e447570646174655f636f6c6c656374696f6e040134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e496400020488536565205b6050616c6c65743a3a7570646174655f636f6c6c656374696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41050c6070616c6c65745f6f7261636c655f636f6c6c656374696f6e14747970657338436f6c6c656374696f6e496e666f04045400000c013876616c75655f6c69666574696d650d0101504f7074696f6e3c543a3a54696d657374616d703e00012c6d696e5f6665656465727310010c75333200011c66656564657273450501c4426f756e64656442547265655365743c543a3a46656564657249642c20543a3a4d6178466565646572735065724b65793e000045050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540135050453000004004905012c42547265655365743c543e00004905042042547265655365740404540135050004004d050000004d0500000235050051050c4470616c6c65745f616e63686f72735f76321870616c6c65741043616c6c04045400010c287365745f616e63686f720c012c646f63756d656e745f696418011075313238000140646f63756d656e745f76657273696f6e2c010c7536340001106861736830011c543a3a486173680000046c536565205b6050616c6c65743a3a7365745f616e63686f72605d2e3472656d6f76655f616e63686f7208012c646f63756d656e745f696418011075313238000140646f63756d656e745f76657273696f6e2c010c75363400010478536565205b6050616c6c65743a3a72656d6f76655f616e63686f72605d2e447365745f6465706f7369745f76616c756504012c6e65775f6465706f736974180128543a3a42616c616e636500020488536565205b6050616c6c65743a3a7365745f6465706f7369745f76616c7565605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55050c9070616c6c65745f6c69717569646974795f706f6f6c735f676174657761795f71756575651870616c6c65741043616c6c0404540001083c70726f636573735f6d6573736167650401146e6f6e63652c013c543a3a4d6573736167654e6f6e636500000480536565205b6050616c6c65743a3a70726f636573735f6d657373616765605d2e5870726f636573735f6661696c65645f6d6573736167650401146e6f6e63652c013c543a3a4d6573736167654e6f6e63650001049c536565205b6050616c6c65743a3a70726f636573735f6661696c65645f6d657373616765605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e59050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010498536565205b6050616c6c65743a3a73757370656e645f78636d5f657865637574696f6e605d2e50726573756d655f78636d5f657865637574696f6e00020494536565205b6050616c6c65743a3a726573756d655f78636d5f657865637574696f6e605d2e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c753332000304a4536565205b6050616c6c65743a3a7570646174655f73757370656e645f7468726573686f6c64605d2e547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200040498536565205b6050616c6c65743a3a7570646174655f64726f705f7468726573686f6c64605d2e5c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c753332000504a0536565205b6050616c6c65743a3a7570646174655f726573756d655f7468726573686f6c64605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5d050c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001301073656e6408011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676561050154426f783c56657273696f6e656458636d3c28293e3e00000454536565205b6050616c6c65743a3a73656e64605d2e3c74656c65706f72745f61737365747310011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747361060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c75333200010480536565205b6050616c6c65743a3a74656c65706f72745f617373657473605d2e5c726573657276655f7472616e736665725f61737365747310011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747361060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000204a0536565205b6050616c6c65743a3a726573657276655f7472616e736665725f617373657473605d2e1c6578656375746508011c6d657373616765650601b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f77656967687424011857656967687400030460536565205b6050616c6c65743a3a65786563757465605d2e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6edd010134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00040488536565205b6050616c6c65743a3a666f7263655f78636d5f76657273696f6e605d2e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e450201484f7074696f6e3c58636d56657273696f6e3e000504a8536565205b6050616c6c65743a3a666f7263655f64656661756c745f78636d5f76657273696f6e605d2e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ecd040158426f783c56657273696f6e65644c6f636174696f6e3e000604bc536565205b6050616c6c65743a3a666f7263655f7375627363726962655f76657273696f6e5f6e6f74696679605d2e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ecd040158426f783c56657273696f6e65644c6f636174696f6e3e000704c4536565205b6050616c6c65743a3a666f7263655f756e7375627363726962655f76657273696f6e5f6e6f74696679605d2e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747361060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69741106012c5765696768744c696d6974000804c0536565205b6050616c6c65743a3a6c696d697465645f726573657276655f7472616e736665725f617373657473605d2e5c6c696d697465645f74656c65706f72745f61737365747314011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747361060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69741106012c5765696768744c696d6974000904a0536565205b6050616c6c65743a3a6c696d697465645f74656c65706f72745f617373657473605d2e40666f7263655f73757370656e73696f6e04012473757370656e646564780110626f6f6c000a0484536565205b6050616c6c65743a3a666f7263655f73757370656e73696f6e605d2e3c7472616e736665725f61737365747314011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747361060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69741106012c5765696768744c696d6974000b0480536565205b6050616c6c65743a3a7472616e736665725f617373657473605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6105080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204006505015076323a3a58636d3c52756e74696d6543616c6c3e0002000856330400b105015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404001506015076343a3a58636d3c52756e74696d6543616c6c3e0004000065050c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400690501745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e000069050000026d05006d050c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007105012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007105012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007105012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f696428011c51756572794964000120726573706f6e736589050120526573706f6e73650001286d61785f77656967687428010c753634000300345472616e7366657241737365740801186173736574737105012c4d756c746941737365747300012c62656e6566696369617279d10401344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737105012c4d756c746941737365747300011064657374d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065990501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c9d050168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572b101010c7533320001406d61785f6d6573736167655f73697a65b101010c7533320001306d61785f6361706163697479b101010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74b101010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72b101010c75333200011873656e646572b101010c753332000124726563697069656e74b101010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400d5040154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f696428011c5175657279496400011064657374d10401344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f77656967687428010c753634000c00304465706f73697441737365740c0118617373657473a10501404d756c7469417373657446696c7465720001286d61785f617373657473b101010c75333200012c62656e6566696369617279d10401344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473a10501404d756c7469417373657446696c7465720001286d61785f617373657473b101010c75333200011064657374d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e000e003445786368616e6765417373657408011067697665a10501404d756c7469417373657446696c74657200011c726563656976657105012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473a10501404d756c7469417373657446696c74657200011c72657365727665d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473a10501404d756c7469417373657446696c74657200011064657374d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f696428011c5175657279496400011064657374d10401344d756c74694c6f636174696f6e000118617373657473a10501404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f77656967687428010c75363400120030427579457865637574696f6e08011066656573790501284d756c746941737365740001307765696768745f6c696d6974ad05012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204006505014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804006505014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737105012c4d756c74694173736574730001187469636b6574d10401344d756c74694c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f77656967687428010c753634001a0048556e73756273637269626556657273696f6e001b00007105100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007505013c5665633c4d756c746941737365743e000075050000027905007905100c78636d087632286d756c74696173736574284d756c74694173736574000008010869647d05011c4173736574496400010c66756e8105012c46756e676962696c69747900007d05100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400d10401344d756c74694c6f636174696f6e000000204162737472616374040034011c5665633c75383e000100008105100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c65040085010110753132380000002c4e6f6e46756e6769626c650400850501344173736574496e7374616e6365000100008505100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400850101107531323800010018417272617934040044011c5b75383b20345d0002001841727261793804007d02011c5b75383b20385d0003001c4172726179313604009d0201205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040034011c5665633c75383e0006000089050c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007105012c4d756c74694173736574730001003c457865637574696f6e526573756c7404008d0501504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e000300008d0504184f7074696f6e0404540191050108104e6f6e6500000010536f6d65040091050000010000910500000408109505009505100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e73697665001400105472617004002c010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404002c01185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c650019000099050c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300009d050c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656434011c5665633c75383e0000a105100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007105012c4d756c74694173736574730000001057696c640400a505013857696c644d756c7469417373657400010000a505100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869647d05011c4173736574496400010c66756ea905013c57696c6446756e676962696c69747900010000a905100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000ad050c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d69746564040028010c75363400010000b1050c0c78636d0876330c58636d041043616c6c00000400b50501585665633c496e737472756374696f6e3c43616c6c3e3e0000b505000002b90500b9050c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400bd05012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400bd05012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400bd05012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f696428011c51756572794964000120726573706f6e7365d5050120526573706f6e73650001286d61785f77656967687424011857656967687400011c71756572696572fd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473bd05012c4d756c746941737365747300012c62656e6566696369617279ed0401344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473bd05012c4d756c746941737365747300011064657374ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64990501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424011857656967687400011063616c6c9d05014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572b101010c7533320001406d61785f6d6573736167655f73697a65b101010c7533320001306d61785f6361706163697479b101010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74b101010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72b101010c75333200011873656e646572b101010c753332000124726563697069656e74b101010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400f1040154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400010601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473050601404d756c7469417373657446696c74657200012c62656e6566696369617279ed0401344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473050601404d756c7469417373657446696c74657200011064657374ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e000e003445786368616e676541737365740c011067697665050601404d756c7469417373657446696c74657200011077616e74bd05012c4d756c746941737365747300011c6d6178696d616c780110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473050601404d756c7469417373657446696c74657200011c72657365727665ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473050601404d756c7469417373657446696c74657200011064657374ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f010601445175657279526573706f6e7365496e666f000118617373657473050601404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573c50501284d756c746941737365740001307765696768745f6c696d69741106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400b105012458636d3c43616c6c3e0015002c536574417070656e6469780400b105012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473bd05012c4d756c74694173736574730001187469636b6574ed0401344d756c74694c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f776569676874240118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400bd05012c4d756c7469417373657473001c002c45787065637441737365740400bd05012c4d756c7469417373657473001d00304578706563744f726967696e0400fd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400d90501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400f50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6534011c5665633c75383e000134726573706f6e73655f696e666f010601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578b101010c7533320001106e616d6534011c5665633c75383e00012c6d6f64756c655f6e616d6534011c5665633c75383e00012c63726174655f6d616a6f72b101010c75333200013c6d696e5f63726174655f6d696e6f72b101010c753332002200505265706f72745472616e736163745374617475730400010601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400f50401204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bfd0401244e6574776f726b496400012c64657374696e6174696f6ef1040154496e746572696f724d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e002600244c6f636b41737365740801146173736574c50501284d756c74694173736574000120756e6c6f636b6572ed0401344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574c50501284d756c74694173736574000118746172676574ed0401344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574c50501284d756c746941737365740001146f776e6572ed0401344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574c50501284d756c746941737365740001186c6f636b6572ed0401344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177780110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400ed0401344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69741106012c5765696768744c696d6974000130636865636b5f6f726967696efd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e002f0000bd05100c78636d087633286d756c746961737365742c4d756c746941737365747300000400c105013c5665633c4d756c746941737365743e0000c105000002c50500c505100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964c905011c4173736574496400010c66756ecd05012c46756e676962696c6974790000c905100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400ed0401344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000cd05100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c65040085010110753132380000002c4e6f6e46756e6769626c650400d10501344173736574496e7374616e636500010000d105100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400850101107531323800010018417272617934040044011c5b75383b20345d0002001841727261793804007d02011c5b75383b20385d0003001c4172726179313604009d0201205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d5050c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400bd05012c4d756c74694173736574730001003c457865637574696f6e526573756c740400d90501504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f0400e5050198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400f50501384d617962654572726f72436f646500050000d90504184f7074696f6e04045401dd050108104e6f6e6500000010536f6d650400dd050000010000dd050000040810e10500e105100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e73697665001400105472617004002c010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002401185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000e5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e905045300000400f10501185665633c543e0000e9050c0c78636d0876332850616c6c6574496e666f0000180114696e646578b101010c7533320001106e616d65ed050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d65ed050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72b101010c7533320001146d696e6f72b101010c7533320001147061746368b101010c7533320000ed050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000f105000002e90500f5050c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f720400f905018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f720400f905018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e00020000f9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000fd0504184f7074696f6e04045401ed040108104e6f6e6500000010536f6d650400ed04000001000001060c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6eed0401344d756c74694c6f636174696f6e00012071756572795f696428011c517565727949640001286d61785f77656967687424011857656967687400000506100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400bd05012c4d756c74694173736574730000001057696c6404000906013857696c644d756c74694173736574000100000906100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964c905011c4173736574496400010c66756e0d06013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400b101010c75333200020030416c6c4f66436f756e7465640c01086964c905011c4173736574496400010c66756e0d06013c57696c6446756e676962696c697479000114636f756e74b101010c753332000300000d06100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000011060c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002401185765696768740001000015060c2c73746167696e675f78636d0876340c58636d041043616c6c00000400190601585665633c496e737472756374696f6e3c43616c6c3e3e000019060000021d06001d060c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040021060118417373657473000000545265736572766541737365744465706f7369746564040021060118417373657473000100585265636569766554656c65706f727465644173736574040021060118417373657473000200345175657279526573706f6e736510012071756572795f696428011c51756572794964000120726573706f6e736539060120526573706f6e73650001286d61785f77656967687424011857656967687400011c717565726965724d0601404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574732106011841737365747300012c62656e6566696369617279dd0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574732106011841737365747300011064657374dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64990501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424011857656967687400011063616c6c9d05014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572b101010c7533320001406d61785f6d6573736167655f73697a65b101010c7533320001306d61785f6361706163697479b101010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74b101010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72b101010c75333200011873656e646572b101010c753332000124726563697069656e74b101010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400e1010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400510601445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574735506012c417373657446696c74657200012c62656e6566696369617279dd0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574735506012c417373657446696c74657200011064657374dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e000e003445786368616e676541737365740c0110676976655506012c417373657446696c74657200011077616e742106011841737365747300011c6d6178696d616c780110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574735506012c417373657446696c74657200011c72657365727665dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574735506012c417373657446696c74657200011064657374dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f510601445175657279526573706f6e7365496e666f0001186173736574735506012c417373657446696c74657200120030427579457865637574696f6e080110666565732906011441737365740001307765696768745f6c696d69741106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001506012458636d3c43616c6c3e0015002c536574417070656e64697804001506012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473210601184173736574730001187469636b6574dd0101204c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f776569676874240118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040021060118417373657473001c002c4578706563744173736574040021060118417373657473001d00304578706563744f726967696e04004d0601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400d90501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400f50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6534011c5665633c75383e000134726573706f6e73655f696e666f510601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578b101010c7533320001106e616d6534011c5665633c75383e00012c6d6f64756c655f6e616d6534011c5665633c75383e00012c63726174655f6d616a6f72b101010c75333200013c6d696e5f63726174655f6d696e6f72b101010c753332002200505265706f72745472616e736163745374617475730400510601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400e90101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bf10101244e6574776f726b496400012c64657374696e6174696f6ee1010140496e746572696f724c6f636174696f6e00010c78636d1506011c58636d3c28293e002600244c6f636b41737365740801146173736574290601144173736574000120756e6c6f636b6572dd0101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574290601144173736574000118746172676574dd0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365742906011441737365740001146f776e6572dd0101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365742906011441737365740001186c6f636b6572dd0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177780110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400dd0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69741106012c5765696768744c696d6974000130636865636b5f6f726967696e4d0601404f7074696f6e3c4c6f636174696f6e3e002f00002106102c73746167696e675f78636d0876341461737365741841737365747300000400250601285665633c41737365743e000025060000022906002906102c73746167696e675f78636d087634146173736574144173736574000008010869642d06011c4173736574496400010c66756e3106012c46756e676962696c69747900002d06102c73746167696e675f78636d0876341461737365741c4173736574496400000400dd0101204c6f636174696f6e00003106102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c65040085010110753132380000002c4e6f6e46756e6769626c650400350601344173736574496e7374616e6365000100003506102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400850101107531323800010018417272617934040044011c5b75383b20345d0002001841727261793804007d02011c5b75383b20385d0003001c4172726179313604009d0201205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000039060c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400210601184173736574730001003c457865637574696f6e526573756c740400d90501504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d060198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400f50501384d617962654572726f72436f6465000500003d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014106045300000400490601185665633c543e000041060c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578b101010c7533320001106e616d6545060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72b101010c7533320001146d696e6f72b101010c7533320001147061746368b101010c753332000045060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000049060000024106004d0604184f7074696f6e04045401dd010108104e6f6e6500000010536f6d650400dd01000001000051060c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6edd0101204c6f636174696f6e00012071756572795f696428011c517565727949640001286d61785f77656967687424011857656967687400005506102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400210601184173736574730000001057696c6404005906012457696c644173736574000100005906102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869642d06011c4173736574496400010c66756e5d06013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400b101010c75333200020030416c6c4f66436f756e7465640c010869642d06011c4173736574496400010c66756e5d06013c57696c6446756e676962696c697479000114636f756e74b101010c753332000300005d06102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100006106080c78636d3c56657273696f6e656441737365747300010c08563204007105013c76323a3a4d756c74694173736574730001000856330400bd05013c76333a3a4d756c746941737365747300030008563404002106012876343a3a417373657473000400006506080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204006906015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304007906015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404008506015076343a3a58636d3c52756e74696d6543616c6c3e0004000069060c0c78636d0876320c58636d042c52756e74696d6543616c6c000004006d0601745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00006d0600000271060071060c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007105012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007105012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007105012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f696428011c51756572794964000120726573706f6e736589050120526573706f6e73650001286d61785f77656967687428010c753634000300345472616e7366657241737365740801186173736574737105012c4d756c746941737365747300012c62656e6566696369617279d10401344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737105012c4d756c746941737365747300011064657374d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065990501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c75060168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572b101010c7533320001406d61785f6d6573736167655f73697a65b101010c7533320001306d61785f6361706163697479b101010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74b101010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72b101010c75333200011873656e646572b101010c753332000124726563697069656e74b101010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400d5040154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f696428011c5175657279496400011064657374d10401344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f77656967687428010c753634000c00304465706f73697441737365740c0118617373657473a10501404d756c7469417373657446696c7465720001286d61785f617373657473b101010c75333200012c62656e6566696369617279d10401344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473a10501404d756c7469417373657446696c7465720001286d61785f617373657473b101010c75333200011064657374d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e000e003445786368616e6765417373657408011067697665a10501404d756c7469417373657446696c74657200011c726563656976657105012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473a10501404d756c7469417373657446696c74657200011c72657365727665d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473a10501404d756c7469417373657446696c74657200011064657374d10401344d756c74694c6f636174696f6e00010c78636d6505011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f696428011c5175657279496400011064657374d10401344d756c74694c6f636174696f6e000118617373657473a10501404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f77656967687428010c75363400120030427579457865637574696f6e08011066656573790501284d756c746941737365740001307765696768745f6c696d6974ad05012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204006906014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804006906014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737105012c4d756c74694173736574730001187469636b6574d10401344d756c74694c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f77656967687428010c753634001a0048556e73756273637269626556657273696f6e001b000075060c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656434011c5665633c75383e000079060c0c78636d0876330c58636d041043616c6c000004007d0601585665633c496e737472756374696f6e3c43616c6c3e3e00007d0600000281060081060c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400bd05012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400bd05012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400bd05012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f696428011c51756572794964000120726573706f6e7365d5050120526573706f6e73650001286d61785f77656967687424011857656967687400011c71756572696572fd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473bd05012c4d756c746941737365747300012c62656e6566696369617279ed0401344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473bd05012c4d756c746941737365747300011064657374ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64990501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424011857656967687400011063616c6c7506014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572b101010c7533320001406d61785f6d6573736167655f73697a65b101010c7533320001306d61785f6361706163697479b101010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74b101010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72b101010c75333200011873656e646572b101010c753332000124726563697069656e74b101010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400f1040154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400010601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473050601404d756c7469417373657446696c74657200012c62656e6566696369617279ed0401344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473050601404d756c7469417373657446696c74657200011064657374ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e000e003445786368616e676541737365740c011067697665050601404d756c7469417373657446696c74657200011077616e74bd05012c4d756c746941737365747300011c6d6178696d616c780110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473050601404d756c7469417373657446696c74657200011c72657365727665ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473050601404d756c7469417373657446696c74657200011064657374ed0401344d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f010601445175657279526573706f6e7365496e666f000118617373657473050601404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573c50501284d756c746941737365740001307765696768745f6c696d69741106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007906012458636d3c43616c6c3e0015002c536574417070656e64697804007906012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473bd05012c4d756c74694173736574730001187469636b6574ed0401344d756c74694c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f776569676874240118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400bd05012c4d756c7469417373657473001c002c45787065637441737365740400bd05012c4d756c7469417373657473001d00304578706563744f726967696e0400fd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400d90501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400f50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6534011c5665633c75383e000134726573706f6e73655f696e666f010601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578b101010c7533320001106e616d6534011c5665633c75383e00012c6d6f64756c655f6e616d6534011c5665633c75383e00012c63726174655f6d616a6f72b101010c75333200013c6d696e5f63726174655f6d696e6f72b101010c753332002200505265706f72745472616e736163745374617475730400010601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400f50401204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bfd0401244e6574776f726b496400012c64657374696e6174696f6ef1040154496e746572696f724d756c74694c6f636174696f6e00010c78636db105011c58636d3c28293e002600244c6f636b41737365740801146173736574c50501284d756c74694173736574000120756e6c6f636b6572ed0401344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574c50501284d756c74694173736574000118746172676574ed0401344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574c50501284d756c746941737365740001146f776e6572ed0401344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574c50501284d756c746941737365740001186c6f636b6572ed0401344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177780110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400ed0401344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69741106012c5765696768744c696d6974000130636865636b5f6f726967696efd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000085060c2c73746167696e675f78636d0876340c58636d041043616c6c00000400890601585665633c496e737472756374696f6e3c43616c6c3e3e000089060000028d06008d060c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040021060118417373657473000000545265736572766541737365744465706f7369746564040021060118417373657473000100585265636569766554656c65706f727465644173736574040021060118417373657473000200345175657279526573706f6e736510012071756572795f696428011c51756572794964000120726573706f6e736539060120526573706f6e73650001286d61785f77656967687424011857656967687400011c717565726965724d0601404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574732106011841737365747300012c62656e6566696369617279dd0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574732106011841737365747300011064657374dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64990501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424011857656967687400011063616c6c7506014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572b101010c7533320001406d61785f6d6573736167655f73697a65b101010c7533320001306d61785f6361706163697479b101010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74b101010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72b101010c75333200011873656e646572b101010c753332000124726563697069656e74b101010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400e1010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400510601445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574735506012c417373657446696c74657200012c62656e6566696369617279dd0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574735506012c417373657446696c74657200011064657374dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e000e003445786368616e676541737365740c0110676976655506012c417373657446696c74657200011077616e742106011841737365747300011c6d6178696d616c780110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574735506012c417373657446696c74657200011c72657365727665dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574735506012c417373657446696c74657200011064657374dd0101204c6f636174696f6e00010c78636d1506011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f510601445175657279526573706f6e7365496e666f0001186173736574735506012c417373657446696c74657200120030427579457865637574696f6e080110666565732906011441737365740001307765696768745f6c696d69741106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008506012458636d3c43616c6c3e0015002c536574417070656e64697804008506012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473210601184173736574730001187469636b6574dd0101204c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f776569676874240118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040021060118417373657473001c002c4578706563744173736574040021060118417373657473001d00304578706563744f726967696e04004d0601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400d90501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400f50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6534011c5665633c75383e000134726573706f6e73655f696e666f510601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578b101010c7533320001106e616d6534011c5665633c75383e00012c6d6f64756c655f6e616d6534011c5665633c75383e00012c63726174655f6d616a6f72b101010c75333200013c6d696e5f63726174655f6d696e6f72b101010c753332002200505265706f72745472616e736163745374617475730400510601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400e90101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bf10101244e6574776f726b496400012c64657374696e6174696f6ee1010140496e746572696f724c6f636174696f6e00010c78636d1506011c58636d3c28293e002600244c6f636b41737365740801146173736574290601144173736574000120756e6c6f636b6572dd0101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574290601144173736574000118746172676574dd0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365742906011441737365740001146f776e6572dd0101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365742906011441737365740001186c6f636b6572dd0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177780110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400dd0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69741106012c5765696768744c696d6974000130636865636b5f6f726967696e4d0601404f7074696f6e3c4c6f636174696f6e3e002f000091060c6470616c6c65745f726573747269637465645f78746f6b656e731870616c6c65741043616c6c040454000118207472616e7366657210012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e636500011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e000144646573745f7765696768745f6c696d69741106012c5765696768744c696d697400000464536565205b6050616c6c65743a3a7472616e73666572605d2e4c7472616e736665725f6d756c746961737365740c011461737365749506014c426f783c56657273696f6e656441737365743e00011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e000144646573745f7765696768745f6c696d69741106012c5765696768744c696d697400010490536565205b6050616c6c65743a3a7472616e736665725f6d756c74696173736574605d2e447472616e736665725f776974685f66656514012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e636500010c666565180128543a3a42616c616e636500011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e000144646573745f7765696768745f6c696d69741106012c5765696768744c696d697400020488536565205b6050616c6c65743a3a7472616e736665725f776974685f666565605d2e707472616e736665725f6d756c746961737365745f776974685f66656510011461737365749506014c426f783c56657273696f6e656441737365743e00010c6665659506014c426f783c56657273696f6e656441737365743e00011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e000144646573745f7765696768745f6c696d69741106012c5765696768744c696d6974000304b4536565205b6050616c6c65743a3a7472616e736665725f6d756c746961737365745f776974685f666565605d2e607472616e736665725f6d756c746963757272656e6369657310012863757272656e63696573990601805665633c28543a3a43757272656e637949642c20543a3a42616c616e6365293e0001206665655f6974656d10010c75333200011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e000144646573745f7765696768745f6c696d69741106012c5765696768744c696d6974000404a4536565205b6050616c6c65743a3a7472616e736665725f6d756c746963757272656e63696573605d2e507472616e736665725f6d756c746961737365747310011861737365747361060150426f783c56657273696f6e65644173736574733e0001206665655f6974656d10010c75333200011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e000144646573745f7765696768745f6c696d69741106012c5765696768744c696d697400050494536565205b6050616c6c65743a3a7472616e736665725f6d756c7469617373657473605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9506080c78636d3856657273696f6e6564417373657400010c08563204007905013876323a3a4d756c746941737365740001000856330400c505013876333a3a4d756c7469417373657400030008563404002906012476343a3a41737365740004000099060000029d06009d0600000408b9031800a1060c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65741043616c6c04045400012820726567697374657208010c77686f000130543a3a4163636f756e744964000114696e646578b4010c75313600000464536565205b6050616c6c65743a3a7265676973746572605d2e2864657265676973746572040114696e646578b4010c7531360001046c536565205b6050616c6c65743a3a64657265676973746572605d2e6c7472616e736163745f7468726f7567685f6465726976617469766518011064657374a5060134543a3a5472616e736163746f72000114696e646578b4010c75313600010c666565a906018043757272656e63795061796d656e743c43757272656e637949644f663c543e3e000128696e6e65725f63616c6c34011c5665633c75383e00012c7765696768745f696e666fb106013c5472616e7361637457656967687473000118726566756e64780110626f6f6c000204b0536565205b6050616c6c65743a3a7472616e736163745f7468726f7567685f64657269766174697665605d2e687472616e736163745f7468726f7567685f736f7665726569676e1c011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e0001246665655f7061796572110101504f7074696f6e3c543a3a4163636f756e7449643e00010c666565a906018043757272656e63795061796d656e743c43757272656e637949644f663c543e3e00011063616c6c34011c5665633c75383e00012c6f726967696e5f6b696e64990501284f726967696e4b696e6400012c7765696768745f696e666fb106013c5472616e7361637457656967687473000118726566756e64780110626f6f6c000304ac536565205b6050616c6c65743a3a7472616e736163745f7468726f7567685f736f7665726569676e605d2e447365745f7472616e736163745f696e666f1001206c6f636174696f6ecd040158426f783c56657273696f6e65644c6f636174696f6e3e0001547472616e736163745f65787472615f7765696768742401185765696768740001286d61785f7765696768742401185765696768740001707472616e736163745f65787472615f7765696768745f7369676e6564b90601384f7074696f6e3c5765696768743e00040488536565205b6050616c6c65743a3a7365745f7472616e736163745f696e666f605d2e5072656d6f76655f7472616e736163745f696e666f0401206c6f636174696f6ecd040158426f783c56657273696f6e65644c6f636174696f6e3e00050494536565205b6050616c6c65743a3a72656d6f76655f7472616e736163745f696e666f605d2e5c7472616e736163745f7468726f7567685f7369676e656414011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00010c666565a906018043757272656e63795061796d656e743c43757272656e637949644f663c543e3e00011063616c6c34011c5665633c75383e00012c7765696768745f696e666fb106013c5472616e7361637457656967687473000118726566756e64780110626f6f6c000604a0536565205b6050616c6c65743a3a7472616e736163745f7468726f7567685f7369676e6564605d2e487365745f6665655f7065725f7365636f6e6408013861737365745f6c6f636174696f6ecd040158426f783c56657273696f6e65644c6f636174696f6e3e0001386665655f7065725f7365636f6e64180110753132380007048c536565205b6050616c6c65743a3a7365745f6665655f7065725f7365636f6e64605d2e5472656d6f76655f6665655f7065725f7365636f6e6404013861737365745f6c6f636174696f6ecd040158426f783c56657273696f6e65644c6f636174696f6e3e00080498536565205b6050616c6c65743a3a72656d6f76655f6665655f7065725f7365636f6e64605d2e2c68726d705f6d616e6167650c0118616374696f6ebd06013448726d704f7065726174696f6e00010c666565a906018043757272656e63795061796d656e743c43757272656e637949644f663c543e3e00012c7765696768745f696e666fb106013c5472616e736163745765696768747300090470536565205b6050616c6c65743a3a68726d705f6d616e616765605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea5060c3872756e74696d655f636f6d6d6f6e3878636d5f7472616e736163746f72384e756c6c5472616e736163746f7200000000a9060c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65743c43757272656e63795061796d656e74042843757272656e6379496401b9030008012063757272656e6379ad06015043757272656e63793c43757272656e637949643e0001286665655f616d6f756e74210301304f7074696f6e3c753132383e0000ad060c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65742043757272656e6379042843757272656e6379496401b903010830417343757272656e637949640400b903012843757272656e637949640000003c41734d756c74694c6f636174696f6e0400cd040158426f783c56657273696f6e65644c6f636174696f6e3e00010000b1060c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65743c5472616e736163745765696768747300000801807472616e736163745f72657175697265645f7765696768745f61745f6d6f73742401185765696768740001386f766572616c6c5f776569676874b506014c4f7074696f6e3c5765696768744c696d69743e0000b50604184f7074696f6e0404540111060108104e6f6e6500000010536f6d65040011060000010000b90604184f7074696f6e04045401240108104e6f6e6500000010536f6d650400240000010000bd060c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65743448726d704f7065726174696f6e00011020496e69744f70656e0400c106013848726d70496e6974506172616d730000001841636365707404011c706172615f69645d01011850617261496400010014436c6f73650400c506013448726d704368616e6e656c49640002001843616e63656c0801286368616e6e656c5f6964c506013448726d704368616e6e656c49640001346f70656e5f726571756573747310010c75333200030000c1060c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65743848726d70496e6974506172616d7300000c011c706172615f69645d01011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c7533320000c5060c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665733448726d704368616e6e656c4964000008011873656e6465725d0101084964000124726563697069656e745d01010849640000c9060c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ecd0601484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e64657800000468536565205b6050616c6c65743a3a726561705f70616765605d2e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ecd0601484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d69742401185765696768740001048c536565205b6050616c6c65743a3a657865637574655f6f766572776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd06085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e6704005d01011850617261496400020000d1060c2c636861696e6272696467651870616c6c65741043616c6c040454000124347365745f7468726573686f6c640401247468726573686f6c6410010c75333200000478536565205b6050616c6c65743a3a7365745f7468726573686f6c64605d2e307365745f7265736f7572636508010869640401285265736f7572636549640001186d6574686f6434011c5665633c75383e00010474536565205b6050616c6c65743a3a7365745f7265736f75726365605d2e3c72656d6f76655f7265736f7572636504010869640401285265736f75726365496400020480536565205b6050616c6c65743a3a72656d6f76655f7265736f75726365605d2e3c77686974656c6973745f636861696e040108696408011c436861696e496400030480536565205b6050616c6c65743a3a77686974656c6973745f636861696e605d2e2c6164645f72656c6179657204010476000130543a3a4163636f756e74496400040470536565205b6050616c6c65743a3a6164645f72656c61796572605d2e3872656d6f76655f72656c617965720401286163636f756e745f6964000130543a3a4163636f756e7449640005047c536565205b6050616c6c65743a3a72656d6f76655f72656c61796572605d2e5061636b6e6f776c656467655f70726f706f73616c1001146e6f6e63652c01304465706f7369744e6f6e63650001187372635f696408011c436861696e4964000110725f69640401285265736f75726365496400011063616c6c25010170426f783c3c5420617320436f6e6669673e3a3a50726f706f73616c3e00060494536565205b6050616c6c65743a3a61636b6e6f776c656467655f70726f706f73616c605d2e3c72656a6563745f70726f706f73616c1001146e6f6e63652c01304465706f7369744e6f6e63650001187372635f696408011c436861696e4964000110725f69640401285265736f75726365496400011063616c6c25010170426f783c3c5420617320436f6e6669673e3a3a50726f706f73616c3e00070480536565205b6050616c6c65743a3a72656a6563745f70726f706f73616c605d2e3c6576616c5f766f74655f73746174650c01146e6f6e63652c01304465706f7369744e6f6e63650001187372635f696408011c436861696e496400012070726f706f73616c25010170426f783c3c5420617320436f6e6669673e3a3a50726f706f73616c3e00080480536565205b6050616c6c65743a3a6576616c5f766f74655f7374617465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed5060c4c6f726d6c5f61737365745f7265676973747279186d6f64756c651043616c6c0404540001083872656769737465725f61737365740801206d65746164617461d90601f041737365744d657461646174613c543a3a42616c616e63652c20543a3a437573746f6d4d657461646174612c20543a3a537472696e674c696d69743e00012061737365745f6964f10601484f7074696f6e3c543a3a417373657449643e0000047c536565205b6050616c6c65743a3a72656769737465725f6173736574605d2e307570646174655f61737365741c012061737365745f6964b9030128543a3a41737365744964000120646563696d616c734502012c4f7074696f6e3c7533323e0001106e616d65f50601984f7074696f6e3c426f756e6465645665633c75382c20543a3a537472696e674c696d69743e3e00011873796d626f6cf50601984f7074696f6e3c426f756e6465645665633c75382c20543a3a537472696e674c696d69743e3e00014c6578697374656e7469616c5f6465706f736974210301484f7074696f6e3c543a3a42616c616e63653e0001206c6f636174696f6ef90601844f7074696f6e3c4f7074696f6e3c56657273696f6e65644c6f636174696f6e3e3e0001286164646974696f6e616cfd0601644f7074696f6e3c543a3a437573746f6d4d657461646174613e00010474536565205b6050616c6c65743a3a7570646174655f6173736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9060c2c6f726d6c5f7472616974733861737365745f72656769737472793441737365744d657461646174610c1c42616c616e6365011838437573746f6d4d6574616461746101dd062c537472696e674c696d69740000180120646563696d616c7310010c7533320001106e616d657104016c426f756e6465645665633c75382c20537472696e674c696d69743e00011873796d626f6c7104016c426f756e6465645665633c75382c20537472696e674c696d69743e00014c6578697374656e7469616c5f6465706f73697418011c42616c616e63650001206c6f636174696f6eed0601644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001286164646974696f6e616cdd060138437573746f6d4d657461646174610000dd060c246366675f747970657318746f6b656e7338437573746f6d4d65746164617461000014013c7472616e736665726162696c697479e106016443726f7373436861696e5472616e736665726162696c6974790001206d696e7461626c65780110626f6f6c0001307065726d697373696f6e6564780110626f6f6c000134706f6f6c5f63757272656e6379780110626f6f6c0001506c6f63616c5f726570726573656e746174696f6ee90601504f7074696f6e3c4c6f63616c417373657449643e0000e1060c246366675f747970657318746f6b656e736443726f7373436861696e5472616e736665726162696c69747900010c104e6f6e650000000c58636d0400e506012c58636d4d65746164617461000100384c6971756964697479506f6f6c7300020000e5060c246366675f74797065730c78636d2c58636d4d6574616461746100000401386665655f7065725f7365636f6e642103013c4f7074696f6e3c42616c616e63653e0000e90604184f7074696f6e04045401c1030108104e6f6e6500000010536f6d650400c1030000010000ed0604184f7074696f6e04045401cd040108104e6f6e6500000010536f6d650400cd040000010000f10604184f7074696f6e04045401b9030108104e6f6e6500000010536f6d650400b9030000010000f50604184f7074696f6e0404540171040108104e6f6e6500000010536f6d65040071040000010000f90604184f7074696f6e04045401ed060108104e6f6e6500000010536f6d650400ed060000010000fd0604184f7074696f6e04045401dd060108104e6f6e6500000010536f6d650400dd06000001000001070c206f726d6c5f78636d186d6f64756c651043616c6c0404540001044473656e645f61735f736f7665726569676e08011064657374cd040158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676561050154426f783c56657273696f6e656458636d3c28293e3e00000488536565205b6050616c6c65743a3a73656e645f61735f736f7665726569676e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e05070c2870616c6c65745f65766d1870616c6c65741043616c6c04045400011020776974686472617708011c61646472657373210201104831363000011476616c756518013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7769746864726177605d2e1063616c6c240118736f7572636521020110483136300001187461726765742102011048313630000114696e70757434011c5665633c75383e00011476616c75651d050110553235360001246761735f6c696d69742c010c75363400013c6d61785f6665655f7065725f6761731d050110553235360001606d61785f7072696f726974795f6665655f7065725f676173090701304f7074696f6e3c553235363e0001146e6f6e6365090701304f7074696f6e3c553235363e00012c6163636573735f6c6973740d0701585665633c28483136302c205665633c483235363e293e00010454536565205b6050616c6c65743a3a63616c6c605d2e18637265617465200118736f757263652102011048313630000110696e697434011c5665633c75383e00011476616c75651d050110553235360001246761735f6c696d69742c010c75363400013c6d61785f6665655f7065725f6761731d050110553235360001606d61785f7072696f726974795f6665655f7065725f676173090701304f7074696f6e3c553235363e0001146e6f6e6365090701304f7074696f6e3c553235363e00012c6163636573735f6c6973740d0701585665633c28483136302c205665633c483235363e293e0002045c536565205b6050616c6c65743a3a637265617465605d2e1c63726561746532240118736f757263652102011048313630000110696e697434011c5665633c75383e00011073616c743001104832353600011476616c75651d050110553235360001246761735f6c696d69742c010c75363400013c6d61785f6665655f7065725f6761731d050110553235360001606d61785f7072696f726974795f6665655f7065725f676173090701304f7074696f6e3c553235363e0001146e6f6e6365090701304f7074696f6e3c553235363e00012c6163636573735f6c6973740d0701585665633c28483136302c205665633c483235363e293e00030460536565205b6050616c6c65743a3a63726561746532605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e090704184f7074696f6e040454011d050108104e6f6e6500000010536f6d6504001d0500000100000d07000002110700110700000408210229030015070c3c70616c6c65745f626173655f6665651870616c6c65741043616c6c040454000108507365745f626173655f6665655f7065725f67617304010c6665651d0501105532353600000494536565205b6050616c6c65743a3a7365745f626173655f6665655f7065725f676173605d2e387365745f656c6173746963697479040128656c61737469636974791907011c5065726d696c6c0001047c536565205b6050616c6c65743a3a7365745f656c6173746963697479605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e19070c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c75333200001d070c3c70616c6c65745f657468657265756d1870616c6c65741043616c6c040454000104207472616e7361637404012c7472616e73616374696f6e2107012c5472616e73616374696f6e00000464536565205b6050616c6c65743a3a7472616e73616374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e21070c20657468657265756d2c7472616e73616374696f6e345472616e73616374696f6e563200010c184c65676163790400250701444c65676163795472616e73616374696f6e0000001c45495032393330040035070148454950323933305472616e73616374696f6e0001001c45495031353539040041070148454950313535395472616e73616374696f6e0002000025070c20657468657265756d2c7472616e73616374696f6e444c65676163795472616e73616374696f6e00001c01146e6f6e63651d050110553235360001246761735f70726963651d050110553235360001246761735f6c696d69741d05011055323536000118616374696f6e290701445472616e73616374696f6e416374696f6e00011476616c75651d05011055323536000114696e70757434011442797465730001247369676e61747572652d0701505472616e73616374696f6e5369676e6174757265000029070c20657468657265756d2c7472616e73616374696f6e445472616e73616374696f6e416374696f6e0001081043616c6c0400210201104831363000000018437265617465000100002d070c20657468657265756d2c7472616e73616374696f6e505472616e73616374696f6e5369676e617475726500000c010476310701545472616e73616374696f6e5265636f76657279496400010472300110483235360001047330011048323536000031070c20657468657265756d2c7472616e73616374696f6e545472616e73616374696f6e5265636f766572794964000004002c010c753634000035070c20657468657265756d2c7472616e73616374696f6e48454950323933305472616e73616374696f6e00002c0120636861696e5f69642c010c7536340001146e6f6e63651d050110553235360001246761735f70726963651d050110553235360001246761735f6c696d69741d05011055323536000118616374696f6e290701445472616e73616374696f6e416374696f6e00011476616c75651d05011055323536000114696e707574340114427974657300012c6163636573735f6c697374390701284163636573734c6973740001306f64645f795f706172697479780110626f6f6c00010472300110483235360001047330011048323536000039070000023d07003d070c20657468657265756d2c7472616e73616374696f6e384163636573734c6973744974656d000008011c616464726573732102011c4164647265737300013073746f726167655f6b657973290301245665633c483235363e000041070c20657468657265756d2c7472616e73616374696f6e48454950313535395472616e73616374696f6e0000300120636861696e5f69642c010c7536340001146e6f6e63651d050110553235360001606d61785f7072696f726974795f6665655f7065725f6761731d0501105532353600013c6d61785f6665655f7065725f6761731d050110553235360001246761735f6c696d69741d05011055323536000118616374696f6e290701445472616e73616374696f6e416374696f6e00011476616c75651d05011055323536000114696e707574340114427974657300012c6163636573735f6c697374390701284163636573734c6973740001306f64645f795f706172697479780110626f6f6c00010472300110483235360001047330011048323536000045070c646178656c61725f676174657761795f707265636f6d70696c651870616c6c65741043616c6c0404540001082c7365745f6761746577617904011c61646472657373210201104831363000000470536565205b6050616c6c65743a3a7365745f67617465776179605d2e347365745f636f6e76657274657208011c69645f6861736830011048323536000124636f6e7665727465724907013c536f75726365436f6e76657274657200010478536565205b6050616c6c65743a3a7365745f636f6e766572746572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e490708646178656c61725f676174657761795f707265636f6d70696c653c536f75726365436f6e7665727465720000040118646f6d61696e55040118446f6d61696e00004d070c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577790101504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f790101504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e51070c4070616c6c65745f706f6f6c5f666565731870616c6c65741043616c6c0404540001183c70726f706f73655f6e65775f6665650c011c706f6f6c5f69642c0124543a3a506f6f6c49640001186275636b657481040134506f6f6c4665654275636b657400010c66656585040140506f6f6c466565496e666f4f663c543e00000480536565205b6050616c6c65743a3a70726f706f73655f6e65775f666565605d2e346170706c795f6e65775f66656508011c706f6f6c5f69642c0124543a3a506f6f6c49640001246368616e67655f696430011c543a3a4861736800010478536565205b6050616c6c65743a3a6170706c795f6e65775f666565605d2e2872656d6f76655f6665650401186665655f69642c0120543a3a46656549640002046c536565205b6050616c6c65743a3a72656d6f76655f666565605d2e286368617267655f6665650801186665655f69642c0120543a3a4665654964000118616d6f756e74180128543a3a42616c616e63650003046c536565205b6050616c6c65743a3a6368617267655f666565605d2e30756e6368617267655f6665650801186665655f69642c0120543a3a4665654964000118616d6f756e74180128543a3a42616c616e636500040474536565205b6050616c6c65743a3a756e6368617267655f666565605d2e687570646174655f706f7274666f6c696f5f76616c756174696f6e04011c706f6f6c5f69642c0124543a3a506f6f6c4964000504ac536565205b6050616c6c65743a3a7570646174655f706f7274666f6c696f5f76616c756174696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55070c3870616c6c65745f72656d61726b731870616c6c65741043616c6c0404540001041872656d61726b08011c72656d61726b73590701ac426f756e6465645665633c543a3a52656d61726b2c20543a3a4d617852656d61726b7350657243616c6c3e00011063616c6c2501017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e59070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d07045300000400690701185665633c543e00005d070c3872756e74696d655f636f6d6d6f6e1c72656d61726b731852656d61726b00010c204970667348617368040061070178426f756e6465645665633c75382c2049706673486173684c656e6774683e000000144e616d6564040065070178426f756e6465645665633c75382c204d61784e616d656452656d61726b3e000100104c6f616e08002c0118506f6f6c496400002c01184c6f616e49640002000061070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000065070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000069070000025d07006d070c4070616c6c65745f746f6b656e5f6d75781870616c6c65741043616c6c04045400010c1c6465706f73697408013063757272656e63795f6f7574b9030134543a3a43757272656e63794964000128616d6f756e745f6f7574180134543a3a42616c616e63654f757400000460536565205b6050616c6c65743a3a6465706f736974605d2e106275726e08013063757272656e63795f6f7574b9030134543a3a43757272656e63794964000128616d6f756e745f6f7574180134543a3a42616c616e63654f757400010454536565205b6050616c6c65743a3a6275726e605d2e286d617463685f737761700801206f726465725f69642c0128543a3a4f726465724964000118616d6f756e74180134543a3a42616c616e63654f75740002046c536565205b6050616c6c65743a3a6d617463685f73776170605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e71070c2873705f72756e74696d65187472616974732c426c616b6554776f3235360000000075070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000079070c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065731454616c6c790814566f746573011814546f74616c00000c011061796573180114566f7465730001106e617973180114566f74657300011c737570706f7274180114566f74657300007d070c4070616c6c65745f77686974656c6973741870616c6c6574144576656e7404045400010c3c43616c6c57686974656c697374656404012463616c6c5f6861736830011c543a3a486173680000005857686974656c697374656443616c6c52656d6f76656404012463616c6c5f6861736830011c543a3a486173680001006457686974656c697374656443616c6c4469737061746368656408012463616c6c5f6861736830011c543a3a48617368000118726573756c74810701684469737061746368526573756c7457697468506f7374496e666f000200047c54686520604576656e746020656e756d206f6620746869732070616c6c657481070418526573756c7408045401850704450189070108084f6b04008507000000000c45727204008907000001000085070c346672616d655f737570706f727420646973706174636840506f73744469737061746368496e666f000008013461637475616c5f776569676874b90601384f7074696f6e3c5765696768743e000120706179735f6665656001105061797300008907082873705f72756e74696d656444697370617463684572726f7257697468506f7374496e666f0410496e666f01850700080124706f73745f696e666f85070110496e666f0001146572726f7264013444697370617463684572726f7200008d070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736830011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736830011c543a3a48617368000114766f746564780110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736830011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736830011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736830011c543a3a48617368000118726573756c74a401384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736830011c543a3a48617368000118726573756c74a401384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736830011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e047c54686520604576656e746020656e756d206f6620746869732070616c6c657491070c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000004e054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f766564000104e854686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d6265727353776170706564000204d854776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740003041501546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000404844f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d790005046c5068616e746f6d206d656d6265722c206e6576657220757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657495070c2c70616c6c65745f666565731870616c6c6574144576656e74040454000110284665654368616e67656408010c6b657959030124543a3a4665654b657900010c66656518013042616c616e63654f663c543e0000002c466565546f417574686f7208011066726f6d000130543a3a4163636f756e74496400011c62616c616e636518013042616c616e63654f663c543e00010024466565546f4275726e08011066726f6d000130543a3a4163636f756e74496400011c62616c616e636518013042616c616e63654f663c543e00020034466565546f547265617375727908011066726f6d000130543a3a4163636f756e74496400011c62616c616e636518013042616c616e63654f663c543e000300047c54686520604576656e746020656e756d206f6620746869732070616c6c657499070c4870616c6c65745f706f6f6c5f73797374656d1870616c6c6574144576656e7404045400012828526562616c616e63656404011c706f6f6c5f69642c0124543a3a506f6f6c496400000474546865207472616e63686573207765726520726562616c616e6365642e344d61785265736572766553657404011c706f6f6c5f69642c0124543a3a506f6f6c496400010470546865206d617820726573657276652077617320757064617465642e2c45706f6368436c6f73656408011c706f6f6c5f69642c0124543a3a506f6f6c496400012065706f63685f6964100128543a3a45706f6368496400020450416e2065706f63682077617320636c6f7365642e44536f6c7574696f6e5375626d69747465640c011c706f6f6c5f69642c0124543a3a506f6f6c496400012065706f63685f6964100128543a3a45706f63684964000120736f6c7574696f6e9d0701a445706f6368536f6c7574696f6e3c543a3a42616c616e63652c20543a3a4d61785472616e636865733e00030458416e2065706f6368207761732065786563757465642e3445706f6368457865637574656408011c706f6f6c5f69642c0124543a3a506f6f6c496400012065706f63685f6964100128543a3a45706f6368496400040458416e2065706f6368207761732065786563757465642e1c4372656174656410011461646d696e000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e74496400011c706f6f6c5f69642c0124543a3a506f6f6c496400011c657373656e6365c5070140506f6f6c457373656e63654f663c543e0005044c4120706f6f6c2077617320637265617465642e1c557064617465640c010869642c0124543a3a506f6f6c496400010c6f6c64c5070140506f6f6c457373656e63654f663c543e00010c6e6577c5070140506f6f6c457373656e63654f663c543e0006044c4120706f6f6c2077617320757064617465642e3850726f706f7365644368616e67650c011c706f6f6c5f69642c0124543a3a506f6f6c49640001246368616e67655f696430011c543a3a486173680001186368616e6765d1070140543a3a52756e74696d654368616e67650007045841206368616e6765207761732070726f706f7365642e3852656c65617365644368616e67650c011c706f6f6c5f69642c0124543a3a506f6f6c49640001246368616e67655f696430011c543a3a486173680001186368616e6765d1070140543a3a52756e74696d654368616e67650008045441206368616e6765207761732072656c6561736564504e6567617469766542616c616e6365536865657410011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6e61765f61756d180128543a3a42616c616e63650001206e61765f66656573180128543a3a42616c616e636500011c72657365727665180128543a3a42616c616e63650009080d0154686520506f6f6c466565734e41562065786365656473207468652073756d206f66207468652041554d20616e642074686520746f74616c2072657365727665206f662074686520706f6f6c047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d070c4870616c6c65745f706f6f6c5f73797374656d20736f6c7574696f6e3445706f6368536f6c7574696f6e081c42616c616e636501182c4d61785472616e6368657301990401081c4865616c7468790400a10701944865616c746879536f6c7574696f6e3c42616c616e63652c204d61785472616e636865733e00000024556e6865616c7468790400a907019c556e6865616c746879536f6c7574696f6e3c42616c616e63652c204d61785472616e636865733e00010000a1070c4870616c6c65745f706f6f6c5f73797374656d20736f6c7574696f6e3c4865616c746879536f6c7574696f6e081c42616c616e636501182c4d61785472616e6368657301990400080120736f6c7574696f6ea50701a0426f756e6465645665633c5472616e636865536f6c7574696f6e2c204d61785472616e636865733e00011473636f726518011c42616c616e63650000a5070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016d03045300000400690301185665633c543e0000a9070c4870616c6c65745f706f6f6c5f73797374656d20736f6c7574696f6e44556e6865616c746879536f6c7574696f6e081c42616c616e636501182c4d61785472616e63686573019904001001147374617465ad07019c426f756e6465645665633c556e6865616c74687953746174652c204d61785472616e636865733e000120736f6c7574696f6ea50701a0426f756e6465645665633c5472616e636865536f6c7574696f6e2c204d61785472616e636865733e0001787269736b5f6275666665725f696d70726f76656d656e745f73636f726573b90701a04f7074696f6e3c426f756e6465645665633c42616c616e63652c204d61785472616e636865733e3e000164726573657276655f696d70726f76656d656e745f73636f72652103013c4f7074696f6e3c42616c616e63653e0000ad070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b107045300000400b50701185665633c543e0000b1070c4870616c6c65745f706f6f6c5f73797374656d20736f6c7574696f6e38556e6865616c7468795374617465000108484d61785265736572766556696f6c61746564000000544d696e5269736b42756666657256696f6c6174656400010000b507000002b10700b90704184f7074696f6e04045401bd070108104e6f6e6500000010536f6d650400bd070000010000bd070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540118045300000400c10701185665633c543e0000c1070000021800c5070c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f74797065732c506f6f6c457373656e6365142843757272656e6379496401b9031c42616c616e636501183c5472616e63686543757272656e637901490410526174650195032c537472696e674c696d69740165040014012063757272656e6379b903012843757272656e6379496400012c6d61785f7265736572766518011c42616c616e636500012c6d61785f6e61765f6167652c011c5365636f6e64730001386d696e5f65706f63685f74696d652c011c5365636f6e64730001207472616e63686573c90701dc5665633c5472616e636865457373656e63653c5472616e63686543757272656e63792c20526174652c20537472696e674c696d69743e3e0000c907000002cd0700cd070c4870616c6c65745f706f6f6c5f73797374656d207472616e63686573385472616e636865457373656e63650c3c5472616e63686543757272656e637901490410526174650195032c537472696e674c696d6974016504000c012063757272656e63794904013c5472616e63686543757272656e63790001087479690401445472616e636865547970653c526174653e0001206d657461646174616d0401705472616e6368654d657461646174613c537472696e674c696d69743e0000d1070c3872756e74696d655f636f6d6d6f6e1c6368616e6765733452756e74696d654368616e67650804540109051c4f7074696f6e7301d5070110144c6f616e730400d90701384c6f616e734368616e67653c543e000000404f7261636c65436f6c6c656374696f6e0400dd0701644f7261636c65436f6c6c656374696f6e4368616e67653c543e0001001c506f6f6c4665650400e1070144506f6f6c466565734368616e67653c543e000200305f556e726561636861626c6500030000d5070c3872756e74696d655f636f6d6d6f6e1c6368616e676573244661737444656c617900000000d907103070616c6c65745f6c6f616e7320656e7469746965731c6368616e676573184368616e676504045400010c104c6f616e08002c0124543a3a4c6f616e49640000e50301544c6f616e4d75746174696f6e3c543a3a526174653e00000018506f6c6963790400ed0301ec426f756e6465645665633c57726974654f666652756c653c543a3a526174653e2c20543a3a4d617857726974654f6666506f6c69637953697a653e000100305472616e736665724465627410002c0124543a3a4c6f616e496400002c0124543a3a4c6f616e49640000e1030138526570616964496e7075743c543e0000d90301445072696e636970616c496e7075743c543e00020000dd070c6070616c6c65745f6f7261636c655f636f6c6c656374696f6e147479706573184368616e676504045400010438436f6c6c656374696f6e496e666f040041050144436f6c6c656374696f6e496e666f3c543e00000000e1070c4070616c6c65745f706f6f6c5f66656573147479706573184368616e676504045400010424417070656e644665650c002c0120543a3a4665654964000081040134506f6f6c4665654275636b6574000085040140506f6f6c466565496e666f4f663c543e00000000e5070c3070616c6c65745f6c6f616e731870616c6c6574144576656e7404045400012c1c437265617465640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e49640001246c6f616e5f696e666f7903012c4c6f616e496e666f3c543e0000044841206c6f616e20776173206372656174656420426f72726f7765640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74d90301445072696e636970616c496e7075743c543e00010484416e20616d6f756e742077617320626f72726f77656420666f722061206c6f616e185265706169640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74e1030138526570616964496e7075743c543e0002047c416e20616d6f756e74207761732072657061696420666f722061206c6f616e285772697474656e4f66660c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e49640001187374617475730904015c57726974654f66665374617475733c543a3a526174653e0003045841206c6f616e20776173207772697474656e206f66661c4d7574617465640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e49640001206d75746174696f6ee50301544c6f616e4d75746174696f6e3c543a3a526174653e00040468416e20616374697665206c6f616e20776173206d75746174656418436c6f7365640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000128636f6c6c61746572616c8d03012841737365744f663c543e0005044441206c6f616e2077617320636c6f73656464506f7274666f6c696f56616c756174696f6e557064617465640c011c706f6f6c5f69642c0124543a3a506f6f6c496400012476616c756174696f6e180128543a3a42616c616e636500012c7570646174655f74797065e9070170506f7274666f6c696f56616c756174696f6e55706461746554797065000604bc54686520706f7274666f6c696f2076616c756174696f6e20666f72206120706f6f6c2077617320757064617465642e5457726974654f6666506f6c6963795570646174656408011c706f6f6c5f69642c0124543a3a506f6f6c4964000118706f6c696379ed0301ec426f756e6465645665633c57726974654f666652756c653c543a3a526174653e2c20543a3a4d617857726974654f6666506f6c69637953697a653e000704b0546865207772697465206f666620706f6c69637920666f72206120706f6f6c2077617320757064617465642e3c446562745472616e7366657272656414011c706f6f6c5f69642c0124543a3a506f6f6c496400013066726f6d5f6c6f616e5f69642c0124543a3a4c6f616e4964000128746f5f6c6f616e5f69642c0124543a3a4c6f616e49640001347265706169645f616d6f756e74e1030138526570616964496e7075743c543e000134626f72726f775f616d6f756e74d90301445072696e636970616c496e7075743c543e000804984465627420686173206265656e207472616e736665726564206265747765656e206c6f616e733444656274496e637265617365640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74d90301445072696e636970616c496e7075743c543e0009048444656274206f662061206c6f616e20686173206265656e20696e6372656173656434446562744465637265617365640c011c706f6f6c5f69642c0124543a3a506f6f6c496400011c6c6f616e5f69642c0124543a3a4c6f616e4964000118616d6f756e74e1030138526570616964496e7075743c543e000a048444656274206f662061206c6f616e20686173206265656e20646563726561736564047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e9070c246366675f747970657324706f7274666f6c696f70506f7274666f6c696f56616c756174696f6e557064617465547970650001081445786163740000001c496e657861637400010000ed070c4870616c6c65745f7065726d697373696f6e731870616c6c6574144576656e7404045400010c1441646465640c0108746f000130543a3a4163636f756e74496400011473636f706521040120543a3a53636f7065000110726f6c651504011c543a3a526f6c650000001c52656d6f7665640c011066726f6d000130543a3a4163636f756e74496400011473636f706521040120543a3a53636f7065000110726f6c651504011c543a3a526f6c650001001850757267656408011066726f6d000130543a3a4163636f756e74496400011473636f706521040120543a3a53636f7065000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f1070c6470616c6c65745f636f6c6c61746f725f616c6c6f776c6973741870616c6c6574144576656e7404045400010834436f6c6c61746f72416464656404012c636f6c6c61746f725f6964000138543a3a56616c696461746f724964000004a84120636f6c6c61746f7220686173206265656e20616464656420746f2074686520616c6c6f776c6973743c436f6c6c61746f7252656d6f76656404012c636f6c6c61746f725f6964000138543a3a56616c696461746f724964000104b84120636f6c6c61746f7220686173206265656e2072656d6f7665642066726f6d2074686520616c6c6f776c697374047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f5070c6070616c6c65745f726573747269637465645f746f6b656e731870616c6c6574144576656e74040454000108205472616e7366657210012c63757272656e63795f6964b9030134543a3a43757272656e6379496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650000044c5472616e73666572207375636365656465642e2842616c616e636553657410012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500010468412062616c616e6365207761732073657420627920726f6f742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f9070c3470616c6c65745f6272696467651870616c6c6574144576656e740404540001041852656d61726b08003001843c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4861736800000401285265736f757263654964000000047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fd070c5c70616c6c65745f696e7465726573745f6163637275616c1870616c6c6574144576656e74040454000100047c54686520604576656e746020656e756d206f6620746869732070616c6c657401080c3c70616c6c65745f6b657973746f72651870616c6c6574144576656e7404045400010c204b657941646465641001146f776e6572000130543a3a4163636f756e74496400010c6b657930011c543a3a4861736800011c707572706f73653d0401284b6579507572706f73650001206b65795f747970654104011c4b6579547970650000044041206b6579207761732061646465642e284b65795265766f6b65640c01146f776e6572000130543a3a4163636f756e74496400010c6b657930011c543a3a48617368000130626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e0001044841206b657920776173207265766f6b65642e284465706f73697453657404012c6e65775f6465706f736974180128543a3a42616c616e63650002044841206465706f73697420776173207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c657405080c4870616c6c65745f696e766573746d656e74731870616c6c6574144576656e7404045400013054496e766573744f7264657273436f6c6c6563746564140134696e766573746d656e745f69644904013c543a3a496e766573746d656e74496400010c77686f000130543a3a4163636f756e74496400014070726f6365737365645f6f7264657273090801305665633c4f7264657249643e000128636f6c6c656374696f6e0d08016c496e76657374436f6c6c656374696f6e3c543a3a416d6f756e743e00011c6f7574636f6d6511080138436f6c6c6563744f7574636f6d650000088046756c66696c6c6564206f7264657273207765726520636f6c6c65637465642e09015b696e766573746d656e745f69642c2077686f2c20636f6c6c65637465645f6f72646572732c20436f6c6c656374696f6e2c20436f6c6c6563744f7574636f6d655d5452656465656d4f7264657273436f6c6c6563746564140134696e766573746d656e745f69644904013c543a3a496e766573746d656e74496400010c77686f000130543a3a4163636f756e74496400014070726f6365737365645f6f7264657273090801305665633c4f7264657249643e000128636f6c6c656374696f6e1508016c52656465656d436f6c6c656374696f6e3c543a3a416d6f756e743e00011c6f7574636f6d6511080138436f6c6c6563744f7574636f6d650001088046756c66696c6c6564206f7264657273207765726520636f6c6c65637465642e09015b696e766573746d656e745f69642c2077686f2c20636f6c6c65637465645f6f72646572732c20436f6c6c656374696f6e2c20436f6c6c6563744f7574636f6d655d48496e766573744f7264657255706461746564100134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640001307375626d69747465645f61742c011c4f72646572496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180124543a3a416d6f756e740002040d01416e20696e76657374206f726465722077617320757064617465642e205b696e766573746d656e745f69642c206f726465725f69642c2077686f2c20616d6f756e745d4852656465656d4f7264657255706461746564100134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640001307375626d69747465645f61742c011c4f72646572496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180124543a3a416d6f756e740003040d01416e20696e76657374206f726465722077617320757064617465642e205b696e766573746d656e745f69642c206f726465725f69642c2077686f2c20616d6f756e745d4c496e766573744f7264657273436c65617265640c0134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640001206f726465725f69642c011c4f72646572496400012c66756c66696c6c6d656e741908019446756c66696c6c6d656e745769746850726963653c543a3a42616c616e6365526174696f3e0004080d01546f74616c4f7264657273206f6620696e766573746d656e747320776572652066756c66696c6c6564205b696e766573746d656e745f69642c206f726465725f69642c5446756c66696c6c6d656e745769746850726963655d4c52656465656d4f7264657273436c65617265640c0134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640001206f726465725f69642c011c4f72646572496400012c66756c66696c6c6d656e741908019446756c66696c6c6d656e745769746850726963653c543a3a42616c616e6365526174696f3e0005080d01546f74616c4f7264657273206f6620726564656d7074696f6e7320776572652066756c66696c6c6564205b696e766573746d656e745f69642c206f726465725f69642c5446756c66696c6c6d656e745769746850726963655d60496e766573744f7264657273496e50726f63657373696e670c0134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640001206f726465725f69642c011c4f72646572496400012c746f74616c5f6f726465721d080154546f74616c4f726465723c543a3a416d6f756e743e0006080901546f74616c4f7264657273206f6620696e766573746d656e74732061726520696e2070726f63657373696e67207374617465205b696e766573746d656e745f69642c546f726465725f69642c20546f74616c4f726465725d6052656465656d4f7264657273496e50726f63657373696e670c0134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640001206f726465725f69642c011c4f72646572496400012c746f74616c5f6f726465721d080154546f74616c4f726465723c543a3a416d6f756e743e000708f8546f74616c4f7264657273206f6620726564656d7074696f6e7320696e2070726f63657373696e67207374617465205b696e766573746d656e745f69642c546f726465725f69642c20546f74616c4f726465725d90496e76657374436f6c6c6563746564576974686f7574416374697665506f736974696f6e08010c77686f000130543a3a4163636f756e744964000134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640008080d015369676e616c732074686174206120636f6c6c656374206f6620696e766573746d656e74732063616c6c20776173207375636365737366756c2062757420746865726598776173206e6f206f72646572206f662061207573657220746f20636f6c6c6563742066726f6d9052656465656d436f6c6c6563746564576974686f7574416374697665506f736974696f6e08010c77686f000130543a3a4163636f756e744964000134696e766573746d656e745f69644904013c543a3a496e766573746d656e7449640009080d015369676e616c732074686174206120636f6c6c656374206f6620726564656d7074696f6e732063616c6c20776173207375636365737366756c2062757420746865726598776173206e6f206f72646572206f662061207573657220746f20636f6c6c6563742066726f6d8c496e76657374436f6c6c6563746564466f724e6f6e436c65617265644f72646572496408010c77686f000130543a3a4163636f756e744964000134696e766573746d656e745f69644904013c543a3a496e766573746d656e744964000a0811014120636f6c6c6563742063616c6c20666f722074686520696e766573746d656e74732068617070656e65642c20627574207468652063757272656e74204f726465724964486973206e6f742079657420636c65617265648c52656465656d436f6c6c6563746564466f724e6f6e436c65617265644f72646572496408010c77686f000130543a3a4163636f756e744964000134696e766573746d656e745f69644904013c543a3a496e766573746d656e744964000b0811014120636f6c6c6563742063616c6c20666f722074686520726564656d7074696f6e732068617070656e65642c20627574207468652063757272656e74204f726465724964486973206e6f742079657420636c6561726564047c54686520604576656e746020656e756d206f6620746869732070616c6c657409080000022c000d080c246366675f74797065732c696e766573746d656e747340496e76657374436f6c6c656374696f6e041c42616c616e63650118000801607061796f75745f696e766573746d656e745f696e7665737418011c42616c616e636500016c72656d61696e696e675f696e766573746d656e745f696e7665737418011c42616c616e636500001108084870616c6c65745f696e766573746d656e747338436f6c6c6563744f7574636f6d650001083846756c6c79436f6c6c6563746564000000485061727469616c6c79436f6c6c65637465640001000015080c246366675f74797065732c696e766573746d656e74734052656465656d436f6c6c656374696f6e041c42616c616e63650118000801607061796f75745f696e766573746d656e745f72656465656d18011c42616c616e636500016c72656d61696e696e675f696e766573746d656e745f72656465656d18011c42616c616e6365000019080c246366675f7479706573186f72646572735046756c66696c6c6d656e74576974685072696365043042616c616e6365526174696f01c903000801246f665f616d6f756e747103012c5065727175696e74696c6c0001147072696365c903013042616c616e6365526174696f00001d080c246366675f7479706573186f726465727328546f74616c4f72646572041c42616c616e6365011800040118616d6f756e7418011c42616c616e6365000021080c3870616c6c65745f726577617264731870616c6c6574144576656e740804540004490001143447726f7570526577617264656408012067726f75705f6964100128543a3a47726f75704964000118616d6f756e7418013c42616c616e63654f663c542c20493e000000385374616b654465706f736974656410012067726f75705f6964100128543a3a47726f7570496400012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e000100385374616b6557697468647261776e10012067726f75705f6964100128543a3a47726f7570496400012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e00020034526577617264436c61696d656410012067726f75705f6964100128543a3a47726f7570496400012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e0003004043757272656e637941747461636865640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400011066726f6d450201484f7074696f6e3c543a3a47726f757049643e000108746f100128543a3a47726f75704964000400047c54686520604576656e746020656e756d206f6620746869732070616c6c657425080c6070616c6c65745f6c69717569646974795f726577617264731870616c6c6574144576656e74040454000104204e657745706f63680c011c656e64735f6f6e2c012c4d6f6d656e744f663c543e000118726577617264180128543a3a42616c616e63650001306c6173745f6368616e6765732908013c45706f63684368616e6765733c543e000000047c54686520604576656e746020656e756d206f6620746869732070616c6c65742908086070616c6c65745f6c69717569646974795f726577617264733045706f63684368616e67657304045400001001206475726174696f6e0d01014c4f7074696f6e3c4d6f6d656e744f663c543e3e000118726577617264210301484f7074696f6e3c543a3a42616c616e63653e00011c776569676874732d0801f4426f756e64656442547265654d61703c543a3a47726f757049642c20543a3a5765696768742c20543a3a4d61784368616e67657350657245706f63683e00012863757272656e636965733d08010501426f756e64656442547265654d61703c543a3a43757272656e637949642c20543a3a47726f757049642c20543a3a4d61784368616e67657350657245706f63683e00002d080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01100456012c0453000004003108013842547265654d61703c4b2c20563e00003108042042547265654d617008044b01100456012c00040035080000003508000002390800390800000408102c003d080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01b903045601100453000004004108013842547265654d61703c4b2c20563e00004108042042547265654d617008044b01b9030456011000040045080000004508000002490800490800000408b90310004d080c5870616c6c65745f6c69717569646974795f706f6f6c731870616c6c6574144576656e740404540001043c496e636f6d696e674d65737361676508011873656e646572d5010134446f6d61696e4164647265737300011c6d6573736167655108011c4d65737361676500000868416e20696e636f6d696e67204c50206d6573736167652077617384646574656374656420616e6420697320667572746865722070726f636573736564047c54686520604576656e746020656e756d206f6620746869732070616c6c657451080c5870616c6c65745f6c69717569646974795f706f6f6c731c6d6573736167651c4d65737361676504304261746368436f6e74656e7401550801741c496e76616c6964000000304d65737361676550726f6f66040110686173680401205b75383b2033325d0001005c496e6974696174654d6573736167655265636f76657279080110686173680401205b75383b2033325d00011c6164647265737304011c4164647265737300020058446973707574654d6573736167655265636f7665727908011c6d6573736167650401205b75383b2033325d000118726f757465720401205b75383b2033325d0003001442617463680400550801304261746368436f6e74656e740004003c5363686564756c6555706772616465040120636f6e7472616374810101205b75383b2032305d0005003443616e63656c55706772616465040120636f6e7472616374810101205b75383b2032305d000600345265636f766572417373657473100120636f6e747261637404011c41646472657373000114617373657404011c41646472657373000124726563697069656e7404011c41646472657373000118616d6f756e741d050110553235360007006055706461746543656e74726966756765476173507269636504011470726963651801107531323800080020416464417373657408012063757272656e63791801107531323800012c65766d5f61646472657373810101205b75383b2032305d0009001c416464506f6f6c04011c706f6f6c5f69642c010c753634000a00284164645472616e63686518011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000128746f6b656e5f6e616d65650801545b75383b20544f4b454e5f4e414d455f53495a455d000130746f6b656e5f73796d626f6c04015c5b75383b20544f4b454e5f53594d424f4c5f53495a455d000120646563696d616c730801087538000110686f6f6b04011c41646472657373000b0028416c6c6f77417373657408011c706f6f6c5f69642c010c75363400012063757272656e637918011075313238000c0034446973616c6c6f77417373657408011c706f6f6c5f69642c010c75363400012063757272656e637918011075313238000d00485570646174655472616e636865507269636514011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e636865496400012063757272656e63791801107531323800011470726963651801107531323800012c636f6d70757465645f61742c011c5365636f6e6473000e00545570646174655472616e6368654d6574616461746110011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000128746f6b656e5f6e616d65650801545b75383b20544f4b454e5f4e414d455f53495a455d000130746f6b656e5f73796d626f6c04015c5b75383b20544f4b454e5f53594d424f4c5f53495a455d000f00445570646174655472616e636865486f6f6b0c011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000110686f6f6b04011c41646472657373001000385472616e736665724173736574730c012063757272656e637918011075313238000120726563656976657204011c41646472657373000118616d6f756e7418011075313238001100545472616e736665725472616e636865546f6b656e7314011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000118646f6d61696e6908014853657269616c697a61626c65446f6d61696e000120726563656976657204011c41646472657373000118616d6f756e7418011075313238001200445570646174655265737472696374696f6e0c011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e63686549640001187570646174656d0801605570646174655265737472696374696f6e4d657373616765001300384465706f7369745265717565737414011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e637918011075313238000118616d6f756e74180110753132380014003452656465656d5265717565737414011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e637918011075313238000118616d6f756e74180110753132380015005c46756c66696c6c65644465706f7369745265717565737418011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e63791801107531323800013c63757272656e63795f7061796f7574180110753132380001547472616e6368655f746f6b656e735f7061796f7574180110753132380016005846756c66696c6c656452656465656d5265717565737418011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e63791801107531323800013c63757272656e63795f7061796f7574180110753132380001547472616e6368655f746f6b656e735f7061796f7574180110753132380017005043616e63656c4465706f7369745265717565737410011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e6379180110753132380018004c43616e63656c52656465656d5265717565737410011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e6379180110753132380019007446756c66696c6c656443616e63656c4465706f7369745265717565737418011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e63791801107531323800013c63757272656e63795f7061796f75741801107531323800015c66756c66696c6c65645f696e766573745f616d6f756e7418011075313238001a007046756c66696c6c656443616e63656c52656465656d5265717565737414011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e6379180110753132380001547472616e6368655f746f6b656e735f7061796f757418011075313238001b00505472696767657252656465656d5265717565737414011c706f6f6c5f69642c010c7536340001287472616e6368655f69649d0201245472616e6368654964000120696e766573746f7204011c4164647265737300012063757272656e637918011075313238000118616d6f756e7418011075313238001c000055080c5870616c6c65745f6c69717569646974795f706f6f6c731c6d6573736167653442617463684d6573736167657300000400590801e0426f756e6465645665633c4e6f42617463684d6573736167652c20436f6e73745533323c4d41585f42415443485f4d455353414745533e3e000059080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d08045300000400610801185665633c543e00005d080c5870616c6c65745f6c69717569646974795f706f6f6c731c6d657373616765384e6f42617463684d657373616765000004005108011c4d657373616765000061080000025d0800650800000380000000080069080c5870616c6c65745f6c69717569646974795f706f6f6c731c6d6573736167654853657269616c697a61626c65446f6d61696e00000800080108753800002c010c75363400006d080c5870616c6c65745f6c69717569646974795f706f6f6c731c6d657373616765605570646174655265737472696374696f6e4d6573736167650001101c496e76616c6964000000305570646174654d656d6265720801186d656d62657204011c4164647265737300012c76616c69645f756e74696c2c011c5365636f6e647300010018467265657a6504011c6164647265737304011c4164647265737300020020556e667265657a6504011c6164647265737304011c416464726573730003000071080c5070616c6c65745f706f6f6c5f72656769737472791870616c6c6574144576656e74040454000114285265676973746572656404011c706f6f6c5f69642c0124543a3a506f6f6c4964000004584120706f6f6c2077617320726567697374657265642e405570646174655265676973746572656404011c706f6f6c5f69642c0124543a3a506f6f6c4964000104744120706f6f6c207570646174652077617320726567697374657265642e38557064617465457865637574656404011c706f6f6c5f69642c0124543a3a506f6f6c49640002046c4120706f6f6c20757064617465207761732065786563757465642e3055706461746553746f72656404011c706f6f6c5f69642c0124543a3a506f6f6c4964000304b44120706f6f6c20757064617465207761732073746f72656420666f72206c6174657220657865637574696f6e2e2c4d6574616461746153657408011c706f6f6c5f69642c0124543a3a506f6f6c49640001206d6574616461746175080188426f756e6465645665633c75382c20543a3a4d617853697a654d657461646174613e00040458506f6f6c206d6574616461746120776173207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000079080c3870616c6c65745f726577617264731870616c6c6574144576656e740804540004490001143447726f7570526577617264656408012067726f75705f6964100128543a3a47726f75704964000118616d6f756e7418013c42616c616e63654f663c542c20493e000000385374616b654465706f736974656410012067726f75705f6964100128543a3a47726f7570496400012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e000100385374616b6557697468647261776e10012067726f75705f6964100128543a3a47726f7570496400012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e00020034526577617264436c61696d656410012067726f75705f6964100128543a3a47726f7570496400012c63757272656e63795f6964b9030134543a3a43757272656e637949640001286163636f756e745f6964000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e0003004043757272656e637941747461636865640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400011066726f6d450201484f7074696f6e3c543a3a47726f757049643e000108746f100128543a3a47726f75704964000400047c54686520604576656e746020656e756d206f6620746869732070616c6c65747d080c5070616c6c65745f626c6f636b5f726577617264731870616c6c6574144576656e74040454000108284e657753657373696f6e0c013c636f6c6c61746f725f726577617264180128543a3a42616c616e636500015c74726561737572795f696e666c6174696f6e5f726174659503011c543a3a526174650001306c6173745f6368616e6765738108014453657373696f6e4368616e6765733c543e0000006053657373696f6e416476616e63656d656e744661696c65640401146572726f7264013444697370617463684572726f72000100047c54686520604576656e746020656e756d206f6620746869732070616c6c65748108085070616c6c65745f626c6f636b5f726577617264733853657373696f6e4368616e6765730404540000140124636f6c6c61746f727385080148436f6c6c61746f724368616e6765733c543e000138636f6c6c61746f725f636f756e744502012c4f7074696f6e3c7533323e00013c636f6c6c61746f725f726577617264210301484f7074696f6e3c543a3a42616c616e63653e00015c74726561737572795f696e666c6174696f6e5f726174658d08013c4f7074696f6e3c543a3a526174653e00012c6c6173745f7570646174652c011c5365636f6e647300008508085070616c6c65745f626c6f636b5f726577617264733c436f6c6c61746f724368616e676573040454000008010c696e63890801a4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6c6c61746f72733e00010c6f7574890801a4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6c6c61746f72733e000089080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004009401185665633c543e00008d0804184f7074696f6e0404540195030108104e6f6e6500000010536f6d6504009503000001000091080c6470616c6c65745f7472616e736665725f616c6c6f776c6973741870616c6c6574144576656e7404045400011c605472616e73666572416c6c6f77616e63654372656174656414014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e637949640001207265636569766572c904012c543a3a4c6f636174696f6e000128616c6c6f7765645f6174100144426c6f636b4e756d626572466f723c543e000128626c6f636b65645f6174100144426c6f636b4e756d626572466f723c543e000004d44576656e7420666f72207375636365737366756c206372656174696f6e206f662061207472616e7366657220616c6c6f77616e6365605472616e73666572416c6c6f77616e636552656d6f76656414014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e637949640001207265636569766572c904012c543a3a4c6f636174696f6e000128616c6c6f7765645f6174100144426c6f636b4e756d626572466f723c543e000128626c6f636b65645f6174100144426c6f636b4e756d626572466f723c543e000104e04576656e7420666f72207375636365737366756c2072656d6f76616c206f66207472616e7366657220616c6c6f77616e6365207065726d735c5472616e73666572416c6c6f77616e63655075726765640c014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e637949640001207265636569766572c904012c543a3a4c6f636174696f6e000204e04576656e7420666f72207375636365737366756c2072656d6f76616c206f66207472616e7366657220616c6c6f77616e6365207065726d73645472616e73666572416c6c6f77616e636544656c61794164640c014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e6379496400011464656c6179100144426c6f636b4e756d626572466f723c543e000304884576656e7420666f7220416c6c6f77616e63652064656c6179206372656174696f6e705472616e73666572416c6c6f77616e636544656c61795570646174650c014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e6379496400011464656c6179100144426c6f636b4e756d626572466f723c543e000404804576656e7420666f7220416c6c6f77616e63652064656c617920757064617465b0546f67676c655472616e73666572416c6c6f77616e636544656c61794675747572654d6f6469666961626c650c014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e637949640001546d6f6469666961626c655f6f6e63655f6166746572450201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000504d44576656e7420666f7220416c6c6f77616e63652064656c617920667574757265206d6f64696669636174696f6e20616c6c6f7765646c5472616e73666572416c6c6f77616e636544656c6179507572676508014473656e6465725f6163636f756e745f6964000130543a3a4163636f756e74496400012c63757272656e63795f6964c5040134543a3a43757272656e63794964000604844576656e7420666f7220416c6c6f77616e63652064656c61792072656d6f76616c047c54686520604576656e746020656e756d206f6620746869732070616c6c657495080c7870616c6c65745f6c69717569646974795f706f6f6c735f676174657761791870616c6c6574144576656e740404540001103c446f6d61696e526f75746572536574080118646f6d61696e55040118446f6d61696e000118726f7574657205050124543a3a526f757465720000049854686520726f7574657220666f72206120676976656e20646f6d61696e20776173207365742e34496e7374616e63654164646564040120696e7374616e6365d5010134446f6d61696e4164647265737300010488416e20696e7374616e63652077617320616464656420746f206120646f6d61696e2e3c496e7374616e636552656d6f766564040120696e7374616e6365d5010134446f6d61696e4164647265737300020498416e20696e7374616e6365207761732072656d6f7665642066726f6d206120646f6d61696e2e50446f6d61696e486f6f6b41646472657373536574080118646f6d61696e55040118446f6d61696e000130686f6f6b5f61646472657373810101205b75383b2032305d000304cc54686520646f6d61696e20686f6f6b20616464726573732077617320696e697469616c697a6564206f7220757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657499080c4470616c6c65745f6f726465725f626f6f6b1870616c6c6574144576656e74040454000114304f72646572437265617465641c01206f726465725f69642c013c543a3a4f7264657249644e6f6e636500013c63726561746f725f6163636f756e74000130543a3a4163636f756e74496400012c63757272656e63795f696eb9030134543a3a43757272656e6379496400013063757272656e63795f6f7574b9030134543a3a43757272656e63794964000128616d6f756e745f6f7574180134543a3a42616c616e63654f75740001686d696e5f66756c66696c6c6d656e745f616d6f756e745f6f7574180134543a3a42616c616e63654f7574000114726174696f310501504f72646572526174696f3c543a3a526174696f3e0000049c4576656e7420656d6974746564207768656e20616e206f7264657220697320637265617465642e384f7264657243616e63656c6c656408011c6163636f756e74000130543a3a4163636f756e7449640001206f726465725f69642c013c543a3a4f7264657249644e6f6e6365000104a44576656e7420656d6974746564207768656e20616e206f726465722069732063616e63656c6c65642e304f72646572557064617465641401206f726465725f69642c013c543a3a4f7264657249644e6f6e636500011c6163636f756e74000130543a3a4163636f756e744964000128616d6f756e745f6f7574180134543a3a42616c616e63654f7574000114726174696f310501504f72646572526174696f3c543a3a526174696f3e0001686d696e5f66756c66696c6c6d656e745f616d6f756e745f6f7574180134543a3a42616c616e63654f75740002049c4576656e7420656d6974746564207768656e20616e206f7264657220697320757064617465642e404f7264657246756c66696c6c6d656e742001206f726465725f69642c013c543a3a4f7264657249644e6f6e636500013c706c6163696e675f6163636f756e74000130543a3a4163636f756e74496400014866756c66696c6c696e675f6163636f756e74000130543a3a4163636f756e74496400014c7061727469616c5f66756c66696c6c6d656e74780110626f6f6c00014866756c66696c6c6d656e745f616d6f756e74180134543a3a42616c616e63654f757400012c63757272656e63795f696eb9030134543a3a43757272656e6379496400013063757272656e63795f6f7574b9030134543a3a43757272656e63794964000114726174696fc9030120543a3a526174696f000310a44576656e7420656d6974746564207768656e20616e206f726465722069732066756c66696c6c65642ebc43616e20626520666f7220656974686572207061727469616c206f7220746f74616c2066756c66696c6c6d656e742e0501436f6e7461696e7320616d6f756e742066756c66696c6c65642c20616e6420776865746865722066756c66696c6c6d656e7420776173207061727469616c206f721466756c6c2e344665656465724368616e6765640401246665656465725f69643505012c543a3a4665656465724964000404cc4576656e7420656d6974746564207768656e20612076616c69642074726164696e6720706169722069732072656d6f7665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d080c6870616c6c65745f666f726569676e5f696e766573746d656e74731870616c6c6574144576656e7404045400010c5053776170437265617465644f72557064617465640c010c77686f000130543a3a4163636f756e74496400011c737761705f6964a10801245377617049643c543e00011073776170a9080124537761704f663c543e000000385377617046756c6c66696c6c656414010c77686f000130543a3a4163636f756e74496400011c737761705f6964a10801245377617049643c543e00012472656d61696e696e67a9080124537761704f663c543e000128737761707065645f696e180138543a3a5377617042616c616e636500012c737761707065645f6f7574180138543a3a5377617042616c616e6365000100345377617043616e63656c6c65640c010c77686f000130543a3a4163636f756e74496400011c737761705f6964a10801245377617049643c543e00011073776170a9080124537761704f663c543e000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a108000004084904a50800a508086870616c6c65745f666f726569676e5f696e766573746d656e747318416374696f6e00010828496e766573746d656e7400000028526564656d7074696f6e00010000a9080c286366675f74726169747314737761707310537761700818416d6f756e7401182043757272656e637901b903000c012c63757272656e63795f696eb903012043757272656e637900013063757272656e63795f6f7574b903012043757272656e6379000128616d6f756e745f6f7574180118416d6f756e740000ad080c4870616c6c65745f6f7261636c655f666565641870616c6c6574144576656e740404540001040c4665640c0118666565646572bd0101244665656465723c543e00010c6b6579b5030130543a3a4f7261636c654b657900011476616c7565c9030138543a3a4f7261636c6556616c7565000000047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b1080c6070616c6c65745f6f7261636c655f636f6c6c656374696f6e1870616c6c6574144576656e740404540001102041646465644b6579080134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e496400010c6b6579b5030130543a3a4f7261636c654b65790000002852656d6f7665644b6579080134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e496400010c6b6579b5030130543a3a4f7261636c654b65790001005455706461746564436f6c6c656374696f6e496e666f080134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e496400013c636f6c6c656374696f6e5f696e666f4105016074797065733a3a436f6c6c656374696f6e496e666f3c543e0002004455706461746564436f6c6c656374696f6e080134636f6c6c656374696f6e5f69642c013c543a3a436f6c6c656374696f6e49640001306b6579735f7570646174656410010c753332000300047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b5080c4470616c6c65745f616e63686f72735f76321870616c6c6574144576656e7404045400010c2c416e63686f7241646465641401286163636f756e745f6964000130543a3a4163636f756e74496400012c646f63756d656e745f696418011075313238000140646f63756d656e745f76657273696f6e2c010c7536340001106861736830011c543a3a4861736800011c6465706f736974180128543a3a42616c616e636500000450416e20616e63686f72207761732061646465642e34416e63686f7252656d6f7665641401286163636f756e745f6964000130543a3a4163636f756e74496400012c646f63756d656e745f696418011075313238000140646f63756d656e745f76657273696f6e2c010c7536340001106861736830011c543a3a4861736800011c6465706f736974180128543a3a42616c616e636500010458416e20616e63686f72207761732072656d6f7665642e284465706f73697453657404012c6e65775f6465706f736974180128543a3a42616c616e63650002044841206465706f73697420776173207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b9080c9070616c6c65745f6c69717569646974795f706f6f6c735f676174657761795f71756575651870616c6c6574144576656e7404045400010c404d6573736167655375626d69747465640801146e6f6e63652c013c543a3a4d6573736167654e6f6e636500011c6d657373616765bd080128543a3a4d6573736167650000046041206d65737361676520776173207375626d69747465642e5c4d657373616765457865637574696f6e537563636573730801146e6f6e63652c013c543a3a4d6573736167654e6f6e636500011c6d657373616765bd080128543a3a4d657373616765000104684d65737361676520657865637574696f6e20737563636573732e5c4d657373616765457865637574696f6e4661696c7572650c01146e6f6e63652c013c543a3a4d6573736167654e6f6e636500011c6d657373616765bd080128543a3a4d6573736167650001146572726f7264013444697370617463684572726f72000204684d65737361676520657865637574696f6e206661696c7572652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bd080c7870616c6c65745f6c69717569646974795f706f6f6c735f676174657761791c6d65737361676538476174657761794d65737361676508244163636f756e74496401001c4d65737361676501510801081c496e626f756e64080138646f6d61696e5f61646472657373d5010134446f6d61696e4164647265737300011c6d6573736167655108011c4d657373616765000000204f7574626f756e640c011873656e6465720001244163636f756e74496400012c64657374696e6174696f6e55040118446f6d61696e00011c6d6573736167655108011c4d65737361676500010000c1080c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c5080c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65c908015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696edd0101204c6f636174696f6e00012c64657374696e6174696f6edd0101204c6f636174696f6e00011c6d6573736167651506011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696edd0101204c6f636174696f6e00012071756572795f69642c011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f69642c011c51756572794964000120726573706f6e736539060120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f69642c011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f69642c011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687424011857656967687400014c6d61785f62756467657465645f77656967687424011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f69642c011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f69642c011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696edd0101204c6f636174696f6e00012071756572795f69642c011c5175657279496400014465787065637465645f6c6f636174696f6e4d0601404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696edd0101204c6f636174696f6e00012071756572795f69642c011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f69642c011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368300110483235360001186f726967696edd0101204c6f636174696f6e0001186173736574736106013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6edd0101204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374210601184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6edd0101204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6edd0101204c6f636174696f6e00012071756572795f69642c011c517565727949640001146572726f72e105012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ecd04014456657273696f6e65644c6f636174696f6e00012071756572795f69642c011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696edd0101204c6f636174696f6e00012071756572795f69642c011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696edd0101204c6f636174696f6e00012071756572795f69642c011c5175657279496400014065787065637465645f71756572696572dd0101204c6f636174696f6e0001506d617962655f61637475616c5f717565726965724d0601404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6edd0101204c6f636174696f6e000110636f7374210601184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6edd0101204c6f636174696f6e000110636f7374210601184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6edd0101204c6f636174696f6e000110636f7374210601184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67dd0101204c6f636174696f6e0001106665657321060118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368300110483235360001186f726967696edd0101204c6f636174696f6e0001186173736574736106013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c908102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656424011857656967687400000028496e636f6d706c657465080110757365642401185765696768740001146572726f72e10501144572726f72000100144572726f720401146572726f72e10501144572726f7200020000cd080c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000c908011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d1080c5470616c6c65745f78636d5f7472616e736163746f721870616c6c6574144576656e7404045400012c505472616e736163746564446572697661746976651001286163636f756e745f6964000130543a3a4163636f756e74496400011064657374dd0101204c6f636174696f6e00011063616c6c34011c5665633c75383e000114696e646578b4010c75313600000439015472616e7361637465642074686520696e6e65722063616c6c207468726f75676820612064657269766174697665206163636f756e7420696e20612064657374696e6174696f6e20636861696e2e4c5472616e736163746564536f7665726569676e0c01246665655f7061796572110101504f7074696f6e3c543a3a4163636f756e7449643e00011064657374dd0101204c6f636174696f6e00011063616c6c34011c5665633c75383e00010425015472616e736163746564207468652063616c6c207468726f7567682074686520736f7665726569676e206163636f756e7420696e20612064657374696e6174696f6e20636861696e2e405472616e7361637465645369676e65640c01246665655f7061796572000130543a3a4163636f756e74496400011064657374dd0101204c6f636174696f6e00011063616c6c34011c5665633c75383e00020411015472616e736163746564207468652063616c6c207468726f7567682061207369676e6564206163636f756e7420696e20612064657374696e6174696f6e20636861696e2e5052656769737465726564446572697661746976650801286163636f756e745f6964000130543a3a4163636f756e744964000114696e646578b4010c753136000304c0526567697374657265642061206465726976617469766520696e64657820666f7220616e206163636f756e742069642e5844655265676973746572656444657269766174697665040114696e646578b4010c753136000400385472616e736163744661696c65640401146572726f72e105012058636d4572726f720005043c5472616e73616374206661696c65644c5472616e73616374496e666f4368616e6765640801206c6f636174696f6edd0101204c6f636174696f6e00012c72656d6f74655f696e666fd508017c52656d6f74655472616e73616374496e666f576974684d61785765696768740006049c4368616e67656420746865207472616e7361637420696e666f206f662061206c6f636174696f6e4c5472616e73616374496e666f52656d6f7665640401206c6f636174696f6edd0101204c6f636174696f6e0007049c52656d6f76656420746865207472616e7361637420696e666f206f662061206c6f636174696f6e5c446573744665655065725365636f6e644368616e6765640801206c6f636174696f6edd0101204c6f636174696f6e0001386665655f7065725f7365636f6e64180110753132380008045c53657420646573742066656520706572207365636f6e645c446573744665655065725365636f6e6452656d6f7665640401206c6f636174696f6edd0101204c6f636174696f6e0009046852656d6f766520646573742066656520706572207365636f6e644848726d704d616e6167656d656e7453656e74040118616374696f6ebd06013448726d704f7065726174696f6e000a048c48524d50206d616e61676520616374696f6e2073756363657366756c6c792073656e74047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d5080c5470616c6c65745f78636d5f7472616e736163746f721870616c6c65747c52656d6f74655472616e73616374496e666f576974684d617857656967687400000c01547472616e736163745f65787472615f7765696768742401185765696768740001286d61785f7765696768742401185765696768740001707472616e736163745f65787472615f7765696768745f7369676e6564b90601384f7074696f6e3c5765696768743e0000d9080c306f726d6c5f78746f6b656e73186d6f64756c65144576656e74040454000104445472616e7366657272656441737365747310011873656e646572000130543a3a4163636f756e7449640001186173736574732106011841737365747300010c66656529060114417373657400011064657374dd0101204c6f636174696f6e000004745472616e7366657272656420604173736574602077697468206665652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dd080c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643001104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ecd0601484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72e108014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643001104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ecd0601484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656424011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373780110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ecd0601484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ecd0601484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e10810346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400240118576569676874000300145969656c6400040000e5080c2c6f726d6c5f746f6b656e73186d6f64756c65144576656e740404540001441c456e646f7765640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f73740c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000108ec416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77c84578697374656e7469616c4465706f7369742c20726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e7366657210012c63757272656e63795f6964b9030134543a3a43757272656e6379496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2052657365727665640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000304e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e72657365727665640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656414012c63757272656e63795f6964b9030134543a3a43757272656e6379496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500011873746174757388013442616c616e6365537461747573000508f4536f6d652072657365727665642062616c616e63652077617320726570617472696174656420286d6f7665642066726f6d20726573657276656420746f44616e6f74686572206163636f756e74292e2842616c616e636553657410012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e63650001207265736572766564180128543a3a42616c616e636500060468412062616c616e6365207761732073657420627920726f6f742e40546f74616c49737375616e636553657408012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e6365000704b854686520746f74616c2069737375616e6365206f6620616e2063757272656e637920686173206265656e207365742457697468647261776e0c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000804ec536f6d652062616c616e63657320776572652077697468647261776e2028652e672e2070617920666f72207472616e73616374696f6e20666565291c536c617368656410012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e74496400012c667265655f616d6f756e74180128543a3a42616c616e636500013c72657365727665645f616d6f756e74180128543a3a42616c616e6365000904d4536f6d652062616c616e636573207765726520736c61736865642028652e672e2064756520746f206d69732d6265686176696f7229244465706f73697465640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a04984465706f736974656420736f6d652062616c616e636520696e746f20616e206163636f756e741c4c6f636b53657410011c6c6f636b5f69647d0201384c6f636b4964656e74696669657200012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b0454536f6d652066756e647320617265206c6f636b65642c4c6f636b52656d6f7665640c011c6c6f636b5f69647d0201384c6f636b4964656e74696669657200012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000c047c536f6d65206c6f636b65642066756e6473207765726520756e6c6f636b6564184c6f636b65640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d0474536f6d6520667265652062616c616e636520776173206c6f636b65642e20556e6c6f636b65640c012c63757272656e63795f6964b9030134543a3a43757272656e6379496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000e0478536f6d65206c6f636b65642062616c616e6365207761732066726565642e1849737375656408012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e6365000f002452657363696e64656408012c63757272656e63795f6964b9030134543a3a43757272656e63794964000118616d6f756e74180128543a3a42616c616e6365001000047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e9080c2c636861696e6272696467651870616c6c6574144576656e740404540001345c52656c617965725468726573686f6c644368616e676564040010010c753332000004a8566f7465207468726573686f6c6420686173206368616e67656420286e65775f7468726573686f6c642940436861696e57686974656c6973746564040008011c436861696e4964000104b0436861696e206e6f7720617661696c61626c6520666f72207472616e73666572732028636861696e5f6964293052656c6179657241646465640400000130543a3a4163636f756e7449640002045052656c6179657220616464656420746f207365743852656c6179657252656d6f7665640400000130543a3a4163636f756e7449640003046052656c617965722072656d6f7665642066726f6d207365744046756e6769626c655472616e73666572140008011c436861696e496400002c01304465706f7369744e6f6e636500000401285265736f75726365496400001d05011055323536000034011c5665633c75383e000404990146756e676c69626c655472616e7366657220697320666f722072656c6179696e672066756e6769626c65732028646573745f69642c206e6f6e63652c207265736f757263655f69642c20616d6f756e742c20726563697069656e742c206d65746164617461294c4e6f6e46756e6769626c655472616e73666572180008011c436861696e496400002c01304465706f7369744e6f6e636500000401285265736f757263654964000034011c5665633c75383e000034011c5665633c75383e000034011c5665633c75383e00050495014e6f6e46756e6769626c655472616e7366657220697320666f722072656c6179696e67204e4654532028646573745f69642c206e6f6e63652c207265736f757263655f69642c20746f6b656e5f69642c20726563697069656e742c206d65746164617461293c47656e657269635472616e73666572100008011c436861696e496400002c01304465706f7369744e6f6e636500000401285265736f757263654964000034011c5665633c75383e000604550147656e657269635472616e7366657220697320666f7220612067656e657269632064617461207061796c6f61642028646573745f69642c206e6f6e63652c207265736f757263655f69642c206d65746164617461291c566f7465466f720c0008011c436861696e496400002c01304465706f7369744e6f6e63650000000130543a3a4163636f756e74496400070490566f7465207375626d697474656420696e206661766f7572206f662070726f706f73616c2c566f7465416761696e73740c0008011c436861696e496400002c01304465706f7369744e6f6e63650000000130543a3a4163636f756e74496400080478566f74207375626d697474656420616761696e73742070726f706f73616c4050726f706f73616c417070726f766564080008011c436861696e496400002c01304465706f7369744e6f6e636500090480566f74696e67207375636365737366756c20666f7220612070726f706f73616c4050726f706f73616c52656a6563746564080008011c436861696e496400002c01304465706f7369744e6f6e6365000a0468566f74696e672072656a656374656420612070726f706f73616c4450726f706f73616c537563636565646564080008011c436861696e496400002c01304465706f7369744e6f6e6365000b046c457865637574696f6e206f662063616c6c207375636365656465643850726f706f73616c4661696c6564080008011c436861696e496400002c01304465706f7369744e6f6e6365000c0460457865637574696f6e206f662063616c6c206661696c6564047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ed080c4c6f726d6c5f61737365745f7265676973747279186d6f64756c65144576656e740404540001083c52656769737465726564417373657408012061737365745f6964b9030128543a3a417373657449640001206d65746164617461d90601f041737365744d657461646174613c543a3a42616c616e63652c20543a3a437573746f6d4d657461646174612c20543a3a537472696e674c696d69743e0000003055706461746564417373657408012061737365745f6964b9030128543a3a417373657449640001206d65746164617461d90601f041737365744d657461646174613c543a3a42616c616e63652c20543a3a437573746f6d4d657461646174612c20543a3a537472696e674c696d69743e000100047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f1080c206f726d6c5f78636d186d6f64756c65144576656e740404540001041053656e74080108746fdd0101204c6f636174696f6e00011c6d6573736167651506011c58636d3c28293e0000048458434d206d6573736167652073656e742e205c5b746f2c206d6573736167655c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f5080c2870616c6c65745f65766d1870616c6c6574144576656e740404540001140c4c6f6704010c6c6f67f908010c4c6f670000047c457468657265756d206576656e74732066726f6d20636f6e7472616374732e1c4372656174656404011c616464726573732102011048313630000104b44120636f6e747261637420686173206265656e206372656174656420617420676976656e20616464726573732e34437265617465644661696c656404011c61646472657373210201104831363000020405014120636f6e74726163742077617320617474656d7074656420746f20626520637265617465642c206275742074686520657865637574696f6e206661696c65642e20457865637574656404011c616464726573732102011048313630000304f84120636f6e747261637420686173206265656e206578656375746564207375636365737366756c6c79207769746820737461746573206170706c6965642e3845786563757465644661696c656404011c61646472657373210201104831363000040465014120636f6e747261637420686173206265656e2065786563757465642077697468206572726f72732e20537461746573206172652072657665727465642077697468206f6e6c79206761732066656573206170706c6965642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f9080c20657468657265756d0c6c6f670c4c6f6700000c011c616464726573732102011048313630000118746f70696373290301245665633c483235363e0001106461746134011442797465730000fd080c3c70616c6c65745f626173655f6665651870616c6c6574144576656e7400010c404e65774261736546656550657247617304010c6665651d050110553235360000003c426173654665654f766572666c6f77000100344e6577456c6173746963697479040128656c61737469636974791907011c5065726d696c6c000200047c54686520604576656e746020656e756d206f6620746869732070616c6c657401090c3c70616c6c65745f657468657265756d1870616c6c6574144576656e7400010420457865637574656414011066726f6d2102011048313630000108746f21020110483136300001407472616e73616374696f6e5f686173683001104832353600012c657869745f726561736f6e0509012845786974526561736f6e00012865787472615f6461746134011c5665633c75383e000004c8416e20657468657265756d207472616e73616374696f6e20776173207375636365737366756c6c792065786563757465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657405090c2065766d5f636f7265146572726f722845786974526561736f6e0001101c5375636365656404000909012c4578697453756363656564000000144572726f7204000d090124457869744572726f720001001852657665727404001d0901284578697452657665727400020014466174616c04002109012445786974466174616c0003000009090c2065766d5f636f7265146572726f722c457869745375636365656400010c1c53746f707065640000002052657475726e6564000100205375696369646564000200000d090c2065766d5f636f7265146572726f7224457869744572726f7200014038537461636b556e646572666c6f7700000034537461636b4f766572666c6f770001002c496e76616c69644a756d7000020030496e76616c696452616e67650003004444657369676e61746564496e76616c69640004002c43616c6c546f6f446565700005003c437265617465436f6c6c6973696f6e0006004c437265617465436f6e74726163744c696d69740007002c496e76616c6964436f64650400110901184f70636f6465000f002c4f75744f664f6666736574000800204f75744f66476173000900244f75744f6646756e64000a002c5043556e646572666c6f77000b002c437265617465456d707479000c00144f74686572040015090144436f773c277374617469632c207374723e000d00204d61784e6f6e6365000e000011090c2065766d5f636f7265186f70636f6465184f70636f646500000400080108753800001509040c436f770404540119090004001909000000190900000502001d090c2065766d5f636f7265146572726f7228457869745265766572740001042052657665727465640000000021090c2065766d5f636f7265146572726f722445786974466174616c000110304e6f74537570706f7274656400000048556e68616e646c6564496e746572727570740001004043616c6c4572726f724173466174616c04000d090124457869744572726f72000200144f74686572040015090144436f773c277374617469632c207374723e0003000025090c646178656c61725f676174657761795f707265636f6d70696c651870616c6c6574144576656e74040454000108284761746577617953657404011c61646472657373210201104831363000000030436f6e76657274657253657408011c69645f6861736830011048323536000124636f6e7665727465724907013c536f75726365436f6e766572746572000100047c54686520604576656e746020656e756d206f6620746869732070616c6c657429090c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74a401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64110101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74a401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742d090c4070616c6c65745f706f6f6c5f666565731870616c6c6574144576656e740404540001202050726f706f73656410011c706f6f6c5f69642c0124543a3a506f6f6c49640001186665655f69642c0120543a3a46656549640001186275636b657481040134506f6f6c4665654275636b657400010c66656585040140506f6f6c466565496e666f4f663c543e0000047041206e657720706f6f6c20666565207761732070726f706f7365642e14416464656410011c706f6f6c5f69642c0124543a3a506f6f6c49640001186275636b657481040134506f6f6c4665654275636b65740001186665655f69642c0120543a3a466565496400010c66656585040140506f6f6c466565496e666f4f663c543e000104d8412070726576696f75736c792070726f706f73656420616e6420617070726f76656420706f6f6c20666565207761732061646465642e1c52656d6f7665640c011c706f6f6c5f69642c0124543a3a506f6f6c49640001186275636b657481040134506f6f6c4665654275636b65740001186665655f69642c0120543a3a46656549640002045c4120706f6f6c20666565207761732072656d6f7665642e1c4368617267656410011c706f6f6c5f69642c0124543a3a506f6f6c49640001186665655f69642c0120543a3a4665654964000118616d6f756e74180128543a3a42616c616e636500011c70656e64696e67180128543a3a42616c616e63650003045c4120706f6f6c206665652077617320636861726765642e24556e6368617267656410011c706f6f6c5f69642c0124543a3a506f6f6c49640001186665655f69642c0120543a3a4665654964000118616d6f756e74180128543a3a42616c616e636500011c70656e64696e67180128543a3a42616c616e6365000404644120706f6f6c206665652077617320756e636861726765642e105061696410011c706f6f6c5f69642c0124543a3a506f6f6c49640001186665655f69642c0120543a3a4665654964000118616d6f756e74180128543a3a42616c616e636500012c64657374696e6174696f6e000130543a3a4163636f756e744964000504504120706f6f6c206665652077617320706169642e1c4163637275656410011c706f6f6c5f69642c0124543a3a506f6f6c49640001186665655f69642c0120543a3a466565496400011c70656e64696e67180128543a3a42616c616e636500013064697362757273656d656e74180128543a3a42616c616e6365000604604120666978656420706f6f6c20666565206163637275656464506f7274666f6c696f56616c756174696f6e557064617465640c011c706f6f6c5f69642c0124543a3a506f6f6c496400012476616c756174696f6e180128543a3a42616c616e636500012c7570646174655f74797065e9070170506f7274666f6c696f56616c756174696f6e55706461746554797065000704bc54686520706f7274666f6c696f2076616c756174696f6e20666f72206120706f6f6c2077617320757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657431090c3870616c6c65745f72656d61726b731870616c6c6574144576656e740404540001041852656d61726b08011c72656d61726b73590701ac426f756e6465645665633c543a3a52656d61726b2c20543a3a4d617852656d61726b7350657243616c6c3e00011063616c6c250101683c5420617320436f6e6669673e3a3a52756e74696d6543616c6c00000448412072656d61726b20776173206d6164652e047c54686520604576656e746020656e756d206f6620746869732070616c6c657435090c4070616c6c65745f746f6b656e5f6d75781870616c6c6574144576656e7404045400010c244465706f736974656410010c77686f000130543a3a4163636f756e74496400013063757272656e63795f6f7574b9030134543a3a43757272656e6379496400012c63757272656e63795f696eb9030134543a3a43757272656e63794964000118616d6f756e74180134543a3a42616c616e63654f7574000000184275726e656410010c77686f000130543a3a4163636f756e74496400013063757272656e63795f6f7574b9030134543a3a43757272656e6379496400012c63757272656e63795f696eb9030134543a3a43757272656e63794964000118616d6f756e74180134543a3a42616c616e63654f75740001002c537761704d61746368656408010869642c0128543a3a4f726465724964000118616d6f756e74180134543a3a42616c616e63654f7574000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574390908306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200003d09000002c000410908306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6eb101014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d651909016473705f72756e74696d653a3a52756e74696d65537472696e670000450908306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000049090c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c6173734d0901845065724469737061746368436c6173733c57656967687473506572436c6173733e00004d090c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454015109000c01186e6f726d616c510901045400012c6f7065726174696f6e616c51090104540001246d616e6461746f72795109010454000051090c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963b90601384f7074696f6e3c5765696768743e0001246d61785f746f74616cb90601384f7074696f6e3c5765696768743e0001207265736572766564b90601384f7074696f6e3c5765696768743e000055090c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178590901545065724469737061746368436c6173733c7533323e000059090c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005d09082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400006109082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d651909013452756e74696d65537472696e67000124696d706c5f6e616d651909013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736509011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800006509040c436f77040454016909000400690900000069090000026d09006d09000004087d02100071090c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574750900000279090079090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480130000c0138757365645f62616e6477696474687d0901345573656442616e647769647468000138706172615f686561645f68617368490201244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c9109018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00007d090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e678109018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e00008109042042547265654d617008044b015d010456018509000400890900000085090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c753332000089090000028d09008d09000004085d01850900910904184f7074696f6e0404540195090108104e6f6e6500000010536f6d6504009509000001000095090c4c706f6c6b61646f745f7072696d6974697665730876363855706772616465476f41686561640001081441626f72740000001c476f41686561640001000099090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480130000c0138757365645f62616e6477696474687d0901345573656442616e64776964746800013868726d705f77617465726d61726b450201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c9109018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00009d0904184f7074696f6e04045401a1090108104e6f6e6500000010536f6d650400a1090000010000a1090c4c706f6c6b61646f745f7072696d69746976657308763648557067726164655265737472696374696f6e0001041c50726573656e7400000000a5090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616430014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f6361706163697479a909018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73ad0901885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73ad0901885665633c285061726149642c20416272696467656448726d704368616e6e656c293e0000a9090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c7533320000ad09000002b10900b109000004085d01b50900b5090c4c706f6c6b61646f745f7072696d6974697665730876364c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164490201304f7074696f6e3c486173683e0000b9090c4c706f6c6b61646f745f7072696d697469766573087636644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73bd0901484173796e634261636b696e67506172616d730000bd09104c706f6c6b61646f745f7072696d697469766573087636346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c7533320000c109089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040030012452656c6179486173680000c509042042547265654d617008044b015d01045601c109000400c909000000c909000002cd0900cd09000004085d01c10900d109000002d50900d5090860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d65737361676504084964015d0100080124726563697069656e745d01010849640001106461746134015073705f7374643a3a7665633a3a5665633c75383e0000d9090c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000dd090c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee1090c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401e509045300000400ed0901185665633c543e0000e5090c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869647d0201384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73e909011c526561736f6e730000e9090c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000ed09000002e50900f1090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f509045300000400f90901185665633c543e0000f5090c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572017d021c42616c616e636501180008010869647d020144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000f909000002f50900fd090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401010a045300000400150a01185665633c543e0000010a0c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401050a1c42616c616e63650118000801086964050a01084964000118616d6f756e7418011c42616c616e63650000050a084c646576656c6f706d656e745f72756e74696d654452756e74696d65486f6c64526561736f6e00010c20507265696d6167650400090a016c70616c6c65745f707265696d6167653a3a486f6c64526561736f6e00480018546f6b656e7304000d0a019070616c6c65745f726573747269637465645f746f6b656e733a3a486f6c64526561736f6e006300445472616e73666572416c6c6f774c6973740400110a019470616c6c65745f7472616e736665725f616c6c6f776c6973743a3a486f6c64526561736f6e00700000090a0c3c70616c6c65745f707265696d6167651870616c6c657428486f6c64526561736f6e00010420507265696d616765000000000d0a0c6070616c6c65745f726573747269637465645f746f6b656e731870616c6c657428486f6c64526561736f6e0001042c4e6174697665496e64657800000000110a0c6470616c6c65745f7472616e736665725f616c6c6f776c6973741870616c6c657428486f6c64526561736f6e000104445472616e73666572416c6c6f77616e636500000000150a000002010a00190a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d0a045300000400210a01185665633c543e00001d0a0c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401a81c42616c616e63650118000801086964a801084964000118616d6f756e7418011c42616c616e63650000210a0000021d0a00250a0c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e290a086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100002d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004009401185665633c543e0000310a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401350a045300000400390a01185665633c543e0000350a0c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650000390a000002350a003d0a0c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e410a000002450a00450a0000040800950100490a00000210004d0a00000408510a3400510a0c1c73705f636f72651863727970746f244b65795479706549640000040044011c5b75383b20345d0000550a0c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e590a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540199010453000004005d0a01185665633c543e00005d0a000002990100610a084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000650a00000408610a1000690a000004080004006d0a083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656ea0015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73710a018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e0000710a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004009401185665633c543e0000750a0c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e790a000004087d0a18007d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401810a045300000400850a01185665633c543e0000810a083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f78795479706501b02c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f74797065b0012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000850a000002810a00890a000004088d0a18008d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401910a045300000400950a01185665633c543e0000910a083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801302c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683001104861736800011868656967687410012c426c6f636b4e756d6265720000950a000002910a00990a0c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9d0a0c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a50a045300000400ad0a01185665633c543e0000a50a04184f7074696f6e04045401a90a0108104e6f6e6500000010536f6d650400a90a0000010000a90a084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c0121012c426c6f636b4e756d62657201103450616c6c6574734f726967696e01bd01244163636f756e7449640100001401206d617962655f69648001304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2101011043616c6c0001386d617962655f706572696f6469632d0201944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696ebd01013450616c6c6574734f726967696e0000ad0a000002a50a00b10a0c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb50a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540130045300000400290301185665633c543e0000b90a084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e74000110617965739401385665633c4163636f756e7449643e0001106e6179739401385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d6265720000bd0a0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f7208045400044900012c244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d626572048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec10a000002c50a00c50a086470616c6c65745f656c656374696f6e735f70687261676d656e2853656174486f6c64657208244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000c90a086470616c6c65745f656c656374696f6e735f70687261676d656e14566f74657208244163636f756e74496401001c42616c616e63650118000c0114766f7465739401385665633c4163636f756e7449643e0001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000cd0a0c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144572726f7204045400014430556e61626c65546f566f7465000004c043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f746573000104944d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f7465730002048443616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f74657345786365656465640003049843616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e6365000404c443616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e6400050478566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f746572000604404d757374206265206120766f7465722e4c4475706c69636174656443616e646964617465000704804475706c6963617465642063616e646964617465207375626d697373696f6e2e44546f6f4d616e7943616e6469646174657300080498546f6f206d616e792063616e646964617465732068617665206265656e20637265617465642e304d656d6265725375626d6974000904884d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974000a048852756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e6473000b049443616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d626572000c04344e6f742061206d656d6265722e48496e76616c69645769746e65737344617461000d04e05468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e74000e04cc5468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67000f04fc5468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e74001004fc50726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed10a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d50a045300000400d90a01185665633c543e0000d50a0000040c1021010000d90a000002d50a00dd0a00000408e10a1800e10a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004009401185665633c543e0000e50a0c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d62657201102050726f706f73616c0121011c42616c616e6365011801081c4f6e676f696e670400e90a01c05265666572656e64756d5374617475733c426c6f636b4e756d6265722c2050726f706f73616c2c2042616c616e63653e0000002046696e6973686564080120617070726f766564780110626f6f6c00010c656e6410012c426c6f636b4e756d62657200010000e90a0c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d62657201102050726f706f73616c0121011c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200012070726f706f73616c2101012050726f706f73616c0001247468726573686f6c64d80134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c79ed0a013854616c6c793c42616c616e63653e0000ed0a0c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e63650000f10a0c4070616c6c65745f64656d6f637261637910766f746518566f74696e67101c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d6265720110204d6178566f746573000108184469726563740c0114766f746573f50a01f4426f756e6465645665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73010b015044656c65676174696f6e733c42616c616e63653e0001147072696f72050b017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6e41020128436f6e76696374696f6e00012c64656c65676174696f6e73010b015044656c65676174696f6e733c42616c616e63653e0001147072696f72050b017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00010000f50a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f90a045300000400fd0a01185665633c543e0000f90a0000040810dc00fd0a000002f90a00010b0c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000050b0c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000090b000004082101d8000d0b0000040810e10a00110b0c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f720404540001602056616c75654c6f770000043456616c756520746f6f206c6f773c50726f706f73616c4d697373696e670001045c50726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c65640002049443616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c0003045450726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c69737465640004046850726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f72697479000504a84e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c69644861736800060430496e76616c69642068617368284e6f50726f706f73616c000704504e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564000804984964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365445265666572656e64756d496e76616c696400090484566f746520676976656e20666f7220696e76616c6964207265666572656e64756d2c4e6f6e6557616974696e67000a04504e6f2070726f706f73616c732077616974696e67204e6f74566f746572000b04c454686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e000c04c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67000d0488546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e6473000e04fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000f04a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f74657345786973740010085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f776564001104d854686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e73650012049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e6400130450496e76616c696420757070657220626f756e642e3c4d6178566f74657352656163686564001404804d6178696d756d206e756d626572206f6620766f74657320726561636865642e1c546f6f4d616e79001504804d6178696d756d206e756d626572206f66206974656d7320726561636865642e3c566f74696e67506572696f644c6f7700160454566f74696e6720706572696f6420746f6f206c6f7740507265696d6167654e6f7445786973740017047054686520707265696d61676520646f6573206e6f742065786973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e150b00000408190b290b00190b0c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e747300304964656e74697479496e666f015102000c01286a756467656d656e74731d0b01fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666f510201304964656e74697479496e666f00001d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401210b045300000400250b01185665633c543e0000210b0000040810e90200250b000002210b00290b04184f7074696f6e04045401ec0108104e6f6e6500000010536f6d650400ec00000100002d0b0000040818310b00310b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004009401185665633c543e0000350b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401390b045300000400410b01185665633c543e0000390b04184f7074696f6e040454013d0b0108104e6f6e6500000010536f6d6504003d0b00000100003d0b0c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f0c1c42616c616e63650118244163636f756e74496401001c49644669656c64012c000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c64732c011c49644669656c640000410b000002390b00450b0c3c70616c6c65745f6964656e746974791474797065734c417574686f7269747950726f70657274696573041853756666697801490b00080118737566666978490b0118537566666978000128616c6c6f636174696f6e100128416c6c6f636174696f6e0000490b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e00004d0b00000408001000510b0c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400016848546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e44546f6f4d616e7952656769737472617273000b04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000c04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000d047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000e04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e744a756467656d656e74466f72446966666572656e744964656e74697479000f04d05468652070726f7669646564206a756467656d656e742077617320666f72206120646966666572656e74206964656e746974792e584a756467656d656e745061796d656e744661696c6564001004f84572726f722074686174206f6363757273207768656e20746865726520697320616e20697373756520706179696e6720666f72206a756467656d656e742e34496e76616c6964537566666978001104805468652070726f76696465642073756666697820697320746f6f206c6f6e672e504e6f74557365726e616d65417574686f72697479001204e05468652073656e64657220646f6573206e6f742068617665207065726d697373696f6e20746f206973737565206120757365726e616d652e304e6f416c6c6f636174696f6e001304c454686520617574686f726974792063616e6e6f7420616c6c6f6361746520616e79206d6f726520757365726e616d65732e40496e76616c69645369676e6174757265001404a8546865207369676e6174757265206f6e206120757365726e616d6520776173206e6f742076616c69642e4452657175697265735369676e6174757265001504090153657474696e67207468697320757365726e616d652072657175697265732061207369676e61747572652c20627574206e6f6e65207761732070726f76696465642e3c496e76616c6964557365726e616d65001604b054686520757365726e616d6520646f6573206e6f74206d6565742074686520726571756972656d656e74732e34557365726e616d6554616b656e0017047854686520757365726e616d6520697320616c72656164792074616b656e2e284e6f557365726e616d65001804985468652072657175657374656420757365726e616d6520646f6573206e6f742065786973742e284e6f74457870697265640019042d0154686520757365726e616d652063616e6e6f7420626520666f72636566756c6c792072656d6f76656420626563617573652069742063616e207374696c6c2062652061636365707465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e550b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010d03045300000400590b01185665633c543e0000590b0000020d03005d0b083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000610b0c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e650b083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e63650000690b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400490a01185665633c543e00006d0b083c70616c6c65745f74726561737572792c5370656e64537461747573142441737365744b696e6401a830417373657442616c616e636501182c42656e656669636961727901002c426c6f636b4e756d6265720110245061796d656e74496401a80018012861737365745f6b696e64a8012441737365744b696e64000118616d6f756e74180130417373657442616c616e636500012c62656e656669636961727900012c42656e656669636961727900012876616c69645f66726f6d10012c426c6f636b4e756d6265720001246578706972655f617410012c426c6f636b4e756d626572000118737461747573710b015c5061796d656e7453746174653c5061796d656e7449643e0000710b083c70616c6c65745f7472656173757279305061796d656e7453746174650408496401a8010c1c50656e64696e6700000024417474656d707465640401086964a801084964000100184661696c656400020000750b08346672616d655f737570706f72742050616c6c65744964000004007d02011c5b75383b20385d0000790b0c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900013070496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104ac4e6f2070726f706f73616c2c20626f756e7479206f72207370656e64206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300020480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0003084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640004047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e584661696c6564546f436f6e7665727442616c616e636500050451015468652062616c616e6365206f6620746865206173736574206b696e64206973206e6f7420636f6e7665727469626c6520746f207468652062616c616e6365206f6620746865206e61746976652061737365742e305370656e6445787069726564000604b0546865207370656e6420686173206578706972656420616e642063616e6e6f7420626520636c61696d65642e2c4561726c795061796f7574000704a4546865207370656e64206973206e6f742079657420656c696769626c6520666f72207061796f75742e40416c7265616479417474656d707465640008049c546865207061796d656e742068617320616c7265616479206265656e20617474656d707465642e2c5061796f75744572726f72000904cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e304e6f74417474656d70746564000a04a4546865207061796f757420776173206e6f742079657420617474656d707465642f636c61696d65642e30496e636f6e636c7573697665000b04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e04784572726f7220666f72207468652074726561737572792070616c6c65742e7d0b0c3870616c6c65745f756e697175657314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118002801146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000134746f74616c5f6465706f7369741801384465706f73697442616c616e6365000130667265655f686f6c64696e67780110626f6f6c0001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001286174747269627574657310010c75333200012469735f66726f7a656e780110626f6f6c0000810b0000040c002cfc00850b00000408002c00890b0c3870616c6c65745f756e69717565731474797065732c4974656d44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001001146f776e65720001244163636f756e744964000120617070726f766564110101444f7074696f6e3c4163636f756e7449643e00012469735f66726f7a656e780110626f6f6c00011c6465706f7369741801384465706f73697442616c616e636500008d0b0c3870616c6c65745f756e697175657314747970657348436f6c6c656374696f6e4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e6365000110646174610101016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e780110626f6f6c0000910b0c3870616c6c65745f756e6971756573147479706573304974656d4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e6365000110646174610101016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e780110626f6f6c0000950b0000040c2c0901010100990b00000408010118009d0b0000040818110100a10b0c3870616c6c65745f756e69717565731870616c6c6574144572726f72080454000449000148304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e2857726f6e674f776e6572000304e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730004046c496e76616c6964207769746e657373206461746120676976656e2e14496e55736500050474546865206974656d20494420697320616c72656164792074616b656e2e1846726f7a656e00060484546865206974656d206f7220636f6c6c656374696f6e2069732066726f7a656e2e3457726f6e6744656c6567617465000704f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284e6f44656c6567617465000804785468657265206973206e6f2064656c656761746520617070726f7665642e28556e617070726f766564000904c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000a042501546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e657273686970206f662074686520636f6c6c656374696f6e2069732061636365707461626c652e184c6f636b6564000b044c546865206974656d206973206c6f636b65642e404d6178537570706c7952656163686564000c046c416c6c206974656d732068617665206265656e206d696e7465642e4c4d6178537570706c79416c7265616479536574000d0490546865206d617820737570706c792068617320616c7265616479206265656e207365742e444d6178537570706c79546f6f536d616c6c000e0441015468652070726f7669646564206d617820737570706c79206973206c65737320746f2074686520616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d000f047454686520676976656e206974656d20494420697320756e6b6e6f776e2e284e6f74466f7253616c65001004544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001104705468652070726f76696465642062696420697320746f6f206c6f772e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea50b083c70616c6c65745f707265696d616765404f6c645265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f736974d00150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974a90b01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656e4502012c4f7074696f6e3c7533323e00010000a90b04184f7074696f6e04045401d00108104e6f6e6500000010536f6d650400d00000010000ad0b083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e7449640100185469636b657401b10b01082c556e7265717565737465640801187469636b6574b50b014c284163636f756e7449642c205469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b6574b90b016c4f7074696f6e3c284163636f756e7449642c205469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656e4502012c4f7074696f6e3c7533323e00010000b10b14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e10044100044600045200044400000400180128463a3a42616c616e63650000b50b0000040800b10b00b90b04184f7074696f6e04045401b50b0108104e6f6e6500000010536f6d650400b50b0000010000bd0b00000408301000c10b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000c50b0c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400012018546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e1c546f6f4d616e7900060455014d6f7265207468616e20604d41585f484153485f555047524144455f42554c4b5f434f554e54602068617368657320776572652072657175657374656420746f206265207570677261646564206174206f6e63652e18546f6f466577000704e4546f6f206665772068617368657320776572652072657175657374656420746f2062652075706772616465642028692e652e207a65726f292e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec90b0000040800b400cd0b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e670400d10b01c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400e90b01ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e00010000d10b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f746573d50b01dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73e10b015044656c65676174696f6e733c42616c616e63653e0001147072696f72e50b017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000d50b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d90b045300000400dd0b01185665633c543e0000d90b0000040810310300dd0b000002d90b00e10b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000e50b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000e90b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652844656c65676174696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100014011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6e39030128436f6e76696374696f6e00012c64656c65676174696f6e73e10b015044656c65676174696f6e733c42616c616e63653e0001147072696f72e50b017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000ed0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f10b045300000400f50b01185665633c543e0000f10b00000408b41800f50b000002f10b00f90b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144572726f72080454000449000130284e6f744f6e676f696e6700000450506f6c6c206973206e6f74206f6e676f696e672e204e6f74566f746572000104ac54686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e2074686520706f6c6c2e304e6f5065726d697373696f6e000204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e3c4e6f5065726d697373696f6e5965740003045901546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e207269676874206e6f77206275742077696c6c20646f20696e20746865206675747572652e44416c726561647944656c65676174696e6700040488546865206163636f756e7420697320616c72656164792064656c65676174696e672e34416c7265616479566f74696e670005085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e73756666696369656e7446756e6473000604fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000704a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e204e6f6e73656e73650008049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c4d6178566f74657352656163686564000904804d6178696d756d206e756d626572206f6620766f74657320726561636865642e2c436c6173734e6565646564000a04390154686520636c617373206d75737420626520737570706c6965642073696e6365206974206973206e6f7420656173696c792064657465726d696e61626c652066726f6d207468652073746174652e20426164436c617373000b048454686520636c61737320494420737570706c69656420697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742efd0b0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b496401b43452756e74696d654f726967696e01bd01184d6f6d656e7401101043616c6c0121011c42616c616e636501181454616c6c79017907244163636f756e74496401003c5363686564756c654164647265737301c001181c4f6e676f696e670400010c018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e740000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e740000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e740000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e740000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000010c0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b496401b43452756e74696d654f726967696e01bd01184d6f6d656e7401101043616c6c0121011c42616c616e636501181454616c6c79017907244163636f756e74496401003c5363686564756c654164647265737301c0002c0114747261636bb4011c547261636b49640001186f726967696ebd01013452756e74696d654f726967696e00012070726f706f73616c2101011043616c6c000124656e6163746d656e7445030150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974050c016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f736974090c018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e670d0c01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c797907011454616c6c79000120696e5f7175657565780110626f6f6c000114616c61726d150c01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000050c0c4070616c6c65745f7265666572656e64611474797065731c4465706f73697408244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e744964000118616d6f756e7418011c42616c616e63650000090c04184f7074696f6e04045401050c0108104e6f6e6500000010536f6d650400050c00000100000d0c04184f7074696f6e04045401110c0108104e6f6e6500000010536f6d650400110c0000010000110c0c4070616c6c65745f7265666572656e6461147479706573384465636964696e67537461747573042c426c6f636b4e756d62657201100008011473696e636510012c426c6f636b4e756d626572000128636f6e6669726d696e674502014c4f7074696f6e3c426c6f636b4e756d6265723e0000150c04184f7074696f6e04045401190c0108104e6f6e6500000010536f6d650400190c0000010000190c0000040810c0001d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401210c045300000400250c01185665633c543e0000210c00000408101800250c000002210c00290c0000022d0c002d0c00000408b4310c00310c0c4070616c6c65745f7265666572656e646114747970657324547261636b496e666f081c42616c616e63650118184d6f6d656e740110002401106e616d65190901302627737461746963207374720001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616c350c0114437572766500012c6d696e5f737570706f7274350c011443757276650000350c0c4070616c6c65745f7265666572656e646114747970657314437572766500010c404c696e65617244656372656173696e670c01186c656e677468390c011c50657262696c6c000114666c6f6f72390c011c50657262696c6c0001106365696c390c011c50657262696c6c000000445374657070656444656372656173696e67100114626567696e390c011c50657262696c6c00010c656e64390c011c50657262696c6c00011073746570390c011c50657262696c6c000118706572696f64390c011c50657262696c6c000100285265636970726f63616c0c0118666163746f723d0c01204669786564493634000120785f6f66667365743d0c01204669786564493634000120795f6f66667365743d0c0120466978656449363400020000390c0c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200003d0c0c3473705f61726974686d657469632c66697865645f706f696e7420466978656449363400000400410c010c6936340000410c0000050c00450c0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000134284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e490c0c4070616c6c65745f77686974656c6973741870616c6c6574144572726f720404540001144c556e617661696c61626c65507265496d616765000004c854686520707265696d616765206f66207468652063616c6c206861736820636f756c64206e6f74206265206c6f616465642e3c556e6465636f6461626c6543616c6c000104785468652063616c6c20636f756c64206e6f74206265206465636f6465642e60496e76616c696443616c6c5765696768745769746e657373000204ec54686520776569676874206f6620746865206465636f6465642063616c6c2077617320686967686572207468616e20746865207769746e6573732e5043616c6c49734e6f7457686974656c6973746564000304745468652063616c6c20776173206e6f742077686974656c69737465642e5843616c6c416c726561647957686974656c6973746564000404a05468652063616c6c2077617320616c72656164792077686974656c69737465643b204e6f2d4f702e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e4d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540130045300000400290301185665633c543e0000510c0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f7208045400044900012c244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d626572048054686520604572726f726020656e756d206f6620746869732070616c6c65742e550c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004009401185665633c543e0000590c0c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010c34416c72656164794d656d62657200000444416c72656164792061206d656d6265722e244e6f744d656d626572000104344e6f742061206d656d6265722e38546f6f4d616e794d656d6265727300020444546f6f206d616e79206d656d626572732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d0c083870616c6c65745f616e63686f727334507265436f6d6d6974446174611010486173680130244163636f756e74496401002c426c6f636b4e756d62657201101c42616c616e63650118001001307369676e696e675f726f6f74300110486173680001206964656e746974790001244163636f756e74496400014065787069726174696f6e5f626c6f636b10012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e63650000610c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000650c0c3870616c6c65745f616e63686f72731870616c6c6574144572726f720404540001204c416e63686f72416c726561647945786973747300000490416e63686f72207769746820616e63686f725f696420616c72656164792065786973747354416e63686f7253746f726544617465496e50617374000104a8416e63686f722073746f72652064617465206d75737420626520696e206e6f77206f722066757475726570416e63686f7253746f72654461746541626f76654d61784c696d6974000204d8416e63686f722073746f72652064617465206d757374206e6f74206265206d6f7265207468616e206d61782073746f7265206461746558507265436f6d6d6974416c7265616479457869737473000304645072652d636f6d6d697420616c7265616479206578697374734c4e6f744f776e65724f66507265436f6d6d69740004049453656e646572206973206e6f7420746865206f776e6572206f662070726520636f6d6d697454496e76616c6964507265436f6d6d697450726f6f6600050460496e76616c69642070726520636f6d6d69742070726f6f66484576696374696f6e44617465546f6f426967000604904576696374696f6e206461746520746f6f2062696720666f7220636f6e76657273696f6e684661696c6564546f436f6e7665727445706f6368546f44617973000704944661696c656420746f20636f6e766572742065706f636820696e204d5320746f2064617973048054686520604572726f726020656e756d206f6620746869732070616c6c65742e690c0c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f74797065732c506f6f6c44657461696c73242843757272656e6379496401b9033c5472616e63686543757272656e63790149041c45706f6368496401101c42616c616e63650118105261746501950318576569676874016d0c245472616e6368654964019d0218506f6f6c4964012c2c4d61785472616e636865730199040018012063757272656e6379b903012843757272656e637949640001207472616e63686573710c0141015472616e636865733c42616c616e63652c20526174652c205765696768742c205472616e63686543757272656e63792c205472616e63686549642c20506f6f6c49642c0a4d61785472616e636865733e000128706172616d65746572738d0c0138506f6f6c506172616d6574657273000118737461747573910c0128506f6f6c53746174757300011465706f6368950c014c45706f636853746174653c45706f636849643e00011c72657365727665990c015c5265736572766544657461696c733c42616c616e63653e00006d0c0c386366675f7072696d697469766573147479706573345472616e63686557656967687400000400180110753132380000710c0c4870616c6c65745f706f6f6c5f73797374656d207472616e63686573205472616e636865731c1c42616c616e63650118105261746501950318576569676874016d0c3c5472616e63686543757272656e6379014904245472616e6368654964019d0218506f6f6c4964012c2c4d61785472616e63686573019904000c01207472616e63686573750c012501426f756e6465645665633c5472616e6368653c42616c616e63652c20526174652c205765696768742c205472616e63686543757272656e63793e2c204d61785472616e636865730a3e00010c696473810c0188426f756e6465645665633c5472616e63686549642c204d61785472616e636865733e00011073616c74890c014c5472616e63686553616c743c506f6f6c49643e0000750c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401790c0453000004007d0c01185665633c543e0000790c0c4870616c6c65745f706f6f6c5f73797374656d207472616e636865731c5472616e636865101c42616c616e63650118105261746501950318576569676874016d0c2843757272656e63794964014904002001307472616e6368655f74797065690401445472616e636865547970653c526174653e00012473656e696f7269747910012453656e696f7269747900012063757272656e63794904012843757272656e637949640001106465627418011c42616c616e636500011c7265736572766518011c42616c616e63650001106c6f737318011c42616c616e6365000114726174696f7103012c5065727175696e74696c6c0001546c6173745f757064617465645f696e7465726573742c011c5365636f6e647300007d0c000002790c00810c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019d02045300000400850c01185665633c543e0000850c0000029d0200890c000004082c2c008d0c0c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f747970657338506f6f6c506172616d657465727300000801386d696e5f65706f63685f74696d652c011c5365636f6e647300012c6d61785f6e61765f6167652c011c5365636f6e64730000910c0c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f747970657328506f6f6c537461747573000104104f70656e00000000950c0c246366675f74797065731465706f63682845706f63685374617465041c45706f636849640110000c011c63757272656e7410011c45706f6368496400012c6c6173745f636c6f7365642c011c5365636f6e64730001346c6173745f657865637574656410011c45706f636849640000990c0c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f7479706573385265736572766544657461696c73041c42616c616e63650118000c010c6d617818011c42616c616e6365000114746f74616c18011c42616c616e6365000124617661696c61626c6518011c42616c616e636500009d0c0c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f7479706573585363686564756c656455706461746544657461696c730c10526174650195032c537472696e674c696d69740165042c4d61785472616e636865730199040008011c6368616e676573950401ac506f6f6c4368616e6765733c526174652c20537472696e674c696d69742c204d61785472616e636865733e0001307375626d69747465645f61742c011c5365636f6e64730000a10c0c4870616c6c65745f706f6f6c5f73797374656d20736f6c7574696f6e4845706f6368457865637574696f6e496e666f1c1c42616c616e636501183042616c616e6365526174696f01c9031c45706f63684964011018576569676874016d0c2c426c6f636b4e756d62657201103c5472616e63686543757272656e63790149042c4d61785472616e636865730199040014011465706f636810011c45706f6368496400010c6e6176a50c01304e61763c42616c616e63653e0001207472616e63686573a90c014d0145706f6368457865637574696f6e5472616e636865733c42616c616e63652c2042616c616e6365526174696f2c205765696768742c205472616e63686543757272656e63792c0a4d61785472616e636865733e00013c626573745f7375626d697373696f6eb90c01ac4f7074696f6e3c45706f6368536f6c7574696f6e3c42616c616e63652c204d61785472616e636865733e3e0001506368616c6c656e67655f706572696f645f656e644502014c4f7074696f6e3c426c6f636b4e756d6265723e0000a50c0c4870616c6c65745f706f6f6c5f73797374656d20736f6c7574696f6e0c4e6176041c42616c616e636501180008011c6e61765f61756d18011c42616c616e63650001206e61765f6665657318011c42616c616e63650000a90c0c4870616c6c65745f706f6f6c5f73797374656d207472616e636865735845706f6368457865637574696f6e5472616e63686573141c42616c616e636501183042616c616e6365526174696f01c90318576569676874016d0c3c5472616e63686543757272656e63790149042c4d61785472616e63686573019904000401207472616e63686573ad0c017d01426f756e6465645665633c45706f6368457865637574696f6e5472616e6368653c42616c616e63652c2042616c616e6365526174696f2c205765696768742c0a5472616e63686543757272656e63793e2c204d61785472616e636865732c3e0000ad0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b10c045300000400b50c01185665633c543e0000b10c0c4870616c6c65745f706f6f6c5f73797374656d207472616e636865735445706f6368457865637574696f6e5472616e636865101c42616c616e636501183042616c616e6365526174696f01c90318576569676874016d0c3c5472616e63686543757272656e6379014904001c012063757272656e63794904013c5472616e63686543757272656e6379000118737570706c7918011c42616c616e63650001147072696365c903013042616c616e6365526174696f000118696e7665737418011c42616c616e636500011872656465656d18011c42616c616e636500013c6d696e5f7269736b5f6275666665727103012c5065727175696e74696c6c00012473656e696f7269747910012453656e696f726974790000b50c000002b10c00b90c04184f7074696f6e040454019d070108104e6f6e6500000010536f6d6504009d070000010000bd0c0c4870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f74797065733c506f6f6c4465706f736974496e666f08244163636f756e74496401001c42616c616e63650118000801246465706f7369746f720001244163636f756e74496400011c6465706f73697418011c42616c616e63650000c10c000004082c3000c50c104870616c6c65745f706f6f6c5f73797374656d28706f6f6c5f74797065731c6368616e6765733c4e6f746564506f6f6c4368616e676504384368616e676550726f706f73616c01d107000801387375626d69747465645f74696d652c011c5365636f6e64730001186368616e6765d10701384368616e676550726f706f73616c0000c90c0c4870616c6c65745f706f6f6c5f73797374656d1870616c6c6574144572726f7204045400018c24506f6f6c496e557365000004944120706f6f6c2077697468207468697320494420697320616c726561647920696e2075736550496e76616c69644a756e696f725472616e636865000104cc417474656d7074656420746f20637265617465206120706f6f6c20776974686f75742061206a756e696f72207472616e6368655c496e76616c69645472616e636865537472756374757265000208b4417474656d7074656420746f206372656174652061207472616e63686520737472756374757265207768657265a82a206e6f6e2d64656372656173696e6720696e746572657374207261746520706572207472616e636865284e6f53756368506f6f6c000304d4417474656d7074656420616e206f7065726174696f6e206f6e206120706f6f6c20776869636820646f6573206e6f74206578697374604d696e45706f636854696d654861734e6f7450617373656400040494417474656d7074656420746f20636c6f736520616e2065706f636820746f6f206561726c79644368616c6c656e676554696d654861734e6f745061737365640005049c417474656d7074656420746f206578656375746520616e2065706f636820746f6f206561726c7948496e5375626d697373696f6e506572696f64000604e443616e6e6f742062652063616c6c6564207768696c652074686520706f6f6c20697320696e2061207375626d697373696f6e20706572696f64244e4156546f6f4f6c64000704cc417474656d7074656420746f20636c6f736520616e2065706f6368207769746820616e206f7574206f662064617465204e4156245472616e6368654964000804b841205472616e6368652049442063616e6e6f7420626520636f6e76657274656420746f20616e20616464726573732057697065644f7574000904dc436c6f73696e67207468652065706f6368206e6f7720776f756c642077697065206f757420746865206a756e696f72207472616e6368653c496e76616c6964536f6c7574696f6e000a04a05468652070726f766964656420736f6c7574696f6e206973206e6f7420612076616c6964206f6e65544e6f74496e5375626d697373696f6e506572696f64000b04f4417474656d7074656420746f20736f6c7665206120706f6f6c207768696368206973206e6f7420696e2061207375626d697373696f6e20706572696f6450496e73756666696369656e7443757272656e6379000c04d4496e73756666696369656e742063757272656e637920617661696c61626c6520666f722064657369726564206f7065726174696f6e485269736b42756666657256696f6c61746564000d04745269736b204275666665722076616c69646174696f6e206661696c6564144e6f4e4156000e0464546865204e415620776173206e6f7420617661696c61626c654c45706f63684e6f744578656375746564596574000f04c445706f6368206e6565647320746f206265206578656375746564206265666f726520796f752063616e20636f6c6c6563746443616e6e6f744164644f7252656d6f76655472616e63686573001004ac416464696e6720262072656d6f76696e67207472616e63686573206973206e6f7420737570706f727465645c496e76616c69645472616e63686553656e696f7269747900110c7c496e76616c6964207472616e6368652073656e696f726974792076616c7565b82a2073656e696f72697479204d55535420626520736d616c6c6572206e756d626572206f66207472616e63686573802a204d55535420626520696e6372656173696e6720706572207472616e63686550496e76616c69645472616e636865557064617465001208c05072652d726571756972656d656e747320666f722061205472616e63686555706461746520617265206e6f74206d6574fc666f72206578616d706c653a205472616e636865206368616e67656420627574206e6f7420697473206d65746164617461206f7220766963652076657273616c4d65746164617461466f7243757272656e63794e6f74466f756e64001304a04e6f206d6574616461746120666f722074686520676976656e2063757272656e637920666f756e645c5472616e636865546f6b656e4e616d65546f6f4c6f6e67001404d454686520676976656e207472616e63686520746f6b656e206e616d65206578636565647320746865206c656e677468206c696d6974605472616e63686553796d626f6c4e616d65546f6f4c6f6e67001504d854686520676976656e207472616e6368652073796d626f6c206e616d65206578636565647320746865206c656e677468206c696d69747c4661696c6564546f52656769737465725472616e6368654d65746164617461001604d45265676973746572696e6720746865206d6574616461746120666f722061207472616e63686520746872657720616e206572726f72744661696c6564546f5570646174655472616e6368654d65746164617461001704c85570646174696e6720746865206d6574616461746120666f722061207472616e63686520746872657720616e206572726f7240496e76616c69645472616e6368654964001804e8496e76616c6964205472616e6368654964207061737365642e20496e206d6f7374206361736573206f75742d6f662d626f756e6420696e6465783c546f6f4d616e795472616e63686573001904e454686520726571756573746564207472616e63686520636f6e66696775726174696f6e2068617320746f6f206d616e79207472616e63686573504e6f744e6577426573745375626d697373696f6e001a04a05375626d697474656420736f6c7574696f6e206973206e6f7420616e20696d70726f76656d656e744c4e6f536f6c7574696f6e417661696c61626c65001b04bc4e6f20736f6c7574696f6e2068617320796574206265656e2070726f766964656420666f72207468652065706f636868506f6f6c506172616d65746572426f756e6456696f6c61746564001c04ec4f6e65206f66207468652072756e74696d652d6c6576656c20706f6f6c20706172616d6574657220626f756e6473207761732076696f6c61746564444e6f5363686564756c6564557064617465001d048c4e6f2075706461746520666f722074686520706f6f6c206973207363686564756c6564645363686564756c656454696d654861734e6f74506173736564001e04bc5363686564756c65642074696d6520666f7220746869732075706461746520697320696e20746865206675747572657c557064617465507265726571756573697465734e6f7446756c66696c6c6564001f04785570646174652063616e6e6f742062652066756c66696c6c6564207965743c496e76616c696443757272656e6379002004e84120757365722068617320747269656420746f20637265617465206120706f6f6c207769746820616e20696e76616c69642063757272656e6379384368616e67654e6f74466f756e64002104f45468652065787465726e616c206368616e676520776173206e6f7420666f756e6420666f722074686520737065636966696564204368616e676549642e384368616e67654e6f74526561647900220409015468652065787465726e616c206368616e67652077617320666f756e6420666f72206973206e6f742072656164792079657420746f2062652072656c65617365642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ecd0c103070616c6c65745f6c6f616e7320656e746974696573146c6f616e732c437265617465644c6f616e0404540000080110696e666f7903012c4c6f616e496e666f3c543e000120626f72726f776572000130543a3a4163636f756e7449640000d10c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d50c045300000400f10c01185665633c543e0000d50c000004082cd90c00d90c103070616c6c65745f6c6f616e7320656e746974696573146c6f616e73284163746976654c6f616e04045400002801207363686564756c657d03014452657061796d656e745363686564756c65000128636f6c6c61746572616c8d03012841737365744f663c543e0001307265737472696374696f6e73cd0301404c6f616e5265737472696374696f6e73000120626f72726f776572000130543a3a4163636f756e74496400015077726974655f6f66665f70657263656e746167659503011c543a3a526174650001406f726967696e6174696f6e5f646174652c011c5365636f6e647300011c70726963696e67dd0c014041637469766550726963696e673c543e000138746f74616c5f626f72726f776564180128543a3a42616c616e6365000130746f74616c5f726570616964ed0c0160526570616964416d6f756e743c543a3a42616c616e63653e00017072657061796d656e74735f6f6e5f7363686564756c655f756e74696c2c011c5365636f6e64730000dd0c103070616c6c65745f6c6f616e7320656e7469746965731c70726963696e673441637469766550726963696e6704045400010820496e7465726e616c0400e10c0188696e7465726e616c3a3a496e7465726e616c41637469766550726963696e673c543e0000002045787465726e616c0400e90c018865787465726e616c3a3a45787465726e616c41637469766550726963696e673c543e00010000e10c143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e6720696e7465726e616c54496e7465726e616c41637469766550726963696e670404540000080110696e666fa1030148496e7465726e616c50726963696e673c543e000120696e746572657374e50c0154416374697665496e746572657374526174653c543e0000e50c103070616c6c65745f6c6f616e7320656e74697469657320696e74657265737448416374697665496e7465726573745261746504045400000c0134696e7465726573745f7261746591030154496e746572657374526174653c543a3a526174653e0001386e6f726d616c697a65645f616363180128543a3a42616c616e636500011c70656e616c74799503011c543a3a526174650000e90c143070616c6c65745f6c6f616e7320656e7469746965731c70726963696e672065787465726e616c5445787465726e616c41637469766550726963696e670404540000140110696e666fb103014845787465726e616c50726963696e673c543e0001506f75747374616e64696e675f7175616e74697479c903012c543a3a5175616e74697479000120696e746572657374e50c0154416374697665496e746572657374526174653c543e00015c6c61746573745f736574746c656d656e745f7072696365180128543a3a42616c616e6365000160736574746c656d656e745f70726963655f757064617465642c011c5365636f6e64730000ed0c0c3070616c6c65745f6c6f616e7314747970657330526570616964416d6f756e74041c42616c616e63650118000c01247072696e636970616c18011c42616c616e6365000120696e74657265737418011c42616c616e636500012c756e7363686564756c656418011c42616c616e63650000f10c000002d50c00f50c103070616c6c65745f6c6f616e7320656e746974696573146c6f616e7328436c6f7365644c6f616e0404540000100124636c6f7365645f6174100144426c6f636b4e756d626572466f723c543e000110696e666f7903012c4c6f616e496e666f3c543e000138746f74616c5f626f72726f776564180128543a3a42616c616e6365000130746f74616c5f726570616964ed0c0160526570616964416d6f756e743c543a3a42616c616e63653e0000f90c0c246366675f747970657324706f7274666f6c696f48506f7274666f6c696f56616c756174696f6e0c1c42616c616e6365011818456c656d4964012c204d6178456c656d7300000c011476616c756518011c42616c616e63650001306c6173745f757064617465642c011c5365636f6e647300011876616c756573fd0c019c426f756e6465645665633c28456c656d49642c2042616c616e6365292c204d6178456c656d733e0000fd0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401010d045300000400050d01185665633c543e0000010d000004082c1800050d000002010d00090d0c3070616c6c65745f6c6f616e731870616c6c6574144572726f7204045400015030506f6f6c4e6f74466f756e6400000474456d697473207768656e20706f6f6c20646f65736e27742065786973745c4c6f616e4e6f744163746976654f724e6f74466f756e64000104d4456d697473207768656e206c6f616e20646f65736e2774206578697374206f722069742773206e6f7420616374697665207965742e4c4e6f56616c696457726974654f666652756c650002080d01456d697473207768656e20612077726974652d6f66662072756c65206973206e6f7420666f756e6420696e206120706f6c69637920666f72206120737065636966696311016c6f616e2e2049742068617070656e73207768656e207468657265206973206e6f20706f6c696379206f7220746865206c6f616e206973206e6f74206f7665726475652e404e46544f776e65724e6f74466f756e6400030494456d697473207768656e20746865204e4654206f776e6572206973206e6f7420666f756e642c4e6f744e46544f776e6572000404d4456d697473207768656e204e4654206f776e657220646f65736e2774206d6174636820746865206578706563746564206f776e65723c4e6f744c6f616e426f72726f7765720005040101456d697473207768656e20746865206170706c6963616e74206163636f756e74206973206e6f742074686520626f72726f776572206f6620746865206c6f616e544d61784163746976654c6f616e7352656163686564000604d4456d697473207768656e20746865206d6178206e756d626572206f6620616374697665206c6f616e73207761732072656163686564384e6f4c6f616e4368616e67654964000704b8546865204368616e676520496420646f6573206e6f742062656c6f6e6720746f2061206c6f616e206368616e676544556e72656c617465644368616e676549640008040d01546865204368616e676520496420657869737473206275742069742773206e6f742072656c6561746564207769746820746865206578706563746564206368616e67655c4d69736d61746368656450726963696e674d6574686f64000904f8456d697473207768656e207468652070726963696e67206d6574686f64206973206e6f7420636f6d70617469626c6520776974682074686520696e7075747c536574746c656d656e74507269636545786365656473566172696174696f6e000a040101456d697473207768656e20736574746c656d656e7420707269636520697320657863656564732074686520636f6e6669677572656420766172696174696f6e2e3c4372656174654c6f616e4572726f7204000d0d013c4372656174654c6f616e4572726f72000b040d01456d697473207768656e20746865206c6f616e20697320696e636f72726563746c792073706563696669656420616e642063616e206e6f7420626520637265617465643c426f72726f774c6f616e4572726f720400110d013c426f72726f774c6f616e4572726f72000c04b0456d697473207768656e20746865206c6f616e2063616e206e6f7420626520626f72726f7765642066726f6d3852657061794c6f616e4572726f720400150d013852657061794c6f616e4572726f72000d04a8456d697473207768656e20746865206c6f616e2063616e206e6f74206265207265706169642066726f6d3c5772697474656e4f66664572726f720400190d013c5772697474656e4f66664572726f72000e04a8456d697473207768656e20746865206c6f616e2063616e206e6f74206265207772697474656e206f666638436c6f73654c6f616e4572726f7204001d0d0138436c6f73654c6f616e4572726f72000f0494456d697473207768656e20746865206c6f616e2063616e206e6f7420626520636c6f736564344d75746174696f6e4572726f720400210d01344d75746174696f6e4572726f7200100498456d697473207768656e20746865206c6f616e2063616e206e6f74206265206d757461746564585472616e7366657244656274546f53616d654c6f616e001104b8456d697473207768656e2064656274206973207472616e73666572656420746f207468652073616d65206c6f616e705472616e7366657244656274416d6f756e744d69736d6174636865640012040901456d697473207768656e2064656274206973207472616e736665726564207769746820646966666572656e74207265706169642f626f72726f7720616d6f756e7473904d61747572697479446174654e6565646564466f7256616c756174696f6e4d6574686f6400130cfc456d697473207768656e20746865206c6f616e20686173206e6f206d617475726974792064617465207365742c20627574207468652076616c756174696f6ee06d6574686f64206e65656473206f6e652e204d616b696e672076616c756174696f6e20616e64206d617475726974792073657474696e677334696e636f6d70617469626c652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d0d0c3070616c6c65745f6c6f616e731474797065733c4372656174654c6f616e4572726f7200011058496e76616c696456616c756174696f6e4d6574686f6400000060496e76616c696452657061796d656e745363686564756c6500010060496e76616c6964426f72726f775265737472696374696f6e0002005c496e76616c696452657061795265737472696374696f6e00030000110d0c3070616c6c65745f6c6f616e731474797065733c426f72726f774c6f616e4572726f72000110444d6178416d6f756e7445786365656465640000002c5265737472696374696f6e000100484d6174757269747944617465506173736564000200385061796d656e744f76657264756500030000150d0c3070616c6c65745f6c6f616e731474797065733852657061794c6f616e4572726f720001082c5265737472696374696f6e000000684d61785072696e636970616c416d6f756e74457863656564656400010000190d0c3070616c6c65745f6c6f616e731474797065733c5772697474656e4f66664572726f72000104384c6573735468616e506f6c696379000000001d0d0c3070616c6c65745f6c6f616e7314747970657338436c6f73654c6f616e4572726f72000104384e6f7446756c6c7952657061696400000000210d0c3070616c6c65745f6c6f616e73147479706573344d75746174696f6e4572726f7200010c68446973636f756e74656443617368466c6f7745787065637465640000005c496e7465726e616c50726963696e6745787065637465640001005c4d61747572697479457874656e646564546f6f4d75636800020000250d0000040800210400290d0c246366675f74797065732c7065726d697373696f6e733c5065726d697373696f6e526f6c6573100c4e6f7701a8204d696e44656c6179012d0d245472616e6368654964019d022c4d61785472616e6368657301990400100128706f6f6c5f61646d696e310d0138506f6f6c41646d696e526f6c657300013863757272656e63795f61646d696e350d014843757272656e637941646d696e526f6c65730001647065726d697373696f6e65645f61737365745f686f6c646572390d01a85065726d697373696f6e656443757272656e6379486f6c646572733c4e6f772c204d696e44656c61793e0001407472616e6368655f696e766573746f72450d01dc5472616e636865496e766573746f72733c4e6f772c204d696e44656c61792c205472616e63686549642c204d61785472616e636865733e00002d0d084c646576656c6f706d656e745f72756e74696d65204d696e44656c617900000000310d0c246366675f74797065732c7065726d697373696f6e7338506f6f6c41646d696e526f6c657300000401106269747310010c7533320000350d0c246366675f74797065732c7065726d697373696f6e734843757272656e637941646d696e526f6c657300000401106269747310010c7533320000390d0c246366675f74797065732c7065726d697373696f6e736c5065726d697373696f6e656443757272656e6379486f6c64657273080c4e6f7701a8204d696e44656c6179012d0d00040110696e666f3d0d01984f7074696f6e3c5065726d697373696f6e656443757272656e6379486f6c646572496e666f3e00003d0d04184f7074696f6e04045401410d0108104e6f6e6500000010536f6d650400410d0000010000410d0c246366675f74797065732c7065726d697373696f6e73785065726d697373696f6e656443757272656e6379486f6c646572496e666f00000401447065726d697373696f6e65645f74696c6c2c011c5365636f6e64730000450d0c246366675f74797065732c7065726d697373696f6e73405472616e636865496e766573746f7273100c4e6f7701a8204d696e44656c6179012d0d245472616e6368654964019d022c4d61785472616e6368657301990400040110696e666f490d01dc426f756e6465645665633c5472616e636865496e766573746f72496e666f3c5472616e63686549643e2c204d61785472616e636865733e0000490d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d0d045300000400510d01185665633c543e00004d0d0c246366675f74797065732c7065726d697373696f6e734c5472616e636865496e766573746f72496e666f04245472616e6368654964019d02000c01287472616e6368655f69649d0201245472616e63686549640001447065726d697373696f6e65645f74696c6c2c011c5365636f6e647300012469735f66726f7a656e780110626f6f6c0000510d0000024d0d00550d0c4870616c6c65745f7065726d697373696f6e731870616c6c6574144572726f7204045400011840526f6c65416c7265616479476976656e00000030526f6c654e6f74476976656e0001001c4e6f526f6c6573000200204e6f456469746f720003003c57726f6e67506172616d657465727300040030546f6f4d616e79526f6c6573000500048054686520604572726f726020656e756d206f6620746869732070616c6c65742e590d0c6470616c6c65745f636f6c6c61746f725f616c6c6f776c6973741870616c6c6574144572726f7204045400010c58436f6c6c61746f72416c7265616479416c6c6f776564000004d454686520636f6c6c61746f722068617320616c7265616479206265656e20616464656420746f2074686520616c6c6f776c6973742e40436f6c6c61746f724e6f745265616479000108e454686520636f6c6c61746f72206973206e6f742072656164792079657420666f6c6c6f77696e6720746f2074686520756e6465726c79696e676860543a3a56616c696461746f72526567697374726174696f6e6048436f6c6c61746f724e6f7450726573656e74000204cc5468652070726f766964656420636f6c6c61746f7220776173206e6f7420666f756e6420696e207468652073746f726167652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d0d0c6070616c6c65745f726573747269637465645f746f6b656e731870616c6c6574144572726f720404540001044c507265436f6e646974696f6e734e6f744d6574000000048054686520604572726f726020656e756d206f6620746869732070616c6c65742e610d0c3470616c6c65745f6272696467651870616c6c6574144572726f720404540001043c496e76616c69645472616e7366657200000440496e76616c6964207472616e73666572048054686520604572726f726020656e756d206f6620746869732070616c6c65742e650d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401690d0453000004006d0d01185665633c543e0000690d085c70616c6c65745f696e7465726573745f6163637275616c2c5261746544657461696c73041052617465019503000c0154696e7465726573745f726174655f7065725f7365639503011052617465000140616363756d756c617465645f72617465950301105261746500013c7265666572656e63655f636f756e7410010c75333200006d0d000002690d00710d0c5c70616c6c65745f696e7465726573745f6163637275616c1870616c6c6574144572726f72040454000114544465627443616c63756c6174696f6e4661696c656400000498456d697473207768656e2074686520646562742063616c63756c6174696f6e206661696c6564504465627441646a7573746d656e744661696c656400010494456d697473207768656e2074686520646562742061646a7573746d656e74206661696c6564284e6f5375636852617465000204a4456d697473207768656e2074686520696e746572657374207261746520776173206e6f7420757365642c496e76616c696452617465000304bc456d697473207768656e20612072617465206973206e6f742077697468696e207468652076616c69642072616e676530546f6f4d616e795261746573000404f0456d697473207768656e20616464696e672061206e6577207261746520776f756c6420657863656564207468652073746f72616765206c696d697473048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750d0000040800790d00790d00000408303d04007d0d083c70616c6c65745f6b657973746f72650c4b6579082c426c6f636b4e756d62657201101c42616c616e636501180010011c707572706f73653d0401284b6579507572706f73650001206b65795f747970654104011c4b6579547970650001287265766f6b65645f61744502014c4f7074696f6e3c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650000810d00000408003d0400850d0c3c70616c6c65745f6b657973746f72651870616c6c6574144572726f72040454000114184e6f4b657973000004584e6f206b65797320776572652070726f76696465642e2c546f6f4d616e794b657973000104a04d6f7265207468616e20543a3a4d61784b657973206b65797320776572652070726f76696465642e404b6579416c72656164794578697374730002045c546865206b657920616c7265616479206578697374732e2c4b65794e6f74466f756e6400030484546865206b657920776173206e6f7420666f756e6420696e2073746f726167652e444b6579416c72656164795265766f6b656400040470546865206b65792077617320616c7265616479207265766f6b65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e890d00000408004904008d0d0c246366675f7479706573186f7264657273144f72646572081c42616c616e636501181c4f726465724964012c00080118616d6f756e7418011c42616c616e63650001307375626d69747465645f61742c011c4f7264657249640000910d0000040849042c00950d0c4870616c6c65745f696e766573746d656e74731870616c6c6574144572726f720404540001283c4f726465724e6f74436c6561726564000008fc546865206f7264657220686173206e6f74206265656e206d61726b656420617320636c65617265642e20497427732065697468657220616374697665206f7234696e2070726f63657373696e67404f726465725374696c6c41637469766500010ce4546865206f726465722061207573657220747269656420746f20636f6c6c65637420666f72206973207374696c6c2061637469766520616e64e06e6565647320746f2062652070757420696e2070726f63657373696e6720616e64207468656e20626520636c6561726564206265666f7265546120636f6c6c65637420697320706f737369626c6544556e6b6e6f776e496e766573746d656e74000204d0496e766573746d656e744d616e6167657220646f6573206e6f74206b6e6f772074686520676976656e20696e766573746d656e743c436f6c6c6563745265717569726564000308bc54686520757365722068617320746f206d616e7920756e636f6c6c6563746564206f72646572732e204265666f7265d87375626d697474696e67206e6577206f72646572732c206120636f6c6c656374206f662074686f73652069732072657175697265642e505a65726f507269636564496e766573746d656e74000408e0412066756c66696c6c6d656e742068617070656e6564207769746820616e20696e766573746d656e74207072696365206f66207a65726f2e6c546865206f726465722077696c6c20626520646973636172646564504f726465724e6f74496e50726f63657373696e67000504d84f72646572206973207374696c6c2061637469766520616e642063616e206e6f742062652070726f6365737365642066757274686572444f72646572496e50726f63657373696e67000608d04f72646572206973206e6f742079657420636c656172656420616e64206d7573742062652070726f6365737365642066697273749c6265666f72652072657175657374696e67206e6577206f726465727320697320616c6c6f776564284e6f4e65774f726465720007048c557064617465206f66206f7264657220776173206e6f742061206e6577206f726465724c4e6f416374697665496e766573744f72646572000804f855736572206861732063757272656e746c79206e6f20696e76657374206f72646572732061637469766520616e642063616e206e6f7420636f6c6c6563744c4e6f41637469766552656465656d4f72646572000904f855736572206861732063757272656e746c79206e6f2072656465656d206f72646572732061637469766520616e642063616e206e6f7420636f6c6c656374048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990d0000040845029d0d009d0d103870616c6c65745f72657761726473246d656368616e69736d0c6761702043757272656e63790404540109050008012c746f74616c5f7374616b65180128543a3a42616c616e636500012c7270745f6368616e676573a10d01b0426f756e6465645665633c543a3a526174652c20543a3a4d617843757272656e63794d6f76656d656e74733e0000a10d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a50d045300000400ad0d01185665633c543e0000a50d0c3473705f61726974686d657469632c66697865645f706f696e742446697865644931323800000400a90d0110693132380000a90d0000050d00ad0d000002a50d00b10d103870616c6c65745f72657761726473246d656368616e69736d0c6761701447726f75700404540109050010012c746f74616c5f7374616b65180128543a3a42616c616e636500014c70656e64696e675f746f74616c5f7374616b65180128543a3a42616c616e636500010c727074a50d011c543a3a5261746500013c646973747269627574696f6e5f6964100144543a3a446973747269627574696f6e49640000b50d0000040800b90300b90d103870616c6c65745f72657761726473246d656368616e69736d0c6761701c4163636f756e74040454010905001401147374616b65180128543a3a42616c616e63650001307265776172645f74616c6c79a90d012c543a3a4942616c616e636500013470656e64696e675f7374616b65180128543a3a42616c616e636500013c646973747269627574696f6e5f6964100144543a3a446973747269627574696f6e49640001586c6173745f63757272656e63795f6d6f76656d656e74b4010c7531360000bd0d0c3870616c6c65745f726577617264731870616c6c6574144572726f7208045400044900010c5043757272656e6379576974686f757447726f75700000004c43757272656e6379496e53616d6547726f75700001006c43757272656e63794d61784d6f76656d656e747352656163686564000200048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec10d086070616c6c65745f6c69717569646974795f726577617264732445706f63684461746104045400000c01206475726174696f6e2c012c4d6f6d656e744f663c543e000118726577617264180128543a3a42616c616e636500011c77656967687473c50d01d0426f756e64656442547265654d61703c543a3a47726f757049642c20543a3a5765696768742c20543a3a4d617847726f7570733e0000c50d0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01100456012c0453000004003108013842547265654d61703c4b2c20563e0000c90d0c6070616c6c65745f6c69717569646974795f726577617264731870616c6c6574144572726f72040454000104644d61784368616e67657350657245706f63685265616368656400000811014c696d6974206f66206d61782063616c6c7320776974682073616d6520696420746f205b6050616c6c65743a3a7365745f67726f75705f7765696768742829605d206f72a45b6050616c6c65743a3a7365745f63757272656e63795f67726f75702829605d20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ecd0d0c5870616c6c65745f6c69717569646974795f706f6f6c731870616c6c6574144572726f720404540001543441737365744e6f74466f756e6400000c11014661696c656420746f206d61702074686520617373657420746f2074686520636f72726573706f6e64696e67204c6971756964697479506f6f6c73272047656e6572616cc8496e64657820726570726573656e746174696f6e20616e6420746875732063616e6e6f74206265207573656420617320616e50696e766573746d656e742063757272656e63792e7041737365744d657461646174614e6f74506f6f6c43757272656e6379000108f4546865206d65746164617461206f662074686520676976656e20617373657420646f6573206e6f74206465636c617265206974206173206120706f6f6cf863757272656e637920616e6420746875732069742063616e6e6f74206265207573656420617320616e20696e766573746d656e742063757272656e63792e8841737365744e6f744c6971756964697479506f6f6c735472616e7366657261626c650002080d01546865206d65746164617461206f662074686520676976656e20617373657420646f6573206e6f74206465636c617265206974206173207472616e7366657261626c6550766961204c6971756964697479506f6f6c73272e8841737365744e6f744c6971756964697479506f6f6c7357726170706564546f6b656e000308d4546865206173736574206973206e6f7420612061207772617070656420746f6b656e20616e6420746875732063616e6e6f74206265807472616e7366657272656420766961206c697175696469747920706f6f6c732e30506f6f6c4e6f74466f756e64000404684120706f6f6c20636f756c64206e6f7420626520666f756e642e3c5472616e6368654e6f74466f756e640005047441207472616e63686520636f756c64206e6f7420626520666f756e642e5c5472616e6368654d657461646174614e6f74466f756e64000604bc436f756c64206e6f742066696e6420746865206d65746164617461206f662061207472616e63686520746f6b656e2e4c4d697373696e675472616e636865507269636500070c984661696c656420746f2066657463682061207472616e63686520746f6b656e2070726963652ed4546869732063616e206f6363757220696620605472616e6368654e6f74466f756e6460206f72206966206566666563746976656c79c074686520707269636520666f722074686973207472616e63686520686173206e6f7420796574206265656e207365742e54496e76616c69645472616e73666572416d6f756e74000804845472616e7366657220616d6f756e74206d757374206265206e6f6e2d7a65726f2e3442616c616e6365546f6f4c6f77000904cc53656e646572732062616c616e636520697320696e73756666696369656e7420666f72207472616e7366657220616d6f756e7450556e617574686f72697a65645472616e73666572000a04e841207472616e7366657220746f2061206e6f6e2d77686974656c69737465642064657374696e6174696f6e2077617320617474656d707465642e58496e76616c6964496e636f6d696e674d657373616765000b04944661696c656420746f206465636f646520616e20696e636f6d696e67206d6573736167652e34496e76616c6964446f6d61696e000c04885468652064657374696e6174696f6e20646f6d61696e20697320696e76616c69642e78496e76616c69645472616e636865496e766573746f7256616c6964697479000d04705468652076616c696469747920697320696e2074686520706173742e5c496e76616c69645472616e7366657243757272656e6379000e0405015468652063757272656e6379206973206e6f7420616c6c6f77656420746f206265207472616e7366657272656420766961204c6971756964697479506f6f6c732e7c496e766573746f72446f6d61696e416464726573734e6f74414d656d626572000f080501546865206163636f756e7420646572697665642066726f6d20746865205b446f6d61696e5d20616e64205b446f6d61696e416464726573735d20686173206e6f74986265656e2077686974656c69737465642061732061205472616e636865496e766573746f722e6c496e766573746f72446f6d61696e4164647265737346726f7a656e0010080d01546865206163636f756e7420646572697665642066726f6d20746865205b446f6d61696e5d20616e64205b446f6d61696e416464726573735d2069732066726f7a656eb4616e642063616e6e6f74207472616e73666572207472616e63686520746f6b656e73207468657265666f72652e78496e766573746f72446f6d61696e416464726573734e6f7446726f7a656e0011080101546865206163636f756e7420646572697665642066726f6d20746865205b446f6d61696e5d20616e64205b446f6d61696e416464726573735d206973206e6f74a066726f7a656e20616e642063616e6e6f7420626520756e66726f7a656e207468657265666f72652e304e6f74506f6f6c41646d696e001204c44f6e6c792074686520506f6f6c41646d696e2063616e2065786563757465206120676976656e206f7065726174696f6e2e64446f6d61696e486f6f6b416464726573734e6f74466f756e64001304ac54686520646f6d61696e20686f6f6b206164647265737320636f756c64206e6f7420626520666f756e642e5c556e737570706f7274656442617463684d6573736167650014080101546869732070616c6c657420646f6573206e6f742065787065637420746f20726563656976652064697265636c74792061206261746368206d6573736167652cfc696e73746561642069742065787065637473207365766572616c2063616c6c7320746f206974207769746820646966666572656e74206d657373616765732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed10d0c246366675f747970657314706f6f6c7330506f6f6c4d6574616461746104204d65746153697a6501d50d000401206d6574616461746175080160426f756e6465645665633c75382c204d65746153697a653e0000d50d084c646576656c6f706d656e745f72756e74696d653c4d617853697a654d6574616461746100000000d90d0c246366675f747970657314706f6f6c7358506f6f6c526567697374726174696f6e537461747573000108285265676973746572656400000030556e7265676973746572656400010000dd0d0c5070616c6c65745f706f6f6c5f72656769737472791870616c6c6574144572726f720404540001182c4261644d657461646174610000045c496e76616c6964206d657461646174612070617373656454506f6f6c416c726561647952656769737465726564000104ec4120506f6f6c20776974682074686520676976656e2049442077617320616c7265616479207265676973746572656420696e2074686520706173746c4d65746164617461466f7243757272656e63794e6f74466f756e64000204a04e6f206d6574616461746120666f722074686520676976656e2063757272656e637920666f756e64484e6f53756368506f6f6c4d65746164617461000304984e6f204d6574616461746120666f756e6420666f722074686520676976656e20506f6f6c49645c5472616e636865546f6b656e4e616d65546f6f4c6f6e67000404d454686520676976656e207472616e63686520746f6b656e206e616d65206578636565647320746865206c656e677468206c696d6974605472616e63686553796d626f6c4e616d65546f6f4c6f6e67000504d854686520676976656e207472616e6368652073796d626f6c206e616d65206578636565647320746865206c656e677468206c696d6974048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee10d000004084502e50d00e50d103870616c6c65745f72657761726473246d656368616e69736d10626173652043757272656e63790c1c42616c616e63650118105261746501a50d304d61784d6f76656d656e747301e90d0008012c746f74616c5f7374616b6518011c42616c616e636500012c7270745f6368616e676573ed0d0178426f756e6465645665633c526174652c204d61784d6f76656d656e74733e0000e90d0c3872756e74696d655f636f6d6d6f6e1c726577617264735853696e676c6543757272656e63794d6f76656d656e7400000000ed0d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a50d045300000400ad0d01185665633c543e0000f10d103870616c6c65745f72657761726473246d656368616e69736d10626173651447726f7570081c42616c616e63650118105261746501a50d0008012c746f74616c5f7374616b6518011c42616c616e636500010c727074a50d0110526174650000f50d103870616c6c65745f72657761726473246d656368616e69736d10626173651c4163636f756e74081c42616c616e63650118204942616c616e636501a90d000c01147374616b6518011c42616c616e63650001307265776172645f74616c6c79a90d01204942616c616e63650001586c6173745f63757272656e63795f6d6f76656d656e74b4010c7531360000f90d0c3870616c6c65745f726577617264731870616c6c6574144572726f7208045400044900010c5043757272656e6379576974686f757447726f75700000004c43757272656e6379496e53616d6547726f75700001006c43757272656e63794d61784d6f76656d656e747352656163686564000200048054686520604572726f726020656e756d206f6620746869732070616c6c65742efd0d085070616c6c65745f626c6f636b5f726577617264732c53657373696f6e44617461040454000010013c636f6c6c61746f725f726577617264180128543a3a42616c616e6365000138636f6c6c61746f725f636f756e7410010c75333200015c74726561737572795f696e666c6174696f6e5f726174659503011c543a3a5261746500012c6c6173745f7570646174652c011c5365636f6e64730000010e0c5070616c6c65745f626c6f636b5f726577617264731870616c6c6574144572726f72040454000100048054686520604572726f726020656e756d206f6620746869732070616c6c65742e050e0000040800c50400090e0c6470616c6c65745f7472616e736665725f616c6c6f776c6973741870616c6c657444416c6c6f77616e63654d65746164617461042c426c6f636b4e756d6265720110000c013c616c6c6f77616e63655f636f756e742c010c75363400013463757272656e745f64656c61794502014c4f7074696f6e3c426c6f636b4e756d6265723e0001546f6e63655f6d6f6469666961626c655f61667465724502014c4f7074696f6e3c426c6f636b4e756d6265723e00000d0e0000040c00c504c90400110e0c6470616c6c65745f7472616e736665725f616c6c6f776c6973741870616c6c657440416c6c6f77616e636544657461696c73042c426c6f636b4e756d626572011000080128616c6c6f7765645f617410012c426c6f636b4e756d626572000128626c6f636b65645f617410012c426c6f636b4e756d6265720000150e0c6470616c6c65745f7472616e736665725f616c6c6f776c6973741870616c6c6574144572726f720404540001203c4e6f416c6c6f77616e636573536574000008ec416e206f7065726174696f6e20657870656374696e67206f6e65206f72206d6f726520616c6c6f77616e63657320666f7220612073656e64696e67a04163636f756e742f43757272656e6379207365742c207768657265206e6f6e652070726573656e74484475706c6963617465416c6c6f77616e6365000108ec417474656d7074656420746f2063726561746520616c6c6f77616e636520666f72206578697374696e672053656e64696e67204163636f756e742c8843757272656e63792c20616e6420526563656976657220636f6d62696e6174696f6e4c4e6f4d61746368696e67416c6c6f77616e6365000204ac4e6f206d61746368696e6720616c6c6f77616e636520666f72204c6f636174696f6e2f43757272656e63793c4e6f4d61746368696e6744656c61790003080d014e6f206d61746368696e672064656c617920666f72207468652073656e64696e67206163636f756e7420616e642063757272656e637920636f6d62696e6174696f6e2e8843616e6e6f742064656c6574652061206e6f6e2d6578697374616e7420656e747279384475706c696361746544656c61790004045044656c617920616c7265616479206578697374734444656c6179556e6d6f6469666961626c65000508090144656c617920686173206e6f74206265656e2073657420746f206d6f6469666965642c206f722064656c6179206174207768696368206d6f64696669636174696f6e88686173206265656e2073657420686173206e6f74206265656e20726561636865642e58416c6c6f77616e63654861734e6f74457870697265640006048c417474656d7074656420746f20636c6561722061637469766520616c6c6f77616e6365644e6f416c6c6f77616e6365466f7244657374696e6174696f6e000708e45472616e736665722066726f6d2073656e64696e67206163636f756e7420616e642063757272656e6379206e6f7420616c6c6f77656420746f2c64657374696e6174696f6e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e190e143870616c6c65745f72657761726473246d656368616e69736d0c6761701870616c6c6574144572726f72040454000104705472794d6f76656d656e74416674657250656e64696e675374617465000000048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d0e000004085504d50100210e0000040800550400250e0c7870616c6c65745f6c69717569646974795f706f6f6c735f676174657761791870616c6c6574144572726f7204045400012440526f75746572496e69744661696c656400000474526f7574657220696e697469616c697a6174696f6e206661696c65642e50496e76616c69644d6573736167654f726967696e000104d4546865206f726967696e206f6620746865206d65737361676520746f2062652070726f63657373656420697320696e76616c69642e48446f6d61696e4e6f74537570706f727465640002047054686520646f6d61696e206973206e6f7420737570706f727465642e50496e7374616e6365416c72656164794164646564000304a4496e7374616e63652077617320616c726561647920616464656420746f2074686520646f6d61696e2e484d6178446f6d61696e496e7374616e636573000404d44d6178696d756d206e756d626572206f6620696e7374616e63657320666f72206120646f6d61696e2077617320726561636865642e3c556e6b6e6f776e496e7374616e636500050444556e6b6e6f776e20696e7374616e63652e38526f757465724e6f74466f756e6400060444526f75746572206e6f7420666f756e642e704d6573736167655061636b696e67416c7265616479537461727465640007080d01456d6974746564207768656e20796f752063616c6c206073746172745f62617463685f6d657373616765732829602062757420746861742077617320616c72656164790d0163616c6c65642e20596f752073686f756c642066696e616c697a6520746865206d65737361676520776974682060656e645f62617463685f6d65737361676573282960604d6573736167655061636b696e674e6f74537461727465640008080901456d6974746564207768656e20796f752063616e2060656e645f62617463685f6d6573736167652829602062757420746865207061636b696e672070726f63657373ac776173206e6f742073746172746564206279206073746172745f62617463685f6d6573736167652829602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e290e0c4470616c6c65745f6f726465725f626f6f6b1870616c6c6574144f7264657204045400002001206f726465725f69642c013c543a3a4f7264657249644e6f6e636500013c706c6163696e675f6163636f756e74000130543a3a4163636f756e74496400012c63757272656e63795f696eb9030134543a3a43757272656e6379496400013063757272656e63795f6f7574b9030134543a3a43757272656e63794964000124616d6f756e745f696e180130543a3a42616c616e6365496e000128616d6f756e745f6f7574180134543a3a42616c616e63654f7574000148616d6f756e745f6f75745f696e697469616c180134543a3a42616c616e63654f7574000114726174696f310501504f72646572526174696f3c543a3a526174696f3e00002d0e0c4470616c6c65745f6f726465725f626f6f6b1870616c6c6574144572726f720404540001203c53616d6543757272656e63794964730000080d014572726f72207768656e206f7264657220697320706c6163656420617474656d7074696e6720746f2065786368616e67652063757272656e63696573206f66207468652873616d6520747970652e6442656c6f774d696e46756c66696c6c6d656e74416d6f756e74000104f04572726f72207768656e20616e206163636f756e742063616e6e6f742072657365727665206f72207472616e736665722074686520616d6f756e742e44496e76616c696443757272656e6379496400020801014572726f72207768656e20616e206f7264657220697320706c61636564207769746820612063757272656e63792074686174206973206e6f7420696e20746865406041737365745265676973747279602e344f726465724e6f74466f756e6400030809014572726f72207768656e20616e206f7065726174696f6e20697320617474656d70746564206f6e20616e206f726465722069642074686174206973206e6f7420696e2073746f726167652e30556e617574686f7269736564000408f44572726f72207768656e2061207573657220617474656d70747320616e20616374696f6e206f6e20616e206f72646572207468657920617265206e6f740501617574686f726973656420746f20706572666f726d2c20737563682061732063616e63656c6c696e6720616e6f74686572206163636f756e7473206f726465722e5446756c66696c6c416d6f756e74546f6f4c61726765000508f84572726f72207768656e207468652070726f766964656420616d6f756e7420746f2066756c66696c6c20697320746f6f206c6172676520666f7220746865186f726465722e504d61726b65744665656465724e6f74466f756e64000604d05468657265206973206e6f74206665656465722073657420666f72206d61726b657420636f6e76657273696f6e20726174696f734c4d61726b6574526174696f4e6f74466f756e64000704e445787065637465642061206d61726b657420726174696f20666f722074686520676976656e2070616972206f662063757272656e636965732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e310e0c6870616c6c65745f666f726569676e5f696e766573746d656e747320656e74697469657338496e766573746d656e74496e666f0404540000100140666f726569676e5f63757272656e6379b9030134543a3a43757272656e63794964000138666f726569676e5f616d6f756e74180144543a3a466f726569676e42616c616e636500017c64656372656173655f737761707065645f666f726569676e5f616d6f756e74180144543a3a466f726569676e42616c616e63650001206f726465725f69640d0101484f7074696f6e3c543a3a4f7264657249643e0000350e0c6870616c6c65745f666f726569676e5f696e766573746d656e747320656e74697469657338526564656d7074696f6e496e666f0404540000100140666f726569676e5f63757272656e6379b9030134543a3a43757272656e63794964000138737761707065645f616d6f756e74180144543a3a466f726569676e42616c616e6365000160636f6c6c65637465645f7472616e6368655f746f6b656e73180144543a3a5472616e63686542616c616e63650001206f726465725f69640d0101484f7074696f6e3c543a3a4f7264657249643e0000390e0000040800a108003d0e0c6870616c6c65745f666f726569676e5f696e766573746d656e74731870616c6c6574144572726f7204045400011030496e666f4e6f74466f756e64000004ac4661696c656420746f207265747269657665207468652060466f726569676e496e76657374496e666f602e30506f6f6c4e6f74466f756e64000104c84661696c656420746f2072657472696576652074686520706f6f6c20666f722074686520676976656e20706f6f6c2069642e644d69736d617463686564466f726569676e43757272656e63790002100901416e20616374696f6e20666f72206120646966666572656e7420666f726569676e2063757272656e63792069732063757272656e746c7920696e2070726f63657373d0666f72207468652073616d6520706f6f6c2063757272656e63792c206163636f756e742c20616e6420696e766573746d656e742e11015468652063757272656e637420666f726569676e20616374696f6e73206d7573742062652066696e6973686564206265666f7265207374617274696e6720776974682061cc646966666572656e7420666f726569676e2063757272656e637920696e766573746d656e74202f20726564656d7074696f6e2e5843616e63656c6c6174696f6e496e50726f6772657373000308f0412063616e63656c20616374696f6e20697320696e2070726f677265737320616e64206974206e6565647320746f2066696e697368206265666f726540696e6372656173696e6720616761696e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e410e00000408bd01b50300450e00000408c9032c00490e0c6070616c6c65745f6f7261636c655f636f6c6c656374696f6e14747970657340436163686564436f6c6c656374696f6e04045400000c011c636f6e74656e744d0e012101426f756e64656442547265654d61703c543a3a4f7261636c654b65792c204f7261636c6556616c7565506169723c543e2c20543a3a0a4d6178436f6c6c656374696f6e53697a653e0001546f6c6465725f76616c75655f74696d657374616d702c0130543a3a54696d657374616d700001306c6173745f757064617465642c0130543a3a54696d657374616d7000004d0e0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01b503045601510e045300000400550e013842547265654d61703c4b2c20563e0000510e00000408182c00550e042042547265654d617008044b01b503045601510e000400590e000000590e0000025d0e005d0e00000408b503510e00610e000004082cb50300650e0c6070616c6c65745f6f7261636c655f636f6c6c656374696f6e1870616c6c6574144572726f7204045400011c2849734e6f7441646d696e000004f4546865206163636f756e742077686f20747269676765722074686520616374696f6e206973206e6f74206120636f6c6c656374696f6e2061646d696e2e484b65794e6f74496e436f6c6c656374696f6e00010484546865206b6579206973206e6f7420696e2074686520636f6c6c656374696f6e2e404b65794e6f745265676973746572656400020464546865206b6579206973206e6f742072656769737465726564444d6178436f6c6c656374696f6e53697a650003045c436f6c6c656374696f6e2073697a652072656163686564684e6f4f7261636c65436f6c6c656374696f6e4368616e676549640004040101546865206368616e676520696420646f6573206e6f7420636f72726573706f6e6420746f20616e206f7261636c6520636f6c6c656374696f6e206368616e67654c4f7261636c6556616c75654f75746461746564000504cc546865206f7261636c652076616c756520686173207061737365642074686520636f6c6c656374696f6e206d6178206167652e404e6f74456e6f75676846656564657273000604b454686520616d6f756e74206f66206665656465727320666f722061206b6579206973206e6f7420656e6f756768048054686520604572726f726020656e756d206f6620746869732070616c6c65742e690e084470616c6c65745f616e63686f72735f763218416e63686f7204045400001401286163636f756e745f6964000130543a3a4163636f756e74496400012c646f63756d656e745f6964180128446f63756d656e744964000140646f63756d656e745f76657273696f6e2c013c446f63756d656e7456657273696f6e0001106861736830011c543a3a4861736800011c6465706f736974180128543a3a42616c616e636500006d0e0000040800510e00710e0c4470616c6c65745f616e63686f72735f76321870616c6c6574144572726f720404540001104c416e63686f72416c72656164794578697374730000046854686520616e63686f7220616c7265616479206578697374732e6c506572736f6e616c416e63686f72416c72656164794578697374730001048c54686520706572736f6e616c20616e63686f7220616c7265616479206578697374732e38416e63686f724e6f74466f756e640002049054686520616e63686f7220776173206e6f7420666f756e6420696e2073746f726167652e58506572736f6e616c416e63686f724e6f74466f756e64000304b454686520706572736f6e616c20616e63686f7220776173206e6f7420666f756e6420696e2073746f726167652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750e00000408bd086400790e0c9070616c6c65745f6c69717569646974795f706f6f6c735f676174657761795f71756575651870616c6c6574144572726f720404540001043c4d6573736167654e6f74466f756e64000004484d657373616765206e6f7420666f756e642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7d0e0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e6465644254726565536574080454015d01045300000400810e012c42547265655365743c543e0000810e04204254726565536574040454015d01000400850e000000850e0000025d0100890e0000028d0e008d0e086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e745d0101185061726149640001147374617465910e01344f7574626f756e6453746174650001347369676e616c735f6578697374780110626f6f6c00012c66697273745f696e646578b4010c7531360001286c6173745f696e646578b4010c7531360000910e086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000950e000004085d01b400990e086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c75333200009d0e0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10e0c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572cd04014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572ed0601644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679a50e01404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ecd04014456657273696f6e65644c6f636174696f6e00012469735f616374697665780110626f6f6c000100145265616479080120726573706f6e7365ad0e014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000a50e04184f7074696f6e04045401a90e0108104e6f6e6500000010536f6d650400a90e0000010000a90e00000408080800ad0e080c78636d4456657273696f6e6564526573706f6e736500010c08563204008905013076323a3a526573706f6e73650002000856330400d505013076333a3a526573706f6e736500030008563404003906013076343a3a526573706f6e736500040000b10e0000040810cd0400b50e0000040c2c241000b90e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd0e045300000400c10e01185665633c543e0000bd0e00000408cd041000c10e000002bd0e00c50e0c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e745461726765747304007504013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000c90e0000040c1000cd0e00cd0e080c78636d4056657273696f6e6564417373657449640001080856330400c905012c76333a3a4173736574496400030008563404002d06012c76343a3a4173736574496400040000d10e0c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e74696669657201a8304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572cd04014456657273696f6e65644c6f636174696f6e0001186c6f636b6572cd04014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273d50e01d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000d50e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d90e045300000400dd0e01185665633c543e0000d90e00000408a81800dd0e000002d90e00e10e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e50e045300000400e90e01185665633c543e0000e50e0000040818cd0400e90e000002e50e00ed0e0c2870616c6c65745f78636d1870616c6c6574144572726f720404540001642c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e5c496e76616c696441737365744e6f74436f6e63726574650014046c496e76616c6964206e6f6e2d636f6e63726574652061737365742e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef10e0c6470616c6c65745f726573747269637465645f78746f6b656e731870616c6c6574144572726f720404540001042842616456657273696f6e000000048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef50e0c5470616c6c65745f78636d5f7472616e736163746f723472656c61795f696e64696365734452656c6179436861696e496e6469636573000048011c7374616b696e67080108753800011c7574696c697479080108753800011068726d700801087538000110626f6e640801087538000128626f6e645f65787472610801087538000118756e626f6e64080108753800014477697468647261775f756e626f6e646564080108753800012076616c696461746508010875380001206e6f6d696e61746508010875380001146368696c6c08010875380001247365745f706179656508010875380001387365745f636f6e74726f6c6c657208010875380001187265626f6e64080108753800013461735f646572697661746976650801087538000144696e69745f6f70656e5f6368616e6e656c080108753800014c6163636570745f6f70656e5f6368616e6e656c0801087538000134636c6f73655f6368616e6e656c080108753800014c63616e63656c5f6f70656e5f7265717565737408010875380000f90e0c5470616c6c65745f78636d5f7472616e736163746f721870616c6c6574144572726f7204045400016c4c496e646578416c7265616479436c61696d656400000038556e636c61696d6564496e646578000100204e6f744f776e657200020048556e776569676861626c654d6573736167650003003843616e6e6f745265616e63686f720004004441737365744861734e6f526573657276650005002c496e76616c696444657374000600544e6f7443726f7373436861696e5472616e7366657200070078417373657449734e6f7452657365727665496e44657374696e6174696f6e0008006044657374696e6174696f6e4e6f74496e7665727469626c650009003c4572726f7244656c69766572696e67000a008c44697370617463685765696768744269676765725468616e546f74616c576569676874000b00385765696768744f766572666c6f77000c0038416d6f756e744f766572666c6f77000d00505472616e736163746f72496e666f4e6f74536574000e00844e6f7443726f7373436861696e5472616e7366657261626c6543757272656e6379000f003c58636d457865637574654572726f720010002842616456657273696f6e001100604d61785765696768745472616e736163745265616368656400120054556e61626c65546f57697468647261774173736574001300484665655065725365636f6e644e6f74536574001400985369676e65645472616e736163744e6f74416c6c6f776564466f7244657374696e6174696f6e001500744661696c65644d756c74694c6f636174696f6e546f4a756e6374696f6e0016006448726d7048616e646c65724e6f74496d706c656d656e74656400170038546f6f4d756368466565557365640018003c4572726f7256616c69646174696e6700190088526566756e644e6f74537570706f72746564576974685472616e73616374496e666f001a00040d01416e206572726f7220746861742063616e206f63637572207768696c6520657865637574696e6720746865206d617070696e672070616c6c65742773206c6f6769632efd0e0c306f726d6c5f78746f6b656e73186d6f64756c65144572726f7204045400014c4441737365744861734e6f5265736572766500000478417373657420686173206e6f2072657365727665206c6f636174696f6e2e544e6f7443726f7373436861696e5472616e73666572000104644e6f742063726f73732d636861696e207472616e736665722e2c496e76616c69644465737400020474496e76616c6964207472616e736665722064657374696e6174696f6e2e844e6f7443726f7373436861696e5472616e7366657261626c6543757272656e6379000304a443757272656e6379206973206e6f742063726f73732d636861696e207472616e7366657261626c652e48556e776569676861626c654d657373616765000404b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e4858636d457865637574696f6e4661696c65640005045458434d20657865637574696f6e206661696c65642e3843616e6e6f745265616e63686f72000608e8436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468654864657374696e6174696f6e20636861696e2e3c496e76616c6964416e636573747279000704c4436f756c64206e6f742067657420616e636573747279206f662061737365742072657365727665206c6f636174696f6e2e30496e76616c696441737365740008045454686520417373657420697320696e76616c69642e6044657374696e6174696f6e4e6f74496e7665727469626c65000904dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e2842616456657273696f6e000a08ec5468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626530696e7465727072657465642e7444697374696e637452657365727665466f724173736574416e64466565000b08fc57652074726965642073656e64696e672064697374696e637420617373657420616e6420666565206275742074686579206861766520646966666572656e743c7265736572766520636861696e732e1c5a65726f466565000c044054686520666565206973207a65726f2e285a65726f416d6f756e74000d0494546865207472616e73666572696e6720617373657420616d6f756e74206973207a65726f2e58546f6f4d616e794173736574734265696e6753656e74000e04d0546865206e756d626572206f662061737365747320746f2062652073656e74206973206f76657220746865206d6178696d756d2e544173736574496e6465784e6f6e4578697374656e74000f04d85468652073706563696669656420696e64657820646f6573206e6f7420657869737420696e206120417373657473207374727563742e304665654e6f74456e6f75676800100448466565206973206e6f7420656e6f7567682e504e6f74537570706f727465644c6f636174696f6e001104584e6f7420737570706f72746564204c6f636174696f6e4c4d696e58636d4665654e6f74446566696e6564001204d44d696e58636d466565206e6f74207265676973746572656420666f72206365727461696e2072657365727665206c6f636174696f6e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e010f085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01cd0600180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273050f01844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e742c010c75363400011073697a652c010c7536340000050f04184f7074696f6e04045401090f0108104e6f6e6500000010536f6d650400090f0000010000090f085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01cd060008011070726576cd0601344d6573736167654f726967696e0001106e657874cd0601344d6573736167654f726967696e00000d0f00000408cd061000110f085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170150f019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000150f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000190f0c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d0f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401210f045300000400250f01185665633c543e0000210f082c6f726d6c5f746f6b656e732c42616c616e63654c6f636b041c42616c616e636501180008010869647d0201384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e63650000250f000002210f00290f082c6f726d6c5f746f6b656e732c4163636f756e7444617461041c42616c616e63650118000c01106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e636500002d0f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401310f045300000400350f01185665633c543e0000310f082c6f726d6c5f746f6b656e732c52657365727665446174610844526573657276654964656e746966696572017d021c42616c616e636501180008010869647d020144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000350f000002310f00390f0c2c6f726d6c5f746f6b656e73186d6f64756c65144572726f720404540001203442616c616e6365546f6f4c6f77000004585468652062616c616e636520697320746f6f206c6f775c416d6f756e74496e746f42616c616e63654661696c65640001049c43616e6e6f7420636f6e7665727420416d6f756e7420696e746f2042616c616e63652074797065544c69717569646974795265737472696374696f6e73000204d04661696c65642062656361757365206c6971756964697479207265737472696374696f6e732064756520746f206c6f636b696e67404d61784c6f636b734578636565646564000304b44661696c6564206265636175736520746865206d6178696d756d206c6f636b7320776173206578636565646564244b656570416c6976650004048c5472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e74484578697374656e7469616c4465706f736974000504e856616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742c446561644163636f756e740006048842656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e795265736572766573000700048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3d0f0000040808410f00410f000004082c250100450f0c2c636861696e6272696467651474797065733450726f706f73616c566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000100124766f7465735f666f729401385665633c4163636f756e7449643e000134766f7465735f616761696e73749401385665633c4163636f756e7449643e000118737461747573490f013850726f706f73616c53746174757300011865787069727910012c426c6f636b4e756d6265720000490f0c2c636861696e6272696467651474797065733850726f706f73616c53746174757300010c24496e6974696174656400000020417070726f7665640001002052656a6563746564000200004d0f0c2c636861696e6272696467651870616c6c6574144572726f7204045400013c3c5468726573686f6c644e6f745365740000046452656c61796572207468726573686f6c64206e6f742073657438496e76616c6964436861696e49640001047850726f766964656420636861696e204964206973206e6f742076616c696440496e76616c69645468726573686f6c640002047452656c61796572207468726573686f6c642063616e6e6f7420626520304c436861696e4e6f7457686974656c6973746564000304b4496e746572616374696f6e732077697468207468697320636861696e206973206e6f74207065726d69747465645c436861696e416c726561647957686974656c697374656400040478436861696e2068617320616c7265616479206265656e20656e61626c6564505265736f75726365446f65734e6f744578697374000504b45265736f757263652049442070726f76696465642069736e2774206d617070656420746f20616e797468696e675052656c61796572416c72656164794578697374730006045852656c6179657220616c726561647920696e207365743852656c61796572496e76616c69640007048c50726f7669646564206163636f756e744964206973206e6f7420612072656c61796572344d757374426552656c61796572000804c450726f746563746564206f7065726174696f6e2c206d75737420626520706572666f726d65642062792072656c617965724c52656c61796572416c7265616479566f746564000904e452656c617965722068617320616c7265616479207375626d697474656420736f6d6520766f746520666f7220746869732070726f706f73616c5450726f706f73616c416c7265616479457869737473000a04ec412070726f706f73616c207769746820746865736520706172616d65746572732068617320616c7265616479206265656e207375626d69747465645050726f706f73616c446f65734e6f744578697374000b04844e6f2070726f706f73616c2077697468207468652049442077617320666f756e644c50726f706f73616c4e6f74436f6d706c657465000c04a843616e6e6f7420636f6d706c6574652070726f706f73616c2c206e65656473206d6f726520766f7465735c50726f706f73616c416c7265616479436f6d706c657465000d049c50726f706f73616c2068617320656974686572206661696c6564206f72207375636365656465643c50726f706f73616c45787069726564000e04984c69666574696d65206f662070726f706f73616c20686173206265656e206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e510f0c4c6f726d6c5f61737365745f7265676973747279186d6f64756c65144572726f720404540001183441737365744e6f74466f756e6400000450417373657420776173206e6f7420666f756e642e2842616456657273696f6e000108f45468652076657273696f6e206f6620746865206056657273696f6e65644c6f636174696f6e602076616c75652075736564206973206e6f742061626c6548746f20626520696e7465727072657465642e38496e76616c6964417373657449640002046054686520617373657420696420697320696e76616c69642e4c436f6e666c696374696e674c6f636174696f6e000304d8416e6f746865722061737365742077617320616c726561647920726567697374657220776974682074686973206c6f636174696f6e2e48436f6e666c696374696e6741737365744964000404d8416e6f746865722061737365742077617320616c7265616479207265676973746572207769746820746869732061737365742069642e48496e76616c69644173736574537472696e670005046c4e616d65206f722073796d626f6c20697320746f6f206c6f6e672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e550f0c206f726d6c5f78636d186d6f64756c65144572726f7204045400010c2c556e726561636861626c650000080d01546865206d65737361676520616e642064657374696e6174696f6e20636f6d62696e6174696f6e20776173206e6f74207265636f676e697a6564206173206265696e6728726561636861626c652e2c53656e644661696c7572650001080501546865206d65737361676520616e642064657374696e6174696f6e20776173207265636f676e697a6564206173206265696e6720726561636861626c652062757494746865206f7065726174696f6e20636f756c64206e6f7420626520636f6d706c657465642e2842616456657273696f6e000208ec5468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626530696e7465727072657465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e590f082870616c6c65745f65766d30436f64654d65746164617461000008011073697a652c010c753634000110686173683001104832353600005d0f0000040821023000610f0c2870616c6c65745f65766d1870616c6c6574144572726f720404540001382842616c616e63654c6f77000004904e6f7420656e6f7567682062616c616e636520746f20706572666f726d20616374696f6e2c4665654f766572666c6f770001048043616c63756c6174696e6720746f74616c20666565206f766572666c6f7765643c5061796d656e744f766572666c6f770002049043616c63756c6174696e6720746f74616c207061796d656e74206f766572666c6f7765643857697468647261774661696c65640003044c576974686472617720666565206661696c6564384761735072696365546f6f4c6f770004045447617320707269636520697320746f6f206c6f772e30496e76616c69644e6f6e6365000504404e6f6e636520697320696e76616c6964384761734c696d6974546f6f4c6f7700060454476173206c696d697420697320746f6f206c6f772e3c4761734c696d6974546f6f4869676800070458476173206c696d697420697320746f6f20686967682e38496e76616c6964436861696e49640008046054686520636861696e20696420697320696e76616c69642e40496e76616c69645369676e617475726500090464746865207369676e617475726520697320696e76616c69642e285265656e7472616e6379000a043845564d207265656e7472616e6379685472616e73616374696f6e4d757374436f6d6546726f6d454f41000b04244549502d333630372c48496e76616c69645472616e73616374696f6e000c044c496e76616c6964205472616e73616374696f6e24556e646566696e6564000d0440556e646566696e6564206572726f722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e650f000002690f00690f0000040c21076d0f810f006d0f081866705f727063445472616e73616374696f6e53746174757300001c01407472616e73616374696f6e5f68617368300110483235360001447472616e73616374696f6e5f696e64657810010c75333200011066726f6d2102011048313630000108746f710f01304f7074696f6e3c483136303e000140636f6e74726163745f61646472657373710f01304f7074696f6e3c483136303e0001106c6f6773750f01205665633c4c6f673e0001286c6f67735f626c6f6f6d790f0114426c6f6f6d0000710f04184f7074696f6e0404540121020108104e6f6e6500000010536f6d65040021020000010000750f000002f90800790f0820657468626c6f6f6d14426c6f6f6d000004007d0f01405b75383b20424c4f4f4d5f53495a455d00007d0f000003000100000800810f0c20657468657265756d1c726563656970742452656365697074563300010c184c65676163790400850f014445495036353852656365697074446174610000001c454950323933300400850f01484549503239333052656365697074446174610001001c454950313535390400850f014845495031353539526563656970744461746100020000850f0c20657468657265756d1c72656365697074444549503635385265636569707444617461000010012c7374617475735f636f64650801087538000120757365645f6761731d050110553235360001286c6f67735f626c6f6f6d790f0114426c6f6f6d0001106c6f6773750f01205665633c4c6f673e0000890f0c20657468657265756d14626c6f636b14426c6f636b040454012107000c01186865616465728d0f01184865616465720001307472616e73616374696f6e73950f01185665633c543e0001186f6d6d657273990f012c5665633c4865616465723e00008d0f0c20657468657265756d186865616465721848656164657200003c012c706172656e745f686173683001104832353600012c6f6d6d6572735f686173683001104832353600012c62656e6566696369617279210201104831363000012873746174655f726f6f74300110483235360001447472616e73616374696f6e735f726f6f743001104832353600013472656365697074735f726f6f74300110483235360001286c6f67735f626c6f6f6d790f0114426c6f6f6d000128646966666963756c74791d050110553235360001186e756d6265721d050110553235360001246761735f6c696d69741d050110553235360001206761735f757365641d0501105532353600012474696d657374616d702c010c75363400012865787472615f6461746134011442797465730001206d69785f68617368300110483235360001146e6f6e6365910f010c4836340000910f0c38657468657265756d5f747970657310686173680c483634000004007d02011c5b75383b20385d0000950f000002210700990f0000028d0f009d0f000002810f00a10f0000026d0f00a50f0c3c70616c6c65745f657468657265756d1870616c6c6574144572726f7204045400010840496e76616c69645369676e6174757265000004545369676e617475726520697320696e76616c69642e305072654c6f67457869737473000104d85072652d6c6f672069732070726573656e742c207468657265666f7265207472616e73616374206973206e6f7420616c6c6f7765642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea90f0c6c70616c6c65745f657468657265756d5f7472616e73616374696f6e1870616c6c6574144572726f720404540001044845766d457865637574696f6e4661696c6564000000048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead0f0c646178656c61725f676174657761795f707265636f6d70696c651870616c6c6574144572726f72040454000108504e6f436f6e766572746572466f72536f75726365000004110154686520676976656e20646f6d61696e206973206e6f742079657420616c6c6f776c69737465642c2061732077652068617665206e6f20636f6e76657274657220796574744163636f756e7442797465734d69736d61746368466f72446f6d61696e00010805014120676976656e20646f6d61696e2065787065637473206120676976656e2073747275637475726520666f72206163636f756e7420627974657320616e642069744c776173206e6f7420676976656e20686572652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb10f0c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742eb50f000004082c810400b90f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012c045300000400090801185665633c543e0000bd0f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c10f045300000400cd0f01185665633c543e0000c10f0c246366675f747970657314706f6f6c731c506f6f6c4665650c244163636f756e7449640100144665654964012c28466565416d6f756e747301c50f0010012c64657374696e6174696f6e0001244163636f756e744964000118656469746f7289040160506f6f6c466565456469746f723c4163636f756e7449643e00011c616d6f756e7473c50f0128466565416d6f756e747300010869642c011446656549640000c50f0c246366675f747970657314706f6f6c7338506f6f6c466565416d6f756e7473081c42616c616e636501181052617465019503001001206665655f747970658d040168506f6f6c466565547970653c42616c616e63652c20526174653e00011c70656e64696e6718011c42616c616e636500013064697362757273656d656e7418011c42616c616e636500011c70617961626c65c90f016450617961626c65466565416d6f756e743c42616c616e63653e0000c90f0c246366675f747970657314706f6f6c734050617961626c65466565416d6f756e74041c42616c616e63650118010828416c6c50656e64696e67000000105570546f040018011c42616c616e636500010000cd0f000002c10f00d10f0c246366675f747970657324706f7274666f6c696f48506f7274666f6c696f56616c756174696f6e0c1c42616c616e6365011818456c656d4964012c204d6178456c656d7300000c011476616c756518011c42616c616e63650001306c6173745f757064617465642c011c5365636f6e647300011876616c756573d50f019c426f756e6465645665633c28456c656d49642c2042616c616e6365292c204d6178456c656d733e0000d50f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401010d045300000400050d01185665633c543e0000d90f0c4070616c6c65745f706f6f6c5f666565731870616c6c6574144572726f7204045400012c484665654964416c7265616479457869737473000004bc417474656d7074656420746f2061646420612066656520696420776869636820616c7265616479206578697374732e2c4665654e6f74466f756e6400010464412066656520636f756c64206e6f7420626520666f756e642e30506f6f6c4e6f74466f756e64000204684120706f6f6c20636f756c64206e6f7420626520666f756e642e304e6f74506f6f6c41646d696e000304c44f6e6c792074686520506f6f6c41646d696e2063616e2065786563757465206120676976656e206f7065726174696f6e2e504d6178506f6f6c466565735065724275636b6574000404c854686520706f6f6c206275636b657420686173207265616368656420746865206d6178696d756d20666565732073697a652e4c4368616e676549644e6f74506f6f6c46656573000504d0546865206368616e676520696420646f6573206e6f742062656c6f6e6720746f206120706f6f6c2066656573206368616e67652e48556e617574686f72697a6564436861726765000604bc546865206665652063616e206f6e6c792062652063686172676564206279207468652064657374696e6174696f6e2e40556e617574686f72697a656445646974000704d0546865206665652063616e206f6e6c7920626520656469746564206f722072656d6f7665642062792074686520656469746f722e3c43616e6e6f74426543686172676564000804bc417474656d7074656420746f20636861726765206120666565206f6620756e63686172676561626c6520747970652e384e6f7468696e674368617267656400090490417474656d7074656420746f206368617267652077697468207a65726f20616d6f756e74404e6f7468696e67556e63686172676564000a0498417474656d7074656420746f20756e6368617267652077697468207a65726f20616d6f756e74048054686520604572726f726020656e756d206f6620746869732070616c6c65742edd0f0c3870616c6c65745f72656d61726b731870616c6c6574144572726f72040454000104244e6f52656d61726b73000004644e6f2072656d61726b7320776572652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee10f0c4070616c6c65745f746f6b656e5f6d75781870616c6c6574144572726f72040454000118404d657461646174614e6f74466f756e640000049c54686520676976656e2063757272656e637920686173206e6f206d65746164617461207365742e544e6f4c6f63616c526570726573656e746174696f6e0001080d0154686520676976656e2063757272656e637920686173206e6f206c6f63616c20726570726573656e746174696f6e20616e642063616e2068656e6365206e6f74206265b06465706f736974656420746f20726563656976652061206c6f63616c20726570726573656e746174696f6e2e30537761704e6f74466f756e64000204745377617020636f756c64206e6f7420626520666f756e64206279206964404e6f744964656e746963616c5377617000030409014d61746368696e67206f726465727320646f6573206f6e6c7920776f726b2069662074686572652069732061206f6e652d746f2d6f6e6520636f6e76657273696f6e54496e76616c69645377617043757272656e63696573000408f454686973206d65616e7320746865207377617020697320656974686572206e6f742061206c6f63616c20746f2076617269616e74206f72206e6f7420615476617269616e7420746f206c6f63616c20737761703c446563696d616c4d69736d617463680005080d0156617269616e7420616e64206c6f63616c20726570726573656e746174696f6e2068617665206d69736d61746368696e6720646563696d616c7320696e207468656972d86d657461646174612e204120636f6e76657273696f6e206265747765656e207468652074776f206973206e6f7420706f737369626c65048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee50f0c4466705f73656c665f636f6e7461696e65644c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730179011043616c6c012501245369676e617475726501f10214457874726101e90f0004001d1001250173705f72756e74696d653a3a67656e657269633a3a556e636865636b656445787472696e7369633c416464726573732c2043616c6c2c205369676e61747572652c2045787472610a3e0000e90f00000428ed0ff10ff50ff90ffd0f051009100d101110191000ed0f10306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000f10f10306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000f50f10306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f90f10306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000fd0f10306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004000110010c45726100000110102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000051010306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400b1010120543a3a4e6f6e63650000091010306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000d10086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e74040454000004008501013042616c616e63654f663c543e0000111008746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465151001104d6f64650000151008746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c65640001000019100c3872756e74696d655f636f6d6d6f6e3c7472616e736665725f66696c7465726c50726542616c616e63655472616e73666572457874656e73696f6e040454000000001d10102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730179011043616c6c012501245369676e617475726501f10214457874726101e90f000400340000002d011853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402303d090400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000410904000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500003909040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500004509040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01290101541830426c6f636b5765696768747349096d01025b1f5d00070088526a7402004001c2a0a91d000107d0c33576510200e000010700e6bd4f570200f000010000c2a0a91d000107d065ca906e0200300101070088526a7402004001010700a2941a1d02005000c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746855093000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768745d094040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e6109c1044063656e747269667567652d646576656c4063656e747269667567652d646576656c010000007a0500000100000054df6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000dd718d5cc53262d401000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000ea93e3f16f3d696202000000c937d79c92c4e872010000009ce8a204acbb1235010000008f5c2d0094ecd0470100000022b97323b9e853da03000000639021f9c79c4897010000009c62715b4dcff733010000006575ae9c9f645c5001000000a03b94ae2668f24301000000582211f65bb14b8905000000e65b00e46cedd0aa02000000fbc577b9d747efd60100000002000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978b408880014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017109003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e74010075090400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000990904000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010034040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000340400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000410104000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010078040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c01009d0904001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401009109040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600004901040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000a50904001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e0000b9090400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100c10980000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d716348656164730100c509040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100d10904000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100350104000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301003501040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100d90940000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000240400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000240400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003404000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e013901017c0001dd09012454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0171010004344d696e696d756d506572696f642c207017000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00033450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e496401005d0110640000000000000000042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200e109040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200f109040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c64730101040200fd090400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200190a0400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e017501018410484578697374656e7469616c4465706f73697418400010a5d4e8000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e284d6178467265657a657310100a00000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01250a14485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100d90940000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100290a04000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e001544436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c657301002d0a04000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c6973740100310a0400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e018d01019000013d0a4728417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001e1c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100940400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010078040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100410a0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100490a0400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050095010400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e6572000104054d0a00040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01910101980001550a1f1041757261011041757261082c417574686f7269746965730100590a0400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f740100610a2000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000000201c41757261457874011c41757261457874082c417574686f7269746965730100590a040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000650a04000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e0000000021204d756c746973696701204d756c746973696704244d756c7469736967730001080502690a6d0a040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01a101019c0c2c4465706f73697442617365184000009e1869d02904000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f7218400000c52ebca2b10000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01750a3c1450726f7879011450726f7879081c50726f786965730101040500790a4400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500890a44000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01a90101ac184050726f78794465706f73697442617365184000009e1869d02904000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218400000c52ebca2b100000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f73697442617365184000007f80a935be08000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000008cde04bff436000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01990a3d1c5574696c6974790001b50101b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019d0a3e245363686564756c657201245363686564756c65720c3c496e636f6d706c65746553696e6365000010040000184167656e64610101040510a10a0400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001040504c0040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01290201bc08344d6178696d756d57656967687424280700a0db215d0200000104290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e01b10a3f1c436f756e63696c011c436f756e63696c182450726f706f73616c730100b50a040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406302501040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040630b90a040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100940400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01310201c404444d617850726f706f73616c576569676874242807004429353a0200a00004250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e01bd0a4024456c656374696f6e730124456c656374696f6e73141c4d656d626572730100c10a04000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100c10a04001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100cc0400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301001010000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e670101040500c90a840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e01350201c8282050616c6c657449647d0220706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e6418400000a0dec5adc935360000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e644261736518400000b2d3595bf006000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f7218400000b2d3595bf00600000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d626572731010070000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355701010030000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e1010e0c400000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e344d617843616e6469646174657310101400000018e420546865206d6178696d756d206e756d626572206f662063616e6469646174657320696e20612070687261676d656e20656c656374696f6e2e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e003101205768656e2074686973206c696d69742069732072656163686564206e6f206d6f72652063616e646964617465732061726520616363657074656420696e2074686520656c656374696f6e2e244d6178566f7465727310106400000018f820546865206d6178696d756d206e756d626572206f6620766f7465727320746f20616c6c6f7720696e20612070687261676d656e20656c656374696f6e2e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e00d8205768656e20746865206c696d6974206973207265616368656420746865206e657720766f74657273206172652069676e6f7265642e404d6178566f746573506572566f7465721010050000001090204d6178696d756d206e756d62657273206f6620766f7465732070657220766f7465722e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e01cd0a412444656d6f6372616379012444656d6f6372616379303c5075626c696350726f70436f756e74010010100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100d10a040004050120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c2e244465706f7369744f660001040510dd0a04000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e3c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b6564010010100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001040510e50a04000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f660101040500f10ad8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e544c6173745461626c656457617345787465726e616c0100780400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c0000090b040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c69737400010406300d0b04000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101040630780400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e284d657461646174614f6600010402e430040018ec2047656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720616e792070726f706f73616c206f72207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e013d0201d4303c456e6163746d656e74506572696f64101000e1000014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f641010e0c4000004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f641010e0c4000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f64101000e10000109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f73697418400000e8890423c78a000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f7765647804000c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6410108403000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f641010e0c4000004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e204d6178566f74657310106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c73101064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e2c4d61784465706f73697473101064000000041d0120546865206d6178696d756d206e756d626572206f66206465706f736974732061207075626c69632070726f706f73616c206d6179206861766520617420616e792074696d652e384d6178426c61636b6c697374656410106400000004d820546865206d6178696d756d206e756d626572206f66206974656d732077686963682063616e20626520626c61636b6c69737465642e01110b42204964656e7469747901204964656e746974791c284964656e746974794f660001040500150b040010690120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e204669727374206974656d20697320746865e020726567697374726174696f6e2c207365636f6e6420697320746865206163636f756e742773207072696d61727920757365726e616d652e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f660001040200e5020400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010405002d0b44000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100350b0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e4c557365726e616d65417574686f7269746965730001040500450b040004f42041206d6170206f6620746865206163636f756e74732077686f2061726520617574686f72697a656420746f206772616e7420757365726e616d65732e444163636f756e744f66557365726e616d6500010402ec000400146d012052657665727365206c6f6f6b75702066726f6d2060757365726e616d656020746f2074686520604163636f756e7449646020746861742068617320726567697374657265642069742e205468652076616c75652073686f756c6465012062652061206b657920696e2074686520604964656e746974794f6660206d61702c20627574206974206d6179206e6f742069662074686520757365722068617320636c6561726564207468656972206964656e746974792e006901204d756c7469706c6520757365726e616d6573206d6179206d617020746f207468652073616d6520604163636f756e744964602c2062757420604964656e746974794f66602077696c6c206f6e6c79206d617020746f206f6e6548207072696d61727920757365726e616d652e4050656e64696e67557365726e616d657300010402ec4d0b0400186d0120557365726e616d6573207468617420616e20617574686f7269747920686173206772616e7465642c20627574207468617420746865206163636f756e7420636f6e74726f6c6c657220686173206e6f7420636f6e6669726d65647101207468617420746865792077616e742069742e2055736564207072696d6172696c7920696e2063617365732077686572652074686520604163636f756e744964602063616e6e6f742070726f766964652061207369676e61747572655d012062656361757365207468657920617265206120707572652070726f78792c206d756c74697369672c206574632e20496e206f7264657220746f20636f6e6669726d2069742c20746865792073686f756c642063616c6c6c205b6043616c6c3a3a6163636570745f757365726e616d65605d2e001d01204669727374207475706c65206974656d20697320746865206163636f756e7420616e64207365636f6e642069732074686520616363657074616e636520646561646c696e652e014d0201e8203042617369634465706f7369741840000010632d5ec76b050000000000000004d82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e746974792e2c427974654465706f73697418400000869eae29d5000000000000000000041d012054686520616d6f756e742068656c64206f6e206465706f7369742070657220656e636f646564206279746520666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f73697418400000d01309468e1501000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e344d617852656769737472617273101014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e6450656e64696e67557365726e616d6545787069726174696f6e1010e0c4000004150120546865206e756d626572206f6620626c6f636b732077697468696e207768696368206120757365726e616d65206772616e74206d7573742062652061636365707465642e3c4d61785375666669784c656e677468101007000000048020546865206d6178696d756d206c656e677468206f662061207375666669782e444d6178557365726e616d654c656e67746810102000000004610120546865206d6178696d756d206c656e677468206f66206120757365726e616d652c20696e636c7564696e67206974732073756666697820616e6420616e792073797374656d2d61646465642064656c696d69746572732e01510b431c56657374696e67011c56657374696e67081c56657374696e670001040200550b040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e01005d0b04000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01090301f008444d696e5665737465645472616e7366657218400000e8890423c78a000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001610b4420547265617375727901205472656173757279183450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001040510650b0400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e2c4465616374697661746564010018400000000000000000000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e24417070726f76616c730100690b040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e285370656e64436f756e74010010100000000004a42054686520636f756e74206f66207370656e647320746861742068617665206265656e206d6164652e185370656e647300010405106d0b040004d0205370656e647320746861742068617665206265656e20617070726f76656420616e64206265696e672070726f6365737365642e01110301f4203050726f706f73616c426f6e6419071050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d1840000010632d5ec76b0500000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4c50726f706f73616c426f6e644d6178696d756d21034401000050efe2d6e41a1b00000000000000044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f641010c04b0300048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e190710102700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c65744964750b2070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c731010640000000c150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e305061796f7574506572696f641010c04b03000419012054686520706572696f6420647572696e6720776869636820616e20617070726f766564207472656173757279207370656e642068617320746f20626520636c61696d65642e01790b451c556e6971756573011c556e69717565732814436c617373000104022c7d0b040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402002c04000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202810ba8040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e30436c6173734163636f756e740001080202850ba804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e14417373657400010802028d03890b040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e3c436c6173734d657461646174614f66000104022c8d0b04000468204d65746164617461206f66206120636f6c6c656374696f6e2e48496e7374616e63654d657461646174614f6600010802028d03910b04000454204d65746164617461206f6620616e206974656d2e2441747472696275746500010c020202950b990b040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802028d039d0b04000470205072696365206f6620616e20617373657420696e7374616e63652e4c436f6c6c656374696f6e4d6178537570706c79000104022c10040004f0204b6565707320747261636b206f6620746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e206d6967687420686176652e01150301f82044436f6c6c656374696f6e4465706f7369741840000064a7b3b6e00d00000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f736974184000008a5d78456301000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000008a5d784563010000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000008a5d7845630100000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400000c16ff2862300000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410100001000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e01a10b4620507265696d6167650120507265696d6167650c24537461747573466f720001040630a50b0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e4052657175657374537461747573466f720001040630ad0b0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f7200010406bd0bc10b0400000125030115010001c50b4840436f6e76696374696f6e566f74696e670140436f6e76696374696f6e566f74696e670824566f74696e67466f720101080505c90bcd0bd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008750120416c6c20766f74696e6720666f72206120706172746963756c617220766f74657220696e206120706172746963756c617220766f74696e6720636c6173732e2057652073746f7265207468652062616c616e636520666f72207468659c206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e34436c6173734c6f636b73466f720101040500ed0b04000c69012054686520766f74696e6720636c617373657320776869636820686176652061206e6f6e2d7a65726f206c6f636b20726571756972656d656e7420616e6420746865206c6f636b20616d6f756e747320776869636820746865796d0120726571756972652e205468652061637475616c20616d6f756e74206c6f636b6564206f6e20626568616c66206f6620746869732070616c6c65742073686f756c6420616c7761797320626520746865206d6178696d756d206f662c2074686973206c6973742e012d0301190108204d6178566f74657310100002000010f020546865206d6178696d756d206e756d626572206f6620636f6e63757272656e7420766f74657320616e206163636f756e74206d617920686176652e00550120416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206c617267652076616c75652063616e206c65616420746f2065787472696e736963732077697468206c61726765c02077656967687420657374696d6174696f6e3a20736565206064656c65676174656020666f7220696e7374616e63652e44566f74654c6f636b696e67506572696f64101000e10000109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e01f90b50245265666572656e646101245265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210fd0b040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b517565756501010405b41d0c0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405b410100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021030040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e014103011d0114445375626d697373696f6e4465706f73697418400000e8890423c78a000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f757410104600000008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b73290c450818000010726f6f7402000000000080e3e0a35708873f000000000000050000000500000005000000050000000000ca9a3b0065cd1d00ca9a3b02d7c0770000000000eddf77000000000020750f000000000001004877686974656c69737465645f63616c6c6572140000000000a0dec5adc9353600000000000000050000000500000005000000050000000000ca9a3b0065cd1d00ca9a3b0295c8010000000000229103000000000026beffffffffffff0a0028706f6f6c5f61646d696e050000000000a0dec5adc9353600000000000000050000000500000005000000050000000000ca9a3b0027b92900ca9a3b02dae35a0000000000f7c8b50000000000f6340000000000000b002474726561737572657202000000000040b2bac9e0191e02000000000000050000000500000005000000050000000000ca9a3b0027b92900ca9a3b0037eb3735809698000065cd1d1400507265666572656e64756d5f63616e63656c6c6572140000000000407ba5f06381960a000000000000050000000500000005000000050000000000ca9a3b0027b92900ca9a3b02dae35a0000000000f7c8b50000000000f6340000000000001500447265666572656e64756d5f6b696c6c6572140000000000e038f8e815c2e10f000000000000050000000500000005000000050000000000ca9a3b0027b92900ca9a3b02dae35a0000000000f7c8b50000000000f63400000000000004e020496e666f726d6174696f6e20636f6e6365726e696e672074686520646966666572656e74207265666572656e64756d20747261636b732e01450c512457686974656c697374012457686974656c697374043c57686974656c697374656443616c6c0001040530a8040000014903017d070001490c5348546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c7301004d0c040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406302501040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040630b90a040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100940400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e014d03018d0704444d617850726f706f73616c576569676874242807004429353a0200a00004250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e01510c5470546563686e6963616c436f6d6d69747465654d656d626572736869700170546563686e6963616c436f6d6d69747465654d656d62657273686970081c4d656d626572730100550c040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000000040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e0151030191070001590c551046656573011046656573042c46656542616c616e6365730101040159031840000064a7b3b6e00d000000000000000004e82053746f72657320746865206665652062616c616e636573206173736f636961746564207769746820612048617368206964656e74696669657201550301950700005a18416e63686f720118416e63686f721c28507265436f6d6d69747300010401305d0c040008250120507265436f6d6d6974732073746f726520746865206d6170206f6620616e63686f7220496420746f20746865207072652d636f6d6d69742c2077686963682069732061206c6f636b98206f6e20616e20616e63686f7220696420746f20626520636f6d6d6974746564206c6174657240416e63686f7245766963744461746573000104013010040004c4204d617020746f2066696e6420746865206576696374696f6e206461746520676976656e20616e20616e63686f7220696434416e63686f72496e6465786573000104012c3004000478204d617020746f2066696e6420616e63686f72494420627920696e646578444c6174657374416e63686f72496e64657800002c040004b4204c617465737420616e63686f72656420696e64657820746861742077617320726563656e746c792075736564604c617465737445766963746564416e63686f72496e64657800002c04000c2501204c6174657374206576696374656420616e63686f7220696e6465782e205468697320776f756c64206b65657020747261636b206f6620746865206c61746573742065766963746564210120616e63686f7220696e64657820736f20746861742077652063616e207374617274207468652072656d6f76616c206f6620416e63686f724576696374446174657320696e64657819012066726f6d207468617420696e646578206f6e77617264732e20476f696e672066726f6d20416e63686f72496e6465786573203d3e20416e63686f7245766963744461746573444c6174657374457669637465644461746500001004000c0d01205468697320697320746f206b65657020747261636b206f66207468652064617465207768656e2061206368696c642074726965206f6620616e63686f72732077617319012065766963746564206c6173742e20497420697320746f20657669637420686973746f72696320616e63686f722064617461206368696c6420747269657320696620746865799020776572656e2774206576696374656420696e20612074696d656c79206d616e6e65722e4845766963746564416e63686f72526f6f74730001040110610c04001009012053746f7261676520666f72206576696374656420616e63686f72206368696c64207472696520726f6f74732e20416e63686f72732077697468206120676976656e1901206578706972792f6576696374696f6e2064617465206172652073746f726564206f6e2d636861696e20696e20612073696e676c65206368696c6420747269652e20546869732501206368696c6420747269652069732072656d6f766564206166746572207468652065787069727920646174652068617320706173736564207768696c652069747320726f6f7420697309012073746f726564207065726d616e656e746c7920666f722070726f76696e6720616e206578697374656e6365206f6620616e206576696374656420616e63686f722e015d03000001650c5b28506f6f6c53797374656d0128506f6f6c53797374656d1810506f6f6c000104022c690c0400003c5363686564756c6564557064617465000104022c9d0c0400003845706f6368457865637574696f6e000104022ca10c040000384163636f756e744465706f7369740101040200184000000000000000000000000000000000002c506f6f6c4465706f736974000104022cbd0c0400002c4e6f7465644368616e67650001080202c10cc50c040000016503019907302050616c6c65744964750b20726f632f706f6f6c002c50616c6c6574496e64657808045f0801012054686520696d6d757461626c6520696e646578206f6620746869732070616c6c6574207768656e20696e7374616e7469617465642077697468696e207468659c20636f6e74657874206f6620612072756e74696d6520776865726520697420697320757365642e344368616c6c656e676554696d6510100a000000043c204368616c6c656e67652074696d654c44656661756c744d696e45706f636854696d652c200000000000000000046020506f6f6c20706172616d657465722064656661756c74734044656661756c744d61784e41564167652c203c0000000000000000584d696e45706f636854696d654c6f776572426f756e642c200000000000000000045820506f6f6c20706172616d6574657220626f756e6473584d696e45706f636854696d655570706572426f756e642c20008d270000000000004c4d61784e41564167655570706572426f756e642c20100e00000000000000384d696e55706461746544656c61792c200100000000000000045420506f6f6c207570646174652073657474696e67732c537472696e674c696d6974101080000000002c4d61785472616e63686573101005000000045c204d6178206e756d626572206f66205472616e636865732c506f6f6c4465706f7369741840000010632d5ec76b050000000000000004c82054686520616d6f756e742074686174206d75737420626520726573657276656420746f20637265617465206120706f6f6c01c90c5f144c6f616e7301144c6f616e7318284c6173744c6f616e4964010104022c2c200000000000000000049020436f6e7461696e7320746865206c617374206c6f616e2069642067656e6572617465642c437265617465644c6f616e0001080202890ccd0c04000409012053746f7261676520666f72206c6f616e73207468617420686173206265656e20637265617465642062757420617265206e6f74207374696c6c206163746976652e2c4163746976654c6f616e73010104022cd10c040010682053746f7261676520666f7220616374697665206c6f616e732ef42054686520696e6465786174696f6e206f6620746869732073746f7261676520646966666572732066726f6d2060437265617465644c6f616e60206f7219012060436c6f7365644c6f616e60206265636175736520686572652077652074727920746f206d696e696d697a652074686520697465726174696f6e207370656564206f7665727020616c6c20616374697665206c6f616e7320696e206120706f6f6c2e28436c6f7365644c6f616e0001080202890cf50c04000c682053746f7261676520666f7220636c6f736564206c6f616e732eac204e6f206d75746174696f6e732061726520657870656374656420696e20746869732073746f726167652ebc204c6f616e73206172652073746f726564206865726520666f7220686973746f726963616c20707572706f7365732e3857726974654f6666506f6c696379010104022ced03040004a82053746f726573207772697465206f666620706f6c696379207573656420696e206561636820706f6f6c48506f7274666f6c696f56616c756174696f6e010104022cf90c6400000000000000000000000000000000a8d7cd66000000000004dc2053746f7265732074686520706f7274666f6c696f2076616c756174696f6e206173736f63696174656420746f206561636820706f6f6c01750301e50708544d61784163746976654c6f616e73506572506f6f6c1010e80300000494204d6178206e756d626572206f6620616374697665206c6f616e732070657220706f6f6c2e544d617857726974654f6666506f6c69637953697a6510100a00000004a4204d6178206e756d626572206f662077726974652d6f66662067726f7570732070657220706f6f6c2e01090d602c5065726d697373696f6e73012c5065726d697373696f6e7308285065726d697373696f6e0001080202250d290d0400003c5065726d697373696f6e436f756e740001040221041004000001110401ed0704404d6178526f6c657350657253636f70651010e80300000001550d6144436f6c6c61746f72416c6c6f776c6973740144436f6c6c61746f72416c6c6f776c6973740424416c6c6f776c6973740001040100a8040008682054686520636f6c6c61746f72277320616c6c6f776c6973742e1d01204e6f74653a20576520696d706c656d656e74206974206173206120636c6f73652d656e6f75676820486173685365743a204d61703c56616c696461746f7249642c2028293e2e01250401f1070001590d6218546f6b656e730001290401f50700015d0d6318427269646765011842726964676500012d0401f907083842726964676550616c6c65744964750b2063686e62726467650c4c2050616c6c6574206964656e7469666965722e00a420546865206d6f64756c65206964656e746966696572206d6179206265206f662074686520666f726d344e6174697665546f6b656e4964048000000000000000000000000000000009e974040e705c10fb4de576d6cc2619010001610d653c496e7465726573744163637275616c013c496e7465726573744163637275616c081452617465730100650d0400002c4c6173745570646174656401002c200000000000000000000001fd070001710d66204b657973746f726501204b657973746f72650c104b6579730001080202750d7d0d04000480204b6579732074686174206172652063757272656e746c792073746f7265642e404c6173744b65794279507572706f73650001080202810d30040004c42053746f72616765207573656420666f722072657472696576696e67206c617374206b657920627920707572706f73652e284b65794465706f73697401001840000010632d5ec76b05000000000000000405012053746f726573207468652063757272656e74206465706f73697420746861742077696c6c2062652074616b656e207768656e20736176696e672061206b65792e013104010108041c4d61784b65797310100a00000004d0204d6178696d756d206e756d626572206f66206b65797320746861742063616e20626520616464656420617420612074696d652e01850d682c496e766573746d656e7473012c496e766573746d656e74732834496e766573744f7264657249640101040249042c200000000000000000003452656465656d4f7264657249640101040249042c2000000000000000000030496e766573744f72646572730001080202890d8d0d0400003052656465656d4f72646572730001080202890d8d0d04000048416374697665496e766573744f72646572730101040249041d084000000000000000000000000000000000004841637469766552656465656d4f72646572730101040249041d0840000000000000000000000000000000000060496e50726f63657373696e67496e766573744f72646572730001040249041d0804000060496e50726f63657373696e6752656465656d4f72646572730001040249041d080400004c436c6561726564496e766573744f72646572730001080205910d19080400004c436c656172656452656465656d4f72646572730001080205910d190804000001450401050804584d61784f75747374616e64696e67436f6c6c6563747310100a00000008d82054686520626f756e64206f6e20686f77206d616e792066756c66696c6c6564206f726465727320776520636163686520756e74696c80207468652075736572206e6565647320746f20636f6c6c656374207468656d2e01950d69504c6971756964697479526577617264734261736501504c697175696469747952657761726473426173650c2043757272656e637901010402b903990d48000000000000000000000000000000000000001447726f75700101040210b10dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000305374616b654163636f756e740101080202b50db90dd80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012108042050616c6c65744964750b206366672f626c72770c1501204964656e746966696572206f6620746869732070616c6c6574207573656420617320616e206163636f756e742077686572652073746f7265732074686520726577617264f02074686174206973206e6f7420636c61696d65642e205768656e20796f752064697374726962757465207265776172642c2074686520616d6f756e745c20646973747269627574656420676f657320686572652e01bd0d6a404c69717569646974795265776172647301404c6971756964697479526577617264730c28456e644f6645706f636801002c20000000000000000004f020436f6e7461696e73207468652074696d657374616d70207768656e207468652063757272656e742065706f63682069732066696e616c697a65642e3c41637469766545706f6368446174610100c10d6460ea000000000000000000000000000000000000000000000004982044617461206173736f63696174656420746f207468652063757272656e742065706f63682e404e65787445706f63684368616e67657301002908100000000008ec2050656e64696e672075706461746520646174612075736564207768656e207468652063757272656e742065706f63682066696e616c697a65732eac204f6e63652069742773207573656420666f7220746865207570646174652c20697427732072657365742e014d040125080c244d617847726f7570731010140000000c80204d61782067726f757073207573656420627920746869732070616c6c65742ef42049662074686973206c696d697420697320726561636865642c207468652065786365656465642067726f7570732061726520656974686572206e6f746420636f6d707574656420616e64206e6f742073746f7265642e484d61784368616e67657350657245706f63681010320000000c1501204d6178206e756d626572206f66206368616e676573206f66207468652073616d65207479706520656e71756575656420746f206170706c7920696e20746865206e657874e42065706f63682e204d61782063616c6c7320746f205b6050616c6c65743a3a7365745f67726f75705f7765696768742829605d206f7220746fcc205b6050616c6c65743a3a7365745f63757272656e63795f67726f75702829605d2077697468207468652073616d652069642e50496e697469616c45706f63684475726174696f6e2c2060ea0000000000000c6020496e697469616c2065706f6368206475726174696f6e2e9820546869732076616c75652063616e2062652075706461746564206c61746572207573696e678c205b6050616c6c65743a3a7365745f65706f63685f6475726174696f6e2829605d602e01c90d6b384c6971756964697479506f6f6c7301384c6971756964697479506f6f6c7300015104014d08085447656e6572616c43757272656e63795072656669788d0230b64fd1c3a60c260188389850040101205468652070726566697820666f722063757272656e636965732061646465642076696120746865204c6971756964697479506f6f6c7320666561747572652e3c54726561737572794163636f756e7400806d6f646c70792f7472737279000000000000000000000000000000000000000018f420546865207479706520666f7220706179696e6720746865207472616e73616374696f6e206665657320666f7220746865206469737061746368206f66b4206046756c66696c6c65642a6020616e6420605363686564756c655570677261646560206d657373616765732e00f4204e4f54453a205765206e65656420746f206d616b65207375726520746f20636f6c6c6563742074686520617070726f70726961746520616d6f756e74f4206265666f726568616e642061732070617274206f6620726563656976696e672074686520636f72726573706f6e64696e6720696e766573746d656e7424206d6573736167652e01cd0d6c30506f6f6c52656769737472790130506f6f6c52656769737472790830506f6f6c4d65746164617461000104022cd10d04000014506f6f6c73000104022cd90d040000015904017108082c4d61785472616e63686573101005000000045c204d6178206e756d626572206f66205472616e636865733c4d617853697a654d6574616461746110102e0000000454204d61782073697a65206f66204d6574616461746101dd0d6d40426c6f636b52657761726473426173650140426c6f636b52657761726473426173650c2043757272656e637901010402b903e10d48000000000000000000000000000000000000001447726f75700101040210f10d80000000000000000000000000000000000000000000000000000000000000000000305374616b654163636f756e740101080202b50df50d88000000000000000000000000000000000000000000000000000000000000000000000000017908042050616c6c65744964750b206366672f626c72770c1501204964656e746966696572206f6620746869732070616c6c6574207573656420617320616e206163636f756e742077686572652073746f7265732074686520726577617264f02074686174206973206e6f7420636c61696d65642e205768656e20796f752064697374726962757465207265776172642c2074686520616d6f756e745c20646973747269627574656420676f657320686572652e01f90d6e30426c6f636b526577617264730130426c6f636b52657761726473084441637469766553657373696f6e446174610100fd0db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a02044617461206173736f63696174656420746f207468652063757272656e742073657373696f6e2e484e65787453657373696f6e4368616e67657301008108340000000000000000000000000008f42050656e64696e672075706461746520646174612075736564207768656e207468652063757272656e742073657373696f6e2066696e616c697a65732eac204f6e63652069742773207573656420666f7220746865207570646174652c20697427732072657365742e01bd04017d08103c5374616b6543757272656e63794964b90308050008050120546865206964656e746966696572206f6620746865206172746966696369616c20626c6f636b20726577617264732063757272656e637920776869636820697384206d696e74656420616e64206275726e656420666f7220636f6c6c61746f72732e2c5374616b65416d6f756e741840000064a7b3b6e00d00000000000000000811012054686520616d6f756e74206f6620746865206172746966696369616c20626c6f636b20726577617264732063757272656e6379207768696368206973206d696e7465646820616e64206275726e656420666f7220636f6c6c61746f72732e305374616b6547726f75704964101001000000049820546865206964656e746966696572206f662074686520636f6c6c61746f722067726f75702e304d6178436f6c6c61746f72731010200000000001010e6f445472616e73666572416c6c6f774c69737401445472616e73666572416c6c6f774c69737408844163636f756e7443757272656e63795472616e73666572436f756e7444656c61790001080505050e090e04005811012053746f72616765206974656d20636f6e7461696e696e67206e756d626572206f6620616c6c6f77616e636573207365742c2064656c617920666f722073656e64696e671d01206163636f756e742f63757272656e63792c20616e6420626c6f636b206e756d6265722064656c6179206973206d6f6469666961626c652061742e20436f6e7461696e7320616ef420696e7374616e6365206f6620416c6c6f77616e63654d65746164617461207769746820616c6c6f77616e636520636f756e742061732060753634602c0d012063757272656e745f64656c617920617320604f7074696f6e3c426c6f636b4e756d626572466f723c543e3e602c20616e64206d6f6469666961626c655f61742061731d0120604f7074696f6e3c426c6f636b4e756d626572466f723c543e3e602e20496620612064656c6179206973207365742c20627574206e6f20616c6c6f77616e63657320686176652501206265656e20637265617465642c2060616c6c6f77616e63655f636f756e74602077696c6c2062652073657420746f206030602e204120646f75626c65206d617020697320757365640d012068657265206173207765206e65656420746f206b6e6f7720776865746865722074686572652069732061207265737472696374696f6e2073657420666f72207468650501206163636f756e7420616e642063757272656e637920696e207468652063617365207768657265207468657265206973206e6f20616c6c6f77616e636520666f7225012064657374696e6174696f6e206c6f636174696f6e2e205573696e6720616e2053746f726167654e4d617020776f756c64206e6f7420616c6c6f7720757320746f206c6f6f6b20757019012077686574686572207468657265207761732061207265737472696374696f6e20666f72207468652073656e64696e67206163636f756e7420616e642063757272656e63792c3020676976656e20746861743a2501202d20776527726520636865636b696e672077686574686572207468657265277320616e20616c6c6f77616e63652073706563696669656420666f72207468652072656365697665722c2020206c6f636174696f6e21012020202d20776520776f756c64206f6e6c792066696e6420776865746865722061207265737472696374696f6e207761732073657420666f7220746865206163636f756e7420696e4820202020207468697320636173652069663a250120202020202d20616e20616c6c6f77616e6365207761732073706563696669656420666f722074686520726563656976696e67206c6f636174696f6e2c20776869636820776f756c64a82020202020202072656e64657220626c6f636b6564207265737472696374696f6e73207573656c6573730101202d20776520776f756c64206f7468657277697365206e65656420746f2073746f7265206120766563206f66206c6f636174696f6e732c207768696368206973f820202070726f626c656d6174696320676976656e20746861742074686572652069736e2774206120736574206c696d6974206f6e207265636569766572731d012049662061207472616e73666572207265737472696374696f6e20697320696e20706c6163652c207468656e2061207365636f6e64206c6f6f6b757020697320646f6e65206f6e0901204163636f756e7443757272656e6379416c6c6f77616e63657320746f2073656520696620746865726520697320616e20616c6c6f77616e636520666f72207468652501207265636569766572205468697320616c6c6f777320757320746f206b6565702073746f72616765206d61702076616c7320746f206b6e6f776e2f626f756e6465642073697a65732e804163636f756e7443757272656e63795472616e73666572416c6c6f77616e636500010c0505020d0e110e04000819012053746f72616765206974656d20666f7220616c6c6f77616e6365732073706563696669656420666f7220612073656e64696e67206163636f756e742c2063757272656e637970207479706520616e6420726563656976696e67206c6f636174696f6e01c1040191080001150e70484761705265776172644d656368616e69736d01484761705265776172644d656368616e69736d0828527074486973746f72790001040210a50d040000484c617374446973747269627574696f6e496401001010000000000000000001190e72544c6971756964697479506f6f6c734761746577617901544c6971756964697479506f6f6c73476174657761791034446f6d61696e526f7574657273000104025504050504000c702053746f7261676520666f7220646f6d61696e20726f75746572732e008820546869732063616e206f6e6c792062652073657420627920616e2061646d696e2e24416c6c6f776c69737400010802021d0ea80400100d012053746f72616765207468617420636f6e7461696e732061206c696d69746564206e756d626572206f662077686974656c697374656420696e7374616e636573206f66c8206465706c6f796564206c697175696469747920706f6f6c7320666f72206120706172746963756c617220646f6d61696e2e009c20546869732063616e206f6e6c79206265206d6f64696669656420627920616e2061646d696e2e44446f6d61696e486f6f6b41646472657373000104025504810104001425012053746f7265732074686520686f6f6b2061646472657373206f66206120646f6d61696e20726571756972656420666f7220706172746963756c6172204c50206d657373616765732e0060204c69666574696d653a20496e646566696e6974656c792e00c4204e4f54453a204d757374206f6e6c79206265206368616e676561626c6520766961206041646d696e4f726967696e602e345061636b65644d65737361676500010402210e510804000cd42053746f7265732061206261746368206d6573736167652c206e6f742072656164792079657420746f20626520656e71756575652e1901204c69666574696d652068616e646c6564206279206073746172745f62617463685f6d65737361676528296020616e642060656e645f62617463685f6d657373616765282960302065787472696e736963732e01010501950808584d6178496e636f6d696e674d65737361676553697a651010000400000494204d6178696d756d2073697a65206f6620616e20696e636f6d696e67206d6573736167652e1853656e64657200807369626cd007000000000000000000000000000000000000000007d045564d0008e8205468652073656e646572206163636f756e7420746861742077696c6c206265207573656420696e20746865204f7574626f756e6451756575654020696d706c656d656e746174696f6e2e01250e73244f72646572426f6f6b01244f72646572426f6f6b10184f7264657273000104052c290e08010304cc204d6170206f66204f726465727320746f206c6f6f6b207570206f7264657273206279207468656972206f726465722069642e28557365724f72646572730001080505850ba80801030c90204d6170206f66206f726465727320666f72206120706172746963756c61722075736572d4205573656420746f207175657279206f726465727320666f72206120706172746963756c61722075736572207573696e672074686584206163636f756e74206964206f6620746865207573657220617320707265666978444f7264657249644e6f6e636553746f726501002c20000000000000000014982053746f726573204f7264657249644e6f6e636520666f72206f726465727320706c616365641d0120476976656e2074686174204f7264657249644e6f6e636520697320746f20656e73757265207468617420616c6c206f72646572732068617665206120756e697175652049442c21012077652063616e20757365206a757374206f6e65204f7264657249644e6f6e63652c207768696368206d65616e732074686174207765206f6e6c792068617665206f6e652076616c090120696e2073746f726167652c20616e6420776520646f6e2774206861766520746f20696e73657274206e6577206d61702076616c7565732075706f6e2061206e657784206163636f756e742f63757272656e6379206f72646572206372656174696f6e2e384d61726b65744665656465724964000035050801060419012053746f72657320746865206d61726b657420666565646572206964207573656420746f207365742077697468206d61726b657420636f6e76657273696f6e20726174696f73012d0501990808684d696e46756c66696c6c6d656e74416d6f756e744e617469766518400000e8890423c78a000000000000000014cc205468652064656661756c74206d696e696d756d2066756c66696c6c6d656e7420616d6f756e7420666f72206f72646572732e000d01204e4f54453a2054686520616d6f756e7420697320657870656374656420746f2062652064656e6f6d696e6174656420696e206e61746976652063757272656e63792e0901205768656e206170706c79696e6720746f20612073776170206f726465722c2069742077696c6c2062652072652d64656e6f6d696e6174656420696e746f2074686544207461726765742063757272656e63792e384e6174697665446563696d616c7310101200000000012d0e7448466f726569676e496e766573746d656e74730148466f726569676e496e766573746d656e74730c54466f726569676e496e766573746d656e74496e666f0001080202890d310e04000cfc20436f6e7461696e732074686520696e666f726d6174696f6e2061626f75742074686520666f726569676e20696e766573746d656e742070726f636573732e0501205468652073746f72616765206973206b696c6c6564206f6e63652074686520696e766573746d656e742069732066756c6c7920636f6c6c65637465642c206f722c206465637265617365642e54466f726569676e526564656d7074696f6e496e666f0001080202890d350e04000cfc20436f6e7461696e732074686520696e666f726d6174696f6e2061626f75742074686520666f726569676e20726564656d7074696f6e2070726f636573732e0501205468652073746f72616765206973206b696c6c6564206f6e63652074686520726564656d7074696f6e2069732066756c6c7920636f6c6c656374656420616e646c2066756c6c792073776170706564206f72206465637265617365643c4f726465724964546f537761704964000104022c390e0400080101204d617073206120604f7264657249646020746f2069747320636f72726573706f6e64696e6720604163636f756e7449646020616e642060537761704964602eec205468652073746f72616765206973206b696c6c6564207768656e207468652073776170206f72646572206e6f206c6f6e6765722065786973747300019d0800013d0e753c4f7261636c65507269636546656564013c4f7261636c65507269636546656564042446656456616c7565730001080202410e450e040004a82053746f726520616c6c206f7261636c652076616c75657320696e64657865642062792066656564657201390501ad08000076544f7261636c655072696365436f6c6c656374696f6e01544f7261636c655072696365436f6c6c656374696f6e1028436f6c6c656374696f6e010104022c490e44004068129491010000406812949101000004a82053746f726520616c6c206f7261636c652076616c75657320696e646578656420627920666565646572104b6579730101080202610e10100000000008d42053746f726520746865206b65797320746861742061726520726567697374656420666f72207468697320636f6c6c656374696f6e2101204f6e6c79206b657973207265676973746572656420696e20746869732073746f72652063616e206265207573656420746f206372656174652074686520636f6c6c656374696f6e38436f6c6c656374696f6e496e666f010104022c41051800000000000004a82053746f726520616c6c206f7261636c652076616c75657320696e64657865642062792066656564657248436f6c6c656374696f6e4b6579436f756e74010104022c10100000000004a82053746f726520616c6c206f7261636c652076616c75657320696e646578656420627920666565646572013d0501b10808444d6178436f6c6c656374696f6e53697a651010640000000478204d61782073697a65206f662061206461746120636f6c6c656374696f6e404d6178466565646572735065724b65791010050000000468204d6178206e756d626572206f6620636f6c6c656374696f6e7301650e7724416e63686f727356320124416e63686f727356320c1c416e63686f727300010401510e690e040004782053746f7261676520666f7220646f63756d656e7420616e63686f72732e3c506572736f6e616c416e63686f727300010801016d0ea8040004d42053746f7261676520666f7220646f63756d656e7420616e63686f727320737065636966696320746f20616e206163636f756e742e34416e63686f724465706f73697401001840000010632d5ec76b05000000000000000419012053746f726573207468652063757272656e74206465706f73697420746861742077696c6c2062652074616b656e207768656e2073746f72696e6720616e20616e63686f722e01510501b5080001710e82684c6971756964697479506f6f6c7347617465776179517565756501684c6971756964697479506f6f6c734761746577617951756575650c444d6573736167654e6f6e636553746f726501002c20000000000000000000304d6573736167655175657565000104022cbd080400041d012053746f7261676520666f72206d6573736167657320746861742077696c6c2062652070726f63657373656420647572696e672074686520606f6e5f69646c656020686f6f6b2e484661696c65644d6573736167655175657565000104022c750e040004d02053746f7261676520666f72206d657373616765732074686174206661696c656420647572696e672070726f63657373696e672e01550501b9080001790e832458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e64656401007d0e0400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d705374617475730100890e0400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d657373616765730101080205950e34040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d65737361676573010104025d0134040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e6669670100990e302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401007804000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f72010104055d01d90940000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e01590501c108044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e019d0e782c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e74657201002c200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c51756572696573000104022ca10e0400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040630101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502b10e10040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502b10e2c040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502b10eb50e04000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100b90e04000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000c50e0400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202c90ed10e040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200e10e040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010078040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e015d0501c5080001ed0e792843756d756c757358636d000001cd0800007a1c58546f6b656e7300019106000001f10e7c3458636d5472616e736163746f72013458636d5472616e736163746f721038496e646578546f4163636f756e7400010402b40004000c45012053696e636520776520617265207573696e672070616c6c65742d7574696c69747920666f72206163636f756e742064657269766174696f6e20287468726f75676820417344657269766174697665292c6d01207765206e65656420746f2070726f7669646520616e20696e64657820666f7220746865206163636f756e742064657269766174696f6e2e20546869732073746f72616765206974656d2073746f7265732074686520696e64657879012061737369676e656420666f72206120676976656e206c6f63616c206163636f756e742e20546865736520696e64696365732061726520757361626c65206173206465726976617469766520696e207468652072656c617920636861696e6c5472616e73616374496e666f576974685765696768744c696d697400010402dd01d50804000c59012053746f72657320746865207472616e7361637420696e666f206f662061204c6f636174696f6e2e205468697320646566696e657320686f77206d75636820657874726120776569676874207765206e65656420746f6d0120616464207768656e2077652077616e7420746f207472616e7361637420696e207468652064657374696e6174696f6e20636861696e20616e64206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656464206279207468652064657374696e6174696f6e20636861696e7044657374696e6174696f6e41737365744665655065725365636f6e6400010405dd01180400085d012053746f726573207468652066656520706572207365636f6e6420666f7220616e20617373657420696e20697473207265736572766520636861696e2e205468697320616c6c6f777320757320746f20636f6e766572744c2066726f6d2077656967687420746f206665653052656c6179496e64696365730100f50e4800000000000000000000000000000000000004a82053746f7265732074686520696e6469636573206f662072656c617920636861696e2070616c6c65747301a10601d108083053656c664c6f636174696f6edd0114010100411f04542053656c6620636861696e206c6f636174696f6e2e344261736558636d57656967687424140284d717000c00f0205468652061637475616c2077656967687420666f7220616e2058434d206d6573736167652069732060543a3a4261736558636d576569676874202b6c20543a3a576569676865723a3a77656967687428266d736729602e01f90e7d2c4f726d6c58546f6b656e73000001d908083053656c664c6f636174696f6edd0114010100411f04542053656c6620636861696e206c6f636174696f6e2e344261736558636d57656967687424140284d71700104420426173652058434d207765696768742e00f8205468652061637475616c6c792077656967687420666f7220616e2058434d206d6573736167652069732060543a3a4261736558636d576569676874202b6c20543a3a576569676865723a3a77656967687428266d736729602e01fd0e7e304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405cd06010f74000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000cd06040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e14506167657300010805050d0f110f0400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01c90601dd080c204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874b9062c01070016d0be28020070001441012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f726820736572766963696e6720656e717565756564206974656d732e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6ca82060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c792e01190f7f284f726d6c546f6b656e7301284f726d6c546f6b656e731034546f74616c49737375616e636501010405b90318400000000000000000000000000000000004902054686520746f74616c2069737375616e6365206f66206120746f6b656e20747970652e144c6f636b730101080205b50d1d0f040008d820416e79206c6971756964697479206c6f636b73206f66206120746f6b656e207479706520756e64657220616e206163636f756e742e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e204163636f756e74730101080205b50d290fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018b8205468652062616c616e6365206f66206120746f6b656e207479706520756e64657220616e206163636f756e742e00fc204e4f54453a2049662074686520746f74616c2069732065766572207a65726f2c206465637265617365206163636f756e7420726566206163636f756e742e001901204e4f54453a2054686973206973206f6e6c79207573656420696e20746865206361736520746861742074686973206d6f64756c65206973207573656420746f2073746f7265282062616c616e6365732e2052657365727665730101080205b50d2d0f040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e0001e50808204d61784c6f636b73101032000000002c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e01390f962c436861696e427269646765012c436861696e427269646765182c436861696e4e6f6e63657300010401082c040004fc20416c6c2077686974656c697374656420636861696e7320616e642074686569722072657370656374697665207472616e73616374696f6e20636f756e74735052656c61796572566f74655468726573686f6c64010010100100000004cc204e756d626572206f6620766f74657320726571756972656420666f7220612070726f706f73616c20746f20657865637574652052656c61796572730101040100780400046c20547261636b732063757272656e742072656c61796572207365743052656c61796572436f756e7401001010000000000468204e756d626572206f662072656c617965727320696e2073657414566f74657300010801013d0f450f0400085420416c6c206b6e6f776e2070726f706f73616c732e2d0120546865206b6579206973207468652068617368206f66207468652063616c6c20616e6420746865206465706f7369742049442c20746f20656e73757265206974277320756e697175652e245265736f75726365730001040104340400041901205574696c697a6564206279207468652062726964676520736f66747761726520746f206d6170207265736f757263652049447320746f2061637475616c206d6574686f647301d10601e908101c436861696e4964080401087c20546865206964656e74696669657220666f72207468697320636861696e2e6d012054686973206d75737420626520756e6971756520616e64206d757374206e6f7420636f6c6c6964652077697468206578697374696e67204944732077697468696e206120736574206f66206272696467656420636861696e732e2050616c6c65744964750b2063686e627264676510410120436f6e7374616e7420636f6e66696775726174696f6e20706172616d6574657220746f2073746f726520746865206d6f64756c65206964656e74696669657220666f72207468652070616c6c65742e00390120546865206d6f64756c65206964656e746966696572206d6179206265206f662074686520666f726d2060606050616c6c65744964282a622263686e6272646765222960606020616e6420736574a901207573696e6720746865205b60706172616d657465725f7479706573605d2868747470733a2f2f7375627374726174652e6465762f646f63732f656e2f6b6e6f776c65646765626173652f72756e74696d652f6d6163726f7323706172616d657465725f7479706573294050726f706f73616c4c69666574696d651010f4010000005052656c61796572566f74655468726573686f6c64101001000000040502205479706520666f722073657474696e6720696e697469616c206e756d626572206f6620766f74657320726571756972656420666f7220612070726f706f73616c20746f2062652065786563757465642028736565205b52656c61796572566f74655468726573686f6c645d20696e2073746f726167652073656374696f6e292e014d0f97444f726d6c4173736574526567697374727901444f726d6c417373657452656769737472790c204d6574616461746100010405b903d906040004bc20546865206d65746164617461206f6620616e2061737365742c20696e64657865642062792061737365742069642e444c6f636174696f6e546f4173736574496400010405ed04b903040008f0204d6170732061206c6f636174696f6e20746f20616e206173736574206964202d2075736566756c207768656e2070726f63657373696e672078636d28206d657373616765732e2c4c617374417373657449640100b9030400040d0120546865206c6173742070726f636573736564206173736574206964202d2075736564207768656e2061737369676e696e6720612073657175656e7469616c2069642e01d50601ed08042c537472696e674c696d697410108000000004a020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2e01510f981c4f726d6c58636d011c4f726d6c58636d0001010701f1080001550f990c45564d010c45564d10304163636f756e74436f64657301010402210234040000504163636f756e74436f6465734d65746164617461000104022102590f0400003c4163636f756e7453746f726167657301010802025d0f3080000000000000000000000000000000000000000000000000000000000000000000205375696369646564000104022102a804000001050701f5080001610fa02845564d436861696e4964012845564d436861696e4964041c436861696e496401002c2000000000000000000448205468652045564d20636861696e2049442e00000000a11c42617365466565011c4261736546656508344261736546656550657247617301001d058000ca9a3b000000000000000000000000000000000000000000000000000000000028456c6173746963697479010019071048e801000001150701fd080000a220457468657265756d0120457468657265756d141c50656e64696e670100650f040004d02043757272656e74206275696c64696e6720626c6f636b2773207472616e73616374696f6e7320616e642072656365697074732e3043757272656e74426c6f636b0000890f04000470205468652063757272656e7420457468657265756d20626c6f636b2e3c43757272656e74526563656970747300009d0f0400047c205468652063757272656e7420457468657265756d2072656365697074732e6843757272656e745472616e73616374696f6e53746174757365730000a10f04000488205468652063757272656e74207472616e73616374696f6e2073746174757365732e24426c6f636b48617368010104051d053080000000000000000000000000000000000000000000000000000000000000000000011d070101090001a50fa34c457468657265756d5472616e73616374696f6e014c457468657265756d5472616e73616374696f6e04144e6f6e636501001d05800000000000000000000000000000000000000000000000000000000000000000044c2053746f7261676520666f72206e6f6e63652e00000001a90fa46c4c6971756964697479506f6f6c734178656c617247617465776179016c4c6971756964697479506f6f6c734178656c617247617465776179083c47617465776179436f6e7472616374010021025000000000000000000000000000000000000000000040536f75726365436f6e76657273696f6e0001040530490704000819012060536f75726365436f6e76657273696f6e6020697320612060686173685f6f66285665633c75383e29602077686572652074686520605665633c75383e6020697320746865250120626c616b653235362d68617368206f662074686520736f757263652d636861696e206964656e746966696572207573656420627920746865204178656c6172206e6574776f726b2e0145070125090001ad0fa5105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e014d070129090001b10fc820506f6f6c466565730120506f6f6c4665657318184665654964730101080202b50fb90f0400100101204d617073206120706f6f6c20746f20746865697220636f72726573706f6e64696e6720666565206964732077697468205b506f6f6c4665654275636b65745d34206772616e756c61726974792e001101204c69666574696d65206f6620612073746f7261676520656e7472793a20466f72657665722c20696e686572697465642066726f6d20706f6f6c206c69666574696d652e244c617374466565496401002c2000000000000000000cd420536f75726365206f6620747275746820666f7220746865206c617374206372656174656420666565206964656e7469666965722e004c204c69666574696d653a20466f72657665722e48466565496473546f506f6f6c4275636b6574000104022cb50f04000c1501204d617073206120666565206964656e74696669657220746f2074686520636f72726573706f6e64696e6720706f6f6c20616e64205b506f6f6c4665654275636b65745d2e001101204c69666574696d65206f6620612073746f7261676520656e7472793a20466f72657665722c20696e686572697465642066726f6d20706f6f6c206c69666574696d652e28416374697665466565730101080202b50fbd0f040014210120526570726573656e74732074686520616374697665206665657320666f72206120676976656e20706f6f6c20696420616e6420666565206275636b65742e20466f7220656163682101206665652c20746865206c696d69742061732077656c6c2061732070656e64696e672c2064697362757273656d656e7420616e642070617961626c6520616d6f756e7473206172652820696e636c756465642e001101204c69666574696d65206f6620612073746f7261676520656e7472793a20466f72657665722c20696e686572697465642066726f6d20706f6f6c206c69666574696d652e48506f7274666f6c696f56616c756174696f6e010104022cd10f6400000000000000000000000000000000a8d7cd6600000000001009012053746f7265732074686520286e656761746976652920706f7274666f6c696f2076616c756174696f6e206173736f63696174656420746f206561636820706f6f6c9820646572697665642066726f6d207468652070656e64696e672066656520616d6f756e74732e001101204c69666574696d65206f6620612073746f7261676520656e7472793a20466f72657665722c20696e686572697465642066726f6d20706f6f6c206c69666574696d652e54417373657473556e6465724d616e6167656d656e74010104022c1840000000000000000000000000000000001009012053746f726573207468652028706f7369746976652920706f7274666f6c696f2076616c756174696f6e206173736f63696174656420746f206561636820706f6f6cb020646572697665642066726f6d207468652041554d206f66207468652070726576696f75732065706f63682e001101204c69666574696d65206f6620612073746f7261676520656e7472793a20466f72657665722c20696e686572697465642066726f6d20706f6f6c206c69666574696d652e015107012d09042050616c6c65744964750b206366672f706c667308fc204964656e746966696572206f6620746869732070616c6c6574207573656420617320616e206163636f756e742077686963682074656d706f726172696c7909012073746f7265732064697362757273696e67206665657320696e206265747765656e20636c6f73696e6720616e6420657865637574696e6720616e2065706f63682e01d90ffa1c52656d61726b73000155070131090001dd0ffb20546f6b656e4d75780120546f6b656e4d757800016d07013509042050616c6c65744964750b206366672f746d75780001e10ffde50f042848436865636b4e6f6e5a65726f53656e646572ed0fa840436865636b5370656356657273696f6ef10f1038436865636b547856657273696f6ef50f1030436865636b47656e65736973f90f3038436865636b4d6f7274616c697479fd0f3028436865636b4e6f6e63650510a82c436865636b5765696768740910a8604368617267655472616e73616374696f6e5061796d656e740d10a844436865636b4d65746164617461486173681110806c50726542616c616e63655472616e73666572457874656e73696f6e1910a80905" +) diff --git a/types/metadataV14_test.go b/types/metadataV14_test.go index 8a67373a3..b0fa10c18 100644 --- a/types/metadataV14_test.go +++ b/types/metadataV14_test.go @@ -65,9 +65,9 @@ func TestMetadataV14FindCallIndex(t *testing.T) { var meta Metadata err := DecodeFromHex(MetadataV14Data, &meta) assert.NoError(t, err) - index, err := meta.FindCallIndex("Balances.transfer") + index, err := meta.FindCallIndex("Balances.transfer_keep_alive") assert.NoError(t, err) - assert.Equal(t, index, CallIndex{SectionIndex: 6, MethodIndex: 0}) + assert.Equal(t, CallIndex{SectionIndex: 0x14, MethodIndex: 0x3}, index) } // Verify that we get an error when querying for an invalid @@ -80,18 +80,6 @@ func TestMetadataV14FindCallIndexNonExistent(t *testing.T) { assert.Error(t, err) } -// Verify that we obtain the right modName, varName pair for a given Event id -func TestMetadataV14FindEventNamesForEventID(t *testing.T) { - var meta Metadata - err := DecodeFromHex(MetadataV14Data, &meta) - assert.NoError(t, err) - - modName, varName, err := meta.FindEventNamesForEventID(EventID{6, 2}) - assert.NoError(t, err) - assert.Equal(t, modName, NewText("Balances")) - assert.Equal(t, varName, NewText("Transfer")) -} - // Verify that we get an error when passing an invalid module ID func TestMetadataV14FindEventNamesInvalidModuleID(t *testing.T) { var meta Metadata @@ -304,12 +292,12 @@ func TestMetadataV14_FindError(t *testing.T) { assert.NotNil(t, metaErr) // System - no error at index - metaErr, err = meta.FindError(0, [4]U8{6}) + metaErr, err = meta.FindError(0, [4]U8{98}) assert.Error(t, err) assert.Nil(t, metaErr) // No module at index - metaErr, err = meta.FindError(200, [4]U8{0}) + metaErr, err = meta.FindError(255, [4]U8{0}) assert.Error(t, err) assert.Nil(t, metaErr) } diff --git a/types/metadataV4_examplary.go b/types/metadataV4_examplary.go deleted file mode 100644 index 414418f43..000000000 --- a/types/metadataV4_examplary.go +++ /dev/null @@ -1,23 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -// ExamplaryMetadataV4 is example metadata v4 -var ExamplaryMetadataV4 = &Metadata{MagicNumber: 0x6174656d, Version: 0x4, AsMetadataV4: MetadataV4{Modules: []ModuleMetadataV4{{Name: "system", Prefix: "System", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "AccountNonce", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Index", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Extrinsics nonce for accounts."}}, {Name: "ExtrinsicCount", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total extrinsics count for the current block."}}, {Name: "AllExtrinsicsLen", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total length in bytes for all extrinsics put together, for the current block."}}, {Name: "BlockHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::BlockNumber", Value: "T::Hash", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Map of block numbers to block hashes."}}, {Name: "ExtrinsicData", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "u32", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Extrinsics data for the current block (maps extrinsic's index to its data)."}}, {Name: "RandomSeed", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Random seed of the current block."}}, {Name: "Number", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current block number being processed. Set by `execute_block`."}}, {Name: "ParentHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Hash of the previous block."}}, {Name: "ExtrinsicsRoot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Extrinsics root of the current block, also part of the block header."}}, {Name: "Digest", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Digest", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Digest of the current block, also part of the block header."}}, {Name: "Events", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Events deposited for the current block."}}}, HasCalls: false, Calls: []FunctionMetadataV4(nil), HasEvents: true, Events: []EventMetadataV4{{Name: "ExtrinsicSuccess", Args: []Type(nil), Documentation: []Text{" An extrinsic completed successfully."}}, {Name: "ExtrinsicFailed", Args: []Type(nil), Documentation: []Text{" An extrinsic failed."}}}}, {Name: "aura", Prefix: "", HasStorage: false, Storage: []StorageFunctionMetadataV4(nil), HasCalls: false, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil)}, {Name: "timestamp", Prefix: "Timestamp", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "Now", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Moment", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current time for the current block."}}, {Name: "BlockPeriod", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Moment", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Old storage item provided for compatibility. Remove after all networks upgraded."}}, {Name: "MinimumPeriod", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Moment", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum period between blocks. Beware that this is different to the *expected* period", " that the block production apparatus provides. Your chosen consensus system will generally", " work with this to determine a sensible block time. e.g. For Aura, it will be double this", " period on default settings."}}, {Name: "DidUpdate", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Did the timestamp get updated in this block?"}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set", Args: []FunctionArgumentMetadata{{Name: "now", Type: "Compact"}}, Documentation: []Text{" Set the current time.", "", " This call should be invoked exactly once per block. It will panic at the finalization phase,", " if this call hasn't been invoked by that time.", "", " The timestamp should be greater than the previous one by the amount specified by `minimum_period`.", "", " The dispatch origin for this call must be `Inherent`."}}}, HasEvents: false, Events: []EventMetadataV4(nil)}, {Name: "consensus", Prefix: "Consensus", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "OriginalAuthorities", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "report_misbehavior", Args: []FunctionArgumentMetadata{{Name: "_report", Type: "Vec"}}, Documentation: []Text{" Report some misbehavior."}}, {Name: "note_offline", Args: []FunctionArgumentMetadata{{Name: "offline", Type: "::Inherent"}}, Documentation: []Text{" Note that the previous block's validator missed its opportunity to propose a block."}}, {Name: "remark", Args: []FunctionArgumentMetadata{{Name: "_remark", Type: "Vec"}}, Documentation: []Text{" Make some on-chain remark."}}, {Name: "set_heap_pages", Args: []FunctionArgumentMetadata{{Name: "pages", Type: "u64"}}, Documentation: []Text{" Set the number of pages in the WebAssembly environment's heap."}}, {Name: "set_code", Args: []FunctionArgumentMetadata{{Name: "new", Type: "Vec"}}, Documentation: []Text{" Set the new code."}}, {Name: "set_storage", Args: []FunctionArgumentMetadata{{Name: "items", Type: "Vec"}}, Documentation: []Text{" Set some items of storage."}}, {Name: "kill_storage", Args: []FunctionArgumentMetadata{{Name: "keys", Type: "Vec"}}, Documentation: []Text{" Kill some items from storage."}}}, HasEvents: false, Events: []EventMetadataV4(nil)}, {Name: "indices", Prefix: "Indices", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "NextEnumSet", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::AccountIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next free enumeration set."}}, {Name: "EnumSet", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountIndex", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The enumeration sets."}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: true, Events: []EventMetadataV4{{Name: "NewAccountIndex", Args: []Type{"AccountId", "AccountIndex"}, Documentation: []Text{" A new account index was assigned.", "", " This event is not triggered when an existing index is reassigned", " to another `AccountId`."}}}}, {Name: "balances", Prefix: "Balances", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "TotalIssuance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Balance", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total units issued in the system."}}, {Name: "ExistentialDeposit", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Balance", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount required to keep an account open."}}, {Name: "TransferFee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Balance", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to make a transfer."}}, {Name: "CreationFee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Balance", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to create an account."}}, {Name: "TransactionBaseFee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Balance", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the base."}}, {Name: "TransactionByteFee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Balance", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the per-byte portion."}}, {Name: "Vesting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "VestingSchedule", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information regarding the vesting of a given account."}}, {Name: "FreeBalance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Balance", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The 'free' balance of a given account.", "", " This is the only balance that matters in terms of most operations on tokens. It", " alone is used to determine the balance when in the contract execution environment. When this", " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback", " is invoked, giving a chance to external modules to clean up data associated with", " the deleted account.", "", " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", " collapsed to zero if it ever becomes less than `ExistentialDeposit`."}}, {Name: "ReservedBalance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Balance", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of the balance of a given account that is externally reserved; this can still get", " slashed, but gets slashed last of all.", "", " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", " that are still 'owned' by the account holder, but which are suspendable.", "", " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", " is deleted: specifically, `ReservedBalance`.", "", " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)"}}, {Name: "Locks", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Vec>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any liquidity locks on some account balances."}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "transfer", Args: []FunctionArgumentMetadata{{Name: "dest", Type: "::Source"}, {Name: "value", Type: "Compact"}}, Documentation: []Text{" Transfer some liquid free balance to another account.", "", " `transfer` will set the `FreeBalance` of the sender and receiver.", " It will decrease the total issuance of the system by the `TransferFee`.", " If the sender's account is below the existential deposit as a result", " of the transfer, the account will be reaped.", "", " The dispatch origin for this call must be `Signed` by the transactor."}}, {Name: "set_balance", Args: []FunctionArgumentMetadata{{Name: "who", Type: "::Source"}, {Name: "free", Type: "Compact"}, {Name: "reserved", Type: "Compact"}}, Documentation: []Text{" Set the balances of a given account.", "", " This will alter `FreeBalance` and `ReservedBalance` in storage.", " If the new free or reserved balance is below the existential deposit,", " it will also decrease the total issuance of the system (`TotalIssuance`)", " and reset the account nonce (`system::AccountNonce`).", "", " The dispatch origin for this call is `root`."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "NewAccount", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A new account was created."}}, {Name: "ReapedAccount", Args: []Type{"AccountId"}, Documentation: []Text{" An account was reaped."}}, {Name: "Transfer", Args: []Type{"AccountId", "AccountId", "Balance", "Balance"}, Documentation: []Text{" Transfer succeeded (from, to, value, fees)."}}}}, {Name: "session", Prefix: "Session", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of validators."}}, {Name: "SessionLength", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current length of the session."}}, {Name: "CurrentIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current index of the session."}}, {Name: "CurrentStart", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Moment", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Timestamp when current session started."}}, {Name: "ForcingNewSession", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" New session is being forced if this entry exists; in which case, the boolean value is whether", " the new session should be considered a normal rotation (rewardable) or exceptional (slashable)."}}, {Name: "LastLengthChange", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Block at which the session length last changed."}}, {Name: "NextKeyFor", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::SessionKey", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The next key for a given validator."}}, {Name: "NextSessionLength", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The next session length."}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set_key", Args: []FunctionArgumentMetadata{{Name: "key", Type: "T::SessionKey"}}, Documentation: []Text{" Sets the session key of `_validator` to `_key`. This doesn't take effect until the next", " session."}}, {Name: "set_length", Args: []FunctionArgumentMetadata{{Name: "new", Type: "Compact"}}, Documentation: []Text{" Set a new session length. Won't kick in until the next session change (at current length)."}}, {Name: "force_new_session", Args: []FunctionArgumentMetadata{{Name: "apply_rewards", Type: "bool"}}, Documentation: []Text{" Forces a new session."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "NewSession", Args: []Type{"BlockNumber"}, Documentation: []Text{" New session has happened. Note that the argument is the session index, not the block", " number as the type might suggest."}}}}, {Name: "staking", Prefix: "Staking", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "ValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The ideal number of staking participants."}}, {Name: "MinimumValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x4, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum number of staking participants before emergency conditions are imposed."}}, {Name: "SessionsPerEra", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The length of a staking era in sessions."}}, {Name: "SessionReward", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Perbill", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x3c, 0x0, 0x0, 0x0}, Documentation: []Text{" Maximum reward, per validator, that is provided per acceptable session."}}, {Name: "OfflineSlash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Perbill", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x40, 0x42, 0xf, 0x0}, Documentation: []Text{" Slash, per validator that is taken for the first time they are found to be offline."}}, {Name: "OfflineSlashGrace", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of instances of offline reports before slashing begins for validators."}}, {Name: "BondingDuration", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The length of the bonding duration in blocks."}}, {Name: "Invulnerables", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any validators that may never be slashed or forcibly kicked. It's a Vec since they're easy to initialize", " and the performance hit is minimal (we expect no more than four invulnerables) and restricted to testnets."}}, {Name: "Bonded", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all locked \"stash\" accounts to the controller account."}}, {Name: "Ledger", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "StakingLedger, T::BlockNumber>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all (unlocked) \"controller\" accounts to the info regarding the staking."}}, {Name: "Payee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "RewardDestination", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Where the reward payment should be made. Keyed by stash."}}, {Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "ValidatorPrefs>", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0xc, 0x0}, Documentation: []Text{" The map from (wannabe) validator stash key to the preferences of that validator."}}, {Name: "Nominators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Vec", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The map from nominator stash key to the set of stash keys of all validators to nominate."}}, {Name: "Stakers", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Exposure>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0}, Documentation: []Text{" Nominators for a particular account that is in action right now. You can't iterate through validators here,", " but you can find them in the `sessions` module.", "", " This is keyed by the stash account."}}, {Name: "CurrentElected", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The currently elected validator set keyed by stash account ID."}}, {Name: "CurrentEra", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current era index."}}, {Name: "CurrentSessionReward", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Maximum reward, per validator, that is provided per acceptable session."}}, {Name: "CurrentEraReward", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The accumulated reward for the current era. Reset to zero at the beginning of the era and", " increased for every successfully finished session."}}, {Name: "NextSessionsPerEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The next value of sessions per era."}}, {Name: "LastEraLengthChange", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The session index at which the era length last changed."}}, {Name: "SlotStake", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of balance actively at stake for each validator slot, currently.", "", " This is used to derive rewards and punishments."}}, {Name: "SlashCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "u32", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of times a given validator has been reported offline. This gets decremented by one each era that passes."}}, {Name: "ForcingNewEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "()", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" We are forcing a new era."}}, {Name: "RecentlyOffline", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec<(T::AccountId, T::BlockNumber, u32)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Most recent `RECENT_OFFLINE_COUNT` instances. (who it was, when it was reported, how many instances they were offline for)."}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "bond", Args: []FunctionArgumentMetadata{{Name: "controller", Type: "::Source"}, {Name: "value", Type: "Compact>"}, {Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" Take the origin account as a stash and lock up `value` of its balance. `controller` will be the", " account that controls it.", "", " The dispatch origin for this call must be _Signed_ by the stash account."}}, {Name: "bond_extra", Args: []FunctionArgumentMetadata{{Name: "max_additional", Type: "Compact>"}}, Documentation: []Text{" Add some extra amount that have appeared in the stash `free_balance` into the balance up for", " staking.", "", " Use this if there are additional funds in your stash account that you wish to bond.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller."}}, {Name: "unbond", Args: []FunctionArgumentMetadata{{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Schedule a portion of the stash to be unlocked ready for transfer out after the bond", " period ends. If this leaves an amount actively bonded less than", " T::Currency::existential_deposit(), then it is increased to the full amount.", "", " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", " the funds out of management ready for transfer.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " See also [`Call::withdraw_unbonded`]."}}, {Name: "withdraw_unbonded", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove any unlocked chunks from the `unlocking` queue from our management.", "", " This essentially frees up that balance to be used by the stash account to do", " whatever it wants.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " See also [`Call::unbond`]."}}, {Name: "validate", Args: []FunctionArgumentMetadata{{Name: "prefs", Type: "ValidatorPrefs>"}}, Documentation: []Text{" Declare the desire to validate for the origin controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash."}}, {Name: "nominate", Args: []FunctionArgumentMetadata{{Name: "targets", Type: "Vec<::Source>"}}, Documentation: []Text{" Declare the desire to nominate `targets` for the origin controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash."}}, {Name: "chill", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Declare no desire to either validate or nominate.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash."}}, {Name: "set_payee", Args: []FunctionArgumentMetadata{{Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" (Re-)set the payment target for a controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash."}}, {Name: "set_controller", Args: []FunctionArgumentMetadata{{Name: "controller", Type: "::Source"}}, Documentation: []Text{" (Re-)set the payment target for a controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller."}}, {Name: "set_sessions_per_era", Args: []FunctionArgumentMetadata{{Name: "new", Type: "Compact"}}, Documentation: []Text{" Set the number of sessions in an era."}}, {Name: "set_bonding_duration", Args: []FunctionArgumentMetadata{{Name: "new", Type: "Compact"}}, Documentation: []Text{" The length of the bonding duration in eras."}}, {Name: "set_validator_count", Args: []FunctionArgumentMetadata{{Name: "new", Type: "Compact"}}, Documentation: []Text{" The ideal number of validators."}}, {Name: "force_new_era", Args: []FunctionArgumentMetadata{{Name: "apply_rewards", Type: "bool"}}, Documentation: []Text{" Force there to be a new era. This also forces a new session immediately after.", " `apply_rewards` should be true for validators to get the session reward."}}, {Name: "set_offline_slash_grace", Args: []FunctionArgumentMetadata{{Name: "new", Type: "Compact"}}, Documentation: []Text{" Set the offline slash grace period."}}, {Name: "set_invulnerables", Args: []FunctionArgumentMetadata{{Name: "validators", Type: "Vec"}}, Documentation: []Text{" Set the validators who cannot be slashed (if any)."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Reward", Args: []Type{"Balance"}, Documentation: []Text{" All validators have been rewarded by the given balance."}}, {Name: "OfflineWarning", Args: []Type{"AccountId", "u32"}, Documentation: []Text{" One validator (and their nominators) has been given a offline-warning (they're still", " within their grace). The accrued number of slashes is recorded, too."}}, {Name: "OfflineSlash", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" One validator (and their nominators) has been slashed by the given amount."}}}}, {Name: "democracy", Prefix: "Democracy", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "PublicPropCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "PropIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of (public) proposals that have been made so far."}}, {Name: "PublicProps", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec<(PropIndex, T::Proposal, T::AccountId)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The public proposals. Unsorted. `T::AccountId` refers to the account that proposed."}}, {Name: "DepositOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "PropIndex", Value: "(BalanceOf, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Those who have locked a deposit."}}, {Name: "LaunchPeriod", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" How often (in blocks) new public referenda are launched."}}, {Name: "MinimumDeposit", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount to be used as a deposit for a public referendum proposal."}}, {Name: "PublicDelay", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The delay before enactment for all public referenda."}}, {Name: "MaxLockPeriods", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "LockPeriods", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The maximum number of additional lock periods a voter may offer to strengthen their vote."}}, {Name: "VotingPeriod", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" How often (in blocks) to check for new votes."}}, {Name: "ReferendumCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next free referendum index, aka the number of referenda started so far."}}, {Name: "NextTally", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next referendum index that should be tallied."}}, {Name: "ReferendumInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReferendumIndex", Value: "(ReferendumInfo)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information concerning any given referendum."}}, {Name: "DispatchQueue", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::BlockNumber", Value: "Vec>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Queue of successful referenda to be dispatched."}}, {Name: "VotersFor", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReferendumIndex", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Get the voters for the current proposal."}}, {Name: "VoteOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "(ReferendumIndex, T::AccountId)", Value: "Vote", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Get the vote in a given referendum of a particular voter. The result is meaningful only if `voters_for` includes the", " voter when called with the referendum (you'll get the default `Vote` value otherwise). If you don't want to check", " `voters_for`, then you can also check for simple existence with `VoteOf::exists` first."}}, {Name: "Proxy", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Who is able to vote for whom. Value is the fund-holding account, key is the vote-transaction-sending account."}}, {Name: "Delegations", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "(T::AccountId, LockPeriods)", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Get the account (and lock periods) to which another account is delegating vote."}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "propose", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box"}, {Name: "value", Type: "Compact>"}}, Documentation: []Text{" Propose a sensitive action to be taken."}}, {Name: "second", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Compact"}}, Documentation: []Text{" Second (sponsor) a proposal."}}, {Name: "vote", Args: []FunctionArgumentMetadata{{Name: "ref_index", Type: "Compact"}, {Name: "vote", Type: "Vote"}}, Documentation: []Text{" Vote on a referendum. If `vote.is_aye`, the vote is to enact the proposal;", " otherwise it is a vote to keep the status quo."}}, {Name: "proxy_vote", Args: []FunctionArgumentMetadata{{Name: "ref_index", Type: "Compact"}, {Name: "vote", Type: "Vote"}}, Documentation: []Text{" Vote on a referendum using a proxy account on behalf of a stash account. If `vote.is_aye`, the vote is to enact the proposal;", " otherwise it is a vote to keep the status quo."}}, {Name: "start_referendum", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box"}, {Name: "threshold", Type: "VoteThreshold"}, {Name: "delay", Type: "T::BlockNumber"}}, Documentation: []Text{" Start a referendum."}}, {Name: "cancel_referendum", Args: []FunctionArgumentMetadata{{Name: "ref_index", Type: "Compact"}}, Documentation: []Text{" Remove a referendum."}}, {Name: "cancel_queued", Args: []FunctionArgumentMetadata{{Name: "when", Type: "Compact"}, {Name: "which", Type: "Compact"}}, Documentation: []Text{" Cancel a proposal queued for enactment."}}, {Name: "set_proxy", Args: []FunctionArgumentMetadata{{Name: "proxy", Type: "T::AccountId"}}, Documentation: []Text{" Specify a proxy. Called by the stash."}}, {Name: "resign_proxy", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Clear the proxy. Called by the proxy."}}, {Name: "remove_proxy", Args: []FunctionArgumentMetadata{{Name: "proxy", Type: "T::AccountId"}}, Documentation: []Text{" Clear the proxy. Called by the stash."}}, {Name: "delegate", Args: []FunctionArgumentMetadata{{Name: "to", Type: "T::AccountId"}, {Name: "lock_periods", Type: "LockPeriods"}}, Documentation: []Text{" Delegate vote."}}, {Name: "undelegate", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Undelegate vote."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Proposed", Args: []Type{"PropIndex", "Balance"}, Documentation: []Text(nil)}, {Name: "Tabled", Args: []Type{"PropIndex", "Balance", "Vec"}, Documentation: []Text(nil)}, {Name: "Started", Args: []Type{"ReferendumIndex", "VoteThreshold"}, Documentation: []Text(nil)}, {Name: "Passed", Args: []Type{"ReferendumIndex"}, Documentation: []Text(nil)}, {Name: "NotPassed", Args: []Type{"ReferendumIndex"}, Documentation: []Text(nil)}, {Name: "Cancelled", Args: []Type{"ReferendumIndex"}, Documentation: []Text(nil)}, {Name: "Executed", Args: []Type{"ReferendumIndex", "bool"}, Documentation: []Text(nil)}, {Name: "Delegated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text(nil)}, {Name: "Undelegated", Args: []Type{"AccountId"}, Documentation: []Text(nil)}}}, {Name: "council", Prefix: "Council", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "CandidacyBond", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Amount that must be locked up in order to submit one's candidacy."}}, {Name: "VotingBond", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Amount that must be locked up in order to be able to submit votes."}}, {Name: "PresentSlashPerVoter", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The punishment, per voter, if you provide an invalid presentation."}}, {Name: "CarryCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x2, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of runners-up who should have their approvals persist until the next vote."}}, {Name: "PresentationDuration", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of blocks to give each top candidate to present themselves after the vote ends."}}, {Name: "InactiveGracePeriod", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "VoteIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x1, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of vote indices that need to go by after a target voter's last vote before they can", " be reaped if their approvals are moot."}}, {Name: "VotingPeriod", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" How often (in blocks) to check for new votes."}}, {Name: "TermDuration", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" How long (in blocks) each position is active for."}}, {Name: "DesiredSeats", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of accounts that should be sitting on the council."}}, {Name: "ActiveCouncil", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec<(T::AccountId, T::BlockNumber)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current council. When there's a vote going on, this should still be used for executive", " matters. The block number is the block that the associated account ID's position is", " active until (calculated by the sum of the block number when the council member was", " elected and their term duration)."}}, {Name: "VoteCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "VoteIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total number of votes that have happened or are in progress."}}, {Name: "ApprovalsOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" A list of votes for each voter, respecting the last cleared vote index that this voter was", " last active at."}}, {Name: "RegisterInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "(VoteIndex, u32)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The vote index and list slot in which the candidate account ID was registered or `None` if", " they are not currently registered."}}, {Name: "LastActiveOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "VoteIndex", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The last cleared vote index that this voter was last active at."}}, {Name: "Voters", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The present voter list."}}, {Name: "Candidates", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The present candidate list."}}, {Name: "CandidateCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of candidates."}}, {Name: "NextFinalize", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "(T::BlockNumber, u32, Vec)", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The accounts holding the seats that will become free on the next tally. Tuple of the block number", " at which the next tally will occur, the number of seats, and a list of the account IDs."}}, {Name: "SnapshotedStakes", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The stakes as they were at the point that the vote ended."}}, {Name: "Leaderboard", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec<(BalanceOf, T::AccountId)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Get the leaderboard if we're in the presentation phase."}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set_approvals", Args: []FunctionArgumentMetadata{{Name: "votes", Type: "Vec"}, {Name: "index", Type: "Compact"}}, Documentation: []Text{" Set candidate approvals. Approval slots stay valid as long as candidates in those slots", " are registered."}}, {Name: "proxy_set_approvals", Args: []FunctionArgumentMetadata{{Name: "votes", Type: "Vec"}, {Name: "index", Type: "Compact"}}, Documentation: []Text{" Set candidate approvals from a proxy. Approval slots stay valid as long as candidates in those slots", " are registered."}}, {Name: "reap_inactive_voter", Args: []FunctionArgumentMetadata{{Name: "reporter_index", Type: "Compact"}, {Name: "who", Type: "::Source"}, {Name: "who_index", Type: "Compact"}, {Name: "assumed_vote_index", Type: "Compact"}}, Documentation: []Text{" Remove a voter. For it not to be a bond-consuming no-op, all approved candidate indices", " must now be either unregistered or registered to a candidate that registered the slot after", " the voter gave their last approval set.", "", " May be called by anyone. Returns the voter deposit to `signed`."}}, {Name: "retract_voter", Args: []FunctionArgumentMetadata{{Name: "index", Type: "Compact"}}, Documentation: []Text{" Remove a voter. All votes are cancelled and the voter deposit is returned."}}, {Name: "submit_candidacy", Args: []FunctionArgumentMetadata{{Name: "slot", Type: "Compact"}}, Documentation: []Text{" Submit oneself for candidacy.", "", " Account must have enough transferrable funds in it to pay the bond."}}, {Name: "present_winner", Args: []FunctionArgumentMetadata{{Name: "candidate", Type: "::Source"}, {Name: "total", Type: "Compact>"}, {Name: "index", Type: "Compact"}}, Documentation: []Text{" Present a candidate to be inserted into the leaderboard.", "", " The presenter (`origin`) must be slashable and will be slashed in the cases", " of an incorrect total or a duplicate presentation."}}, {Name: "set_desired_seats", Args: []FunctionArgumentMetadata{{Name: "count", Type: "Compact"}}, Documentation: []Text{" Set the desired member count; if less than or equal to the number of seats to be retained,", " then seats will not be up for election when they expire. If more, then a new vote will be", " started if one is not already in progress."}}, {Name: "remove_member", Args: []FunctionArgumentMetadata{{Name: "who", Type: "::Source"}}, Documentation: []Text{" Remove a particular member. A tally will happen instantly (if not already in a presentation", " period) to fill the seat if removal means that the desired number of members is not met.", " This is effective immediately."}}, {Name: "set_presentation_duration", Args: []FunctionArgumentMetadata{{Name: "count", Type: "Compact"}}, Documentation: []Text{" Set the presentation duration (number of blocks)."}}, {Name: "set_term_duration", Args: []FunctionArgumentMetadata{{Name: "count", Type: "Compact"}}, Documentation: []Text{" Set the term duration (number of blocks)."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "VoterReaped", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" A voter has been reaped. The tuple corresponds to the reaped voter and reaper, respectively."}}, {Name: "BadReaperSlashed", Args: []Type{"AccountId"}, Documentation: []Text{" A reaper has been slashed."}}, {Name: "TallyStarted", Args: []Type{"u32"}, Documentation: []Text{" A tally (for approval votes of council seat(s)) has started."}}, {Name: "TallyFinalized", Args: []Type{"Vec", "Vec"}, Documentation: []Text{" A tally (for approval votes of council seat(s)) has ended (with one or more new members)."}}}}, {Name: "council_voting", Prefix: "CouncilVoting", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "CooloffPeriod", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Period (in blocks) that a veto is in effect."}}, {Name: "VotingPeriod", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Period (in blocks) that a vote is open for."}}, {Name: "EnactDelayPeriod", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of blocks by which to delay enactment of successful,", " non-unanimous, council-instigated referendum proposals."}}, {Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec<(T::BlockNumber, T::Hash)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" A list of proposals by block number and proposal ID."}}, {Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "T::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from proposal ID to the proposal."}}, {Name: "ProposalVoters", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" List of voters that have voted on a proposal ID."}}, {Name: "CouncilVoteOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "(T::Hash, T::AccountId)", Value: "bool", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from a proposal ID and voter to the outcome of the vote. True indicates that it passed."}}, {Name: "VetoedProposal", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "(T::BlockNumber, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" A veto of a proposal. The veto has an expiry (block number) and a list of vetoers."}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "propose", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box"}}, Documentation: []Text{" Make a proposal.", "", " A councillor vote of yay from `origin` is applied by default.", "", " The dispatch origin of this call must be signed by a _councillor_ by the time", " the proposal is subject to voting. See [`voting_period`](./voting/struct.VotingPeriod.html)."}}, {Name: "vote", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "T::Hash"}, {Name: "approve", Type: "bool"}}, Documentation: []Text{" Vote on a proposal.", "", " The dispatch origin of this call must be signed by a _councillor_."}}, {Name: "veto", Args: []FunctionArgumentMetadata{{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Veto a proposal.", "", " A proposal cannot be vetoed while in the cooloff period.", " A proposal cannot be vetoed twice by the same account.", "", " The proposal information, including voters, is removed and only veto information is kept", " to indicate when the proposal can be re-proposed, and to make sure that no single councillor", " can veto it twice.", "", " The dispatch origin of this call must be signed by a _councillor_."}}, {Name: "set_cooloff_period", Args: []FunctionArgumentMetadata{{Name: "blocks", Type: "Compact"}}, Documentation: []Text{" Set the cooloff period."}}, {Name: "set_voting_period", Args: []FunctionArgumentMetadata{{Name: "blocks", Type: "Compact"}}, Documentation: []Text{" Set the voting period."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "TallyCancellation", Args: []Type{"Hash", "u32", "u32", "u32"}, Documentation: []Text{" A voting tally has happened for a referendum cancellation vote.", " Last three are yes, no, abstain counts."}}, {Name: "TallyReferendum", Args: []Type{"Hash", "u32", "u32", "u32"}, Documentation: []Text{" A voting tally has happened for a referendum vote.", " Last three are yes, no, abstain counts."}}}}, {Name: "council_motions", Prefix: "CouncilMotions", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The (hashes of) the active proposals."}}, {Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Actual proposal for a given hash, if it's current."}}, {Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "(ProposalIndex, u32, Vec, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes for a given proposal: (Proposal index, required number of yes votes, yes voters, no voters)."}}, {Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proposals so far."}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "propose", Args: []FunctionArgumentMetadata{{Name: "threshold", Type: "Compact"}, {Name: "proposal", Type: "Box<::Proposal>"}}, Documentation: []Text{" Make a proposal. `threshold` indicates the number of yes-votes needed for the proposal", " to execute.", "", " The proposal must be unique.", "", " The dispatch origin of this call must be signed by a _councillor_."}}, {Name: "vote", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "T::Hash"}, {Name: "index", Type: "Compact"}, {Name: "approve", Type: "bool"}}, Documentation: []Text{" Vote on a proposal.", "", " The proposal hash and the index of the vote must be correctly provided.", " A voter can change their vote from yes to no, but duplicate votes will raise an error.", "", " Each submitted vote _may_ cause the proposal to be executed, if the required", " threshold is reached. Similarly, enough no-votes can cause the proposal to be", " removed from storage.", "", " The dispatch origin of this call must be signed by a _councillor_."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Proposed", Args: []Type{"AccountId", "ProposalIndex", "Hash", "u32"}, Documentation: []Text{" A motion (given hash) has been proposed (by given account) with a threshold (given `u32`)."}}, {Name: "Voted", Args: []Type{"AccountId", "Hash", "bool", "u32", "u32"}, Documentation: []Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given as `u32`s respectively)."}}, {Name: "Approved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was approved by the required threshold."}}, {Name: "Disapproved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was not approved by the required threshold."}}, {Name: "Executed", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A motion was executed; `bool` is true if returned without error."}}}}, {Name: "finality_tracker", Prefix: "", HasStorage: false, Storage: []StorageFunctionMetadataV4(nil), HasCalls: true, Calls: []FunctionMetadataV4{{Name: "final_hint", Args: []FunctionArgumentMetadata{{Name: "hint", Type: "Compact"}}, Documentation: []Text{" Hint that the author of this block thinks the best finalized", " block is the given number."}}}, HasEvents: false, Events: []EventMetadataV4(nil)}, {Name: "grandpa", Prefix: "GrandpaFinality", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "PendingChange", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "StoredPendingChange", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}, {Name: "NextForced", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "report_misbehavior", Args: []FunctionArgumentMetadata{{Name: "_report", Type: "Vec"}}, Documentation: []Text{" Report some misbehavior."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "NewAuthorities", Args: []Type{"Vec<(SessionKey, u64)>"}, Documentation: []Text{" New authority set has been applied."}}}}, {Name: "treasury", Prefix: "Treasury", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "ProposalBond", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Permill", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proportion of funds that should be bonded in order to place a proposal. An accepted", " proposal gets these back. A rejected proposal doesn't."}}, {Name: "ProposalBondMinimum", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum amount of funds that should be placed in a deposit for making a proposal."}}, {Name: "SpendPeriod", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Period between successive spends."}}, {Name: "Burn", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Permill", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Percentage of spare funds (if any) that are burnt per spend period."}}, {Name: "Pot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Total funds available to this module for spending."}}, {Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "ProposalIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of proposals that have been made."}}, {Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ProposalIndex", Value: "Proposal>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposals that have been made."}}, {Name: "Approvals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposal indices that have been approved but not yet awarded."}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "propose_spend", Args: []FunctionArgumentMetadata{{Name: "value", Type: "Compact>"}, {Name: "beneficiary", Type: "::Source"}}, Documentation: []Text{" Put forward a suggestion for spending. A deposit proportional to the value", " is reserved and slashed if the proposal is rejected. It is returned once the", " proposal is awarded."}}, {Name: "set_pot", Args: []FunctionArgumentMetadata{{Name: "new_pot", Type: "Compact>"}}, Documentation: []Text{" Set the balance of funds available to spend."}}, {Name: "configure", Args: []FunctionArgumentMetadata{{Name: "proposal_bond", Type: "Compact"}, {Name: "proposal_bond_minimum", Type: "Compact>"}, {Name: "spend_period", Type: "Compact"}, {Name: "burn", Type: "Compact"}}, Documentation: []Text{" (Re-)configure this module."}}, {Name: "reject_proposal", Args: []FunctionArgumentMetadata{{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Reject a proposed spend. The original deposit will be slashed."}}, {Name: "approve_proposal", Args: []FunctionArgumentMetadata{{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", " and the original deposit will be returned."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Proposed", Args: []Type{"ProposalIndex"}, Documentation: []Text{" New proposal."}}, {Name: "Spending", Args: []Type{"Balance"}, Documentation: []Text{" We have ended a spend period and will now allocate funds."}}, {Name: "Awarded", Args: []Type{"ProposalIndex", "Balance", "AccountId"}, Documentation: []Text{" Some funds have been allocated."}}, {Name: "Burnt", Args: []Type{"Balance"}, Documentation: []Text{" Some of our funds have been burnt."}}, {Name: "Rollover", Args: []Type{"Balance"}, Documentation: []Text{" Spending has finished; this is the amount that rolls over until next spend."}}}}, {Name: "contract", Prefix: "Contract", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "TransferFee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to make a transfer."}}, {Name: "CreationFee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to create an account."}}, {Name: "TransactionBaseFee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the base."}}, {Name: "TransactionByteFee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the per-byte portion."}}, {Name: "ContractFee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x15, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to create a contract instance."}}, {Name: "CallBaseFee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Gas", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x87, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base fee charged for calling into a contract."}}, {Name: "CreateBaseFee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Gas", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0xaf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base fee charged for creating a contract."}}, {Name: "GasPrice", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The price of one unit of gas."}}, {Name: "MaxDepth", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x64, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum nesting level of a call/create stack."}}, {Name: "BlockGasLimit", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Gas", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x80, 0x96, 0x98, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum amount of gas that could be expended per block."}}, {Name: "GasSpent", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::Gas", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Gas spent so far in this block."}}, {Name: "CurrentSchedule", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "Schedule", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current cost schedule for contracts."}}, {Name: "CodeHashOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "CodeHash", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The code associated with a given account."}}, {Name: "PristineCode", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "CodeHash", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from an original code hash to the original code, untouched by instrumentation."}}, {Name: "CodeStorage", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "CodeHash", Value: "wasm::PrefabWasmModule", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping between an original code hash and instrumented wasm code, ready for the execution."}}, {Name: "AccountCounter", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The subtrie counter"}}, {Name: "AccountInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "AccountInfo", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0}, Documentation: []Text{" The code associated with a given account."}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "update_schedule", Args: []FunctionArgumentMetadata{{Name: "schedule", Type: "Schedule"}}, Documentation: []Text{" Updates the schedule for metering contracts.", "", " The schedule must have a greater version than the stored schedule."}}, {Name: "put_code", Args: []FunctionArgumentMetadata{{Name: "gas_limit", Type: "Compact"}, {Name: "code", Type: "Vec"}}, Documentation: []Text{" Stores the given binary Wasm code into the chains storage and returns its `codehash`.", " You can instantiate contracts only with stored code."}}, {Name: "call", Args: []FunctionArgumentMetadata{{Name: "dest", Type: "::Source"}, {Name: "value", Type: "Compact>"}, {Name: "gas_limit", Type: "Compact"}, {Name: "data", Type: "Vec"}}, Documentation: []Text{" Makes a call to an account, optionally transferring some balance.", "", " * If the account is a smart-contract account, the associated code will be", " executed and any value will be transferred.", " * If the account is a regular account, any value will be transferred.", " * If no account exists and the call value is not less than `existential_deposit`,", " a regular account will be created and any value will be transferred."}}, {Name: "create", Args: []FunctionArgumentMetadata{{Name: "endowment", Type: "Compact>"}, {Name: "gas_limit", Type: "Compact"}, {Name: "code_hash", Type: "CodeHash"}, {Name: "data", Type: "Vec"}}, Documentation: []Text{" Creates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", "", " Creation is executed as follows:", "", " - the destination address is computed based on the sender and hash of the code.", " - the smart-contract account is created at the computed address.", " - the `ctor_code` is executed in the context of the newly created account. Buffer returned", " after the execution is saved as the `code` of the account. That code will be invoked", " upon any call received by this account.", " - The contract is initialized."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Transfer", Args: []Type{"AccountId", "AccountId", "Balance"}, Documentation: []Text{" Transfer happened `from` to `to` with given `value` as part of a `call` or `create`."}}, {Name: "Instantiated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" Contract deployed by address at the specified address."}}, {Name: "CodeStored", Args: []Type{"Hash"}, Documentation: []Text{" Code with the specified hash has been stored."}}, {Name: "ScheduleUpdated", Args: []Type{"u32"}, Documentation: []Text{" Triggered when the current schedule is updated."}}, {Name: "Dispatched", Args: []Type{"AccountId", "bool"}, Documentation: []Text{" A call was dispatched from the given account. The bool signals whether it was", " successful execution or not."}}, {Name: "Contract", Args: []Type{"AccountId", "Vec"}, Documentation: []Text{" An event from contract of account."}}}}, {Name: "sudo", Prefix: "Sudo", HasStorage: true, Storage: []StorageFunctionMetadataV4{{Name: "Key", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV4{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: ""}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The `AccountId` of the sudo key."}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "sudo", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box"}}, Documentation: []Text{" Authenticates the sudo key and dispatches a function call with `Root` origin.", "", " The dispatch origin for this call must be _Signed_."}}, {Name: "set_key", Args: []FunctionArgumentMetadata{{Name: "new", Type: "::Source"}}, Documentation: []Text{" Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.", "", " The dispatch origin for this call must be _Signed_."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Sudid", Args: []Type{"bool"}, Documentation: []Text{" A sudo just took place."}}, {Name: "KeyChanged", Args: []Type{"AccountId"}, Documentation: []Text{" The sudoer just switched identity; the old key is supplied."}}}}}}, AsMetadataV7: MetadataV7{Modules: []ModuleMetadataV7(nil)}} //nolint:lll,dupl - -// ExamplaryMetadataV4String is example metadata v4 encoded in a hex string -var ExamplaryMetadataV4String = "0x6d65746104441873797374656d1853797374656d012c304163636f756e744e6f6e636501010130543a3a4163636f756e74496420543a3a496e64657800200000000000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004390120546f74616c206c656e67746820696e20627974657320666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101010c7533321c5665633c75383e0004000431012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d6170732065787472696e736963277320696e64657820746f206974732064617461292e2852616e646f6d5365656401001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004882052616e646f6d2073656564206f66207468652063757272656e7420626c6f636b2e184e756d626572010038543a3a426c6f636b4e756d626572200000000000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e18446967657374010024543a3a446967657374040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e74730100685665633c4576656e745265636f72643c543a3a4576656e743e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e0001084045787472696e7369635375636365737300049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656400045420416e2065787472696e736963206661696c65642e1061757261000000002474696d657374616d702454696d657374616d7001100c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2c426c6f636b506572696f64000024543a3a4d6f6d656e740400044501204f6c642073746f72616765206974656d2070726f766964656420666f7220636f6d7061746962696c6974792e2052656d6f766520616674657220616c6c206e6574776f726b732075706772616465642e344d696e696d756d506572696f64010024543a3a4d6f6d656e7420030000000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e205820536574207468652063757272656e742074696d652e00750120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e2070686173652cbc20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e008d01205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e742073706563696669656420627920606d696e696d756d5f706572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0024636f6e73656e73757324436f6e73656e73757301044c4f726967696e616c417574686f7269746965730000485665633c543a3a53657373696f6e4b65793e040000011c487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e306e6f74655f6f66666c696e65041c6f66666c696e65f43c543a3a496e686572656e744f66666c696e655265706f727420617320496e686572656e744f66666c696e655265706f72743e3a3a496e686572656e74045101204e6f74652074686174207468652070726576696f757320626c6f636b27732076616c696461746f72206d697373656420697473206f70706f7274756e69747920746f2070726f706f7365206120626c6f636b2e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e001c696e64696365731c496e646963657301082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d5365740101013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e2062616c616e6365732042616c616e636573012834546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e484578697374656e7469616c4465706f736974010028543a3a42616c616e6365400000000000000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e73666572466565010028543a3a42616c616e636540000000000000000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e466565010028543a3a42616c616e63654000000000000000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e42617365466565010028543a3a42616c616e6365400000000000000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e42797465466565010028543a3a42616c616e63654000000000000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e1c56657374696e6700010130543a3a4163636f756e7449646c56657374696e675363686564756c653c543a3a42616c616e63653e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e005d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e004d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b7301010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0108207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e20d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510667265654c436f6d706163743c543a3a42616c616e63653e2072657365727665644c436f6d706163743c543a3a42616c616e63653e209420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00010120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c25012069742077696c6c20616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e63656029d820616e6420726573657420746865206163636f756e74206e6f6e636520286073797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e010c284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7404244163636f756e744964045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e1c73657373696f6e1c53657373696f6e01202856616c696461746f72730100445665633c543a3a4163636f756e7449643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3453657373696f6e4c656e677468010038543a3a426c6f636b4e756d62657220e803000000000000047c2043757272656e74206c656e677468206f66207468652073657373696f6e2e3043757272656e74496e646578010038543a3a426c6f636b4e756d62657220000000000000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e3043757272656e745374617274010024543a3a4d6f6d656e7420000000000000000004a02054696d657374616d70207768656e2063757272656e742073657373696f6e20737461727465642e44466f7263696e674e657753657373696f6e000010626f6f6c0400087901204e65772073657373696f6e206973206265696e6720666f72636564206966207468697320656e747279206578697374733b20696e20776869636820636173652c2074686520626f6f6c65616e2076616c75652069732077686574686572810120746865206e65772073657373696f6e2073686f756c6420626520636f6e736964657265642061206e6f726d616c20726f746174696f6e202872657761726461626c6529206f7220657863657074696f6e616c2028736c61736861626c65292e404c6173744c656e6774684368616e6765000038543a3a426c6f636b4e756d626572040004c020426c6f636b206174207768696368207468652073657373696f6e206c656e677468206c617374206368616e6765642e284e6578744b6579466f7200010130543a3a4163636f756e74496434543a3a53657373696f6e4b6579000400049020546865206e657874206b657920666f72206120676976656e2076616c696461746f722e444e65787453657373696f6e4c656e677468000038543a3a426c6f636b4e756d6265720400046420546865206e6578742073657373696f6e206c656e6774682e010c1c7365745f6b6579040c6b657934543a3a53657373696f6e4b65790861012053657473207468652073657373696f6e206b6579206f6620605f76616c696461746f726020746f20605f6b6579602e205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e657874242073657373696f6e2e287365745f6c656e677468040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e046d01205365742061206e65772073657373696f6e206c656e6774682e20576f6e2774206b69636b20696e20756e74696c20746865206e6578742073657373696f6e206368616e6765202861742063757272656e74206c656e677468292e44666f7263655f6e65775f73657373696f6e04346170706c795f7265776172647310626f6f6c045820466f726365732061206e65772073657373696f6e2e0104284e657753657373696f6e042c426c6f636b4e756d626572085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e1c7374616b696e671c5374616b696e6701603856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e3853657373696f6e73506572457261010038543a3a426c6f636b4e756d62657220e80300000000000004a420546865206c656e677468206f662061207374616b696e672065726120696e2073657373696f6e732e3453657373696f6e52657761726401001c50657262696c6c103c000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e304f66666c696e65536c61736801001c50657262696c6c1040420f0004510120536c6173682c207065722076616c696461746f7220746861742069732074616b656e20666f72207468652066697273742074696d6520746865792061726520666f756e6420746f206265206f66666c696e652e444f66666c696e65536c617368477261636501000c7533321000000000043901204e756d626572206f6620696e7374616e636573206f66206f66666c696e65207265706f727473206265666f726520736c617368696e6720626567696e7320666f722076616c696461746f72732e3c426f6e64696e674475726174696f6e010038543a3a426c6f636b4e756d62657220e80300000000000004b820546865206c656e677468206f662074686520626f6e64696e67206475726174696f6e20696e20626c6f636b732e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e040008a50120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e63652074686579277265206561737920746f20696e697469616c697a65ad0120616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f757220696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010130543a3a4163636f756e744964e45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010130543a3a4163636f756e7449647056616c696461746f7250726566733c42616c616e63654f663c543e3e01080c0004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727301010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e1c5374616b65727301010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c00000010b101204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e27742069746572617465207468726f7567682076616c696461746f727320686572652cc02062757420796f752063616e2066696e64207468656d20696e20746865206073657373696f6e7360206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010038543a3a426c6f636b4e756d626572200000000000000000045c205468652063757272656e742065726120696e6465782e5043757272656e7453657373696f6e52657761726401003042616c616e63654f663c543e4000000000000000000000000000000000042101204d6178696d756d207265776172642c207065722076616c696461746f722c20746861742069732070726f7669646564207065722061636365707461626c652073657373696f6e2e4043757272656e7445726152657761726401003042616c616e63654f663c543e40000000000000000000000000000000000869012054686520616363756d756c617465642072657761726420666f72207468652063757272656e74206572612e20526573657420746f207a65726f2061742074686520626567696e6e696e67206f66207468652065726120616e64cc20696e6372656173656420666f72206576657279207375636365737366756c6c792066696e69736865642073657373696f6e2e484e65787453657373696f6e73506572457261000038543a3a426c6f636b4e756d6265720400049020546865206e6578742076616c7565206f662073657373696f6e7320706572206572612e4c4c6173744572614c656e6774684368616e6765010038543a3a426c6f636b4e756d62657220000000000000000004e0205468652073657373696f6e20696e6465782061742077686963682074686520657261206c656e677468206c617374206368616e6765642e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e28536c617368436f756e7401010130543a3a4163636f756e7449640c75333200100000000004d10120546865206e756d626572206f662074696d6573206120676976656e2076616c696461746f7220686173206265656e207265706f72746564206f66666c696e652e205468697320676574732064656372656d656e746564206279206f6e652065616368206572612074686174207061737365732e34466f7263696e674e65774572610000082829040004682057652061726520666f7263696e672061206e6577206572612e3c526563656e746c794f66666c696e650100a05665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c20753332293e040004f101204d6f737420726563656e742060524543454e545f4f46464c494e455f434f554e546020696e7374616e6365732e202877686f206974207761732c207768656e20697420776173207265706f727465642c20686f77206d616e7920696e7374616e63657320746865792077657265206f66666c696e6520666f72292e013c10626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e1081012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c2062652074686568206163636f756e74207468617420636f6e74726f6c732069742e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e1875012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757020666f7224207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e285501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e350120543a3a43757272656e63793a3a6578697374656e7469616c5f6465706f73697428292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e64656400202d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e2076616c6964617465041470726566737056616c696461746f7250726566733c42616c616e63654f663c543e3e14e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e141101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e146368696c6c0014c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e247365745f7061796565041470617965654452657761726444657374696e6174696f6e14b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e507365745f73657373696f6e735f7065725f657261040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e04982053657420746865206e756d626572206f662073657373696f6e7320696e20616e206572612e507365745f626f6e64696e675f6475726174696f6e040c6e65775c436f6d706163743c543a3a426c6f636b4e756d6265723e04b020546865206c656e677468206f662074686520626f6e64696e67206475726174696f6e20696e20657261732e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e65775f65726104346170706c795f7265776172647310626f6f6c083d0120466f72636520746865726520746f2062652061206e6577206572612e205468697320616c736f20666f726365732061206e65772073657373696f6e20696d6d6564696174656c792061667465722e250120606170706c795f72657761726473602073686f756c64206265207472756520666f722076616c696461746f727320746f20676574207468652073657373696f6e207265776172642e5c7365745f6f66666c696e655f736c6173685f6772616365040c6e657730436f6d706163743c7533323e04902053657420746865206f66666c696e6520736c61736820677261636520706572696f642e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e010c18526577617264041c42616c616e636504e020416c6c2076616c696461746f72732068617665206265656e2072657761726465642062792074686520676976656e2062616c616e63652e384f66666c696e655761726e696e6708244163636f756e7449640c753332085501204f6e652076616c696461746f722028616e64207468656972206e6f6d696e61746f72732920686173206265656e20676976656e2061206f66666c696e652d7761726e696e67202874686579277265207374696c6c15012077697468696e207468656972206772616365292e205468652061636372756564206e756d626572206f6620736c6173686573206973207265636f726465642c20746f6f2e304f66666c696e65536c61736808244163636f756e7449641c42616c616e6365042d01204f6e652076616c696461746f722028616e64207468656972206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e2464656d6f63726163792444656d6f637261637901403c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100ac5665633c2850726f70496e6465782c20543a3a50726f706f73616c2c20543a3a4163636f756e744964293e040004510120546865207075626c69632070726f706f73616c732e20556e736f727465642e2060543a3a4163636f756e744964602072656665727320746f20746865206163636f756e7420746861742070726f706f7365642e244465706f7369744f660001012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e304c61756e6368506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e384d696e696d756d4465706f73697401003042616c616e63654f663c543e400000000000000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e2c5075626c696344656c6179010038543a3a426c6f636b4e756d62657220000000000000000004d4205468652064656c6179206265666f726520656e6163746d656e7420666f7220616c6c207075626c6963207265666572656e64612e384d61784c6f636b506572696f647301002c4c6f636b506572696f6473040004690120546865206d6178696d756d206e756d626572206f66206164646974696f6e616c206c6f636b20706572696f6473206120766f746572206d6179206f6666657220746f20737472656e677468656e20746865697220766f74652e30566f74696e67506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e244e65787454616c6c7901003c5265666572656e64756d496e646578100000000004c820546865206e657874207265666572656e64756d20696e64657820746861742073686f756c642062652074616c6c6965642e405265666572656e64756d496e666f4f660001013c5265666572656e64756d496e646578b4285265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a50726f706f73616c3e2900040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e344469737061746368517565756501010138543a3a426c6f636b4e756d626572ac5665633c4f7074696f6e3c28543a3a50726f706f73616c2c205265666572656e64756d496e646578293e3e00040004c0205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e24566f74657273466f720101013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f660101017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f74650004000cd501204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c792069662060766f746572735f666f726020696e636c7564657320746865c90120766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468652064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b61012060766f746572735f666f72602c207468656e20796f752063616e20616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e74496400040004b9012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b65792069732074686520766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e2c44656c65676174696f6e7301010130543a3a4163636f756e7449646c28543a3a4163636f756e7449642c204c6f636b506572696f64732901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e01301c70726f706f7365082070726f706f73616c40426f783c543a3a50726f706f73616c3e1476616c756554436f6d706163743c42616c616e63654f663c543e3e04a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e0474205365636f6e64202873706f6e736f722920612070726f706f73616c2e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f7465082d0120566f7465206f6e2061207265666572656e64756d2e2049662060766f74652e69735f617965602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e2870726f78795f766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f746508f90120566f7465206f6e2061207265666572656e64756d207573696e6720612070726f7879206163636f756e74206f6e20626568616c66206f662061207374617368206163636f756e742e2049662060766f74652e69735f617965602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e4073746172745f7265666572656e64756d0c2070726f706f73616c40426f783c543a3a50726f706f73616c3e247468726573686f6c6434566f74655468726573686f6c641464656c617938543a3a426c6f636b4e756d62657204502053746172742061207265666572656e64756d2e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f71756575656408107768656e5c436f6d706163743c543a3a426c6f636b4e756d6265723e14776869636830436f6d706163743c7533323e04a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e247365745f70726f7879041470726f787930543a3a4163636f756e7449640498205370656369667920612070726f78792e2043616c6c6564206279207468652073746173682e3072657369676e5f70726f787900049820436c656172207468652070726f78792e2043616c6c6564206279207468652070726f78792e3072656d6f76655f70726f7879041470726f787930543a3a4163636f756e744964049820436c656172207468652070726f78792e2043616c6c6564206279207468652073746173682e2064656c65676174650808746f30543a3a4163636f756e744964306c6f636b5f706572696f64732c4c6f636b506572696f6473043c2044656c656761746520766f74652e28756e64656c656761746500044420556e64656c656761746520766f74652e01242050726f706f736564082450726f70496e6465781c42616c616e636500185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e001c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c640018506173736564043c5265666572656e64756d496e64657800244e6f74506173736564043c5265666572656e64756d496e646578002443616e63656c6c6564043c5265666572656e64756d496e64657800204578656375746564083c5265666572656e64756d496e64657810626f6f6c002444656c65676174656408244163636f756e744964244163636f756e744964002c556e64656c65676174656404244163636f756e744964001c636f756e63696c1c436f756e63696c01503443616e646964616379426f6e6401003042616c616e63654f663c543e400900000000000000000000000000000004090120416d6f756e742074686174206d757374206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e28566f74696e67426f6e6401003042616c616e63654f663c543e4000000000000000000000000000000000040d0120416d6f756e742074686174206d757374206265206c6f636b656420757020696e206f7264657220746f2062652061626c6520746f207375626d697420766f7465732e5050726573656e74536c617368506572566f74657201003042616c616e63654f663c543e4001000000000000000000000000000000040d01205468652070756e6973686d656e742c2070657220766f7465722c20696620796f752070726f7669646520616e20696e76616c69642070726573656e746174696f6e2e284361727279436f756e7401000c7533321002000000044901204e756d626572206f662072756e6e6572732d75702077686f2073686f756c64206861766520746865697220617070726f76616c73207065727369737420756e74696c20746865206e65787420766f74652e5050726573656e746174696f6e4475726174696f6e010038543a3a426c6f636b4e756d62657220e803000000000000045d01204e756d626572206f6620626c6f636b7320746f2067697665206561636820746f702063616e64696461746520746f2070726573656e74207468656d73656c7665732061667465722074686520766f746520656e64732e4c496e6163746976654772616365506572696f64010024566f7465496e6465781001000000086d01204e756d626572206f6620766f746520696e64696365732074686174206e65656420746f20676f20627920616674657220612074617267657420766f7465722773206c61737420766f7465206265666f726520746865792063616e9c2062652072656170656420696620746865697220617070726f76616c7320617265206d6f6f742e30566f74696e67506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e305465726d4475726174696f6e010038543a3a426c6f636b4e756d62657220050000000000000004c820486f77206c6f6e672028696e20626c6f636b7329206561636820706f736974696f6e2069732061637469766520666f722e3044657369726564536561747301000c753332100000000004e8204e756d626572206f66206163636f756e747320746861742073686f756c642062652073697474696e67206f6e2074686520636f756e63696c2e34416374697665436f756e63696c01008c5665633c28543a3a4163636f756e7449642c20543a3a426c6f636b4e756d626572293e0400106d01205468652063757272656e7420636f756e63696c2e205768656e2074686572652773206120766f746520676f696e67206f6e2c20746869732073686f756c64207374696c6c206265207573656420666f72206578656375746976655101206d6174746572732e2054686520626c6f636b206e756d6265722069732074686520626c6f636b207468617420746865206173736f636961746564206163636f756e74204944277320706f736974696f6e20697351012061637469766520756e74696c202863616c63756c61746564206279207468652073756d206f662074686520626c6f636b206e756d626572207768656e2074686520636f756e63696c206d656d626572207761738820656c656374656420616e64207468656972207465726d206475726174696f6e292e24566f7465436f756e74010024566f7465496e64657810000000000405012054686520746f74616c206e756d626572206f6620766f746573207468617420686176652068617070656e6564206f722061726520696e2070726f67726573732e2c417070726f76616c734f6601010130543a3a4163636f756e744964245665633c626f6f6c3e000400086d012041206c697374206f6620766f74657320666f72206561636820766f7465722c2072657370656374696e6720746865206c61737420636c656172656420766f746520696e6465782074686174207468697320766f7465722077617340206c617374206163746976652061742e385265676973746572496e666f4f6600010130543a3a4163636f756e7449644028566f7465496e6465782c2075333229000400086d012054686520766f746520696e64657820616e64206c69737420736c6f7420696e207768696368207468652063616e646964617465206163636f756e74204944207761732072656769737465726564206f7220604e6f6e65602069668c207468657920617265206e6f742063757272656e746c7920726567697374657265642e304c6173744163746976654f6600010130543a3a4163636f756e74496424566f7465496e64657800040004010120546865206c61737420636c656172656420766f746520696e6465782074686174207468697320766f74657220776173206c617374206163746976652061742e18566f746572730100445665633c543a3a4163636f756e7449643e04000460205468652070726573656e7420766f746572206c6973742e2843616e646964617465730100445665633c543a3a4163636f756e7449643e04000470205468652070726573656e742063616e646964617465206c6973742e3843616e646964617465436f756e7401000c75333210000000000458204e756d626572206f662063616e646964617465732e304e65787446696e616c697a650000a028543a3a426c6f636b4e756d6265722c207533322c205665633c543a3a4163636f756e7449643e29040008890120546865206163636f756e747320686f6c64696e672074686520736561747320746861742077696c6c206265636f6d652066726565206f6e20746865206e6578742074616c6c792e205475706c65206f662074686520626c6f636b206e756d626572610120617420776869636820746865206e6578742074616c6c792077696c6c206f636375722c20746865206e756d626572206f662073656174732c20616e642061206c697374206f6620746865206163636f756e74204944732e40536e617073686f7465645374616b65730100445665633c42616c616e63654f663c543e3e040004e820546865207374616b6573206173207468657920776572652061742074686520706f696e7420746861742074686520766f746520656e6465642e2c4c6561646572626f6172640000845665633c2842616c616e63654f663c543e2c20543a3a4163636f756e744964293e040004e02047657420746865206c6561646572626f61726420696620776527726520696e207468652070726573656e746174696f6e2070686173652e0128347365745f617070726f76616c730814766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e086101205365742063616e64696461746520617070726f76616c732e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e2074686f736520736c6f7473402061726520726567697374657265642e4c70726f78795f7365745f617070726f76616c730814766f746573245665633c626f6f6c3e14696e64657848436f6d706163743c566f7465496e6465783e089501205365742063616e64696461746520617070726f76616c732066726f6d20612070726f78792e20417070726f76616c20736c6f747320737461792076616c6964206173206c6f6e672061732063616e6469646174657320696e2074686f736520736c6f7473402061726520726567697374657265642e4c726561705f696e6163746976655f766f74657210387265706f727465725f696e64657830436f6d706163743c7533323e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652477686f5f696e64657830436f6d706163743c7533323e48617373756d65645f766f74655f696e64657848436f6d706163743c566f7465496e6465783e1461012052656d6f7665206120766f7465722e20466f72206974206e6f7420746f206265206120626f6e642d636f6e73756d696e67206e6f2d6f702c20616c6c20617070726f7665642063616e64696461746520696e64696365737101206d757374206e6f772062652065697468657220756e72656769737465726564206f72207265676973746572656420746f20612063616e646964617465207468617420726567697374657265642074686520736c6f74206166746572a02074686520766f7465722067617665207468656972206c61737420617070726f76616c207365742e000101204d61792062652063616c6c656420627920616e796f6e652e2052657475726e732074686520766f746572206465706f73697420746f20607369676e6564602e34726574726163745f766f7465720414696e64657830436f6d706163743c7533323e042d012052656d6f7665206120766f7465722e20416c6c20766f746573206172652063616e63656c6c656420616e642074686520766f746572206465706f7369742069732072657475726e65642e407375626d69745f63616e6469646163790410736c6f7430436f6d706163743c7533323e0c78205375626d6974206f6e6573656c6620666f722063616e6469646163792e001101204163636f756e74206d757374206861766520656e6f756768207472616e736665727261626c652066756e647320696e20697420746f207061792074686520626f6e642e3870726573656e745f77696e6e65720c2463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636514746f74616c54436f6d706163743c42616c616e63654f663c543e3e14696e64657848436f6d706163743c566f7465496e6465783e10e42050726573656e7420612063616e64696461746520746f20626520696e73657274656420696e746f20746865206c6561646572626f6172642e003101205468652070726573656e7465722028606f726967696e6029206d75737420626520736c61736861626c6520616e642077696c6c20626520736c617368656420696e20746865206361736573cc206f6620616e20696e636f727265637420746f74616c206f722061206475706c69636174652070726573656e746174696f6e2e447365745f646573697265645f73656174730414636f756e7430436f6d706163743c7533323e0c6d0120536574207468652064657369726564206d656d62657220636f756e743b206966206c657373207468616e206f7220657175616c20746f20746865206e756d626572206f6620736561747320746f2062652072657461696e65642c6901207468656e2073656174732077696c6c206e6f7420626520757020666f7220656c656374696f6e207768656e2074686579206578706972652e204966206d6f72652c207468656e2061206e657720766f74652077696c6c206265ac2073746172746564206966206f6e65206973206e6f7420616c726561647920696e2070726f67726573732e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c71012052656d6f7665206120706172746963756c6172206d656d6265722e20412074616c6c792077696c6c2068617070656e20696e7374616e746c7920286966206e6f7420616c726561647920696e20612070726573656e746174696f6e650120706572696f642920746f2066696c6c2074686520736561742069662072656d6f76616c206d65616e732074686174207468652064657369726564206e756d626572206f66206d656d62657273206973206e6f74206d65742e7c20546869732069732065666665637469766520696d6d6564696174656c792e647365745f70726573656e746174696f6e5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e04c820536574207468652070726573656e746174696f6e206475726174696f6e20286e756d626572206f6620626c6f636b73292e447365745f7465726d5f6475726174696f6e0414636f756e745c436f6d706163743c543a3a426c6f636b4e756d6265723e04a82053657420746865207465726d206475726174696f6e20286e756d626572206f6620626c6f636b73292e01102c566f74657252656170656408244163636f756e744964244163636f756e744964047501204120766f74657220686173206265656e207265617065642e20546865207475706c6520636f72726573706f6e647320746f207468652072656170656420766f74657220616e64207265617065722c20726573706563746976656c792e40426164526561706572536c617368656404244163636f756e744964046c20412072656170657220686173206265656e20736c61736865642e3054616c6c7953746172746564040c75333204f420412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320737461727465642e3854616c6c7946696e616c697a656408385665633c4163636f756e7449643e385665633c4163636f756e7449643e04690120412074616c6c792028666f7220617070726f76616c20766f746573206f6620636f756e63696c2073656174287329292068617320656e646564202877697468206f6e65206f72206d6f7265206e6577206d656d62657273292e38636f756e63696c5f766f74696e6734436f756e63696c566f74696e67012034436f6f6c6f6666506572696f64010038543a3a426c6f636b4e756d62657220e80300000000000004b420506572696f642028696e20626c6f636b732920746861742061207665746f20697320696e206566666563742e30566f74696e67506572696f64010038543a3a426c6f636b4e756d62657220030000000000000004b020506572696f642028696e20626c6f636b73292074686174206120766f7465206973206f70656e20666f722e40456e61637444656c6179506572696f64010038543a3a426c6f636b4e756d62657220000000000000000008f0204e756d626572206f6620626c6f636b7320627920776869636820746f2064656c617920656e6163746d656e74206f66207375636365737366756c2ce0206e6f6e2d756e616e696d6f75732c20636f756e63696c2d696e7374696761746564207265666572656e64756d2070726f706f73616c732e2450726f706f73616c730100785665633c28543a3a426c6f636b4e756d6265722c20543a3a48617368293e040004d42041206c697374206f662070726f706f73616c7320627920626c6f636b206e756d62657220616e642070726f706f73616c2049442e2850726f706f73616c4f660001011c543a3a486173682c543a3a50726f706f73616c0004000498204d61702066726f6d2070726f706f73616c20494420746f207468652070726f706f73616c2e3850726f706f73616c566f746572730101011c543a3a48617368445665633c543a3a4163636f756e7449643e00040004c4204c697374206f6620766f746572732074686174206861766520766f746564206f6e20612070726f706f73616c2049442e34436f756e63696c566f74654f660001015c28543a3a486173682c20543a3a4163636f756e7449642910626f6f6c000400047101204d61702066726f6d20612070726f706f73616c20494420616e6420766f74657220746f20746865206f7574636f6d65206f662074686520766f74652e205472756520696e646963617465732074686174206974207061737365642e385665746f656450726f706f73616c0001011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e29000400044d012041207665746f206f6620612070726f706f73616c2e20546865207665746f2068617320616e206578706972792028626c6f636b206e756d6265722920616e642061206c697374206f66207665746f6572732e01141c70726f706f7365042070726f706f73616c40426f783c543a3a50726f706f73616c3e1844204d616b6520612070726f706f73616c2e00f8204120636f756e63696c6c6f7220766f7465206f66207961792066726f6d20606f726967696e60206973206170706c6965642062792064656661756c742e00390120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792061205f636f756e63696c6c6f725f206279207468652074696d657501207468652070726f706f73616c206973207375626a65637420746f20766f74696e672e20536565205b60766f74696e675f706572696f64605d282e2f766f74696e672f7374727563742e566f74696e67506572696f642e68746d6c292e10766f7465082070726f706f73616c1c543a3a486173681c617070726f766510626f6f6c0c5020566f7465206f6e20612070726f706f73616c2e000d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792061205f636f756e63696c6c6f725f2e107665746f043470726f706f73616c5f686173681c543a3a486173682844205665746f20612070726f706f73616c2e00e420412070726f706f73616c2063616e6e6f74206265207665746f6564207768696c6520696e2074686520636f6f6c6f666620706572696f642edc20412070726f706f73616c2063616e6e6f74206265207665746f6564207477696365206279207468652073616d65206163636f756e742e006501205468652070726f706f73616c20696e666f726d6174696f6e2c20696e636c7564696e6720766f746572732c2069732072656d6f76656420616e64206f6e6c79207665746f20696e666f726d6174696f6e206973206b657074750120746f20696e646963617465207768656e207468652070726f706f73616c2063616e2062652072652d70726f706f7365642c20616e6420746f206d616b6520737572652074686174206e6f2073696e676c6520636f756e63696c6c6f724c2063616e207665746f2069742074776963652e000d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792061205f636f756e63696c6c6f725f2e487365745f636f6f6c6f66665f706572696f640418626c6f636b735c436f6d706163743c543a3a426c6f636b4e756d6265723e0460205365742074686520636f6f6c6f666620706572696f642e447365745f766f74696e675f706572696f640418626c6f636b735c436f6d706163743c543a3a426c6f636b4e756d6265723e045c205365742074686520766f74696e6720706572696f642e01084454616c6c7943616e63656c6c6174696f6e1010486173680c7533320c7533320c753332080101204120766f74696e672074616c6c79206861732068617070656e656420666f722061207265666572656e64756d2063616e63656c6c6174696f6e20766f74652ea0204c61737420746872656520617265207965732c206e6f2c206162737461696e20636f756e74732e3c54616c6c795265666572656e64756d1010486173680c7533320c7533320c75333208cc204120766f74696e672074616c6c79206861732068617070656e656420666f722061207265666572656e64756d20766f74652ea0204c61737420746872656520617265207965732c206e6f2c206162737461696e20636f756e74732e3c636f756e63696c5f6d6f74696f6e7338436f756e63696c4d6f74696f6e7301102450726f706f73616c730100305665633c543a3a486173683e04000498205468652028686173686573206f662920746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368583c542061732054726169743e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a48617368e82850726f706f73616c496e6465782c207533322c205665633c543a3a4163636f756e7449643e2c205665633c543a3a4163636f756e7449643e29000400048d0120566f74657320666f72206120676976656e2070726f706f73616c3a202850726f706f73616c20696e6465782c207265717569726564206e756d626572206f662079657320766f7465732c2079657320766f746572732c206e6f20766f74657273292e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e01081c70726f706f736508247468726573686f6c6430436f6d706163743c7533323e2070726f706f73616c6c426f783c3c542061732054726169743e3a3a50726f706f73616c3e185d01204d616b6520612070726f706f73616c2e20607468726573686f6c646020696e6469636174657320746865206e756d626572206f66207965732d766f746573206e656564656420666f72207468652070726f706f73616c3020746f20657865637574652e0074205468652070726f706f73616c206d75737420626520756e697175652e000d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792061205f636f756e63696c6c6f725f2e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c285020566f7465206f6e20612070726f706f73616c2e002101205468652070726f706f73616c206861736820616e642074686520696e646578206f662074686520766f7465206d75737420626520636f72726563746c792070726f76696465642e5d01204120766f7465722063616e206368616e676520746865697220766f74652066726f6d2079657320746f206e6f2c20627574206475706c696361746520766f7465732077696c6c20726169736520616e206572726f722e0035012045616368207375626d697474656420766f7465205f6d61795f206361757365207468652070726f706f73616c20746f2062652065786563757465642c206966207468652072657175697265643901207468726573686f6c6420697320726561636865642e2053696d696c61726c792c20656e6f756768206e6f2d766f7465732063616e206361757365207468652070726f706f73616c20746f206265582072656d6f7665642066726f6d2073746f726167652e000d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792061205f636f756e63696c6c6f725f2e01142050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173680c753332046d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e206075333260292e14566f74656414244163636f756e744964104861736810626f6f6c0c7533320c7533320809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67fc20612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e2061732060753332607320726573706563746976656c79292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e4066696e616c6974795f747261636b6572000001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e001c6772616e6470613c4772616e64706146696e616c69747901083450656e64696e674368616e67650000c853746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265722c20543a3a53657373696f6e4b65793e040000284e657874466f72636564000038543a3a426c6f636b4e756d6265720400000104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e0104384e6577417574686f72697469657304585665633c2853657373696f6e4b65792c20753634293e0490204e657720617574686f726974792073657420686173206265656e206170706c6965642e20747265617375727920547265617375727901203050726f706f73616c426f6e6401001c5065726d696c6c10000000000851012050726f706f7274696f6e206f662066756e647320746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c61636520612070726f706f73616c2e20416e206163636570746564dc2070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f65736e27742e4c50726f706f73616c426f6e644d696e696d756d01003042616c616e63654f663c543e4000000000000000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64010038543a3a426c6f636b4e756d626572200100000000000000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e01001c5065726d696c6c10000000000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e0c506f7401003042616c616e63654f663c543e400000000000000000000000000000000004cc20546f74616c2066756e647320617661696c61626c6520746f2074686973206d6f64756c6520666f72207370656e64696e672e3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e01143470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c2d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e1c7365745f706f74041c6e65775f706f7454436f6d706163743c42616c616e63654f663c543e3e04b420536574207468652062616c616e6365206f662066756e647320617661696c61626c6520746f207370656e642e24636f6e666967757265103470726f706f73616c5f626f6e6440436f6d706163743c5065726d696c6c3e5470726f706f73616c5f626f6e645f6d696e696d756d54436f6d706163743c42616c616e63654f663c543e3e307370656e645f706572696f645c436f6d706163743c543a3a426c6f636b4e756d6265723e106275726e40436f6d706163743c5065726d696c6c3e0470202852652d29636f6e6669677572652074686973206d6f64756c652e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e04fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e085d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e01142050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e20636f6e747261637420436f6e747261637401442c5472616e7366657246656501003042616c616e63654f663c543e40000000000000000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656501003042616c616e63654f663c543e4000000000000000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e4261736546656501003042616c616e63654f663c543e400000000000000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e4279746546656501003042616c616e63654f663c543e4000000000000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c436f6e747261637446656501003042616c616e63654f663c543e401500000000000000000000000000000004c0205468652066656520726571756972656420746f20637265617465206120636f6e747261637420696e7374616e63652e2c43616c6c42617365466565010018543a3a47617320870000000000000004c820546865206261736520666565206368617267656420666f722063616c6c696e6720696e746f206120636f6e74726163742e3443726561746542617365466565010018543a3a47617320af0000000000000004b820546865206261736520666565206368617267656420666f72206372656174696e67206120636f6e74726163742e20476173507269636501003042616c616e63654f663c543e4001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e204d6178446570746801000c753332106400000004c820546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f63726561746520737461636b2e34426c6f636b4761734c696d6974010018543a3a47617320809698000000000004f020546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204761735370656e74010018543a3a476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100405363686564756c653c543a3a4761733e3501000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000000000100100000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e28436f6465486173684f6600010130543a3a4163636f756e7449642c436f6465486173683c543e00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e305072697374696e65436f64650001012c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000475012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f722074686520657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045020546865207375627472696520636f756e746572344163636f756e74496e666f4f6600010130543a3a4163636f756e7449642c4163636f756e74496e666f00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e01103c7570646174655f7363686564756c6504207363686564756c65405363686564756c653c543a3a4761733e0cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d69743c436f6d706163743c543a3a4761733e10636f64651c5665633c75383e0859012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c543a3a4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e186372656174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c543a3a4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28a90120437265617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e0084204372656174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d207468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2074686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20746865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792063726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e0118205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365045501205472616e736665722068617070656e6564206066726f6d6020746f2060746f60207769746820676976656e206076616c7565602061732070617274206f662061206063616c6c60206f722060637265617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e20436f6e747261637408244163636f756e7449641c5665633c75383e048c20416e206576656e742066726f6d20636f6e7472616374206f66206163636f756e742e107375646f105375646f01040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0108107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e0c39012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c75012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e01081453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e" //nolint:lll diff --git a/types/metadataV4_test.go b/types/metadataV4_test.go index 0381b3d8d..a019e2a76 100644 --- a/types/metadataV4_test.go +++ b/types/metadataV4_test.go @@ -20,7 +20,6 @@ import ( "testing" . "github.com/centrifuge/go-substrate-rpc-client/v4/types" - . "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" . "github.com/centrifuge/go-substrate-rpc-client/v4/types/test_utils" "github.com/stretchr/testify/assert" ) @@ -126,15 +125,6 @@ var exampleDoubleMapTypeV4 = DoubleMapTypeV4{ var exampleFunctionArgumentMetadata = FunctionArgumentMetadata{Name: "myFunctionName", Type: "myType"} -func TestMetadataV4_Decode(t *testing.T) { - metadata := NewMetadataV4() - - err := Decode(MustHexDecodeString(ExamplaryMetadataV4String), metadata) - assert.NoError(t, err) - - assert.Equal(t, *ExamplaryMetadataV4, *metadata) -} - func TestMetadataV4_EncodeDecode(t *testing.T) { AssertRoundtrip(t, exampleMetadataV4) } diff --git a/types/metadataV8_examplary.go b/types/metadataV8_examplary.go deleted file mode 100644 index 3a1e8858e..000000000 --- a/types/metadataV8_examplary.go +++ /dev/null @@ -1,20 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -// ExamplaryMetadataV8 is example metadata v8 -var ExamplaryMetadataV8 = &Metadata{MagicNumber: 0x6174656d, Version: 0x8, AsMetadataV4: MetadataV4{Modules: []ModuleMetadataV4(nil)}, AsMetadataV7: MetadataV7{Modules: []ModuleMetadataV7(nil)}, AsMetadataV8: MetadataV8{Modules: []ModuleMetadataV8{{Name: "System", HasStorage: true, Storage: StorageMetadata{Prefix: "System", Items: []StorageFunctionMetadataV5{{Name: "AccountNonce", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Index", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Extrinsics nonce for accounts."}}, {Name: "ExtrinsicCount", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total extrinsics count for the current block."}}, {Name: "AllExtrinsicsWeight", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Weight", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total weight for all extrinsics put together, for the current block."}}, {Name: "AllExtrinsicsLen", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total length (in bytes) for all extrinsics put together, for the current block."}}, {Name: "NextWeightMultiplier", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "WeightMultiplier", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next weight multiplier. This should be updated at the end of each block based on the", " saturation level (weight)."}}, {Name: "BlockHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::BlockNumber", Value: "T::Hash", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Map of block numbers to block hashes."}}, {Name: "ExtrinsicData", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "u32", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Extrinsics data for the current block (maps an extrinsic's index to its data)."}}, {Name: "Number", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current block number being processed. Set by `execute_block`."}}, {Name: "ParentHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Hash of the previous block."}}, {Name: "ExtrinsicsRoot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Extrinsics root of the current block, also part of the block header."}}, {Name: "Digest", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "DigestOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Digest of the current block, also part of the block header."}}, {Name: "Events", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Events deposited for the current block."}}, {Name: "EventCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "EventIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of events in the `Events` list."}}, {Name: "EventTopics", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "()", Key2: "T::Hash", Value: "Vec<(T::BlockNumber, EventIndex)>", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Mapping between a topic (represented by T::Hash) and a vector of indexes", " of events in the `>` list.", "", " The first key serves no purpose. This field is declared as double_map just", " for convenience of using `remove_prefix`.", "", " All topic vectors have deterministic storage locations depending on the topic. This", " allows light-clients to leverage the changes trie storage tracking mechanism and", " in case of changes fetch the list of events of interest.", "", " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", " the `EventIndex` then in case if the topic has the same contents on the next block", " no notification will be triggered thus the event might be lost."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "fill_block", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" A big dispatch that will disallow any other transaction to be included."}}, {Name: "remark", Args: []FunctionArgumentMetadata{{Name: "_remark", Type: "Vec"}}, Documentation: []Text{" Make some on-chain remark."}}, {Name: "set_heap_pages", Args: []FunctionArgumentMetadata{{Name: "pages", Type: "u64"}}, Documentation: []Text{" Set the number of pages in the WebAssembly environment's heap."}}, {Name: "set_code", Args: []FunctionArgumentMetadata{{Name: "new", Type: "Vec"}}, Documentation: []Text{" Set the new code."}}, {Name: "set_storage", Args: []FunctionArgumentMetadata{{Name: "items", Type: "Vec"}}, Documentation: []Text{" Set some items of storage."}}, {Name: "kill_storage", Args: []FunctionArgumentMetadata{{Name: "keys", Type: "Vec"}}, Documentation: []Text{" Kill some items from storage."}}, {Name: "kill_prefix", Args: []FunctionArgumentMetadata{{Name: "prefix", Type: "Key"}}, Documentation: []Text{" Kill all storage items with a key that starts with the given prefix."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "ExtrinsicSuccess", Args: []Type(nil), Documentation: []Text{" An extrinsic completed successfully."}}, {Name: "ExtrinsicFailed", Args: []Type{"DispatchError"}, Documentation: []Text{" An extrinsic failed."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{{Name: "BadSignature", Documentation: []Text(nil)}, {Name: "BlockFull", Documentation: []Text(nil)}, {Name: "RequireSignedOrigin", Documentation: []Text(nil)}, {Name: "RequireRootOrigin", Documentation: []Text(nil)}, {Name: "RequireNoOrigin", Documentation: []Text(nil)}}}, {Name: "Utility", HasStorage: false, Storage: StorageMetadata{Prefix: "", Items: []StorageFunctionMetadataV5(nil)}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "batch", Args: []FunctionArgumentMetadata{{Name: "calls", Type: "Vec<::Call>"}}, Documentation: []Text{" Send a batch of dispatch calls (only root)."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "BatchExecuted", Args: []Type{"Vec>"}, Documentation: []Text(nil)}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "Babe", HasStorage: true, Storage: StorageMetadata{Prefix: "Babe", Items: []StorageFunctionMetadataV5{{Name: "EpochIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current epoch index."}}, {Name: "Authorities", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(AuthorityId, BabeAuthorityWeight)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Current epoch authorities."}}, {Name: "GenesisSlot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The slot at which the first epoch actually started. This is 0", " until the first block of the chain."}}, {Name: "CurrentSlot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current slot number."}}, {Name: "Randomness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "[u8; 32]", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The epoch randomness for the *current* epoch.", "", " # Security", "", " This MUST NOT be used for gambling, as it can be influenced by a", " malicious validator in the short term. It MAY be used in many", " cryptographic protocols, however, so long as one remembers that this", " (like everything else on-chain) it is public. For example, it can be", " used where a number is needed that cannot have been chosen by an", " adversary, for purposes such as public-coin zero-knowledge proofs."}}, {Name: "NextRandomness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "[u8; 32]", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Next epoch randomness."}}, {Name: "SegmentIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Randomness under construction.", "", " We make a tradeoff between storage accesses and list length.", " We store the under-construction randomness in segments of up to", " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", "", " Once a segment reaches this length, we begin the next one.", " We reset all segments and return to `0` at the beginning of every", " epoch."}}, {Name: "UnderConstruction", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "u32", Value: "Vec<[u8; 32]>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}, {Name: "Initialized", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "MaybeVrf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Temporary value (cleared at block finalization) which is `Some`", " if per-block initialization has already been called for current block."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{{Name: "EpochDuration", Type: "u64", Value: Bytes{0xc8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of **slots** that an epoch takes. We couple sessions to", " epochs, i.e. we start a new session once the new epoch begins."}}, {Name: "ExpectedBlockTime", Type: "T::Moment", Value: Bytes{0xb8, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The expected average block time at which BABE should be creating", " blocks. Since BABE is probabilistic it is not trivial to figure out", " what the expected average block time should be based on the slot", " duration and the security parameter `c` (where `1 - c` represents", " the probability of a slot being empty)."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "Timestamp", HasStorage: true, Storage: StorageMetadata{Prefix: "Timestamp", Items: []StorageFunctionMetadataV5{{Name: "Now", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::Moment", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current time for the current block."}}, {Name: "DidUpdate", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Did the timestamp get updated in this block?"}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set", Args: []FunctionArgumentMetadata{{Name: "now", Type: "Compact"}}, Documentation: []Text{" Set the current time.", "", " This call should be invoked exactly once per block. It will panic at the finalization", " phase, if this call hasn't been invoked by that time.", "", " The timestamp should be greater than the previous one by the amount specified by", " `MinimumPeriod`.", "", " The dispatch origin for this call must be `Inherent`."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{{Name: "MinimumPeriod", Type: "T::Moment", Value: Bytes{0xdc, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum period between blocks. Beware that this is different to the *expected* period", " that the block production apparatus provides. Your chosen consensus system will generally", " work with this to determine a sensible block time. e.g. For Aura, it will be double this", " period on default settings."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "Authorship", HasStorage: true, Storage: StorageMetadata{Prefix: "Authorship", Items: []StorageFunctionMetadataV5{{Name: "Uncles", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Uncles"}}, {Name: "Author", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Author of current block."}}, {Name: "DidSetUncles", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Whether uncles were already set in this block."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set_uncles", Args: []FunctionArgumentMetadata{{Name: "new_uncles", Type: "Vec"}}, Documentation: []Text{" Provide a set of uncles."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "Indices", HasStorage: true, Storage: StorageMetadata{Prefix: "Indices", Items: []StorageFunctionMetadataV5{{Name: "NextEnumSet", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::AccountIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next free enumeration set."}}, {Name: "EnumSet", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountIndex", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The enumeration sets."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: true, Events: []EventMetadataV4{{Name: "NewAccountIndex", Args: []Type{"AccountId", "AccountIndex"}, Documentation: []Text{" A new account index was assigned.", "", " This event is not triggered when an existing index is reassigned", " to another `AccountId`."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "Balances", HasStorage: true, Storage: StorageMetadata{Prefix: "Balances", Items: []StorageFunctionMetadataV5{{Name: "TotalIssuance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::Balance", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total units issued in the system."}}, {Name: "Vesting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "VestingSchedule", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information regarding the vesting of a given account."}}, {Name: "FreeBalance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Balance", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The 'free' balance of a given account.", "", " This is the only balance that matters in terms of most operations on tokens. It", " alone is used to determine the balance when in the contract execution environment. When this", " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback", " is invoked, giving a chance to external modules to clean up data associated with", " the deleted account.", "", " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", " collapsed to zero if it ever becomes less than `ExistentialDeposit`."}}, {Name: "ReservedBalance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Balance", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of the balance of a given account that is externally reserved; this can still get", " slashed, but gets slashed last of all.", "", " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", " that are still 'owned' by the account holder, but which are suspendable.", "", " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", " is deleted: specifically, `ReservedBalance`.", "", " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)"}}, {Name: "Locks", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Vec>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any liquidity locks on some account balances."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "transfer", Args: []FunctionArgumentMetadata{{Name: "dest", Type: "::Source"}, {Name: "value", Type: "Compact"}}, Documentation: []Text{" Transfer some liquid free balance to another account.", "", " `transfer` will set the `FreeBalance` of the sender and receiver.", " It will decrease the total issuance of the system by the `TransferFee`.", " If the sender's account is below the existential deposit as a result", " of the transfer, the account will be reaped.", "", " The dispatch origin for this call must be `Signed` by the transactor.", "", " # ", " - Dependent on arguments but not critical, given proper implementations for", " input config See related functions below.", " - It contains a limited number of reads and writes internally and no complex computation.", "", " Related functions:", "", " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", " - Transferring balances to accounts that did not exist before will cause", " `T::OnNewAccount::on_new_account` to be called.", " - Removing enough funds from an account will trigger", " `T::DustRemoval::on_unbalanced` and `T::OnFreeBalanceZero::on_free_balance_zero`.", "", " # "}}, {Name: "set_balance", Args: []FunctionArgumentMetadata{{Name: "who", Type: "::Source"}, {Name: "new_free", Type: "Compact"}, {Name: "new_reserved", Type: "Compact"}}, Documentation: []Text{" Set the balances of a given account.", "", " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", " also decrease the total issuance of the system (`TotalIssuance`).", " If the new free or reserved balance is below the existential deposit,", " it will reset the account nonce (`system::AccountNonce`).", "", " The dispatch origin for this call is `root`.", "", " # ", " - Independent of the arguments.", " - Contains a limited number of reads and writes.", " # "}}, {Name: "force_transfer", Args: []FunctionArgumentMetadata{{Name: "source", Type: "::Source"}, {Name: "dest", Type: "::Source"}, {Name: "value", Type: "Compact"}}, Documentation: []Text{" Exactly as `transfer`, except the origin must be root and the source account may be", " specified."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "NewAccount", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A new account was created."}}, {Name: "ReapedAccount", Args: []Type{"AccountId"}, Documentation: []Text{" An account was reaped."}}, {Name: "Transfer", Args: []Type{"AccountId", "AccountId", "Balance", "Balance"}, Documentation: []Text{" Transfer succeeded (from, to, value, fees)."}}}, Constants: []ModuleConstantMetadataV6{{Name: "ExistentialDeposit", Type: "T::Balance", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount required to keep an account open."}}, {Name: "TransferFee", Type: "T::Balance", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to make a transfer."}}, {Name: "CreationFee", Type: "T::Balance", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to create an account."}}, {Name: "TransactionBaseFee", Type: "T::Balance", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the base."}}, {Name: "TransactionByteFee", Type: "T::Balance", Value: Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the per-byte portion."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "Staking", HasStorage: true, Storage: StorageMetadata{Prefix: "Staking", Items: []StorageFunctionMetadataV5{{Name: "ValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The ideal number of staking participants."}}, {Name: "MinimumValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x4, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum number of staking participants before emergency conditions are imposed."}}, {Name: "Invulnerables", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", " easy to initialize and the performance hit is minimal (we expect no more than four", " invulnerables) and restricted to testnets."}}, {Name: "Bonded", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all locked \"stash\" accounts to the controller account."}}, {Name: "Ledger", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "StakingLedger>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all (unlocked) \"controller\" accounts to the info regarding the staking."}}, {Name: "Payee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "RewardDestination", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Where the reward payment should be made. Keyed by stash."}}, {Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "ValidatorPrefs>", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The map from (wannabe) validator stash key to the preferences of that validator."}}, {Name: "Nominators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Vec", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The map from nominator stash key to the set of stash keys of all validators to nominate."}}, {Name: "Stakers", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Exposure>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0}, Documentation: []Text{" Nominators for a particular account that is in action right now. You can't iterate", " through validators here, but you can find them in the Session module.", "", " This is keyed by the stash account."}}, {Name: "CurrentElected", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The currently elected validator set keyed by stash account ID."}}, {Name: "CurrentEra", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "EraIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current era index."}}, {Name: "CurrentEraStart", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "MomentOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The start of the current era."}}, {Name: "CurrentEraStartSessionIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "SessionIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The session index at which the current era started."}}, {Name: "CurrentEraPointsEarned", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "EraPoints", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Rewards for the current era. Using indices of current elected set."}}, {Name: "SlotStake", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of balance actively at stake for each validator slot, currently.", "", " This is used to derive rewards and punishments."}}, {Name: "ForceEra", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Forcing", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the next session change will be a new era regardless of index."}}, {Name: "SlashRewardFraction", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Perbill", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The percentage of the slash that is distributed to reporters.", "", " The rest of the slashed value is handled by the `Slash`."}}, {Name: "BondedEras", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(EraIndex, SessionIndex)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from still-bonded eras to the first session index of that era."}}, {Name: "EraSlashJournal", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "EraIndex", Value: "Vec>>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All slashes that have occurred in a given era."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "bond", Args: []FunctionArgumentMetadata{{Name: "controller", Type: "::Source"}, {Name: "value", Type: "Compact>"}, {Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" Take the origin account as a stash and lock up `value` of its balance. `controller` will", " be the account that controls it.", "", " `value` must be more than the `minimum_balance` specified by `T::Currency`.", "", " The dispatch origin for this call must be _Signed_ by the stash account.", "", " # ", " - Independent of the arguments. Moderate complexity.", " - O(1).", " - Three extra DB entries.", "", " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned unless", " the `origin` falls below _existential deposit_ and gets removed as dust.", " # "}}, {Name: "bond_extra", Args: []FunctionArgumentMetadata{{Name: "max_additional", Type: "Compact>"}}, Documentation: []Text{" Add some extra amount that have appeared in the stash `free_balance` into the balance up", " for staking.", "", " Use this if there are additional funds in your stash account that you wish to bond.", " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount", " that can be added.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - O(1).", " - One DB entry.", " # "}}, {Name: "unbond", Args: []FunctionArgumentMetadata{{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Schedule a portion of the stash to be unlocked ready for transfer out after the bond", " period ends. If this leaves an amount actively bonded less than", " T::Currency::minimum_balance(), then it is increased to the full amount.", "", " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", " the funds out of management ready for transfer.", "", " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", " to be called first to remove some of the chunks (if possible).", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " See also [`Call::withdraw_unbonded`].", "", " # ", " - Independent of the arguments. Limited but potentially exploitable complexity.", " - Contains a limited number of reads.", " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)", " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.", " The only way to clean the aforementioned storage item is also user-controlled via `withdraw_unbonded`.", " - One DB entry.", " "}}, {Name: "withdraw_unbonded", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove any unlocked chunks from the `unlocking` queue from our management.", "", " This essentially frees up that balance to be used by the stash account to do", " whatever it wants.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " See also [`Call::unbond`].", "", " # ", " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.", " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is", " indirectly user-controlled. See [`unbond`] for more detail.", " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.", " - Writes are limited to the `origin` account key.", " # "}}, {Name: "validate", Args: []FunctionArgumentMetadata{{Name: "prefs", Type: "ValidatorPrefs>"}}, Documentation: []Text{" Declare the desire to validate for the origin controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " # "}}, {Name: "nominate", Args: []FunctionArgumentMetadata{{Name: "targets", Type: "Vec<::Source>"}}, Documentation: []Text{" Declare the desire to nominate `targets` for the origin controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - The transaction's complexity is proportional to the size of `targets`,", " which is capped at `MAX_NOMINATIONS`.", " - Both the reads and writes follow a similar pattern.", " # "}}, {Name: "chill", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Declare no desire to either validate or nominate.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains one read.", " - Writes are limited to the `origin` account key.", " # "}}, {Name: "set_payee", Args: []FunctionArgumentMetadata{{Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" (Re-)set the payment target for a controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " # "}}, {Name: "set_controller", Args: []FunctionArgumentMetadata{{Name: "controller", Type: "::Source"}}, Documentation: []Text{" (Re-)set the controller of a stash.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " # "}}, {Name: "set_validator_count", Args: []FunctionArgumentMetadata{{Name: "new", Type: "Compact"}}, Documentation: []Text{" The ideal number of validators."}}, {Name: "force_no_eras", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be no new eras indefinitely.", "", " # ", " - No arguments.", " # "}}, {Name: "force_new_era", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be a new era at the end of the next session. After this, it will be", " reset to normal (non-forced) behaviour.", "", " # ", " - No arguments.", " # "}}, {Name: "set_invulnerables", Args: []FunctionArgumentMetadata{{Name: "validators", Type: "Vec"}}, Documentation: []Text{" Set the validators who cannot be slashed (if any)."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Reward", Args: []Type{"Balance"}, Documentation: []Text{" All validators have been rewarded by the given balance."}}, {Name: "Slash", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" One validator (and its nominators) has been slashed by the given amount."}}, {Name: "OldSlashingReportDiscarded", Args: []Type{"SessionIndex"}, Documentation: []Text{" An old slashing report from a prior era was discarded because it could", " not be processed."}}}, Constants: []ModuleConstantMetadataV6{{Name: "SessionsPerEra", Type: "SessionIndex", Value: Bytes{0x6, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of sessions per era."}}, {Name: "BondingDuration", Type: "EraIndex", Value: Bytes{0xa0, 0x2, 0x0, 0x0}, Documentation: []Text{" Number of eras that staked funds must remain bonded for."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "Session", HasStorage: true, Storage: StorageMetadata{Prefix: "Session", Items: []StorageFunctionMetadataV5{{Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of validators."}}, {Name: "CurrentIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "SessionIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current index of the session."}}, {Name: "QueuedChanged", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the underlying economic identities or weighting behind the validators", " has changed in the queued validator set."}}, {Name: "QueuedKeys", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(T::ValidatorId, T::Keys)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."}}, {Name: "DisabledValidators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Indices of disabled validators.", "", " The set is cleared when `on_session_ending` returns a new set of identities."}}, {Name: "NextKeys", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true}, Key1: "Vec", Key2: "T::ValidatorId", Value: "T::Keys", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The next session keys for a validator.", "", " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", " the trie. Having all data in the same branch should prevent slowing down other queries."}}, {Name: "KeyOwner", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true}, Key1: "Vec", Key2: "(KeyTypeId, Vec)", Value: "T::ValidatorId", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The owner of a key. The second key is the `KeyTypeId` + the encoded key.", "", " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", " the trie. Having all data in the same branch should prevent slowing down other queries."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set_keys", Args: []FunctionArgumentMetadata{{Name: "keys", Type: "T::Keys"}, {Name: "proof", Type: "Vec"}}, Documentation: []Text{" Sets the session key(s) of the function caller to `key`.", " Allows an account to set its session key prior to becoming a validator.", " This doesn't take effect until the next session.", "", " The dispatch origin of this function must be signed.", "", " # ", " - O(log n) in number of accounts.", " - One extra DB entry.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "NewSession", Args: []Type{"SessionIndex"}, Documentation: []Text{" New session has happened. Note that the argument is the session index, not the block", " number as the type might suggest."}}}, Constants: []ModuleConstantMetadataV6{{Name: "DEDUP_KEY_PREFIX", Type: "&[u8]", Value: Bytes{0x34, 0x3a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6b, 0x65, 0x79, 0x73}, Documentation: []Text{" Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch", " of the trie."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "Democracy", HasStorage: true, Storage: StorageMetadata{Prefix: "Democracy", Items: []StorageFunctionMetadataV5{{Name: "PublicPropCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "PropIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of (public) proposals that have been made so far."}}, {Name: "PublicProps", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(PropIndex, T::Proposal, T::AccountId)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The public proposals. Unsorted."}}, {Name: "DepositOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "PropIndex", Value: "(BalanceOf, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Those who have locked a deposit."}}, {Name: "ReferendumCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next free referendum index, aka the number of referenda started so far."}}, {Name: "NextTally", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next referendum index that should be tallied."}}, {Name: "ReferendumInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReferendumIndex", Value: "(ReferendumInfo)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information concerning any given referendum."}}, {Name: "DispatchQueue", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::BlockNumber", Value: "Vec>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Queue of successful referenda to be dispatched."}}, {Name: "VotersFor", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReferendumIndex", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Get the voters for the current proposal."}}, {Name: "VoteOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "(ReferendumIndex, T::AccountId)", Value: "Vote", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Get the vote in a given referendum of a particular voter. The result is meaningful only", " if `voters_for` includes the voter when called with the referendum (you'll get the", " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can", " also check for simple existence with `VoteOf::exists` first."}}, {Name: "Proxy", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Who is able to vote for whom. Value is the fund-holding account, key is the", " vote-transaction-sending account."}}, {Name: "Delegations", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "(T::AccountId, Conviction)", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Get the account (and lock periods) to which another account is delegating vote."}}, {Name: "LastTabledWasExternal", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the last referendum tabled was submitted externally. False if it was a public", " proposal."}}, {Name: "NextExternal", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "(T::Proposal, VoteThreshold)", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The referendum to be tabled whenever it would be valid to table an external proposal.", " This happens when a referendum needs to be tabled and one of two conditions are met:", " - `LastTabledWasExternal` is `false`; or", " - `PublicProps` is empty."}}, {Name: "Blacklist", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "(T::BlockNumber, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A record of who vetoed what. Maps proposal hash to a possible existent block number", " (until when it may not be resubmitted) and who vetoed it."}}, {Name: "Cancellations", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "bool", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Record of all proposals that have been subject to emergency cancellation."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "propose", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box"}, {Name: "value", Type: "Compact>"}}, Documentation: []Text{" Propose a sensitive action to be taken.", "", " # ", " - O(1).", " - Two DB changes, one DB entry.", " # "}}, {Name: "second", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Compact"}}, Documentation: []Text{" Propose a sensitive action to be taken.", "", " # ", " - O(1).", " - One DB entry.", " # "}}, {Name: "vote", Args: []FunctionArgumentMetadata{{Name: "ref_index", Type: "Compact"}, {Name: "vote", Type: "Vote"}}, Documentation: []Text{" Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", " otherwise it is a vote to keep the status quo.", "", " # ", " - O(1).", " - One DB change, one DB entry.", " # "}}, {Name: "proxy_vote", Args: []FunctionArgumentMetadata{{Name: "ref_index", Type: "Compact"}, {Name: "vote", Type: "Vote"}}, Documentation: []Text{" Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact", " the proposal; otherwise it is a vote to keep the status quo.", "", " # ", " - O(1).", " - One DB change, one DB entry.", " # "}}, {Name: "emergency_cancel", Args: []FunctionArgumentMetadata{{Name: "ref_index", Type: "ReferendumIndex"}}, Documentation: []Text{" Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", " referendum."}}, {Name: "external_propose", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box"}}, Documentation: []Text{" Schedule a referendum to be tabled once it is legal to schedule an external", " referendum."}}, {Name: "external_propose_majority", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box"}}, Documentation: []Text{" Schedule a majority-carries referendum to be tabled next once it is legal to schedule", " an external referendum.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call."}}, {Name: "external_propose_default", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box"}}, Documentation: []Text{" Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", " schedule an external referendum.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call."}}, {Name: "fast_track", Args: []FunctionArgumentMetadata{{Name: "proposal_hash", Type: "T::Hash"}, {Name: "voting_period", Type: "T::BlockNumber"}, {Name: "delay", Type: "T::BlockNumber"}}, Documentation: []Text{" Schedule the currently externally-proposed majority-carries referendum to be tabled", " immediately. If there is no externally-proposed referendum currently, or if there is one", " but it is not a majority-carries referendum then it fails.", "", " - `proposal_hash`: The hash of the current external proposal.", " - `voting_period`: The period that is allowed for voting on this proposal.", " - `delay`: The number of block after voting has ended in approval and this should be", " enacted. Increased to `EmergencyVotingPeriod` if too low."}}, {Name: "veto_external", Args: []FunctionArgumentMetadata{{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Veto and blacklist the external proposal hash."}}, {Name: "cancel_referendum", Args: []FunctionArgumentMetadata{{Name: "ref_index", Type: "Compact"}}, Documentation: []Text{" Remove a referendum."}}, {Name: "cancel_queued", Args: []FunctionArgumentMetadata{{Name: "when", Type: "Compact"}, {Name: "which", Type: "Compact"}, {Name: "what", Type: "Compact"}}, Documentation: []Text{" Cancel a proposal queued for enactment."}}, {Name: "set_proxy", Args: []FunctionArgumentMetadata{{Name: "proxy", Type: "T::AccountId"}}, Documentation: []Text{" Specify a proxy. Called by the stash.", "", " # ", " - One extra DB entry.", " # "}}, {Name: "resign_proxy", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Clear the proxy. Called by the proxy.", "", " # ", " - One DB clear.", " # "}}, {Name: "remove_proxy", Args: []FunctionArgumentMetadata{{Name: "proxy", Type: "T::AccountId"}}, Documentation: []Text{" Clear the proxy. Called by the stash.", "", " # ", " - One DB clear.", " # "}}, {Name: "delegate", Args: []FunctionArgumentMetadata{{Name: "to", Type: "T::AccountId"}, {Name: "conviction", Type: "Conviction"}}, Documentation: []Text{" Delegate vote.", "", " # ", " - One extra DB entry.", " # "}}, {Name: "undelegate", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Undelegate vote.", "", " # ", " - O(1).", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Proposed", Args: []Type{"PropIndex", "Balance"}, Documentation: []Text(nil)}, {Name: "Tabled", Args: []Type{"PropIndex", "Balance", "Vec"}, Documentation: []Text(nil)}, {Name: "ExternalTabled", Args: []Type(nil), Documentation: []Text(nil)}, {Name: "Started", Args: []Type{"ReferendumIndex", "VoteThreshold"}, Documentation: []Text(nil)}, {Name: "Passed", Args: []Type{"ReferendumIndex"}, Documentation: []Text(nil)}, {Name: "NotPassed", Args: []Type{"ReferendumIndex"}, Documentation: []Text(nil)}, {Name: "Cancelled", Args: []Type{"ReferendumIndex"}, Documentation: []Text(nil)}, {Name: "Executed", Args: []Type{"ReferendumIndex", "bool"}, Documentation: []Text(nil)}, {Name: "Delegated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text(nil)}, {Name: "Undelegated", Args: []Type{"AccountId"}, Documentation: []Text(nil)}, {Name: "Vetoed", Args: []Type{"AccountId", "Hash", "BlockNumber"}, Documentation: []Text(nil)}}, Constants: []ModuleConstantMetadataV6{{Name: "EnactmentPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x2f, 0xd, 0x0}, Documentation: []Text{" The minimum period of locking and the period between a proposal being approved and enacted.", "", " It should generally be a little more than the unstake period to ensure that", " voting stakers have an opportunity to remove themselves from the system in the case where", " they are on the losing side of a vote."}}, {Name: "LaunchPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" How often (in blocks) new public referenda are launched."}}, {Name: "VotingPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" How often (in blocks) to check for new votes."}}, {Name: "MinimumDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount to be used as a deposit for a public referendum proposal."}}, {Name: "EmergencyVotingPeriod", Type: "T::BlockNumber", Value: Bytes{0x80, 0x51, 0x1, 0x0}, Documentation: []Text{" Minimum voting period allowed for an emergency referendum."}}, {Name: "CooloffPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" Period in blocks where an external proposal may not be re-submitted after being vetoed."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "Council", HasStorage: true, Storage: StorageMetadata{Prefix: "Instance1Collective", Items: []StorageFunctionMetadataV5{{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The hashes of the active proposals."}}, {Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: ">::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Actual proposal for a given hash, if it's current."}}, {Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "Votes", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes on a given proposal, if it is ongoing."}}, {Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proposals so far."}}, {Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current members of the collective. This is stored sorted (just by value)."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set_members", Args: []FunctionArgumentMetadata{{Name: "new_members", Type: "Vec"}}, Documentation: []Text{" Set the collective's membership manually to `new_members`. Be nice to the chain and", " provide it pre-sorted.", "", " Requires root origin."}}, {Name: "execute", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective."}}, {Name: "propose", Args: []FunctionArgumentMetadata{{Name: "threshold", Type: "Compact"}, {Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" # ", " - Bounded storage reads and writes.", " - Argument `threshold` has bearing on weight.", " # "}}, {Name: "vote", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "T::Hash"}, {Name: "index", Type: "Compact"}, {Name: "approve", Type: "bool"}}, Documentation: []Text{" # ", " - Bounded storage read and writes.", " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Proposed", Args: []Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`)."}}, {Name: "Voted", Args: []Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`)."}}, {Name: "Approved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was approved by the required threshold."}}, {Name: "Disapproved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was not approved by the required threshold."}}, {Name: "Executed", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A motion was executed; `bool` is true if returned without error."}}, {Name: "MemberExecuted", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A single member did some action; `bool` is true if returned without error."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "TechnicalCommittee", HasStorage: true, Storage: StorageMetadata{Prefix: "Instance2Collective", Items: []StorageFunctionMetadataV5{{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The hashes of the active proposals."}}, {Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: ">::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Actual proposal for a given hash, if it's current."}}, {Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "Votes", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes on a given proposal, if it is ongoing."}}, {Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proposals so far."}}, {Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current members of the collective. This is stored sorted (just by value)."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set_members", Args: []FunctionArgumentMetadata{{Name: "new_members", Type: "Vec"}}, Documentation: []Text{" Set the collective's membership manually to `new_members`. Be nice to the chain and", " provide it pre-sorted.", "", " Requires root origin."}}, {Name: "execute", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective."}}, {Name: "propose", Args: []FunctionArgumentMetadata{{Name: "threshold", Type: "Compact"}, {Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" # ", " - Bounded storage reads and writes.", " - Argument `threshold` has bearing on weight.", " # "}}, {Name: "vote", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "T::Hash"}, {Name: "index", Type: "Compact"}, {Name: "approve", Type: "bool"}}, Documentation: []Text{" # ", " - Bounded storage read and writes.", " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Proposed", Args: []Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`)."}}, {Name: "Voted", Args: []Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`)."}}, {Name: "Approved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was approved by the required threshold."}}, {Name: "Disapproved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was not approved by the required threshold."}}, {Name: "Executed", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A motion was executed; `bool` is true if returned without error."}}, {Name: "MemberExecuted", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A single member did some action; `bool` is true if returned without error."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "Elections", HasStorage: true, Storage: StorageMetadata{Prefix: "Council", Items: []StorageFunctionMetadataV5{{Name: "PresentationDuration", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" How long to give each top candidate to present themselves after the vote ends."}}, {Name: "TermDuration", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" How long each position is active for."}}, {Name: "DesiredSeats", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of accounts that should constitute the collective."}}, {Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(T::AccountId, T::BlockNumber)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current membership. When there's a vote going on, this should still be used for", " executive matters. The block number (second element in the tuple) is the block that", " their position is active until (calculated by the sum of the block number when the", " member was elected and their term duration)."}}, {Name: "VoteCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "VoteIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total number of vote rounds that have happened or are in progress."}}, {Name: "ApprovalsOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "(T::AccountId, SetIndex)", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}, {Name: "RegisterInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "(VoteIndex, u32)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The vote index and list slot that the candidate `who` was registered or `None` if they", " are not currently registered."}}, {Name: "VoterInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "VoterInfo>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Basic information about a voter."}}, {Name: "Voters", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "SetIndex", Value: "Vec>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The present voter list (chunked and capped at [`VOTER_SET_SIZE`])."}}, {Name: "NextVoterSet", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "SetIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" the next free set to store a voter in. This will keep growing."}}, {Name: "VoterCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "SetIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current number of Voters."}}, {Name: "Candidates", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The present candidate list."}}, {Name: "CandidateCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current number of active candidates"}}, {Name: "NextFinalize", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "(T::BlockNumber, u32, Vec)", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The accounts holding the seats that will become free on the next tally."}}, {Name: "Leaderboard", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(BalanceOf, T::AccountId)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Get the leaderboard if we're in the presentation phase. The first element is the weight", " of each entry; It may be the direct summed approval stakes, or a weighted version of it.", " Sorted from low to high."}}, {Name: "Proxy", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Who is able to vote for whom. Value is the fund-holding account, key is the", " vote-transaction-sending account."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set_approvals", Args: []FunctionArgumentMetadata{{Name: "votes", Type: "Vec"}, {Name: "index", Type: "Compact"}, {Name: "hint", Type: "SetIndex"}, {Name: "value", Type: "Compact>"}}, Documentation: []Text{" Set candidate approvals. Approval slots stay valid as long as candidates in those slots", " are registered.", "", " Locks `value` from the balance of `origin` indefinitely. Only [`retract_voter`] or", " [`reap_inactive_voter`] can unlock the balance.", "", " `hint` argument is interpreted differently based on:", " - if `origin` is setting approvals for the first time: The index will be checked for", " being a valid _hole_ in the voter list.", " - if the hint is correctly pointing to a hole, no fee is deducted from `origin`.", " - Otherwise, the call will succeed but the index is ignored and simply a push to the", " last chunk with free space happens. If the new push causes a new chunk to be", " created, a fee indicated by [`VotingFee`] is deducted.", " - if `origin` is already a voter: the index __must__ be valid and point to the correct", " position of the `origin` in the current voters list.", "", " Note that any trailing `false` votes in `votes` is ignored; In approval voting, not", " voting for a candidate and voting false, are equal.", "", " # ", " - O(1).", " - Two extra DB entries, one DB change.", " - Argument `votes` is limited in length to number of candidates.", " # "}}, {Name: "proxy_set_approvals", Args: []FunctionArgumentMetadata{{Name: "votes", Type: "Vec"}, {Name: "index", Type: "Compact"}, {Name: "hint", Type: "SetIndex"}, {Name: "value", Type: "Compact>"}}, Documentation: []Text{" Set candidate approvals from a proxy. Approval slots stay valid as long as candidates in", " those slots are registered.", "", " # ", " - Same as `set_approvals` with one additional storage read.", " # "}}, {Name: "reap_inactive_voter", Args: []FunctionArgumentMetadata{{Name: "reporter_index", Type: "Compact"}, {Name: "who", Type: "::Source"}, {Name: "who_index", Type: "Compact"}, {Name: "assumed_vote_index", Type: "Compact"}}, Documentation: []Text{" Remove a voter. For it not to be a bond-consuming no-op, all approved candidate indices", " must now be either unregistered or registered to a candidate that registered the slot", " after the voter gave their last approval set.", "", " Both indices must be provided as explained in [`voter_at`] function.", "", " May be called by anyone. Returns the voter deposit to `signed`.", "", " # ", " - O(1).", " - Two fewer DB entries, one DB change.", " # "}}, {Name: "retract_voter", Args: []FunctionArgumentMetadata{{Name: "index", Type: "Compact"}}, Documentation: []Text{" Remove a voter. All votes are cancelled and the voter deposit is returned.", "", " The index must be provided as explained in [`voter_at`] function.", "", " Also removes the lock on the balance of the voter. See [`do_set_approvals()`].", "", " # ", " - O(1).", " - Two fewer DB entries, one DB change.", " # "}}, {Name: "submit_candidacy", Args: []FunctionArgumentMetadata{{Name: "slot", Type: "Compact"}}, Documentation: []Text{" Submit oneself for candidacy.", "", " Account must have enough transferrable funds in it to pay the bond.", "", " NOTE: if `origin` has already assigned approvals via [`set_approvals`],", " it will NOT have any usable funds to pass candidacy bond and must first retract.", " Note that setting approvals will lock the entire balance of the voter until", " retraction or being reported.", "", " # ", " - Independent of input.", " - Three DB changes.", " # "}}, {Name: "present_winner", Args: []FunctionArgumentMetadata{{Name: "candidate", Type: "::Source"}, {Name: "total", Type: "Compact>"}, {Name: "index", Type: "Compact"}}, Documentation: []Text{" Claim that `candidate` is one of the top `carry_count + desired_seats` candidates. Only", " works iff the presentation period is active. `candidate` should have at least collected", " some non-zero `total` votes and `origin` must have enough funds to pay for a potential", " slash.", "", " # ", " - O(voters) compute.", " - One DB change.", " # "}}, {Name: "set_desired_seats", Args: []FunctionArgumentMetadata{{Name: "count", Type: "Compact"}}, Documentation: []Text{" Set the desired member count; if lower than the current count, then seats will not be up", " election when they expire. If more, then a new vote will be started if one is not", " already in progress."}}, {Name: "remove_member", Args: []FunctionArgumentMetadata{{Name: "who", Type: "::Source"}}, Documentation: []Text{" Remove a particular member from the set. This is effective immediately.", "", " Note: A tally should happen instantly (if not already in a presentation", " period) to fill the seat if removal means that the desired members are not met."}}, {Name: "set_presentation_duration", Args: []FunctionArgumentMetadata{{Name: "count", Type: "Compact"}}, Documentation: []Text{" Set the presentation duration. If there is currently a vote being presented for, will", " invoke `finalize_vote`."}}, {Name: "set_term_duration", Args: []FunctionArgumentMetadata{{Name: "count", Type: "Compact"}}, Documentation: []Text{" Set the presentation duration. If there is current a vote being presented for, will", " invoke `finalize_vote`."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "VoterReaped", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" reaped voter, reaper"}}, {Name: "BadReaperSlashed", Args: []Type{"AccountId"}, Documentation: []Text{" slashed reaper"}}, {Name: "TallyStarted", Args: []Type{"u32"}, Documentation: []Text{" A tally (for approval votes of seat(s)) has started."}}, {Name: "TallyFinalized", Args: []Type{"Vec", "Vec"}, Documentation: []Text{" A tally (for approval votes of seat(s)) has ended (with one or more new members)."}}}, Constants: []ModuleConstantMetadataV6{{Name: "CandidacyBond", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" How much should be locked up in order to submit one's candidacy. A reasonable", " default value is 9."}}, {Name: "VotingBond", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" How much should be locked up in order to be able to submit votes."}}, {Name: "VotingFee", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xf4, 0x20, 0xe6, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of fee paid upon each vote submission, unless if they submit a", " _hole_ index and replace it."}}, {Name: "PresentSlashPerVoter", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The punishment, per voter, if you provide an invalid presentation. A", " reasonable default value is 1."}}, {Name: "CarryCount", Type: "u32", Value: Bytes{0x6, 0x0, 0x0, 0x0}, Documentation: []Text{" How many runners-up should have their approvals persist until the next", " vote. A reasonable default value is 2."}}, {Name: "InactiveGracePeriod", Type: "VoteIndex", Value: Bytes{0x1, 0x0, 0x0, 0x0}, Documentation: []Text{" How many vote indices need to go by after a target voter's last vote before", " they can be reaped if their approvals are moot. A reasonable default value", " is 1."}}, {Name: "VotingPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0xe1, 0x0, 0x0}, Documentation: []Text{" How often (in blocks) to check for new votes. A reasonable default value", " is 1000."}}, {Name: "MinimumVotingLock", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum about that can be used as the locked value for voting."}}, {Name: "DecayRatio", Type: "u32", Value: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Decay factor of weight when being accumulated. It should typically be set to", " __at least__ `membership_size -1` to keep the collective secure.", " When set to `N`, it indicates `(1/N)^t` of staked is decayed at weight", " increment step `t`. 0 will result in no weight being added at all (normal", " approval voting). A reasonable default value is 24."}}, {Name: "VOTER_SET_SIZE", Type: "u32", Value: Bytes{0x40, 0x0, 0x0, 0x0}, Documentation: []Text{" The chunk size of the voter vector."}}, {Name: "APPROVAL_SET_SIZE", Type: "u32", Value: Bytes{0x8, 0x0, 0x0, 0x0}, Documentation: []Text{" The chunk size of the approval vector."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "TechnicalMembership", HasStorage: true, Storage: StorageMetadata{Prefix: "Instance1Membership", Items: []StorageFunctionMetadataV5{{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current membership, stored as an ordered Vec."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "add_member", Args: []FunctionArgumentMetadata{{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Add a member `who` to the set.", "", " May only be called from `AddOrigin` or root."}}, {Name: "remove_member", Args: []FunctionArgumentMetadata{{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Remove a member `who` from the set.", "", " May only be called from `RemoveOrigin` or root."}}, {Name: "swap_member", Args: []FunctionArgumentMetadata{{Name: "remove", Type: "T::AccountId"}, {Name: "add", Type: "T::AccountId"}}, Documentation: []Text{" Swap out one member `remove` for another `add`.", "", " May only be called from `SwapOrigin` or root."}}, {Name: "reset_members", Args: []FunctionArgumentMetadata{{Name: "members", Type: "Vec"}}, Documentation: []Text{" Change the membership to a new set, disregarding the existing membership. Be nice and", " pass `members` pre-sorted.", "", " May only be called from `ResetOrigin` or root."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "MemberAdded", Args: []Type(nil), Documentation: []Text{" The given member was added; see the transaction for who."}}, {Name: "MemberRemoved", Args: []Type(nil), Documentation: []Text{" The given member was removed; see the transaction for who."}}, {Name: "MembersSwapped", Args: []Type(nil), Documentation: []Text{" Two members were swapped; see the transaction for who."}}, {Name: "MembersReset", Args: []Type(nil), Documentation: []Text{" The membership was reset; see the transaction for who the new set is."}}, {Name: "Dummy", Args: []Type{"rstd::marker::PhantomData<(AccountId, Event)>"}, Documentation: []Text{" Phantom member, never used."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "FinalityTracker", HasStorage: false, Storage: StorageMetadata{Prefix: "", Items: []StorageFunctionMetadataV5(nil)}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "final_hint", Args: []FunctionArgumentMetadata{{Name: "hint", Type: "Compact"}}, Documentation: []Text{" Hint that the author of this block thinks the best finalized", " block is the given number."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{{Name: "WindowSize", Type: "T::BlockNumber", Value: Bytes{0x65, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of recent samples to keep from this chain. Default is 101."}}, {Name: "ReportLatency", Type: "T::BlockNumber", Value: Bytes{0xe8, 0x3, 0x0, 0x0}, Documentation: []Text{" The delay after which point things become suspicious. Default is 1000."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "Grandpa", HasStorage: true, Storage: StorageMetadata{Prefix: "GrandpaFinality", Items: []StorageFunctionMetadataV5{{Name: "Authorities", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(AuthorityId, AuthorityWeight)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current authority set."}}, {Name: "State", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "StoredState", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" State of the current authority set."}}, {Name: "PendingChange", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "StoredPendingChange", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Pending change: (signaled at, scheduled change)."}}, {Name: "NextForced", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" next block number where we can force a change."}}, {Name: "Stalled", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "(T::BlockNumber, T::BlockNumber)", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" `true` if we are currently stalled."}}, {Name: "CurrentSetId", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "SetId", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of changes (both in terms of keys and underlying economic responsibilities)", " in the \"set\" of Grandpa validators from genesis."}}, {Name: "SetIdSession", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "SetId", Value: "SessionIndex", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from grandpa set ID to the index of the *most recent* session for which its members were responsible."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "report_misbehavior", Args: []FunctionArgumentMetadata{{Name: "_report", Type: "Vec"}}, Documentation: []Text{" Report some misbehavior."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "NewAuthorities", Args: []Type{"Vec<(AuthorityId, AuthorityWeight)>"}, Documentation: []Text{" New authority set has been applied."}}, {Name: "Paused", Args: []Type(nil), Documentation: []Text{" Current authority set has been paused."}}, {Name: "Resumed", Args: []Type(nil), Documentation: []Text{" Current authority set has been resumed."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "Treasury", HasStorage: true, Storage: StorageMetadata{Prefix: "Treasury", Items: []StorageFunctionMetadataV5{{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "ProposalIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of proposals that have been made."}}, {Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ProposalIndex", Value: "Proposal>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposals that have been made."}}, {Name: "Approvals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposal indices that have been approved but not yet awarded."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "propose_spend", Args: []FunctionArgumentMetadata{{Name: "value", Type: "Compact>"}, {Name: "beneficiary", Type: "::Source"}}, Documentation: []Text{" Put forward a suggestion for spending. A deposit proportional to the value", " is reserved and slashed if the proposal is rejected. It is returned once the", " proposal is awarded.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change, one extra DB entry.", " # "}}, {Name: "reject_proposal", Args: []FunctionArgumentMetadata{{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Reject a proposed spend. The original deposit will be slashed.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB clear.", " # "}}, {Name: "approve_proposal", Args: []FunctionArgumentMetadata{{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", " and the original deposit will be returned.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Proposed", Args: []Type{"ProposalIndex"}, Documentation: []Text{" New proposal."}}, {Name: "Spending", Args: []Type{"Balance"}, Documentation: []Text{" We have ended a spend period and will now allocate funds."}}, {Name: "Awarded", Args: []Type{"ProposalIndex", "Balance", "AccountId"}, Documentation: []Text{" Some funds have been allocated."}}, {Name: "Burnt", Args: []Type{"Balance"}, Documentation: []Text{" Some of our funds have been burnt."}}, {Name: "Rollover", Args: []Type{"Balance"}, Documentation: []Text{" Spending has finished; this is the amount that rolls over until next spend."}}}, Constants: []ModuleConstantMetadataV6{{Name: "ProposalBond", Type: "Permill", Value: Bytes{0x50, 0xc3, 0x0, 0x0}, Documentation: []Text{" Fraction of a proposal's value that should be bonded in order to place the proposal.", " An accepted proposal gets these back. A rejected proposal does not."}}, {Name: "ProposalBondMinimum", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum amount of funds that should be placed in a deposit for making a proposal."}}, {Name: "SpendPeriod", Type: "T::BlockNumber", Value: Bytes{0x80, 0x70, 0x0, 0x0}, Documentation: []Text{" Period between successive spends."}}, {Name: "Burn", Type: "Permill", Value: Bytes{0x20, 0xa1, 0x7, 0x0}, Documentation: []Text{" Percentage of spare funds (if any) that are burnt per spend period."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "Contracts", HasStorage: true, Storage: StorageMetadata{Prefix: "Contract", Items: []StorageFunctionMetadataV5{{Name: "GasSpent", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Gas", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Gas spent so far in this block."}}, {Name: "CurrentSchedule", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Schedule", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x87, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0}, Documentation: []Text{" Current cost schedule for contracts."}}, {Name: "PristineCode", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "CodeHash", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from an original code hash to the original code, untouched by instrumentation."}}, {Name: "CodeStorage", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "CodeHash", Value: "wasm::PrefabWasmModule", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping between an original code hash and instrumented wasm code, ready for execution."}}, {Name: "AccountCounter", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The subtrie counter."}}, {Name: "ContractInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "ContractInfo", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The code associated with a given account."}}, {Name: "GasPrice", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The price of one unit of gas."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "update_schedule", Args: []FunctionArgumentMetadata{{Name: "schedule", Type: "Schedule"}}, Documentation: []Text{" Updates the schedule for metering contracts.", "", " The schedule must have a greater version than the stored schedule."}}, {Name: "put_code", Args: []FunctionArgumentMetadata{{Name: "gas_limit", Type: "Compact"}, {Name: "code", Type: "Vec"}}, Documentation: []Text{" Stores the given binary Wasm code into the chain's storage and returns its `codehash`.", " You can instantiate contracts only with stored code."}}, {Name: "call", Args: []FunctionArgumentMetadata{{Name: "dest", Type: "::Source"}, {Name: "value", Type: "Compact>"}, {Name: "gas_limit", Type: "Compact"}, {Name: "data", Type: "Vec"}}, Documentation: []Text{" Makes a call to an account, optionally transferring some balance.", "", " * If the account is a smart-contract account, the associated code will be", " executed and any value will be transferred.", " * If the account is a regular account, any value will be transferred.", " * If no account exists and the call value is not less than `existential_deposit`,", " a regular account will be created and any value will be transferred."}}, {Name: "instantiate", Args: []FunctionArgumentMetadata{{Name: "endowment", Type: "Compact>"}, {Name: "gas_limit", Type: "Compact"}, {Name: "code_hash", Type: "CodeHash"}, {Name: "data", Type: "Vec"}}, Documentation: []Text{" Instantiates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", "", " Instantiation is executed as follows:", "", " - The destination address is computed based on the sender and hash of the code.", " - The smart-contract account is created at the computed address.", " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned", " after the execution is saved as the `code` of the account. That code will be invoked", " upon any call received by this account.", " - The contract is initialized."}}, {Name: "claim_surcharge", Args: []FunctionArgumentMetadata{{Name: "dest", Type: "T::AccountId"}, {Name: "aux_sender", Type: "Option"}}, Documentation: []Text{" Allows block producers to claim a small reward for evicting a contract. If a block producer", " fails to do so, a regular users will be allowed to claim the reward.", "", " If contract is not evicted as a result of this call, no actions are taken and", " the sender is not eligible for the reward."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Transfer", Args: []Type{"AccountId", "AccountId", "Balance"}, Documentation: []Text{" Transfer happened `from` to `to` with given `value` as part of a `call` or `instantiate`."}}, {Name: "Instantiated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" Contract deployed by address at the specified address."}}, {Name: "CodeStored", Args: []Type{"Hash"}, Documentation: []Text{" Code with the specified hash has been stored."}}, {Name: "ScheduleUpdated", Args: []Type{"u32"}, Documentation: []Text{" Triggered when the current schedule is updated."}}, {Name: "Dispatched", Args: []Type{"AccountId", "bool"}, Documentation: []Text{" A call was dispatched from the given account. The bool signals whether it was", " successful execution or not."}}, {Name: "Contract", Args: []Type{"AccountId", "Vec"}, Documentation: []Text{" An event from contract of account."}}}, Constants: []ModuleConstantMetadataV6{{Name: "SignedClaimHandicap", Type: "T::BlockNumber", Value: Bytes{0x2, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of block delay an extrinsic claim surcharge has.", "", " When claim surcharge is called by an extrinsic the rent is checked", " for current_block - delay"}}, {Name: "TombstoneDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount required to generate a tombstone."}}, {Name: "StorageSizeOffset", Type: "u32", Value: Bytes{0x8, 0x0, 0x0, 0x0}, Documentation: []Text{" Size of a contract at the time of instantiaion. This is a simple way to ensure that", " empty contracts eventually gets deleted."}}, {Name: "RentByteFee", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Price of a byte of storage per one block interval. Should be greater than 0."}}, {Name: "RentDepositOffset", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0x8a, 0x5d, 0x78, 0x45, 0x63, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of funds a contract should deposit in order to offset", " the cost of one byte.", "", " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,", " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.", " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,", " then it would pay 500 BU/day."}}, {Name: "SurchargeReward", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xa1, 0xa7, 0x6b, 0x4a, 0x35, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Reward that is received by the party whose touch has led", " to removal of a contract."}}, {Name: "TransferFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to make a transfer."}}, {Name: "CreationFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to create an account."}}, {Name: "TransactionBaseFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the base."}}, {Name: "TransactionByteFee", Type: "BalanceOf", Value: Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the per-byte portion."}}, {Name: "ContractFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to instantiate a contract instance. A reasonable default value", " is 21."}}, {Name: "CallBaseFee", Type: "Gas", Value: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base fee charged for calling into a contract. A reasonable default", " value is 135."}}, {Name: "InstantiateBaseFee", Type: "Gas", Value: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base fee charged for instantiating a contract. A reasonable default value", " is 175."}}, {Name: "MaxDepth", Type: "u32", Value: Bytes{0x0, 0x4, 0x0, 0x0}, Documentation: []Text{" The maximum nesting level of a call/instantiate stack. A reasonable default", " value is 100."}}, {Name: "MaxValueSize", Type: "u32", Value: Bytes{0x0, 0x40, 0x0, 0x0}, Documentation: []Text{" The maximum size of a storage value in bytes. A reasonable default is 16 KiB."}}, {Name: "BlockGasLimit", Type: "Gas", Value: Bytes{0x80, 0x96, 0x98, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum amount of gas that could be expended per block. A reasonable", " default value is 10_000_000."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "Sudo", HasStorage: true, Storage: StorageMetadata{Prefix: "Sudo", Items: []StorageFunctionMetadataV5{{Name: "Key", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The `AccountId` of the sudo key."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "sudo", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box"}}, Documentation: []Text{" Authenticates the sudo key and dispatches a function call with `Root` origin.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB write (event).", " - Unknown weight of derivative `proposal` execution.", " # "}}, {Name: "set_key", Args: []FunctionArgumentMetadata{{Name: "new", Type: "::Source"}}, Documentation: []Text{" Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change.", " # "}}, {Name: "sudo_as", Args: []FunctionArgumentMetadata{{Name: "who", Type: "::Source"}, {Name: "proposal", Type: "Box"}}, Documentation: []Text{" Authenticates the sudo key and dispatches a function call with `Signed` origin from", " a given account.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB write (event).", " - Unknown weight of derivative `proposal` execution.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Sudid", Args: []Type{"bool"}, Documentation: []Text{" A sudo just took place."}}, {Name: "KeyChanged", Args: []Type{"AccountId"}, Documentation: []Text{" The sudoer just switched identity; the old key is supplied."}}, {Name: "SudoAsDone", Args: []Type{"bool"}, Documentation: []Text{" A sudo just took place."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "ImOnline", HasStorage: true, Storage: StorageMetadata{Prefix: "ImOnline", Items: []StorageFunctionMetadataV5{{Name: "GossipAt", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The block number when we should gossip."}}, {Name: "Keys", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of keys that may issue a heartbeat."}}, {Name: "ReceivedHeartbeats", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "SessionIndex", Key2: "AuthIndex", Value: "Vec", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" For each session index we keep a mapping of `AuthorityId`", " to `offchain::OpaqueNetworkState`."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "heartbeat", Args: []FunctionArgumentMetadata{{Name: "heartbeat", Type: "Heartbeat"}, {Name: "signature", Type: "::Signature"}}, Documentation: []Text(nil)}}, HasEvents: true, Events: []EventMetadataV4{{Name: "HeartbeatReceived", Args: []Type{"AuthorityId"}, Documentation: []Text{" A new heartbeat was received from `AuthorityId`"}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "AuthorityDiscovery", HasStorage: false, Storage: StorageMetadata{Prefix: "", Items: []StorageFunctionMetadataV5(nil)}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "Offences", HasStorage: true, Storage: StorageMetadata{Prefix: "Offences", Items: []StorageFunctionMetadataV5{{Name: "Reports", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReportIdOf", Value: "OffenceDetails", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The primary structure that holds all offence records keyed by report identifiers."}}, {Name: "ConcurrentReportsIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "Kind", Key2: "OpaqueTimeSlot", Value: "Vec>", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A vector of reports of the same kind that happened at the same time slot."}}, {Name: "ReportsByKindIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "Kind", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Enumerates all reports of a kind along with the time they happened.", "", " All reports are sorted by the time of offence.", "", " Note that the actual type of this mapping is `Vec`, this is because values of", " different types are not supported at the moment so we are doing the manual serialization."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: true, Events: []EventMetadataV4{{Name: "Offence", Args: []Type{"Kind", "OpaqueTimeSlot"}, Documentation: []Text{" There is an offence reported of the given `kind` happened at the `session_index` and", " (kind-specific) time slot. This event is not deposited for duplicate slashes."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "RandomnessCollectiveFlip", HasStorage: true, Storage: StorageMetadata{Prefix: "RandomnessCollectiveFlip", Items: []StorageFunctionMetadataV5{{Name: "RandomMaterial", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Series of block headers from the last 81 blocks that acts as random seed material. This", " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", " the oldest hash."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}}}} //nolint:lll,dupl diff --git a/types/metadataV9_examplary.go b/types/metadataV9_examplary.go deleted file mode 100644 index dfdb61f0b..000000000 --- a/types/metadataV9_examplary.go +++ /dev/null @@ -1,20 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -// ExamplaryMetadataV9 is example metadata v9 -var ExamplaryMetadataV9 = &Metadata{MagicNumber: 0x6174656d, Version: 0x9, AsMetadataV4: MetadataV4{Modules: []ModuleMetadataV4(nil)}, AsMetadataV7: MetadataV7{Modules: []ModuleMetadataV7(nil)}, AsMetadataV8: MetadataV8{Modules: []ModuleMetadataV8(nil)}, AsMetadataV9: MetadataV9{Modules: []ModuleMetadataV8{{Name: "System", HasStorage: true, Storage: StorageMetadata{Prefix: "System", Items: []StorageFunctionMetadataV5{{Name: "AccountNonce", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Index", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Extrinsics nonce for accounts."}}, {Name: "ExtrinsicCount", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total extrinsics count for the current block."}}, {Name: "AllExtrinsicsWeight", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Weight", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total weight for all extrinsics put together, for the current block."}}, {Name: "AllExtrinsicsLen", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Total length (in bytes) for all extrinsics put together, for the current block."}}, {Name: "BlockHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::BlockNumber", Value: "T::Hash", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Map of block numbers to block hashes."}}, {Name: "ExtrinsicData", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "u32", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Extrinsics data for the current block (maps an extrinsic's index to its data)."}}, {Name: "Number", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current block number being processed. Set by `execute_block`."}}, {Name: "ParentHash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Hash of the previous block."}}, {Name: "ExtrinsicsRoot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::Hash", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Extrinsics root of the current block, also part of the block header."}}, {Name: "Digest", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "DigestOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Digest of the current block, also part of the block header."}}, {Name: "Events", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Events deposited for the current block."}}, {Name: "EventCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "EventIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of events in the `Events` list."}}, {Name: "EventTopics", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "()", Key2: "T::Hash", Value: "Vec<(T::BlockNumber, EventIndex)>", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Mapping between a topic (represented by T::Hash) and a vector of indexes", " of events in the `>` list.", "", " The first key serves no purpose. This field is declared as double_map just", " for convenience of using `remove_prefix`.", "", " All topic vectors have deterministic storage locations depending on the topic. This", " allows light-clients to leverage the changes trie storage tracking mechanism and", " in case of changes fetch the list of events of interest.", "", " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", " the `EventIndex` then in case if the topic has the same contents on the next block", " no notification will be triggered thus the event might be lost."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "fill_block", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" A big dispatch that will disallow any other transaction to be included."}}, {Name: "remark", Args: []FunctionArgumentMetadata{{Name: "_remark", Type: "Vec"}}, Documentation: []Text{" Make some on-chain remark."}}, {Name: "set_heap_pages", Args: []FunctionArgumentMetadata{{Name: "pages", Type: "u64"}}, Documentation: []Text{" Set the number of pages in the WebAssembly environment's heap."}}, {Name: "set_code", Args: []FunctionArgumentMetadata{{Name: "new", Type: "Vec"}}, Documentation: []Text{" Set the new code."}}, {Name: "set_storage", Args: []FunctionArgumentMetadata{{Name: "items", Type: "Vec"}}, Documentation: []Text{" Set some items of storage."}}, {Name: "kill_storage", Args: []FunctionArgumentMetadata{{Name: "keys", Type: "Vec"}}, Documentation: []Text{" Kill some items from storage."}}, {Name: "kill_prefix", Args: []FunctionArgumentMetadata{{Name: "prefix", Type: "Key"}}, Documentation: []Text{" Kill all storage items with a key that starts with the given prefix."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "ExtrinsicSuccess", Args: []Type{"DispatchInfo"}, Documentation: []Text{" An extrinsic completed successfully."}}, {Name: "ExtrinsicFailed", Args: []Type{"DispatchError", "DispatchInfo"}, Documentation: []Text{" An extrinsic failed."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "Utility", HasStorage: false, Storage: StorageMetadata{Prefix: "", Items: []StorageFunctionMetadataV5(nil)}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "batch", Args: []FunctionArgumentMetadata{{Name: "calls", Type: "Vec<::Call>"}}, Documentation: []Text{" Send a batch of dispatch calls (only root)."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "BatchExecuted", Args: []Type{"Vec>"}, Documentation: []Text(nil)}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "Babe", HasStorage: true, Storage: StorageMetadata{Prefix: "Babe", Items: []StorageFunctionMetadataV5{{Name: "EpochIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current epoch index."}}, {Name: "Authorities", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(AuthorityId, BabeAuthorityWeight)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Current epoch authorities."}}, {Name: "GenesisSlot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The slot at which the first epoch actually started. This is 0", " until the first block of the chain."}}, {Name: "CurrentSlot", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current slot number."}}, {Name: "Randomness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "[u8; 32]", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The epoch randomness for the *current* epoch.", "", " # Security", "", " This MUST NOT be used for gambling, as it can be influenced by a", " malicious validator in the short term. It MAY be used in many", " cryptographic protocols, however, so long as one remembers that this", " (like everything else on-chain) it is public. For example, it can be", " used where a number is needed that cannot have been chosen by an", " adversary, for purposes such as public-coin zero-knowledge proofs."}}, {Name: "NextRandomness", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "[u8; 32]", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Next epoch randomness."}}, {Name: "SegmentIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Randomness under construction.", "", " We make a tradeoff between storage accesses and list length.", " We store the under-construction randomness in segments of up to", " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", "", " Once a segment reaches this length, we begin the next one.", " We reset all segments and return to `0` at the beginning of every", " epoch."}}, {Name: "UnderConstruction", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "u32", Value: "Vec<[u8; 32]>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text(nil)}, {Name: "Initialized", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "MaybeVrf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Temporary value (cleared at block finalization) which is `Some`", " if per-block initialization has already been called for current block."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{{Name: "EpochDuration", Type: "u64", Value: Bytes{0xc8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of **slots** that an epoch takes. We couple sessions to", " epochs, i.e. we start a new session once the new epoch begins."}}, {Name: "ExpectedBlockTime", Type: "T::Moment", Value: Bytes{0xb8, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The expected average block time at which BABE should be creating", " blocks. Since BABE is probabilistic it is not trivial to figure out", " what the expected average block time should be based on the slot", " duration and the security parameter `c` (where `1 - c` represents", " the probability of a slot being empty)."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "Timestamp", HasStorage: true, Storage: StorageMetadata{Prefix: "Timestamp", Items: []StorageFunctionMetadataV5{{Name: "Now", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::Moment", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current time for the current block."}}, {Name: "DidUpdate", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Did the timestamp get updated in this block?"}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set", Args: []FunctionArgumentMetadata{{Name: "now", Type: "Compact"}}, Documentation: []Text{" Set the current time.", "", " This call should be invoked exactly once per block. It will panic at the finalization", " phase, if this call hasn't been invoked by that time.", "", " The timestamp should be greater than the previous one by the amount specified by", " `MinimumPeriod`.", "", " The dispatch origin for this call must be `Inherent`."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{{Name: "MinimumPeriod", Type: "T::Moment", Value: Bytes{0xdc, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum period between blocks. Beware that this is different to the *expected* period", " that the block production apparatus provides. Your chosen consensus system will generally", " work with this to determine a sensible block time. e.g. For Aura, it will be double this", " period on default settings."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "Authorship", HasStorage: true, Storage: StorageMetadata{Prefix: "Authorship", Items: []StorageFunctionMetadataV5{{Name: "Uncles", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Uncles"}}, {Name: "Author", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Author of current block."}}, {Name: "DidSetUncles", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Whether uncles were already set in this block."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set_uncles", Args: []FunctionArgumentMetadata{{Name: "new_uncles", Type: "Vec"}}, Documentation: []Text{" Provide a set of uncles."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "Indices", HasStorage: true, Storage: StorageMetadata{Prefix: "Indices", Items: []StorageFunctionMetadataV5{{Name: "NextEnumSet", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::AccountIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next free enumeration set."}}, {Name: "EnumSet", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountIndex", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The enumeration sets."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: true, Events: []EventMetadataV4{{Name: "NewAccountIndex", Args: []Type{"AccountId", "AccountIndex"}, Documentation: []Text{" A new account index was assigned.", "", " This event is not triggered when an existing index is reassigned", " to another `AccountId`."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "Balances", HasStorage: true, Storage: StorageMetadata{Prefix: "Balances", Items: []StorageFunctionMetadataV5{{Name: "TotalIssuance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::Balance", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total units issued in the system."}}, {Name: "Vesting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "VestingSchedule", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information regarding the vesting of a given account."}}, {Name: "FreeBalance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Balance", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The 'free' balance of a given account.", "", " This is the only balance that matters in terms of most operations on tokens. It", " alone is used to determine the balance when in the contract execution environment. When this", " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback", " is invoked, giving a chance to external modules to clean up data associated with", " the deleted account.", "", " `frame_system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", " collapsed to zero if it ever becomes less than `ExistentialDeposit`."}}, {Name: "ReservedBalance", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::Balance", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of the balance of a given account that is externally reserved; this can still get", " slashed, but gets slashed last of all.", "", " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", " that are still 'owned' by the account holder, but which are suspendable.", "", " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", " is deleted: specifically, `ReservedBalance`.", "", " `frame_system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)"}}, {Name: "Locks", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Vec>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any liquidity locks on some account balances."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "transfer", Args: []FunctionArgumentMetadata{{Name: "dest", Type: "::Source"}, {Name: "value", Type: "Compact"}}, Documentation: []Text{" Transfer some liquid free balance to another account.", "", " `transfer` will set the `FreeBalance` of the sender and receiver.", " It will decrease the total issuance of the system by the `TransferFee`.", " If the sender's account is below the existential deposit as a result", " of the transfer, the account will be reaped.", "", " The dispatch origin for this call must be `Signed` by the transactor.", "", " # ", " - Dependent on arguments but not critical, given proper implementations for", " input config See related functions below.", " - It contains a limited number of reads and writes internally and no complex computation.", "", " Related functions:", "", " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", " - Transferring balances to accounts that did not exist before will cause", " `T::OnNewAccount::on_new_account` to be called.", " - Removing enough funds from an account will trigger", " `T::DustRemoval::on_unbalanced` and `T::OnFreeBalanceZero::on_free_balance_zero`.", " - `transfer_keep_alive` works the same way as `transfer`, but has an additional", " check that the transfer will not kill the origin account.", "", " # "}}, {Name: "set_balance", Args: []FunctionArgumentMetadata{{Name: "who", Type: "::Source"}, {Name: "new_free", Type: "Compact"}, {Name: "new_reserved", Type: "Compact"}}, Documentation: []Text{" Set the balances of a given account.", "", " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", " also decrease the total issuance of the system (`TotalIssuance`).", " If the new free or reserved balance is below the existential deposit,", " it will reset the account nonce (`frame_system::AccountNonce`).", "", " The dispatch origin for this call is `root`.", "", " # ", " - Independent of the arguments.", " - Contains a limited number of reads and writes.", " # "}}, {Name: "force_transfer", Args: []FunctionArgumentMetadata{{Name: "source", Type: "::Source"}, {Name: "dest", Type: "::Source"}, {Name: "value", Type: "Compact"}}, Documentation: []Text{" Exactly as `transfer`, except the origin must be root and the source account may be", " specified."}}, {Name: "transfer_keep_alive", Args: []FunctionArgumentMetadata{{Name: "dest", Type: "::Source"}, {Name: "value", Type: "Compact"}}, Documentation: []Text{" Same as the [`transfer`] call, but with a check that the transfer will not kill the", " origin account.", "", " 99% of the time you want [`transfer`] instead.", "", " [`transfer`]: struct.Module.html#method.transfer"}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "NewAccount", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A new account was created."}}, {Name: "ReapedAccount", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" An account was reaped."}}, {Name: "Transfer", Args: []Type{"AccountId", "AccountId", "Balance", "Balance"}, Documentation: []Text{" Transfer succeeded (from, to, value, fees)."}}, {Name: "BalanceSet", Args: []Type{"AccountId", "Balance", "Balance"}, Documentation: []Text{" A balance was set by root (who, free, reserved)."}}, {Name: "Deposit", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" Some amount was deposited (e.g. for transaction fees)."}}}, Constants: []ModuleConstantMetadataV6{{Name: "ExistentialDeposit", Type: "T::Balance", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount required to keep an account open."}}, {Name: "TransferFee", Type: "T::Balance", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to make a transfer."}}, {Name: "CreationFee", Type: "T::Balance", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to create an account."}}}, Errors: []ErrorMetadataV8{{Name: "VestingBalance", Documentation: []Text{" Vesting balance too high to send value"}}, {Name: "LiquidityRestrictions", Documentation: []Text{" Account liquidity restrictions prevent withdrawal"}}, {Name: "Overflow", Documentation: []Text{" Got an overflow after adding"}}, {Name: "InsufficientBalance", Documentation: []Text{" Balance too low to send value"}}, {Name: "ExistentialDeposit", Documentation: []Text{" Value too low to create account due to existential deposit"}}, {Name: "KeepAlive", Documentation: []Text{" Transfer/payment would kill account"}}, {Name: "ExistingVestingSchedule", Documentation: []Text{" A vesting schedule already exists for this account"}}, {Name: "DeadAccount", Documentation: []Text{" Beneficiary account must pre-exist"}}}}, {Name: "TransactionPayment", HasStorage: true, Storage: StorageMetadata{Prefix: "Balances", Items: []StorageFunctionMetadataV5{{Name: "NextFeeMultiplier", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Multiplier", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}}}, HasCalls: false, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{{Name: "TransactionBaseFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the base."}}, {Name: "TransactionByteFee", Type: "BalanceOf", Value: Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the per-byte portion."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "Staking", HasStorage: true, Storage: StorageMetadata{Prefix: "Staking", Items: []StorageFunctionMetadataV5{{Name: "ValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The ideal number of staking participants."}}, {Name: "MinimumValidatorCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x4, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum number of staking participants before emergency conditions are imposed."}}, {Name: "Invulnerables", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", " easy to initialize and the performance hit is minimal (we expect no more than four", " invulnerables) and restricted to testnets."}}, {Name: "Bonded", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all locked \"stash\" accounts to the controller account."}}, {Name: "Ledger", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "StakingLedger>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map from all (unlocked) \"controller\" accounts to the info regarding the staking."}}, {Name: "Payee", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "RewardDestination", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Where the reward payment should be made. Keyed by stash."}}, {Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "ValidatorPrefs", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The map from (wannabe) validator stash key to the preferences of that validator."}}, {Name: "Nominators", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Nominations", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The map from nominator stash key to the set of stash keys of all validators to nominate.", "", " NOTE: is private so that we can ensure upgraded before all typical accesses.", " Direct storage APIs can still bypass this protection."}}, {Name: "Stakers", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Exposure>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0}, Documentation: []Text{" Nominators for a particular account that is in action right now. You can't iterate", " through validators here, but you can find them in the Session module.", "", " This is keyed by the stash account."}}, {Name: "CurrentElected", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The currently elected validator set keyed by stash account ID."}}, {Name: "CurrentEra", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "EraIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The current era index."}}, {Name: "CurrentEraStart", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "MomentOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The start of the current era."}}, {Name: "CurrentEraStartSessionIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "SessionIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The session index at which the current era started."}}, {Name: "CurrentEraPointsEarned", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "EraPoints", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Rewards for the current era. Using indices of current elected set."}}, {Name: "SlotStake", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of balance actively at stake for each validator slot, currently.", "", " This is used to derive rewards and punishments."}}, {Name: "ForceEra", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Forcing", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the next session change will be a new era regardless of index."}}, {Name: "SlashRewardFraction", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Perbill", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The percentage of the slash that is distributed to reporters.", "", " The rest of the slashed value is handled by the `Slash`."}}, {Name: "CanceledSlashPayout", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of currency given to reporters of a slash event which was", " canceled by extraordinary circumstances (e.g. governance)."}}, {Name: "UnappliedSlashes", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "EraIndex", Value: "Vec>>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All unapplied slashes that are queued for later."}}, {Name: "BondedEras", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(EraIndex, SessionIndex)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from still-bonded eras to the first session index of that era."}}, {Name: "ValidatorSlashInEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "(Perbill, BalanceOf)", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: true, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All slashing events on validators, mapped by era to the highest slash proportion", " and slash value of the era."}}, {Name: "NominatorSlashInEra", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "EraIndex", Key2: "T::AccountId", Value: "BalanceOf", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: true, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" All slashing events on nominators, mapped by era to the highest slash value of the era."}}, {Name: "SlashingSpans", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "slashing::SlashingSpans", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Slashing spans for stash accounts."}}, {Name: "SpanSlash", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "(T::AccountId, slashing::SpanIndex)", Value: "slashing::SpanRecord>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Records information about the maximum slash of a stash within a slashing span,", " as well as how much reward has been paid out."}}, {Name: "EarliestUnappliedSlash", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "EraIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The earliest era for which we have a pending, unapplied slash."}}, {Name: "StorageVersion", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The version of storage for upgrade."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "bond", Args: []FunctionArgumentMetadata{{Name: "controller", Type: "::Source"}, {Name: "value", Type: "Compact>"}, {Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" Take the origin account as a stash and lock up `value` of its balance. `controller` will", " be the account that controls it.", "", " `value` must be more than the `minimum_balance` specified by `T::Currency`.", "", " The dispatch origin for this call must be _Signed_ by the stash account.", "", " # ", " - Independent of the arguments. Moderate complexity.", " - O(1).", " - Three extra DB entries.", "", " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned unless", " the `origin` falls below _existential deposit_ and gets removed as dust.", " # "}}, {Name: "bond_extra", Args: []FunctionArgumentMetadata{{Name: "max_additional", Type: "Compact>"}}, Documentation: []Text{" Add some extra amount that have appeared in the stash `free_balance` into the balance up", " for staking.", "", " Use this if there are additional funds in your stash account that you wish to bond.", " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount", " that can be added.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - O(1).", " - One DB entry.", " # "}}, {Name: "unbond", Args: []FunctionArgumentMetadata{{Name: "value", Type: "Compact>"}}, Documentation: []Text{" Schedule a portion of the stash to be unlocked ready for transfer out after the bond", " period ends. If this leaves an amount actively bonded less than", " T::Currency::minimum_balance(), then it is increased to the full amount.", "", " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", " the funds out of management ready for transfer.", "", " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", " to be called first to remove some of the chunks (if possible).", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " See also [`Call::withdraw_unbonded`].", "", " # ", " - Independent of the arguments. Limited but potentially exploitable complexity.", " - Contains a limited number of reads.", " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)", " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.", " The only way to clean the aforementioned storage item is also user-controlled via `withdraw_unbonded`.", " - One DB entry.", " "}}, {Name: "withdraw_unbonded", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove any unlocked chunks from the `unlocking` queue from our management.", "", " This essentially frees up that balance to be used by the stash account to do", " whatever it wants.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " See also [`Call::unbond`].", "", " # ", " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.", " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is", " indirectly user-controlled. See [`unbond`] for more detail.", " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.", " - Writes are limited to the `origin` account key.", " # "}}, {Name: "validate", Args: []FunctionArgumentMetadata{{Name: "prefs", Type: "ValidatorPrefs"}}, Documentation: []Text{" Declare the desire to validate for the origin controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " # "}}, {Name: "nominate", Args: []FunctionArgumentMetadata{{Name: "targets", Type: "Vec<::Source>"}}, Documentation: []Text{" Declare the desire to nominate `targets` for the origin controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - The transaction's complexity is proportional to the size of `targets`,", " which is capped at `MAX_NOMINATIONS`.", " - Both the reads and writes follow a similar pattern.", " # "}}, {Name: "chill", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Declare no desire to either validate or nominate.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains one read.", " - Writes are limited to the `origin` account key.", " # "}}, {Name: "set_payee", Args: []FunctionArgumentMetadata{{Name: "payee", Type: "RewardDestination"}}, Documentation: []Text{" (Re-)set the payment target for a controller.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " # "}}, {Name: "set_controller", Args: []FunctionArgumentMetadata{{Name: "controller", Type: "::Source"}}, Documentation: []Text{" (Re-)set the controller of a stash.", "", " Effects will be felt at the beginning of the next era.", "", " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", "", " # ", " - Independent of the arguments. Insignificant complexity.", " - Contains a limited number of reads.", " - Writes are limited to the `origin` account key.", " # "}}, {Name: "set_validator_count", Args: []FunctionArgumentMetadata{{Name: "new", Type: "Compact"}}, Documentation: []Text{" The ideal number of validators."}}, {Name: "force_no_eras", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be no new eras indefinitely.", "", " # ", " - No arguments.", " # "}}, {Name: "force_new_era", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be a new era at the end of the next session. After this, it will be", " reset to normal (non-forced) behaviour.", "", " # ", " - No arguments.", " # "}}, {Name: "set_invulnerables", Args: []FunctionArgumentMetadata{{Name: "validators", Type: "Vec"}}, Documentation: []Text{" Set the validators who cannot be slashed (if any)."}}, {Name: "force_unstake", Args: []FunctionArgumentMetadata{{Name: "stash", Type: "T::AccountId"}}, Documentation: []Text{" Force a current staker to become completely unstaked, immediately."}}, {Name: "force_new_era_always", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Force there to be a new era at the end of sessions indefinitely.", "", " # ", " - One storage write", " # "}}, {Name: "cancel_deferred_slash", Args: []FunctionArgumentMetadata{{Name: "era", Type: "EraIndex"}, {Name: "slash_indices", Type: "Vec"}}, Documentation: []Text{" Cancel enactment of a deferred slash. Can be called by either the root origin or", " the `T::SlashCancelOrigin`.", " passing the era and indices of the slashes for that era to kill.", "", " # ", " - One storage write.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Reward", Args: []Type{"Balance", "Balance"}, Documentation: []Text{" All validators have been rewarded by the first balance; the second is the remainder", " from the maximum amount of reward."}}, {Name: "Slash", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" One validator (and its nominators) has been slashed by the given amount."}}, {Name: "OldSlashingReportDiscarded", Args: []Type{"SessionIndex"}, Documentation: []Text{" An old slashing report from a prior era was discarded because it could", " not be processed."}}}, Constants: []ModuleConstantMetadataV6{{Name: "SessionsPerEra", Type: "SessionIndex", Value: Bytes{0x6, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of sessions per era."}}, {Name: "BondingDuration", Type: "EraIndex", Value: Bytes{0xa0, 0x2, 0x0, 0x0}, Documentation: []Text{" Number of eras that staked funds must remain bonded for."}}}, Errors: []ErrorMetadataV8{{Name: "NotController", Documentation: []Text{" Not a controller account."}}, {Name: "NotStash", Documentation: []Text{" Not a stash account."}}, {Name: "AlreadyBonded", Documentation: []Text{" Stash is already bonded."}}, {Name: "AlreadyPaired", Documentation: []Text{" Controller is already paired."}}, {Name: "EmptyTargets", Documentation: []Text{" Targets cannot be empty."}}, {Name: "DuplicateIndex", Documentation: []Text{" Duplicate index."}}, {Name: "InvalidSlashIndex", Documentation: []Text{" Slash record index out of bounds."}}, {Name: "InsufficientValue", Documentation: []Text{" Can not bond with value less than minimum balance."}}, {Name: "NoMoreChunks", Documentation: []Text{" Can not schedule more unlock chunks."}}}}, {Name: "Session", HasStorage: true, Storage: StorageMetadata{Prefix: "Session", Items: []StorageFunctionMetadataV5{{Name: "Validators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of validators."}}, {Name: "CurrentIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "SessionIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Current index of the session."}}, {Name: "QueuedChanged", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the underlying economic identities or weighting behind the validators", " has changed in the queued validator set."}}, {Name: "QueuedKeys", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(T::ValidatorId, T::Keys)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."}}, {Name: "DisabledValidators", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Indices of disabled validators.", "", " The set is cleared when `on_session_ending` returns a new set of identities."}}, {Name: "NextKeys", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true}, Key1: "Vec", Key2: "T::ValidatorId", Value: "T::Keys", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The next session keys for a validator.", "", " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", " the trie. Having all data in the same branch should prevent slowing down other queries."}}, {Name: "KeyOwner", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: true}, Key1: "Vec", Key2: "(KeyTypeId, Vec)", Value: "T::ValidatorId", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The owner of a key. The second key is the `KeyTypeId` + the encoded key.", "", " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", " the trie. Having all data in the same branch should prevent slowing down other queries."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set_keys", Args: []FunctionArgumentMetadata{{Name: "keys", Type: "T::Keys"}, {Name: "proof", Type: "Vec"}}, Documentation: []Text{" Sets the session key(s) of the function caller to `key`.", " Allows an account to set its session key prior to becoming a validator.", " This doesn't take effect until the next session.", "", " The dispatch origin of this function must be signed.", "", " # ", " - O(log n) in number of accounts.", " - One extra DB entry.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "NewSession", Args: []Type{"SessionIndex"}, Documentation: []Text{" New session has happened. Note that the argument is the session index, not the block", " number as the type might suggest."}}}, Constants: []ModuleConstantMetadataV6{{Name: "DEDUP_KEY_PREFIX", Type: "&[u8]", Value: Bytes{0x34, 0x3a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6b, 0x65, 0x79, 0x73}, Documentation: []Text{" Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch", " of the trie."}}}, Errors: []ErrorMetadataV8{{Name: "InvalidProof", Documentation: []Text{" Invalid ownership proof."}}, {Name: "NoAssociatedValidatorId", Documentation: []Text{" No associated validator ID for account."}}, {Name: "DuplicatedKey", Documentation: []Text{" Registered duplicate key."}}}}, {Name: "Democracy", HasStorage: true, Storage: StorageMetadata{Prefix: "Democracy", Items: []StorageFunctionMetadataV5{{Name: "PublicPropCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "PropIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of (public) proposals that have been made so far."}}, {Name: "PublicProps", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(PropIndex, T::Hash, T::AccountId)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The public proposals. Unsorted. The second item is the proposal's hash."}}, {Name: "Preimages", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "(Vec, T::AccountId, BalanceOf, T::BlockNumber)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Map of hashes to the proposal preimage, along with who registered it and their deposit.", " The block number is the block at which it was deposited."}}, {Name: "DepositOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "PropIndex", Value: "(BalanceOf, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Those who have locked a deposit."}}, {Name: "ReferendumCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The next free referendum index, aka the number of referenda started so far."}}, {Name: "LowestUnbaked", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "ReferendumIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The lowest referendum index representing an unbaked referendum. Equal to", " `ReferendumCount` if there isn't a unbaked referendum."}}, {Name: "ReferendumInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReferendumIndex", Value: "ReferendumInfo", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Information concerning any given referendum."}}, {Name: "DispatchQueue", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(T::BlockNumber, T::Hash, ReferendumIndex)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Queue of successful referenda to be dispatched. Stored ordered by block number."}}, {Name: "VotersFor", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReferendumIndex", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Get the voters for the current proposal."}}, {Name: "VoteOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "(ReferendumIndex, T::AccountId)", Value: "Vote", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Get the vote in a given referendum of a particular voter. The result is meaningful only", " if `voters_for` includes the voter when called with the referendum (you'll get the", " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can", " also check for simple existence with `VoteOf::exists` first."}}, {Name: "Proxy", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "T::AccountId", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Who is able to vote for whom. Value is the fund-holding account, key is the", " vote-transaction-sending account."}}, {Name: "Delegations", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "(T::AccountId, Conviction)", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Get the account (and lock periods) to which another account is delegating vote."}}, {Name: "LastTabledWasExternal", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "bool", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" True if the last referendum tabled was submitted externally. False if it was a public", " proposal."}}, {Name: "NextExternal", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "(T::Hash, VoteThreshold)", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The referendum to be tabled whenever it would be valid to table an external proposal.", " This happens when a referendum needs to be tabled and one of two conditions are met:", " - `LastTabledWasExternal` is `false`; or", " - `PublicProps` is empty."}}, {Name: "Blacklist", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "(T::BlockNumber, Vec)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A record of who vetoed what. Maps proposal hash to a possible existent block number", " (until when it may not be resubmitted) and who vetoed it."}}, {Name: "Cancellations", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "bool", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Record of all proposals that have been subject to emergency cancellation."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "propose", Args: []FunctionArgumentMetadata{{Name: "proposal_hash", Type: "T::Hash"}, {Name: "value", Type: "Compact>"}}, Documentation: []Text{" Propose a sensitive action to be taken.", "", " # ", " - O(1).", " - Two DB changes, one DB entry.", " # "}}, {Name: "second", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Compact"}}, Documentation: []Text{" Propose a sensitive action to be taken.", "", " # ", " - O(1).", " - One DB entry.", " # "}}, {Name: "vote", Args: []FunctionArgumentMetadata{{Name: "ref_index", Type: "Compact"}, {Name: "vote", Type: "Vote"}}, Documentation: []Text{" Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", " otherwise it is a vote to keep the status quo.", "", " # ", " - O(1).", " - One DB change, one DB entry.", " # "}}, {Name: "proxy_vote", Args: []FunctionArgumentMetadata{{Name: "ref_index", Type: "Compact"}, {Name: "vote", Type: "Vote"}}, Documentation: []Text{" Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact", " the proposal; otherwise it is a vote to keep the status quo.", "", " # ", " - O(1).", " - One DB change, one DB entry.", " # "}}, {Name: "emergency_cancel", Args: []FunctionArgumentMetadata{{Name: "ref_index", Type: "ReferendumIndex"}}, Documentation: []Text{" Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", " referendum."}}, {Name: "external_propose", Args: []FunctionArgumentMetadata{{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a referendum to be tabled once it is legal to schedule an external", " referendum."}}, {Name: "external_propose_majority", Args: []FunctionArgumentMetadata{{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a majority-carries referendum to be tabled next once it is legal to schedule", " an external referendum.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call."}}, {Name: "external_propose_default", Args: []FunctionArgumentMetadata{{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", " schedule an external referendum.", "", " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", " pre-scheduled `external_propose` call."}}, {Name: "fast_track", Args: []FunctionArgumentMetadata{{Name: "proposal_hash", Type: "T::Hash"}, {Name: "voting_period", Type: "T::BlockNumber"}, {Name: "delay", Type: "T::BlockNumber"}}, Documentation: []Text{" Schedule the currently externally-proposed majority-carries referendum to be tabled", " immediately. If there is no externally-proposed referendum currently, or if there is one", " but it is not a majority-carries referendum then it fails.", "", " - `proposal_hash`: The hash of the current external proposal.", " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", " `EmergencyVotingPeriod` if too low.", " - `delay`: The number of block after voting has ended in approval and this should be", " enacted. This doesn't have a minimum amount."}}, {Name: "veto_external", Args: []FunctionArgumentMetadata{{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Veto and blacklist the external proposal hash."}}, {Name: "cancel_referendum", Args: []FunctionArgumentMetadata{{Name: "ref_index", Type: "Compact"}}, Documentation: []Text{" Remove a referendum."}}, {Name: "cancel_queued", Args: []FunctionArgumentMetadata{{Name: "which", Type: "ReferendumIndex"}}, Documentation: []Text{" Cancel a proposal queued for enactment."}}, {Name: "set_proxy", Args: []FunctionArgumentMetadata{{Name: "proxy", Type: "T::AccountId"}}, Documentation: []Text{" Specify a proxy. Called by the stash.", "", " # ", " - One extra DB entry.", " # "}}, {Name: "resign_proxy", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Clear the proxy. Called by the proxy.", "", " # ", " - One DB clear.", " # "}}, {Name: "remove_proxy", Args: []FunctionArgumentMetadata{{Name: "proxy", Type: "T::AccountId"}}, Documentation: []Text{" Clear the proxy. Called by the stash.", "", " # ", " - One DB clear.", " # "}}, {Name: "delegate", Args: []FunctionArgumentMetadata{{Name: "to", Type: "T::AccountId"}, {Name: "conviction", Type: "Conviction"}}, Documentation: []Text{" Delegate vote.", "", " # ", " - One extra DB entry.", " # "}}, {Name: "undelegate", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Undelegate vote.", "", " # ", " - O(1).", " # "}}, {Name: "clear_public_proposals", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Veto and blacklist the proposal hash. Must be from Root origin."}}, {Name: "note_preimage", Args: []FunctionArgumentMetadata{{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Register the preimage for an upcoming proposal. This doesn't require the proposal to be", " in the dispatch queue but does require a deposit, returned once enacted."}}, {Name: "note_imminent_preimage", Args: []FunctionArgumentMetadata{{Name: "encoded_proposal", Type: "Vec"}}, Documentation: []Text{" Register the preimage for an upcoming proposal. This requires the proposal to be", " in the dispatch queue. No deposit is needed."}}, {Name: "reap_preimage", Args: []FunctionArgumentMetadata{{Name: "proposal_hash", Type: "T::Hash"}}, Documentation: []Text{" Remove an expired proposal preimage and collect the deposit.", "", " This will only work after `VotingPeriod` blocks from the time that the preimage was", " noted, if it's the same account doing it. If it's a different account, then it'll only", " work an additional `EnactmentPeriod` later."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Proposed", Args: []Type{"PropIndex", "Balance"}, Documentation: []Text{" A motion has been proposed by a public account."}}, {Name: "Tabled", Args: []Type{"PropIndex", "Balance", "Vec"}, Documentation: []Text{" A public proposal has been tabled for referendum vote."}}, {Name: "ExternalTabled", Args: []Type(nil), Documentation: []Text{" An external proposal has been tabled."}}, {Name: "Started", Args: []Type{"ReferendumIndex", "VoteThreshold"}, Documentation: []Text{" A referendum has begun."}}, {Name: "Passed", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A proposal has been approved by referendum."}}, {Name: "NotPassed", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A proposal has been rejected by referendum."}}, {Name: "Cancelled", Args: []Type{"ReferendumIndex"}, Documentation: []Text{" A referendum has been cancelled."}}, {Name: "Executed", Args: []Type{"ReferendumIndex", "bool"}, Documentation: []Text{" A proposal has been enacted."}}, {Name: "Delegated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" An account has delegated their vote to another account."}}, {Name: "Undelegated", Args: []Type{"AccountId"}, Documentation: []Text{" An account has cancelled a previous delegation operation."}}, {Name: "Vetoed", Args: []Type{"AccountId", "Hash", "BlockNumber"}, Documentation: []Text{" An external proposal has been vetoed."}}, {Name: "PreimageNoted", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A proposal's preimage was noted, and the deposit taken."}}, {Name: "PreimageUsed", Args: []Type{"Hash", "AccountId", "Balance"}, Documentation: []Text{" A proposal preimage was removed and used (the deposit was returned)."}}, {Name: "PreimageInvalid", Args: []Type{"Hash", "ReferendumIndex"}, Documentation: []Text{" A proposal could not be executed because its preimage was invalid."}}, {Name: "PreimageMissing", Args: []Type{"Hash", "ReferendumIndex"}, Documentation: []Text{" A proposal could not be executed because its preimage was missing."}}, {Name: "PreimageReaped", Args: []Type{"Hash", "AccountId", "Balance", "AccountId"}, Documentation: []Text{" A registered preimage was removed and the deposit collected by the reaper (last item)."}}}, Constants: []ModuleConstantMetadataV6{{Name: "EnactmentPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x2f, 0xd, 0x0}, Documentation: []Text{" The minimum period of locking and the period between a proposal being approved and enacted.", "", " It should generally be a little more than the unstake period to ensure that", " voting stakers have an opportunity to remove themselves from the system in the case where", " they are on the losing side of a vote."}}, {Name: "LaunchPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" How often (in blocks) new public referenda are launched."}}, {Name: "VotingPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" How often (in blocks) to check for new votes."}}, {Name: "MinimumDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount to be used as a deposit for a public referendum proposal."}}, {Name: "EmergencyVotingPeriod", Type: "T::BlockNumber", Value: Bytes{0x80, 0x51, 0x1, 0x0}, Documentation: []Text{" Minimum voting period allowed for an emergency referendum."}}, {Name: "CooloffPeriod", Type: "T::BlockNumber", Value: Bytes{0x0, 0x4e, 0xc, 0x0}, Documentation: []Text{" Period in blocks where an external proposal may not be re-submitted after being vetoed."}}, {Name: "PreimageByteDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of balance that must be deposited per byte of preimage stored."}}}, Errors: []ErrorMetadataV8{{Name: "ValueLow", Documentation: []Text{" Value too low"}}, {Name: "ProposalMissing", Documentation: []Text{" Proposal does not exist"}}, {Name: "NotProxy", Documentation: []Text{" Not a proxy"}}, {Name: "BadIndex", Documentation: []Text{" Unknown index"}}, {Name: "AlreadyCanceled", Documentation: []Text{" Cannot cancel the same proposal twice"}}, {Name: "DuplicateProposal", Documentation: []Text{" Proposal already made"}}, {Name: "ProposalBlacklisted", Documentation: []Text{" Proposal still blacklisted"}}, {Name: "NotSimpleMajority", Documentation: []Text{" Next external proposal not simple majority"}}, {Name: "InvalidHash", Documentation: []Text{" Invalid hash"}}, {Name: "NoProposal", Documentation: []Text{" No external proposal"}}, {Name: "AlreadyVetoed", Documentation: []Text{" Identity may not veto a proposal twice"}}, {Name: "AlreadyProxy", Documentation: []Text{" Already a proxy"}}, {Name: "WrongProxy", Documentation: []Text{" Wrong proxy"}}, {Name: "NotDelegated", Documentation: []Text{" Not delegated"}}, {Name: "DuplicatePreimage", Documentation: []Text{" Preimage already noted"}}, {Name: "NotImminent", Documentation: []Text{" Not imminent"}}, {Name: "Early", Documentation: []Text{" Too early"}}, {Name: "Imminent", Documentation: []Text{" Imminent"}}, {Name: "PreimageMissing", Documentation: []Text{" Preimage not found"}}, {Name: "ReferendumInvalid", Documentation: []Text{" Vote given for invalid referendum"}}, {Name: "PreimageInvalid", Documentation: []Text{" Invalid preimage"}}, {Name: "NoneWaiting", Documentation: []Text{" No proposals waiting"}}}}, {Name: "Council", HasStorage: true, Storage: StorageMetadata{Prefix: "Instance1Collective", Items: []StorageFunctionMetadataV5{{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The hashes of the active proposals."}}, {Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: ">::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Actual proposal for a given hash, if it's current."}}, {Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "Votes", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes on a given proposal, if it is ongoing."}}, {Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proposals so far."}}, {Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current members of the collective. This is stored sorted (just by value)."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set_members", Args: []FunctionArgumentMetadata{{Name: "new_members", Type: "Vec"}}, Documentation: []Text{" Set the collective's membership manually to `new_members`. Be nice to the chain and", " provide it pre-sorted.", "", " Requires root origin."}}, {Name: "execute", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective."}}, {Name: "propose", Args: []FunctionArgumentMetadata{{Name: "threshold", Type: "Compact"}, {Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" # ", " - Bounded storage reads and writes.", " - Argument `threshold` has bearing on weight.", " # "}}, {Name: "vote", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "T::Hash"}, {Name: "index", Type: "Compact"}, {Name: "approve", Type: "bool"}}, Documentation: []Text{" # ", " - Bounded storage read and writes.", " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Proposed", Args: []Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`)."}}, {Name: "Voted", Args: []Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`)."}}, {Name: "Approved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was approved by the required threshold."}}, {Name: "Disapproved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was not approved by the required threshold."}}, {Name: "Executed", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A motion was executed; `bool` is true if returned without error."}}, {Name: "MemberExecuted", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A single member did some action; `bool` is true if returned without error."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{{Name: "NotMember", Documentation: []Text{" Account is not a member"}}, {Name: "DuplicateProposal", Documentation: []Text{" Duplicate proposals not allowed"}}, {Name: "ProposalMissing", Documentation: []Text{" Proposal must exist"}}, {Name: "WrongIndex", Documentation: []Text{" Mismatched index"}}, {Name: "DuplicateVote", Documentation: []Text{" Duplicate vote ignored"}}, {Name: "AlreadyInitialized", Documentation: []Text{" Members are already initialized!"}}}}, {Name: "TechnicalCommittee", HasStorage: true, Storage: StorageMetadata{Prefix: "Instance2Collective", Items: []StorageFunctionMetadataV5{{Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The hashes of the active proposals."}}, {Name: "ProposalOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: ">::Proposal", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Actual proposal for a given hash, if it's current."}}, {Name: "Voting", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::Hash", Value: "Votes", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes on a given proposal, if it is ongoing."}}, {Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Proposals so far."}}, {Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current members of the collective. This is stored sorted (just by value)."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set_members", Args: []FunctionArgumentMetadata{{Name: "new_members", Type: "Vec"}}, Documentation: []Text{" Set the collective's membership manually to `new_members`. Be nice to the chain and", " provide it pre-sorted.", "", " Requires root origin."}}, {Name: "execute", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" Dispatch a proposal from a member using the `Member` origin.", "", " Origin must be a member of the collective."}}, {Name: "propose", Args: []FunctionArgumentMetadata{{Name: "threshold", Type: "Compact"}, {Name: "proposal", Type: "Box<>::Proposal>"}}, Documentation: []Text{" # ", " - Bounded storage reads and writes.", " - Argument `threshold` has bearing on weight.", " # "}}, {Name: "vote", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "T::Hash"}, {Name: "index", Type: "Compact"}, {Name: "approve", Type: "bool"}}, Documentation: []Text{" # ", " - Bounded storage read and writes.", " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Proposed", Args: []Type{"AccountId", "ProposalIndex", "Hash", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been proposed (by given account) with a threshold (given", " `MemberCount`)."}}, {Name: "Voted", Args: []Type{"AccountId", "Hash", "bool", "MemberCount", "MemberCount"}, Documentation: []Text{" A motion (given hash) has been voted on by given account, leaving", " a tally (yes votes and no votes given respectively as `MemberCount`)."}}, {Name: "Approved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was approved by the required threshold."}}, {Name: "Disapproved", Args: []Type{"Hash"}, Documentation: []Text{" A motion was not approved by the required threshold."}}, {Name: "Executed", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A motion was executed; `bool` is true if returned without error."}}, {Name: "MemberExecuted", Args: []Type{"Hash", "bool"}, Documentation: []Text{" A single member did some action; `bool` is true if returned without error."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{{Name: "NotMember", Documentation: []Text{" Account is not a member"}}, {Name: "DuplicateProposal", Documentation: []Text{" Duplicate proposals not allowed"}}, {Name: "ProposalMissing", Documentation: []Text{" Proposal must exist"}}, {Name: "WrongIndex", Documentation: []Text{" Mismatched index"}}, {Name: "DuplicateVote", Documentation: []Text{" Duplicate vote ignored"}}, {Name: "AlreadyInitialized", Documentation: []Text{" Members are already initialized!"}}}}, {Name: "Elections", HasStorage: true, Storage: StorageMetadata{Prefix: "PhragmenElection", Items: []StorageFunctionMetadataV5{{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(T::AccountId, BalanceOf)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current elected membership. Sorted based on account id."}}, {Name: "RunnersUp", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec<(T::AccountId, BalanceOf)>", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current runners_up. Sorted based on low to high merit (worse to best runner)."}}, {Name: "ElectionRounds", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u32", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The total number of vote rounds that have happened, excluding the upcoming one."}}, {Name: "VotesOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "Vec", Linked: true}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Votes of a particular voter, with the round index of the votes."}}, {Name: "StakeOf", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "BalanceOf", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Locked stake of a voter."}}, {Name: "Candidates", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The present candidate list. Sorted based on account id. A current member can never enter", " this vector and is always implicitly assumed to be a candidate."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "vote", Args: []FunctionArgumentMetadata{{Name: "votes", Type: "Vec"}, {Name: "value", Type: "Compact>"}}, Documentation: []Text{" Vote for a set of candidates for the upcoming round of election.", "", " The `votes` should:", " - not be empty.", " - be less than the number of candidates.", "", " Upon voting, `value` units of `who`'s balance is locked and a bond amount is reserved.", " It is the responsibility of the caller to not place all of their balance into the lock", " and keep some for further transactions.", "", " # ", " #### State", " Reads: O(1)", " Writes: O(V) given `V` votes. V is bounded by 16.", " # "}}, {Name: "remove_voter", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Remove `origin` as a voter. This removes the lock and returns the bond.", "", " # ", " #### State", " Reads: O(1)", " Writes: O(1)", " # "}}, {Name: "report_defunct_voter", Args: []FunctionArgumentMetadata{{Name: "target", Type: "::Source"}}, Documentation: []Text{" Report `target` for being an defunct voter. In case of a valid report, the reporter is", " rewarded by the bond amount of `target`. Otherwise, the reporter itself is removed and", " their bond is slashed.", "", " A defunct voter is defined to be:", " - a voter whose current submitted votes are all invalid. i.e. all of them are no", " longer a candidate nor an active member.", "", " # ", " #### State", " Reads: O(NLogM) given M current candidates and N votes for `target`.", " Writes: O(1)", " # "}}, {Name: "submit_candidacy", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Submit oneself for candidacy.", "", " A candidate will either:", " - Lose at the end of the term and forfeit their deposit.", " - Win and become a member. Members will eventually get their stash back.", " - Become a runner-up. Runners-ups are reserved members in case one gets forcefully", " removed.", "", " # ", " #### State", " Reads: O(LogN) Given N candidates.", " Writes: O(1)", " # "}}, {Name: "renounce_candidacy", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Renounce one's intention to be a candidate for the next election round. 3 potential", " outcomes exist:", " - `origin` is a candidate and not elected in any set. In this case, the bond is", " unreserved, returned and origin is removed as a candidate.", " - `origin` is a current runner up. In this case, the bond is unreserved, returned and", " origin is removed as a runner.", " - `origin` is a current member. In this case, the bond is unreserved and origin is", " removed as a member, consequently not being a candidate for the next round anymore.", " Similar to [`remove_voter`], if replacement runners exists, they are immediately used."}}, {Name: "remove_member", Args: []FunctionArgumentMetadata{{Name: "who", Type: "::Source"}}, Documentation: []Text{" Remove a particular member from the set. This is effective immediately and the bond of", " the outgoing member is slashed.", "", " If a runner-up is available, then the best runner-up will be removed and replaces the", " outgoing member. Otherwise, a new phragmen round is started.", "", " Note that this does not affect the designated block number of the next election.", "", " # ", " #### State", " Reads: O(do_phragmen)", " Writes: O(do_phragmen)", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "NewTerm", Args: []Type{"Vec<(AccountId, Balance)>"}, Documentation: []Text{" A new term with new members. This indicates that enough candidates existed, not that", " enough have has been elected. The inner value must be examined for this purpose."}}, {Name: "EmptyTerm", Args: []Type(nil), Documentation: []Text{" No (or not enough) candidates existed for this round."}}, {Name: "MemberKicked", Args: []Type{"AccountId"}, Documentation: []Text{" A member has been removed. This should always be followed by either `NewTerm` ot", " `EmptyTerm`."}}, {Name: "MemberRenounced", Args: []Type{"AccountId"}, Documentation: []Text{" A member has renounced their candidacy."}}, {Name: "VoterReported", Args: []Type{"AccountId", "AccountId", "bool"}, Documentation: []Text{" A voter (first element) was reported (byt the second element) with the the report being", " successful or not (third element)."}}}, Constants: []ModuleConstantMetadataV6{{Name: "CandidacyBond", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, {Name: "VotingBond", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, {Name: "DesiredMembers", Type: "u32", Value: Bytes{0xd, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, {Name: "DesiredRunnersUp", Type: "u32", Value: Bytes{0x7, 0x0, 0x0, 0x0}, Documentation: []Text(nil)}, {Name: "TermDuration", Type: "T::BlockNumber", Value: Bytes{0x80, 0x13, 0x3, 0x0}, Documentation: []Text(nil)}}, Errors: []ErrorMetadataV8(nil)}, {Name: "TechnicalMembership", HasStorage: true, Storage: StorageMetadata{Prefix: "Instance1Membership", Items: []StorageFunctionMetadataV5{{Name: "Members", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current membership, stored as an ordered Vec."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "add_member", Args: []FunctionArgumentMetadata{{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Add a member `who` to the set.", "", " May only be called from `AddOrigin` or root."}}, {Name: "remove_member", Args: []FunctionArgumentMetadata{{Name: "who", Type: "T::AccountId"}}, Documentation: []Text{" Remove a member `who` from the set.", "", " May only be called from `RemoveOrigin` or root."}}, {Name: "swap_member", Args: []FunctionArgumentMetadata{{Name: "remove", Type: "T::AccountId"}, {Name: "add", Type: "T::AccountId"}}, Documentation: []Text{" Swap out one member `remove` for another `add`.", "", " May only be called from `SwapOrigin` or root."}}, {Name: "reset_members", Args: []FunctionArgumentMetadata{{Name: "members", Type: "Vec"}}, Documentation: []Text{" Change the membership to a new set, disregarding the existing membership. Be nice and", " pass `members` pre-sorted.", "", " May only be called from `ResetOrigin` or root."}}, {Name: "change_key", Args: []FunctionArgumentMetadata{{Name: "new", Type: "T::AccountId"}}, Documentation: []Text{" Swap out the sending member for some other key `new`.", "", " May only be called from `Signed` origin of a current member."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "MemberAdded", Args: []Type(nil), Documentation: []Text{" The given member was added; see the transaction for who."}}, {Name: "MemberRemoved", Args: []Type(nil), Documentation: []Text{" The given member was removed; see the transaction for who."}}, {Name: "MembersSwapped", Args: []Type(nil), Documentation: []Text{" Two members were swapped; see the transaction for who."}}, {Name: "MembersReset", Args: []Type(nil), Documentation: []Text{" The membership was reset; see the transaction for who the new set is."}}, {Name: "KeyChanged", Args: []Type(nil), Documentation: []Text{" One of the members' keys changed."}}, {Name: "Dummy", Args: []Type{"sp_std::marker::PhantomData<(AccountId, Event)>"}, Documentation: []Text{" Phantom member, never used."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "FinalityTracker", HasStorage: false, Storage: StorageMetadata{Prefix: "", Items: []StorageFunctionMetadataV5(nil)}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "final_hint", Args: []FunctionArgumentMetadata{{Name: "hint", Type: "Compact"}}, Documentation: []Text{" Hint that the author of this block thinks the best finalized", " block is the given number."}}}, HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6{{Name: "WindowSize", Type: "T::BlockNumber", Value: Bytes{0x65, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of recent samples to keep from this chain. Default is 101."}}, {Name: "ReportLatency", Type: "T::BlockNumber", Value: Bytes{0xe8, 0x3, 0x0, 0x0}, Documentation: []Text{" The delay after which point things become suspicious. Default is 1000."}}}, Errors: []ErrorMetadataV8{{Name: "AlreadyUpdated", Documentation: []Text{" Final hint must be updated only once in the block"}}, {Name: "BadHint", Documentation: []Text{" Finalized height above block number"}}}}, {Name: "Grandpa", HasStorage: true, Storage: StorageMetadata{Prefix: "GrandpaFinality", Items: []StorageFunctionMetadataV5{{Name: "Authorities", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "AuthorityList", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" DEPRECATED", "", " This used to store the current authority set, which has been migrated to the well-known", " GRANDPA_AUTHORITES_KEY unhashed key."}}, {Name: "State", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "StoredState", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" State of the current authority set."}}, {Name: "PendingChange", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "StoredPendingChange", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Pending change: (signaled at, scheduled change)."}}, {Name: "NextForced", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" next block number where we can force a change."}}, {Name: "Stalled", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "(T::BlockNumber, T::BlockNumber)", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" `true` if we are currently stalled."}}, {Name: "CurrentSetId", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "SetId", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The number of changes (both in terms of keys and underlying economic responsibilities)", " in the \"set\" of Grandpa validators from genesis."}}, {Name: "SetIdSession", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "SetId", Value: "SessionIndex", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from grandpa set ID to the index of the *most recent* session for which its members were responsible."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "report_misbehavior", Args: []FunctionArgumentMetadata{{Name: "_report", Type: "Vec"}}, Documentation: []Text{" Report some misbehavior."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "NewAuthorities", Args: []Type{"AuthorityList"}, Documentation: []Text{" New authority set has been applied."}}, {Name: "Paused", Args: []Type(nil), Documentation: []Text{" Current authority set has been paused."}}, {Name: "Resumed", Args: []Type(nil), Documentation: []Text{" Current authority set has been resumed."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{{Name: "PauseFailed", Documentation: []Text{" Attempt to signal GRANDPA pause when the authority set isn't live", " (either paused or already pending pause)."}}, {Name: "ResumeFailed", Documentation: []Text{" Attempt to signal GRANDPA resume when the authority set isn't paused", " (either live or already pending resume)."}}, {Name: "ChangePending", Documentation: []Text{" Attempt to signal GRANDPA change with one already pending."}}, {Name: "TooSoon", Documentation: []Text{" Cannot signal forced change so soon after last."}}}}, {Name: "Treasury", HasStorage: true, Storage: StorageMetadata{Prefix: "Treasury", Items: []StorageFunctionMetadataV5{{Name: "ProposalCount", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "ProposalIndex", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of proposals that have been made."}}, {Name: "Proposals", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ProposalIndex", Value: "Proposal>", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposals that have been made."}}, {Name: "Approvals", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Proposal indices that have been approved but not yet awarded."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "propose_spend", Args: []FunctionArgumentMetadata{{Name: "value", Type: "Compact>"}, {Name: "beneficiary", Type: "::Source"}}, Documentation: []Text{" Put forward a suggestion for spending. A deposit proportional to the value", " is reserved and slashed if the proposal is rejected. It is returned once the", " proposal is awarded.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change, one extra DB entry.", " # "}}, {Name: "reject_proposal", Args: []FunctionArgumentMetadata{{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Reject a proposed spend. The original deposit will be slashed.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB clear.", " # "}}, {Name: "approve_proposal", Args: []FunctionArgumentMetadata{{Name: "proposal_id", Type: "Compact"}}, Documentation: []Text{" Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", " and the original deposit will be returned.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Proposed", Args: []Type{"ProposalIndex"}, Documentation: []Text{" New proposal."}}, {Name: "Spending", Args: []Type{"Balance"}, Documentation: []Text{" We have ended a spend period and will now allocate funds."}}, {Name: "Awarded", Args: []Type{"ProposalIndex", "Balance", "AccountId"}, Documentation: []Text{" Some funds have been allocated."}}, {Name: "Rejected", Args: []Type{"ProposalIndex", "Balance"}, Documentation: []Text{" A proposal was rejected; funds were slashed."}}, {Name: "Burnt", Args: []Type{"Balance"}, Documentation: []Text{" Some of our funds have been burnt."}}, {Name: "Rollover", Args: []Type{"Balance"}, Documentation: []Text{" Spending has finished; this is the amount that rolls over until next spend."}}, {Name: "Deposit", Args: []Type{"Balance"}, Documentation: []Text{" Some funds have been deposited."}}}, Constants: []ModuleConstantMetadataV6{{Name: "ProposalBond", Type: "Permill", Value: Bytes{0x50, 0xc3, 0x0, 0x0}, Documentation: []Text{" Fraction of a proposal's value that should be bonded in order to place the proposal.", " An accepted proposal gets these back. A rejected proposal does not."}}, {Name: "ProposalBondMinimum", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Minimum amount of funds that should be placed in a deposit for making a proposal."}}, {Name: "SpendPeriod", Type: "T::BlockNumber", Value: Bytes{0x80, 0x70, 0x0, 0x0}, Documentation: []Text{" Period between successive spends."}}, {Name: "Burn", Type: "Permill", Value: Bytes{0x20, 0xa1, 0x7, 0x0}, Documentation: []Text{" Percentage of spare funds (if any) that are burnt per spend period."}}}, Errors: []ErrorMetadataV8{{Name: "InsufficientProposersBalance", Documentation: []Text{" Proposer's balance is too low."}}, {Name: "InvalidProposalIndex", Documentation: []Text{" No proposal at that index."}}}}, {Name: "Contracts", HasStorage: true, Storage: StorageMetadata{Prefix: "Contract", Items: []StorageFunctionMetadataV5{{Name: "GasSpent", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Gas", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Gas spent so far in this block."}}, {Name: "CurrentSchedule", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Schedule", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x87, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0}, Documentation: []Text{" Current cost schedule for contracts."}}, {Name: "PristineCode", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "CodeHash", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping from an original code hash to the original code, untouched by instrumentation."}}, {Name: "CodeStorage", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "CodeHash", Value: "wasm::PrefabWasmModule", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A mapping between an original code hash and instrumented wasm code, ready for execution."}}, {Name: "AccountCounter", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "u64", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The subtrie counter."}}, {Name: "ContractInfoOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "ContractInfo", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The code associated with a given account."}}, {Name: "GasPrice", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "BalanceOf", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The price of one unit of gas."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "update_schedule", Args: []FunctionArgumentMetadata{{Name: "schedule", Type: "Schedule"}}, Documentation: []Text{" Updates the schedule for metering contracts.", "", " The schedule must have a greater version than the stored schedule."}}, {Name: "put_code", Args: []FunctionArgumentMetadata{{Name: "gas_limit", Type: "Compact"}, {Name: "code", Type: "Vec"}}, Documentation: []Text{" Stores the given binary Wasm code into the chain's storage and returns its `codehash`.", " You can instantiate contracts only with stored code."}}, {Name: "call", Args: []FunctionArgumentMetadata{{Name: "dest", Type: "::Source"}, {Name: "value", Type: "Compact>"}, {Name: "gas_limit", Type: "Compact"}, {Name: "data", Type: "Vec"}}, Documentation: []Text{" Makes a call to an account, optionally transferring some balance.", "", " * If the account is a smart-contract account, the associated code will be", " executed and any value will be transferred.", " * If the account is a regular account, any value will be transferred.", " * If no account exists and the call value is not less than `existential_deposit`,", " a regular account will be created and any value will be transferred."}}, {Name: "instantiate", Args: []FunctionArgumentMetadata{{Name: "endowment", Type: "Compact>"}, {Name: "gas_limit", Type: "Compact"}, {Name: "code_hash", Type: "CodeHash"}, {Name: "data", Type: "Vec"}}, Documentation: []Text{" Instantiates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", "", " Instantiation is executed as follows:", "", " - The destination address is computed based on the sender and hash of the code.", " - The smart-contract account is created at the computed address.", " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned", " after the execution is saved as the `code` of the account. That code will be invoked", " upon any call received by this account.", " - The contract is initialized."}}, {Name: "claim_surcharge", Args: []FunctionArgumentMetadata{{Name: "dest", Type: "T::AccountId"}, {Name: "aux_sender", Type: "Option"}}, Documentation: []Text{" Allows block producers to claim a small reward for evicting a contract. If a block producer", " fails to do so, a regular users will be allowed to claim the reward.", "", " If contract is not evicted as a result of this call, no actions are taken and", " the sender is not eligible for the reward."}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Transfer", Args: []Type{"AccountId", "AccountId", "Balance"}, Documentation: []Text{" Transfer happened `from` to `to` with given `value` as part of a `call` or `instantiate`."}}, {Name: "Instantiated", Args: []Type{"AccountId", "AccountId"}, Documentation: []Text{" Contract deployed by address at the specified address."}}, {Name: "CodeStored", Args: []Type{"Hash"}, Documentation: []Text{" Code with the specified hash has been stored."}}, {Name: "ScheduleUpdated", Args: []Type{"u32"}, Documentation: []Text{" Triggered when the current schedule is updated."}}, {Name: "Dispatched", Args: []Type{"AccountId", "bool"}, Documentation: []Text{" A call was dispatched from the given account. The bool signals whether it was", " successful execution or not."}}, {Name: "Contract", Args: []Type{"AccountId", "Vec"}, Documentation: []Text{" An event from contract of account."}}}, Constants: []ModuleConstantMetadataV6{{Name: "SignedClaimHandicap", Type: "T::BlockNumber", Value: Bytes{0x2, 0x0, 0x0, 0x0}, Documentation: []Text{" Number of block delay an extrinsic claim surcharge has.", "", " When claim surcharge is called by an extrinsic the rent is checked", " for current_block - delay"}}, {Name: "TombstoneDeposit", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum amount required to generate a tombstone."}}, {Name: "StorageSizeOffset", Type: "u32", Value: Bytes{0x8, 0x0, 0x0, 0x0}, Documentation: []Text{" Size of a contract at the time of instantiaion. This is a simple way to ensure that", " empty contracts eventually gets deleted."}}, {Name: "RentByteFee", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Price of a byte of storage per one block interval. Should be greater than 0."}}, {Name: "RentDepositOffset", Type: "BalanceOf", Value: Bytes{0x0, 0x0, 0x8a, 0x5d, 0x78, 0x45, 0x63, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The amount of funds a contract should deposit in order to offset", " the cost of one byte.", "", " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,", " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.", " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,", " then it would pay 500 BU/day."}}, {Name: "SurchargeReward", Type: "BalanceOf", Value: Bytes{0x0, 0x80, 0xa1, 0xa7, 0x6b, 0x4a, 0x35, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Reward that is received by the party whose touch has led", " to removal of a contract."}}, {Name: "TransferFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to make a transfer."}}, {Name: "CreationFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to create an account."}}, {Name: "TransactionBaseFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the base."}}, {Name: "TransactionByteFee", Type: "BalanceOf", Value: Bytes{0x0, 0xe4, 0xb, 0x54, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee to be paid for making a transaction; the per-byte portion."}}, {Name: "ContractFee", Type: "BalanceOf", Value: Bytes{0x0, 0x10, 0xa5, 0xd4, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The fee required to instantiate a contract instance. A reasonable default value", " is 21."}}, {Name: "CallBaseFee", Type: "Gas", Value: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base fee charged for calling into a contract. A reasonable default", " value is 135."}}, {Name: "InstantiateBaseFee", Type: "Gas", Value: Bytes{0xe8, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The base fee charged for instantiating a contract. A reasonable default value", " is 175."}}, {Name: "MaxDepth", Type: "u32", Value: Bytes{0x20, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum nesting level of a call/instantiate stack. A reasonable default", " value is 100."}}, {Name: "MaxValueSize", Type: "u32", Value: Bytes{0x0, 0x40, 0x0, 0x0}, Documentation: []Text{" The maximum size of a storage value in bytes. A reasonable default is 16 KiB."}}, {Name: "BlockGasLimit", Type: "Gas", Value: Bytes{0x80, 0x96, 0x98, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum amount of gas that could be expended per block. A reasonable", " default value is 10_000_000."}}}, Errors: []ErrorMetadataV8(nil)}, {Name: "Sudo", HasStorage: true, Storage: StorageMetadata{Prefix: "Sudo", Items: []StorageFunctionMetadataV5{{Name: "Key", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::AccountId", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The `AccountId` of the sudo key."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "sudo", Args: []FunctionArgumentMetadata{{Name: "proposal", Type: "Box"}}, Documentation: []Text{" Authenticates the sudo key and dispatches a function call with `Root` origin.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB write (event).", " - Unknown weight of derivative `proposal` execution.", " # "}}, {Name: "set_key", Args: []FunctionArgumentMetadata{{Name: "new", Type: "::Source"}}, Documentation: []Text{" Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB change.", " # "}}, {Name: "sudo_as", Args: []FunctionArgumentMetadata{{Name: "who", Type: "::Source"}, {Name: "proposal", Type: "Box"}}, Documentation: []Text{" Authenticates the sudo key and dispatches a function call with `Signed` origin from", " a given account.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - Limited storage reads.", " - One DB write (event).", " - Unknown weight of derivative `proposal` execution.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "Sudid", Args: []Type{"bool"}, Documentation: []Text{" A sudo just took place."}}, {Name: "KeyChanged", Args: []Type{"AccountId"}, Documentation: []Text{" The sudoer just switched identity; the old key is supplied."}}, {Name: "SudoAsDone", Args: []Type{"bool"}, Documentation: []Text{" A sudo just took place."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{{Name: "RequireSudo", Documentation: []Text{" Sender must be the Sudo account"}}}}, {Name: "ImOnline", HasStorage: true, Storage: StorageMetadata{Prefix: "ImOnline", Items: []StorageFunctionMetadataV5{{Name: "GossipAt", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "T::BlockNumber", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" The block number when we should gossip."}}, {Name: "Keys", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The current set of keys that may issue a heartbeat."}}, {Name: "ReceivedHeartbeats", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "SessionIndex", Key2: "AuthIndex", Value: "Vec", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" For each session index, we keep a mapping of `AuthIndex`", " to `offchain::OpaqueNetworkState`."}}, {Name: "AuthoredBlocks", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "SessionIndex", Key2: "T::ValidatorId", Value: "u32", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" For each session index, we keep a mapping of `T::ValidatorId` to the", " number of blocks authored by the given authority."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "heartbeat", Args: []FunctionArgumentMetadata{{Name: "heartbeat", Type: "Heartbeat"}, {Name: "_signature", Type: "::Signature"}}, Documentation: []Text(nil)}}, HasEvents: true, Events: []EventMetadataV4{{Name: "HeartbeatReceived", Args: []Type{"AuthorityId"}, Documentation: []Text{" A new heartbeat was received from `AuthorityId`"}}, {Name: "AllGood", Args: []Type(nil), Documentation: []Text{" At the end of the session, no offence was committed."}}, {Name: "SomeOffline", Args: []Type{"Vec"}, Documentation: []Text{" At the end of the session, at least once validator was found to be offline."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8{{Name: "InvalidKey", Documentation: []Text{" Non existent public key."}}, {Name: "DuplicatedHeartbeat", Documentation: []Text{" Duplicated heartbeat."}}}}, {Name: "AuthorityDiscovery", HasStorage: false, Storage: StorageMetadata{Prefix: "", Items: []StorageFunctionMetadataV5(nil)}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "Offences", HasStorage: true, Storage: StorageMetadata{Prefix: "Offences", Items: []StorageFunctionMetadataV5{{Name: "Reports", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "ReportIdOf", Value: "OffenceDetails", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The primary structure that holds all offence records keyed by report identifiers."}}, {Name: "ConcurrentReportsIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: true, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "Kind", Key2: "OpaqueTimeSlot", Value: "Vec>", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" A vector of reports of the same kind that happened at the same time slot."}}, {Name: "ReportsByKindIndex", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "Kind", Value: "Vec", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Enumerates all reports of a kind along with the time they happened.", "", " All reports are sorted by the time of offence.", "", " Note that the actual type of this mapping is `Vec`, this is because values of", " different types are not supported at the moment so we are doing the manual serialization."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: true, Events: []EventMetadataV4{{Name: "Offence", Args: []Type{"Kind", "OpaqueTimeSlot"}, Documentation: []Text{" There is an offence reported of the given `kind` happened at the `session_index` and", " (kind-specific) time slot. This event is not deposited for duplicate slashes."}}}, Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "RandomnessCollectiveFlip", HasStorage: true, Storage: StorageMetadata{Prefix: "RandomnessCollectiveFlip", Items: []StorageFunctionMetadataV5{{Name: "RandomMaterial", Modifier: StorageFunctionModifierV0{IsOptional: false, IsDefault: true, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: true, AsType: "Vec", IsMap: false, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "", Value: "", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" Series of block headers from the last 81 blocks that acts as random seed material. This", " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", " the oldest hash."}}}}, HasCalls: true, Calls: []FunctionMetadataV4(nil), HasEvents: false, Events: []EventMetadataV4(nil), Constants: []ModuleConstantMetadataV6(nil), Errors: []ErrorMetadataV8(nil)}, {Name: "Nicks", HasStorage: true, Storage: StorageMetadata{Prefix: "Sudo", Items: []StorageFunctionMetadataV5{{Name: "NameOf", Modifier: StorageFunctionModifierV0{IsOptional: true, IsDefault: false, IsRequired: false}, Type: StorageFunctionTypeV5{IsType: false, AsType: "", IsMap: true, AsMap: MapTypeV4{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: true, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key: "T::AccountId", Value: "(Vec, BalanceOf)", Linked: false}, IsDoubleMap: false, AsDoubleMap: DoubleMapTypeV5{Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}, Key1: "", Key2: "", Value: "", Key2Hasher: StorageHasher{IsBlake2_128: false, IsBlake2_256: false, IsTwox128: false, IsTwox256: false, IsTwox64Concat: false}}}, Fallback: Bytes{0x0}, Documentation: []Text{" The lookup table for names."}}}}, HasCalls: true, Calls: []FunctionMetadataV4{{Name: "set_name", Args: []FunctionArgumentMetadata{{Name: "name", Type: "Vec"}}, Documentation: []Text{" Set an account's name. The name should be a UTF-8-encoded string by convention, though", " we don't check it.", "", " The name may not be more than `T::MaxLength` bytes, nor less than `T::MinLength` bytes.", "", " If the account doesn't already have a name, then a fee of `ReservationFee` is reserved", " in the account.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - At most one balance operation.", " - One storage read/write.", " - One event.", " # "}}, {Name: "clear_name", Args: []FunctionArgumentMetadata(nil), Documentation: []Text{" Clear an account's name and return the deposit. Fails if the account was not named.", "", " The dispatch origin for this call must be _Signed_.", "", " # ", " - O(1).", " - One balance operation.", " - One storage read/write.", " - One event.", " # "}}, {Name: "kill_name", Args: []FunctionArgumentMetadata{{Name: "target", Type: "::Source"}}, Documentation: []Text{" Remove an account's name and take charge of the deposit.", "", " Fails if `who` has not been named. The deposit is dealt with through `T::Slashed`", " imbalance handler.", "", " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.", "", " # ", " - O(1).", " - One unbalanced handler (probably a balance transfer)", " - One storage read/write.", " - One event.", " # "}}, {Name: "force_name", Args: []FunctionArgumentMetadata{{Name: "target", Type: "::Source"}, {Name: "name", Type: "Vec"}}, Documentation: []Text{" Set a third-party account's name with no deposit.", "", " No length checking is done on the name.", "", " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.", "", " # ", " - O(1).", " - At most one balance operation.", " - One storage read/write.", " - One event.", " # "}}}, HasEvents: true, Events: []EventMetadataV4{{Name: "NameSet", Args: []Type{"AccountId"}, Documentation: []Text{" A name was set."}}, {Name: "NameForced", Args: []Type{"AccountId"}, Documentation: []Text{" A name was forcibly set."}}, {Name: "NameChanged", Args: []Type{"AccountId"}, Documentation: []Text{" A name was changed."}}, {Name: "NameCleared", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A name was cleared, and the given balance returned."}}, {Name: "NameKilled", Args: []Type{"AccountId", "Balance"}, Documentation: []Text{" A name was removed and the given balance slashed."}}}, Constants: []ModuleConstantMetadataV6{{Name: "ReservationFee", Type: "BalanceOf", Value: Bytes{0x0, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, Documentation: []Text{" Reservation fee."}}, {Name: "MinLength", Type: "u32", Value: Bytes{0x3, 0x0, 0x0, 0x0}, Documentation: []Text{" The minimum length a name may be."}}, {Name: "MaxLength", Type: "u32", Value: Bytes{0x10, 0x0, 0x0, 0x0}, Documentation: []Text{" The maximum length a name may be."}}}, Errors: []ErrorMetadataV8{{Name: "TooShort", Documentation: []Text{" A name is too short."}}, {Name: "TooLong", Documentation: []Text{" A name is too long."}}, {Name: "Unnamed", Documentation: []Text{" An account in't named."}}}}}}} //nolint:lll,dupl diff --git a/types/multi_signature.go b/types/multi_signature.go index cb97126b4..e5c3e4a37 100644 --- a/types/multi_signature.go +++ b/types/multi_signature.go @@ -21,9 +21,9 @@ import "github.com/centrifuge/go-substrate-rpc-client/v4/scale" // MultiSignature type MultiSignature struct { IsEd25519 bool // 0:: Ed25519(Ed25519Signature) - AsEd25519 Signature // Ed25519Signature + AsEd25519 SignatureHash // Ed25519Signature IsSr25519 bool // 1:: Sr25519(Sr25519Signature) - AsSr25519 Signature // Sr25519Signature + AsSr25519 SignatureHash // Sr25519Signature IsEcdsa bool // 2:: Ecdsa(EcdsaSignature) AsEcdsa EcdsaSignature // EcdsaSignature } diff --git a/types/serde_test.go b/types/serde_test.go index dcd2d9c58..d578fdd5c 100644 --- a/types/serde_test.go +++ b/types/serde_test.go @@ -27,5 +27,5 @@ func TestSerDeOptionsFromMetadata(t *testing.T) { meta := DecodedMetadataV14Example() opts := SerDeOptionsFromMetadata(meta) - assert.False(t, opts.NoPalletIndices) + assert.True(t, opts.NoPalletIndices) } diff --git a/types/signature.go b/types/signature.go index 7c14bac7c..f12736715 100644 --- a/types/signature.go +++ b/types/signature.go @@ -18,18 +18,18 @@ package types import "fmt" -// Signature is a H512 -type Signature H512 +// SignatureHash is a H512 +type SignatureHash H512 -// NewSignature creates a new Signature type -func NewSignature(b []byte) Signature { - h := Signature{} +// NewSignature creates a new SignatureHash type +func NewSignature(b []byte) SignatureHash { + h := SignatureHash{} copy(h[:], b) return h } // Hex returns a hex string representation of the value (not of the encoded value) -func (h Signature) Hex() string { +func (h SignatureHash) Hex() string { return fmt.Sprintf("%#x", h[:]) } diff --git a/types/signature_test.go b/types/signature_test.go index 31b8dff1f..d8fb1d49a 100644 --- a/types/signature_test.go +++ b/types/signature_test.go @@ -26,9 +26,9 @@ import ( func TestSignature_EncodeDecode(t *testing.T) { AssertRoundtrip(t, NewSignature(hash64)) - AssertRoundTripFuzz[Signature](t, 100) - AssertDecodeNilData[Signature](t) - AssertEncodeEmptyObj[Signature](t, 64) + AssertRoundTripFuzz[SignatureHash](t, 100) + AssertDecodeNilData[SignatureHash](t) + AssertEncodeEmptyObj[SignatureHash](t, 64) } func TestSignature_EncodedLength(t *testing.T) { diff --git a/types/signed_block.go b/types/signed_block.go deleted file mode 100644 index 31c86dad8..000000000 --- a/types/signed_block.go +++ /dev/null @@ -1,28 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package types - -type SignedBlock struct { - Block Block `json:"block"` - Justification Justification `json:"justification"` -} - -// Block encoded with header and extrinsics -type Block struct { - Header Header - Extrinsics []Extrinsic -} diff --git a/types/storage_key_test.go b/types/storage_key_test.go index 78784d5cc..457d7d9ab 100644 --- a/types/storage_key_test.go +++ b/types/storage_key_test.go @@ -17,8 +17,8 @@ package types_test import ( - "encoding/binary" "fmt" + "github.com/centrifuge/go-substrate-rpc-client/v4/scale" "strings" "testing" @@ -34,137 +34,83 @@ const ( AlicePubKey = "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d" ) -func TestCreateStorageKeyArgValidationForPlainKey(t *testing.T) { - for _, m := range []*Metadata{ExamplaryMetadataV13, DecodedMetadataV14Example()} { +type KeyID struct { + Hash Hash + KeyPurpose uint +} + +func (k KeyID) Encode(encoder scale.Encoder) error { + if err := encoder.Encode(k.Hash); err != nil { + return err + } + + return encoder.PushByte(byte(k.KeyPurpose)) +} + +func TestCreateStorageKeyArgValidationForDoubleMapKey(t *testing.T) { + for _, m := range []*Metadata{DecodedMetadataV14Example()} { fmt.Println("Testing against metadata v", m.Version) - _, err := CreateStorageKey(m, "Timestamp", "Now") - assert.NoError(t, err) + _, err := CreateStorageKey(m, "Keystore", "Keys") + assert.EqualError(t, err, "Keystore:Keys is a map, therefore requires that number of arguments should exactly match number of hashers in metadata. Expected: 2, received: 0") - _, err = CreateStorageKey(m, "Timestamp", "Now", nil) - assert.NoError(t, err) + _, err = CreateStorageKey(m, "Keystore", "Keys", nil) + assert.EqualError(t, err, "Keystore:Keys is a map, therefore requires that number of arguments should exactly match number of hashers in metadata. Expected: 2, received: 0") - _, err = CreateStorageKey(m, "Timestamp", "Now", nil, []byte{}) - assert.NoError(t, err) + _, err = CreateStorageKey(m, "Keystore", "Keys", nil, []byte{}) + assert.EqualError(t, err, "Keystore:Keys is a map, therefore requires that number of arguments should exactly match number of hashers in metadata. Expected: 2, received: 0") - _, err = CreateStorageKey(m, "Timestamp", "Now", nil, []byte{0x01}) + _, err = CreateStorageKey(m, "Keystore", "Keys", nil, []byte{0x01}) assert.EqualError(t, err, "non-nil arguments cannot be preceded by nil arguments") - _, err = CreateStorageKey(m, "Timestamp", "Now", []byte{0x01}) - assert.EqualError(t, err, "Timestamp:Now is a plain key, therefore requires no argument. received: 1") + _, err = CreateStorageKey(m, "Keystore", "Keys", []byte{0x01}) + assert.EqualError(t, err, "Keystore:Keys is a map, therefore requires that number of arguments should exactly match number of hashers in metadata. Expected: 2, received: 1") - expectedKeyBuilder := strings.Builder{} - hexStr, err := Hex(xxhash.New128([]byte("Timestamp")).Sum(nil)) + // Serialize EraIndex and AccountId + accountID, err := NewAccountIDFromHexString(AlicePubKey) assert.NoError(t, err) - expectedKeyBuilder.WriteString(hexStr) - hexStr, err = Hex(xxhash.New128([]byte("Now")).Sum(nil)) + encodedAccountID, err := Encode(accountID) assert.NoError(t, err) - expectedKeyBuilder.WriteString(strings.TrimPrefix(hexStr, "0x")) - key, err := CreateStorageKey(m, "Timestamp", "Now") - assert.NoError(t, err) - hex, err := Hex(key) + keyID := KeyID{ + Hash: Hash{1, 2, 3, 4}, + KeyPurpose: 5, + } + encodedKeyID, err := Encode(keyID) assert.NoError(t, err) - assert.Equal(t, expectedKeyBuilder.String(), hex) - } - -} - -func TestCreateStorageKeyArgValidationForMapKey(t *testing.T) { - for _, m := range []*Metadata{ExamplaryMetadataV13, DecodedMetadataV14Example()} { - fmt.Println("Testing against metadata v", m.Version) - - _, err := CreateStorageKey(m, "System", "Account") - assert.EqualError( - t, - err, - "System:Account is a map, therefore requires that number of arguments should exactly match number of hashers in metadata. Expected: 1, received: 0", - ) - - _, err = CreateStorageKey(m, "System", "Account", nil) - assert.EqualError( - t, - err, - "System:Account is a map, therefore requires that number of arguments should exactly match number of hashers in metadata. Expected: 1, received: 0", - ) - - _, err = CreateStorageKey(m, "System", "Account", nil, []byte{}) - assert.EqualError( - t, - err, - "System:Account is a map, therefore requires that number of arguments should exactly match number of hashers in metadata. Expected: 1, received: 0", - ) - - _, err = CreateStorageKey(m, "System", "Account", nil, []byte{0x01}) - assert.EqualError(t, err, "non-nil arguments cannot be preceded by nil arguments") - - accountIdSerialized := MustHexDecodeString(AlicePubKey) // Build expected answer expectedKeyBuilder := strings.Builder{} - hexStr, err := Hex(xxhash.New128([]byte("System")).Sum(nil)) + + hexStr, err := Hex(xxhash.New128([]byte("Keystore")).Sum(nil)) assert.NoError(t, err) expectedKeyBuilder.WriteString(hexStr) - hexStr, err = Hex(xxhash.New128([]byte("Account")).Sum(nil)) + + hexStr, err = Hex(xxhash.New128([]byte("Keys")).Sum(nil)) assert.NoError(t, err) expectedKeyBuilder.WriteString(strings.TrimPrefix(hexStr, "0x")) - accountIdHasher, err := hash.NewBlake2b128Concat(nil) + + accountIDHash, err := hash.NewBlake2b128Concat(nil) assert.NoError(t, err) - _, err = accountIdHasher.Write(accountIdSerialized) + + _, err = accountIDHash.Write(encodedAccountID) assert.NoError(t, err) - hexStr, err = Hex(accountIdHasher.Sum(nil)) + + hexStr, err = Hex(accountIDHash.Sum(nil)) assert.NoError(t, err) expectedKeyBuilder.WriteString(strings.TrimPrefix(hexStr, "0x")) - key, err := CreateStorageKey(m, "System", "Account", accountIdSerialized) + keyIDHash, err := hash.NewBlake2b128Concat(nil) assert.NoError(t, err) - hex, err := Hex(key) - assert.NoError(t, err) - assert.Equal(t, expectedKeyBuilder.String(), hex) - } -} - -func TestCreateStorageKeyArgValidationForDoubleMapKey(t *testing.T) { - for _, m := range []*Metadata{ExamplaryMetadataV13, DecodedMetadataV14Example()} { - fmt.Println("Testing against metadata v", m.Version) - - _, err := CreateStorageKey(m, "Staking", "ErasStakers") - assert.EqualError(t, err, "Staking:ErasStakers is a map, therefore requires that number of arguments should exactly match number of hashers in metadata. Expected: 2, received: 0") - - _, err = CreateStorageKey(m, "Staking", "ErasStakers", nil) - assert.EqualError(t, err, "Staking:ErasStakers is a map, therefore requires that number of arguments should exactly match number of hashers in metadata. Expected: 2, received: 0") - - _, err = CreateStorageKey(m, "Staking", "ErasStakers", nil, []byte{}) - assert.EqualError(t, err, "Staking:ErasStakers is a map, therefore requires that number of arguments should exactly match number of hashers in metadata. Expected: 2, received: 0") - - _, err = CreateStorageKey(m, "Staking", "ErasStakers", nil, []byte{0x01}) - assert.EqualError(t, err, "non-nil arguments cannot be preceded by nil arguments") - _, err = CreateStorageKey(m, "Staking", "ErasStakers", []byte{0x01}) - assert.EqualError(t, err, "Staking:ErasStakers is a map, therefore requires that number of arguments should exactly match number of hashers in metadata. Expected: 2, received: 1") - - // Serialize EraIndex and AccountId - accountIdSerialized := MustHexDecodeString(AlicePubKey) - var eraIndex uint32 = 3 - eraIndexSerialized := make([]byte, 4) - binary.LittleEndian.PutUint32(eraIndexSerialized, eraIndex) - - // Build expected answer - expectedKeyBuilder := strings.Builder{} - hexStr, err := Hex(xxhash.New128([]byte("Staking")).Sum(nil)) - assert.NoError(t, err) - expectedKeyBuilder.WriteString(hexStr) - hexStr, err = Hex(xxhash.New128([]byte("ErasStakers")).Sum(nil)) - assert.NoError(t, err) - expectedKeyBuilder.WriteString(strings.TrimPrefix(hexStr, "0x")) - hexStr, err = Hex(xxhash.New64Concat(eraIndexSerialized).Sum(nil)) + _, err = keyIDHash.Write(encodedKeyID) assert.NoError(t, err) - expectedKeyBuilder.WriteString(strings.TrimPrefix(hexStr, "0x")) - hexStr, err = Hex(xxhash.New64Concat(accountIdSerialized).Sum(nil)) + + hexStr, err = Hex(keyIDHash.Sum(nil)) assert.NoError(t, err) expectedKeyBuilder.WriteString(strings.TrimPrefix(hexStr, "0x")) - key, err := CreateStorageKey(m, "Staking", "ErasStakers", eraIndexSerialized, accountIdSerialized) + key, err := CreateStorageKey(m, "Keystore", "Keys", encodedAccountID, encodedKeyID) assert.NoError(t, err) hex, err := Hex(key) assert.NoError(t, err) @@ -173,70 +119,6 @@ func TestCreateStorageKeyArgValidationForDoubleMapKey(t *testing.T) { } } -func TestCreateStorageKeyArgValidationForNMapKey(t *testing.T) { - m := ExamplaryMetadataV13 - //"Assets", "Approvals", "AssetId(u32)", "AccountId", "AccountId" - - _, err := CreateStorageKey(m, "Assets", "Approvals") - assert.EqualError(t, err, "Assets:Approvals is a map, therefore requires that number of arguments "+ - "should exactly match number of hashers in metadata. Expected: 3, received: 0") - - _, err = CreateStorageKey(m, "Assets", "Approvals", nil) - assert.EqualError(t, err, "Assets:Approvals is a map, therefore requires that number of arguments "+ - "should exactly match number of hashers in metadata. Expected: 3, received: 0") - - _, err = CreateStorageKey(m, "Assets", "Approvals", nil, []byte{}) - assert.EqualError(t, err, "Assets:Approvals is a map, therefore requires that number of arguments "+ - "should exactly match number of hashers in metadata. Expected: 3, received: 0") - - _, err = CreateStorageKey(m, "Assets", "Approvals", nil, []byte{0x01}) - assert.EqualError(t, err, "non-nil arguments cannot be preceded by nil arguments") - - _, err = CreateStorageKey(m, "Assets", "Approvals", []byte{0x01}) - assert.EqualError(t, err, "Assets:Approvals is a map, therefore requires that number of arguments "+ - "should exactly match number of hashers in metadata. Expected: 3, received: 1") - - // Serialize EraIndex and AccountId - var assetId uint32 = 3 - assetIdSerialized := make([]byte, 4) - binary.LittleEndian.PutUint32(assetIdSerialized, assetId) - // Will be used both as owner as well as delegate - accountIdSerialized := MustHexDecodeString(AlicePubKey) - - // Build expected answer - expectedKeyBuilder := strings.Builder{} - hexStr, err := Hex(xxhash.New128([]byte("Assets")).Sum(nil)) - assert.NoError(t, err) - expectedKeyBuilder.WriteString(hexStr) - hexStr, err = Hex(xxhash.New128([]byte("Approvals")).Sum(nil)) - assert.NoError(t, err) - expectedKeyBuilder.WriteString(strings.TrimPrefix(hexStr, "0x")) - // Hashing serialized asset id - assetIdHasher, err := hash.NewBlake2b128Concat(nil) - assert.NoError(t, err) - _, err = assetIdHasher.Write(assetIdSerialized) - assert.NoError(t, err) - hexStr, err = Hex(assetIdHasher.Sum(nil)) - expectedKeyBuilder.WriteString(strings.TrimPrefix(hexStr, "0x")) - // Hashing serialized account id - accountIdHasher, err := hash.NewBlake2b128Concat(nil) - assert.NoError(t, err) - _, err = accountIdHasher.Write(accountIdSerialized) - assert.NoError(t, err) - hexStr, err = Hex(accountIdHasher.Sum(nil)) - // Writing it multiple times as both owner and delegate - expectedKeyBuilder.WriteString(strings.TrimPrefix(hexStr, "0x")) - expectedKeyBuilder.WriteString(strings.TrimPrefix(hexStr, "0x")) - - key, err := CreateStorageKey(m, "Assets", "Approvals", assetIdSerialized, accountIdSerialized, - accountIdSerialized) - assert.NoError(t, err) - hex, err := Hex(key) - assert.NoError(t, err) - - assert.Equal(t, expectedKeyBuilder.String(), hex) -} - func TestCreateStorageKeyPlainV14(t *testing.T) { m := DecodedMetadataV14Example() @@ -247,77 +129,6 @@ func TestCreateStorageKeyPlainV14(t *testing.T) { assert.Equal(t, "0xf0c365c3cf59d671eb72da0e7a4113c49f1f0515f462cdcf84e0f1d6045dfcbb", hex) } -func TestCreateStorageKeyPlainV13(t *testing.T) { - m := ExamplaryMetadataV13 - - key, err := CreateStorageKey(m, "Timestamp", "Now") - assert.NoError(t, err) - hex, err := Hex(key) - assert.NoError(t, err) - assert.Equal(t, "0xf0c365c3cf59d671eb72da0e7a4113c49f1f0515f462cdcf84e0f1d6045dfcbb", hex) -} - -func TestCreateStorageKeyPlainV10(t *testing.T) { - m := ExamplaryMetadataV10 - - key, err := CreateStorageKey(m, "Timestamp", "Now") - assert.NoError(t, err) - hex, err := Hex(key) - assert.NoError(t, err) - assert.Equal(t, "0xf0c365c3cf59d671eb72da0e7a4113c49f1f0515f462cdcf84e0f1d6045dfcbb", hex) -} - -func TestCreateStorageKeyPlainV9(t *testing.T) { - m := ExamplaryMetadataV9 - - key, err := CreateStorageKey(m, "Timestamp", "Now") - assert.NoError(t, err) - hex, err := Hex(key) - assert.NoError(t, err) - assert.Equal(t, "0xf0c365c3cf59d671eb72da0e7a4113c49f1f0515f462cdcf84e0f1d6045dfcbb", hex) -} - -func TestCreateStorageKeyPlainV4(t *testing.T) { - m := ExamplaryMetadataV4 - - key, err := CreateStorageKey(m, "Timestamp", "Now") - assert.NoError(t, err) - hex, err := Hex(key) - assert.NoError(t, err) - assert.Equal(t, "0x0e4944cfd98d6f4cc374d16f5a4e3f9c", hex) -} - -func TestCreateStorageKeyMapV10(t *testing.T) { - b := MustHexDecodeString(AlicePubKey) - m := ExamplaryMetadataV10 - key, err := CreateStorageKey(m, "System", "AccountNonce", b) - assert.NoError(t, err) - hex, err := Hex(key) - assert.NoError(t, err) - assert.Equal(t, "0x26aa394eea5630e07c48ae0c9558cef79c2f82b23e5fd031fb54c292794b4cc42e3fb4c297a84c5cebc0e78257d213d0927ccc7596044c6ba013dd05522aacba", hex) //nolint:lll -} - -func TestCreateStorageKeyMapV9(t *testing.T) { - b := MustHexDecodeString(AlicePubKey) - m := ExamplaryMetadataV9 - key, err := CreateStorageKey(m, "System", "AccountNonce", b) - assert.NoError(t, err) - hex, err := Hex(key) - assert.NoError(t, err) - assert.Equal(t, "0x26aa394eea5630e07c48ae0c9558cef79c2f82b23e5fd031fb54c292794b4cc42e3fb4c297a84c5cebc0e78257d213d0927ccc7596044c6ba013dd05522aacba", hex) //nolint:lll -} - -func TestCreateStorageKeyMapV13(t *testing.T) { - m := ExamplaryMetadataV13 - - b := MustHexDecodeString(AlicePubKey) - key, err := CreateStorageKey(m, "System", "Account", b) - assert.NoError(t, err) - hex, err := Hex(key) - assert.NoError(t, err) - assert.Equal(t, "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", hex) -} - func TestCreateStorageKeyMapV14(t *testing.T) { m := DecodedMetadataV14Example() @@ -329,44 +140,6 @@ func TestCreateStorageKeyMapV14(t *testing.T) { assert.Equal(t, "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", hex) } -func TestCreateStorageKeyDoubleMapV10(t *testing.T) { - m := ExamplaryMetadataV10 - key, err := CreateStorageKey(m, "Session", "NextKeys", - []byte{0x34, 0x3a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6b, 0x65, 0x79, 0x73}, - []byte{0xbe, 0x5d, 0xdb, 0x15, 0x79, 0xb7, 0x2e, 0x84, 0x52, 0x4f, 0xc2, 0x9e, 0x78, 0x60, 0x9e, 0x3c, - 0xaf, 0x42, 0xe8, 0x5a, 0xa1, 0x18, 0xeb, 0xfe, 0x0b, 0x0a, 0xd4, 0x04, 0xb5, 0xbd, 0xd2, 0x5f}, - ) - assert.NoError(t, err) - hex, err := Hex(key) - assert.NoError(t, err) - assert.Equal(t, "0x"+ - "cec5070d609dd3497f72bde07fc96ba0"+ // twox 128 - "4c014e6bf8b8c2c011e7290b85696bb3"+ // twox 128 - "9fe6329cc0b39e09"+ // twox 64 - "343a73657373696f6e3a6b657973"+ // twox 64 (concat, with length) - "4724e5390fcf0d08afc9608ff4c45df257266ae599ac7a32baba26155dcf4402", // blake2 - hex) //nolint:lll -} - -func TestCreateStorageKeyDoubleMapV9(t *testing.T) { - m := ExamplaryMetadataV9 - key, err := CreateStorageKey(m, "Session", "NextKeys", - []byte{0x34, 0x3a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x6b, 0x65, 0x79, 0x73}, - []byte{0xbe, 0x5d, 0xdb, 0x15, 0x79, 0xb7, 0x2e, 0x84, 0x52, 0x4f, 0xc2, 0x9e, 0x78, 0x60, 0x9e, 0x3c, - 0xaf, 0x42, 0xe8, 0x5a, 0xa1, 0x18, 0xeb, 0xfe, 0x0b, 0x0a, 0xd4, 0x04, 0xb5, 0xbd, 0xd2, 0x5f}, - ) - assert.NoError(t, err) - hex, err := Hex(key) - assert.NoError(t, err) - assert.Equal(t, "0x"+ - "cec5070d609dd3497f72bde07fc96ba0"+ // twox 128 - "4c014e6bf8b8c2c011e7290b85696bb3"+ // twox 128 - "9fe6329cc0b39e09"+ // twox 64 - "343a73657373696f6e3a6b657973"+ // twox 64 (concat, with length) - "4724e5390fcf0d08afc9608ff4c45df257266ae599ac7a32baba26155dcf4402", // blake2 - hex) //nolint:lll -} - func TestStorageKey_EncodedLength(t *testing.T) { AssertEncodedLength(t, []EncodedLengthAssert{ {NewStorageKey(MustHexDecodeString("0x00")), 1}, diff --git a/types/test/README.md b/types/test/README.md deleted file mode 100644 index a11a013e3..000000000 --- a/types/test/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# Types Test - -The purpose of this test is to ensure that any types can be decoded successfully by using live blockchain -data (i.e. metadata and storage). In an effort to remove dependencies on external service providers such as `subscan` for this test, -the test data can be generated on demand by using the [test-gen](test-gen/main.go) tool. - -The generation of test data and test execution can be triggered via the -`generate-test-data` and `test-types-decode` targets, see [Makefile](../../Makefile). - -## Test data generation - -The test data is generated by invoking the [test-gen](test-gen/main.go) tool via `go:generate` in [types_test](types_test.go), -and it's done based on the information provided for each field of the `types.EventRecords` struct found [here](../event_record.go). - -### Parsing - -#### Field name - -The field name, e.g. `Auctions_AuctionStarted`, is used for generating the request data for querying the `subscan` API -for that particular event, this will result in a request that has the parameters `module=Auctions` -and `call=AuctionStarted`. - -#### Field tags - -Field tags are used for providing information related to the endpoints used for retrieving the events defined by the above field names. - -The following tags are available: -- `test-gen-skip` - if set to `true`, the field will be skipped, it is used when there are no events available for that -particular pallet in any of the blockchains that are relevant when testing. - - -- `test-gen-blockchain` - the name of the blockchain that will be used for querying the events. This blockchain name -is used to generate the API / WS URLs based on the `subscan` / `onfinality` formats defined in the [parser](test-gen/parser.go): - - `WsURLFormat = "wss://%s.api.onfinality.io/public-ws"` - - `APIURLFormat = "https://%s.api.subscan.io/api/scan/events"` - - -- `test-gen-api` and `test-gen-ws` - the specific API / WS URLs to be used for generating the test data. - -### Retrieval - -Once the fields are parsed accordingly, the actual test data is retrieved by: -1. Querying the API for each event and the last block number where that event was encountered. -2. Querying the WS for retrieving the latest metadata and the storage data under the `System_Events` storage key, -for the block number retrieved in the previous step. -3. Saving the raw bytes of the metadata and storage data. \ No newline at end of file diff --git a/types/test/test-gen/client.go b/types/test/test-gen/client.go deleted file mode 100644 index 61fa6f591..000000000 --- a/types/test/test-gen/client.go +++ /dev/null @@ -1,251 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "bytes" - "context" - "encoding/json" - "errors" - "fmt" - "io/ioutil" - "net/http" - "time" - - "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" - - "github.com/centrifuge/go-substrate-rpc-client/v4/types" - - gsrpc "github.com/centrifuge/go-substrate-rpc-client/v4" -) - -type ClientOpts struct { - Blockchain string - APIURL string - WsURL string -} - -type ReqData struct { - Module string - Call string -} - -type Client struct { - blockchain string - - apiURL string - http *http.Client - - wsURL string - sapi *gsrpc.SubstrateAPI -} - -func NewClient(opts ClientOpts) (*Client, error) { - sapi, err := gsrpc.NewSubstrateAPI(opts.WsURL) - - if err != nil { - return nil, fmt.Errorf("couldn't create substrate client: %w", err) - } - - return &Client{ - blockchain: opts.Blockchain, - apiURL: opts.APIURL, - http: http.DefaultClient, - wsURL: opts.WsURL, - sapi: sapi, - }, nil -} - -type EventListResponseEvent struct { - EventIndex string `json:"event_index"` - BlockNum int `json:"block_num"` - ExtrinsicIdx int `json:"extrinsic_idx"` - ModuleID string `json:"module_id"` - EventID string `json:"event_id"` - Params string `json:"params"` - Phase int `json:"phase"` - EventIdx int `json:"event_idx"` - ExtrinsicHash string `json:"extrinsic_hash"` - Finalized bool `json:"finalized"` - BlockTimestamp int `json:"block_timestamp"` -} - -type EventListResponseData struct { - Count int `json:"count"` - Events []EventListResponseEvent `json:"events"` -} - -type EventListResponseBody struct { - Code int `json:"code"` - Message string `json:"message"` - GeneratedAt int `json:"generated_at"` - Data EventListResponseData `json:"data"` -} - -func (c *Client) GetTestData(ctx context.Context, reqData *ReqData) (*TestData, error) { - blockNumber, err := c.getBlockNumber(ctx, reqData) - - if err != nil { - return nil, fmt.Errorf("couldn't get block number: %w", err) - } - - return c.getTestData(blockNumber) -} - -type TestData struct { - Blockchain string - BlockNumber int - - APIURL string - WsURL string - - Meta []byte - StorageData []byte -} - -func (c *Client) getTestData(blockNumber int) (*TestData, error) { - meta, err := c.sapi.RPC.State.GetMetadataLatest() - - if err != nil { - return nil, fmt.Errorf("couldn't get latest metadata: %w", err) - } - - encodedMetadata, err := codec.Encode(meta) - - if err != nil { - return nil, fmt.Errorf("couldn't encode metadata: %w", err) - } - - key, err := types.CreateStorageKey(meta, "System", "Events", nil) - - if err != nil { - return nil, fmt.Errorf("couldn't create storage key: %w", err) - } - - bh, err := c.sapi.RPC.Chain.GetBlockHash(uint64(blockNumber)) - - if err != nil { - return nil, fmt.Errorf("couldn't get block hash '%d': %w", blockNumber, err) - } - - storageData, err := c.sapi.RPC.State.GetStorageRaw(key, bh) - - if err != nil { - return nil, fmt.Errorf("couldn't get raw storage data with key '%s': %w", key, err) - } - - return &TestData{ - Blockchain: c.blockchain, - BlockNumber: blockNumber, - APIURL: c.apiURL, - WsURL: c.wsURL, - Meta: encodedMetadata, - StorageData: *storageData, - }, nil -} - -const ( - maxBlockAge = 180 * 24 * time.Hour // 180 days -) - -var ( - errNoEventsFound = errors.New("no events found") - errBlockIsTooOld = errors.New("block is too old") -) - -func (c *Client) getBlockNumber(ctx context.Context, reqData *ReqData) (int, error) { - req, err := c.createRequest(ctx, reqData) - - if err != nil { - return 0, fmt.Errorf("couldn't create request: %w", err) - } - - res, err := c.http.Do(req) - - if err != nil { - return 0, fmt.Errorf("couldn't perform request: %w", err) - } - - defer res.Body.Close() - - b, err := ioutil.ReadAll(res.Body) - - if err != nil { - return 0, fmt.Errorf("couldn't read response body: %w", err) - } - - var r EventListResponseBody - - if err := json.Unmarshal(b, &r); err != nil { - return 0, fmt.Errorf("couldn't unmarshal response body: %w", err) - } - - if len(r.Data.Events) == 0 { - return 0, errNoEventsFound - } - - firstEvent := r.Data.Events[0] - - blockTimestamp := time.Unix(int64(firstEvent.BlockTimestamp), 0) - - if time.Since(blockTimestamp) > maxBlockAge { - return 0, errBlockIsTooOld - } - - return firstEvent.BlockNum, nil -} - -type EventListReqBody struct { - Row int `json:"row"` - Page int `json:"page"` - Module string `json:"module"` - Call string `json:"call"` -} - -var ( - errMissingModuleName = errors.New("missing module name") - errMissingCallName = errors.New("missing call name") -) - -func (c *Client) createRequest(ctx context.Context, reqData *ReqData) (*http.Request, error) { - if reqData.Module == "" { - return nil, errMissingModuleName - } - - if reqData.Call == "" { - return nil, errMissingCallName - } - - b, err := json.Marshal(EventListReqBody{ - Row: 1, - Page: 0, - Module: reqData.Module, - Call: reqData.Call, - }) - - if err != nil { - return nil, fmt.Errorf("couldn't marshal request body: %w", err) - } - - req, err := http.NewRequestWithContext(ctx, http.MethodPost, c.apiURL, bytes.NewReader(b)) - - if err != nil { - return nil, fmt.Errorf("couldn't create request: %w", err) - } - - return req, nil -} diff --git a/types/test/test-gen/client_test.go b/types/test/test-gen/client_test.go deleted file mode 100644 index 162865d10..000000000 --- a/types/test/test-gen/client_test.go +++ /dev/null @@ -1,737 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "context" - "encoding/json" - "errors" - "io/ioutil" - "net" - "net/http" - "net/http/httptest" - "testing" - "time" - - "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" - - gsrpc "github.com/centrifuge/go-substrate-rpc-client/v4" - mockClient "github.com/centrifuge/go-substrate-rpc-client/v4/client/mocks" - mockChain "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/chain/mocks" - mockState "github.com/centrifuge/go-substrate-rpc-client/v4/rpc/state/mocks" - - "github.com/centrifuge/go-substrate-rpc-client/v4/rpc" - "github.com/centrifuge/go-substrate-rpc-client/v4/rpcmocksrv" - "github.com/centrifuge/go-substrate-rpc-client/v4/types" - "github.com/stretchr/testify/assert" -) - -type mockSrv struct{} - -func (m *mockSrv) GetMetadata(hash *string) string { - return types.ExamplaryMetadataV4String -} - -func TestClient_NewClient(t *testing.T) { - opts := ClientOpts{} - - c, err := NewClient(opts) - assert.Error(t, err) - assert.Nil(t, c) - - s := rpcmocksrv.New() - defer s.Stop() - - err = s.RegisterName("state", &mockSrv{}) - assert.NoError(t, err) - - opts = ClientOpts{ - WsURL: s.URL, - } - - c, err = NewClient(opts) - assert.NoError(t, err) - assert.NotNil(t, c) -} - -func TestClient_GetTestData(t *testing.T) { - chainMock := mockChain.NewChain(t) - stateMock := mockState.NewState(t) - clientMock := mockClient.NewClient(t) - - moduleName := "test-module" - callName := "test-call" - - blockNumber := 123 - - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - body, err := ioutil.ReadAll(r.Body) - - assert.Nil(t, err) - - var rb EventListReqBody - - err = json.Unmarshal(body, &rb) - assert.Nil(t, err) - - assert.Equal(t, rb.Module, moduleName) - assert.Equal(t, rb.Call, callName) - assert.Equal(t, rb.Page, 0) - assert.Equal(t, rb.Row, 1) - - res := EventListResponseBody{ - Data: EventListResponseData{ - Count: 1, - Events: []EventListResponseEvent{ - { - BlockNum: blockNumber, - BlockTimestamp: int(time.Now().Unix()), - }, - }, - }, - } - - resBytes, err := json.Marshal(res) - - assert.Nil(t, err) - - _, err = w.Write(resBytes) - - assert.Nil(t, err) - })) - - defer ts.Close() - - var metadata types.Metadata - err := codec.DecodeFromHex(types.MetadataV14Data, &metadata) - assert.EqualValues(t, metadata.Version, 14) - assert.Nil(t, err) - - encodedMeta, err := codec.Encode(metadata) - - assert.Nil(t, err) - - stateMock.On("GetMetadataLatest").Return(&metadata, nil) - - hash := types.NewHash([]byte{0, 1, 2}) - - chainMock.On("GetBlockHash", uint64(blockNumber)).Return(hash, nil) - - key, err := types.CreateStorageKey(&metadata, "System", "Events", nil) - - assert.Nil(t, err) - - storageData := types.StorageDataRaw([]byte{2, 3, 4}) - - stateMock.On("GetStorageRaw", key, hash).Return(&storageData, nil) - - sapi := &gsrpc.SubstrateAPI{ - RPC: &rpc.RPC{ - Chain: chainMock, - State: stateMock, - }, - Client: clientMock, - } - - client := &Client{ - apiURL: ts.URL, - http: http.DefaultClient, - sapi: sapi, - } - - testData, err := client.GetTestData(context.Background(), &ReqData{ - Module: moduleName, - Call: callName, - }) - - assert.Nil(t, err) - - assert.Equal(t, testData.StorageData, []byte(storageData)) - assert.Equal(t, testData.Meta, encodedMeta) -} - -func TestClient_GetTestData_InvalidRequestData(t *testing.T) { - client := &Client{} - - _, err := client.GetTestData(context.Background(), &ReqData{ - Call: "test", - }) - - assert.True(t, errors.Is(err, errMissingModuleName)) - - _, err = client.GetTestData(context.Background(), &ReqData{ - Module: "test", - }) - - assert.True(t, errors.Is(err, errMissingCallName)) -} - -func TestClient_GetTestData_HttpError(t *testing.T) { - client := &Client{ - apiURL: "http://localhost/non-there", - http: http.DefaultClient, - } - - _, err := client.GetTestData(context.Background(), &ReqData{ - Module: "moduleName", - Call: "callName", - }) - - var netErr *net.OpError - assert.True(t, errors.As(err, &netErr)) -} - -func TestClient_GetTestData_NoResBody(t *testing.T) { - moduleName := "test-module" - callName := "test-call" - - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - body, err := ioutil.ReadAll(r.Body) - - assert.Nil(t, err) - - var rb EventListReqBody - - err = json.Unmarshal(body, &rb) - assert.Nil(t, err) - - assert.Equal(t, rb.Module, moduleName) - assert.Equal(t, rb.Call, callName) - assert.Equal(t, rb.Page, 0) - assert.Equal(t, rb.Row, 1) - })) - - defer ts.Close() - - client := &Client{ - apiURL: ts.URL, - http: http.DefaultClient, - } - - _, err := client.GetTestData(context.Background(), &ReqData{ - Module: moduleName, - Call: callName, - }) - - var syntaxErr *json.SyntaxError - assert.True(t, errors.As(err, &syntaxErr)) -} - -func TestClient_GetTestData_NoEvents(t *testing.T) { - moduleName := "test-module" - callName := "test-call" - - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - body, err := ioutil.ReadAll(r.Body) - - assert.Nil(t, err) - - var rb EventListReqBody - - err = json.Unmarshal(body, &rb) - assert.Nil(t, err) - - assert.Equal(t, rb.Module, moduleName) - assert.Equal(t, rb.Call, callName) - assert.Equal(t, rb.Page, 0) - assert.Equal(t, rb.Row, 1) - - res := EventListResponseBody{ - Data: EventListResponseData{ - Count: 1, - Events: []EventListResponseEvent{}, - }, - } - - resBytes, err := json.Marshal(res) - - assert.Nil(t, err) - - _, err = w.Write(resBytes) - - assert.Nil(t, err) - })) - - defer ts.Close() - - client := &Client{ - apiURL: ts.URL, - http: http.DefaultClient, - } - - _, err := client.GetTestData(context.Background(), &ReqData{ - Module: moduleName, - Call: callName, - }) - - assert.True(t, errors.Is(err, errNoEventsFound)) -} - -func TestClient_GetTestData_BlockTooOld(t *testing.T) { - moduleName := "test-module" - callName := "test-call" - - blockNumber := 123 - - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - body, err := ioutil.ReadAll(r.Body) - - assert.Nil(t, err) - - var rb EventListReqBody - - err = json.Unmarshal(body, &rb) - assert.Nil(t, err) - - assert.Equal(t, rb.Module, moduleName) - assert.Equal(t, rb.Call, callName) - assert.Equal(t, rb.Page, 0) - assert.Equal(t, rb.Row, 1) - - res := EventListResponseBody{ - Data: EventListResponseData{ - Count: 1, - Events: []EventListResponseEvent{ - { - BlockNum: blockNumber, - BlockTimestamp: int(time.Now().Unix() - maxBlockAge.Milliseconds()), - }, - }, - }, - } - - resBytes, err := json.Marshal(res) - - assert.Nil(t, err) - - _, err = w.Write(resBytes) - - assert.Nil(t, err) - })) - - defer ts.Close() - - client := &Client{ - apiURL: ts.URL, - http: http.DefaultClient, - } - - _, err := client.GetTestData(context.Background(), &ReqData{ - Module: moduleName, - Call: callName, - }) - - assert.True(t, errors.Is(err, errBlockIsTooOld)) -} - -func TestClient_GetTestData_MetadataError(t *testing.T) { - chainMock := mockChain.NewChain(t) - stateMock := mockState.NewState(t) - clientMock := mockClient.NewClient(t) - - moduleName := "test-module" - callName := "test-call" - - blockNumber := 123 - - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - body, err := ioutil.ReadAll(r.Body) - - assert.Nil(t, err) - - var rb EventListReqBody - - err = json.Unmarshal(body, &rb) - assert.Nil(t, err) - - assert.Equal(t, rb.Module, moduleName) - assert.Equal(t, rb.Call, callName) - assert.Equal(t, rb.Page, 0) - assert.Equal(t, rb.Row, 1) - - res := EventListResponseBody{ - Data: EventListResponseData{ - Count: 1, - Events: []EventListResponseEvent{ - { - BlockNum: blockNumber, - BlockTimestamp: int(time.Now().Unix()), - }, - }, - }, - } - - resBytes, err := json.Marshal(res) - - assert.Nil(t, err) - - _, err = w.Write(resBytes) - - assert.Nil(t, err) - })) - - defer ts.Close() - - metaErr := errors.New("metadata error") - - stateMock.On("GetMetadataLatest").Return(nil, metaErr) - - sapi := &gsrpc.SubstrateAPI{ - RPC: &rpc.RPC{ - Chain: chainMock, - State: stateMock, - }, - Client: clientMock, - } - - client := &Client{ - apiURL: ts.URL, - http: http.DefaultClient, - sapi: sapi, - } - - _, err := client.GetTestData(context.Background(), &ReqData{ - Module: moduleName, - Call: callName, - }) - - assert.True(t, errors.Is(err, metaErr)) -} - -func TestClient_GetTestData_InvalidMetadata(t *testing.T) { - chainMock := mockChain.NewChain(t) - stateMock := mockState.NewState(t) - clientMock := mockClient.NewClient(t) - - moduleName := "test-module" - callName := "test-call" - - blockNumber := 123 - - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - body, err := ioutil.ReadAll(r.Body) - - assert.Nil(t, err) - - var rb EventListReqBody - - err = json.Unmarshal(body, &rb) - assert.Nil(t, err) - - assert.Equal(t, rb.Module, moduleName) - assert.Equal(t, rb.Call, callName) - assert.Equal(t, rb.Page, 0) - assert.Equal(t, rb.Row, 1) - - res := EventListResponseBody{ - Data: EventListResponseData{ - Count: 1, - Events: []EventListResponseEvent{ - { - BlockNum: blockNumber, - BlockTimestamp: int(time.Now().Unix()), - }, - }, - }, - } - - resBytes, err := json.Marshal(res) - - assert.Nil(t, err) - - _, err = w.Write(resBytes) - - assert.Nil(t, err) - })) - - defer ts.Close() - - var metadata types.Metadata - - stateMock.On("GetMetadataLatest").Return(&metadata, nil) - - sapi := &gsrpc.SubstrateAPI{ - RPC: &rpc.RPC{ - Chain: chainMock, - State: stateMock, - }, - Client: clientMock, - } - - client := &Client{ - apiURL: ts.URL, - http: http.DefaultClient, - sapi: sapi, - } - - testData, err := client.GetTestData(context.Background(), &ReqData{ - Module: moduleName, - Call: callName, - }) - - assert.NotNil(t, err) - assert.Nil(t, testData) -} - -func TestClient_GetTestData_StorageKeyCreationError(t *testing.T) { - chainMock := mockChain.NewChain(t) - stateMock := mockState.NewState(t) - clientMock := mockClient.NewClient(t) - - moduleName := "test-module" - callName := "test-call" - - blockNumber := 123 - - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - body, err := ioutil.ReadAll(r.Body) - - assert.Nil(t, err) - - var rb EventListReqBody - - err = json.Unmarshal(body, &rb) - assert.Nil(t, err) - - assert.Equal(t, rb.Module, moduleName) - assert.Equal(t, rb.Call, callName) - assert.Equal(t, rb.Page, 0) - assert.Equal(t, rb.Row, 1) - - res := EventListResponseBody{ - Data: EventListResponseData{ - Count: 1, - Events: []EventListResponseEvent{ - { - BlockNum: blockNumber, - BlockTimestamp: int(time.Now().Unix()), - }, - }, - }, - } - - resBytes, err := json.Marshal(res) - - assert.Nil(t, err) - - _, err = w.Write(resBytes) - - assert.Nil(t, err) - })) - - defer ts.Close() - - var metadata types.Metadata - err := codec.DecodeFromHex(types.MetadataV14Data, &metadata) - assert.EqualValues(t, metadata.Version, 14) - assert.Nil(t, err) - - metadata.AsMetadataV14.Pallets = nil - - stateMock.On("GetMetadataLatest").Return(&metadata, nil) - - sapi := &gsrpc.SubstrateAPI{ - RPC: &rpc.RPC{ - Chain: chainMock, - State: stateMock, - }, - Client: clientMock, - } - - client := &Client{ - apiURL: ts.URL, - http: http.DefaultClient, - sapi: sapi, - } - - testData, err := client.GetTestData(context.Background(), &ReqData{ - Module: moduleName, - Call: callName, - }) - assert.NotNil(t, err) - assert.Nil(t, testData) -} - -func TestClient_GetTestData_BlockHashError(t *testing.T) { - chainMock := mockChain.NewChain(t) - stateMock := mockState.NewState(t) - clientMock := mockClient.NewClient(t) - - moduleName := "test-module" - callName := "test-call" - - blockNumber := 123 - - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - body, err := ioutil.ReadAll(r.Body) - - assert.Nil(t, err) - - var rb EventListReqBody - - err = json.Unmarshal(body, &rb) - assert.Nil(t, err) - - assert.Equal(t, rb.Module, moduleName) - assert.Equal(t, rb.Call, callName) - assert.Equal(t, rb.Page, 0) - assert.Equal(t, rb.Row, 1) - - res := EventListResponseBody{ - Data: EventListResponseData{ - Count: 1, - Events: []EventListResponseEvent{ - { - BlockNum: blockNumber, - BlockTimestamp: int(time.Now().Unix()), - }, - }, - }, - } - - resBytes, err := json.Marshal(res) - - assert.Nil(t, err) - - _, err = w.Write(resBytes) - - assert.Nil(t, err) - })) - - defer ts.Close() - - var metadata types.Metadata - err := codec.DecodeFromHex(types.MetadataV14Data, &metadata) - assert.EqualValues(t, metadata.Version, 14) - assert.Nil(t, err) - - stateMock.On("GetMetadataLatest").Return(&metadata, nil) - - blockHashErr := errors.New("block hash err") - - chainMock.On("GetBlockHash", uint64(blockNumber)).Return(nil, blockHashErr) - - sapi := &gsrpc.SubstrateAPI{ - RPC: &rpc.RPC{ - Chain: chainMock, - State: stateMock, - }, - Client: clientMock, - } - - client := &Client{ - apiURL: ts.URL, - http: http.DefaultClient, - sapi: sapi, - } - - _, err = client.GetTestData(context.Background(), &ReqData{ - Module: moduleName, - Call: callName, - }) - - assert.True(t, errors.Is(err, blockHashErr)) -} - -func TestClient_GetTestData_StorageError(t *testing.T) { - chainMock := mockChain.NewChain(t) - stateMock := mockState.NewState(t) - clientMock := mockClient.NewClient(t) - - moduleName := "test-module" - callName := "test-call" - - blockNumber := 123 - - ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - body, err := ioutil.ReadAll(r.Body) - - assert.Nil(t, err) - - var rb EventListReqBody - - err = json.Unmarshal(body, &rb) - assert.Nil(t, err) - - assert.Equal(t, rb.Module, moduleName) - assert.Equal(t, rb.Call, callName) - assert.Equal(t, rb.Page, 0) - assert.Equal(t, rb.Row, 1) - - res := EventListResponseBody{ - Data: EventListResponseData{ - Count: 1, - Events: []EventListResponseEvent{ - { - BlockNum: blockNumber, - BlockTimestamp: int(time.Now().Unix()), - }, - }, - }, - } - - resBytes, err := json.Marshal(res) - - assert.Nil(t, err) - - _, err = w.Write(resBytes) - - assert.Nil(t, err) - })) - - defer ts.Close() - - var metadata types.Metadata - err := codec.DecodeFromHex(types.MetadataV14Data, &metadata) - assert.EqualValues(t, metadata.Version, 14) - assert.Nil(t, err) - - stateMock.On("GetMetadataLatest").Return(&metadata, nil) - - hash := types.NewHash([]byte{0, 1, 2}) - - chainMock.On("GetBlockHash", uint64(blockNumber)).Return(hash, nil) - - key, err := types.CreateStorageKey(&metadata, "System", "Events", nil) - - assert.Nil(t, err) - - storageErr := errors.New("storage error") - - stateMock.On("GetStorageRaw", key, hash).Return(nil, storageErr) - - sapi := &gsrpc.SubstrateAPI{ - RPC: &rpc.RPC{ - Chain: chainMock, - State: stateMock, - }, - Client: clientMock, - } - - client := &Client{ - apiURL: ts.URL, - http: http.DefaultClient, - sapi: sapi, - } - - _, err = client.GetTestData(context.Background(), &ReqData{ - Module: moduleName, - Call: callName, - }) - - assert.True(t, errors.Is(err, storageErr)) -} diff --git a/types/test/test-gen/main.go b/types/test/test-gen/main.go deleted file mode 100644 index ae2990b49..000000000 --- a/types/test/test-gen/main.go +++ /dev/null @@ -1,165 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "context" - "fmt" - "os" - "reflect" - - "github.com/centrifuge/go-substrate-rpc-client/v4/types" -) - -func main() { //nolint: funlen - ctx := context.Background() - args := os.Args - - if len(args) != 4 { - fmt.Println("Expected 4 args") - os.Exit(1) - } - - dirName := args[1] - metaFileName := args[2] - storageFileName := args[3] - - fmt.Printf("Test data directory name - %s\n", dirName) - fmt.Printf("Test data meta file name - %s\n", metaFileName) - fmt.Printf("Test data storage file name - %s\n", storageFileName) - - if err := os.RemoveAll(dirName); err != nil { - fmt.Println("Couldn't remove test dir -", err) - - os.Exit(1) - } - - parser := NewParser() - - t := reflect.TypeOf(types.EventRecords{}) - - requestMap := make(map[ClientOpts][]*ReqData) - - for i := 0; i < t.NumField(); i++ { - field := t.Field(i) - - if parser.CanSkip(field) { - fmt.Println("Skipping field -", field.Name) - continue - } - - fieldInfo, err := parser.ParseField(field) - - if err != nil { - fmt.Println("Couldn't parse field -", err) - os.Exit(1) - } - - if reqData, ok := requestMap[*fieldInfo.ClientOpts]; ok { - reqData = append(reqData, fieldInfo.ReqData) - requestMap[*fieldInfo.ClientOpts] = reqData - } else { - requestMap[*fieldInfo.ClientOpts] = []*ReqData{fieldInfo.ReqData} - } - } - - count := 0 - - for clientOpts, reqData := range requestMap { - c, err := NewClient(clientOpts) - - if err != nil { - fmt.Println("Couldn't create new client -", err) - os.Exit(1) - } - - for _, reqDatum := range reqData { - testData, err := c.GetTestData(ctx, reqDatum) - - if err != nil { - fmt.Printf("Couldn't get raw data for %s %s - %s\n", reqDatum.Module, reqDatum.Call, err) - - continue - } - - if err := writeTestData(testData, dirName, metaFileName, storageFileName, count); err != nil { - fmt.Println("Couldn't create test files -", err) - os.Exit(1) - } - - count++ - } - } -} - -func writeTestData( - testData *TestData, - dirName string, - metaFileName string, - storageFileName string, - count int, -) error { - if err := os.MkdirAll(fmt.Sprintf("%s/%d", dirName, count), os.ModePerm); err != nil { - return err - } - - metaFile, err := os.Create(fmt.Sprintf("%s/%d/%s", dirName, count, metaFileName)) - - if err != nil { - return err - } - - defer metaFile.Close() - - if _, err := metaFile.Write(testData.Meta); err != nil { - return err - } - - storageFile, err := os.Create(fmt.Sprintf("%s/%d/%s", dirName, count, storageFileName)) - - if err != nil { - return err - } - - defer storageFile.Close() - - if _, err := storageFile.Write(testData.StorageData); err != nil { - return err - } - - infoFile, err := os.Create(fmt.Sprintf("%s/%d/info.txt", dirName, count)) - - if err != nil { - return err - } - - defer infoFile.Close() - - infoStr := fmt.Sprintf( - "Blockchain - %s\nBlock number - %d\nApi URL - %s\nWs URL - %s\n", - testData.Blockchain, - testData.BlockNumber, - testData.APIURL, - testData.WsURL, - ) - - if _, err := infoFile.WriteString(infoStr); err != nil { - return err - } - - return nil -} diff --git a/types/test/test-gen/parser.go b/types/test/test-gen/parser.go deleted file mode 100644 index c4b33c475..000000000 --- a/types/test/test-gen/parser.go +++ /dev/null @@ -1,124 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "errors" - "fmt" - "reflect" - "strings" -) - -const ( - WsURLFormat = "wss://%s.api.onfinality.io/public-ws" - APIURLFormat = "https://%s.api.subscan.io/api/scan/events" - - BlockchainTagName = "test-gen-blockchain" - WsURLTagName = "test-gen-ws" - APIURLTagName = "test-gen-api" - SkipTagName = "test-gen-skip" -) - -type FieldInfo struct { - ReqData *ReqData - - ClientOpts *ClientOpts -} - -type Parser struct{} - -func NewParser() *Parser { - return &Parser{} -} - -func (p *Parser) CanSkip(field reflect.StructField) bool { - return field.Tag.Get(SkipTagName) == "true" -} - -func (p *Parser) ParseField(field reflect.StructField) (*FieldInfo, error) { - clientOpts, err := p.parseClientOpts(field) - - if err != nil { - return nil, fmt.Errorf("couldn't parse client opts: %w", err) - } - - reqData, err := p.parseReqData(field) - - if err != nil { - return nil, fmt.Errorf("couldn't parse client opts: %w", err) - } - - return &FieldInfo{ - reqData, - clientOpts, - }, nil -} - -var ( - errAPIURLMissing = errors.New("api URL missing") - errWsURLMissing = errors.New("ws URL missing") - errBlockchainMissing = errors.New("blockchain missing") -) - -func (p *Parser) parseClientOpts(field reflect.StructField) (*ClientOpts, error) { - wsURL := field.Tag.Get(WsURLTagName) - apiURL := field.Tag.Get(APIURLTagName) - - if wsURL != "" && apiURL != "" { - return &ClientOpts{WsURL: wsURL, APIURL: apiURL}, nil - } - - if wsURL != "" { - return nil, errAPIURLMissing - } - - if apiURL != "" { - return nil, errWsURLMissing - } - - blockchain := field.Tag.Get(BlockchainTagName) - - if blockchain == "" { - return nil, errBlockchainMissing - } - - return &ClientOpts{ - Blockchain: blockchain, - WsURL: fmt.Sprintf(WsURLFormat, blockchain), - APIURL: fmt.Sprintf(APIURLFormat, blockchain), - }, nil -} - -const ( - fieldNameSeparator = "_" - partsNumber = 2 -) - -func (p *Parser) parseReqData(field reflect.StructField) (*ReqData, error) { - fieldName := field.Name - - parts := strings.Split(fieldName, fieldNameSeparator) - - if plen := len(parts); plen != partsNumber { - return nil, fmt.Errorf("expected %d parts, got %d", partsNumber, plen) - } - - return &ReqData{ - Module: strings.ToLower(parts[0]), - Call: strings.ToLower(parts[1]), - }, nil -} diff --git a/types/test/test-gen/parser_test.go b/types/test/test-gen/parser_test.go deleted file mode 100644 index 56b191d5f..000000000 --- a/types/test/test-gen/parser_test.go +++ /dev/null @@ -1,198 +0,0 @@ -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package main - -import ( - "errors" - "fmt" - "reflect" - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestParser_ParseField(t *testing.T) { - parser := NewParser() - - tests := []struct { - field reflect.StructField - expectedFieldInfo *FieldInfo - }{ - { - field: reflect.StructField{ - Name: "Test_field", - Tag: reflect.StructTag(fmt.Sprintf(`%s:"ws://test" %s:"http://test"`, WsURLTagName, APIURLTagName)), - }, - expectedFieldInfo: &FieldInfo{ - ReqData: &ReqData{ - Module: "test", - Call: "field", - }, - ClientOpts: &ClientOpts{ - APIURL: "http://test", - WsURL: "ws://test", - }, - }, - }, - { - field: reflect.StructField{ - Name: "Test_field", - Tag: reflect.StructTag(fmt.Sprintf(`%s:"blockchainname"`, BlockchainTagName)), - }, - expectedFieldInfo: &FieldInfo{ - ReqData: &ReqData{ - Module: "test", - Call: "field", - }, - ClientOpts: &ClientOpts{ - Blockchain: "blockchainname", - APIURL: fmt.Sprintf(APIURLFormat, "blockchainname"), - WsURL: fmt.Sprintf(WsURLFormat, "blockchainname"), - }, - }, - }, - } - - for _, test := range tests { - r, err := parser.ParseField(test.field) - assert.Nil(t, err) - - assert.EqualValues(t, r, test.expectedFieldInfo) - } -} - -func TestParser_ParseField_ParseClientOptsErr(t *testing.T) { - parser := NewParser() - - f := reflect.StructField{ - Tag: reflect.StructTag(WsURLTagName), - } - - r, err := parser.ParseField(f) - assert.NotNil(t, err) - assert.Nil(t, r) - -} - -func TestParser_ParseField_ParseReqDataErr(t *testing.T) { - parser := NewParser() - - f := reflect.StructField{ - Name: "incorrect_field_name", - Tag: reflect.StructTag(fmt.Sprintf(`%s:"blockchainname"`, BlockchainTagName)), - } - - r, err := parser.ParseField(f) - assert.NotNil(t, err) - assert.Nil(t, r) - -} - -func TestParser_CanSkip(t *testing.T) { - parser := NewParser() - - r := parser.CanSkip(reflect.StructField{ - Tag: reflect.StructTag(fmt.Sprintf(`%s:"true"`, SkipTagName)), - }) - - assert.True(t, r) - - r = parser.CanSkip(reflect.StructField{}) - - assert.False(t, r) -} - -func TestParser_parseClientOpts(t *testing.T) { - parser := NewParser() - - field := reflect.StructField{ - Tag: reflect.StructTag(fmt.Sprintf(`%s:"ws://test" %s:"http://test"`, WsURLTagName, APIURLTagName)), - } - - _, err := parser.parseClientOpts(field) - - assert.Nil(t, err) - - field = reflect.StructField{ - Tag: reflect.StructTag(fmt.Sprintf(`%s:"blockchainname""`, BlockchainTagName)), - } - - _, err = parser.parseClientOpts(field) - - assert.Nil(t, err) - - field = reflect.StructField{ - Tag: reflect.StructTag(fmt.Sprintf(`%s:"ws://test"`, WsURLTagName)), - } - - _, err = parser.parseClientOpts(field) - - assert.True(t, errors.Is(err, errAPIURLMissing)) - - field = reflect.StructField{ - Tag: reflect.StructTag(fmt.Sprintf(`%s:"http://test"`, APIURLTagName)), - } - - _, err = parser.parseClientOpts(field) - - assert.True(t, errors.Is(err, errWsURLMissing)) - - field = reflect.StructField{ - Tag: "", - } - - _, err = parser.parseClientOpts(field) - - assert.True(t, errors.Is(err, errBlockchainMissing)) -} - -func TestParser_parseReqData(t *testing.T) { - parser := NewParser() - - field := reflect.StructField{ - Name: "Test_Field", - } - - _, err := parser.parseReqData(field) - - assert.Nil(t, err) - - field = reflect.StructField{ - Name: "TestField", - } - - _, err = parser.parseReqData(field) - - assert.NotNil(t, err) - - field = reflect.StructField{ - Name: "Test-Field", - } - - _, err = parser.parseReqData(field) - - assert.NotNil(t, err) - - field = reflect.StructField{ - Name: "Test_Field_1", - } - - _, err = parser.parseReqData(field) - - assert.NotNil(t, err) - -} diff --git a/types/test/types_test.go b/types/test/types_test.go deleted file mode 100644 index dac419c09..000000000 --- a/types/test/types_test.go +++ /dev/null @@ -1,86 +0,0 @@ -//go:build types_test - -// Go Substrate RPC Client (GSRPC) provides APIs and types around Polkadot and any Substrate-based chain RPC calls -// -// Copyright 2019 Centrifuge GmbH -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package test - -import ( - "os" - "path" - "testing" - - "github.com/centrifuge/go-substrate-rpc-client/v4/types/codec" - - "github.com/centrifuge/go-substrate-rpc-client/v4/types" -) - -//go:generate go run ./test-gen test_data meta_bytes storage_bytes - -func TestTypesDecode(t *testing.T) { - dirEntries, err := os.ReadDir("test_data") - - if err != nil { - t.Errorf("Couldn't read test data dir - %s", err) - } - - for _, dirEntry := range dirEntries { - if !dirEntry.IsDir() { - continue - } - - subdirPath := path.Join("test_data", dirEntry.Name()) - - subdirEntries, err := os.ReadDir(subdirPath) - - if err != nil { - t.Errorf("Couldn't read sub dir - %s", err) - } - - var metadata types.Metadata - var storageData []byte - - for _, subdirEntry := range subdirEntries { - if path.Ext(subdirEntry.Name()) == ".txt" { - // Skip info file - continue - } - - testDataPath := path.Join(subdirPath, subdirEntry.Name()) - - b, err := os.ReadFile(testDataPath) - - if err != nil { - t.Errorf("Couldn't read meta file - %s", err) - } - - switch subdirEntry.Name() { - case "meta_bytes": - if err := codec.Decode(b, &metadata); err != nil { - t.Errorf("Couldn't decode Metadata - %s", err) - } - case "storage_bytes": - storageData = b - } - } - - events := types.EventRecords{} - - if err := types.EventRecordsRaw(storageData).DecodeEventRecords(&metadata, &events); err != nil { - t.Errorf("Couldn't decode events for %s - %s", subdirPath, err) - } - } -} diff --git a/types/xcm.go b/types/xcm.go index f13122cc5..99625bde1 100644 --- a/types/xcm.go +++ b/types/xcm.go @@ -19,47 +19,29 @@ package types import "github.com/centrifuge/go-substrate-rpc-client/v4/scale" type AssetID struct { - IsConcrete bool - MultiLocation MultiLocationV1 - - IsAbstract bool - AbstractKey []U8 + Parents U8 + Interior JunctionsV1 } func (a *AssetID) Decode(decoder scale.Decoder) error { - b, err := decoder.ReadOneByte() - if err != nil { + if err := decoder.Decode(&a.Parents); err != nil { return err } - switch b { - case 0: - a.IsConcrete = true - - return decoder.Decode(&a.MultiLocation) - case 1: - a.IsAbstract = true - - return decoder.Decode(&a.AbstractKey) + if err := decoder.Decode(&a.Interior); err != nil { + return err } return nil } func (a AssetID) Encode(encoder scale.Encoder) error { - switch { - case a.IsConcrete: - if err := encoder.PushByte(0); err != nil { - return err - } - - return encoder.Encode(&a.MultiLocation) - case a.IsAbstract: - if err := encoder.PushByte(1); err != nil { - return err - } + if err := encoder.Encode(a.Parents); err != nil { + return err + } - return encoder.Encode(&a.AbstractKey) + if err := encoder.Encode(a.Interior); err != nil { + return err } return nil diff --git a/types/xcm_test.go b/types/xcm_test.go index a37682321..2ac9404fd 100644 --- a/types/xcm_test.go +++ b/types/xcm_test.go @@ -28,26 +28,20 @@ import ( var ( testAssetID1 = AssetID{ - IsConcrete: true, - MultiLocation: testMultiLocationV1n1, + Parents: 1, + Interior: testJunctionsV1n1, } testAssetID2 = AssetID{ - IsAbstract: true, - AbstractKey: []U8{6, 7, 4}, + Parents: 1, + Interior: testJunctionsV1n2, } assetIDFuzzOpts = CombineFuzzOpts( - multiLocationV1FuzzOpts, + junctionsV1FuzzOpts, []FuzzOpt{ WithFuzzFuncs(func(a *AssetID, c fuzz.Continue) { - if c.RandBool() { - a.IsConcrete = true - c.Fuzz(&a.MultiLocation) - return - } - - a.IsAbstract = true - c.Fuzz(&a.AbstractKey) + c.Fuzz(&a.Parents) + c.Fuzz(&a.Interior) }), }, ) @@ -56,20 +50,20 @@ var ( func TestAssetID_EncodeDecode(t *testing.T) { AssertRoundTripFuzz[AssetID](t, 100, assetIDFuzzOpts...) AssertDecodeNilData[AssetID](t) - AssertEncodeEmptyObj[AssetID](t, 0) + AssertEncodeEmptyObj[AssetID](t, 1) } func TestAssetID_Encode(t *testing.T) { AssertEncode(t, []EncodingAssert{ - {testAssetID1, MustHexDecodeString("0x000408002c01000c010203020010000000000000000303000404052a0000000000000000000000000000000608060807")}, - {testAssetID2, MustHexDecodeString("0x010c060704")}, + {testAssetID1, MustHexDecodeString("0x0100")}, + {testAssetID2, MustHexDecodeString("0x0101002c")}, }) } func TestAssetID_Decode(t *testing.T) { AssertDecode(t, []DecodingAssert{ - {MustHexDecodeString("0x000408002c01000c010203020010000000000000000303000404052a0000000000000000000000000000000608060807"), testAssetID1}, - {MustHexDecodeString("0x010c060704"), testAssetID2}, + {MustHexDecodeString("0x0100"), testAssetID1}, + {MustHexDecodeString("0x0101002c"), testAssetID2}, }) } @@ -229,18 +223,18 @@ var ( func TestMultiAssetV1_EncodeDecode(t *testing.T) { AssertRoundTripFuzz[MultiAssetV1](t, 1000, multiAssetV1FuzzOpts...) AssertDecodeNilData[MultiAssetV1](t) - AssertEncodeEmptyObj[MultiAssetV1](t, 0) + AssertEncodeEmptyObj[MultiAssetV1](t, 1) } func TestMultiAssetV1_Encode(t *testing.T) { AssertEncode(t, []EncodingAssert{ { testMultiAssetV1, - MustHexDecodeString("0x010c06070400ed01"), + MustHexDecodeString("0x0101002c00ed01"), }, { testMultiAssetV2, - MustHexDecodeString("0x000408002c01000c010203020010000000000000000303000404052a0000000000000000000000000000000608060807010201020304"), + MustHexDecodeString("0x0100010201020304"), }, }) } @@ -248,11 +242,11 @@ func TestMultiAssetV1_Encode(t *testing.T) { func TestMultiAssetV1_Decode(t *testing.T) { AssertDecode(t, []DecodingAssert{ { - MustHexDecodeString("0x010c06070400ed01"), + MustHexDecodeString("0x0101002c00ed01"), testMultiAssetV1, }, { - MustHexDecodeString("0x000408002c01000c010203020010000000000000000303000404052a0000000000000000000000000000000608060807010201020304"), + MustHexDecodeString("0x0100010201020304"), testMultiAssetV2, }, }) @@ -271,7 +265,7 @@ func TestMultiAssetsV1_Encode(t *testing.T) { AssertEncode(t, []EncodingAssert{ { testMultiAssetsV1, - MustHexDecodeString("0x08010c06070400ed01000408002c01000c010203020010000000000000000303000404052a0000000000000000000000000000000608060807010201020304"), + MustHexDecodeString("0x080101002c00ed010100010201020304"), }, }) } @@ -279,7 +273,7 @@ func TestMultiAssetsV1_Encode(t *testing.T) { func TestMultiAssetsV1_Decode(t *testing.T) { AssertDecode(t, []DecodingAssert{ { - MustHexDecodeString("0x08010c06070400ed01000408002c01000c010203020010000000000000000303000404052a0000000000000000000000000000000608060807010201020304"), + MustHexDecodeString("0x080101002c00ed010100010201020304"), testMultiAssetsV1, }, }) @@ -481,7 +475,7 @@ func TestVersionedMultiAssets_Encode(t *testing.T) { }, { testVersionedMultiAssets2, - MustHexDecodeString("0x0108010c06070400ed01000408002c01000c010203020010000000000000000303000404052a0000000000000000000000000000000608060807010201020304"), + MustHexDecodeString("0x01080101002c00ed010100010201020304"), }, }) } @@ -493,7 +487,7 @@ func TestVersionedMultiAssets_Decode(t *testing.T) { testVersionedMultiAssets1, }, { - MustHexDecodeString("0x0108010c06070400ed01000408002c01000c010203020010000000000000000303000404052a0000000000000000000000000000000608060807010201020304"), + MustHexDecodeString("0x01080101002c00ed010100010201020304"), testVersionedMultiAssets2, }, }) @@ -551,7 +545,7 @@ func TestResponse_EncodeDecode(t *testing.T) { func TestResponse_Encode(t *testing.T) { AssertEncode(t, []EncodingAssert{ {testResponse1, MustHexDecodeString("0x00")}, - {testResponse2, MustHexDecodeString("0x0108010c06070400ed01000408002c01000c010203020010000000000000000303000404052a0000000000000000000000000000000608060807010201020304")}, + {testResponse2, MustHexDecodeString("0x01080101002c00ed010100010201020304")}, {testResponse3, MustHexDecodeString("0x020100000000")}, {testResponse4, MustHexDecodeString("0x03af010000")}, }) @@ -560,7 +554,7 @@ func TestResponse_Encode(t *testing.T) { func TestResponse_Decode(t *testing.T) { AssertDecode(t, []DecodingAssert{ {MustHexDecodeString("0x00"), testResponse1}, - {MustHexDecodeString("0x0108010c06070400ed01000408002c01000c010203020010000000000000000303000404052a0000000000000000000000000000000608060807010201020304"), testResponse2}, + {MustHexDecodeString("0x01080101002c00ed010100010201020304"), testResponse2}, {MustHexDecodeString("0x020100000000"), testResponse3}, {MustHexDecodeString("0x03af010000"), testResponse4}, }) @@ -716,14 +710,14 @@ func TestWildMultiAsset_EncodeDecode(t *testing.T) { func TestWildMultiAsset_Encode(t *testing.T) { AssertEncode(t, []EncodingAssert{ {testWildMultiAsset1, MustHexDecodeString("0x00")}, - {testWildMultiAsset2, MustHexDecodeString("0x01010c06070400")}, + {testWildMultiAsset2, MustHexDecodeString("0x010101002c00")}, }) } func TestWildMultiAsset_Decode(t *testing.T) { AssertDecode(t, []DecodingAssert{ {MustHexDecodeString("0x00"), testWildMultiAsset1}, - {MustHexDecodeString("0x01010c06070400"), testWildMultiAsset2}, + {MustHexDecodeString("0x010101002c00"), testWildMultiAsset2}, }) } @@ -764,7 +758,7 @@ func TestMultiAssetFilter_Encode(t *testing.T) { AssertEncode(t, []EncodingAssert{ { testMultiAssetFilter1, - MustHexDecodeString("0x0008010c06070400ed01000408002c01000c010203020010000000000000000303000404052a0000000000000000000000000000000608060807010201020304"), + MustHexDecodeString("0x00080101002c00ed010100010201020304"), }, { testMultiAssetFilter2, @@ -776,7 +770,7 @@ func TestMultiAssetFilter_Encode(t *testing.T) { func TestMultiAssetFilter_Decode(t *testing.T) { AssertDecode(t, []DecodingAssert{ { - MustHexDecodeString("0x0008010c06070400ed01000408002c01000c010203020010000000000000000303000404052a0000000000000000000000000000000608060807010201020304"), + MustHexDecodeString("0x00080101002c00ed010100010201020304"), testMultiAssetFilter1, }, {