Mina Berkeley QANet测试网zkApp初体验

1. 引言

Mina系列博客有:

  • Mina概览
  • Mina的支付流程
  • Mina的zkApp
  • Mina中的Pasta(Pallas和Vesta)曲线
  • Mina中的Schnorr signature
  • Mina中的Pickles SNARK
  • Mina中的Kimchi SNARK
  • Mina Kimchi SNARK 代码解析

Ubuntu 18.04:

$ echo "deb [trusted=yes] http://packages.o1test.net  $(lsb_release -cs) unstable" | sudo tee /etc/apt/sources.list.d/mina-unstable.list
$ sudo apt-get update
# 安装Mina daemon
$ sudo apt-get install -y mina-berkeley=1.3.0beta1-release-2.0.0-ba9a0e0
# 安装Mina zkApp test transaction CLI
$ sudo apt-get install -y mina-snapp-test-transaction=1.3.0beta1-release-2.0.0-ba9a0e0

启动节点连接QANet测试网:

$ mina daemon --peer-list-url https://storage.googleapis.com/seed-lists/berkeley_seeds.txt

等待数分钟启动完毕后,确认所连接的网络正确:

$ mina client status

若为QANet,输出对应信息应有:

Chain id:     da081e702d0e02be30a7351bc2a54898593bb67934b46809400af4c890d13c89
Git SHA-1:    ba9a0e088b73a3c389550ee002ef0afc1ce3976d

同时mina client status输出信息中还包含了节点连接状态信息:

Peers:                                         12
User_commands sent:                            0
SNARK worker:                                  None
SNARK work fee:                                100000000
Sync status:                                   Catchup

Sync status有3种状态:

  • 1)Bootstrap:表示节点在启动中,需要与网络同步。【若该状态持续超过1小时,说明端口配置有误。】
  • 2)Catchup:表示正在收集最新的区块和状态,以跟上最新区块。
  • 3)Synced:且连接了1个或多个节点,表示已与网络成功连接,同时会看到日志[Info] Mina daemon is now synced

通过mina-generate-keypair离线生成key-pair文件:【若离线创建,需调用mina accounts import --privkey-path ~/.mina-config/wallets/store/B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS 导入账号。】【用作zkApp account】

$ mkdir ~/keys
$ chmod 700 ~/keys
$ mina-generate-keypair --privkey-path ~/keys/my-wallet
Password for new private key file: 
Again to confirm: 
Keypair generated
Public key: B62qpbnWwNdhjdmTCfLJMbJXnYDDqxdRNv2Hm7Be9pnLudF5vn7QTs1
Raw public key: B76070918E0322861C708B130CDC05E0BC76342D29F81D0C4B5765C17396959D

或与节点交互使用mina accounts create生成账号:【用作fee payer】

$ mina accounts create

验证生成的账号公私钥匹配正确:

$ mina-validate-keypair --privkey-path  ~/.mina-config/wallets/store/B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS
Enter password: 
Again to confirm: 
Public key on-disk is derivable from private key
Verified a transaction using specified keypair

获取测试token faucet为:

  • https://berkeley.minaexplorer.com/faucet

查看账号balance:

$ mina accounts list
Account #1:
  Public key: B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS
  Balance: 9
  Locked: false

在浏览器中输入localhost:3085/graphql可查看数据库信息。
Mina Berkeley QANet测试网zkApp初体验_第1张图片

主要测试点为:

1. Sync to the network with/without empty config directory
2. Successfully able to bootstrap to the latest state after restart
3. Create snapp accounts (using the new Snapps Test Transaction CLI)
4. Update various account fields using snapp transactions (using the new Snapps Test Transaction CLI)
5. Create non-snapp accounts using snapp transactions (using the new Snapps Test Transaction CLI)
6. Invalid transactions should be rejected (Some of the errors are insufficient funds, insufficient fees, insufficient replace fees, invalid sigantures, invalid proof, duplicates, and invalid nonce )
7. Valid transactions (snapp transactions or payments or delegations) should be added to the pool and included in a block
8. Snark work is added to the pool and included in blocks
9. Community block producers are producing blocks
10. Run archive nodes and verify that transactions (snapp transactions or otherwise) are archived

2. QANet zkApp

2.1 创建zkApp account

创建zkApp account并默认部署了一个测试合约:【等待一下】

$ mina-snapp-test-transaction create-snapp-account --fee-payer-key ~/.mina-config/wallets/store/B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS --nonce 0 --receiver-amount 2 --snapp-account-key ~/keys/my-wallet
Fee Payer keyfile
Private-key password: 
Snapp Account keyfile
Private-key password: 

Parties sexp:
((fee_payer
 ((data
   ((body
     ((public_key B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS)
      (update
       ((app_state (Keep Keep Keep Keep Keep Keep Keep Keep))
        (delegate Keep) (verification_key Keep) (permissions Keep)
        (snapp_uri Keep) (token_symbol Keep) (timing Keep)
        (voting_for Keep)))
      (token_id ()) (balance_change 1000000000) (increment_nonce ())
      (events ()) (sequence_events ())
      (call_data
       0x0000000000000000000000000000000000000000000000000000000000000000)
      (call_depth 0)
      (protocol_state
       ((snarked_ledger_hash Ignore) (snarked_next_available_token Ignore)
        (timestamp Ignore) (blockchain_length Ignore)
        (min_window_density Ignore) (last_vrf_output ())
        (total_currency Ignore) (global_slot_since_hard_fork Ignore)
        (global_slot_since_genesis Ignore)
        (staking_epoch_data
         ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
          (start_checkpoint Ignore) (lock_checkpoint Ignore)
          (epoch_length Ignore)))
        (next_epoch_data
         ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
          (start_checkpoint Ignore) (lock_checkpoint Ignore)
          (epoch_length Ignore)))))
      (use_full_commitment ())))
    (predicate 0)))
  (authorization
   (28052006975453738481673709016544502187442389375967276019072718319455928278179
    26623709221580148274030598185192298348389441885057742821854529701731084268558))))
(other_parties
 (((data
    ((body
      ((public_key B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS)
       (update
        ((app_state (Keep Keep Keep Keep Keep Keep Keep Keep))
         (delegate Keep) (verification_key Keep) (permissions Keep)
         (snapp_uri Keep) (token_symbol Keep) (timing Keep)
         (voting_for Keep)))
       (token_id 1) (balance_change ((magnitude 2000000000) (sgn Neg)))
       (increment_nonce true) (events ()) (sequence_events ())
       (call_data
        0x0000000000000000000000000000000000000000000000000000000000000000)
       (call_depth 0)
       (protocol_state
        ((snarked_ledger_hash Ignore) (snarked_next_available_token Ignore)
         (timestamp Ignore) (blockchain_length Ignore)
         (min_window_density Ignore) (last_vrf_output ())
         (total_currency Ignore) (global_slot_since_hard_fork Ignore)
         (global_slot_since_genesis Ignore)
         (staking_epoch_data
          ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
           (start_checkpoint Ignore) (lock_checkpoint Ignore)
           (epoch_length Ignore)))
         (next_epoch_data
          ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
           (start_checkpoint Ignore) (lock_checkpoint Ignore)
           (epoch_length Ignore)))))
       (use_full_commitment false)))
     (predicate (Nonce 1))))
   (authorization
    (Signature
     (28075749332946891773497072892456352801671210886465141252943699666871500045551
      22685197375128166970315064070324119281812483061382447927216467623179514459900))))
  ((data
    ((body
      ((public_key B62qpbnWwNdhjdmTCfLJMbJXnYDDqxdRNv2Hm7Be9pnLudF5vn7QTs1)
       (update
        ((app_state (Keep Keep Keep Keep Keep Keep Keep Keep))
         (delegate Keep)
         (verification_key
          (Set
           ((data
             ((step_data
               ((((h (Pow_2_roots_of_unity 11))) "\000")
                (((h (Pow_2_roots_of_unity 15))) "\002")))
              (max_width "\002")
              (wrap_index
               ((sigma_comm
                 ((0x03E6F74604974125026E6BF1F5D7A8BF03F7A38CF383C76F71F2D3BA0CD2425E
                   0x0453D7C0206F66A514007CE5F8F6D9C1F7E1FB88A248114DF54E7267912CC646)
                  (0x2F914CF6CC47C382402268B2563A95E5BBB5B9C9C0173E02E08B312156D9218B
                   0x20734D06B89E769CF3DDA454D47991596882CC04E531416FBF72DE18DE4D640F)
                  (0x3329C25F9B8E06246210330888D67AA488E823D957665E1A2C8A5B449E3A9ADE
                   0x0EEC4DAEB098B38AE6656BE8CC1C3E09D53F13699549A523FAFFC94733ECE008)
                  (0x069269441D513EB721CB6B3DAB99771ECDF48B442255A65CCE2FBB94FB9BF01F
                   0x2C3D1296020B13EEBAFA7889DB5B46479B4C42B5ABB5BB721E84B60E43CCA392)
                  (0x296AED48B71DF2F5A54209842BB731192E768C12E8B2E40D2AD90A923C583894
                   0x3C8C7680D3BB372A857DFE60581744533472FEBADA7A0F008D0D954E8711A735)
                  (0x2FCAE156A0DBA0D0A8E7865E4E9BB64F836E0A0C48DC21741FFDB5523D69C4ED
                   0x14953614E912495C6FDB07B926E586FBCF179F47B2E4BA16E23DC371D71179D4)
                  (0x30C96C4B457D53A26E08A01E28E6AB063972293E3DE65481E87FDE68475B8519
                   0x05202151226E599AA746180F0FDD41688A547140A3DB8606BA681FB1313A7A23)))
                (coefficients_comm
                 ((0x20A0FF091C68794E9A33E5FC1E9DB13D47A5CFF1393C1AD0A85E59504247B105
                   0x30558379C0391CA01758B35B0E02F5E9C34781DCA6F3A155B7AEAD92E916695B)
                  (0x39AD151861052AF9E433BDA2491F47C02489EA0B1D7C0B5E0C54C7DF0FF51BD7
                   0x2F680136071F4BF84309FD8DE746046C92E2F58B938401B25C7657E0EBC532BB)
                  (0x2A3425E6C5798B6A0EA7F8510A10DC26BE4146BCB12BFA09B9C296752B02CDBC
                   0x2CB05578A2A794309BC385132ED4CE419440A81E245C14133E4C6373FC0C17DB)
                  (0x3190C58B5A798B53C50445EA38413AA6622C67A32B0AF369DFA828DE5F1BC0AE
                   0x0405BC9E256DBB9B2872F13C445348BA78F8A90BB80A84EEE659FD94BD338557)
                  (0x2E1C43BB10B5DFE8E2C452B3617D9E99EB442808D0690524AA7CF7D2A17EF263
                   0x2C6ECD5A4F1D0733344205BEA238BA74DAB5DB10C16C19583818C4284722C247)
                  (0x25306AF92E7F0A19A65679F6B83032EDC021DC648EC62170F95AEE4653002761
                   0x22C768A25EF3E974B9BF6F8054B00B5A3C3E5245CB512859A95C410F8A5EC7D2)
                  (0x27EA2D88BDD3A476C9F64B6A33412E29500487B66168680E730F1EE0FC8D5FB0
                   0x21703832A789148C0B63363F18F5DE845C1D396C7EB9A4193B086AF3EF326310)
                  (0x32C52B357BB3F96E8F1AFE00BDC3BCAA0EB91BFE108F8EFFABEEA89C254FAEDB
                   0x21B6B9E6ED32FDDEA824F6768962BDD510B9DEC5124FE1DAC81B06CD29CE5FC7)
                  (0x25F52CF19D770130114CA52B7A4DE22A41AE82DC0310563CE530EEABB2E1F88F
                   0x3AB5E46F00132E1D8EE84FB1D2FA0E3C5EBF98D2DD41B5AC96D4745B25159101)
                  (0x2692FCE3145FFDD4070D86128962C82B8095E383F649E359C90946ECF01475A1
                   0x05302B143308FAA0D29825EBA3FDE3504F7B07B2FBEB9F71D07B4DD8CEFAC857)
                  (0x3C4C00381D1E6516B2080856AA6644813B7CF9448E9D287933A8AA60EE0D81AF
                   0x1841074E36604023BEE1FECBD73E73E881D3708AD5CFE7457FB1C008D4BF230C)
                  (0x04EA36530A6F48B072354110C373A0A2C85AF5ED70B3A12E90104E9E2759F806
                   0x2BF191A0BABF1732DC795B43062B03B630C8728865B6DC999CFA5F2C1663666D)
                  (0x0C0EB6C0BFA88FA888AC6C30796B8587156C64896DC86CED27FAA98711E36145
                   0x1DF91F000182B4CABFC3FB8034F6AF0214104DCD254E61A57C61F4716AABDD93)
                  (0x118D95E70939C7CEE7F0253AA364BE2BE42E84C4628E3B2C917CA82DF1FA2B12
                   0x1F0E79D578C97E1682D8034CE8FC371807288F2A61DFF502F7825368F4E0EF6A)
                  (0x1D73E15F01D41F042C143626377C534502AB2B3895D99F842BDECC55EE6ADF6E
                   0x339931F0A89A6602ABC903958FB890FE80B45D44F5285B8D261C3139216E2A50)))
                (generic_comm
                 (0x0540A55507F256649958CB7C44FA6649E44E1A2B418B2C7590CF00FFF15D6E66
                  0x3959BDCF4408470A08779EBAE171D9535C8D3804E4BB4B54A311F76DC296E6CA))
                (psm_comm
                 (0x0B9D031E0C5FA09CB816C5B6BABF4CDC95F6B48B07C1306A0F5C66A56040BA07
                  0x0529F6902DA10168B8E70C1D1F394CCF127F22E1C9711F6B102E3685D4FA74B6))
                (complete_add_comm
                 (0x2D2A743B4A3BAE45EBC1B29944BD4A5DDFEC30A45FC65703385CDE82F73061BC
                  0x1594CB038FB96186C721C98A8E40DA214617D77BBF9B752890A49728F4989EA2))
                (mul_comm
                 (0x18EE4D312B799364FCB3412FBFCB3DD77D9009C71AEE1806ECF43E4EEF562175
                  0x1457B0AF38EC7FB0FB5378B4C63401CF3DC858EEE19AAA704BC26185FBFF8412))
                (emul_comm
                 (0x1D854C230B28D1C30F8EA3BBF5A1788F6F6431E997E33FB8EF00D50D474989E6
                  0x0901F90BE59B17F57DD93561DDD986B4BD6B6EBB90F3AFA3BC263BCFCE9294F7))
                (endomul_scalar_comm
                 (0x3E8078CD97BD1CC725F2C6503B10ECFBE8984FD0E2076BE63A5329B4369C7A33
                  0x224C0DB8755FD26EB98C82EE7EDAAD4309AAB09A2E36D34550D64C967782A628))))
              (wrap_vk (<opaque>))))
            (hash
             0x24D49067A42141876B8BBB9FAEDD73CA6FAB336214C4355DA8A53E212759E8CC))))
         (permissions
          (Set
           ((stake true) (edit_state Proof) (send Signature) (receive None)
            (set_delegate Signature) (set_permissions Signature)
            (set_verification_key Signature) (set_snapp_uri Signature)
            (edit_sequence_state Proof) (set_token_symbol Signature)
            (increment_nonce Signature) (set_voting_for Signature))))
         (snapp_uri Keep) (token_symbol Keep) (timing Keep)
         (voting_for Keep)))
       (token_id 1) (balance_change ((magnitude 2000000000) (sgn Pos)))
       (increment_nonce false) (events ()) (sequence_events ())
       (call_data
        0x0000000000000000000000000000000000000000000000000000000000000000)
       (call_depth 0)
       (protocol_state
        ((snarked_ledger_hash Ignore) (snarked_next_available_token Ignore)
         (timestamp Ignore) (blockchain_length Ignore)
         (min_window_density Ignore) (last_vrf_output ())
         (total_currency Ignore) (global_slot_since_hard_fork Ignore)
         (global_slot_since_genesis Ignore)
         (staking_epoch_data
          ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
           (start_checkpoint Ignore) (lock_checkpoint Ignore)
           (epoch_length Ignore)))
         (next_epoch_data
          ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
           (start_checkpoint Ignore) (lock_checkpoint Ignore)
           (epoch_length Ignore)))))
       (use_full_commitment true)))
     (predicate Accept)))
   (authorization
    (Signature
     (15014741606311249383893715699357981130027596928747178259210762790268363842120
      19048023889487644491615716895692178500294368292398896178982363145567268832970))))))
(memo
 "\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"))

Snapp transaction yojson:
{"fee_payer":{"data":{"body":{"public_key":"B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS","update":{"app_state":[["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"]],"delegate":["Keep"],"verification_key":["Keep"],"permissions":["Keep"],"snapp_uri":["Keep"],"token_symbol":["Keep"],"timing":["Keep"],"voting_for":["Keep"]},"token_id":null,"balance_change":"1","increment_nonce":null,"events":[],"sequence_events":[],"call_data":"0x0000000000000000000000000000000000000000000000000000000000000000","call_depth":0,"protocol_state":{"snarked_ledger_hash":["Ignore"],"snarked_next_available_token":["Ignore"],"timestamp":["Ignore"],"blockchain_length":["Ignore"],"min_window_density":["Ignore"],"last_vrf_output":null,"total_currency":["Ignore"],"global_slot_since_hard_fork":["Ignore"],"global_slot_since_genesis":["Ignore"],"staking_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]},"next_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]}},"use_full_commitment":null},"predicate":"0"},"authorization":"7mXKyMWrBBRYgDPMGvaMECbYibohsiXyH1WLzvrS2mHQNxrn1VQhdQx7b8UnsuP5GRQPdapnZMCxoAL2MTHwpNhAKGFdyZL4"},"other_parties":[{"data":{"body":{"public_key":"B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS","update":{"app_state":[["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"]],"delegate":["Keep"],"verification_key":["Keep"],"permissions":["Keep"],"snapp_uri":["Keep"],"token_symbol":["Keep"],"timing":["Keep"],"voting_for":["Keep"]},"token_id":"1","balance_change":{"magnitude":"2000000000","sgn":["Neg"]},"increment_nonce":true,"events":[],"sequence_events":[],"call_data":"0x0000000000000000000000000000000000000000000000000000000000000000","call_depth":0,"protocol_state":{"snarked_ledger_hash":["Ignore"],"snarked_next_available_token":["Ignore"],"timestamp":["Ignore"],"blockchain_length":["Ignore"],"min_window_density":["Ignore"],"last_vrf_output":null,"total_currency":["Ignore"],"global_slot_since_hard_fork":["Ignore"],"global_slot_since_genesis":["Ignore"],"staking_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]},"next_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]}},"use_full_commitment":false},"predicate":["Nonce","1"]},"authorization":["Signature","7mXVvzSG9AqveRyqgnzB41NsvkgxMYUkwonm7PTdLxQFmbECVp7gsazSvrgeGeS2pRn4pLRBWUKEUPeSEtS1fT3TBbA9a7k9"]},{"data":{"body":{"public_key":"B62qpbnWwNdhjdmTCfLJMbJXnYDDqxdRNv2Hm7Be9pnLudF5vn7QTs1","update":{"app_state":[["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"]],"delegate":["Keep"],"verification_key":["Set",{"data":"4X1tWgjtpm8S5PqrYuTtmeUXriBHh6M8mDrXq3LGNnAVMCk6b5LkA9pzFk6h2D5FeuSppqURqfvUB6G4hrhAHJRzrr9sgbGvDdyKXCDuvzBL7bSDNfSDrRMGJ8QAX6cJbDYptwhKLEzv8DKKshvnzsMeMUxDwikSSpemhwALrASAS5RWdD7Sa79FsYgWduVTLk8P99WUgqP9zwj79PDWPp7QdMJomPL1bXT8Jr1YSu8xPZhDDxhpWgZXeEs2hHyJ1iz9xphSGQ3ayTDMHiuaiucT3zdmBCvKaNDuq2mDMRQ4TS6vzHReY5o3j6iBcRPyhEKmJQVWWgtZJ6J2ZY1cdYvCpi34vRYVTHuwYzYPpaE2i2F2jCJCs3Jrytdk1vfRX6BL9RxDtB1Ac1Wanbte8AZqHmd2yyY1rMZx13xpPBwdcH75d77htn3HRgW5LyuTwydNEU6fd4nVp9RPg5zFd6Y8de4HHNzwLjFXkLxN2QHMqCCNTCWALndFn3dzgkXJj8JTAYS4kxrJBiQQt97YBgdWXb1ZxKTTBcQwK23chuyaQSTzfH4fWQHTtqGxpwXfTorvrbkoiky6TXrfYkwiJHbt8S6g4bgbbBwLL9hRDAzumRSUDmEUjZVL3sLrBQa5kkyS44LJPtKDRhchq8Q2W5oFKmATKncFMBmS5JK8rPqz1B5dsL9r27scqDLLm2t3xdrjB4xxxBo2sgGTZug6Qv5UcbpJ1tHt4BFFzJjQWX9YDxUpAta23WrCPNPVUSBwsVjWRK2RLxTLw3fDiqoTUDPJ6AAJM55kSAzA6nPNF26FjQxD2Ky4BSyJ81oeJ6qYfj6Mi5LPrZREiEmFohbQuYm55jh4o9kEJeo1e5q8EsvGXsA5FeFPGKazJy7feVd6Sdm7SfFHjjTJtZFs3P3L7gqYJLRsGTPSiWRvZtuCjNHrQCwCgGteD8Sot3tMuUQ91VUgbTDQZWsdFhYf2woCSpeChrBj4e41RkdWTYdkg7mosdpPwnkb53FmW4ZFYCqeBBgHG11hjsGPtDWyvwpyhrWVJBAyDijVV2mbymgBxGzJ7ksXLoddmLYiYcDYJjR5nabKpYnXGVRop33zqMVYy1KVxkHcWSFPVhs5KnvEtssEos1fzoGDVNjviFZZRzC7TEzeThyf8XD9Bv4dxKC1pHVgKwHWELSPTj32nyhN4DJvPG4z6Mf15n86QVH5R5ZizhHDVZSjoWQRh8UnNvBwUGxuyaV5gdf9MkVHYmAuPdMKcKefEW2JDJbahtt4uLwwnqmhESMGCjDyMdR5Yapk6pnCaS49gahNTEnpVBr5XUAxBarUuGAQT6eTWgRKdMJBkBsTNsfCGKgza8p2vNpTXSvSj5GpwELGonkMVjfm2MQv1oHT4N1j69mEJK4hWPToq7F2sQPxBj6kL3nHyJ6CWap63f7N8JTtGfWMEShWynuE2hUrjNCjZrtuLyGVZYQLdvGiLjhXzZjtSp8T3BvYVK1TV9oiAr4LaxBy6ECZMmZiUWf2zn1Sr44ykGtaCa9dYBwY26wEdcKTWqiKXgg36Jjgd7H3LaQvEtYJkikuUYbjm2wiBTNy13oFz5HDEYssB8apSnYvBKaMH8mGyEobYaeraCWqjsUcdYRneAroy13AfK3cAYn59LXkt76ptd5jfyzu3LkF2PX9JVND3t64HsqHKbr1y56erUL7wBTFfJ3tE4SMsQLT1URah55twxCHY7tUeMiQuNQfGcdRS5HSTdwELUZt49tSjYdwXpbM795Y6x17h8ijGY7S2mqzQwgoFpjXf4xDJktcD228j44G8yPUp1UU7Yc8NS5oZ2LKAeAQP76Q1DsbX89hd8TLF6r7kmWHtEumJbEkqwTmtVtm6Ajokp7tvjun28K6s6Aatu9E5h3UR8HxkATN9nEaugPMre54t6JY9BtMCoKBnSfVsaiWMiHyX6Gb5yPgKYPHQYCiboesUbHL7HbeKZn3LU9YE7McwGNAw6mzNMecZWD1b1z65Sxc9PP9ahHfC1xhibAhPByKksLZ33YqQJzYQtTjVYnTtQmGKk8cHMz3kQHCf24tMATkwVc56eoezPHJoZXfZ38BzAeD5o6njYQTjvJyaxpRVWBgTKAegs2PStL2eqw3ySw9iDp5MyTEr95yW7A2FiJda7MAmSSfFq875DZaBMpdHwiCwyhtupUp3bdygAn1pBoeDFMbTW58jCcMsh2SypQoVrqCkHph4ngta9rq4MNnrfMEgG1iCe32FKymFvzbS3DcFFErbQqV2apFwpobrzRtHEycBvmDXCrxmJq6gHfpxtb4SqfnkeN1dcbjfudSw98oDRo8Pwb5rDZJBTTzYfvYhxP2w1DpYKFmTDTxGqcryTsPwQHQT5WAQxmL5iCGb3GZVD2SCkM6eTNNFXMbN8bHiGoR8nmDtWzRwjRj9CTs1tW68tec4TmnAE8N4sJpu4KUisEjWipgbVRRGUxzJUnWDQoDdkc","hash":"0x24D49067A42141876B8BBB9FAEDD73CA6FAB336214C4355DA8A53E212759E8CC"}],"permissions":["Set",{"stake":true,"edit_state":["Proof"],"send":["Signature"],"receive":["None"],"set_delegate":["Signature"],"set_permissions":["Signature"],"set_verification_key":["Signature"],"set_snapp_uri":["Signature"],"edit_sequence_state":["Proof"],"set_token_symbol":["Signature"],"increment_nonce":["Signature"],"set_voting_for":["Signature"]}],"snapp_uri":["Keep"],"token_symbol":["Keep"],"timing":["Keep"],"voting_for":["Keep"]},"token_id":"1","balance_change":{"magnitude":"2000000000","sgn":["Pos"]},"increment_nonce":false,"events":[],"sequence_events":[],"call_data":"0x0000000000000000000000000000000000000000000000000000000000000000","call_depth":0,"protocol_state":{"snarked_ledger_hash":["Ignore"],"snarked_next_available_token":["Ignore"],"timestamp":["Ignore"],"blockchain_length":["Ignore"],"min_window_density":["Ignore"],"last_vrf_output":null,"total_currency":["Ignore"],"global_slot_since_hard_fork":["Ignore"],"global_slot_since_genesis":["Ignore"],"staking_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]},"next_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]}},"use_full_commitment":true},"predicate":["Accept"]},"authorization":["Signature","7mX86v84ckbSaT5YoGZipWmoBKe1NwvNxjUa4pzpTNHzRDQ9yKMcw2aam8zgkycNq48xxx1rrK6DmkapTWP5Tk9RoyhA71Sk"]}],"memo":"E4YM2vTHhWEg66xpj52JErHUBU4pZ1yageL4TVDDpTTSsv8mK6YaH"}

