diff --git a/.gitlab/ci/jobs/build/kernels.yml b/.gitlab/ci/jobs/build/kernels.yml index c480560d5354889c1d0e4118594d8df53dab6953..f3e0d33958aef65a8321bd71d98c9c54ad35edf9 100644 --- a/.gitlab/ci/jobs/build/kernels.yml +++ b/.gitlab/ci/jobs/build/kernels.yml @@ -6,7 +6,7 @@ build_kernels: needs: [trigger] script: - make -f kernels.mk build-deps - - make -f kernels.mk build-kernels + - CC=clang make -f kernels.mk build-kernels variables: CARGO_HOME: $CI_PROJECT_DIR/cargo cache: @@ -16,5 +16,6 @@ build_kernels: name: "build-kernels-$CI_COMMIT_REF_SLUG" paths: - evm_kernel.wasm + - smart-rollup-installer expire_in: 1 day when: on_success diff --git a/kernels.mk b/kernels.mk index ca0fea8e187eab88074929146aad8cff99fe0ed0..3b4f2869621204d60a7ddf91bde81c8365f3c335 100644 --- a/kernels.mk +++ b/kernels.mk @@ -2,7 +2,7 @@ KERNELS = kernel_sdk evm_kernel.wasm kernel_sdk: @make -C src/kernel_sdk - @cp src/kernel_sdk/target/release/smart-rollup-installer . + @cp src/kernel_sdk/target/x86_64-unknown-linux-musl/release/smart-rollup-installer . evm_kernel.wasm:: @make -C src/kernel_evm diff --git a/src/kernel_evm/Makefile b/src/kernel_evm/Makefile index ee02a8c86650e7b8947725d1b8ef428b1b18ff23..1cde756918cf60ff17b90d3f8f52063234085bc8 100644 --- a/src/kernel_evm/Makefile +++ b/src/kernel_evm/Makefile @@ -3,6 +3,8 @@ # # SPDX-License-Identifier: MIT +CC=$(which clang) + .PHONY: all all: build test diff --git a/src/kernel_sdk/Cargo.lock b/src/kernel_sdk/Cargo.lock index 34c9a4e696f322db5add1d2d23c87f1b93d10259..e4500f1d4a089380b4ffc3984c30c4f2a9731b5f 100644 --- a/src/kernel_sdk/Cargo.lock +++ b/src/kernel_sdk/Cargo.lock @@ -432,6 +432,7 @@ dependencies = [ name = "installer_kernel" version = "0.1.0" dependencies = [ + "blst", "host", "kernel", "tezos_rollup_encoding", @@ -1110,6 +1111,7 @@ dependencies = [ name = "tezos_smart_rollup_installer" version = "0.1.0" dependencies = [ + "blst", "clap", "hex", "tezos_rollup_encoding", diff --git a/src/kernel_sdk/Makefile b/src/kernel_sdk/Makefile index e31e8b8041aa0f4838525f1b5347e0e9793b003b..a84c10622c56bec5c8316dd9faae65d25776bed2 100644 --- a/src/kernel_sdk/Makefile +++ b/src/kernel_sdk/Makefile @@ -3,16 +3,26 @@ # # SPDX-License-Identifier: MIT -CC=$(which clang) +# The SDK contains some executables, that may be used by tezt. +# Since the tezt tests run on a different container to the one +# used for `make build-kernels`, we compile executables using the +# musl toolchain, to make them fully statically-linked - allowing +# them to run in the tezt container. + +CC=clang all: build test doc -build: +check: @cargo fmt --check @cargo clippy --all-targets --all-features -- --deny warnings @cargo check --no-default-features @cargo check --target wasm32-unknown-unknown - @cargo build -p tezos_smart_rollup_installer --release + +build: check installer.wasm + @cargo build -p tezos_smart_rollup_installer \ + --release \ + --target x86_64-unknown-linux-musl installer.wasm: @cargo build -p installer_kernel \ @@ -32,6 +42,7 @@ doc: build-deps: @rustup target add wasm32-unknown-unknown + @rustup target add x86_64-unknown-linux-musl @rustup component add rustfmt clippy clean: diff --git a/src/kernel_sdk/installer_client/Cargo.toml b/src/kernel_sdk/installer_client/Cargo.toml index b306fc11801835e2f143bb0af63d299c96a73e5e..a2893181df27a2b3a9f675270a63e446b04830fd 100644 --- a/src/kernel_sdk/installer_client/Cargo.toml +++ b/src/kernel_sdk/installer_client/Cargo.toml @@ -17,6 +17,10 @@ include = [ name = "smart-rollup-installer" path = "src/main.rs" +[dependencies.blst] +version = "0.3.10" +features = ["portable"] + [dependencies.tezos_rollup_encoding] git = "https://gitlab.com/tezos/kernel" diff --git a/src/kernel_sdk/installer_kernel/Cargo.toml b/src/kernel_sdk/installer_kernel/Cargo.toml index afd72e5138ec96cf102d09e5607fdb97bf28e915..9ec410936bf95d10c9572ff5cbfa218d2a9a0360 100644 --- a/src/kernel_sdk/installer_kernel/Cargo.toml +++ b/src/kernel_sdk/installer_kernel/Cargo.toml @@ -16,6 +16,10 @@ default = ["std"] std = [] entrypoint = [] +[dependencies.blst] +version = "0.3.10" +features = ["portable"] + [dependencies.tezos_smart_rollup_core] path = "../tezos_smart_rollup_core" diff --git a/src/proto_alpha/lib_protocol/test/integration/wasm_kernel/README.md b/src/proto_alpha/lib_protocol/test/integration/wasm_kernel/README.md index 31ee6c88983e3a3ee37a6d24a4b6ba196ff16a53..62f2267ad645a4bcad328af7c0044e41ad9bc59f 100644 --- a/src/proto_alpha/lib_protocol/test/integration/wasm_kernel/README.md +++ b/src/proto_alpha/lib_protocol/test/integration/wasm_kernel/README.md @@ -55,27 +55,6 @@ This simple kernel writes the external messages it receives in its outbox. To achieve that, it needs to take the encoding of the inputs into account to extract the payload to push into the outbox. -# reveal_installer - -The `reveal_installer` is a kernel that can be used to originate a rollup, and install a larger kernel leveraging the *DAC* mechanism. - -To build, run the following from the checked-out `tezos/kernel` repo: -```shell -git checkout 69f69144764dcd59dcc1fd144bf6e8f707f0431e - -# Load the required rust toolchain dockerfile -source scripts/cargo-docker.sh - -cargo make wasm-preimage-installer - -cp target/wasm32-unknown-unknown/release/tezos_rollup_installer_kernel.wasm reveal_installer.wasm -wasm-strip reveal_installer.wasm -``` - -You then need to replace the value `1acaa995ef84bc24cc8bb545dd986082fbbec071ed1c3e9954abea5edc441ccd3a` in the installer binary, with the root reveal hash, of the kernel you'd like to install. - -See `prepare_installer_kernel` in [sc_rollup.ml](../../../../../../tezt/tests/sc_rollup.ml) for an example installation of a kernel. - # tx-kernel.wasm The `tx-kernel` is a TORU-like program for transacting in a wasm rollup. @@ -92,5 +71,3 @@ cp target/wasm32-unknown-unknown/release/kernel_core.wasm tx-kernel.wasm wasm-strip tx-kernel.wasm ``` - -This can be installed using the *reveal_installer* described above. diff --git a/src/proto_alpha/lib_protocol/test/integration/wasm_kernel/reveal_installer.wasm b/src/proto_alpha/lib_protocol/test/integration/wasm_kernel/reveal_installer.wasm deleted file mode 100755 index a4c803d28b964925827f520ad5e47d23188391ba..0000000000000000000000000000000000000000 Binary files a/src/proto_alpha/lib_protocol/test/integration/wasm_kernel/reveal_installer.wasm and /dev/null differ diff --git a/tezt/lib_tezos/sc_rollup_helpers.ml b/tezt/lib_tezos/sc_rollup_helpers.ml index bdf0455e55b56a972cb758732a15d351b60ace23..f365ef2064de9366df5dd5e2ee046f82fde80873 100644 --- a/tezt/lib_tezos/sc_rollup_helpers.ml +++ b/tezt/lib_tezos/sc_rollup_helpers.ml @@ -2,7 +2,7 @@ (* *) (* Open Source License *) (* Copyright (c) 2023 Nomadic Labs *) -(* Copyright (c) 2022 TriliTech *) +(* Copyright (c) 2022-2023 TriliTech *) (* *) (* Permission is hereby granted, free of charge, to any person obtaining a *) (* copy of this software and associated documentation files (the "Software"),*) @@ -65,32 +65,33 @@ let read_kernel ?base name : string = When a kernel is too large to be originated directly, we can install it by using the 'reveal_installer' kernel. This leverages the reveal preimage+DAC mechanism to install the tx kernel. - - We then deposit a ticket into the tx kernel, and verify that we are - able to withdraw. *) -let prepare_installer_kernel +let prepare_installer_kernel ?runner ?(base_installee = - "src/proto_alpha/lib_protocol/test/integration/wasm_kernel") ~dac_node - installee = - let installer_dummy_hash = - "1acaa995ef84bc24cc8bb545dd986082fbbec071ed1c3e9954abea5edc441ccd3a" - in - let installer = load_kernel_file "reveal_installer.wasm" in - let installee = load_kernel_file ~base:base_installee (installee ^ ".wasm") in - let* root_hash, _ = - RPC.call - dac_node - (Rollup.Dac.RPC.dac_store_preimage - ~payload:installee - ~pagination_scheme:"Merkle_tree_V0") - in - (* Ensure reveal hash is correct length for installer. *) - assert (String.length root_hash = 66) ; - let installer = - replace_string (rex installer_dummy_hash) ~by:root_hash installer + "src/proto_alpha/lib_protocol/test/integration/wasm_kernel") + ~preimages_dir installee = + let open Tezt.Base in + let open Lwt.Syntax in + let installer = installee ^ "-installer.hex" in + let output = Temp.file installer in + let installee = (project_root // base_installee // installee) ^ ".wasm" in + let process = + Process.spawn + ?runner + ~name:installer + (project_root // "smart-rollup-installer") + [ + "get-reveal-installer"; + "--upgrade-to"; + installee; + "--output"; + output; + "--preimages-dir"; + preimages_dir; + ] in - return installer + let+ _ = Runnable.run @@ Runnable.{value = process; run = Process.check} in + read_file output let default_boot_sector_of ~kind = match kind with diff --git a/tezt/lib_tezos/sc_rollup_helpers.mli b/tezt/lib_tezos/sc_rollup_helpers.mli index 9bd271f84ae4b045e291b2288958d617308604c5..8be84fd4a3df0e32618d649e5f7ddbe1ee75a095 100644 --- a/tezt/lib_tezos/sc_rollup_helpers.mli +++ b/tezt/lib_tezos/sc_rollup_helpers.mli @@ -38,12 +38,23 @@ val hex_encode : string -> string *) val read_kernel : ?base:string -> string -> string -(** [prepare_installer_kernel ~base_installee ~dac_node installee] feeds the - [dac_node] with a kernel ([installee]), and returns the boot sector of the - corresponding to the installer for this specific kernel. [installee] is read - from [base_installee] on the disk. *) +(** [prepare_installer_kernel ~base_installee ~preimages_dir installee] feeds the + [smart-rollup-installer] with a kernel ([installee]), and returns the boot + sector corresponding to the installer for this specific kernel. [installee] is read + from [base_installee] on the disk. + + The preimages of the [installee] are saved to [preimages_dir]. This should be the + reveal data directory of the rollup node. + + The returned installer is hex-encoded and may be passed to [originate_sc_rollup] + directly. +*) val prepare_installer_kernel : - ?base_installee:string -> dac_node:Dac_node.t -> string -> string Lwt.t + ?runner:Runner.t -> + ?base_installee:string -> + preimages_dir:string -> + string -> + string Lwt.t (** [setup_l1 protocol] initializes a protocol with the given parameters, and returns the L1 node and client. *) diff --git a/tezt/tests/evm_rollup.ml b/tezt/tests/evm_rollup.ml index 681b088225169aa5a51f018b29ff543f93264681..56a42ae0153933fc83cc24dd766249b17c315178 100644 --- a/tezt/tests/evm_rollup.ml +++ b/tezt/tests/evm_rollup.ml @@ -2,7 +2,7 @@ (* *) (* Open Source License *) (* Copyright (c) 2023 Nomadic Labs *) -(* Copyright (c) 2023 TriliTech *) +(* Copyright (c) 2023 TriliTech *) (* *) (* Permission is hereby granted, free of charge, to any person obtaining a *) (* copy of this software and associated documentation files (the "Software"),*) @@ -28,6 +28,7 @@ ------- Component: Smart Optimistic Rollups: EVM Kernel Requirement: make -f kernels.mk build-kernels + npm install eth-cli Invocation: dune exec tezt/tests/main.exe -- --file evm_rollup.ml *) @@ -41,7 +42,6 @@ type full_evm_setup = { sc_rollup_node : Sc_rollup_node.t; sc_rollup_client : Sc_rollup_client.t; sc_rollup_address : string; - dac_node : Dac_node.t; originator_key : string; rollup_operator_key : string; evm_proxy_server : Evm_proxy_server.t; @@ -147,23 +147,14 @@ let setup_evm_kernel ?(originator_key = Constant.bootstrap1.public_key_hash) ~base_dir:(Client.base_dir client) ~default_operator:rollup_operator_key in - let with_dac_node node client f = - Dac.with_legacy_dac_node - ~sc_rollup_node - node - client - f - ~pvm_name:pvm_kind - ~threshold:0 - ~dac_members:0 - in - with_dac_node node client @@ fun dac_node _dac_members -> (* Start a rollup node *) - (* Prepare DAL/DAC: put reveal data in rollup node directory. *) - let* installer_kernel = - prepare_installer_kernel ~base_installee:"./" ~dac_node "evm_kernel" + let* boot_sector = + prepare_installer_kernel + ~base_installee:"./" + ~preimages_dir: + (Filename.concat (Sc_rollup_node.data_dir sc_rollup_node) "wasm_2_0_0") + "evm_kernel" in - let boot_sector = hex_encode installer_kernel in let* sc_rollup_address = originate_sc_rollup ~kind:pvm_kind @@ -193,7 +184,6 @@ let setup_evm_kernel ?(originator_key = Constant.bootstrap1.public_key_hash) sc_rollup_node; sc_rollup_client; sc_rollup_address; - dac_node; originator_key; rollup_operator_key; evm_proxy_server; diff --git a/tezt/tests/expected/tx_sc_rollup.ml/Alpha- wasm_2_0_0 - tx kernel should run e2e (kernel_e2e).out b/tezt/tests/expected/tx_sc_rollup.ml/Alpha- wasm_2_0_0 - tx kernel should run e2e (kernel_e2e).out index 20e00bc0fe3326eb9caaddfa808a5a1366535d7c..aa02b3adce93c8a07dc33e2565efeed05c2b824d 100644 --- a/tezt/tests/expected/tx_sc_rollup.ml/Alpha- wasm_2_0_0 - tx kernel should run e2e (kernel_e2e).out +++ b/tezt/tests/expected/tx_sc_rollup.ml/Alpha- wasm_2_0_0 - tx kernel should run e2e (kernel_e2e).out @@ -1,38 +1,4 @@ -./octez-client --wait none originate smart rollup from '[PUBLIC_KEY_HASH]' of kind wasm_2_0_0 of type 'pair string (ticket string)' with kernel 0061736d01000000016a0f60037f7f7f017f60027f7f017f60027f7f0060057f7f7f7f7f017f60047f7f7f7f017f60017f0060087f7f7f7f7f7f7f7f0060000060037f7f7f0060057f7f7f7f7f0060067f7f7f7f7f7f017f60017f017e60017f017f60077f7f7f7f7f7f7f017f60037e7f7f017f02a2010511736d6172745f726f6c6c75705f636f72650b77726974655f6465627567000211736d6172745f726f6c6c75705f636f72650973746f72655f686173000111736d6172745f726f6c6c75705f636f72650b73746f72655f7772697465000311736d6172745f726f6c6c75705f636f72650a73746f72655f6d6f7665000411736d6172745f726f6c6c75705f636f72650f72657665616c5f707265696d6167650004033a3905060700050809080802020702000a03030b0b02010508080800080801020001010b080c0d0101090009000a0101000101010401010e0100000405017001121205030100110619037f01418080c0000b7f0041bba0c0000b7f0041c0a0c0000b073204066d656d6f727902000a6b65726e656c5f72756e00070a5f5f646174615f656e6403010b5f5f686561705f6261736503020917010041010b11053921192b2a24381a262d31323334353b0ae66b3902000bd00303017f017e027f23808080800041306b22082480808080000240024020022006490d0041e080c080002102412b21060c010b0240200120034121200420051095808080001096808080002209a7450d00418b81c080002102411b21060c010b024002402009422088a7220a20054b0d00200841186a2004200a108d80808000024020082d00180d00200841246a2802002103200841206a280200210b02400240200828021c0d00200820012007280200200b2003108b80808000200828020022020d010c040b200820033602142008200b360210200841186a200841106a108f80808000200828021c210302402008280228220b4121470d002005200a6b210b2004200a6a2104200241016a210a20082802182105034020034121490d05200841086a2001200a20052004200b200620071086808080002003415f6a2103200541216a210520082802082202450d000b200828020c21060c050b2003200b490d03418080c080004117200841186a41e081c0800041c080c0800010ac80808000000b200828020421060c030b4137210641a681c0800021020c020b41f081c08000412341d080c08000109f80808000000b410021020b2000200636020420002002360200200841306a2480808080000b7801037f23808080800041106b22002480808080001090808080002000200041086a419382c08000108a808080000240024020002802002201450d002000280204210241e682c080004114109180808000200120021091808080000c010b41d582c0800041111091808080000b200041106a2480808080000bde0102037f017e23808080800041306b2203248080808000200341286a200110988080800020032802282104200341206a20011098808080004175210502402000200420032802241092808080001097808080002206428080808010540d002006a70d00200341186a200110988080800020032802182105200341106a200110988080800020032802142101200341086a20021098808080002003280208210420032002109880808000200020052001200420032802041094808080001096808080002206422088a741002006a71b21050b200341306a24808080800020050b170041fa82c08000410e41a483c08000109f80808000000b8e0402057f017e23808080800041e080016b2203248080808000200341f0006a41003a0000200341e8006a4200370300200341e0006a4200370300200341d8006a420037030020034200370350200341d0006a21044101210502400240024002400340200341d080016a200220056a2206417f6a2d00002005417f6a108c8080800020032d00d080010d0120032d00d180012107200341d080016a20062d00002005108c8080800020032d00d080010d01200420032d00d180012007410474723a0000200441016a2104200541026a220541c300470d000b200341c6006a2205200341d0006a41196a290000370100200341c0006a2204200341d0006a41136a290000370300200341186a20032d00523a0000200341166a41136a2004290300370000200341166a41196a2005290100370000200320032f01503b01162003200329005b22083703382003200837002120032003290053370019200341d0006a41004180800110bc808080001a200341003602d080012003200341d080016a360238200341086a20014100200341166a200341d0006a418080014104200341386a108680808000200328020822050d01200141f883c08000419484c08000108880808000450d0241272104419c84c0800021050c030b4125210441f784c0800021050c020b200328020c21040c010b410021050b2000200436020420002005360200200341e080016a2480808080000bbb0202067f017e23808080800041206b22052480808080002005200436021c20052003360218200541106a200541186a108e80808000024002400240024020052802142206450d0020052802102107410021030340200620036b22044180102004418010491b220420036a22082004490d03200820064b0d0420022802002109200541086a41f883c080001098808080002005280208210a200541f883c0800010988080800002402001200a20052802042009200720036a2004109380808000109680808000220b428080808010540d00200ba7450d0041d484c0800021030c030b2002200920046a36020020082103200620084b0d000b0b410021030b2000412336020420002003360200200541206a2480808080000f0b2003200841c484c0800010a080808000000b2008200641c484c08000109d80808000000b850101017f0240024002400240200141bf7f6a41ff01714106490d002001419f7f6a41ff01714106490d01200141506a220341ff0171410a490d02200041086a2002360200200041046a200141ff0171360200200041013a00000f0b2000200141496a3a00010c020b2000200141a97f6a3a00010c010b200020033a00010b200041003a00000be90201037f02400240024020020d000c010b0240024002400240024020012d000022030e020001050b2002417f6a22034104490d02200128000122024118742002410874418080fc07717220024108764180fe037120024118767272220241046a220420034b0d022002417c490d014104200441bc85c0800010a080808000000b02402002417f6a22034104490d00200128000122024118742002410874418080fc07717220024108764180fe03712002411876727222024121702104200241046a220520034b0d0020040d002002417c4f0d032000410c6a2002360200200041086a200141056a360200200041046a4101360200200041003a00000f0b200041023a00010c040b2000410c6a2002360200200041086a200141056a360200200041046a4100360200200041003a00000f0b200041023a00010c020b4104200541cc85c0800010a080808000000b200041026a20033a0000200020024100473a00010b200041013a00000b0c00200020012902003703000b4101027f200041213602102000200128020022023602002000410c6a2001280204220141217022033602002000200120036b22013602042000200220016a3602080b02000b0c00200020011080808080000b0c00200120021081808080000b1200200120022003200420051082808080000b100020012002200320041083808080000b100020012002200320041084808080000b170020004178200041764a1bad4220862000411f76ad840bc60101027e4280808080807f2101420021020240024002400240024002400240024002400240024002400240200041096a0e0d0708060503040201000c090a0b080b42808080807021010c070b42808080806021010c060b42808080805021010c050b4280808080b07f21010c040b42808080804021010c030b4280808080a07f21010c020b4280808080907f21010c010b4280808080f07e21010b42012001840f0b4200428080808010840f0b4200428080808020840f0b42808080803021020b42002002840b0c00200020012902003703000b0d0020002802001a037f0c000b0b02000b810101017f23808080800041306b220324808080800020032001360204200320003602002003411c6a41023602002003412c6a4183808080003602002003420237020c200341d886c0800036020820034183808080003602242003200341206a360218200320033602282003200341046a360220200341086a200210a280808000000b810101017f23808080800041306b220324808080800020032001360204200320003602002003411c6a41023602002003412c6a4183808080003602002003420237020c200341d88ac0800036020820034183808080003602242003200341206a3602182003200341046a36022820032003360220200341086a200210a280808000000b810101017f23808080800041306b220324808080800020032001360204200320003602002003411c6a41023602002003412c6a4183808080003602002003420237020c200341f88ac0800036020820034183808080003602242003200341206a3602182003200341046a36022820032003360220200341086a200210a280808000000bd80701067f20002802102103024002400240024002400240200028020822044101460d0020034101470d010b20034101470d03200120026a2105200041146a28020022060d0141002107200121080c020b2000280218200120022000411c6a28020028020c1180808080000021030c030b41002107200121080340200822032005460d020240024020032c00002208417f4c0d00200341016a21080c010b0240200841604f0d00200341026a21080c010b0240200841704f0d00200341036a21080c010b20032d0002413f7141067420032d0001413f71410c747220032d0003413f7172200841ff0171411274418080f0007172418080c400460d03200341046a21080b200720036b20086a21072006417f6a22060d000b0b20082005460d00024020082c00002203417f4a0d0020034160490d0020034170490d0020082d0002413f7141067420082d0001413f71410c747220082d0003413f7172200341ff0171411274418080f0007172418080c400460d010b02400240024020070d00410021080c010b024020072002490d00410021032002210820072002460d010c020b4100210320072108200120076a2c00004140480d010b20082107200121030b2007200220031b21022003200120031b21010b024020040d002000280218200120022000411c6a28020028020c118080808000000f0b2000410c6a28020021050240024020024110490d002001200210b68080800021080c010b024020020d00410021080c010b20024103712107024002402002417f6a41034f0d0041002108200121030c010b2002417c71210641002108200121030340200820032c000041bf7f4a6a200341016a2c000041bf7f4a6a200341026a2c000041bf7f4a6a200341036a2c000041bf7f4a6a2108200341046a21032006417c6a22060d000b0b2007450d000340200820032c000041bf7f4a6a2108200341016a21032007417f6a22070d000b0b0240200520084d0d0041002103200520086b22072106024002400240410020002d0020220820084103461b4103710e03020001020b41002106200721030c010b20074101762103200741016a41017621060b200341016a21032000411c6a28020021072000280204210820002802182100024003402003417f6a2203450d0120002008200728021011818080800000450d000b41010f0b410121032008418080c400460d01200020012002200728020c118080808000000d01410021030340024020062003470d0020062006490f0b200341016a210320002008200728021011818080800000450d000b2003417f6a2006490f0b2000280218200120022000411c6a28020028020c118080808000000f0b20030b5401017f23808080800041206b2203248080808000200341146a4100360200200341dc85c08000360210200342013702042003200136021c200320003602182003200341186a3602002003200210a280808000000b810101017f23808080800041306b220324808080800020032001360204200320003602002003411c6a41023602002003412c6a4183808080003602002003420237020c200341ac8bc0800036020820034183808080003602242003200341206a3602182003200341046a36022820032003360220200341086a200210a280808000000b110020003502004101200110ba808080000b4c01017f23808080800041206b2202248080808000200241013a001820022001360214200220003602102002419486c0800036020c200241dc85c08000360208200241086a108980808000000bbd05010a7f23808080800041306b2203248080808000200341246a2001360200200341033a0028200342808080808004370308200320003602204100210420034100360218200341003602100240024002400240200228020822050d00200241146a2802002206450d0120022802002101200228021021002006417f6a41ffffffff017141016a2204210603400240200141046a2802002207450d00200328022020012802002007200328022428020c118080808000000d040b2000280200200341086a200041046a280200118180808000000d03200041086a2100200141086a21012006417f6a22060d000c020b0b2002410c6a2802002200450d00200041057421082000417f6a41ffffff3f7141016a2104200228020021014100210603400240200141046a2802002200450d00200328022020012802002000200328022428020c118080808000000d030b2003200520066a2200411c6a2d00003a00282003200041046a290200422089370308200041186a28020021092002280210210a4100210b41002107024002400240200041146a2802000e03010002010b2009410374210c41002107200a200c6a220c280204418480808000470d01200c28020028020021090b410121070b2003200936021420032007360210200041106a28020021070240024002402000410c6a2802000e03010002010b20074103742109200a20096a2209280204418480808000470d01200928020028020021070b4101210b0b2003200736021c2003200b360218200a20002802004103746a2200280200200341086a2000280204118180808000000d02200141086a21012008200641206a2206470d000b0b4100210020042002280204492201450d012003280220200228020020044103746a410020011b22012802002001280204200328022428020c11808080800000450d010b410121000b200341306a24808080800020000b8d0101047f23808080800041206b22022480808080004101210302402000200110a5808080000d002001411c6a2802002104200128021821052002411c6a4100360200200241dc85c080003602182002420137020c200241e085c0800036020820052004200241086a10a3808080000d00200041046a200110a58080800021030b200241206a24808080800020030bec0201037f2380808080004180016b220224808080800002400240024002400240200128020022034110710d0020034120710d0120003502004101200110ba8080800021000c040b20002802002100410021030340200220036a41ff006a413041d7002000410f712204410a491b20046a3a00002003417f6a21032000410f4b21042000410476210020040d000b20034180016a22004181014f0d0120014101418c88c080004102200220036a4180016a410020036b10b08080800021000c030b20002802002100410021030340200220036a41ff006a413041372000410f712204410a491b20046a3a00002003417f6a21032000410f4b21042000410476210020040d000b20034180016a22004181014f0d0120014101418c88c080004102200220036a4180016a410020036b10b08080800021000c020b200041800141fc87c08000109c80808000000b200041800141fc87c08000109c80808000000b20024180016a24808080800020000b0c004281b8aa93f5f3e5ec140bd10302027f017e41f400210341022104024002400240024002400240024002400240200141776a0e1f08020505010505050505050505050505050505050505050505030505050504000b41dc002103200141dc00460d050c040b41f20021030c040b41ee0021030c030b20024180800471450d01412221030c020b200241800271450d00412721030c010b02402002410171450d00200110a880808000450d00200141017267410276410773ad4280808080d0008421050c020b0240024002400240200141808004490d002001418080084f0d01200141af93c08000412a418394c0800041c00141c395c0800041b60310a9808080000d030c020b200141908ec08000412841e08ec0800041a002418091c0800041af0210a980808000450d010c020b200141e0ffff007141e0cd0a460d00200141c091756a41784b0d00200141feffff0071419ef00a460d00200141d0e2746a41714b0d002001418090746a41e0674b0d002001418080746a419d744b0d0020014180fe476a41caa4544b0d00200141f08338490d010b200141017267410276410773ad4280808080d0008421050c020b41012104200121030b0c010b41032104200121030b2000200336020420002004360200200041086a20053702000b810301057f2000410b74210141002102412021034120210402400240034002400240200341017620026a220341027441f899c080006a280200410b7422052001490d0020052001460d03200321040c010b200341016a21020b200420026b2103200420024b0d000c020b0b200341016a21020b0240024002402002411f4b0d002002410274210341c305210402402002411f460d00200341fc99c080006a28020041157621040b4100210102402002417f6a220520024b0d00200541204f0d02200541027441f899c080006a28020041ffffff007121010b02402004200341f899c080006a2802004115762202417f736a450d00200020016b2101200241c305200241c3054b1b21032004417f6a210541002104034020032002460d042004200241f89ac080006a2d00006a220420014b0d012005200241016a2202470d000b200521020b20024101710f0b2002412041a499c08000109b80808000000b2005412041c499c08000109b80808000000b200341c30541b499c08000109b80808000000b880301077f41012107024002402002450d00200120024101746a210820004180fe037141087621094100210a200041ff0171210b02400340200141026a210c200a20012d000122026a210d024020012d000022012009460d00200120094b0d03200d210a200c2101200c2008470d010c030b0240200d200a490d00200d20044b0d022003200a6a2101024003402002450d012002417f6a210220012d0000210a200141016a2101200a200b470d000b410021070c050b200d210a200c2101200c2008470d010c030b0b200a200d41f08dc0800010a080808000000b200d200441f08dc08000109d80808000000b2006450d00200520066a210b200041ffff037121014101210702400340200541016a210a0240024020052d00002202411874411875220d4100480d00200a21050c010b200a200b460d02200d41ff007141087420052d0001722102200541026a21050b200120026b22014100480d02200741017321072005200b470d000c020b0b41e885c08000412b41808ec08000109f80808000000b20074101710b1400200120002802002000280204109e808080000b180020002802002001200028020428020c118180808000000b930101017f23808080800041c0006b22052480808080002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a4185808080003602002005420237021c200541ec86c0800036021820054186808080003602342005200541306a3602282005200541106a3602382005200541086a360230200541186a200410a280808000000b890601097f024002402002450d002000280204210320002802002104200028020821050340024020052d0000450d002004419487c080004104200328020c11808080800000450d0041010f0b410021062002210702400240024002400340200120066a21080240024002400240024020074108490d000240200841036a417c7120086b22000d00200741786a2109410021000c030b20072000200020074b1b21004100210a03402008200a6a2d0000410a460d052000200a41016a220a460d020c000b0b2007450d054100210a20082d0000410a460d0320074101460d054101210a20082d0001410a460d0320074102460d054102210a20082d0002410a460d0320074103460d054103210a20082d0003410a460d0320074104460d054104210a20082d0004410a460d0320074105460d054105210a20082d0005410a460d0320074106460d054106210a20082d0006410a470d050c030b2000200741786a22094b0d010b02400340200820006a220a280200220b417f73200b418a94a8d0007341fffdfb776a71200a41046a280200220a417f73200a418a94a8d0007341fffdfb776a7172418081828478710d01200041086a220020094d0d000b0b200020074d0d002000200741948ac08000109c80808000000b20002007460d02200020076b210b200820006a21084100210a024003402008200a6a2d0000410a460d01200b200a41016a220a6a0d000c040b0b2000200a6a210a0b0240200a20066a220041016a22062000490d0020022006490d00200120006a2d0000410a470d00200541013a0000200220064d0d0320062100200120066a2c000041bf7f4c0d040c050b200220066b2107200220064f0d000b0b200541003a0000200221060b2002210020022006460d010b200120024100200641b887c0800010ae80808000000b0240200420012000200328020c11808080800000450d0041010f0b02400240200220004b0d0020022000460d010c040b200120006a2c000041bf7f4c0d030b200120006a2101200220006b22020d000b0b41000f0b200120022000200241c887c0800010ae80808000000ba80a01057f23808080800041f0006b22052480808080002005200336020c20052002360208024002400240024002400240024002402001418102490d004180022106024020002c00800241bf7f4a0d0041ff01210620002c00ff0141bf7f4a0d0041fe01210620002c00fe0141bf7f4a0d0041fd0121060b20062001490d0120062001470d030b20052001360214200520003602104100210641dc85c0800021070c010b20052006360214200520003602104105210641bc8bc0800021070b2005200636021c20052007360218200220014b22060d01200320014b0d010240200220034b0d00024002402002450d00024020022001490d0020012002460d010c020b200020026a2c00004140480d010b200321020b20052002360220200121030240200220014f0d00200241016a220641002002417d6a2203200320024b1b2203490d04024020032006460d00200020066a200020036a22086b21060240200020026a22092c000041bf7f4c0d002006417f6a21070c010b20032002460d0002402009417f6a22022c000041bf7f4c0d002006417e6a21070c010b20082002460d0002402009417e6a22022c000041bf7f4c0d002006417d6a21070c010b20082002460d0002402009417d6a22022c000041bf7f4c0d002006417c6a21070c010b20082002460d002006417b6a21070b200720036a21030b02402003450d00024020032001490d0020032001460d010c070b200020036a2c000041bf7f4c0d060b20032001460d040240024002400240200020036a22022c00002201417f4a0d0020022d0001413f7121002001411f7121062001415f4b0d01200641067420007221020c020b2005200141ff0171360224410121010c020b200041067420022d0002413f717221000240200141704f0d0020002006410c747221020c010b200041067420022d0003413f71722006411274418080f00071722202418080c400460d060b20052002360224410121012002418001490d00410221012002418010490d0041034104200241808004491b21010b200520033602282005200120036a36022c200541306a41146a4105360200200541ec006a418680808000360200200541e4006a418680808000360200200541c8006a41146a418780808000360200200541d4006a41888080800036020020054205370234200541f48cc08000360230200541838080800036024c2005200541c8006a3602402005200541186a3602682005200541106a3602602005200541286a3602582005200541246a3602502005200541206a360248200541306a200410a280808000000b200541e4006a418680808000360200200541c8006a41146a418680808000360200200541d4006a418380808000360200200541306a41146a410436020020054204370234200541a08cc08000360230200541838080800036024c2005200541c8006a3602402005200541186a3602602005200541106a36025820052005410c6a3602502005200541086a360248200541306a200410a280808000000b2000200141002006200410ae80808000000b20052002200320061b360228200541306a41146a4103360200200541c8006a41146a418680808000360200200541d4006a41868080800036020020054203370234200541e48bc08000360230200541838080800036024c2005200541c8006a3602402005200541186a3602582005200541106a3602502005200541286a360248200541306a200410a280808000000b2003200641b88dc0800010a080808000000b41e885c08000412b2004109f80808000000b2000200120032001200410ae80808000000b950302057f027e23808080800041c0006b22032480808080000240024020002d0008450d0020002802042104410121050c010b2000280204210402402000280200220628020022074104710d0041012105200628021841da87c0800041de87c0800020041b4102410120041b2006411c6a28020028020c118080808000000d0120012006200228020c1181808080000021050c010b024020040d000240200628021841dc87c0800041022006411c6a28020028020c11808080800000450d0041012105410021040c020b200628020021070b41012105200341013a0017200341346a41fc86c08000360200200341106a200341176a36020020032007360218200320062902183703082006290208210820062902102109200320062d00203a00382003200628020436021c20032009370328200320083703202003200341086a3602302001200341186a200228020c118180808000000d00200328023041d887c080004102200328023428020c1180808080000021050b200020053a00082000200441016a360204200341c0006a24808080800020000b840801077f024002402001450d00412b418080c4002000280200220141017122061b2107200620056a21080c010b200541016a210820002802002101412d21070b0240024020014104710d00410021020c010b0240024020034110490d002002200310b68080800021060c010b024020030d00410021060c010b20034103712109024002402003417f6a41034f0d0041002106200221010c010b2003417c71210a41002106200221010340200620012c000041bf7f4a6a200141016a2c000041bf7f4a6a200141026a2c000041bf7f4a6a200141036a2c000041bf7f4a6a2106200141046a2101200a417c6a220a0d000b0b2009450d000340200620012c000041bf7f4a6a2106200141016a21012009417f6a22090d000b0b200620086a21080b0240024020002802080d0041012101200020072002200310b7808080000d012000280218200420052000411c6a28020028020c118080808000000f0b024002400240024002402000410c6a280200220620084d0d0020002d00004108710d0441002101200620086b22092108410120002d0020220620064103461b4103710e03030102030b41012101200020072002200310b7808080000d042000280218200420052000411c6a28020028020c118080808000000f0b41002108200921010c010b20094101762101200941016a41017621080b200141016a21012000411c6a2802002109200028020421062000280218210a024003402001417f6a2201450d01200a2006200928021011818080800000450d000b41010f0b410121012006418080c400460d01200020072002200310b7808080000d01200028021820042005200028021c28020c118080808000000d01200028021c2109200028021821004100210102400340024020082001470d00200821010c020b200141016a210120002006200928021011818080800000450d000b2001417f6a21010b200120084921010c010b2000280204210b2000413036020420002d0020210c41012101200041013a0020200020072002200310b7808080000d0041002101200620086b22092103024002400240410120002d0020220620064103461b4103710e03020001020b41002103200921010c010b20094101762101200941016a41017621030b200141016a21012000411c6a2802002109200028020421062000280218210a024003402001417f6a2201450d01200a2006200928021011818080800000450d000b41010f0b410121012006418080c400460d00200028021820042005200028021c28020c118080808000000d00200028021c21012000280218210a410021090240034020032009460d01200941016a2109200a2006200128021011818080800000450d000b410121012009417f6a2003490d010b2000200c3a00202000200b36020441000f0b20010b830201017f23808080800041106b22022480808080002002410036020c02400240024002402001418001490d002001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b200220013a000c410121010c020b20022001413f71418001723a000d2002200141067641c001723a000c410221010c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010b20002002410c6a200110ad808080002101200241106a24808080800020010b7101017f23808080800041206b220224808080800020022000360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41d889c08000200241086a10a3808080002101200241206a24808080800020010b110020002802002001200210ad808080000b8a0201017f23808080800041106b2202248080808000200028020021002002410036020c02400240024002402001418001490d002001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d410321010c030b200220013a000c410121010c020b20022001413f71418001723a000d2002200141067641c001723a000c410221010c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d410421010b20002002410c6a200110ad808080002101200241106a24808080800020010b7401017f23808080800041206b220224808080800020022000280200360204200241086a41106a200141106a290200370300200241086a41086a200141086a29020037030020022001290200370308200241046a41d889c08000200241086a10a3808080002101200241206a24808080800020010ba30801097f02400240200041036a417c71220220006b220320014b0d00200341044b0d00200120036b22044104490d0020044103712105410021064100210102402003450d00200341037121070240024020022000417f736a41034f0d0041002101200021020c010b2003417c71210841002101200021020340200120022c000041bf7f4a6a200241016a2c000041bf7f4a6a200241026a2c000041bf7f4a6a200241036a2c000041bf7f4a6a2101200241046a21022008417c6a22080d000b0b2007450d000340200120022c000041bf7f4a6a2101200241016a21022007417f6a22070d000b0b200020036a210002402005450d0020002004417c716a22022c000041bf7f4a210620054101460d00200620022c000141bf7f4a6a210620054102460d00200620022c000241bf7f4a6a21060b20044102762103200620016a21080340200021062003450d02200341c001200341c001491b220441037121052004410274210902400240200441fc0171220a41027422000d00410021020c010b200620006a2107410021022006210003402000410c6a2802002201417f73410776200141067672418182840871200041086a2802002201417f73410776200141067672418182840871200041046a2802002201417f7341077620014106767241818284087120002802002201417f7341077620014106767241818284087120026a6a6a6a2102200041106a22002007470d000b0b200620096a2100200320046b2103200241087641ff81fc0771200241ff81fc07716a418180046c41107620086a21082005450d000b2006200a4102746a2100200541ffffffff036a220441ffffffff0371220241016a2201410371210302400240200241034f0d00410021020c010b200141fcffffff077121014100210203402000410c6a2802002207417f73410776200741067672418182840871200041086a2802002207417f73410776200741067672418182840871200041046a2802002207417f7341077620074106767241818284087120002802002207417f7341077620074106767241818284087120026a6a6a6a2102200041106a21002001417c6a22010d000b0b02402003450d00200441818080807c6a2101034020002802002207417f7341077620074106767241818284087120026a2102200041046a21002001417f6a22010d000b0b200241087641ff81fc0771200241ff81fc07716a418180046c41107620086a0f0b024020010d0041000f0b20014103712102024002402001417f6a41034f0d00410021080c010b2001417c712101410021080340200820002c000041bf7f4a6a200041016a2c000041bf7f4a6a200041026a2c000041bf7f4a6a200041036a2c000041bf7f4a6a2108200041046a21002001417c6a22010d000b0b2002450d000340200820002c000041bf7f4a6a2108200041016a21002002417f6a22020d000b0b20080b5c01017f0240024002402001418080c400460d0041012104200028021820012000411c6a280200280210118180808000000d010b20020d01410021040b20040f0b2000280218200220032000411c6a28020028020c118080808000000b870401077f23808080800041106b22022480808080004101210302402001280218220441272001411c6a2802002802102205118180808000000d002002200028020041810210a7808080002002410c6a2d00002106200241086a28020021072002280200210102400240024020022802042208418080c400460d0003402001210041dc00210341012101024002400240024020000e0407010300070b200641ff01712100410021064103210141fd00210302400240024020000e06090504000102090b4102210641fb0021030c040b4103210141f5002103410321060c030b4104210641dc0021030c020b41002101200821030c010b4102410120071b2106413041d7002008200741027476410f712203410a491b20036a21032007417f6a410020071b21070b20042003200511818080800000450d000c020b0b03402001210041dc002103410121010240024020000e0404040100040b200641ff01712100410021064103210141fd002103024002400240024020000e06070403020100070b4104210641dc0021030c030b4103210141f5002103410321060c020b4102210641fb0021030c010b4102410120071b2106418080c40020074102747641017141307221032007417f6a410020071b21070b20042003200511818080800000450d000b0b410121030c010b2004412720051181808080000021030b200241106a24808080800020030b8e0201027f23808080800041106b22022480808080002002200128021841e499c0800041112001411c6a28020028020c118080808000003a000820022001360200200241003a0009200241003602042002200036020c20022002410c6a41d499c0800010af808080001a20022d00082101024020022802042203450d00200141ff017121004101210120000d0020022802002100024020034101470d0020022d000941ff0171450d0020002d00004104710d0041012101200028021841df87c0800041012000411c6a28020028020c118080808000000d010b200028021841e087c0800041012000411c6a28020028020c1180808080000021010b200241106a248080808000200141ff01714100470be90203027f017e037f23808080800041306b2203248080808000412721040240024020004290ce005a0d00200021050c010b412721040340200341096a20046a2206417c6a200020004290ce008022054290ce007e7da7220741ffff037141e4006e2208410174418e88c080006a2f00003b00002006417e6a2007200841e4006c6b41ffff0371410174418e88c080006a2f00003b00002004417c6a2104200042ffc1d72f5621062005210020060d000b0b02402005a7220641e3004d0d00200341096a2004417e6a22046a2005a72206200641ffff037141e4006e220641e4006c6b41ffff0371410174418e88c080006a2f00003b00000b024002402006410a490d00200341096a2004417e6a22046a2006410174418e88c080006a2f00003b00000c010b200341096a2004417f6a22046a200641306a3a00000b2002200141dc85c080004100200341096a20046a412720046b10b0808080002104200341306a24808080800020040b1200200141f089c080004102109e808080000b0e0020002001200210bd808080000bb50101037f024002402002410f4b0d00200021030c010b2000410020006b41037122046a210502402004450d00200021030340200320013a0000200341016a22032005490d000b0b2005200220046b2204417c7122026a2103024020024101480d00200141ff017141818284086c2102034020052002360200200541046a22052003490d000b0b200441037121020b02402002450d00200320026a21050340200320013a0000200341016a22032005490d000b0b20000b0bc5200100418080c0000bbb2047756172616e7465656420746f2062652065786163742e2f7573722f7372632f74657a6f735f726f6c6c75705f656e636f64696e672f7372632f6461632e72731700100029000000f60000002b0000001700100029000000140100001f00000044414320707265696d616765207472656520636f6e7461696e7320746f6f206d616e79206c6576656c732e4661696c656420746f20726574726965766520707265696d616765556e61626c6520746f206465636f64652044414320706167653a204465636f646520696e746f20536c69636550616765206661696c656400000001000000000000000100000002000000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28293030613065396163383033343930333461616330333961336436666234653338616532613332343265323834613063346434646136383233643462653338313261614b65726e656c20696e7374616c6c65642e496e7374616c6c6174696f6e206661696c65643a6578706c696369742070616e6963696e7374616c6c65725f6b65726e656c2f7372632f6c69622e727300880110001b0000008a00000005000000696e7374616c6c65725f6b65726e656c2f7372632f72657665616c5f696e7374616c6c65722e72732f696e7374616c6c65722f6b65726e656c2f626f6f742e7761736d00dc0110001b0000002f6b65726e656c2f626f6f742e7761736d00000000021000110000004641494c454420746f20696e7374616c6c206b65726e656c20696e204b45524e454c5f5041544800b401100028000000490000001f0000004661696c656420746f207772697465206b65726e656c20636f6e74656e742070616765524f4f545f505245494d4147455f48415348206d7573742062652076616c6964204845582e74657a6f735f726f6c6c75705f656e636f64696e672f7372632f6461632e72739c02100020000000d9000000150000009c0210002000000008010000150000002e2e0000dc0210000200000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c7565000900000000000000010000000a000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320000024031000200000004403100012000000603a2000dc021000000000006903100002000000090000000c000000040000000b0000000c0000000d000000202020206c6962726172792f636f72652f7372632f666d742f6275696c646572732e727398031000200000002f00000021000000980310002000000030000000120000002c0a2c20280a282c296c6962726172792f636f72652f7372632f666d742f6e756d2e7273e10310001b00000065000000140000003078303030313032303330343035303630373038303931303131313231333134313531363137313831393230323132323233323432353236323732383239333033313332333333343335333633373338333934303431343234333434343534363437343834393530353135323533353435353536353735383539363036313632363336343635363636373638363937303731373237333734373537363737373837393830383138323833383438353836383738383839393039313932393339343935393639373938393900000900000004000000040000000e0000000f0000001000000028296c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e72730000f2041000200000005b0000000500000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468202405100012000000360510002200000072616e676520656e6420696e6465782068051000100000003605100022000000736c69636520696e64657820737461727473206174202062757420656e6473206174200088051000160000009e0510000d0000005b2e2e2e5d6279746520696e64657820206973206f7574206f6620626f756e6473206f6620600000c10510000b000000cc051000160000006803100001000000626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e6720600000fc0510000e0000000a061000040000000e061000100000006803100001000000206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060c10510000b000000400610002600000066061000080000006e0610000600000068031000010000006c6962726172792f636f72652f7372632f7374722f6d6f642e7273009c0610001b000000f50000001d0000006c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e7273000000c8061000250000000a0000001c000000c8061000250000001a0000003600000000010305050606020706080709110a1c0b190c1a0d100e0d0f0410031212130916011704180119031a071b011c021f1620032b032d0b2e01300331023201a702a902aa04ab08fa02fb05fd02fe03ff09ad78798b8da23057588b8c901cdd0e0f4b4cfbfc2e2f3f5c5d5fe2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d11293a3b4549575b5c5e5f64658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff806d71dedf0e1f6e6f1c1d5f7d7eaeaf7fbbbc16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f747596262e2fa7afb7bfc7cfd7df9a409798308f1fd2d4ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab051f09811b03190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15054e071b0757070206160d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd03590716091809140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a062f314d0380a4083c030f033c0738082b0582ff1118082f112d03210f210f808c048297190b158894052f053b07020e180980be22740c80d61a0c0580ff0580df0cf29d033709815c1480b80880cb050a183b030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a61081f50701202a064c04808d0480be031b030f0d000601010301040205070702080809020a050b020e041001110212051311140115021702190d1c051d0824016a046b02af03bc02cf02d102d40cd509d602d702da01e005e102e704e802ee20f004f802fa02fb010c273b3e4e4f8f9e9e9f7b8b9396a2b2ba86b1060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5fbfeeef5a62f4fcff9a9b2e2f2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fe7ecefffc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b4e43813709160a08183b45390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a161a261c1417094e042409440d19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d133a060a362c041780b93c64530c48090a46451b4808530d498107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48a4c630d842f8fd18247a1b98239072a045c06260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2e781332d03110408818c89046b050d0309071092604709743c80f60a7308701546809a140c570919808781470385420f1584501f80e12b80d52d031a040281401f113a050184e080f7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d80510030d03740c59070c04010f0c0438080a062808224e81540c1503050307091d030b05060a0a060808070980cb250a84066c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e7273000000790c1000280000004b00000028000000790c1000280000005700000016000000790c100028000000520000003e0000000900000004000000040000001100000054727946726f6d536c6963654572726f720000000003000083042000910560005d13a0001217201f0c20601fef2ca02b2a30202c6fa6e02c02a8602d1efb602e00fe20369eff6036fd01e136010a2137240de137ab0e61392f18a139301ce147f31e214cf06ae14f4f6f21509dbca15000cf615165d1a15100da215200e0e15330e16155aee2a156d0e8e15620006e57f001ff5700700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b033c082a180120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c01090128010301370101030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d021e021e02400201070801020b09012d030101750222017603040209010603db0202013a010107010101010208060a0201301f310430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c6400001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990b31047b01360f290102020a033104020207013d03240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002002e0217000101030405080802071e0494030037043208010e011605010f00070111020701020105000700013d0400076d07006080f000 --burn-cap 9999999 -Node is bootstrapped. -Estimated gas: 2748.451 units (will add 100 for safety) -Estimated storage: 6558 bytes added (will add 20 for safety) -Operation successfully injected in the node. -Operation hash is '[OPERATION_HASH]' -NOT waiting for the operation to be included. -Use command - octez-client wait for [OPERATION_HASH] to be included --confirmations 1 --branch [BLOCK_HASH] -and/or an external block explorer to make sure that it has been included. -This sequence of operations was run: - Manager signed operations: - From: [PUBLIC_KEY_HASH] - Fee to the baker: ꜩ0.019077 - Expected counter: 1 - Gas limit: 2849 - Storage limit: 6578 bytes - Balance updates: - [PUBLIC_KEY_HASH] ... -ꜩ0.019077 - payload fees(the block proposer) ....... +ꜩ0.019077 - Smart rollup origination: - Kind: wasm_2_0_0 - Parameter type: (pair string (ticket string)) - Kernel Blake2B hash: '1f1ec0db25f98f39d3932abb67a9ef15429d004da8751ffa18d8705864e3bf23' - This smart rollup origination was successfully applied - Consumed gas: 2748.451 - Storage size: 6558 bytes - Address: [SMART_ROLLUP_HASH] - Genesis commitment hash: [SC_ROLLUP_COMMITMENT_HASH] - Balance updates: - [PUBLIC_KEY_HASH] ... -ꜩ1.6395 - storage fees ........................... +ꜩ1.6395 - - ./octez-client rpc get '/chains/main/blocks/head/context/smart_rollups/smart_rollup/[SMART_ROLLUP_HASH]/genesis_info' { "level": 2, "commitment_hash": "[SC_ROLLUP_COMMITMENT_HASH]" } diff --git a/tezt/tests/tx_sc_rollup.ml b/tezt/tests/tx_sc_rollup.ml index 194b2939341ef8289fea93903d9217fc24a1d323..2b5d5e7e2f2d7b8d60600b485e383d398b09254b 100644 --- a/tezt/tests/tx_sc_rollup.ml +++ b/tezt/tests/tx_sc_rollup.ml @@ -284,8 +284,8 @@ let test_deposit ~client ~sc_rollup_node ~sc_rollup_client ~sc_rollup_address let test_tx_kernel_e2e protocol = let commitment_period = 2 and challenge_window = 5 in - Dac.with_layer1 ~protocol ~commitment_period ~challenge_window - @@ fun node client bootstrap1_key -> + let* node, client = setup_l1 ~commitment_period ~challenge_window protocol in + let bootstrap1_key = Constant.bootstrap1.alias in let sc_rollup_node = Sc_rollup_node.create ~protocol @@ -294,26 +294,15 @@ let test_tx_kernel_e2e protocol = ~base_dir:(Client.base_dir client) ~default_operator:bootstrap1_key in - Dac.with_legacy_dac_node - ~threshold:0 - ~dac_members:1 - ~sc_rollup_node - ~pvm_name:"wasm_2_0_0" - node - client - @@ fun dac_node _dac_members -> - (* Start a rollup node *) - (* Prepare DAL/DAC: put reveal data in rollup node directory. *) - let* () = Dac_node.terminate dac_node in - let* () = Dac_node.run dac_node ~wait_ready:true in - let* _dir = Dac_node.init_config dac_node in - (* We can now produce our installer *) - let* installer_kernel = prepare_installer_kernel ~dac_node "tx-kernel" in - let boot_sector = hex_encode installer_kernel in + let* boot_sector = + prepare_installer_kernel + ~preimages_dir: + (Filename.concat (Sc_rollup_node.data_dir sc_rollup_node) "wasm_2_0_0") + "tx-kernel" + in (* Initialise the sc rollup *) let* sc_rollup_address = Client.Sc_rollup.originate - ~hooks ~burn_cap:Tez.(of_int 9999999) ~src:bootstrap1_key ~kind:"wasm_2_0_0"