Snapp transaction graphQL input 
mutation MyMutation {
 __typename
 sendSnapp(input: {
   feePayer:{data:{body:{publicKey:"B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS",
       update:{appState:[null,
           null,
           null,
           null,
           null,
           null,
           null,
           null],
         delegate:null,
         verificationKey:null,
         permissions:null,
         snappUri:null,
         tokenSymbol:null,
         timing:null,
         votingFor:null},
       fee:"1000000000",
       events:[],
       sequenceEvents:[],
       callData:"0x0000000000000000000000000000000000000000000000000000000000000000",
       callDepth:0,
       protocolState:{snarkedLedgerHash:null,
         snarkedNextAvailableToken:null,
         timestamp:null,
         blockchainLength:null,
         minWindowDensity:null,
         lastVrfOutput:null,
         totalCurrency:null,
         globalSlotSinceHardFork:null,
         globalSlotSinceGenesis:null,
         stakingEpochData:{ledger:{hash:null,
             totalCurrency:null},
           seed:null,
           startCheckpoint:null,
           lockCheckpoint:null,
           epochLength:null},
         nextEpochData:{ledger:{hash:null,
             totalCurrency:null},
           seed:null,
           startCheckpoint:null,
           lockCheckpoint:null,
           epochLength:null}}},
     predicate:"0"},
   authorization:"7mXKyMWrBBRYgDPMGvaMECbYibohsiXyH1WLzvrS2mHQNxrn1VQhdQx7b8UnsuP5GRQPdapnZMCxoAL2MTHwpNhAKGFdyZL4"},
   otherParties:[{data:{body:{publicKey:"B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS",
       update:{appState:[null,
           null,
           null,
           null,
           null,
           null,
           null,
           null],
         delegate:null,
         verificationKey:null,
         permissions:null,
         snappUri:null,
         tokenSymbol:null,
         timing:null,
         votingFor:null},
       tokenId:"1",
       balanceChange:{magnitude:"2000000000",
         sign:MINUS},
       incrementNonce:true,
       events:[],
       sequenceEvents:[],
       callData:"0x0000000000000000000000000000000000000000000000000000000000000000",
       callDepth:0,
       protocolState:{snarkedLedgerHash:null,
         snarkedNextAvailableToken:null,
         timestamp:null,
         blockchainLength:null,
         minWindowDensity:null,
         lastVrfOutput:null,
         totalCurrency:null,
         globalSlotSinceHardFork:null,
         globalSlotSinceGenesis:null,
         stakingEpochData:{ledger:{hash:null,
             totalCurrency:null},
           seed:null,
           startCheckpoint:null,
           lockCheckpoint:null,
           epochLength:null},
         nextEpochData:{ledger:{hash:null,
             totalCurrency:null},
           seed:null,
           startCheckpoint:null,
           lockCheckpoint:null,
           epochLength:null}},
       useFullCommitment:false},
     predicate:{nonce:"1"}},
   authorization:{signature:"7mXVvzSG9AqveRyqgnzB41NsvkgxMYUkwonm7PTdLxQFmbECVp7gsazSvrgeGeS2pRn4pLRBWUKEUPeSEtS1fT3TBbA9a7k9"}},
   {data:{body:{publicKey:"B62qpbnWwNdhjdmTCfLJMbJXnYDDqxdRNv2Hm7Be9pnLudF5vn7QTs1",
       update:{appState:[null,
           null,
           null,
           null,
           null,
           null,
           null,
           null],
         delegate:null,
         verificationKey:{verificationKey:"4X1tWgjtpm8S5PqrYuTtmeUXriBHh6M8mDrXq3LGNnAVMCk6b5LkA9pzFk6h2D5FeuSppqURqfvUB6G4hrhAHJRzrr9sgbGvDdyKXCDuvzBL7bSDNfSDrRMGJ8QAX6cJbDYptwhKLEzv8DKKshvnzsMeMUxDwikSSpemhwALrASAS5RWdD7Sa79FsYgWduVTLk8P99WUgqP9zwj79PDWPp7QdMJomPL1bXT8Jr1YSu8xPZhDDxhpWgZXeEs2hHyJ1iz9xphSGQ3ayTDMHiuaiucT3zdmBCvKaNDuq2mDMRQ4TS6vzHReY5o3j6iBcRPyhEKmJQVWWgtZJ6J2ZY1cdYvCpi34vRYVTHuwYzYPpaE2i2F2jCJCs3Jrytdk1vfRX6BL9RxDtB1Ac1Wanbte8AZqHmd2yyY1rMZx13xpPBwdcH75d77htn3HRgW5LyuTwydNEU6fd4nVp9RPg5zFd6Y8de4HHNzwLjFXkLxN2QHMqCCNTCWALndFn3dzgkXJj8JTAYS4kxrJBiQQt97YBgdWXb1ZxKTTBcQwK23chuyaQSTzfH4fWQHTtqGxpwXfTorvrbkoiky6TXrfYkwiJHbt8S6g4bgbbBwLL9hRDAzumRSUDmEUjZVL3sLrBQa5kkyS44LJPtKDRhchq8Q2W5oFKmATKncFMBmS5JK8rPqz1B5dsL9r27scqDLLm2t3xdrjB4xxxBo2sgGTZug6Qv5UcbpJ1tHt4BFFzJjQWX9YDxUpAta23WrCPNPVUSBwsVjWRK2RLxTLw3fDiqoTUDPJ6AAJM55kSAzA6nPNF26FjQxD2Ky4BSyJ81oeJ6qYfj6Mi5LPrZREiEmFohbQuYm55jh4o9kEJeo1e5q8EsvGXsA5FeFPGKazJy7feVd6Sdm7SfFHjjTJtZFs3P3L7gqYJLRsGTPSiWRvZtuCjNHrQCwCgGteD8Sot3tMuUQ91VUgbTDQZWsdFhYf2woCSpeChrBj4e41RkdWTYdkg7mosdpPwnkb53FmW4ZFYCqeBBgHG11hjsGPtDWyvwpyhrWVJBAyDijVV2mbymgBxGzJ7ksXLoddmLYiYcDYJjR5nabKpYnXGVRop33zqMVYy1KVxkHcWSFPVhs5KnvEtssEos1fzoGDVNjviFZZRzC7TEzeThyf8XD9Bv4dxKC1pHVgKwHWELSPTj32nyhN4DJvPG4z6Mf15n86QVH5R5ZizhHDVZSjoWQRh8UnNvBwUGxuyaV5gdf9MkVHYmAuPdMKcKefEW2JDJbahtt4uLwwnqmhESMGCjDyMdR5Yapk6pnCaS49gahNTEnpVBr5XUAxBarUuGAQT6eTWgRKdMJBkBsTNsfCGKgza8p2vNpTXSvSj5GpwELGonkMVjfm2MQv1oHT4N1j69mEJK4hWPToq7F2sQPxBj6kL3nHyJ6CWap63f7N8JTtGfWMEShWynuE2hUrjNCjZrtuLyGVZYQLdvGiLjhXzZjtSp8T3BvYVK1TV9oiAr4LaxBy6ECZMmZiUWf2zn1Sr44ykGtaCa9dYBwY26wEdcKTWqiKXgg36Jjgd7H3LaQvEtYJkikuUYbjm2wiBTNy13oFz5HDEYssB8apSnYvBKaMH8mGyEobYaeraCWqjsUcdYRneAroy13AfK3cAYn59LXkt76ptd5jfyzu3LkF2PX9JVND3t64HsqHKbr1y56erUL7wBTFfJ3tE4SMsQLT1URah55twxCHY7tUeMiQuNQfGcdRS5HSTdwELUZt49tSjYdwXpbM795Y6x17h8ijGY7S2mqzQwgoFpjXf4xDJktcD228j44G8yPUp1UU7Yc8NS5oZ2LKAeAQP76Q1DsbX89hd8TLF6r7kmWHtEumJbEkqwTmtVtm6Ajokp7tvjun28K6s6Aatu9E5h3UR8HxkATN9nEaugPMre54t6JY9BtMCoKBnSfVsaiWMiHyX6Gb5yPgKYPHQYCiboesUbHL7HbeKZn3LU9YE7McwGNAw6mzNMecZWD1b1z65Sxc9PP9ahHfC1xhibAhPByKksLZ33YqQJzYQtTjVYnTtQmGKk8cHMz3kQHCf24tMATkwVc56eoezPHJoZXfZ38BzAeD5o6njYQTjvJyaxpRVWBgTKAegs2PStL2eqw3ySw9iDp5MyTEr95yW7A2FiJda7MAmSSfFq875DZaBMpdHwiCwyhtupUp3bdygAn1pBoeDFMbTW58jCcMsh2SypQoVrqCkHph4ngta9rq4MNnrfMEgG1iCe32FKymFvzbS3DcFFErbQqV2apFwpobrzRtHEycBvmDXCrxmJq6gHfpxtb4SqfnkeN1dcbjfudSw98oDRo8Pwb5rDZJBTTzYfvYhxP2w1DpYKFmTDTxGqcryTsPwQHQT5WAQxmL5iCGb3GZVD2SCkM6eTNNFXMbN8bHiGoR8nmDtWzRwjRj9CTs1tW68tec4TmnAE8N4sJpu4KUisEjWipgbVRRGUxzJUnWDQoDdkc", hash:"0x24D49067A42141876B8BBB9FAEDD73CA6FAB336214C4355DA8A53E212759E8CC"},
         permissions:{stake:true,
           editState:Proof,
           send:Signature,
           receive:None,
           setDelegate:Signature,
           setPermissions:Signature,
           setVerificationKey:Signature,
           setSnappUri:Signature,
           editSequenceState:Proof,
           setTokenSymbol:Signature,
           incrementNonce:Signature,
           setVotingFor:Signature},
         snappUri:null,
         tokenSymbol:null,
         timing:null,
         votingFor:null},
       tokenId:"1",
       balanceChange:{magnitude:"2000000000",
         sign:PLUS},
       incrementNonce:false,
       events:[],
       sequenceEvents:[],
       callData:"0x0000000000000000000000000000000000000000000000000000000000000000",
       callDepth:0,
       protocolState:{snarkedLedgerHash:null,
         snarkedNextAvailableToken:null,
         timestamp:null,
         blockchainLength:null,
         minWindowDensity:null,
         lastVrfOutput:null,
         totalCurrency:null,
         globalSlotSinceHardFork:null,
         globalSlotSinceGenesis:null,
         stakingEpochData:{ledger:{hash:null,
             totalCurrency:null},
           seed:null,
           startCheckpoint:null,
           lockCheckpoint:null,
           epochLength:null},
         nextEpochData:{ledger:{hash:null,
             totalCurrency:null},
           seed:null,
           startCheckpoint:null,
           lockCheckpoint:null,
           epochLength:null}},
       useFullCommitment:true},
     predicate:{account:null,
       nonce:null}},
   authorization:{signature:"7mX86v84ckbSaT5YoGZipWmoBKe1NwvNxjUa4pzpTNHzRDQ9yKMcw2aam8zgkycNq48xxx1rrK6DmkapTWP5Tk9RoyhA71Sk"}}] })
}
   

2.2 更新zkApp状态

创建一笔zkApp交易以更新合约链上状态的8个字段:【命令行中的nonce值可不连续】

$ mina-snapp-test-transaction update-state --fee-payer-key ~/.mina-config/wallets/store/B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS --nonce 2 --snapp-account-key ~/keys/my-wallet --fee 5 --snapp-state 1 --snapp-state 2 --snapp-state 3 --snapp-state 4 --snapp-state 5 --snapp-state 6 --snapp-state 7 --snapp-state 8
Fee Payer keyfile
Private-key password: 
Snapp Account keyfile
Private-key password: 
Parties sexp:
 ((fee_payer
  ((data
    ((body
      ((public_key B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS)
       (update
        ((app_state (Keep Keep Keep Keep Keep Keep Keep Keep))
         (delegate Keep) (verification_key Keep) (permissions Keep)
         (snapp_uri Keep) (token_symbol Keep) (timing Keep)
         (voting_for Keep)))
       (token_id ()) (balance_change 5000000000) (increment_nonce ())
       (events ()) (sequence_events ())
       (call_data
        0x0000000000000000000000000000000000000000000000000000000000000000)
       (call_depth 0)
       (protocol_state
        ((snarked_ledger_hash Ignore) (snarked_next_available_token Ignore)
         (timestamp Ignore) (blockchain_length Ignore)
         (min_window_density Ignore) (last_vrf_output ())
         (total_currency Ignore) (global_slot_since_hard_fork Ignore)
         (global_slot_since_genesis Ignore)
         (staking_epoch_data
          ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
           (start_checkpoint Ignore) (lock_checkpoint Ignore)
           (epoch_length Ignore)))
         (next_epoch_data
          ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
           (start_checkpoint Ignore) (lock_checkpoint Ignore)
           (epoch_length Ignore)))))
       (use_full_commitment ())))
     (predicate 2)))
   (authorization
    (1011276047856166382193956472235931422358691676160133625081604578486903317857
     26949625640889852486451910917933660060551677005638898121969704352332403130194))))
 (other_parties
  (((data
     ((body
       ((public_key B62qpbnWwNdhjdmTCfLJMbJXnYDDqxdRNv2Hm7Be9pnLudF5vn7QTs1)
        (update
         ((app_state
           ((Set
             0x0000000000000000000000000000000000000000000000000000000000000001)
            (Set
             0x0000000000000000000000000000000000000000000000000000000000000002)
            (Set
             0x0000000000000000000000000000000000000000000000000000000000000003)
            (Set
             0x0000000000000000000000000000000000000000000000000000000000000004)
            (Set
             0x0000000000000000000000000000000000000000000000000000000000000005)
            (Set
             0x0000000000000000000000000000000000000000000000000000000000000006)
            (Set
             0x0000000000000000000000000000000000000000000000000000000000000007)
            (Set
             0x0000000000000000000000000000000000000000000000000000000000000008)))
          (delegate Keep) (verification_key Keep) (permissions Keep)
          (snapp_uri Keep) (token_symbol Keep) (timing Keep)
          (voting_for Keep)))
        (token_id 1) (balance_change ((magnitude 0) (sgn Pos)))
        (increment_nonce false) (events ()) (sequence_events ())
        (call_data
         0x0000000000000000000000000000000000000000000000000000000000000000)
        (call_depth 0)
        (protocol_state
         ((snarked_ledger_hash Ignore) (snarked_next_available_token Ignore)
          (timestamp Ignore) (blockchain_length Ignore)
          (min_window_density Ignore) (last_vrf_output ())
          (total_currency Ignore) (global_slot_since_hard_fork Ignore)
          (global_slot_since_genesis Ignore)
          (staking_epoch_data
           ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
            (start_checkpoint Ignore) (lock_checkpoint Ignore)
            (epoch_length Ignore)))
          (next_epoch_data
           ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
            (start_checkpoint Ignore) (lock_checkpoint Ignore)
            (epoch_length Ignore)))))
        (use_full_commitment true)))
      (predicate Accept)))
    (authorization
     (Proof
      ((statement
        ((proof_state
          ((deferred_values
            ((plonk
              ((alpha ((inner (e0ec7dbac148bfc1 bab3ee4494c03616))))
               (beta (79c33a29d79c7c88 cb129f2da938c151))
               (gamma (0cf8e425cc951775 9cbd1be114ca7e66))
               (zeta ((inner (3054068f0403dbd5 bd219621d697a46f))))))
             (combined_inner_product
              (Shifted_value
               0x31F74FF49088D7C511898E64852140FC3E852319A9F419E464F181B36EA1D90E))
             (b
              (Shifted_value
               0x26C6F4E01A2920843D6D4E59A1E020DEB0B7A574EC8B6C6D92C6A4B42E2B2A7C))
             (xi ((inner (82485f05ef33792b 2235427fc5d8de29))))
             (bulletproof_challenges
              (((prechallenge ((inner (13a33903dda69d97 84ef04450681df6e)))))
               ((prechallenge ((inner (6e751c0ffe71f0a1 377c4c9607a8aa67)))))
               ((prechallenge ((inner (0d8b1635ef67252a 81fdd0fd47d35e89)))))
               ((prechallenge ((inner (da2f712a31b63a94 b86aa4fc872456dd)))))
               ((prechallenge ((inner (cce43373e4d72834 ee795c701fb690cc)))))
               ((prechallenge ((inner (e56fae5cc670b6c9 940017f792330ffd)))))
               ((prechallenge ((inner (e3c1f9920b421105 8bf38c3419dc08dd)))))
               ((prechallenge ((inner (be2e0980bb6e1267 8bc4fa0a7bd0e91b)))))
               ((prechallenge ((inner (59c2ff6f415f5970 bdd41fec40530d77)))))
               ((prechallenge ((inner (64f4b2bd5dd23d9b 8ac0945bb2fdc485)))))
               ((prechallenge ((inner (d4ba80ef7284fcb0 51c94e6045e3f8bf)))))
               ((prechallenge ((inner (2d0a1f1df1b65c80 25b2c9d6341cf768)))))
               ((prechallenge ((inner (00eb971f32218cbd 964eace7e09843fa)))))
               ((prechallenge ((inner (5eda7f52fd30b25e 43d3472f1934f5eb)))))
               ((prechallenge ((inner (9f9578b579c44320 b4def9ab609dcca2)))))
               ((prechallenge ((inner (8896f37d533c49e8 70da7d48d06e0631)))))))
             (which_branch "\000")))
           (sponge_digest_before_evaluations
            (ae3d44bb7c2a1fcf 6afc1e75a7fed85d fd7aa8ff2613548f
             24da66ab0ec659cf))
           (me_only
            ((sg
              (0x3113249CE1D938203B4AAD0109F18ABD0E63262400DA39F488BF3EEC21EBF8DF
               0x0FCF2F47D5A4DB3727380BC2ECCA79B394B9523EF5203289201FBDDFA428C829))
             (old_bulletproof_challenges
              ((((prechallenge ((inner (3382b3c9ace6bf6f 79974358f9761863)))))
                ((prechallenge ((inner (dd3a2b06e9888797 dd7ae6402944a1c7)))))
                ((prechallenge ((inner (c6e8e530f49c9fcb 07ddbb65cda09cdd)))))
                ((prechallenge ((inner (532c59a287691a13 a921bcb02a656f7b)))))
                ((prechallenge ((inner (e29c77b18f10078b f85c5f00df6b0cee)))))
                ((prechallenge ((inner (1dbda72d07b09c87 4d1b97e2e95f26a0)))))
                ((prechallenge ((inner (9c75747c56805f11 a1fe6369facef1e8)))))
                ((prechallenge ((inner (5c2b8adfdbe9604d 5a8c718cf210f79b)))))
                ((prechallenge ((inner (22c0b35c51e06b48 a6888b7340a96ded)))))
                ((prechallenge ((inner (9007d7b55e76646e c1c68b39db4e8e12)))))
                ((prechallenge ((inner (4445e35e373f2bc9 9d40c715fc8ccde5)))))
                ((prechallenge ((inner (429882844bbcaa4e 97a927d7d0afb7bc)))))
                ((prechallenge ((inner (99ca3d5bfffd6e77 efe66a55155c4294)))))
                ((prechallenge ((inner (4b7db27121979954 951fa2e06193c840)))))
                ((prechallenge ((inner (2cd1ccbeb20747b3 5bd1de3cf264021d))))))
               (((prechallenge ((inner (3382b3c9ace6bf6f 79974358f9761863)))))
                ((prechallenge ((inner (dd3a2b06e9888797 dd7ae6402944a1c7)))))
                ((prechallenge ((inner (c6e8e530f49c9fcb 07ddbb65cda09cdd)))))
                ((prechallenge ((inner (532c59a287691a13 a921bcb02a656f7b)))))
                ((prechallenge ((inner (e29c77b18f10078b f85c5f00df6b0cee)))))
                ((prechallenge ((inner (1dbda72d07b09c87 4d1b97e2e95f26a0)))))
                ((prechallenge ((inner (9c75747c56805f11 a1fe6369facef1e8)))))
                ((prechallenge ((inner (5c2b8adfdbe9604d 5a8c718cf210f79b)))))
                ((prechallenge ((inner (22c0b35c51e06b48 a6888b7340a96ded)))))
                ((prechallenge ((inner (9007d7b55e76646e c1c68b39db4e8e12)))))
                ((prechallenge ((inner (4445e35e373f2bc9 9d40c715fc8ccde5)))))
                ((prechallenge ((inner (429882844bbcaa4e 97a927d7d0afb7bc)))))
                ((prechallenge ((inner (99ca3d5bfffd6e77 efe66a55155c4294)))))
                ((prechallenge ((inner (4b7db27121979954 951fa2e06193c840)))))
                ((prechallenge ((inner (2cd1ccbeb20747b3 5bd1de3cf264021d))))))))))))
         (pass_through
          ((app_state ()) (sg ()) (old_bulletproof_challenges ())))))
       (prev_evals
        ((evals
          (((public_input
             0x3B12F8CA48B702A2C18EF65CBEACD321F3EE48C4534F762DC0076803E3A6A087)
            (evals
             ((w
               ((0x15ED3AFD1CD9EBB19F0AECB30683FCC4F8B47CDFFCE1985AE819BB9E1F9BCB95)
                (0x16DDB199760B9268C92FB1A665DAD5422C6E8AF6AED77B8E870495DABEE2AF94)
                (0x3F8E90AAE3586BA0E35CDEDBECEED7A82B7E5696A8D95F982E578982319DB9E1)
                (0x1C89369F0E001905D483B72A21C25BA79BDE1E29BFFADFBB9E3B7D9F5469235F)
                (0x1A2B24F8A7AEAE3FFF0C6B1E3517D2D289E4B577DC956F72319066077722829F)
                (0x0C0223B54B40FB98E0B1807E4503485B6CCDB6FC47F69D53C86C13F13EEF8AB9)
                (0x114FE7905ABB679306317DB049952388C76829D16E67DA5E0EFFBDA1A2E47D31)
                (0x0B9F77D74D236CC70701350983FC91740DEFB0C1FD997C398A39BC75C8F519C1)
                (0x24679E153BE320060E021FFE9F435126CE4AB524F72C209A024FEBE7445C1F14)
                (0x0A0CAE198E0A9C4281B0AFD0E13D7202DC4090DB2F57B8C93EEE141F8C6CEF47)
                (0x049AD246EA39FA5543EEC624F33A769ACD86B160ACE902EB7E93ED724AC8789D)
                (0x25167B21AD7E0831E0807D53ED4F9B023B8236339571BD30965F13BA79A973BD)
                (0x2DA38B50FF9E9456F4B6FD79B64BB4F49F894688B1DC2D14DE4950982728BE27)
                (0x0F6B23F993AB4A1781BB1E687B794603F62F6BAB61BD758FDF32FCB298240951)
                (0x2BDF892D08FAE7F297B4EFCF579E4208C3E41305208EE284B833AC994EB11719)))
              (z
               (0x294BB3D07C37DD4DDF80131E1CD05782E4012815537587B1FF48CBFB784873AA))
              (s
               ((0x3001CEA703C0BB94BD70B1DF0626059A9B5533E6929008DBE0414A6AF2186924)
                (0x088E788F27C873B1370028F1769758ADAF420BEFD2B9FA489ADB36F009D4C3ED)
                (0x316FFC3BDD146CDF40D904309867573E1BF7560A2ECD7A557153B68E65A2C445)
                (0x0182355CD5607FEE2DAD816C4A4F905DC49F419FDF3B7CA7199DFBF721257675)
                (0x3E5C7C749AEA5F18339C7621EA2FBFFC0FAC05A9B5C005189B9BE642CDA68DA2)
                (0x242B15ED5D14895BABF4F03B50FAE889EADE713A46B1D7B87676BE268E523900)))
              (generic_selector
               (0x1715443CCD560EC3545DC9C830941C4BB539426E90D098334D4D10A49F42E9B2))
              (poseidon_selector
               (0x0CE68B393F0526FD3FD6448E15037E4C34997DC5478870B80011564864636346)))))
           ((public_input
             0x2C1DFC6693EE31713BD5B640BACFFBDA440CD7E4C8C5571B3FA8DCB70E15AE14)
            (evals
             ((w
               ((0x2D880544E9FE7C8B7A5B807AA0DF70F058BB38AE43AEFDBA322CFFC0F975D2BD)
                (0x39B4B124F68114F81F4BA2DB682609302224B2B2B1051FDE8F41E66B1A3C8FF4)
                (0x163CD72AC170F06436D18F2F936EE177E62A758FE56E853DD4F37C1B58F4FA17)
                (0x2AE305EE7C66D7866C5D630C776DD98AEA005865F1DAB41368EA95336B04230D)
                (0x028FBF18B5E83DCA6521F1A9478545A0C5EB9340D9C99BB67463F905B7E17A05)
                (0x31BCECADD7F3689475D464C526A856C5580A2104AF9593DCC101CBC5A7F833DA)
                (0x1ADA7EB771FA7F1A8C5EE5637327106F6513C3F38426F51374BA5230C631CD1F)
                (0x2D91EA23613F40A94A9EE9D20AA7160C83C415210D91AEF180FC4996CE07510D)
                (0x1673FB05ECE92D964CEBA3935A27B2262DC7636D2F20D7AF2072CE4B997A0096)
                (0x2652EAB07BB48E1165468BBE81FBC9A3C3DA97BC4B0C7844C2062E73A3758C50)
                (0x1EDB36A9ECC0F60FE717AA1A813B9C480DE9DE9FCF0BE767A982DF76D7E7C23E)
                (0x2EA2DBE08F125296F9436A1825E73914A00617F212134DF60CF5C6D041CDDB3A)
                (0x2ECCB74523A303DD591E3AD9EB354FAB1D7DE7150DFCAD23DC952CB8063EA2DE)
                (0x1A5DF14D8A77B5198F5469CF0AA2D5B1F1639C5E0E3EDA033FABEE378E62790B)
                (0x191598A46263115A0830F5851176F00A4446E7E30C6A54D225853C9A04D851FD)))
              (z
               (0x0DF291DE27369EEEEE1ECC43C59AE4B10733FA4ABFF030729798D419242B9300))
              (s
               ((0x141B85AEC7E36FF87AB1E964405347B119444C6E35A690BCBB5FE0B7E7671500)
                (0x3E6707ADD8CBD0CC9B20070612911323D0D87C16D8D193EF5E581BCC8A7A6F6A)
                (0x3EBCBBE7C56161E0B9D42E22D3C8DE5D5DF796EE4B6B2D660A7556D46B1BD62F)
                (0x01C64B309474B537C43DD0D6C751FD085C9FC34C3B851D6ABBAB86318C3DC83F)
                (0x1B082942D6293984FB2F7CEFB6E8133CECA8E18C2E6EC2A6CE0E0B1E4B6C313A)
                (0x1C262B60C6FAD9E2487570B3A06BC04443B0B3632AD4BEB36C059DD57A9BDE45)))
              (generic_selector
               (0x02378664DC577372F84ED266BD2B6831F59B6D400CF7356ECF8AFCBA3A49FEC3))
              (poseidon_selector
               (0x1B712325A6FD6960139FEE282A0B16215A8A3E8F03960A0E6962C5AEA373866B)))))))
         (ft_eval1
          0x225FDFC1A458685B3A139D200A2ADDF8BE242CB7D9D554A5F699802ED8049CD9)))
       (proof
        ((messages
          ((w_comm
            (((0x189D8D918A2BEDA931A9782D6270042A48C85C1418A4DC4F6AA749961CA67F9B
               0x02064CE8DF8E61DA223DEE41070856554A49CB9E27C6231CC8166B0D833857BD))
             ((0x280CFA3FEC75AC5223E0ED5D4E649FF8151DAC07D7343AD41BE7D1A8E7AD26DA
               0x1C57D744D1DEF0917B24FE666D76D8548C38B1454FC9CE01F6AF70B335D4B722))
             ((0x1524F7D60A72BF23A395D109421F2CB63D5665E2B072F04C219E769EA05D66F0
               0x25A320E4DB0030704A3D686B2CBF74C9ED0D951098EC757E16380C0AC08406E8))
             ((0x3B5998510165D7C3CE9DD089C9B8F5CC05E751EAAC8DED2FFE326F0F69E247D7
               0x21746EA9E96EE32A0F3674A9C8DCC80DAC333CD390887089218EE1537F19C3BF))
             ((0x2A0BA891A2778C2AD582374635E020769295184B89B24041A25D6B5296977631
               0x0EFD5E0F3CD308A05D26F12DF32D4E80737239317785118F3E5794DD64420EE6))
             ((0x22EA28625F1DA7067B1A82CAFF9E19DD2485FC4B114AD6CFA2DFABCE635A94CE
               0x28D52AEFF238CDBFCE852EBD6B2EB468A969AF14A620394E4C2BCE42456200EA))
             ((0x342DCDC2A61E1646302F5D46597EEEA01A6077D97972D2A1143ADFA35C55149D
               0x3B2E1E785EA05E6A050BE88BC8F06AF60786270BBBA6605D13706AAD2706167D))
             ((0x3ED59CB5D3F725D7E3F8B07BCA1A713F45E9BAD979EC8B9B3A35F911831D9CE0
               0x1E5EA1E78A7957DC96C2E960F42BAC4C3725D7CB98400970EE7849C7C61FBF3C))
             ((0x24B741C33979C86A5F59B32A22DF08198E32682EE2CDA1513466E6A3C9916229
               0x145D60AFBEA825BBD137AD7A3710AF130757946A0BA10CD2DDCF127A02CD2FCC))
             ((0x35E666376FA822F1ECC5509B4433BB4AE3CB36ABEA67965F65C66546635354DC
               0x23665CB5C2A51379C72683B1411E3C1CDA5FA99EEDB5D47851BF8D4319A5E7FD))
             ((0x035E6339C54580533BE31BBA128D22E93262CB9866897B705F7DA7D18B729570
               0x335D8C7A65E50A4A4FE58B2E5BB890E50A24E0B55105A7A57D603067E60FFE3A))
             ((0x30F1EA125886FF6B993DBE7649B5215F6D3177DBE82EBB51ED1E31CAB4BE4E37
               0x1DCD53A2CC5985442759CA96CB51DA9D408205B3767C77076068E1BB34405B15))
             ((0x0AE3C2C887BFF5CE9AFE8CC4AD48A48975C0E26ACEB59C0FFBD877151248948E
               0x376A6CDEDCD6DD6AF0C8387051A170A52E9CFEA828D4E6BCD1D9F8DEB7F5934F))
             ((0x120C661FEDD3DD41107BA63B271BFDAA1EE4398B8869861A0331A5D9AABC7A10
               0x0AD4B5E09D84E448A6115CF577BF178ABA541F00C75741254AE3515D429B8043))
             ((0x11D89939D49DD324B1308C989519A31E2D50E9CFD17561ADA8AD32AED6DEAF9D
               0x24512DE1D829B2BE555DCE89D5B1ADC19C899E1CE8D851C9B9C29D28ED3CC484))))
           (z_comm
            ((0x32B3C5EA921B10F47CCFBA184EA47E941D339121F6AB3939E6237750719CB5DA
              0x33A2CD912CD98156F88430E9A7E7AF598EEDF4683F6D383B5A36DC4C38472C81)))
           (t_comm
            ((0x135558C281AC25959F4A007F5C2095E8115462128FA03D8D6D3B02ECA92D84C9
              0x339B18333BF3557516D1B5D6C20CC7B2793721329522E22D5059F04C67AE578B)
             (0x243FA1949D87BD751C610812BA85BB69DBA5DA3F820454B975BF05B614F54CB9
              0x16FD1BF3A35A5458D4DACAA5FDD5A36EF4BD32AB2B6CD3D63D3FCC9813F59211)
             (0x3BC69868AE0DDC121D897992CCB59D77C09710F144188E6A6B456C46A36EEB57
              0x38F6C6EE3FDFD027EE7C46C77D4BC4BD965F7464BEA8CF9009C0ED16064D95F5)
             (0x0122293FD756C2409DD07DBC2A3447471AFE9642E6D83E666B52CA5C980AAB07
              0x2CF4C2BCF83E7238E05395BD58E5D28487F2A6EB41677FFD4A0ED32401A6456F)
             (0x180A89B2B4D5FB0179CC546479A4C02DAAD8AEC327156328624F06BF92609486
              0x03EB92542769277D5864D43071BEAE241EB80D380B37F223FA0717B25D5BCFA4)
             (0x3B498D9CBC714279E9702FC5570E1111DAC3463B7901324F7ACFC484C14261B8
              0x17FB8E081F1BADA7365141A9DEDD1645887EA1F8063C89A0F0178908C7AB652F)
             (0x322FEECE93095102C356D1BE1BCBF0BF7C476AF3AE09FD7E6B5EF868950AE5E6
              0x1968C31ED48A97A5AF94BF9A0AD6A4BDBCBC3F08E4C65C45FCD45BA8D4A89A48)))))
         (openings
          ((proof
            ((lr
              (((0x152D109581A17F86EC2DDF16E2AC64C0D89D0572B1E92FB3F83DD611EDD1D841
                 0x30D5BDE24D81B7A1FAE22EAB2097120FE45A67AFF032018F621CE30427B70954)
                (0x18EE6B82696E69B017FE8BCFA3C7A2F7D98B6CA1431A0FCFB3E0F622FDEA3D3D
                 0x27A60C899F92614D034A7EF2A081CE6B04D204CB5601B7D58D7A39BA74A608B2))
               ((0x28363224CAB9DCFB617627E21AC330CA60A1C0B78FB7228100EA676D5E30CC03
                 0x07085D51F9D340A5E8E46420F47F4D1765872B6A4B5BC67AFC2759DAFB4433C4)
                (0x015227A0509ABC8CFA7F06ED2F2BA68F1052F7809FE8D9D1A7D2B51E62811BAD
                 0x29A20A0BDB200B8CA485B7C8CE717987BA0F97A5792EA8889AEC6DA179628E94))
               ((0x0096BB180C4160EAA29E5ECB459678FDAEF4BFBD7FD1AD5E706FC59771A64792
                 0x004B0F75E2E87EC806F56912995D6F29F28A9DA507299A09A9969D9D879817CD)
                (0x01576E6AC36BE33C39F9A5F349D95D4C664E2FF8326DB713912FFD211D784B19
                 0x3AD4C6ADEAD224F432FC0399B43CA50FF7607A9D409623C35D920549EB1FA11F))
               ((0x01999D4EF45B64F1D6A54646EB23B2527A8E4CDAF145E33BA33E273E330167A3
                 0x158D2F6A514017CB54992A73788C69039A1C598BAF9B5F31D6F02977166D02AF)
                (0x3717606487D10376EB92984B27E3A2F416B0A6097BEA9CD9796737A045E98B92
                 0x36DA9865475BCEB8399B099F09B5E5B582FF63B5371403AD7155AF91DDEE3E15))
               ((0x23A7D9AB263ECF44AC15BE7D3F61B8B7E31C4865A47A83F1DE4D4C016F6F6509
                 0x2E943E35C8591E2CD554AB4A333378D6CD9E638CDC2280CA86D2F718D7ED30C3)
                (0x3B4669E665C3F6F8A299F5394FE5E589859A51481D94675BD0B63AB632BBA682
                 0x1BE6004C8F0FA0BD08D85520D036B1FD696FE5C58FC7F73EE114597A575784A4))
               ((0x04E222DA2572DF350937812D787E745634E09D0D16F64DF8C991198767DCF793
                 0x1B9C261BD00D878BE21166E09B569021881B03C1FE5FF2BD26DF5EF6988E4407)
                (0x24939F99E8F5E438628B4046746C857861A7A169F1B3D6B4CC334039B1C407F9
                 0x2CA00B0FE2BCE38DFEC6E6D1CF16AF5B99CB6FFC4647A3B363838A5B8E4961C3))
               ((0x368279BE610E757374D1B89FB6E32B165A3DBCCF36821E67DB490C703A682603
                 0x3EA1ECAA670401C8B6EA848CED2A9F9E4821E2A23871AC31739E48D821767A09)
                (0x3F3B68E2144F375FCAC6E784C9C918F8D36D488E76181DF4F1E5AFB1A1213299
                 0x10FAFBC6B0372B8743661FF8342268CB4660D33AB84907E141BCF6F2C07E0C0C))
               ((0x3BD08CCF7F605B5AB8A2997902BBE9EFA511AF19E05040EE4A8DCB839563D5DE
                 0x388AD0DEB213C35EA757D390BA8E86412DE11FBCF8EF8CB2AADE76173DFD70F9)
                (0x28433FDCE7CCA13E6EFBB4FF6749BC32904B48B96ACB8BAC8605BD0CAC1ACA5F
                 0x252C8C897ADEDD5F18FB681A0CC501B878BD3C24C8D194B77CD72191BEED36C4))
               ((0x2BF789A1782582420C7B522705B0111F8E4E83B244C39BBC6C92C535B47423A7
                 0x230A5A9213E0D0286D9D13F9F22C2774906FAFEFD436564405A9B6B0178AC38F)
                (0x2A835E8956CD6D7848F93C91A570D87922289AB666BB43CF070360AED99CF725
                 0x32B42E6CE6F5C21724CA3274676E22CFFA1ADFA0DBB437A8D14731FD730FB80A))
               ((0x10E408651B83F3045E6AAAAEEEDBAAE6264812593BB8BEBC77C752707D43E82A
                 0x16E100D892ED02BC0988430B5CCEF25F79BD71530E7BC8CB9105DABC18E4ABB6)
                (0x000100A0DC4EB1787AF1E9133BF3FB786ECA401EEBADFECEAB551F2E14FA2404
                 0x02E0E0B30424F79D5214AFE0033E18D1160B55C4B08C0F4F62D232831848C1BF))
               ((0x15B80A7E66C5FB0575DE1368EF91EC628813E66A31F04924EBAD03FA1779128D
                 0x08595777A71FF71045EA85E983D5A908564B95B8E2684CE945532D46AE63DA4C)
                (0x28005D85FD97E0345E9528247659D77F7741D2F825AEC77B259B256FBC93DC7E
                 0x343A32AD2E73C06797DF61F69F7DF4C342539FD4FD5EC3B213229FBC42802E82))
               ((0x12481BD7A1FC4617C149256CBE9FE654F9D10C3870978212BA464042E9856C71
                 0x045C6D69713723F8CEE8282D7A206597DF5B6BD9BB4191C769C2FCDDF6ADB659)
                (0x125B0783F35FAE4BCD327F4C15CC572B7EE197706A9C14D591B9F9B0C5841C17
                 0x1011DBE4F4FE1FB74D5703FB0B85C1423CFE87C7D60C79E84914535FC0F310CB))
               ((0x0F6A109560C3FB5F5FF6E664AE151677C5139CB1E9FB0C19CE49919D261636C1
                 0x042A327EA6C369140F58F0D2C755F745E45CDD314A7C37270A2152E37618B6B4)
                (0x203BCF4197818B710FEB41D239CC32E3D9BF4F8848BF9483A02864D6CF4EB4AC
                 0x2B8E63E5E07D7BC3C270D3BF74042557AFCCC19999442FB42D714C39AAC3A937))
               ((0x3742009B52A15FAA3E1269FC48A21C4C093F542BD81B5BB93F4013999C929A85
                 0x38EAED1DA81995BD6973B1FDB43E8F4B3E6280D1FC9DE4C8B71F8EF50B9C3FCF)
                (0x265FAD93CDFC344FC22B10840881B6C69B903D4D75D84B13E302AFB55EA5CBCD
                 0x0E3A1154FAF04EE2259249205B1EABF1490810F38666C13669E0DF1E745AE665))
               ((0x3C5A70071CD73C6358BCDB4004820289BAAE1A64AF4D9AFDF9051EADC3F18E04
                 0x35EB327667C45599E5AB05645E9FF984F2C0AAC6CC9C7CFE16A44BBEBF9EEC35)
                (0x31BAE6D7627B2AAE2D83958D15702021DEEC6935923B475F80357371525ED76B
                 0x3FA25E2184D6F26C836DB90FE7DEB27C11F29898043F8CB0C14AA10CC14FD0E5))))
             (z_1
              0x06B265FCAFCD2EFD8C55A6AAC0696F660234706D21F35CF56BE99FB832F4E078)
             (z_2
              0x0580C7FBF4A6B8208C0B6A263089310D3E2C217F750732ACF2ECA49302C1DA51)
             (delta
              (0x2F20F73E9820479CABAF759C94315A1AD19B9E87B6C4B86021F8745E83A0F502
               0x321ED1F594700EC8992B3C9FB379C6AF2551F08D991F2E13A76801C3DFA905BE))
             (sg
              (0x0E176EC1EBEC3CB4CFF9D49AC0EF788249C4FBFC979A0AF90630BD4D5C96D80F
               0x17FCE0FD999D8C2476E15687BA0919F0167D52ED79B4F1FD0A31D2C8DECF30A6))))
           (evals
            (((w
               ((0x3EB4E76A484A27478125D4952C874F71010398D2264EE29DB5808B5A01038D9D)
                (0x14AECB659DE30A9828BF5F6C7F7D889A2EAD3977C46739AED891A2FF4B66F344)
                (0x049E28ABF11A9654A6146CDD4097DA6CBAF9AA00CAA3F280F77D0E50E4D3A74B)
                (0x071E11550FA8921C7F49FCED37EDB21414678F8517607BD3C95E46376DA1E97D)
                (0x22DD5C687537BC5C49619004B4F3BFA41D0E22E0D5FE4B6BED48433E553C2548)
                (0x30A571EE9C7470D0D2B019B14426C83025016B33FD6A4F4BA93C5A80ACAE7D64)
                (0x0E86D556FD5510CD263421CEC760E4849B6BBED4453DFB1019CBBA7472A2C546)
                (0x002179B6A682ACAE31FA4C21C3B3AE0B03E9D8FE1F0118B2EFF9B19490257627)
                (0x3EE3F679012EAAC0D195DC70298A71753B34BC6B4540BAE89CF2F595F30F52E4)
                (0x1624AEAC66551C2678501F2D3622A9021AD8F62C2DF0217C1D96AFBCF698426B)
                (0x319853124DFE417EE78586CAB30585F311FF7D1E902DF606C5A66F030C5F925D)
                (0x3E8558023256308190F7277F032CF305368BC0FEBB9B194F84924B69D9D3910B)
                (0x0C5B42E52F4428E77459D9B9BF10D8D256AD383CD7199A87AD8F1ED8D33B6499)
                (0x0130FA9731D00AF2953DE174D70422DFBD9FE0ECFD6AA6C304AEB481360FDC0F)
                (0x3BEB2BEDB52FE97350872A43E1C5457254F22609A9228382E0C329012146A47C)))
              (z
               (0x385F04EDE175AFF4D55941C7CF4BB916973FA2205E94C1CD27815BEDEF0D569E))
              (s
               ((0x1B28112BFED40F92380537279F0B8345CD2C095BD7EE4E5583382E73FFF8CB27)
                (0x18A6810411618C11BA05A9829E4BBE7237FD1631AB7F0274007DF864ADE8EB11)
                (0x3292192AA62EF1CD0FC826D26AE615C947D09C039AC93AFD524178DBE978E5B8)
                (0x1CB901D2DD6DAE38C1433771C790D8E6D0E8E50C571E26E6C773A454CFE56247)
                (0x1B764B527A96F6BCB2BDB249DC6B33EC1037A270FE918D318B76A5434425BFCA)
                (0x20A2A6AF8C1BE627ACD2920214373716B6D09CD3E23B73968831F23972C2064C)))
              (generic_selector
               (0x3AFFAA7F27194BC743950F7B7FAB6A91851C5A6D17A8ED7D88010CF0BDD1ADCF))
              (poseidon_selector
               (0x17906925623E3F760451F9992E86582602F769AA4AA7F22AB14E6DFED2CE173E)))
             ((w
               ((0x1DA6769E0FBEF9BFBF0CCF3778BB46663328DD9D1F3D89B06EC89712F3AA802A)
                (0x3B3C95140943D27A7C009A9FCD093C2C98EF1A221AA83129653130C4B54BB228)
                (0x20DFAE6A0A17A03440AC7340A9DDC5D0B38675D5A41176F62342A3E3DF2D276D)
                (0x136D7864ED2D14CFF0DE1323C5E0117C2823034E4CE8EE8D075DA0873BA3A12D)
                (0x0101FC93BBA038813B057C058681063D2D24E091D2BCC7776478F2DF8BE042EA)
                (0x24306FDFF060F8E1CECF754B0B2B2E64DC2960EE8CA7B5D06A5346F83DFE4DE0)
                (0x235CE37A321B29BDD1C59DE933EFADC25AB95184D60B77B16D532A0417EF75F9)
                (0x160BE0E655CC503F98335E098C964A6B26034C27FF8AF0A526C61F78A175E4F8)
                (0x089162B6B0685FC92FCA435FD81654D802277A23A2193C214FF489C72901445A)
                (0x3DC077A3FA1ADA2352F890593CAC1F8028A6E3A19C19ED26FEBA0A7283215EFA)
                (0x3FC8AA9200EE5DF41AD12C86FA23F9F59B78A3DD2F8559F1B39ADDB3B446608A)
                (0x2DEB7A547C5267DD8FD598B1314691AAB1F88FB6E648D6FBF6D99598A3D4DD83)
                (0x16E275E8EAB296A906167D8FB66CFA0B5142ABF089F8C41477FCBCEB4BEBFE99)
                (0x38CF719306E24AD2686697FA70121573D7F19BF250E7980D798DDCFD439C45F9)
                (0x0F1A66CA6E7A6E1D939594068D53CD2F697CE2FCF54ECDF705CB4C1FAD4A537D)))
              (z
               (0x1F0F694351A92A88EDC805441044194C33035DB97B023BC3DD5B9E7A9FA98B30))
              (s
               ((0x028EB7087978CE7CA9553531343AAF093CFCB7A2B2C6E9B7258CB25C14E061FD)
                (0x2B09A555ADF0DA78BE27B3592E3216B754D2246C78D6360B32BE27EB3CF49612)
                (0x2291F3EFF77E267E4D0216B94C2BF7C755A1CA03B38BC66A76E6EAAB4FFB1214)
                (0x0BD2FB791CE6DB0FCA3EEE25404349587CEFF7CBA8DAEB8042D04E997F17AF99)
                (0x3EEDB9398B7431CD68226DB2B4C1303059507C7AF44035640CAD89F4CF50C5DB)
                (0x0EDB808EE7A65C6AEA5D23FF5394AB1B72D247B60C3E6C541E4FD89AE60E660D)))
              (generic_selector
               (0x2BBE67F9BACFF233AAD9DB2AA86D6A014FB55D3B79CDB25A1CFF7BE441A9FEDA))
              (poseidon_selector
               (0x2DFE449698082BED07C5A1BC42E1EA5AD088202EC52F009DF1D22AF1B4A91E8B)))))
           (ft_eval1
            0x38DE0BC332993AFDEE85348AE511F615A51BB61E444867DD5B8379E41BC7CF0D)))))))))))
 (memo
  "\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"))

Snapp transaction yojson:
 {"fee_payer":{"data":{"body":{"public_key":"B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS","update":{"app_state":[["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"]],"delegate":["Keep"],"verification_key":["Keep"],"permissions":["Keep"],"snapp_uri":["Keep"],"token_symbol":["Keep"],"timing":["Keep"],"voting_for":["Keep"]},"token_id":null,"balance_change":"5","increment_nonce":null,"events":[],"sequence_events":[],"call_data":"0x0000000000000000000000000000000000000000000000000000000000000000","call_depth":0,"protocol_state":{"snarked_ledger_hash":["Ignore"],"snarked_next_available_token":["Ignore"],"timestamp":["Ignore"],"blockchain_length":["Ignore"],"min_window_density":["Ignore"],"last_vrf_output":null,"total_currency":["Ignore"],"global_slot_since_hard_fork":["Ignore"],"global_slot_since_genesis":["Ignore"],"staking_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]},"next_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]}},"use_full_commitment":null},"predicate":"2"},"authorization":"7mXBJv7anTrMEqWN5wRH2FRNUjtYvaiZiFaRiCnBMes7ib4U81nxdtea8nUrDt1WJb5kw3FNSuFTyN79jGa654VrSuMRU6uV"},"other_parties":[{"data":{"body":{"public_key":"B62qpbnWwNdhjdmTCfLJMbJXnYDDqxdRNv2Hm7Be9pnLudF5vn7QTs1","update":{"app_state":[["Set","0x0000000000000000000000000000000000000000000000000000000000000001"],["Set","0x0000000000000000000000000000000000000000000000000000000000000002"],["Set","0x0000000000000000000000000000000000000000000000000000000000000003"],["Set","0x0000000000000000000000000000000000000000000000000000000000000004"],["Set","0x0000000000000000000000000000000000000000000000000000000000000005"],["Set","0x0000000000000000000000000000000000000000000000000000000000000006"],["Set","0x0000000000000000000000000000000000000000000000000000000000000007"],["Set","0x0000000000000000000000000000000000000000000000000000000000000008"]],"delegate":["Keep"],"verification_key":["Keep"],"permissions":["Keep"],"snapp_uri":["Keep"],"token_symbol":["Keep"],"timing":["Keep"],"voting_for":["Keep"]},"token_id":"1","balance_change":{"magnitude":"0","sgn":["Pos"]},"increment_nonce":false,"events":[],"sequence_events":[],"call_data":"0x0000000000000000000000000000000000000000000000000000000000000000","call_depth":0,"protocol_state":{"snarked_ledger_hash":["Ignore"],"snarked_next_available_token":["Ignore"],"timestamp":["Ignore"],"blockchain_length":["Ignore"],"min_window_density":["Ignore"],"last_vrf_output":null,"total_currency":["Ignore"],"global_slot_since_hard_fork":["Ignore"],"global_slot_since_genesis":["Ignore"],"staking_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]},"next_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]}},"use_full_commitment":true},"predicate":["Accept"]},"authorization":["Proof","KChzdGF0ZW1lbnQoKHByb29mX3N0YXRlKChkZWZlcnJlZF92YWx1ZXMoKHBsb25rKChhbHBoYSgoaW5uZXIoZTBlYzdkYmFjMTQ4YmZjMSBiYWIzZWU0NDk0YzAzNjE2KSkpKShiZXRhKDc5YzMzYTI5ZDc5YzdjODggY2IxMjlmMmRhOTM4YzE1MSkpKGdhbW1hKDBjZjhlNDI1Y2M5NTE3NzUgOWNiZDFiZTExNGNhN2U2NikpKHpldGEoKGlubmVyKDMwNTQwNjhmMDQwM2RiZDUgYmQyMTk2MjFkNjk3YTQ2ZikpKSkpKShjb21iaW5lZF9pbm5lcl9wcm9kdWN0KFNoaWZ0ZWRfdmFsdWUgMHgzMUY3NEZGNDkwODhEN0M1MTE4OThFNjQ4NTIxNDBGQzNFODUyMzE5QTlGNDE5RTQ2NEYxODFCMzZFQTFEOTBFKSkoYihTaGlmdGVkX3ZhbHVlIDB4MjZDNkY0RTAxQTI5MjA4NDNENkQ0RTU5QTFFMDIwREVCMEI3QTU3NEVDOEI2QzZEOTJDNkE0QjQyRTJCMkE3QykpKHhpKChpbm5lcig4MjQ4NWYwNWVmMzM3OTJiIDIyMzU0MjdmYzVkOGRlMjkpKSkpKGJ1bGxldHByb29mX2NoYWxsZW5nZXMoKChwcmVjaGFsbGVuZ2UoKGlubmVyKDEzYTMzOTAzZGRhNjlkOTcgODRlZjA0NDUwNjgxZGY2ZSkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDZlNzUxYzBmZmU3MWYwYTEgMzc3YzRjOTYwN2E4YWE2NykpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDBkOGIxNjM1ZWY2NzI1MmEgODFmZGQwZmQ0N2QzNWU4OSkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGRhMmY3MTJhMzFiNjNhOTQgYjg2YWE0ZmM4NzI0NTZkZCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGNjZTQzMzczZTRkNzI4MzQgZWU3OTVjNzAxZmI2OTBjYykpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGU1NmZhZTVjYzY3MGI2YzkgOTQwMDE3Zjc5MjMzMGZmZCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGUzYzFmOTkyMGI0MjExMDUgOGJmMzhjMzQxOWRjMDhkZCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGJlMmUwOTgwYmI2ZTEyNjcgOGJjNGZhMGE3YmQwZTkxYikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDU5YzJmZjZmNDE1ZjU5NzAgYmRkNDFmZWM0MDUzMGQ3NykpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDY0ZjRiMmJkNWRkMjNkOWIgOGFjMDk0NWJiMmZkYzQ4NSkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGQ0YmE4MGVmNzI4NGZjYjAgNTFjOTRlNjA0NWUzZjhiZikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDJkMGExZjFkZjFiNjVjODAgMjViMmM5ZDYzNDFjZjc2OCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDAwZWI5NzFmMzIyMThjYmQgOTY0ZWFjZTdlMDk4NDNmYSkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDVlZGE3ZjUyZmQzMGIyNWUgNDNkMzQ3MmYxOTM0ZjVlYikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDlmOTU3OGI1NzljNDQzMjAgYjRkZWY5YWI2MDlkY2NhMikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDg4OTZmMzdkNTMzYzQ5ZTggNzBkYTdkNDhkMDZlMDYzMSkpKSkpKSkod2hpY2hfYnJhbmNoIlwwMDAiKSkpKHNwb25nZV9kaWdlc3RfYmVmb3JlX2V2YWx1YXRpb25zKGFlM2Q0NGJiN2MyYTFmY2YgNmFmYzFlNzVhN2ZlZDg1ZCBmZDdhYThmZjI2MTM1NDhmIDI0ZGE2NmFiMGVjNjU5Y2YpKShtZV9vbmx5KChzZygweDMxMTMyNDlDRTFEOTM4MjAzQjRBQUQwMTA5RjE4QUJEMEU2MzI2MjQwMERBMzlGNDg4QkYzRUVDMjFFQkY4REYgMHgwRkNGMkY0N0Q1QTREQjM3MjczODBCQzJFQ0NBNzlCMzk0Qjk1MjNFRjUyMDMyODkyMDFGQkRERkE0MjhDODI5KSkob2xkX2J1bGxldHByb29mX2NoYWxsZW5nZXMoKCgocHJlY2hhbGxlbmdlKChpbm5lcigzMzgyYjNjOWFjZTZiZjZmIDc5OTc0MzU4Zjk3NjE4NjMpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihkZDNhMmIwNmU5ODg4Nzk3IGRkN2FlNjQwMjk0NGExYzcpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihjNmU4ZTUzMGY0OWM5ZmNiIDA3ZGRiYjY1Y2RhMDljZGQpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig1MzJjNTlhMjg3NjkxYTEzIGE5MjFiY2IwMmE2NTZmN2IpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihlMjljNzdiMThmMTAwNzhiIGY4NWM1ZjAwZGY2YjBjZWUpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcigxZGJkYTcyZDA3YjA5Yzg3IDRkMWI5N2UyZTk1ZjI2YTApKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig5Yzc1NzQ3YzU2ODA1ZjExIGExZmU2MzY5ZmFjZWYxZTgpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig1YzJiOGFkZmRiZTk2MDRkIDVhOGM3MThjZjIxMGY3OWIpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcigyMmMwYjM1YzUxZTA2YjQ4IGE2ODg4YjczNDBhOTZkZWQpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig5MDA3ZDdiNTVlNzY2NDZlIGMxYzY4YjM5ZGI0ZThlMTIpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig0NDQ1ZTM1ZTM3M2YyYmM5IDlkNDBjNzE1ZmM4Y2NkZTUpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig0Mjk4ODI4NDRiYmNhYTRlIDk3YTkyN2Q3ZDBhZmI3YmMpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig5OWNhM2Q1YmZmZmQ2ZTc3IGVmZTY2YTU1MTU1YzQyOTQpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig0YjdkYjI3MTIxOTc5OTU0IDk1MWZhMmUwNjE5M2M4NDApKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcigyY2QxY2NiZWIyMDc0N2IzIDViZDFkZTNjZjI2NDAyMWQpKSkpKSkoKChwcmVjaGFsbGVuZ2UoKGlubmVyKDMzODJiM2M5YWNlNmJmNmYgNzk5NzQzNThmOTc2MTg2MykpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGRkM2EyYjA2ZTk4ODg3OTcgZGQ3YWU2NDAyOTQ0YTFjNykpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGM2ZThlNTMwZjQ5YzlmY2IgMDdkZGJiNjVjZGEwOWNkZCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDUzMmM1OWEyODc2OTFhMTMgYTkyMWJjYjAyYTY1NmY3YikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGUyOWM3N2IxOGYxMDA3OGIgZjg1YzVmMDBkZjZiMGNlZSkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDFkYmRhNzJkMDdiMDljODcgNGQxYjk3ZTJlOTVmMjZhMCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDljNzU3NDdjNTY4MDVmMTEgYTFmZTYzNjlmYWNlZjFlOCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDVjMmI4YWRmZGJlOTYwNGQgNWE4YzcxOGNmMjEwZjc5YikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDIyYzBiMzVjNTFlMDZiNDggYTY4ODhiNzM0MGE5NmRlZCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDkwMDdkN2I1NWU3NjY0NmUgYzFjNjhiMzlkYjRlOGUxMikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDQ0NDVlMzVlMzczZjJiYzkgOWQ0MGM3MTVmYzhjY2RlNSkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDQyOTg4Mjg0NGJiY2FhNGUgOTdhOTI3ZDdkMGFmYjdiYykpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDk5Y2EzZDViZmZmZDZlNzcgZWZlNjZhNTUxNTVjNDI5NCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDRiN2RiMjcxMjE5Nzk5NTQgOTUxZmEyZTA2MTkzYzg0MCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDJjZDFjY2JlYjIwNzQ3YjMgNWJkMWRlM2NmMjY0MDIxZCkpKSkpKSkpKSkpKShwYXNzX3Rocm91Z2goKGFwcF9zdGF0ZSgpKShzZygpKShvbGRfYnVsbGV0cHJvb2ZfY2hhbGxlbmdlcygpKSkpKSkocHJldl9ldmFscygoZXZhbHMoKChwdWJsaWNfaW5wdXQgMHgzQjEyRjhDQTQ4QjcwMkEyQzE4RUY2NUNCRUFDRDMyMUYzRUU0OEM0NTM0Rjc2MkRDMDA3NjgwM0UzQTZBMDg3KShldmFscygodygoMHgxNUVEM0FGRDFDRDlFQkIxOUYwQUVDQjMwNjgzRkNDNEY4QjQ3Q0RGRkNFMTk4NUFFODE5QkI5RTFGOUJDQjk1KSgweDE2RERCMTk5NzYwQjkyNjhDOTJGQjFBNjY1REFENTQyMkM2RThBRjZBRUQ3N0I4RTg3MDQ5NURBQkVFMkFGOTQpKDB4M0Y4RTkwQUFFMzU4NkJBMEUzNUNERURCRUNFRUQ3QTgyQjdFNTY5NkE4RDk1Rjk4MkU1Nzg5ODIzMTlEQjlFMSkoMHgxQzg5MzY5RjBFMDAxOTA1RDQ4M0I3MkEyMUMyNUJBNzlCREUxRTI5QkZGQURGQkI5RTNCN0Q5RjU0NjkyMzVGKSgweDFBMkIyNEY4QTdBRUFFM0ZGRjBDNkIxRTM1MTdEMkQyODlFNEI1NzdEQzk1NkY3MjMxOTA2NjA3NzcyMjgyOUYpKDB4MEMwMjIzQjU0QjQwRkI5OEUwQjE4MDdFNDUwMzQ4NUI2Q0NEQjZGQzQ3RjY5RDUzQzg2QzEzRjEzRUVGOEFCOSkoMHgxMTRGRTc5MDVBQkI2NzkzMDYzMTdEQjA0OTk1MjM4OEM3NjgyOUQxNkU2N0RBNUUwRUZGQkRBMUEyRTQ3RDMxKSgweDBCOUY3N0Q3NEQyMzZDQzcwNzAxMzUwOTgzRkM5MTc0MERFRkIwQzFGRDk5N0MzOThBMzlCQzc1QzhGNTE5QzEpKDB4MjQ2NzlFMTUzQkUzMjAwNjBFMDIxRkZFOUY0MzUxMjZDRTRBQjUyNEY3MkMyMDlBMDI0RkVCRTc0NDVDMUYxNCkoMHgwQTBDQUUxOThFMEE5QzQyODFCMEFGRDBFMTNENzIwMkRDNDA5MERCMkY1N0I4QzkzRUVFMTQxRjhDNkNFRjQ3KSgweDA0OUFEMjQ2RUEzOUZBNTU0M0VFQzYyNEYzM0E3NjlBQ0Q4NkIxNjBBQ0U5MDJFQjdFOTNFRDcyNEFDODc4OUQpKDB4MjUxNjdCMjFBRDdFMDgzMUUwODA3RDUzRUQ0RjlCMDIzQjgyMzYzMzk1NzFCRDMwOTY1RjEzQkE3OUE5NzNCRCkoMHgyREEzOEI1MEZGOUU5NDU2RjRCNkZENzlCNjRCQjRGNDlGODk0Njg4QjFEQzJEMTRERTQ5NTA5ODI3MjhCRTI3KSgweDBGNkIyM0Y5OTNBQjRBMTc4MUJCMUU2ODdCNzk0NjAzRjYyRjZCQUI2MUJENzU4RkRGMzJGQ0IyOTgyNDA5NTEpKDB4MkJERjg5MkQwOEZBRTdGMjk3QjRFRkNGNTc5RTQyMDhDM0U0MTMwNTIwOEVFMjg0QjgzM0FDOTk0RUIxMTcxOSkpKSh6KDB4Mjk0QkIzRDA3QzM3REQ0RERGODAxMzFFMUNEMDU3ODJFNDAxMjgxNTUzNzU4N0IxRkY0OENCRkI3ODQ4NzNBQSkpKHMoKDB4MzAwMUNFQTcwM0MwQkI5NEJENzBCMURGMDYyNjA1OUE5QjU1MzNFNjkyOTAwOERCRTA0MTRBNkFGMjE4NjkyNCkoMHgwODhFNzg4RjI3Qzg3M0IxMzcwMDI4RjE3Njk3NThBREFGNDIwQkVGRDJCOUZBNDg5QURCMzZGMDA5RDRDM0VEKSgweDMxNkZGQzNCREQxNDZDREY0MEQ5MDQzMDk4Njc1NzNFMUJGNzU2MEEyRUNEN0E1NTcxNTNCNjhFNjVBMkM0NDUpKDB4MDE4MjM1NUNENTYwN0ZFRTJEQUQ4MTZDNEE0RjkwNURDNDlGNDE5RkRGM0I3Q0E3MTk5REZCRjcyMTI1NzY3NSkoMHgzRTVDN0M3NDlBRUE1RjE4MzM5Qzc2MjFFQTJGQkZGQzBGQUMwNUE5QjVDMDA1MTg5QjlCRTY0MkNEQTY4REEyKSgweDI0MkIxNUVENUQxNDg5NUJBQkY0RjAzQjUwRkFFODg5RUFERTcxM0E0NkIxRDdCODc2NzZCRTI2OEU1MjM5MDApKSkoZ2VuZXJpY19zZWxlY3RvcigweDE3MTU0NDNDQ0Q1NjBFQzM1NDVEQzlDODMwOTQxQzRCQjUzOTQyNkU5MEQwOTgzMzRENEQxMEE0OUY0MkU5QjIpKShwb3NlaWRvbl9zZWxlY3RvcigweDBDRTY4QjM5M0YwNTI2RkQzRkQ2NDQ4RTE1MDM3RTRDMzQ5OTdEQzU0Nzg4NzBCODAwMTE1NjQ4NjQ2MzYzNDYpKSkpKSgocHVibGljX2lucHV0IDB4MkMxREZDNjY5M0VFMzE3MTNCRDVCNjQwQkFDRkZCREE0NDBDRDdFNEM4QzU1NzFCM0ZBOERDQjcwRTE1QUUxNCkoZXZhbHMoKHcoKDB4MkQ4ODA1NDRFOUZFN0M4QjdBNUI4MDdBQTBERjcwRjA1OEJCMzhBRTQzQUVGREJBMzIyQ0ZGQzBGOTc1RDJCRCkoMHgzOUI0QjEyNEY2ODExNEY4MUY0QkEyREI2ODI2MDkzMDIyMjRCMkIyQjEwNTFGREU4RjQxRTY2QjFBM0M4RkY0KSgweDE2M0NENzJBQzE3MEYwNjQzNkQxOEYyRjkzNkVFMTc3RTYyQTc1OEZFNTZFODUzREQ0RjM3QzFCNThGNEZBMTcpKDB4MkFFMzA1RUU3QzY2RDc4NjZDNUQ2MzBDNzc2REQ5OEFFQTAwNTg2NUYxREFCNDEzNjhFQTk1MzM2QjA0MjMwRCkoMHgwMjhGQkYxOEI1RTgzRENBNjUyMUYxQTk0Nzg1NDVBMEM1RUI5MzQwRDlDOTlCQjY3NDYzRjkwNUI3RTE3QTA1KSgweDMxQkNFQ0FERDdGMzY4OTQ3NUQ0NjRDNTI2QTg1NkM1NTgwQTIxMDRBRjk1OTNEQ0MxMDFDQkM1QTdGODMzREEpKDB4MUFEQTdFQjc3MUZBN0YxQThDNUVFNTYzNzMyNzEwNkY2NTEzQzNGMzg0MjZGNTEzNzRCQTUyMzBDNjMxQ0QxRikoMHgyRDkxRUEyMzYxM0Y0MEE5NEE5RUU5RDIwQUE3MTYwQzgzQzQxNTIxMEQ5MUFFRjE4MEZDNDk5NkNFMDc1MTBEKSgweDE2NzNGQjA1RUNFOTJEOTY0Q0VCQTM5MzVBMjdCMjI2MkRDNzYzNkQyRjIwRDdBRjIwNzJDRTRCOTk3QTAwOTYpKDB4MjY1MkVBQjA3QkI0OEUxMTY1NDY4QkJFODFGQkM5QTNDM0RBOTdCQzRCMEM3ODQ0QzIwNjJFNzNBMzc1OEM1MCkoMHgxRURCMzZBOUVDQzBGNjBGRTcxN0FBMUE4MTNCOUM0ODBERTlERTlGQ0YwQkU3NjdBOTgyREY3NkQ3RTdDMjNFKSgweDJFQTJEQkUwOEYxMjUyOTZGOTQzNkExODI1RTczOTE0QTAwNjE3RjIxMjEzNERGNjBDRjVDNkQwNDFDRERCM0EpKDB4MkVDQ0I3NDUyM0EzMDNERDU5MUUzQUQ5RUIzNTRGQUIxRDdERTcxNTBERkNBRDIzREM5NTJDQjgwNjNFQTJERSkoMHgxQTVERjE0RDhBNzdCNTE5OEY1NDY5Q0YwQUEyRDVCMUYxNjM5QzVFMEUzRURBMDMzRkFCRUUzNzhFNjI3OTBCKSgweDE5MTU5OEE0NjI2MzExNUEwODMwRjU4NTExNzZGMDBBNDQ0NkU3RTMwQzZBNTREMjI1ODUzQzlBMDREODUxRkQpKSkoeigweDBERjI5MURFMjczNjlFRUVFRTFFQ0M0M0M1OUFFNEIxMDczM0ZBNEFCRkYwMzA3Mjk3OThENDE5MjQyQjkzMDApKShzKCgweDE0MUI4NUFFQzdFMzZGRjg3QUIxRTk2NDQwNTM0N0IxMTk0NDRDNkUzNUE2OTBCQ0JCNUZFMEI3RTc2NzE1MDApKDB4M0U2NzA3QUREOENCRDBDQzlCMjAwNzA2MTI5MTEzMjNEMEQ4N0MxNkQ4RDE5M0VGNUU1ODFCQ0M4QTdBNkY2QSkoMHgzRUJDQkJFN0M1NjE2MUUwQjlENDJFMjJEM0M4REU1RDVERjc5NkVFNEI2QjJENjYwQTc1NTZENDZCMUJENjJGKSgweDAxQzY0QjMwOTQ3NEI1MzdDNDNERDBENkM3NTFGRDA4NUM5RkMzNEMzQjg1MUQ2QUJCQUI4NjMxOEMzREM4M0YpKDB4MUIwODI5NDJENjI5Mzk4NEZCMkY3Q0VGQjZFODEzM0NFQ0E4RTE4QzJFNkVDMkE2Q0UwRTBCMUU0QjZDMzEzQSkoMHgxQzI2MkI2MEM2RkFEOUUyNDg3NTcwQjNBMDZCQzA0NDQzQjBCMzYzMkFENEJFQjM2QzA1OURENTdBOUJERTQ1KSkpKGdlbmVyaWNfc2VsZWN0b3IoMHgwMjM3ODY2NERDNTc3MzcyRjg0RUQyNjZCRDJCNjgzMUY1OUI2RDQwMENGNzM1NkVDRjhBRkNCQTNBNDlGRUMzKSkocG9zZWlkb25fc2VsZWN0b3IoMHgxQjcxMjMyNUE2RkQ2OTYwMTM5RkVFMjgyQTBCMTYyMTVBOEEzRThGMDM5NjBBMEU2OTYyQzVBRUEzNzM4NjZCKSkpKSkpKShmdF9ldmFsMSAweDIyNUZERkMxQTQ1ODY4NUIzQTEzOUQyMDBBMkFEREY4QkUyNDJDQjdEOUQ1NTRBNUY2OTk4MDJFRDgwNDlDRDkpKSkocHJvb2YoKG1lc3NhZ2VzKCh3X2NvbW0oKCgweDE4OUQ4RDkxOEEyQkVEQTkzMUE5NzgyRDYyNzAwNDJBNDhDODVDMTQxOEE0REM0RjZBQTc0OTk2MUNBNjdGOUIgMHgwMjA2NENFOERGOEU2MURBMjIzREVFNDEwNzA4NTY1NTRBNDlDQjlFMjdDNjIzMUNDODE2NkIwRDgzMzg1N0JEKSkoKDB4MjgwQ0ZBM0ZFQzc1QUM1MjIzRTBFRDVENEU2NDlGRjgxNTFEQUMwN0Q3MzQzQUQ0MUJFN0QxQThFN0FEMjZEQSAweDFDNTdENzQ0RDFERUYwOTE3QjI0RkU2NjZENzZEODU0OEMzOEIxNDU0RkM5Q0UwMUY2QUY3MEIzMzVENEI3MjIpKSgoMHgxNTI0RjdENjBBNzJCRjIzQTM5NUQxMDk0MjFGMkNCNjNENTY2NUUyQjA3MkYwNEMyMTlFNzY5RUEwNUQ2NkYwIDB4MjVBMzIwRTREQjAwMzA3MDRBM0Q2ODZCMkNCRjc0QzlFRDBEOTUxMDk4RUM3NTdFMTYzODBDMEFDMDg0MDZFOCkpKCgweDNCNTk5ODUxMDE2NUQ3QzNDRTlERDA4OUM5QjhGNUNDMDVFNzUxRUFBQzhERUQyRkZFMzI2RjBGNjlFMjQ3RDcgMHgyMTc0NkVBOUU5NkVFMzJBMEYzNjc0QTlDOERDQzgwREFDMzMzQ0QzOTA4ODcwODkyMThFRTE1MzdGMTlDM0JGKSkoKDB4MkEwQkE4OTFBMjc3OEMyQUQ1ODIzNzQ2MzVFMDIwNzY5Mjk1MTg0Qjg5QjI0MDQxQTI1RDZCNTI5Njk3NzYzMSAweDBFRkQ1RTBGM0NEMzA4QTA1RDI2RjEyREYzMkQ0RTgwNzM3MjM5MzE3Nzg1MTE4RjNFNTc5NERENjQ0MjBFRTYpKSgoMHgyMkVBMjg2MjVGMURBNzA2N0IxQTgyQ0FGRjlFMTlERDI0ODVGQzRCMTE0QUQ2Q0ZBMkRGQUJDRTYzNUE5NENFIDB4MjhENTJBRUZGMjM4Q0RCRkNFODUyRUJENkIyRUI0NjhBOTY5QUYxNEE2MjAzOTRFNEMyQkNFNDI0NTYyMDBFQSkpKCgweDM0MkRDREMyQTYxRTE2NDYzMDJGNUQ0NjU5N0VFRUEwMUE2MDc3RDk3OTcyRDJBMTE0M0FERkEzNUM1NTE0OUQgMHgzQjJFMUU3ODVFQTA1RTZBMDUwQkU4OEJDOEYwNkFGNjA3ODYyNzBCQkJBNjYwNUQxMzcwNkFBRDI3MDYxNjdEKSkoKDB4M0VENTlDQjVEM0Y3MjVEN0UzRjhCMDdCQ0ExQTcxM0Y0NUU5QkFEOTc5RUM4QjlCM0EzNUY5MTE4MzFEOUNFMCAweDFFNUVBMUU3OEE3OTU3REM5NkMyRTk2MEY0MkJBQzRDMzcyNUQ3Q0I5ODQwMDk3MEVFNzg0OUM3QzYxRkJGM0MpKSgoMHgyNEI3NDFDMzM5NzlDODZBNUY1OUIzMkEyMkRGMDgxOThFMzI2ODJFRTJDREExNTEzNDY2RTZBM0M5OTE2MjI5IDB4MTQ1RDYwQUZCRUE4MjVCQkQxMzdBRDdBMzcxMEFGMTMwNzU3OTQ2QTBCQTEwQ0QyRERDRjEyN0EwMkNEMkZDQykpKCgweDM1RTY2NjM3NkZBODIyRjFFQ0M1NTA5QjQ0MzNCQjRBRTNDQjM2QUJFQTY3OTY1RjY1QzY2NTQ2NjM1MzU0REMgMHgyMzY2NUNCNUMyQTUxMzc5QzcyNjgzQjE0MTFFM0MxQ0RBNUZBOTlFRURCNUQ0Nzg1MUJGOEQ0MzE5QTVFN0ZEKSkoKDB4MDM1RTYzMzlDNTQ1ODA1MzNCRTMxQkJBMTI4RDIyRTkzMjYyQ0I5ODY2ODk3QjcwNUY3REE3RDE4QjcyOTU3MCAweDMzNUQ4QzdBNjVFNTBBNEE0RkU1OEIyRTVCQjg5MEU1MEEyNEUwQjU1MTA1QTdBNTdENjAzMDY3RTYwRkZFM0EpKSgoMHgzMEYxRUExMjU4ODZGRjZCOTkzREJFNzY0OUI1MjE1RjZEMzE3N0RCRTgyRUJCNTFFRDFFMzFDQUI0QkU0RTM3IDB4MURDRDUzQTJDQzU5ODU0NDI3NTlDQTk2Q0I1MURBOUQ0MDgyMDVCMzc2N0M3NzA3NjA2OEUxQkIzNDQwNUIxNSkpKCgweDBBRTNDMkM4ODdCRkY1Q0U5QUZFOENDNEFENDhBNDg5NzVDMEUyNkFDRUI1OUMwRkZCRDg3NzE1MTI0ODk0OEUgMHgzNzZBNkNERURDRDZERDZBRjBDODM4NzA1MUExNzBBNTJFOUNGRUE4MjhENEU2QkNEMUQ5RjhERUI3RjU5MzRGKSkoKDB4MTIwQzY2MUZFREQzREQ0MTEwN0JBNjNCMjcxQkZEQUExRUU0Mzk4Qjg4Njk4NjFBMDMzMUE1RDlBQUJDN0ExMCAweDBBRDRCNUUwOUQ4NEU0NDhBNjExNUNGNTc3QkYxNzhBQkE1NDFGMDBDNzU3NDEyNTRBRTM1MTVENDI5QjgwNDMpKSgoMHgxMUQ4OTkzOUQ0OUREMzI0QjEzMDhDOTg5NTE5QTMxRTJENTBFOUNGRDE3NTYxQURBOEFEMzJBRUQ2REVBRjlEIDB4MjQ1MTJERTFEODI5QjJCRTU1NURDRTg5RDVCMUFEQzE5Qzg5OUUxQ0U4RDg1MUM5QjlDMjlEMjhFRDNDQzQ4NCkpKSkoel9jb21tKCgweDMyQjNDNUVBOTIxQjEwRjQ3Q0NGQkExODRFQTQ3RTk0MUQzMzkxMjFGNkFCMzkzOUU2MjM3NzUwNzE5Q0I1REEgMHgzM0EyQ0Q5MTJDRDk4MTU2Rjg4NDMwRTlBN0U3QUY1OThFRURGNDY4M0Y2RDM4M0I1QTM2REM0QzM4NDcyQzgxKSkpKHRfY29tbSgoMHgxMzU1NThDMjgxQUMyNTk1OUY0QTAwN0Y1QzIwOTVFODExNTQ2MjEyOEZBMDNEOEQ2RDNCMDJFQ0E5MkQ4NEM5IDB4MzM5QjE4MzMzQkYzNTU3NTE2RDFCNUQ2QzIwQ0M3QjI3OTM3MjEzMjk1MjJFMjJENTA1OUYwNEM2N0FFNTc4QikoMHgyNDNGQTE5NDlEODdCRDc1MUM2MTA4MTJCQTg1QkI2OURCQTVEQTNGODIwNDU0Qjk3NUJGMDVCNjE0RjU0Q0I5IDB4MTZGRDFCRjNBMzVBNTQ1OEQ0REFDQUE1RkRENUEzNkVGNEJEMzJBQjJCNkNEM0Q2M0QzRkNDOTgxM0Y1OTIxMSkoMHgzQkM2OTg2OEFFMEREQzEyMUQ4OTc5OTJDQ0I1OUQ3N0MwOTcxMEYxNDQxODhFNkE2QjQ1NkM0NkEzNkVFQjU3IDB4MzhGNkM2RUUzRkRGRDAyN0VFN0M0NkM3N0Q0QkM0QkQ5NjVGNzQ2NEJFQThDRjkwMDlDMEVEMTYwNjREOTVGNSkoMHgwMTIyMjkzRkQ3NTZDMjQwOUREMDdEQkMyQTM0NDc0NzFBRkU5NjQyRTZEODNFNjY2QjUyQ0E1Qzk4MEFBQjA3IDB4MkNGNEMyQkNGODNFNzIzOEUwNTM5NUJENThFNUQyODQ4N0YyQTZFQjQxNjc3RkZENEEwRUQzMjQwMUE2NDU2RikoMHgxODBBODlCMkI0RDVGQjAxNzlDQzU0NjQ3OUE0QzAyREFBRDhBRUMzMjcxNTYzMjg2MjRGMDZCRjkyNjA5NDg2IDB4MDNFQjkyNTQyNzY5Mjc3RDU4NjRENDMwNzFCRUFFMjQxRUI4MEQzODBCMzdGMjIzRkEwNzE3QjI1RDVCQ0ZBNCkoMHgzQjQ5OEQ5Q0JDNzE0Mjc5RTk3MDJGQzU1NzBFMTExMURBQzM0NjNCNzkwMTMyNEY3QUNGQzQ4NEMxNDI2MUI4IDB4MTdGQjhFMDgxRjFCQURBNzM2NTE0MUE5REVERDE2NDU4ODdFQTFGODA2M0M4OUEwRjAxNzg5MDhDN0FCNjUyRikoMHgzMjJGRUVDRTkzMDk1MTAyQzM1NkQxQkUxQkNCRjBCRjdDNDc2QUYzQUUwOUZEN0U2QjVFRjg2ODk1MEFFNUU2IDB4MTk2OEMzMUVENDhBOTdBNUFGOTRCRjlBMEFENkE0QkRCQ0JDM0YwOEU0QzY1QzQ1RkNENDVCQThENEE4OUE0OCkpKSkpKG9wZW5pbmdzKChwcm9vZigobHIoKCgweDE1MkQxMDk1ODFBMTdGODZFQzJEREYxNkUyQUM2NEMwRDg5RDA1NzJCMUU5MkZCM0Y4M0RENjExRUREMUQ4NDEgMHgzMEQ1QkRFMjREODFCN0ExRkFFMjJFQUIyMDk3MTIwRkU0NUE2N0FGRjAzMjAxOEY2MjFDRTMwNDI3QjcwOTU0KSgweDE4RUU2QjgyNjk2RTY5QjAxN0ZFOEJDRkEzQzdBMkY3RDk4QjZDQTE0MzFBMEZDRkIzRTBGNjIyRkRFQTNEM0QgMHgyN0E2MEM4OTlGOTI2MTREMDM0QTdFRjJBMDgxQ0U2QjA0RDIwNENCNTYwMUI3RDU4RDdBMzlCQTc0QTYwOEIyKSkoKDB4MjgzNjMyMjRDQUI5RENGQjYxNzYyN0UyMUFDMzMwQ0E2MEExQzBCNzhGQjcyMjgxMDBFQTY3NkQ1RTMwQ0MwMyAweDA3MDg1RDUxRjlEMzQwQTVFOEU0NjQyMEY0N0Y0RDE3NjU4NzJCNkE0QjVCQzY3QUZDMjc1OURBRkI0NDMzQzQpKDB4MDE1MjI3QTA1MDlBQkM4Q0ZBN0YwNkVEMkYyQkE2OEYxMDUyRjc4MDlGRThEOUQxQTdEMkI1MUU2MjgxMUJBRCAweDI5QTIwQTBCREIyMDBCOENBNDg1QjdDOENFNzE3OTg3QkEwRjk3QTU3OTJFQTg4ODlBRUM2REExNzk2MjhFOTQpKSgoMHgwMDk2QkIxODBDNDE2MEVBQTI5RTVFQ0I0NTk2NzhGREFFRjRCRkJEN0ZEMUFENUU3MDZGQzU5NzcxQTY0NzkyIDB4MDA0QjBGNzVFMkU4N0VDODA2RjU2OTEyOTk1RDZGMjlGMjhBOURBNTA3Mjk5QTA5QTk5NjlEOUQ4Nzk4MTdDRCkoMHgwMTU3NkU2QUMzNkJFMzNDMzlGOUE1RjM0OUQ5NUQ0QzY2NEUyRkY4MzI2REI3MTM5MTJGRkQyMTFENzg0QjE5IDB4M0FENEM2QURFQUQyMjRGNDMyRkMwMzk5QjQzQ0E1MEZGNzYwN0E5RDQwOTYyM0MzNUQ5MjA1NDlFQjFGQTExRikpKCgweDAxOTk5RDRFRjQ1QjY0RjFENkE1NDY0NkVCMjNCMjUyN0E4RTRDREFGMTQ1RTMzQkEzM0UyNzNFMzMwMTY3QTMgMHgxNThEMkY2QTUxNDAxN0NCNTQ5OTJBNzM3ODhDNjkwMzlBMUM1OThCQUY5QjVGMzFENkYwMjk3NzE2NkQwMkFGKSgweDM3MTc2MDY0ODdEMTAzNzZFQjkyOTg0QjI3RTNBMkY0MTZCMEE2MDk3QkVBOUNEOTc5NjczN0EwNDVFOThCOTIgMHgzNkRBOTg2NTQ3NUJDRUI4Mzk5QjA5OUYwOUI1RTVCNTgyRkY2M0I1MzcxNDAzQUQ3MTU1QUY5MURERUUzRTE1KSkoKDB4MjNBN0Q5QUIyNjNFQ0Y0NEFDMTVCRTdEM0Y2MUI4QjdFMzFDNDg2NUE0N0E4M0YxREU0RDRDMDE2RjZGNjUwOSAweDJFOTQzRTM1Qzg1OTFFMkNENTU0QUI0QTMzMzM3OEQ2Q0Q5RTYzOENEQzIyODBDQTg2RDJGNzE4RDdFRDMwQzMpKDB4M0I0NjY5RTY2NUMzRjZGOEEyOTlGNTM5NEZFNUU1ODk4NTlBNTE0ODFEOTQ2NzVCRDBCNjNBQjYzMkJCQTY4MiAweDFCRTYwMDRDOEYwRkEwQkQwOEQ4NTUyMEQwMzZCMUZENjk2RkU1QzU4RkM3RjczRUUxMTQ1OTdBNTc1Nzg0QTQpKSgoMHgwNEUyMjJEQTI1NzJERjM1MDkzNzgxMkQ3ODdFNzQ1NjM0RTA5RDBEMTZGNjRERjhDOTkxMTk4NzY3RENGNzkzIDB4MUI5QzI2MUJEMDBEODc4QkUyMTE2NkUwOUI1NjkwMjE4ODFCMDNDMUZFNUZGMkJEMjZERjVFRjY5ODhFNDQwNykoMHgyNDkzOUY5OUU4RjVFNDM4NjI4QjQwNDY3NDZDODU3ODYxQTdBMTY5RjFCM0Q2QjRDQzMzNDAzOUIxQzQwN0Y5IDB4MkNBMDBCMEZFMkJDRTM4REZFQzZFNkQxQ0YxNkFGNUI5OUNCNkZGQzQ2NDdBM0IzNjM4MzhBNUI4RTQ5NjFDMykpKCgweDM2ODI3OUJFNjEwRTc1NzM3NEQxQjg5RkI2RTMyQjE2NUEzREJDQ0YzNjgyMUU2N0RCNDkwQzcwM0E2ODI2MDMgMHgzRUExRUNBQTY3MDQwMUM4QjZFQTg0OENFRDJBOUY5RTQ4MjFFMkEyMzg3MUFDMzE3MzlFNDhEODIxNzY3QTA5KSgweDNGM0I2OEUyMTQ0RjM3NUZDQUM2RTc4NEM5QzkxOEY4RDM2RDQ4OEU3NjE4MURGNEYxRTVBRkIxQTEyMTMyOTkgMHgxMEZBRkJDNkIwMzcyQjg3NDM2NjFGRjgzNDIyNjhDQjQ2NjBEMzNBQjg0OTA3RTE0MUJDRjZGMkMwN0UwQzBDKSkoKDB4M0JEMDhDQ0Y3RjYwNUI1QUI4QTI5OTc5MDJCQkU5RUZBNTExQUYxOUUwNTA0MEVFNEE4RENCODM5NTYzRDVERSAweDM4OEFEMERFQjIxM0MzNUVBNzU3RDM5MEJBOEU4NjQxMkRFMTFGQkNGOEVGOENCMkFBREU3NjE3M0RGRDcwRjkpKDB4Mjg0MzNGRENFN0NDQTEzRTZFRkJCNEZGNjc0OUJDMzI5MDRCNDhCOTZBQ0I4QkFDODYwNUJEMENBQzFBQ0E1RiAweDI1MkM4Qzg5N0FERURENUYxOEZCNjgxQTBDQzUwMUI4NzhCRDNDMjRDOEQxOTRCNzdDRDcyMTkxQkVFRDM2QzQpKSgoMHgyQkY3ODlBMTc4MjU4MjQyMEM3QjUyMjcwNUIwMTExRjhFNEU4M0IyNDRDMzlCQkM2QzkyQzUzNUI0NzQyM0E3IDB4MjMwQTVBOTIxM0UwRDAyODZEOUQxM0Y5RjIyQzI3NzQ5MDZGQUZFRkQ0MzY1NjQ0MDVBOUI2QjAxNzhBQzM4RikoMHgyQTgzNUU4OTU2Q0Q2RDc4NDhGOTNDOTFBNTcwRDg3OTIyMjg5QUI2NjZCQjQzQ0YwNzAzNjBBRUQ5OUNGNzI1IDB4MzJCNDJFNkNFNkY1QzIxNzI0Q0EzMjc0Njc2RTIyQ0ZGQTFBREZBMERCQjQzN0E4RDE0NzMxRkQ3MzBGQjgwQSkpKCgweDEwRTQwODY1MUI4M0YzMDQ1RTZBQUFBRUVFREJBQUU2MjY0ODEyNTkzQkI4QkVCQzc3Qzc1MjcwN0Q0M0U4MkEgMHgxNkUxMDBEODkyRUQwMkJDMDk4ODQzMEI1Q0NFRjI1Rjc5QkQ3MTUzMEU3QkM4Q0I5MTA1REFCQzE4RTRBQkI2KSgweDAwMDEwMEEwREM0RUIxNzg3QUYxRTkxMzNCRjNGQjc4NkVDQTQwMUVFQkFERkVDRUFCNTUxRjJFMTRGQTI0MDQgMHgwMkUwRTBCMzA0MjRGNzlENTIxNEFGRTAwMzNFMThEMTE2MEI1NUM0QjA4QzBGNEY2MkQyMzI4MzE4NDhDMUJGKSkoKDB4MTVCODBBN0U2NkM1RkIwNTc1REUxMzY4RUY5MUVDNjI4ODEzRTY2QTMxRjA0OTI0RUJBRDAzRkExNzc5MTI4RCAweDA4NTk1Nzc3QTcxRkY3MTA0NUVBODVFOTgzRDVBOTA4NTY0Qjk1QjhFMjY4NENFOTQ1NTMyRDQ2QUU2M0RBNEMpKDB4MjgwMDVEODVGRDk3RTAzNDVFOTUyODI0NzY1OUQ3N0Y3NzQxRDJGODI1QUVDNzdCMjU5QjI1NkZCQzkzREM3RSAweDM0M0EzMkFEMkU3M0MwNjc5N0RGNjFGNjlGN0RGNEMzNDI1MzlGRDRGRDVFQzNCMjEzMjI5RkJDNDI4MDJFODIpKSgoMHgxMjQ4MUJEN0ExRkM0NjE3QzE0OTI1NkNCRTlGRTY1NEY5RDEwQzM4NzA5NzgyMTJCQTQ2NDA0MkU5ODU2QzcxIDB4MDQ1QzZENjk3MTM3MjNGOENFRTgyODJEN0EyMDY1OTdERjVCNkJEOUJCNDE5MUM3NjlDMkZDRERGNkFEQjY1OSkoMHgxMjVCMDc4M0YzNUZBRTRCQ0QzMjdGNEMxNUNDNTcyQjdFRTE5NzcwNkE5QzE0RDU5MUI5RjlCMEM1ODQxQzE3IDB4MTAxMURCRTRGNEZFMUZCNzRENTcwM0ZCMEI4NUMxNDIzQ0ZFODdDN0Q2MEM3OUU4NDkxNDUzNUZDMEYzMTBDQikpKCgweDBGNkExMDk1NjBDM0ZCNUY1RkY2RTY2NEFFMTUxNjc3QzUxMzlDQjFFOUZCMEMxOUNFNDk5MTlEMjYxNjM2QzEgMHgwNDJBMzI3RUE2QzM2OTE0MEY1OEYwRDJDNzU1Rjc0NUU0NUNERDMxNEE3QzM3MjcwQTIxNTJFMzc2MThCNkI0KSgweDIwM0JDRjQxOTc4MThCNzEwRkVCNDFEMjM5Q0MzMkUzRDlCRjRGODg0OEJGOTQ4M0EwMjg2NEQ2Q0Y0RUI0QUMgMHgyQjhFNjNFNUUwN0Q3QkMzQzI3MEQzQkY3NDA0MjU1N0FGQ0NDMTk5OTk0NDJGQjQyRDcxNEMzOUFBQzNBOTM3KSkoKDB4Mzc0MjAwOUI1MkExNUZBQTNFMTI2OUZDNDhBMjFDNEMwOTNGNTQyQkQ4MUI1QkI5M0Y0MDEzOTk5QzkyOUE4NSAweDM4RUFFRDFEQTgxOTk1QkQ2OTczQjFGREI0M0U4RjRCM0U2MjgwRDFGQzlERTRDOEI3MUY4RUY1MEI5QzNGQ0YpKDB4MjY1RkFEOTNDREZDMzQ0RkMyMkIxMDg0MDg4MUI2QzY5QjkwM0Q0RDc1RDg0QjEzRTMwMkFGQjU1RUE1Q0JDRCAweDBFM0ExMTU0RkFGMDRFRTIyNTkyNDkyMDVCMUVBQkYxNDkwODEwRjM4NjY2QzEzNjY5RTBERjFFNzQ1QUU2NjUpKSgoMHgzQzVBNzAwNzFDRDczQzYzNThCQ0RCNDAwNDgyMDI4OUJBQUUxQTY0QUY0RDlBRkRGOTA1MUVBREMzRjE4RTA0IDB4MzVFQjMyNzY2N0M0NTU5OUU1QUIwNTY0NUU5RkY5ODRGMkMwQUFDNkNDOUM3Q0ZFMTZBNDRCQkVCRjlFRUMzNSkoMHgzMUJBRTZENzYyN0IyQUFFMkQ4Mzk1OEQxNTcwMjAyMURFRUM2OTM1OTIzQjQ3NUY4MDM1NzM3MTUyNUVENzZCIDB4M0ZBMjVFMjE4NEQ2RjI2QzgzNkRCOTBGRTdERUIyN0MxMUYyOTg5ODA0M0Y4Q0IwQzE0QUExMENDMTRGRDBFNSkpKSkoel8xIDB4MDZCMjY1RkNBRkNEMkVGRDhDNTVBNkFBQzA2OTZGNjYwMjM0NzA2RDIxRjM1Q0Y1NkJFOTlGQjgzMkY0RTA3OCkoel8yIDB4MDU4MEM3RkJGNEE2QjgyMDhDMEI2QTI2MzA4OTMxMEQzRTJDMjE3Rjc1MDczMkFDRjJFQ0E0OTMwMkMxREE1MSkoZGVsdGEoMHgyRjIwRjczRTk4MjA0NzlDQUJBRjc1OUM5NDMxNUExQUQxOUI5RTg3QjZDNEI4NjAyMUY4NzQ1RTgzQTBGNTAyIDB4MzIxRUQxRjU5NDcwMEVDODk5MkIzQzlGQjM3OUM2QUYyNTUxRjA4RDk5MUYyRTEzQTc2ODAxQzNERkE5MDVCRSkpKHNnKDB4MEUxNzZFQzFFQkVDM0NCNENGRjlENDlBQzBFRjc4ODI0OUM0RkJGQzk3OUEwQUY5MDYzMEJENEQ1Qzk2RDgwRiAweDE3RkNFMEZEOTk5RDhDMjQ3NkUxNTY4N0JBMDkxOUYwMTY3RDUyRUQ3OUI0RjFGRDBBMzFEMkM4REVDRjMwQTYpKSkpKGV2YWxzKCgodygoMHgzRUI0RTc2QTQ4NEEyNzQ3ODEyNUQ0OTUyQzg3NEY3MTAxMDM5OEQyMjY0RUUyOURCNTgwOEI1QTAxMDM4RDlEKSgweDE0QUVDQjY1OURFMzBBOTgyOEJGNUY2QzdGN0Q4ODlBMkVBRDM5NzdDNDY3MzlBRUQ4OTFBMkZGNEI2NkYzNDQpKDB4MDQ5RTI4QUJGMTFBOTY1NEE2MTQ2Q0RENDA5N0RBNkNCQUY5QUEwMENBQTNGMjgwRjc3RDBFNTBFNEQzQTc0QikoMHgwNzFFMTE1NTBGQTg5MjFDN0Y0OUZDRUQzN0VEQjIxNDE0Njc4Rjg1MTc2MDdCRDNDOTVFNDYzNzZEQTFFOTdEKSgweDIyREQ1QzY4NzUzN0JDNUM0OTYxOTAwNEI0RjNCRkE0MUQwRTIyRTBENUZFNEI2QkVENDg0MzNFNTUzQzI1NDgpKDB4MzBBNTcxRUU5Qzc0NzBEMEQyQjAxOUIxNDQyNkM4MzAyNTAxNkIzM0ZENkE0RjRCQTkzQzVBODBBQ0FFN0Q2NCkoMHgwRTg2RDU1NkZENTUxMENEMjYzNDIxQ0VDNzYwRTQ4NDlCNkJCRUQ0NDUzREZCMTAxOUNCQkE3NDcyQTJDNTQ2KSgweDAwMjE3OUI2QTY4MkFDQUUzMUZBNEMyMUMzQjNBRTBCMDNFOUQ4RkUxRjAxMThCMkVGRjlCMTk0OTAyNTc2MjcpKDB4M0VFM0Y2NzkwMTJFQUFDMEQxOTVEQzcwMjk4QTcxNzUzQjM0QkM2QjQ1NDBCQUU4OUNGMkY1OTVGMzBGNTJFNCkoMHgxNjI0QUVBQzY2NTUxQzI2Nzg1MDFGMkQzNjIyQTkwMjFBRDhGNjJDMkRGMDIxN0MxRDk2QUZCQ0Y2OTg0MjZCKSgweDMxOTg1MzEyNERGRTQxN0VFNzg1ODZDQUIzMDU4NUYzMTFGRjdEMUU5MDJERjYwNkM1QTY2RjAzMEM1RjkyNUQpKDB4M0U4NTU4MDIzMjU2MzA4MTkwRjcyNzdGMDMyQ0YzMDUzNjhCQzBGRUJCOUIxOTRGODQ5MjRCNjlEOUQzOTEwQikoMHgwQzVCNDJFNTJGNDQyOEU3NzQ1OUQ5QjlCRjEwRDhEMjU2QUQzODNDRDcxOTlBODdBRDhGMUVEOEQzM0I2NDk5KSgweDAxMzBGQTk3MzFEMDBBRjI5NTNERTE3NEQ3MDQyMkRGQkQ5RkUwRUNGRDZBQTZDMzA0QUVCNDgxMzYwRkRDMEYpKDB4M0JFQjJCRURCNTJGRTk3MzUwODcyQTQzRTFDNTQ1NzI1NEYyMjYwOUE5MjI4MzgyRTBDMzI5MDEyMTQ2QTQ3QykpKSh6KDB4Mzg1RjA0RURFMTc1QUZGNEQ1NTk0MUM3Q0Y0QkI5MTY5NzNGQTIyMDVFOTRDMUNEMjc4MTVCRURFRjBENTY5RSkpKHMoKDB4MUIyODExMkJGRUQ0MEY5MjM4MDUzNzI3OUYwQjgzNDVDRDJDMDk1QkQ3RUU0RTU1ODMzODJFNzNGRkY4Q0IyNykoMHgxOEE2ODEwNDExNjE4QzExQkEwNUE5ODI5RTRCQkU3MjM3RkQxNjMxQUI3RjAyNzQwMDdERjg2NEFERThFQjExKSgweDMyOTIxOTJBQTYyRUYxQ0QwRkM4MjZEMjZBRTYxNUM5NDdEMDlDMDM5QUM5M0FGRDUyNDE3OERCRTk3OEU1QjgpKDB4MUNCOTAxRDJERDZEQUUzOEMxNDMzNzcxQzc5MEQ4RTZEMEU4RTUwQzU3MUUyNkU2Qzc3M0E0NTRDRkU1NjI0NykoMHgxQjc2NEI1MjdBOTZGNkJDQjJCREIyNDlEQzZCMzNFQzEwMzdBMjcwRkU5MThEMzE4Qjc2QTU0MzQ0MjVCRkNBKSgweDIwQTJBNkFGOEMxQkU2MjdBQ0QyOTIwMjE0MzczNzE2QjZEMDlDRDNFMjNCNzM5Njg4MzFGMjM5NzJDMjA2NEMpKSkoZ2VuZXJpY19zZWxlY3RvcigweDNBRkZBQTdGMjcxOTRCQzc0Mzk1MEY3QjdGQUI2QTkxODUxQzVBNkQxN0E4RUQ3RDg4MDEwQ0YwQkREMUFEQ0YpKShwb3NlaWRvbl9zZWxlY3RvcigweDE3OTA2OTI1NjIzRTNGNzYwNDUxRjk5OTJFODY1ODI2MDJGNzY5QUE0QUE3RjIyQUIxNEU2REZFRDJDRTE3M0UpKSkoKHcoKDB4MURBNjc2OUUwRkJFRjlCRkJGMENDRjM3NzhCQjQ2NjYzMzI4REQ5RDFGM0Q4OUIwNkVDODk3MTJGM0FBODAyQSkoMHgzQjNDOTUxNDA5NDNEMjdBN0MwMDlBOUZDRDA5M0MyQzk4RUYxQTIyMUFBODMxMjk2NTMxMzBDNEI1NEJCMjI4KSgweDIwREZBRTZBMEExN0EwMzQ0MEFDNzM0MEE5RERDNUQwQjM4Njc1RDVBNDExNzZGNjIzNDJBM0UzREYyRDI3NkQpKDB4MTM2RDc4NjRFRDJEMTRDRkYwREUxMzIzQzVFMDExN0MyODIzMDM0RTRDRThFRThEMDc1REEwODczQkEzQTEyRCkoMHgwMTAxRkM5M0JCQTAzODgxM0IwNTdDMDU4NjgxMDYzRDJEMjRFMDkxRDJCQ0M3Nzc2NDc4RjJERjhCRTA0MkVBKSgweDI0MzA2RkRGRjA2MEY4RTFDRUNGNzU0QjBCMkIyRTY0REMyOTYwRUU4Q0E3QjVEMDZBNTM0NkY4M0RGRTRERTApKDB4MjM1Q0UzN0EzMjFCMjlCREQxQzU5REU5MzNFRkFEQzI1QUI5NTE4NEQ2MEI3N0IxNkQ1MzJBMDQxN0VGNzVGOSkoMHgxNjBCRTBFNjU1Q0M1MDNGOTgzMzVFMDk4Qzk2NEE2QjI2MDM0QzI3RkY4QUYwQTUyNkM2MUY3OEExNzVFNEY4KSgweDA4OTE2MkI2QjA2ODVGQzkyRkNBNDM1RkQ4MTY1NEQ4MDIyNzdBMjNBMjE5M0MyMTRGRjQ4OUM3MjkwMTQ0NUEpKDB4M0RDMDc3QTNGQTFBREEyMzUyRjg5MDU5M0NBQzFGODAyOEE2RTNBMTlDMTlFRDI2RkVCQTBBNzI4MzIxNUVGQSkoMHgzRkM4QUE5MjAwRUU1REY0MUFEMTJDODZGQTIzRjlGNTlCNzhBM0REMkY4NTU5RjFCMzlBRERCM0I0NDY2MDhBKSgweDJERUI3QTU0N0M1MjY3REQ4RkQ1OThCMTMxNDY5MUFBQjFGODhGQjZFNjQ4RDZGQkY2RDk5NTk4QTNENEREODMpKDB4MTZFMjc1RThFQUIyOTZBOTA2MTY3RDhGQjY2Q0ZBMEI1MTQyQUJGMDg5RjhDNDE0NzdGQ0JDRUI0QkVCRkU5OSkoMHgzOENGNzE5MzA2RTI0QUQyNjg2Njk3RkE3MDEyMTU3M0Q3RjE5QkYyNTBFNzk4MEQ3OThERENGRDQzOUM0NUY5KSgweDBGMUE2NkNBNkU3QTZFMUQ5Mzk1OTQwNjhENTNDRDJGNjk3Q0UyRkNGNTRFQ0RGNzA1Q0I0QzFGQUQ0QTUzN0QpKSkoeigweDFGMEY2OTQzNTFBOTJBODhFREM4MDU0NDEwNDQxOTRDMzMwMzVEQjk3QjAyM0JDM0RENUI5RTdBOUZBOThCMzApKShzKCgweDAyOEVCNzA4Nzk3OENFN0NBOTU1MzUzMTM0M0FBRjA5M0NGQ0I3QTJCMkM2RTlCNzI1OENCMjVDMTRFMDYxRkQpKDB4MkIwOUE1NTVBREYwREE3OEJFMjdCMzU5MkUzMjE2Qjc1NEQyMjQ2Qzc4RDYzNjBCMzJCRTI3RUIzQ0Y0OTYxMikoMHgyMjkxRjNFRkY3N0UyNjdFNEQwMjE2Qjk0QzJCRjdDNzU1QTFDQTAzQjM4QkM2NkE3NkU2RUFBQjRGRkIxMjE0KSgweDBCRDJGQjc5MUNFNkRCMEZDQTNFRUUyNTQwNDM0OTU4N0NFRkY3Q0JBOERBRUI4MDQyRDA0RTk5N0YxN0FGOTkpKDB4M0VFREI5Mzk4Qjc0MzFDRDY4MjI2REIyQjRDMTMwMzA1OTUwN0M3QUY0NDAzNTY0MENBRDg5RjRDRjUwQzVEQikoMHgwRURCODA4RUU3QTY1QzZBRUE1RDIzRkY1Mzk0QUIxQjcyRDI0N0I2MEMzRTZDNTQxRTRGRDg5QUU2MEU2NjBEKSkpKGdlbmVyaWNfc2VsZWN0b3IoMHgyQkJFNjdGOUJBQ0ZGMjMzQUFEOURCMkFBODZENkEwMTRGQjU1RDNCNzlDREIyNUExQ0ZGN0JFNDQxQTlGRURBKSkocG9zZWlkb25fc2VsZWN0b3IoMHgyREZFNDQ5Njk4MDgyQkVEMDdDNUExQkM0MkUxRUE1QUQwODgyMDJFQzUyRjAwOURGMUQyMkFGMUI0QTkxRThCKSkpKSkoZnRfZXZhbDEgMHgzOERFMEJDMzMyOTkzQUZERUU4NTM0OEFFNTExRjYxNUE1MUJCNjFFNDQ0ODY3REQ1QjgzNzlFNDFCQzdDRjBEKSkpKSkp"]}],"memo":"E4YM2vTHhWEg66xpj52JErHUBU4pZ1yageL4TVDDpTTSsv8mK6YaH"}

Snapp transaction graphQL input 
mutation MyMutation {
  __typename
  sendSnapp(input: {
    feePayer:{data:{body:{publicKey:"B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS",
        update:{appState:[null,
            null,
            null,
            null,
            null,
            null,
            null,
            null],
          delegate:null,
          verificationKey:null,
          permissions:null,
          snappUri:null,
          tokenSymbol:null,
          timing:null,
          votingFor:null},
        fee:"5000000000",
        events:[],
        sequenceEvents:[],
        callData:"0x0000000000000000000000000000000000000000000000000000000000000000",
        callDepth:0,
        protocolState:{snarkedLedgerHash:null,
          snarkedNextAvailableToken:null,
          timestamp:null,
          blockchainLength:null,
          minWindowDensity:null,
          lastVrfOutput:null,
          totalCurrency:null,
          globalSlotSinceHardFork:null,
          globalSlotSinceGenesis:null,
          stakingEpochData:{ledger:{hash:null,
              totalCurrency:null},
            seed:null,
            startCheckpoint:null,
            lockCheckpoint:null,
            epochLength:null},
          nextEpochData:{ledger:{hash:null,
              totalCurrency:null},
            seed:null,
            startCheckpoint:null,
            lockCheckpoint:null,
            epochLength:null}}},
      predicate:"2"},
    authorization:"7mXBJv7anTrMEqWN5wRH2FRNUjtYvaiZiFaRiCnBMes7ib4U81nxdtea8nUrDt1WJb5kw3FNSuFTyN79jGa654VrSuMRU6uV"},
    otherParties:[{data:{body:{publicKey:"B62qpbnWwNdhjdmTCfLJMbJXnYDDqxdRNv2Hm7Be9pnLudF5vn7QTs1",
        update:{appState:["0x0000000000000000000000000000000000000000000000000000000000000001",
            "0x0000000000000000000000000000000000000000000000000000000000000002",
            "0x0000000000000000000000000000000000000000000000000000000000000003",
            "0x0000000000000000000000000000000000000000000000000000000000000004",
            "0x0000000000000000000000000000000000000000000000000000000000000005",
            "0x0000000000000000000000000000000000000000000000000000000000000006",
            "0x0000000000000000000000000000000000000000000000000000000000000007",
            "0x0000000000000000000000000000000000000000000000000000000000000008"],
          delegate:null,
          verificationKey:null,
          permissions:null,
          snappUri:null,
          tokenSymbol:null,
          timing:null,
          votingFor:null},
        tokenId:"1",
        balanceChange:{magnitude:"0",
          sign:PLUS},
        incrementNonce:false,
        events:[],
        sequenceEvents:[],
        callData:"0x0000000000000000000000000000000000000000000000000000000000000000",
        callDepth:0,
        protocolState:{snarkedLedgerHash:null,
          snarkedNextAvailableToken:null,
          timestamp:null,
          blockchainLength:null,
          minWindowDensity:null,
          lastVrfOutput:null,
          totalCurrency:null,
          globalSlotSinceHardFork:null,
          globalSlotSinceGenesis:null,
          stakingEpochData:{ledger:{hash:null,
              totalCurrency:null},
            seed:null,
            startCheckpoint:null,
            lockCheckpoint:null,
            epochLength:null},
          nextEpochData:{ledger:{hash:null,
              totalCurrency:null},
            seed:null,
            startCheckpoint:null,
            lockCheckpoint:null,
            epochLength:null}},
        useFullCommitment:true},
      predicate:{account:null,
        nonce:null}},
    authorization:{proof:"KChzdGF0ZW1lbnQoKHByb29mX3N0YXRlKChkZWZlcnJlZF92YWx1ZXMoKHBsb25rKChhbHBoYSgoaW5uZXIoZTBlYzdkYmFjMTQ4YmZjMSBiYWIzZWU0NDk0YzAzNjE2KSkpKShiZXRhKDc5YzMzYTI5ZDc5YzdjODggY2IxMjlmMmRhOTM4YzE1MSkpKGdhbW1hKDBjZjhlNDI1Y2M5NTE3NzUgOWNiZDFiZTExNGNhN2U2NikpKHpldGEoKGlubmVyKDMwNTQwNjhmMDQwM2RiZDUgYmQyMTk2MjFkNjk3YTQ2ZikpKSkpKShjb21iaW5lZF9pbm5lcl9wcm9kdWN0KFNoaWZ0ZWRfdmFsdWUgMHgzMUY3NEZGNDkwODhEN0M1MTE4OThFNjQ4NTIxNDBGQzNFODUyMzE5QTlGNDE5RTQ2NEYxODFCMzZFQTFEOTBFKSkoYihTaGlmdGVkX3ZhbHVlIDB4MjZDNkY0RTAxQTI5MjA4NDNENkQ0RTU5QTFFMDIwREVCMEI3QTU3NEVDOEI2QzZEOTJDNkE0QjQyRTJCMkE3QykpKHhpKChpbm5lcig4MjQ4NWYwNWVmMzM3OTJiIDIyMzU0MjdmYzVkOGRlMjkpKSkpKGJ1bGxldHByb29mX2NoYWxsZW5nZXMoKChwcmVjaGFsbGVuZ2UoKGlubmVyKDEzYTMzOTAzZGRhNjlkOTcgODRlZjA0NDUwNjgxZGY2ZSkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDZlNzUxYzBmZmU3MWYwYTEgMzc3YzRjOTYwN2E4YWE2NykpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDBkOGIxNjM1ZWY2NzI1MmEgODFmZGQwZmQ0N2QzNWU4OSkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGRhMmY3MTJhMzFiNjNhOTQgYjg2YWE0ZmM4NzI0NTZkZCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGNjZTQzMzczZTRkNzI4MzQgZWU3OTVjNzAxZmI2OTBjYykpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGU1NmZhZTVjYzY3MGI2YzkgOTQwMDE3Zjc5MjMzMGZmZCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGUzYzFmOTkyMGI0MjExMDUgOGJmMzhjMzQxOWRjMDhkZCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGJlMmUwOTgwYmI2ZTEyNjcgOGJjNGZhMGE3YmQwZTkxYikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDU5YzJmZjZmNDE1ZjU5NzAgYmRkNDFmZWM0MDUzMGQ3NykpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDY0ZjRiMmJkNWRkMjNkOWIgOGFjMDk0NWJiMmZkYzQ4NSkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGQ0YmE4MGVmNzI4NGZjYjAgNTFjOTRlNjA0NWUzZjhiZikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDJkMGExZjFkZjFiNjVjODAgMjViMmM5ZDYzNDFjZjc2OCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDAwZWI5NzFmMzIyMThjYmQgOTY0ZWFjZTdlMDk4NDNmYSkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDVlZGE3ZjUyZmQzMGIyNWUgNDNkMzQ3MmYxOTM0ZjVlYikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDlmOTU3OGI1NzljNDQzMjAgYjRkZWY5YWI2MDlkY2NhMikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDg4OTZmMzdkNTMzYzQ5ZTggNzBkYTdkNDhkMDZlMDYzMSkpKSkpKSkod2hpY2hfYnJhbmNoIlwwMDAiKSkpKHNwb25nZV9kaWdlc3RfYmVmb3JlX2V2YWx1YXRpb25zKGFlM2Q0NGJiN2MyYTFmY2YgNmFmYzFlNzVhN2ZlZDg1ZCBmZDdhYThmZjI2MTM1NDhmIDI0ZGE2NmFiMGVjNjU5Y2YpKShtZV9vbmx5KChzZygweDMxMTMyNDlDRTFEOTM4MjAzQjRBQUQwMTA5RjE4QUJEMEU2MzI2MjQwMERBMzlGNDg4QkYzRUVDMjFFQkY4REYgMHgwRkNGMkY0N0Q1QTREQjM3MjczODBCQzJFQ0NBNzlCMzk0Qjk1MjNFRjUyMDMyODkyMDFGQkRERkE0MjhDODI5KSkob2xkX2J1bGxldHByb29mX2NoYWxsZW5nZXMoKCgocHJlY2hhbGxlbmdlKChpbm5lcigzMzgyYjNjOWFjZTZiZjZmIDc5OTc0MzU4Zjk3NjE4NjMpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihkZDNhMmIwNmU5ODg4Nzk3IGRkN2FlNjQwMjk0NGExYzcpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihjNmU4ZTUzMGY0OWM5ZmNiIDA3ZGRiYjY1Y2RhMDljZGQpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig1MzJjNTlhMjg3NjkxYTEzIGE5MjFiY2IwMmE2NTZmN2IpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcihlMjljNzdiMThmMTAwNzhiIGY4NWM1ZjAwZGY2YjBjZWUpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcigxZGJkYTcyZDA3YjA5Yzg3IDRkMWI5N2UyZTk1ZjI2YTApKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig5Yzc1NzQ3YzU2ODA1ZjExIGExZmU2MzY5ZmFjZWYxZTgpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig1YzJiOGFkZmRiZTk2MDRkIDVhOGM3MThjZjIxMGY3OWIpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcigyMmMwYjM1YzUxZTA2YjQ4IGE2ODg4YjczNDBhOTZkZWQpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig5MDA3ZDdiNTVlNzY2NDZlIGMxYzY4YjM5ZGI0ZThlMTIpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig0NDQ1ZTM1ZTM3M2YyYmM5IDlkNDBjNzE1ZmM4Y2NkZTUpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig0Mjk4ODI4NDRiYmNhYTRlIDk3YTkyN2Q3ZDBhZmI3YmMpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig5OWNhM2Q1YmZmZmQ2ZTc3IGVmZTY2YTU1MTU1YzQyOTQpKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcig0YjdkYjI3MTIxOTc5OTU0IDk1MWZhMmUwNjE5M2M4NDApKSkpKSgocHJlY2hhbGxlbmdlKChpbm5lcigyY2QxY2NiZWIyMDc0N2IzIDViZDFkZTNjZjI2NDAyMWQpKSkpKSkoKChwcmVjaGFsbGVuZ2UoKGlubmVyKDMzODJiM2M5YWNlNmJmNmYgNzk5NzQzNThmOTc2MTg2MykpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGRkM2EyYjA2ZTk4ODg3OTcgZGQ3YWU2NDAyOTQ0YTFjNykpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGM2ZThlNTMwZjQ5YzlmY2IgMDdkZGJiNjVjZGEwOWNkZCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDUzMmM1OWEyODc2OTFhMTMgYTkyMWJjYjAyYTY1NmY3YikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKGUyOWM3N2IxOGYxMDA3OGIgZjg1YzVmMDBkZjZiMGNlZSkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDFkYmRhNzJkMDdiMDljODcgNGQxYjk3ZTJlOTVmMjZhMCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDljNzU3NDdjNTY4MDVmMTEgYTFmZTYzNjlmYWNlZjFlOCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDVjMmI4YWRmZGJlOTYwNGQgNWE4YzcxOGNmMjEwZjc5YikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDIyYzBiMzVjNTFlMDZiNDggYTY4ODhiNzM0MGE5NmRlZCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDkwMDdkN2I1NWU3NjY0NmUgYzFjNjhiMzlkYjRlOGUxMikpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDQ0NDVlMzVlMzczZjJiYzkgOWQ0MGM3MTVmYzhjY2RlNSkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDQyOTg4Mjg0NGJiY2FhNGUgOTdhOTI3ZDdkMGFmYjdiYykpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDk5Y2EzZDViZmZmZDZlNzcgZWZlNjZhNTUxNTVjNDI5NCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDRiN2RiMjcxMjE5Nzk5NTQgOTUxZmEyZTA2MTkzYzg0MCkpKSkpKChwcmVjaGFsbGVuZ2UoKGlubmVyKDJjZDFjY2JlYjIwNzQ3YjMgNWJkMWRlM2NmMjY0MDIxZCkpKSkpKSkpKSkpKShwYXNzX3Rocm91Z2goKGFwcF9zdGF0ZSgpKShzZygpKShvbGRfYnVsbGV0cHJvb2ZfY2hhbGxlbmdlcygpKSkpKSkocHJldl9ldmFscygoZXZhbHMoKChwdWJsaWNfaW5wdXQgMHgzQjEyRjhDQTQ4QjcwMkEyQzE4RUY2NUNCRUFDRDMyMUYzRUU0OEM0NTM0Rjc2MkRDMDA3NjgwM0UzQTZBMDg3KShldmFscygodygoMHgxNUVEM0FGRDFDRDlFQkIxOUYwQUVDQjMwNjgzRkNDNEY4QjQ3Q0RGRkNFMTk4NUFFODE5QkI5RTFGOUJDQjk1KSgweDE2RERCMTk5NzYwQjkyNjhDOTJGQjFBNjY1REFENTQyMkM2RThBRjZBRUQ3N0I4RTg3MDQ5NURBQkVFMkFGOTQpKDB4M0Y4RTkwQUFFMzU4NkJBMEUzNUNERURCRUNFRUQ3QTgyQjdFNTY5NkE4RDk1Rjk4MkU1Nzg5ODIzMTlEQjlFMSkoMHgxQzg5MzY5RjBFMDAxOTA1RDQ4M0I3MkEyMUMyNUJBNzlCREUxRTI5QkZGQURGQkI5RTNCN0Q5RjU0NjkyMzVGKSgweDFBMkIyNEY4QTdBRUFFM0ZGRjBDNkIxRTM1MTdEMkQyODlFNEI1NzdEQzk1NkY3MjMxOTA2NjA3NzcyMjgyOUYpKDB4MEMwMjIzQjU0QjQwRkI5OEUwQjE4MDdFNDUwMzQ4NUI2Q0NEQjZGQzQ3RjY5RDUzQzg2QzEzRjEzRUVGOEFCOSkoMHgxMTRGRTc5MDVBQkI2NzkzMDYzMTdEQjA0OTk1MjM4OEM3NjgyOUQxNkU2N0RBNUUwRUZGQkRBMUEyRTQ3RDMxKSgweDBCOUY3N0Q3NEQyMzZDQzcwNzAxMzUwOTgzRkM5MTc0MERFRkIwQzFGRDk5N0MzOThBMzlCQzc1QzhGNTE5QzEpKDB4MjQ2NzlFMTUzQkUzMjAwNjBFMDIxRkZFOUY0MzUxMjZDRTRBQjUyNEY3MkMyMDlBMDI0RkVCRTc0NDVDMUYxNCkoMHgwQTBDQUUxOThFMEE5QzQyODFCMEFGRDBFMTNENzIwMkRDNDA5MERCMkY1N0I4QzkzRUVFMTQxRjhDNkNFRjQ3KSgweDA0OUFEMjQ2RUEzOUZBNTU0M0VFQzYyNEYzM0E3NjlBQ0Q4NkIxNjBBQ0U5MDJFQjdFOTNFRDcyNEFDODc4OUQpKDB4MjUxNjdCMjFBRDdFMDgzMUUwODA3RDUzRUQ0RjlCMDIzQjgyMzYzMzk1NzFCRDMwOTY1RjEzQkE3OUE5NzNCRCkoMHgyREEzOEI1MEZGOUU5NDU2RjRCNkZENzlCNjRCQjRGNDlGODk0Njg4QjFEQzJEMTRERTQ5NTA5ODI3MjhCRTI3KSgweDBGNkIyM0Y5OTNBQjRBMTc4MUJCMUU2ODdCNzk0NjAzRjYyRjZCQUI2MUJENzU4RkRGMzJGQ0IyOTgyNDA5NTEpKDB4MkJERjg5MkQwOEZBRTdGMjk3QjRFRkNGNTc5RTQyMDhDM0U0MTMwNTIwOEVFMjg0QjgzM0FDOTk0RUIxMTcxOSkpKSh6KDB4Mjk0QkIzRDA3QzM3REQ0RERGODAxMzFFMUNEMDU3ODJFNDAxMjgxNTUzNzU4N0IxRkY0OENCRkI3ODQ4NzNBQSkpKHMoKDB4MzAwMUNFQTcwM0MwQkI5NEJENzBCMURGMDYyNjA1OUE5QjU1MzNFNjkyOTAwOERCRTA0MTRBNkFGMjE4NjkyNCkoMHgwODhFNzg4RjI3Qzg3M0IxMzcwMDI4RjE3Njk3NThBREFGNDIwQkVGRDJCOUZBNDg5QURCMzZGMDA5RDRDM0VEKSgweDMxNkZGQzNCREQxNDZDREY0MEQ5MDQzMDk4Njc1NzNFMUJGNzU2MEEyRUNEN0E1NTcxNTNCNjhFNjVBMkM0NDUpKDB4MDE4MjM1NUNENTYwN0ZFRTJEQUQ4MTZDNEE0RjkwNURDNDlGNDE5RkRGM0I3Q0E3MTk5REZCRjcyMTI1NzY3NSkoMHgzRTVDN0M3NDlBRUE1RjE4MzM5Qzc2MjFFQTJGQkZGQzBGQUMwNUE5QjVDMDA1MTg5QjlCRTY0MkNEQTY4REEyKSgweDI0MkIxNUVENUQxNDg5NUJBQkY0RjAzQjUwRkFFODg5RUFERTcxM0E0NkIxRDdCODc2NzZCRTI2OEU1MjM5MDApKSkoZ2VuZXJpY19zZWxlY3RvcigweDE3MTU0NDNDQ0Q1NjBFQzM1NDVEQzlDODMwOTQxQzRCQjUzOTQyNkU5MEQwOTgzMzRENEQxMEE0OUY0MkU5QjIpKShwb3NlaWRvbl9zZWxlY3RvcigweDBDRTY4QjM5M0YwNTI2RkQzRkQ2NDQ4RTE1MDM3RTRDMzQ5OTdEQzU0Nzg4NzBCODAwMTE1NjQ4NjQ2MzYzNDYpKSkpKSgocHVibGljX2lucHV0IDB4MkMxREZDNjY5M0VFMzE3MTNCRDVCNjQwQkFDRkZCREE0NDBDRDdFNEM4QzU1NzFCM0ZBOERDQjcwRTE1QUUxNCkoZXZhbHMoKHcoKDB4MkQ4ODA1NDRFOUZFN0M4QjdBNUI4MDdBQTBERjcwRjA1OEJCMzhBRTQzQUVGREJBMzIyQ0ZGQzBGOTc1RDJCRCkoMHgzOUI0QjEyNEY2ODExNEY4MUY0QkEyREI2ODI2MDkzMDIyMjRCMkIyQjEwNTFGREU4RjQxRTY2QjFBM0M4RkY0KSgweDE2M0NENzJBQzE3MEYwNjQzNkQxOEYyRjkzNkVFMTc3RTYyQTc1OEZFNTZFODUzREQ0RjM3QzFCNThGNEZBMTcpKDB4MkFFMzA1RUU3QzY2RDc4NjZDNUQ2MzBDNzc2REQ5OEFFQTAwNTg2NUYxREFCNDEzNjhFQTk1MzM2QjA0MjMwRCkoMHgwMjhGQkYxOEI1RTgzRENBNjUyMUYxQTk0Nzg1NDVBMEM1RUI5MzQwRDlDOTlCQjY3NDYzRjkwNUI3RTE3QTA1KSgweDMxQkNFQ0FERDdGMzY4OTQ3NUQ0NjRDNTI2QTg1NkM1NTgwQTIxMDRBRjk1OTNEQ0MxMDFDQkM1QTdGODMzREEpKDB4MUFEQTdFQjc3MUZBN0YxQThDNUVFNTYzNzMyNzEwNkY2NTEzQzNGMzg0MjZGNTEzNzRCQTUyMzBDNjMxQ0QxRikoMHgyRDkxRUEyMzYxM0Y0MEE5NEE5RUU5RDIwQUE3MTYwQzgzQzQxNTIxMEQ5MUFFRjE4MEZDNDk5NkNFMDc1MTBEKSgweDE2NzNGQjA1RUNFOTJEOTY0Q0VCQTM5MzVBMjdCMjI2MkRDNzYzNkQyRjIwRDdBRjIwNzJDRTRCOTk3QTAwOTYpKDB4MjY1MkVBQjA3QkI0OEUxMTY1NDY4QkJFODFGQkM5QTNDM0RBOTdCQzRCMEM3ODQ0QzIwNjJFNzNBMzc1OEM1MCkoMHgxRURCMzZBOUVDQzBGNjBGRTcxN0FBMUE4MTNCOUM0ODBERTlERTlGQ0YwQkU3NjdBOTgyREY3NkQ3RTdDMjNFKSgweDJFQTJEQkUwOEYxMjUyOTZGOTQzNkExODI1RTczOTE0QTAwNjE3RjIxMjEzNERGNjBDRjVDNkQwNDFDRERCM0EpKDB4MkVDQ0I3NDUyM0EzMDNERDU5MUUzQUQ5RUIzNTRGQUIxRDdERTcxNTBERkNBRDIzREM5NTJDQjgwNjNFQTJERSkoMHgxQTVERjE0RDhBNzdCNTE5OEY1NDY5Q0YwQUEyRDVCMUYxNjM5QzVFMEUzRURBMDMzRkFCRUUzNzhFNjI3OTBCKSgweDE5MTU5OEE0NjI2MzExNUEwODMwRjU4NTExNzZGMDBBNDQ0NkU3RTMwQzZBNTREMjI1ODUzQzlBMDREODUxRkQpKSkoeigweDBERjI5MURFMjczNjlFRUVFRTFFQ0M0M0M1OUFFNEIxMDczM0ZBNEFCRkYwMzA3Mjk3OThENDE5MjQyQjkzMDApKShzKCgweDE0MUI4NUFFQzdFMzZGRjg3QUIxRTk2NDQwNTM0N0IxMTk0NDRDNkUzNUE2OTBCQ0JCNUZFMEI3RTc2NzE1MDApKDB4M0U2NzA3QUREOENCRDBDQzlCMjAwNzA2MTI5MTEzMjNEMEQ4N0MxNkQ4RDE5M0VGNUU1ODFCQ0M4QTdBNkY2QSkoMHgzRUJDQkJFN0M1NjE2MUUwQjlENDJFMjJEM0M4REU1RDVERjc5NkVFNEI2QjJENjYwQTc1NTZENDZCMUJENjJGKSgweDAxQzY0QjMwOTQ3NEI1MzdDNDNERDBENkM3NTFGRDA4NUM5RkMzNEMzQjg1MUQ2QUJCQUI4NjMxOEMzREM4M0YpKDB4MUIwODI5NDJENjI5Mzk4NEZCMkY3Q0VGQjZFODEzM0NFQ0E4RTE4QzJFNkVDMkE2Q0UwRTBCMUU0QjZDMzEzQSkoMHgxQzI2MkI2MEM2RkFEOUUyNDg3NTcwQjNBMDZCQzA0NDQzQjBCMzYzMkFENEJFQjM2QzA1OURENTdBOUJERTQ1KSkpKGdlbmVyaWNfc2VsZWN0b3IoMHgwMjM3ODY2NERDNTc3MzcyRjg0RUQyNjZCRDJCNjgzMUY1OUI2RDQwMENGNzM1NkVDRjhBRkNCQTNBNDlGRUMzKSkocG9zZWlkb25fc2VsZWN0b3IoMHgxQjcxMjMyNUE2RkQ2OTYwMTM5RkVFMjgyQTBCMTYyMTVBOEEzRThGMDM5NjBBMEU2OTYyQzVBRUEzNzM4NjZCKSkpKSkpKShmdF9ldmFsMSAweDIyNUZERkMxQTQ1ODY4NUIzQTEzOUQyMDBBMkFEREY4QkUyNDJDQjdEOUQ1NTRBNUY2OTk4MDJFRDgwNDlDRDkpKSkocHJvb2YoKG1lc3NhZ2VzKCh3X2NvbW0oKCgweDE4OUQ4RDkxOEEyQkVEQTkzMUE5NzgyRDYyNzAwNDJBNDhDODVDMTQxOEE0REM0RjZBQTc0OTk2MUNBNjdGOUIgMHgwMjA2NENFOERGOEU2MURBMjIzREVFNDEwNzA4NTY1NTRBNDlDQjlFMjdDNjIzMUNDODE2NkIwRDgzMzg1N0JEKSkoKDB4MjgwQ0ZBM0ZFQzc1QUM1MjIzRTBFRDVENEU2NDlGRjgxNTFEQUMwN0Q3MzQzQUQ0MUJFN0QxQThFN0FEMjZEQSAweDFDNTdENzQ0RDFERUYwOTE3QjI0RkU2NjZENzZEODU0OEMzOEIxNDU0RkM5Q0UwMUY2QUY3MEIzMzVENEI3MjIpKSgoMHgxNTI0RjdENjBBNzJCRjIzQTM5NUQxMDk0MjFGMkNCNjNENTY2NUUyQjA3MkYwNEMyMTlFNzY5RUEwNUQ2NkYwIDB4MjVBMzIwRTREQjAwMzA3MDRBM0Q2ODZCMkNCRjc0QzlFRDBEOTUxMDk4RUM3NTdFMTYzODBDMEFDMDg0MDZFOCkpKCgweDNCNTk5ODUxMDE2NUQ3QzNDRTlERDA4OUM5QjhGNUNDMDVFNzUxRUFBQzhERUQyRkZFMzI2RjBGNjlFMjQ3RDcgMHgyMTc0NkVBOUU5NkVFMzJBMEYzNjc0QTlDOERDQzgwREFDMzMzQ0QzOTA4ODcwODkyMThFRTE1MzdGMTlDM0JGKSkoKDB4MkEwQkE4OTFBMjc3OEMyQUQ1ODIzNzQ2MzVFMDIwNzY5Mjk1MTg0Qjg5QjI0MDQxQTI1RDZCNTI5Njk3NzYzMSAweDBFRkQ1RTBGM0NEMzA4QTA1RDI2RjEyREYzMkQ0RTgwNzM3MjM5MzE3Nzg1MTE4RjNFNTc5NERENjQ0MjBFRTYpKSgoMHgyMkVBMjg2MjVGMURBNzA2N0IxQTgyQ0FGRjlFMTlERDI0ODVGQzRCMTE0QUQ2Q0ZBMkRGQUJDRTYzNUE5NENFIDB4MjhENTJBRUZGMjM4Q0RCRkNFODUyRUJENkIyRUI0NjhBOTY5QUYxNEE2MjAzOTRFNEMyQkNFNDI0NTYyMDBFQSkpKCgweDM0MkRDREMyQTYxRTE2NDYzMDJGNUQ0NjU5N0VFRUEwMUE2MDc3RDk3OTcyRDJBMTE0M0FERkEzNUM1NTE0OUQgMHgzQjJFMUU3ODVFQTA1RTZBMDUwQkU4OEJDOEYwNkFGNjA3ODYyNzBCQkJBNjYwNUQxMzcwNkFBRDI3MDYxNjdEKSkoKDB4M0VENTlDQjVEM0Y3MjVEN0UzRjhCMDdCQ0ExQTcxM0Y0NUU5QkFEOTc5RUM4QjlCM0EzNUY5MTE4MzFEOUNFMCAweDFFNUVBMUU3OEE3OTU3REM5NkMyRTk2MEY0MkJBQzRDMzcyNUQ3Q0I5ODQwMDk3MEVFNzg0OUM3QzYxRkJGM0MpKSgoMHgyNEI3NDFDMzM5NzlDODZBNUY1OUIzMkEyMkRGMDgxOThFMzI2ODJFRTJDREExNTEzNDY2RTZBM0M5OTE2MjI5IDB4MTQ1RDYwQUZCRUE4MjVCQkQxMzdBRDdBMzcxMEFGMTMwNzU3OTQ2QTBCQTEwQ0QyRERDRjEyN0EwMkNEMkZDQykpKCgweDM1RTY2NjM3NkZBODIyRjFFQ0M1NTA5QjQ0MzNCQjRBRTNDQjM2QUJFQTY3OTY1RjY1QzY2NTQ2NjM1MzU0REMgMHgyMzY2NUNCNUMyQTUxMzc5QzcyNjgzQjE0MTFFM0MxQ0RBNUZBOTlFRURCNUQ0Nzg1MUJGOEQ0MzE5QTVFN0ZEKSkoKDB4MDM1RTYzMzlDNTQ1ODA1MzNCRTMxQkJBMTI4RDIyRTkzMjYyQ0I5ODY2ODk3QjcwNUY3REE3RDE4QjcyOTU3MCAweDMzNUQ4QzdBNjVFNTBBNEE0RkU1OEIyRTVCQjg5MEU1MEEyNEUwQjU1MTA1QTdBNTdENjAzMDY3RTYwRkZFM0EpKSgoMHgzMEYxRUExMjU4ODZGRjZCOTkzREJFNzY0OUI1MjE1RjZEMzE3N0RCRTgyRUJCNTFFRDFFMzFDQUI0QkU0RTM3IDB4MURDRDUzQTJDQzU5ODU0NDI3NTlDQTk2Q0I1MURBOUQ0MDgyMDVCMzc2N0M3NzA3NjA2OEUxQkIzNDQwNUIxNSkpKCgweDBBRTNDMkM4ODdCRkY1Q0U5QUZFOENDNEFENDhBNDg5NzVDMEUyNkFDRUI1OUMwRkZCRDg3NzE1MTI0ODk0OEUgMHgzNzZBNkNERURDRDZERDZBRjBDODM4NzA1MUExNzBBNTJFOUNGRUE4MjhENEU2QkNEMUQ5RjhERUI3RjU5MzRGKSkoKDB4MTIwQzY2MUZFREQzREQ0MTEwN0JBNjNCMjcxQkZEQUExRUU0Mzk4Qjg4Njk4NjFBMDMzMUE1RDlBQUJDN0ExMCAweDBBRDRCNUUwOUQ4NEU0NDhBNjExNUNGNTc3QkYxNzhBQkE1NDFGMDBDNzU3NDEyNTRBRTM1MTVENDI5QjgwNDMpKSgoMHgxMUQ4OTkzOUQ0OUREMzI0QjEzMDhDOTg5NTE5QTMxRTJENTBFOUNGRDE3NTYxQURBOEFEMzJBRUQ2REVBRjlEIDB4MjQ1MTJERTFEODI5QjJCRTU1NURDRTg5RDVCMUFEQzE5Qzg5OUUxQ0U4RDg1MUM5QjlDMjlEMjhFRDNDQzQ4NCkpKSkoel9jb21tKCgweDMyQjNDNUVBOTIxQjEwRjQ3Q0NGQkExODRFQTQ3RTk0MUQzMzkxMjFGNkFCMzkzOUU2MjM3NzUwNzE5Q0I1REEgMHgzM0EyQ0Q5MTJDRDk4MTU2Rjg4NDMwRTlBN0U3QUY1OThFRURGNDY4M0Y2RDM4M0I1QTM2REM0QzM4NDcyQzgxKSkpKHRfY29tbSgoMHgxMzU1NThDMjgxQUMyNTk1OUY0QTAwN0Y1QzIwOTVFODExNTQ2MjEyOEZBMDNEOEQ2RDNCMDJFQ0E5MkQ4NEM5IDB4MzM5QjE4MzMzQkYzNTU3NTE2RDFCNUQ2QzIwQ0M3QjI3OTM3MjEzMjk1MjJFMjJENTA1OUYwNEM2N0FFNTc4QikoMHgyNDNGQTE5NDlEODdCRDc1MUM2MTA4MTJCQTg1QkI2OURCQTVEQTNGODIwNDU0Qjk3NUJGMDVCNjE0RjU0Q0I5IDB4MTZGRDFCRjNBMzVBNTQ1OEQ0REFDQUE1RkRENUEzNkVGNEJEMzJBQjJCNkNEM0Q2M0QzRkNDOTgxM0Y1OTIxMSkoMHgzQkM2OTg2OEFFMEREQzEyMUQ4OTc5OTJDQ0I1OUQ3N0MwOTcxMEYxNDQxODhFNkE2QjQ1NkM0NkEzNkVFQjU3IDB4MzhGNkM2RUUzRkRGRDAyN0VFN0M0NkM3N0Q0QkM0QkQ5NjVGNzQ2NEJFQThDRjkwMDlDMEVEMTYwNjREOTVGNSkoMHgwMTIyMjkzRkQ3NTZDMjQwOUREMDdEQkMyQTM0NDc0NzFBRkU5NjQyRTZEODNFNjY2QjUyQ0E1Qzk4MEFBQjA3IDB4MkNGNEMyQkNGODNFNzIzOEUwNTM5NUJENThFNUQyODQ4N0YyQTZFQjQxNjc3RkZENEEwRUQzMjQwMUE2NDU2RikoMHgxODBBODlCMkI0RDVGQjAxNzlDQzU0NjQ3OUE0QzAyREFBRDhBRUMzMjcxNTYzMjg2MjRGMDZCRjkyNjA5NDg2IDB4MDNFQjkyNTQyNzY5Mjc3RDU4NjRENDMwNzFCRUFFMjQxRUI4MEQzODBCMzdGMjIzRkEwNzE3QjI1RDVCQ0ZBNCkoMHgzQjQ5OEQ5Q0JDNzE0Mjc5RTk3MDJGQzU1NzBFMTExMURBQzM0NjNCNzkwMTMyNEY3QUNGQzQ4NEMxNDI2MUI4IDB4MTdGQjhFMDgxRjFCQURBNzM2NTE0MUE5REVERDE2NDU4ODdFQTFGODA2M0M4OUEwRjAxNzg5MDhDN0FCNjUyRikoMHgzMjJGRUVDRTkzMDk1MTAyQzM1NkQxQkUxQkNCRjBCRjdDNDc2QUYzQUUwOUZEN0U2QjVFRjg2ODk1MEFFNUU2IDB4MTk2OEMzMUVENDhBOTdBNUFGOTRCRjlBMEFENkE0QkRCQ0JDM0YwOEU0QzY1QzQ1RkNENDVCQThENEE4OUE0OCkpKSkpKG9wZW5pbmdzKChwcm9vZigobHIoKCgweDE1MkQxMDk1ODFBMTdGODZFQzJEREYxNkUyQUM2NEMwRDg5RDA1NzJCMUU5MkZCM0Y4M0RENjExRUREMUQ4NDEgMHgzMEQ1QkRFMjREODFCN0ExRkFFMjJFQUIyMDk3MTIwRkU0NUE2N0FGRjAzMjAxOEY2MjFDRTMwNDI3QjcwOTU0KSgweDE4RUU2QjgyNjk2RTY5QjAxN0ZFOEJDRkEzQzdBMkY3RDk4QjZDQTE0MzFBMEZDRkIzRTBGNjIyRkRFQTNEM0QgMHgyN0E2MEM4OTlGOTI2MTREMDM0QTdFRjJBMDgxQ0U2QjA0RDIwNENCNTYwMUI3RDU4RDdBMzlCQTc0QTYwOEIyKSkoKDB4MjgzNjMyMjRDQUI5RENGQjYxNzYyN0UyMUFDMzMwQ0E2MEExQzBCNzhGQjcyMjgxMDBFQTY3NkQ1RTMwQ0MwMyAweDA3MDg1RDUxRjlEMzQwQTVFOEU0NjQyMEY0N0Y0RDE3NjU4NzJCNkE0QjVCQzY3QUZDMjc1OURBRkI0NDMzQzQpKDB4MDE1MjI3QTA1MDlBQkM4Q0ZBN0YwNkVEMkYyQkE2OEYxMDUyRjc4MDlGRThEOUQxQTdEMkI1MUU2MjgxMUJBRCAweDI5QTIwQTBCREIyMDBCOENBNDg1QjdDOENFNzE3OTg3QkEwRjk3QTU3OTJFQTg4ODlBRUM2REExNzk2MjhFOTQpKSgoMHgwMDk2QkIxODBDNDE2MEVBQTI5RTVFQ0I0NTk2NzhGREFFRjRCRkJEN0ZEMUFENUU3MDZGQzU5NzcxQTY0NzkyIDB4MDA0QjBGNzVFMkU4N0VDODA2RjU2OTEyOTk1RDZGMjlGMjhBOURBNTA3Mjk5QTA5QTk5NjlEOUQ4Nzk4MTdDRCkoMHgwMTU3NkU2QUMzNkJFMzNDMzlGOUE1RjM0OUQ5NUQ0QzY2NEUyRkY4MzI2REI3MTM5MTJGRkQyMTFENzg0QjE5IDB4M0FENEM2QURFQUQyMjRGNDMyRkMwMzk5QjQzQ0E1MEZGNzYwN0E5RDQwOTYyM0MzNUQ5MjA1NDlFQjFGQTExRikpKCgweDAxOTk5RDRFRjQ1QjY0RjFENkE1NDY0NkVCMjNCMjUyN0E4RTRDREFGMTQ1RTMzQkEzM0UyNzNFMzMwMTY3QTMgMHgxNThEMkY2QTUxNDAxN0NCNTQ5OTJBNzM3ODhDNjkwMzlBMUM1OThCQUY5QjVGMzFENkYwMjk3NzE2NkQwMkFGKSgweDM3MTc2MDY0ODdEMTAzNzZFQjkyOTg0QjI3RTNBMkY0MTZCMEE2MDk3QkVBOUNEOTc5NjczN0EwNDVFOThCOTIgMHgzNkRBOTg2NTQ3NUJDRUI4Mzk5QjA5OUYwOUI1RTVCNTgyRkY2M0I1MzcxNDAzQUQ3MTU1QUY5MURERUUzRTE1KSkoKDB4MjNBN0Q5QUIyNjNFQ0Y0NEFDMTVCRTdEM0Y2MUI4QjdFMzFDNDg2NUE0N0E4M0YxREU0RDRDMDE2RjZGNjUwOSAweDJFOTQzRTM1Qzg1OTFFMkNENTU0QUI0QTMzMzM3OEQ2Q0Q5RTYzOENEQzIyODBDQTg2RDJGNzE4RDdFRDMwQzMpKDB4M0I0NjY5RTY2NUMzRjZGOEEyOTlGNTM5NEZFNUU1ODk4NTlBNTE0ODFEOTQ2NzVCRDBCNjNBQjYzMkJCQTY4MiAweDFCRTYwMDRDOEYwRkEwQkQwOEQ4NTUyMEQwMzZCMUZENjk2RkU1QzU4RkM3RjczRUUxMTQ1OTdBNTc1Nzg0QTQpKSgoMHgwNEUyMjJEQTI1NzJERjM1MDkzNzgxMkQ3ODdFNzQ1NjM0RTA5RDBEMTZGNjRERjhDOTkxMTk4NzY3RENGNzkzIDB4MUI5QzI2MUJEMDBEODc4QkUyMTE2NkUwOUI1NjkwMjE4ODFCMDNDMUZFNUZGMkJEMjZERjVFRjY5ODhFNDQwNykoMHgyNDkzOUY5OUU4RjVFNDM4NjI4QjQwNDY3NDZDODU3ODYxQTdBMTY5RjFCM0Q2QjRDQzMzNDAzOUIxQzQwN0Y5IDB4MkNBMDBCMEZFMkJDRTM4REZFQzZFNkQxQ0YxNkFGNUI5OUNCNkZGQzQ2NDdBM0IzNjM4MzhBNUI4RTQ5NjFDMykpKCgweDM2ODI3OUJFNjEwRTc1NzM3NEQxQjg5RkI2RTMyQjE2NUEzREJDQ0YzNjgyMUU2N0RCNDkwQzcwM0E2ODI2MDMgMHgzRUExRUNBQTY3MDQwMUM4QjZFQTg0OENFRDJBOUY5RTQ4MjFFMkEyMzg3MUFDMzE3MzlFNDhEODIxNzY3QTA5KSgweDNGM0I2OEUyMTQ0RjM3NUZDQUM2RTc4NEM5QzkxOEY4RDM2RDQ4OEU3NjE4MURGNEYxRTVBRkIxQTEyMTMyOTkgMHgxMEZBRkJDNkIwMzcyQjg3NDM2NjFGRjgzNDIyNjhDQjQ2NjBEMzNBQjg0OTA3RTE0MUJDRjZGMkMwN0UwQzBDKSkoKDB4M0JEMDhDQ0Y3RjYwNUI1QUI4QTI5OTc5MDJCQkU5RUZBNTExQUYxOUUwNTA0MEVFNEE4RENCODM5NTYzRDVERSAweDM4OEFEMERFQjIxM0MzNUVBNzU3RDM5MEJBOEU4NjQxMkRFMTFGQkNGOEVGOENCMkFBREU3NjE3M0RGRDcwRjkpKDB4Mjg0MzNGRENFN0NDQTEzRTZFRkJCNEZGNjc0OUJDMzI5MDRCNDhCOTZBQ0I4QkFDODYwNUJEMENBQzFBQ0E1RiAweDI1MkM4Qzg5N0FERURENUYxOEZCNjgxQTBDQzUwMUI4NzhCRDNDMjRDOEQxOTRCNzdDRDcyMTkxQkVFRDM2QzQpKSgoMHgyQkY3ODlBMTc4MjU4MjQyMEM3QjUyMjcwNUIwMTExRjhFNEU4M0IyNDRDMzlCQkM2QzkyQzUzNUI0NzQyM0E3IDB4MjMwQTVBOTIxM0UwRDAyODZEOUQxM0Y5RjIyQzI3NzQ5MDZGQUZFRkQ0MzY1NjQ0MDVBOUI2QjAxNzhBQzM4RikoMHgyQTgzNUU4OTU2Q0Q2RDc4NDhGOTNDOTFBNTcwRDg3OTIyMjg5QUI2NjZCQjQzQ0YwNzAzNjBBRUQ5OUNGNzI1IDB4MzJCNDJFNkNFNkY1QzIxNzI0Q0EzMjc0Njc2RTIyQ0ZGQTFBREZBMERCQjQzN0E4RDE0NzMxRkQ3MzBGQjgwQSkpKCgweDEwRTQwODY1MUI4M0YzMDQ1RTZBQUFBRUVFREJBQUU2MjY0ODEyNTkzQkI4QkVCQzc3Qzc1MjcwN0Q0M0U4MkEgMHgxNkUxMDBEODkyRUQwMkJDMDk4ODQzMEI1Q0NFRjI1Rjc5QkQ3MTUzMEU3QkM4Q0I5MTA1REFCQzE4RTRBQkI2KSgweDAwMDEwMEEwREM0RUIxNzg3QUYxRTkxMzNCRjNGQjc4NkVDQTQwMUVFQkFERkVDRUFCNTUxRjJFMTRGQTI0MDQgMHgwMkUwRTBCMzA0MjRGNzlENTIxNEFGRTAwMzNFMThEMTE2MEI1NUM0QjA4QzBGNEY2MkQyMzI4MzE4NDhDMUJGKSkoKDB4MTVCODBBN0U2NkM1RkIwNTc1REUxMzY4RUY5MUVDNjI4ODEzRTY2QTMxRjA0OTI0RUJBRDAzRkExNzc5MTI4RCAweDA4NTk1Nzc3QTcxRkY3MTA0NUVBODVFOTgzRDVBOTA4NTY0Qjk1QjhFMjY4NENFOTQ1NTMyRDQ2QUU2M0RBNEMpKDB4MjgwMDVEODVGRDk3RTAzNDVFOTUyODI0NzY1OUQ3N0Y3NzQxRDJGODI1QUVDNzdCMjU5QjI1NkZCQzkzREM3RSAweDM0M0EzMkFEMkU3M0MwNjc5N0RGNjFGNjlGN0RGNEMzNDI1MzlGRDRGRDVFQzNCMjEzMjI5RkJDNDI4MDJFODIpKSgoMHgxMjQ4MUJEN0ExRkM0NjE3QzE0OTI1NkNCRTlGRTY1NEY5RDEwQzM4NzA5NzgyMTJCQTQ2NDA0MkU5ODU2QzcxIDB4MDQ1QzZENjk3MTM3MjNGOENFRTgyODJEN0EyMDY1OTdERjVCNkJEOUJCNDE5MUM3NjlDMkZDRERGNkFEQjY1OSkoMHgxMjVCMDc4M0YzNUZBRTRCQ0QzMjdGNEMxNUNDNTcyQjdFRTE5NzcwNkE5QzE0RDU5MUI5RjlCMEM1ODQxQzE3IDB4MTAxMURCRTRGNEZFMUZCNzRENTcwM0ZCMEI4NUMxNDIzQ0ZFODdDN0Q2MEM3OUU4NDkxNDUzNUZDMEYzMTBDQikpKCgweDBGNkExMDk1NjBDM0ZCNUY1RkY2RTY2NEFFMTUxNjc3QzUxMzlDQjFFOUZCMEMxOUNFNDk5MTlEMjYxNjM2QzEgMHgwNDJBMzI3RUE2QzM2OTE0MEY1OEYwRDJDNzU1Rjc0NUU0NUNERDMxNEE3QzM3MjcwQTIxNTJFMzc2MThCNkI0KSgweDIwM0JDRjQxOTc4MThCNzEwRkVCNDFEMjM5Q0MzMkUzRDlCRjRGODg0OEJGOTQ4M0EwMjg2NEQ2Q0Y0RUI0QUMgMHgyQjhFNjNFNUUwN0Q3QkMzQzI3MEQzQkY3NDA0MjU1N0FGQ0NDMTk5OTk0NDJGQjQyRDcxNEMzOUFBQzNBOTM3KSkoKDB4Mzc0MjAwOUI1MkExNUZBQTNFMTI2OUZDNDhBMjFDNEMwOTNGNTQyQkQ4MUI1QkI5M0Y0MDEzOTk5QzkyOUE4NSAweDM4RUFFRDFEQTgxOTk1QkQ2OTczQjFGREI0M0U4RjRCM0U2MjgwRDFGQzlERTRDOEI3MUY4RUY1MEI5QzNGQ0YpKDB4MjY1RkFEOTNDREZDMzQ0RkMyMkIxMDg0MDg4MUI2QzY5QjkwM0Q0RDc1RDg0QjEzRTMwMkFGQjU1RUE1Q0JDRCAweDBFM0ExMTU0RkFGMDRFRTIyNTkyNDkyMDVCMUVBQkYxNDkwODEwRjM4NjY2QzEzNjY5RTBERjFFNzQ1QUU2NjUpKSgoMHgzQzVBNzAwNzFDRDczQzYzNThCQ0RCNDAwNDgyMDI4OUJBQUUxQTY0QUY0RDlBRkRGOTA1MUVBREMzRjE4RTA0IDB4MzVFQjMyNzY2N0M0NTU5OUU1QUIwNTY0NUU5RkY5ODRGMkMwQUFDNkNDOUM3Q0ZFMTZBNDRCQkVCRjlFRUMzNSkoMHgzMUJBRTZENzYyN0IyQUFFMkQ4Mzk1OEQxNTcwMjAyMURFRUM2OTM1OTIzQjQ3NUY4MDM1NzM3MTUyNUVENzZCIDB4M0ZBMjVFMjE4NEQ2RjI2QzgzNkRCOTBGRTdERUIyN0MxMUYyOTg5ODA0M0Y4Q0IwQzE0QUExMENDMTRGRDBFNSkpKSkoel8xIDB4MDZCMjY1RkNBRkNEMkVGRDhDNTVBNkFBQzA2OTZGNjYwMjM0NzA2RDIxRjM1Q0Y1NkJFOTlGQjgzMkY0RTA3OCkoel8yIDB4MDU4MEM3RkJGNEE2QjgyMDhDMEI2QTI2MzA4OTMxMEQzRTJDMjE3Rjc1MDczMkFDRjJFQ0E0OTMwMkMxREE1MSkoZGVsdGEoMHgyRjIwRjczRTk4MjA0NzlDQUJBRjc1OUM5NDMxNUExQUQxOUI5RTg3QjZDNEI4NjAyMUY4NzQ1RTgzQTBGNTAyIDB4MzIxRUQxRjU5NDcwMEVDODk5MkIzQzlGQjM3OUM2QUYyNTUxRjA4RDk5MUYyRTEzQTc2ODAxQzNERkE5MDVCRSkpKHNnKDB4MEUxNzZFQzFFQkVDM0NCNENGRjlENDlBQzBFRjc4ODI0OUM0RkJGQzk3OUEwQUY5MDYzMEJENEQ1Qzk2RDgwRiAweDE3RkNFMEZEOTk5RDhDMjQ3NkUxNTY4N0JBMDkxOUYwMTY3RDUyRUQ3OUI0RjFGRDBBMzFEMkM4REVDRjMwQTYpKSkpKGV2YWxzKCgodygoMHgzRUI0RTc2QTQ4NEEyNzQ3ODEyNUQ0OTUyQzg3NEY3MTAxMDM5OEQyMjY0RUUyOURCNTgwOEI1QTAxMDM4RDlEKSgweDE0QUVDQjY1OURFMzBBOTgyOEJGNUY2QzdGN0Q4ODlBMkVBRDM5NzdDNDY3MzlBRUQ4OTFBMkZGNEI2NkYzNDQpKDB4MDQ5RTI4QUJGMTFBOTY1NEE2MTQ2Q0RENDA5N0RBNkNCQUY5QUEwMENBQTNGMjgwRjc3RDBFNTBFNEQzQTc0QikoMHgwNzFFMTE1NTBGQTg5MjFDN0Y0OUZDRUQzN0VEQjIxNDE0Njc4Rjg1MTc2MDdCRDNDOTVFNDYzNzZEQTFFOTdEKSgweDIyREQ1QzY4NzUzN0JDNUM0OTYxOTAwNEI0RjNCRkE0MUQwRTIyRTBENUZFNEI2QkVENDg0MzNFNTUzQzI1NDgpKDB4MzBBNTcxRUU5Qzc0NzBEMEQyQjAxOUIxNDQyNkM4MzAyNTAxNkIzM0ZENkE0RjRCQTkzQzVBODBBQ0FFN0Q2NCkoMHgwRTg2RDU1NkZENTUxMENEMjYzNDIxQ0VDNzYwRTQ4NDlCNkJCRUQ0NDUzREZCMTAxOUNCQkE3NDcyQTJDNTQ2KSgweDAwMjE3OUI2QTY4MkFDQUUzMUZBNEMyMUMzQjNBRTBCMDNFOUQ4RkUxRjAxMThCMkVGRjlCMTk0OTAyNTc2MjcpKDB4M0VFM0Y2NzkwMTJFQUFDMEQxOTVEQzcwMjk4QTcxNzUzQjM0QkM2QjQ1NDBCQUU4OUNGMkY1OTVGMzBGNTJFNCkoMHgxNjI0QUVBQzY2NTUxQzI2Nzg1MDFGMkQzNjIyQTkwMjFBRDhGNjJDMkRGMDIxN0MxRDk2QUZCQ0Y2OTg0MjZCKSgweDMxOTg1MzEyNERGRTQxN0VFNzg1ODZDQUIzMDU4NUYzMTFGRjdEMUU5MDJERjYwNkM1QTY2RjAzMEM1RjkyNUQpKDB4M0U4NTU4MDIzMjU2MzA4MTkwRjcyNzdGMDMyQ0YzMDUzNjhCQzBGRUJCOUIxOTRGODQ5MjRCNjlEOUQzOTEwQikoMHgwQzVCNDJFNTJGNDQyOEU3NzQ1OUQ5QjlCRjEwRDhEMjU2QUQzODNDRDcxOTlBODdBRDhGMUVEOEQzM0I2NDk5KSgweDAxMzBGQTk3MzFEMDBBRjI5NTNERTE3NEQ3MDQyMkRGQkQ5RkUwRUNGRDZBQTZDMzA0QUVCNDgxMzYwRkRDMEYpKDB4M0JFQjJCRURCNTJGRTk3MzUwODcyQTQzRTFDNTQ1NzI1NEYyMjYwOUE5MjI4MzgyRTBDMzI5MDEyMTQ2QTQ3QykpKSh6KDB4Mzg1RjA0RURFMTc1QUZGNEQ1NTk0MUM3Q0Y0QkI5MTY5NzNGQTIyMDVFOTRDMUNEMjc4MTVCRURFRjBENTY5RSkpKHMoKDB4MUIyODExMkJGRUQ0MEY5MjM4MDUzNzI3OUYwQjgzNDVDRDJDMDk1QkQ3RUU0RTU1ODMzODJFNzNGRkY4Q0IyNykoMHgxOEE2ODEwNDExNjE4QzExQkEwNUE5ODI5RTRCQkU3MjM3RkQxNjMxQUI3RjAyNzQwMDdERjg2NEFERThFQjExKSgweDMyOTIxOTJBQTYyRUYxQ0QwRkM4MjZEMjZBRTYxNUM5NDdEMDlDMDM5QUM5M0FGRDUyNDE3OERCRTk3OEU1QjgpKDB4MUNCOTAxRDJERDZEQUUzOEMxNDMzNzcxQzc5MEQ4RTZEMEU4RTUwQzU3MUUyNkU2Qzc3M0E0NTRDRkU1NjI0NykoMHgxQjc2NEI1MjdBOTZGNkJDQjJCREIyNDlEQzZCMzNFQzEwMzdBMjcwRkU5MThEMzE4Qjc2QTU0MzQ0MjVCRkNBKSgweDIwQTJBNkFGOEMxQkU2MjdBQ0QyOTIwMjE0MzczNzE2QjZEMDlDRDNFMjNCNzM5Njg4MzFGMjM5NzJDMjA2NEMpKSkoZ2VuZXJpY19zZWxlY3RvcigweDNBRkZBQTdGMjcxOTRCQzc0Mzk1MEY3QjdGQUI2QTkxODUxQzVBNkQxN0E4RUQ3RDg4MDEwQ0YwQkREMUFEQ0YpKShwb3NlaWRvbl9zZWxlY3RvcigweDE3OTA2OTI1NjIzRTNGNzYwNDUxRjk5OTJFODY1ODI2MDJGNzY5QUE0QUE3RjIyQUIxNEU2REZFRDJDRTE3M0UpKSkoKHcoKDB4MURBNjc2OUUwRkJFRjlCRkJGMENDRjM3NzhCQjQ2NjYzMzI4REQ5RDFGM0Q4OUIwNkVDODk3MTJGM0FBODAyQSkoMHgzQjNDOTUxNDA5NDNEMjdBN0MwMDlBOUZDRDA5M0MyQzk4RUYxQTIyMUFBODMxMjk2NTMxMzBDNEI1NEJCMjI4KSgweDIwREZBRTZBMEExN0EwMzQ0MEFDNzM0MEE5RERDNUQwQjM4Njc1RDVBNDExNzZGNjIzNDJBM0UzREYyRDI3NkQpKDB4MTM2RDc4NjRFRDJEMTRDRkYwREUxMzIzQzVFMDExN0MyODIzMDM0RTRDRThFRThEMDc1REEwODczQkEzQTEyRCkoMHgwMTAxRkM5M0JCQTAzODgxM0IwNTdDMDU4NjgxMDYzRDJEMjRFMDkxRDJCQ0M3Nzc2NDc4RjJERjhCRTA0MkVBKSgweDI0MzA2RkRGRjA2MEY4RTFDRUNGNzU0QjBCMkIyRTY0REMyOTYwRUU4Q0E3QjVEMDZBNTM0NkY4M0RGRTRERTApKDB4MjM1Q0UzN0EzMjFCMjlCREQxQzU5REU5MzNFRkFEQzI1QUI5NTE4NEQ2MEI3N0IxNkQ1MzJBMDQxN0VGNzVGOSkoMHgxNjBCRTBFNjU1Q0M1MDNGOTgzMzVFMDk4Qzk2NEE2QjI2MDM0QzI3RkY4QUYwQTUyNkM2MUY3OEExNzVFNEY4KSgweDA4OTE2MkI2QjA2ODVGQzkyRkNBNDM1RkQ4MTY1NEQ4MDIyNzdBMjNBMjE5M0MyMTRGRjQ4OUM3MjkwMTQ0NUEpKDB4M0RDMDc3QTNGQTFBREEyMzUyRjg5MDU5M0NBQzFGODAyOEE2RTNBMTlDMTlFRDI2RkVCQTBBNzI4MzIxNUVGQSkoMHgzRkM4QUE5MjAwRUU1REY0MUFEMTJDODZGQTIzRjlGNTlCNzhBM0REMkY4NTU5RjFCMzlBRERCM0I0NDY2MDhBKSgweDJERUI3QTU0N0M1MjY3REQ4RkQ1OThCMTMxNDY5MUFBQjFGODhGQjZFNjQ4RDZGQkY2RDk5NTk4QTNENEREODMpKDB4MTZFMjc1RThFQUIyOTZBOTA2MTY3RDhGQjY2Q0ZBMEI1MTQyQUJGMDg5RjhDNDE0NzdGQ0JDRUI0QkVCRkU5OSkoMHgzOENGNzE5MzA2RTI0QUQyNjg2Njk3RkE3MDEyMTU3M0Q3RjE5QkYyNTBFNzk4MEQ3OThERENGRDQzOUM0NUY5KSgweDBGMUE2NkNBNkU3QTZFMUQ5Mzk1OTQwNjhENTNDRDJGNjk3Q0UyRkNGNTRFQ0RGNzA1Q0I0QzFGQUQ0QTUzN0QpKSkoeigweDFGMEY2OTQzNTFBOTJBODhFREM4MDU0NDEwNDQxOTRDMzMwMzVEQjk3QjAyM0JDM0RENUI5RTdBOUZBOThCMzApKShzKCgweDAyOEVCNzA4Nzk3OENFN0NBOTU1MzUzMTM0M0FBRjA5M0NGQ0I3QTJCMkM2RTlCNzI1OENCMjVDMTRFMDYxRkQpKDB4MkIwOUE1NTVBREYwREE3OEJFMjdCMzU5MkUzMjE2Qjc1NEQyMjQ2Qzc4RDYzNjBCMzJCRTI3RUIzQ0Y0OTYxMikoMHgyMjkxRjNFRkY3N0UyNjdFNEQwMjE2Qjk0QzJCRjdDNzU1QTFDQTAzQjM4QkM2NkE3NkU2RUFBQjRGRkIxMjE0KSgweDBCRDJGQjc5MUNFNkRCMEZDQTNFRUUyNTQwNDM0OTU4N0NFRkY3Q0JBOERBRUI4MDQyRDA0RTk5N0YxN0FGOTkpKDB4M0VFREI5Mzk4Qjc0MzFDRDY4MjI2REIyQjRDMTMwMzA1OTUwN0M3QUY0NDAzNTY0MENBRDg5RjRDRjUwQzVEQikoMHgwRURCODA4RUU3QTY1QzZBRUE1RDIzRkY1Mzk0QUIxQjcyRDI0N0I2MEMzRTZDNTQxRTRGRDg5QUU2MEU2NjBEKSkpKGdlbmVyaWNfc2VsZWN0b3IoMHgyQkJFNjdGOUJBQ0ZGMjMzQUFEOURCMkFBODZENkEwMTRGQjU1RDNCNzlDREIyNUExQ0ZGN0JFNDQxQTlGRURBKSkocG9zZWlkb25fc2VsZWN0b3IoMHgyREZFNDQ5Njk4MDgyQkVEMDdDNUExQkM0MkUxRUE1QUQwODgyMDJFQzUyRjAwOURGMUQyMkFGMUI0QTkxRThCKSkpKSkoZnRfZXZhbDEgMHgzOERFMEJDMzMyOTkzQUZERUU4NTM0OEFFNTExRjYxNUE1MUJCNjFFNDQ0ODY3REQ1QjgzNzlFNDFCQzdDRjBEKSkpKSkp"}}] })
}

2.3 更新zkApp账号状态

$ mina-snapp-test-transaction update-permissions --fee-payer-key ~/.mina-config/wallets/store/B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS --nonce 4 --snapp-account-key ~/keys/my-wallet --current-auth signature --edit-stake Proof --receive None --set-permissions Proof --set-delegate Signature --set-verification-key Signature --set-snapp-uri Signature --set-sequence-state Proof --set-token-symbol Signature --send Signature --increment-nonce Signature --set-voting-for Signature
Fee Payer keyfile
Private-key password: 
Snapp Account keyfile
Private-key password: 
Parties sexp:
 ((fee_payer
  ((data
    ((body
      ((public_key B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS)
       (update
        ((app_state (Keep Keep Keep Keep Keep Keep Keep Keep))
         (delegate Keep) (verification_key Keep) (permissions Keep)
         (snapp_uri Keep) (token_symbol Keep) (timing Keep)
         (voting_for Keep)))
       (token_id ()) (balance_change 1000000000) (increment_nonce ())
       (events ()) (sequence_events ())
       (call_data
        0x0000000000000000000000000000000000000000000000000000000000000000)
       (call_depth 0)
       (protocol_state
        ((snarked_ledger_hash Ignore) (snarked_next_available_token Ignore)
         (timestamp Ignore) (blockchain_length Ignore)
         (min_window_density Ignore) (last_vrf_output ())
         (total_currency Ignore) (global_slot_since_hard_fork Ignore)
         (global_slot_since_genesis Ignore)
         (staking_epoch_data
          ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
           (start_checkpoint Ignore) (lock_checkpoint Ignore)
           (epoch_length Ignore)))
         (next_epoch_data
          ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
           (start_checkpoint Ignore) (lock_checkpoint Ignore)
           (epoch_length Ignore)))))
       (use_full_commitment ())))
     (predicate 4)))
   (authorization
    (16417461588129301601464051327187641643968908255307649203821975169569030361654
     8958588597797274704612779388195527832141604442611959563154539772716498352650))))
 (other_parties
  (((data
     ((body
       ((public_key B62qpbnWwNdhjdmTCfLJMbJXnYDDqxdRNv2Hm7Be9pnLudF5vn7QTs1)
        (update
         ((app_state (Keep Keep Keep Keep Keep Keep Keep Keep))
          (delegate Keep) (verification_key Keep)
          (permissions
           (Set
            ((stake true) (edit_state Proof) (send Signature) (receive None)
             (set_delegate Signature) (set_permissions Proof)
             (set_verification_key Signature) (set_snapp_uri Signature)
             (edit_sequence_state Proof) (set_token_symbol Signature)
             (increment_nonce Signature) (set_voting_for Signature))))
          (snapp_uri Keep) (token_symbol Keep) (timing Keep)
          (voting_for Keep)))
        (token_id 1) (balance_change ((magnitude 0) (sgn Pos)))
        (increment_nonce false) (events ()) (sequence_events ())
        (call_data
         0x0000000000000000000000000000000000000000000000000000000000000000)
        (call_depth 0)
        (protocol_state
         ((snarked_ledger_hash Ignore) (snarked_next_available_token Ignore)
          (timestamp Ignore) (blockchain_length Ignore)
          (min_window_density Ignore) (last_vrf_output ())
          (total_currency Ignore) (global_slot_since_hard_fork Ignore)
          (global_slot_since_genesis Ignore)
          (staking_epoch_data
           ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
            (start_checkpoint Ignore) (lock_checkpoint Ignore)
            (epoch_length Ignore)))
          (next_epoch_data
           ((ledger ((hash Ignore) (total_currency Ignore))) (seed Ignore)
            (start_checkpoint Ignore) (lock_checkpoint Ignore)
            (epoch_length Ignore)))))
        (use_full_commitment true)))
      (predicate Accept)))
    (authorization
     (Signature
      (13724092352344658949972354761192432674549410640418688773547061119845694186810
       27549196280075737872932535113061508204963527827574122838216830315608157169538))))))
 (memo
  "\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"))

Snapp transaction yojson:
 {"fee_payer":{"data":{"body":{"public_key":"B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS","update":{"app_state":[["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"]],"delegate":["Keep"],"verification_key":["Keep"],"permissions":["Keep"],"snapp_uri":["Keep"],"token_symbol":["Keep"],"timing":["Keep"],"voting_for":["Keep"]},"token_id":null,"balance_change":"1","increment_nonce":null,"events":[],"sequence_events":[],"call_data":"0x0000000000000000000000000000000000000000000000000000000000000000","call_depth":0,"protocol_state":{"snarked_ledger_hash":["Ignore"],"snarked_next_available_token":["Ignore"],"timestamp":["Ignore"],"blockchain_length":["Ignore"],"min_window_density":["Ignore"],"last_vrf_output":null,"total_currency":["Ignore"],"global_slot_since_hard_fork":["Ignore"],"global_slot_since_genesis":["Ignore"],"staking_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]},"next_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]}},"use_full_commitment":null},"predicate":"4"},"authorization":"7mX5hwtNky47CfTQwNYSXKVXTa8ghk8U1DoTosgvt2Ld9VDX2UiBB1N8Ar6mbCF8kS1k3kzxurs1KVCZ6YyuL7kf7UmdXEeb"},"other_parties":[{"data":{"body":{"public_key":"B62qpbnWwNdhjdmTCfLJMbJXnYDDqxdRNv2Hm7Be9pnLudF5vn7QTs1","update":{"app_state":[["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"],["Keep"]],"delegate":["Keep"],"verification_key":["Keep"],"permissions":["Set",{"stake":true,"edit_state":["Proof"],"send":["Signature"],"receive":["None"],"set_delegate":["Signature"],"set_permissions":["Proof"],"set_verification_key":["Signature"],"set_snapp_uri":["Signature"],"edit_sequence_state":["Proof"],"set_token_symbol":["Signature"],"increment_nonce":["Signature"],"set_voting_for":["Signature"]}],"snapp_uri":["Keep"],"token_symbol":["Keep"],"timing":["Keep"],"voting_for":["Keep"]},"token_id":"1","balance_change":{"magnitude":"0","sgn":["Pos"]},"increment_nonce":false,"events":[],"sequence_events":[],"call_data":"0x0000000000000000000000000000000000000000000000000000000000000000","call_depth":0,"protocol_state":{"snarked_ledger_hash":["Ignore"],"snarked_next_available_token":["Ignore"],"timestamp":["Ignore"],"blockchain_length":["Ignore"],"min_window_density":["Ignore"],"last_vrf_output":null,"total_currency":["Ignore"],"global_slot_since_hard_fork":["Ignore"],"global_slot_since_genesis":["Ignore"],"staking_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]},"next_epoch_data":{"ledger":{"hash":["Ignore"],"total_currency":["Ignore"]},"seed":["Ignore"],"start_checkpoint":["Ignore"],"lock_checkpoint":["Ignore"],"epoch_length":["Ignore"]}},"use_full_commitment":true},"predicate":["Accept"]},"authorization":["Signature","7mX6CxUJzi4FR58FsHMVPCsRBCyy3nG6BnZR9UnbfDgMoB2tjzVLQgNDsMzjPBpiVerhQpc3txQ58Tyxn8ua4p9rLJ9mFiNM"]}],"memo":"E4YM2vTHhWEg66xpj52JErHUBU4pZ1yageL4TVDDpTTSsv8mK6YaH"}

Snapp transaction graphQL input 
mutation MyMutation {
  __typename
  sendSnapp(input: {
    feePayer:{data:{body:{publicKey:"B62qnHtHCf5ZJcwU5RqPCjZ31uFhSUSq8oHfxEVqMLC3JsxJFMxt3YS",
        update:{appState:[null,
            null,
            null,
            null,
            null,
            null,
            null,
            null],
          delegate:null,
          verificationKey:null,
          permissions:null,
          snappUri:null,
          tokenSymbol:null,
          timing:null,
          votingFor:null},
        fee:"1000000000",
        events:[],
        sequenceEvents:[],
        callData:"0x0000000000000000000000000000000000000000000000000000000000000000",
        callDepth:0,
        protocolState:{snarkedLedgerHash:null,
          snarkedNextAvailableToken:null,
          timestamp:null,
          blockchainLength:null,
          minWindowDensity:null,
          lastVrfOutput:null,
          totalCurrency:null,
          globalSlotSinceHardFork:null,
          globalSlotSinceGenesis:null,
          stakingEpochData:{ledger:{hash:null,
              totalCurrency:null},
            seed:null,
            startCheckpoint:null,
            lockCheckpoint:null,
            epochLength:null},
          nextEpochData:{ledger:{hash:null,
              totalCurrency:null},
            seed:null,
            startCheckpoint:null,
            lockCheckpoint:null,
            epochLength:null}}},
      predicate:"4"},
    authorization:"7mX5hwtNky47CfTQwNYSXKVXTa8ghk8U1DoTosgvt2Ld9VDX2UiBB1N8Ar6mbCF8kS1k3kzxurs1KVCZ6YyuL7kf7UmdXEeb"},
    otherParties:[{data:{body:{publicKey:"B62qpbnWwNdhjdmTCfLJMbJXnYDDqxdRNv2Hm7Be9pnLudF5vn7QTs1",
        update:{appState:[null,
            null,
            null,
            null,
            null,
            null,
            null,
            null],
          delegate:null,
          verificationKey:null,
          permissions:{stake:true,
            editState:Proof,
            send:Signature,
            receive:None,
            setDelegate:Signature,
            setPermissions:Proof,
            setVerificationKey:Signature,
            setSnappUri:Signature,
            editSequenceState:Proof,
            setTokenSymbol:Signature,
            incrementNonce:Signature,
            setVotingFor:Signature},
          snappUri:null,
          tokenSymbol:null,
          timing:null,
          votingFor:null},
        tokenId:"1",
        balanceChange:{magnitude:"0",
          sign:PLUS},
        incrementNonce:false,
        events:[],
        sequenceEvents:[],
        callData:"0x0000000000000000000000000000000000000000000000000000000000000000",
        callDepth:0,
        protocolState:{snarkedLedgerHash:null,
          snarkedNextAvailableToken:null,
          timestamp:null,
          blockchainLength:null,
          minWindowDensity:null,
          lastVrfOutput:null,
          totalCurrency:null,
          globalSlotSinceHardFork:null,
          globalSlotSinceGenesis:null,
          stakingEpochData:{ledger:{hash:null,
              totalCurrency:null},
            seed:null,
            startCheckpoint:null,
            lockCheckpoint:null,
            epochLength:null},
          nextEpochData:{ledger:{hash:null,
              totalCurrency:null},
            seed:null,
            startCheckpoint:null,
            lockCheckpoint:null,
            epochLength:null}},
        useFullCommitment:true},
      predicate:{account:null,
        nonce:null}},
    authorization:{signature:"7mX6CxUJzi4FR58FsHMVPCsRBCyy3nG6BnZR9UnbfDgMoB2tjzVLQgNDsMzjPBpiVerhQpc3txQ58Tyxn8ua4p9rLJ9mFiNM"}}] })
}

参考资料

[1] Berkeley QA Release ba9a0e0 #10347
[2] Mina文档——连接网络
[3] Send a payment with Mina
[4] zkApp test transaction tool

你可能感兴趣的:(隐私应用,区块链)