From 9f5fd2116077e27616ed35510c22ce2e69904ecf Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Thu, 4 Jun 2020 22:21:12 +0300 Subject: [PATCH] core: drop UXTO NEO and GAS transactions from the genesis block They're no longer required. Adjust test chain for that, now it only has invocations, transfers NEO/GAS and pays the fees with NEP5 GAS. --- pkg/core/helper_test.go | 167 +++++++------------------ pkg/core/util.go | 30 ----- pkg/core/util_test.go | 2 +- pkg/rpc/server/server_test.go | 124 ++++++++++-------- pkg/rpc/server/testdata/testblocks.acc | Bin 114026 -> 6540 bytes 5 files changed, 117 insertions(+), 206 deletions(-) diff --git a/pkg/core/helper_test.go b/pkg/core/helper_test.go index f6055d670..c5cd95075 100644 --- a/pkg/core/helper_test.go +++ b/pkg/core/helper_test.go @@ -165,20 +165,21 @@ func TestCreateBasicChain(t *testing.T) { return testNonce } - var neoAmount = util.Fixed8FromInt64(99999000) - var neoRemainder = util.Fixed8FromInt64(100000000) - neoAmount + const neoAmount = 99999000 bc := newTestChain(t) defer bc.Close() gasHash := bc.contracts.GAS.Hash + neoHash := bc.contracts.NEO.Hash t.Logf("native GAS hash: %v", gasHash) + t.Logf("native NEO hash: %v", neoHash) priv0 := testchain.PrivateKeyByID(0) priv0ScriptHash := priv0.GetScriptHash() require.Equal(t, util.Fixed8FromInt64(0), bc.GetUtilityTokenBalance(priv0ScriptHash)) - // Move almost all NEO and some nep5 GAS to one simple account. - txMoveNeo := newNEP5Transfer(gasHash, neoOwner, priv0ScriptHash, int64(util.Fixed8FromInt64(1000))) + // Move some NEO to one simple account. + txMoveNeo := newNEP5Transfer(neoHash, neoOwner, priv0ScriptHash, neoAmount) txMoveNeo.ValidUntilBlock = validUntilBlock txMoveNeo.Nonce = getNextNonce() txMoveNeo.Sender = neoOwner @@ -188,32 +189,23 @@ func TestCreateBasicChain(t *testing.T) { AllowedContracts: nil, AllowedGroups: nil, }} - - // use output of issue tx from genesis block as an input - genesisBlock, err := bc.GetBlock(bc.GetHeaderHash(0)) - require.NoError(t, err) - require.Equal(t, 4, len(genesisBlock.Transactions)) - h := genesisBlock.Transactions[2].Hash() - txMoveNeo.AddInput(&transaction.Input{ - PrevHash: h, - PrevIndex: 0, - }) - txMoveNeo.AddOutput(&transaction.Output{ - AssetID: GoverningTokenID(), - Amount: neoAmount, - ScriptHash: priv0ScriptHash, - Position: 0, - }) - txMoveNeo.AddOutput(&transaction.Output{ - AssetID: GoverningTokenID(), - Amount: neoRemainder, - ScriptHash: neoOwner, - Position: 1, - }) require.NoError(t, signTx(bc, txMoveNeo)) - b := bc.newBlock(txMoveNeo) + // Move some GAS to one simple account. + txMoveGas := newNEP5Transfer(gasHash, neoOwner, priv0ScriptHash, int64(util.Fixed8FromInt64(1000))) + txMoveGas.ValidUntilBlock = validUntilBlock + txMoveGas.Nonce = getNextNonce() + txMoveGas.Sender = neoOwner + txMoveGas.Cosigners = []transaction.Cosigner{{ + Account: neoOwner, + Scopes: transaction.CalledByEntry, + AllowedContracts: nil, + AllowedGroups: nil, + }} + require.NoError(t, signTx(bc, txMoveGas)) + b := bc.newBlock(txMoveNeo, txMoveGas) require.NoError(t, bc.AddBlock(b)) t.Logf("txMoveNeo: %s", txMoveNeo.Hash().StringLE()) + t.Logf("txMoveGas: %s", txMoveGas.Hash().StringLE()) require.Equal(t, util.Fixed8FromInt64(1000), bc.GetUtilityTokenBalance(priv0ScriptHash)) // info for getblockheader rpc tests @@ -222,60 +214,9 @@ func TestCreateBasicChain(t *testing.T) { b.Header().EncodeBinary(buf.BinWriter) t.Logf("header: %s", hex.EncodeToString(buf.Bytes())) - // Generate some blocks to be able to claim GAS for them. - _, err = bc.genBlocks(numOfEmptyBlocks) - require.NoError(t, err) - acc0, err := wallet.NewAccountFromWIF(priv0.WIF()) require.NoError(t, err) - // Make a NEO roundtrip (send to myself) and claim GAS. - txNeoRound := transaction.NewContractTX() - txNeoRound.Nonce = getNextNonce() - txNeoRound.Sender = priv0ScriptHash - txNeoRound.ValidUntilBlock = validUntilBlock - txNeoRound.AddInput(&transaction.Input{ - PrevHash: txMoveNeo.Hash(), - PrevIndex: 0, - }) - txNeoRound.AddOutput(&transaction.Output{ - AssetID: GoverningTokenID(), - Amount: neoAmount, - ScriptHash: priv0.GetScriptHash(), - Position: 0, - }) - txNeoRound.Data = new(transaction.ContractTX) - require.NoError(t, addNetworkFee(bc, txNeoRound, acc0)) - require.NoError(t, acc0.SignTx(txNeoRound)) - b = bc.newBlock(txNeoRound) - require.NoError(t, bc.AddBlock(b)) - t.Logf("txNeoRound: %s", txNeoRound.Hash().StringLE()) - - claim := new(transaction.ClaimTX) - claim.Claims = append(claim.Claims, transaction.Input{ - PrevHash: txMoveNeo.Hash(), - PrevIndex: 0, - }) - txClaim := transaction.NewClaimTX(claim) - txClaim.Nonce = getNextNonce() - txClaim.ValidUntilBlock = validUntilBlock - txClaim.Sender = priv0ScriptHash - txClaim.Data = claim - neoGas, sysGas, err := bc.CalculateClaimable(neoAmount, 1, bc.BlockHeight()) - require.NoError(t, err) - gasOwned := neoGas + sysGas - txClaim.AddOutput(&transaction.Output{ - AssetID: UtilityTokenID(), - Amount: gasOwned, - ScriptHash: priv0.GetScriptHash(), - Position: 0, - }) - require.NoError(t, addNetworkFee(bc, txClaim, acc0)) - require.NoError(t, acc0.SignTx(txClaim)) - b = bc.newBlock(txClaim) - require.NoError(t, bc.AddBlock(b)) - t.Logf("txClaim: %s", txClaim.Hash().StringLE()) - // Push some contract into the chain. avm, err := ioutil.ReadFile(prefix + "test_contract.avm") require.NoError(t, err) @@ -303,17 +244,6 @@ func TestCreateBasicChain(t *testing.T) { txDeploy.Nonce = getNextNonce() txDeploy.ValidUntilBlock = validUntilBlock txDeploy.Sender = priv0ScriptHash - txDeploy.AddInput(&transaction.Input{ - PrevHash: txClaim.Hash(), - PrevIndex: 0, - }) - txDeploy.AddOutput(&transaction.Output{ - AssetID: UtilityTokenID(), - Amount: gasOwned - invFee, - ScriptHash: priv0.GetScriptHash(), - Position: 0, - }) - gasOwned -= invFee require.NoError(t, addNetworkFee(bc, txDeploy, acc0)) require.NoError(t, acc0.SignTx(txDeploy)) b = bc.newBlock(txDeploy) @@ -335,26 +265,18 @@ func TestCreateBasicChain(t *testing.T) { t.Logf("txInv: %s", txInv.Hash().StringLE()) priv1 := testchain.PrivateKeyByID(1) - txNeo0to1 := transaction.NewContractTX() + txNeo0to1 := newNEP5Transfer(neoHash, priv0ScriptHash, priv1.GetScriptHash(), 1000) txNeo0to1.Nonce = getNextNonce() txNeo0to1.ValidUntilBlock = validUntilBlock txNeo0to1.Sender = priv0ScriptHash - txNeo0to1.Data = new(transaction.ContractTX) - txNeo0to1.AddInput(&transaction.Input{ - PrevHash: txNeoRound.Hash(), - PrevIndex: 0, - }) - txNeo0to1.AddOutput(&transaction.Output{ - AssetID: GoverningTokenID(), - Amount: util.Fixed8FromInt64(1000), - ScriptHash: priv1.GetScriptHash(), - }) - txNeo0to1.AddOutput(&transaction.Output{ - AssetID: GoverningTokenID(), - Amount: neoAmount - util.Fixed8FromInt64(1000), - ScriptHash: priv0.GetScriptHash(), - }) - + txNeo0to1.Cosigners = []transaction.Cosigner{ + { + Account: priv0ScriptHash, + Scopes: transaction.CalledByEntry, + AllowedContracts: nil, + AllowedGroups: nil, + }, + } require.NoError(t, addNetworkFee(bc, txNeo0to1, acc0)) require.NoError(t, acc0.SignTx(txNeo0to1)) b = bc.newBlock(txNeo0to1) @@ -429,26 +351,21 @@ func TestCreateBasicChain(t *testing.T) { } } - // Make a NEO roundtrip (send to myself) and claim GAS. - txNeoRound = transaction.NewContractTX() - txNeoRound.Nonce = getNextNonce() - txNeoRound.ValidUntilBlock = validUntilBlock - txNeoRound.Sender = priv0ScriptHash - txNeoRound.AddInput(&transaction.Input{ - PrevHash: txNeo0to1.Hash(), - PrevIndex: 1, - }) - txNeoRound.AddOutput(&transaction.Output{ - AssetID: GoverningTokenID(), - Amount: neoAmount - util.Fixed8FromInt64(1000), - ScriptHash: priv0.GetScriptHash(), - Position: 0, - }) - txNeoRound.Data = new(transaction.ContractTX) - require.NoError(t, addNetworkFee(bc, txNeoRound, acc0)) - require.NoError(t, acc0.SignTx(txNeoRound)) + // Prepare some transaction for future submission. + txSendRaw := newNEP5Transfer(neoHash, priv0ScriptHash, priv1.GetScriptHash(), int64(util.Fixed8FromInt64(1000))) + txSendRaw.ValidUntilBlock = validUntilBlock + txSendRaw.Nonce = getNextNonce() + txSendRaw.Sender = priv0ScriptHash + txSendRaw.Cosigners = []transaction.Cosigner{{ + Account: priv0ScriptHash, + Scopes: transaction.CalledByEntry, + AllowedContracts: nil, + AllowedGroups: nil, + }} + require.NoError(t, addNetworkFee(bc, txSendRaw, acc0)) + require.NoError(t, acc0.SignTx(txSendRaw)) bw := io.NewBufBinWriter() - txNeoRound.EncodeBinary(bw.BinWriter) + txSendRaw.EncodeBinary(bw.BinWriter) t.Logf("sendrawtransaction: %s", hex.EncodeToString(bw.Bytes())) } diff --git a/pkg/core/util.go b/pkg/core/util.go index 643e101e2..dc518197e 100644 --- a/pkg/core/util.go +++ b/pkg/core/util.go @@ -55,39 +55,9 @@ func createGenesisBlock(cfg config.ProtocolConfiguration) (*block.Block, error) }, } - rawScript, err := smartcontract.CreateMultiSigRedeemScript( - len(cfg.StandbyValidators)/2+1, - validators, - ) - if err != nil { - return nil, err - } - scriptOut := hash.Hash160(rawScript) - - issueTx := transaction.NewIssueTX() - // TODO NEO3.0: nonce should be constant to avoid variability of genesis block - issueTx.Nonce = 0 - issueTx.Sender = hash.Hash160([]byte{byte(opcode.OLDPUSH1)}) - issueTx.Outputs = []transaction.Output{ - { - AssetID: governingTokenTX.Hash(), - Amount: governingTokenTX.Data.(*transaction.RegisterTX).Amount, - ScriptHash: scriptOut, - }, - } - issueTx.Scripts = []transaction.Witness{ - { - InvocationScript: []byte{}, - VerificationScript: []byte{byte(opcode.OLDPUSH1)}, - }, - } - b := &block.Block{ Base: base, Transactions: []*transaction.Transaction{ - &governingTokenTX, - &utilityTokenTX, - issueTx, deployNativeContracts(), }, ConsensusData: block.ConsensusData{ diff --git a/pkg/core/util_test.go b/pkg/core/util_test.go index c5ce2d6e8..d6f9f02a5 100644 --- a/pkg/core/util_test.go +++ b/pkg/core/util_test.go @@ -20,7 +20,7 @@ func TestGenesisBlockMainNet(t *testing.T) { // have been changed. Consequently, hash of the genesis block has been changed. // Update expected genesis block hash for better times. // Old hash is "d42561e3d30e15be6400b6df2f328e02d2bf6354c41dce433bc57687c82144bf" - expect := "472edea0e91369b51903b364e7403492a9041536fbfe145a9e1aff0ad5f18d78" + expect := "d2e6d56c734f24c294a74785023af23f20347d97ef92e7bff1b337e37acbf2dd" assert.Equal(t, expect, block.Hash().StringLE()) } diff --git a/pkg/rpc/server/server_test.go b/pkg/rpc/server/server_test.go index 28964f91d..28820a50a 100644 --- a/pkg/rpc/server/server_test.go +++ b/pkg/rpc/server/server_test.go @@ -18,7 +18,6 @@ import ( "github.com/nspcc-dev/neo-go/pkg/core/block" "github.com/nspcc-dev/neo-go/pkg/core/blockchainer" "github.com/nspcc-dev/neo-go/pkg/core/transaction" - "github.com/nspcc-dev/neo-go/pkg/crypto/keys" "github.com/nspcc-dev/neo-go/pkg/encoding/address" "github.com/nspcc-dev/neo-go/pkg/internal/testchain" "github.com/nspcc-dev/neo-go/pkg/io" @@ -54,12 +53,12 @@ var rpcTestCases = map[string][]rpcTestCase{ "getapplicationlog": { { name: "positive", - params: `["1e71f60519a68c73cc1ca5382bab12160c4967c86e28e8238b78ea54dcbdc716"]`, + params: `["70c9d7804dd19bb8d60740824d45055d117a4c51559de1b51aed0a6a127b353c"]`, result: func(e *executor) interface{} { return &result.ApplicationLog{} }, check: func(t *testing.T, e *executor, acc interface{}) { res, ok := acc.(*result.ApplicationLog) require.True(t, ok) - expectedTxHash, err := util.Uint256DecodeStringLE("1e71f60519a68c73cc1ca5382bab12160c4967c86e28e8238b78ea54dcbdc716") + expectedTxHash, err := util.Uint256DecodeStringLE("70c9d7804dd19bb8d60740824d45055d117a4c51559de1b51aed0a6a127b353c") require.NoError(t, err) assert.Equal(t, expectedTxHash, res.TxHash) assert.Equal(t, 1, len(res.Executions)) @@ -139,11 +138,17 @@ var rpcTestCases = map[string][]rpcTestCase{ rubles, err := util.Uint160DecodeStringLE(testContractHash) require.NoError(t, err) expected := result.NEP5Balances{ - Balances: []result.NEP5Balance{{ - Asset: rubles, - Amount: "8.77", - LastUpdated: 208, - }, + Balances: []result.NEP5Balance{ + { + Asset: rubles, + Amount: "8.77", + LastUpdated: 6, + }, + { + Asset: e.chain.GoverningTokenHash(), + Amount: "99998000", + LastUpdated: 4, + }, { Asset: e.chain.UtilityTokenHash(), Amount: "1000", @@ -176,47 +181,71 @@ var rpcTestCases = map[string][]rpcTestCase{ require.True(t, ok) rublesHash, err := util.Uint160DecodeStringLE(testContractHash) require.NoError(t, err) - blockSendRubles, err := e.chain.GetBlock(e.chain.GetHeaderHash(208)) + blockSendRubles, err := e.chain.GetBlock(e.chain.GetHeaderHash(6)) require.NoError(t, err) require.Equal(t, 1, len(blockSendRubles.Transactions)) txSendRublesHash := blockSendRubles.Transactions[0].Hash() - blockRecieveRubles, err := e.chain.GetBlock(e.chain.GetHeaderHash(207)) + blockReceiveRubles, err := e.chain.GetBlock(e.chain.GetHeaderHash(5)) require.NoError(t, err) - require.Equal(t, 2, len(blockRecieveRubles.Transactions)) - txRecieveRublesHash := blockRecieveRubles.Transactions[1].Hash() - blockRecieveGAS, err := e.chain.GetBlock(e.chain.GetHeaderHash(1)) + require.Equal(t, 2, len(blockReceiveRubles.Transactions)) + txReceiveRublesHash := blockReceiveRubles.Transactions[1].Hash() + blockReceiveGAS, err := e.chain.GetBlock(e.chain.GetHeaderHash(1)) require.NoError(t, err) - require.Equal(t, 1, len(blockRecieveGAS.Transactions)) - txRecieveGASHash := blockRecieveGAS.Transactions[0].Hash() + require.Equal(t, 2, len(blockReceiveGAS.Transactions)) + txReceiveNEOHash := blockReceiveGAS.Transactions[0].Hash() + txReceiveGASHash := blockReceiveGAS.Transactions[1].Hash() + blockSendNEO, err := e.chain.GetBlock(e.chain.GetHeaderHash(4)) require.NoError(t, err) + require.Equal(t, 1, len(blockSendNEO.Transactions)) + txSendNEOHash := blockSendNEO.Transactions[0].Hash() expected := result.NEP5Transfers{ - Sent: []result.NEP5Transfer{{ - Timestamp: blockSendRubles.Timestamp, - Asset: rublesHash, - Address: testchain.PrivateKeyByID(1).Address(), - Amount: "1.23", - Index: 208, - NotifyIndex: 0, - TxHash: txSendRublesHash, - }}, + Sent: []result.NEP5Transfer{ + { + Timestamp: blockSendRubles.Timestamp, + Asset: rublesHash, + Address: testchain.PrivateKeyByID(1).Address(), + Amount: "1.23", + Index: 6, + NotifyIndex: 0, + TxHash: txSendRublesHash, + }, + { + Timestamp: blockSendNEO.Timestamp, + Asset: e.chain.GoverningTokenHash(), + Address: testchain.PrivateKeyByID(1).Address(), + Amount: "1000", + Index: 4, + NotifyIndex: 0, + TxHash: txSendNEOHash, + }, + }, Received: []result.NEP5Transfer{ { - Timestamp: blockRecieveRubles.Timestamp, + Timestamp: blockReceiveRubles.Timestamp, Asset: rublesHash, Address: address.Uint160ToString(rublesHash), Amount: "10", - Index: 207, + Index: 5, NotifyIndex: 0, - TxHash: txRecieveRublesHash, + TxHash: txReceiveRublesHash, }, { - Timestamp: blockRecieveGAS.Timestamp, + Timestamp: blockReceiveGAS.Timestamp, Asset: e.chain.UtilityTokenHash(), Address: testchain.MultisigAddress(), Amount: "1000", Index: 1, NotifyIndex: 0, - TxHash: txRecieveGASHash, + TxHash: txReceiveGASHash, + }, + { + Timestamp: blockReceiveGAS.Timestamp, + Asset: e.chain.GoverningTokenHash(), + Address: testchain.MultisigAddress(), + Amount: "99999000", + Index: 1, + NotifyIndex: 0, + TxHash: txReceiveNEOHash, }, }, Address: testchain.PrivateKeyByID(0).Address(), @@ -292,10 +321,9 @@ var rpcTestCases = map[string][]rpcTestCase{ assert.Equal(t, block.Hash(), res.Hash()) for i, tx := range res.Transactions { - require.Equal(t, transaction.ContractType, tx.Type) - actualTx := block.Transactions[i] require.True(t, ok) + require.Equal(t, actualTx.Type, tx.Type) require.Equal(t, actualTx.Nonce, tx.Nonce) require.Equal(t, block.Transactions[i].Hash(), tx.Hash()) } @@ -451,11 +479,16 @@ var rpcTestCases = map[string][]rpcTestCase{ "gettransactionheight": { { name: "positive", - params: `["be463055a8447567434037aad40ad58764cb7eef4aee64308f74ce6df5a98a8a"]`, + params: `["70c9d7804dd19bb8d60740824d45055d117a4c51559de1b51aed0a6a127b353c"]`, result: func(e *executor) interface{} { - h := 1 + h := 0 return &h }, + check: func(t *testing.T, e *executor, resp interface{}) { + h, ok := resp.(*int) + require.True(t, ok) + assert.Equal(t, 2, *h) + }, }, { name: "no params", @@ -494,7 +527,8 @@ var rpcTestCases = map[string][]rpcTestCase{ check: func(t *testing.T, e *executor, resp interface{}) { s, ok := resp.(*string) require.True(t, ok) - assert.Equal(t, "1772", *s) + // Incorrect, to be fixed later. + assert.Equal(t, "0", *s) }, }, }, @@ -639,7 +673,7 @@ var rpcTestCases = map[string][]rpcTestCase{ "sendrawtransaction": { { name: "positive", - params: `["80000b000000316e851039019d39dfc2c37d6c3fee19fd5809870000000000000000a267050000000000b0040000000001e2b5b6f72dc08d3b0e498c6466928031333f0b242cf158a547b8c4a1681f8f2d010001787cc0a786adfe829bc2dffc5637e6855c0a82e02deee97dedbc2aac3e0e5e1a0030d3dec3862300316e851039019d39dfc2c37d6c3fee19fd58098701420c406a41c10280ff445c36fb16fe94fa197c9ab9678d099c7c1af5d4b9269ac19bbba09e20f02f53582bc340b4ea77539c28bb2cc03902e77d5d37febabe902aac98290c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20b410a906ad4"]`, + params: `["d1010a000000316e851039019d39dfc2c37d6c3fee19fd5809870000000000000000aab9050000000000b00400005d0300e87648170000000c1420728274afafc36f43a071d328cfa3e629d9cbb00c14316e851039019d39dfc2c37d6c3fee19fd58098713c00c087472616e736665720c14897720d8cd76f4f00abfa37c0edd889c208fde9b41627d5b52380001316e851039019d39dfc2c37d6c3fee19fd58098701000001420c40fadd2f9ddbe9484ef3577f131b0dec21b46a0d1c2fedd498ec258e378683d35d7159fd21120d832c1bff891c36bd765b50546ac762db4f4735f2df23ba2ec84a290c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20b410a906ad4"]`, result: func(e *executor) interface{} { v := true return &v @@ -647,7 +681,7 @@ var rpcTestCases = map[string][]rpcTestCase{ }, { name: "negative", - params: `["0274d792072617720636f6e7472616374207472616e73616374696f6e206465736372697074696f6e01949354ea0a8b57dfee1e257a1aedd1e0eea2e5837de145e8da9c0f101bfccc8e0100029b7cffdaa674beae0f930ebe6085af9093e5fe56b34a5c220ccdcf6efc336fc500a3e11100000000ea610aa6db39bd8c8556c9569d94b5e5a5d0ad199b7cffdaa674beae0f930ebe6085af9093e5fe56b34a5c220ccdcf6efc336fc5004f2418010000001cc9c05cefffe6cdd7b182816a9152ec218d2ec0014140dbd3cddac5cb2bd9bf6d93701f1a6f1c9dbe2d1b480c54628bbb2a4d536158c747a6af82698edf9f8af1cac3850bcb772bd9c8e4ac38f80704751cc4e0bd0e67232103cbb45da6072c14761c9da545749d9cfd863f860c351066d16df480602a2024c6ac"]`, + params: `["d1010a000000316e851039019d39dfc2c37d6c3fee19fd5809870000000000000000aab9050000000000b00400005d0300e87648170000000c1420728274afafc36f43a071d328cfa3e629d9cbb00c14316e851039019d39dfc2c37d6c3fee19fd58098713c00c087472616e736665720c14897720d8cd76f4f00abfa37c0edd889c208fde9b41627d5b52380001316e851039019d39dfc2c37d6c3fee19fd58098701000001420c40fadd2f9ddbe9484ef3577f131b0dec21b46a0d1c2fedd498ec258e378683d35d7159fd21120d832c1bff891c36bd765b50546ac762db4f4735f2df23ba2ec84a290c2102b3622bf4017bdfe317c58aed5f4c753f206b7db896046fa7d774bbc4bf7f8dc20b410a906ad5"]`, fail: true, }, { @@ -811,7 +845,7 @@ func testRPCProtocol(t *testing.T, doRPCCall func(string, string, *testing.T) [] var res string err := json.Unmarshal(result, &res) require.NoErrorf(t, err, "could not parse response: %s", result) - assert.Equal(t, "400000000000da1745e9b549bd0bfa1a569971c77eba30cd5a4b000000000000000000000000000000000000000000455b7b226c616e67223a227a682d434e222c226e616d65223a22e5b08fe89a81e882a1227d2c7b226c616e67223a22656e222c226e616d65223a22416e745368617265227d5d0000c16ff28623000000da1745e9b549bd0bfa1a569971c77eba30cd5a4b0000000000", res) + assert.Equal(t, "d10100000000ca61e52e881d41374e640f819cd118cc153b21a700000000000000000000000000000000000000000541123e7fe80000000001000111", res) }) t.Run("getrawtransaction 2 arguments", func(t *testing.T) { @@ -823,7 +857,7 @@ func testRPCProtocol(t *testing.T, doRPCCall func(string, string, *testing.T) [] var res string err := json.Unmarshal(result, &res) require.NoErrorf(t, err, "could not parse response: %s", result) - assert.Equal(t, "400000000000da1745e9b549bd0bfa1a569971c77eba30cd5a4b000000000000000000000000000000000000000000455b7b226c616e67223a227a682d434e222c226e616d65223a22e5b08fe89a81e882a1227d2c7b226c616e67223a22656e222c226e616d65223a22416e745368617265227d5d0000c16ff28623000000da1745e9b549bd0bfa1a569971c77eba30cd5a4b0000000000", res) + assert.Equal(t, "d10100000000ca61e52e881d41374e640f819cd118cc153b21a700000000000000000000000000000000000000000541123e7fe80000000001000111", res) }) t.Run("getrawtransaction 2 arguments, verbose", func(t *testing.T) { @@ -835,19 +869,9 @@ func testRPCProtocol(t *testing.T, doRPCCall func(string, string, *testing.T) [] actual := result.TransactionOutputRaw{} err := json.Unmarshal(txOut, &actual) require.NoErrorf(t, err, "could not parse response: %s", txOut) - admin, err := util.Uint160DecodeStringBE("da1745e9b549bd0bfa1a569971c77eba30cd5a4b") - require.NoError(t, err) - assert.Equal(t, transaction.RegisterType, actual.Transaction.Type) - assert.Equal(t, &transaction.RegisterTX{ - AssetType: 0, - Name: `[{"lang":"zh-CN","name":"小蚁股"},{"lang":"en","name":"AntShare"}]`, - Amount: util.Fixed8FromInt64(100000000), - Precision: 0, - Owner: keys.PublicKey{}, - Admin: admin, - }, actual.Transaction.Data.(*transaction.RegisterTX)) - assert.Equal(t, 210, actual.Confirmations) + assert.Equal(t, block.Transactions[0], actual.Transaction) + assert.Equal(t, 8, actual.Confirmations) assert.Equal(t, TXHash, actual.Transaction.Hash()) }) diff --git a/pkg/rpc/server/testdata/testblocks.acc b/pkg/rpc/server/testdata/testblocks.acc index 094f873fea6ef1e6611cbc8023b1e14815a71a44..eaba989ac469b157d5dd7f1f02e58a7e6c4df32f 100644 GIT binary patch delta 3297 zcmZveRX~*M7KRyyl%X921&NW6+LY4pOCvS3gp`OffRxfW0+KS+03#(OAfX_e?rsJN z$w6x9?ojZ6d!KW4zKeCaE}mz--&$*DB$1*zBm@Kmn5%O6cz!$-BM}SYlFJW&&+W~3 z-d1!}F1mbIt5!{-if#2Hg{e{m(Na7(k79s8Fjkp`xx9S~kJsnBCW4<9vtGij2Cif^e*DGk@^Qy8WZi^;QqF zxcgtnNi420aW)zkYld=hLjW(+-JTl2o}8lYXnkxBhbLg4Q&T8!RrZr5iK^9(RFyhwD%q6mkOcltR5Gg+zMoxZ& z0O3Xbw+~A`h8GQ6bx-qIL)Rui;TNzLE1 z-ND&jZc+c#nfg`*ycPoZqgHM=u7zgS?%VxV73`bLUEyU48xMjp?j1QIhn84l+ddf$ zc?LquMvTF3s81hhLJM3M#eoX&pnt^iVD@pv6;kjZ2#gM(xIys;=VeLsp+w6NzWyJq zfs&IZRuKaGlM}8!3#kMN{1$$QXLqk%h^N82WhSXijE4AkG`xNmAL!>x#{U$S5 z_&z=R0~)_)p-NSJmm+4A=kc%L5I`Y^=xixgC*-Se zgdBHNWM)*{6!N3Uj=pW6c0M8@JefjsoL?DFv z_T!Fcz~ADCjmOXVMF2%XF~Eh?UrBy@+~TSe;U#(&BzuJvVPfqtb-W9=;!b;_Vzszz z{3qLZi{QCx4x;_3(-&&ToVK+}>L~U>rw_?&3hIoT%TZMrX7eObN)nabMSpd{Szh=KB&tpP z*0)DVd_4~QhK`mb1_vDEMl5()KIcMi@-eCtN|Q##Qkxc8S;C(GXZ!OGbeK?lA1CXy`6_;<-2 z%)q}EuL8t^>@J>c>`ZUDdr?ruP`N`lWxiR5Pf+Wn?9hXPz+(fltcGzs;xktbKpA3JR&T zx#cd17m4R5LSODL)Hl91B=V}{w+HS9CFA5al_in$r_>NYbKKK#LN5w+ihmNqpd}l% znKVN8fdSw@KUz}r#W`Y!--mw22PNEyxv4NOnanHB*~I1TX14KiA_)Q4!lYb|QnTew zskz)UD=IzD7jKmx;*tZ;KB9cnO+ zjZFBsS&DYijQ775F{DKxCX7WXNDp`$-tiafB-_2M&{vMm*PDr-24VC7U&op2<+qvu!es|QZ((D@A`G&;((UIqWoar)y{|O)XDW;C$T(CRUHF`QT5o3P!L=NW+r^2*720m@fSYqF2OHkl`96 zm8dEU7Abp6FR=nIw9gr8`L*#gyNbA#w*Ucg^F{?g8f2?ZE z{%h6S^&-O7P3F^-8d@%`N3^B1*b>W;;p;3Ct)WkyoDdB(8$E_K(EG2Az0~Sx9(p8% z-7b3n6J|>DdPOcBL%FB0J&yLJfFZs7UZg#fDcTe!?0uG3(iaUsfBsps1V3U_QI$he zvlfy%l93Vq_ojyc?3}ohAlL03B63N)Z#B(&i_*cuA6p3l>}_taXe$v>#F)`anJ5fR z>;`P-Xv1+-rB9k(j@r>f&!O_RrS!cY%F(@!htjwJ_ zmthbTml_FCbl%(8&;Cy8TIc(cR9P~*I<`Pd;nt`qowqg4C=zAQC$IR3iow89@%$p! zW8#mq%bS7hs%Hj3$3sCRq?x(P5{HD`atUd>%PeWbM7M4a(E!-s-1|UX>S$f2b3=9?a<1yEjt$3#>&A&S7oPK zbF3u!+QWnfJ%EqR^kKW`t5CIh+%HqK@$GJzTI%QxT?c{rx)kMU#Y^>3lrW^@sjf23 z(>7u4`<1$3!xrWGO%H;SOf{8UC;Vv|IrCbz%S^0D`c}IW_d(*(=IR^14xW+iQ0d3QP4J^3!~tEKhk@d( aQBIA;-(!!`!`k!Xa`l}fl{~%vNdFJ&xfY55 literal 114026 zcmdShWl&sUvnXmT=-}=IcXtR3?(XjH?(P;Gf(CbYg1d#_5S-w_Az0AEcP{t-x%&%$ zH&X>uRL!g!YCY5MySjVzBnSw|Da6aKmxpM^q3?+%B7rCu{7G3|=1tEaZ)2Zt_igAiSscn9}JB30S`l0)uWlpiS> zo)fqXqG^MVrJ7%*0B zyzJ35z+RNR@8Ffu9V%RmcY+wu(H{1cgbMfwhQ#gXGl`)Rl6sQ@PceW|z$Le6-ny%x zawrAL2Lu9bUtUt&uJRNbyn&o*J_YfO(L-xx*c5x;xN_P+)sb&1WZdxOCH00hm!Mwj zTbKip$9mE({6tnhEh!Lo#S6}D{at=By?~G4ivXx~qusb4Zt?U;;=|jKy-q(Nm zfBbO&SGsoSwV%~zvpt#R`oJ<730*zEi^|VQ+(@prA7}Za1T|9JIuj>6?EX}DdiNW1 z%#u|+SO831@uU46N=;m3^e6y8kuof7;)~tX5F+s&DN&{>7AeH@Zn!@OyzR<(i9Oa? zvbZPp-`ROJg)}<*{{}H=wqrd7wB+&%fc07x_`8Xp1AyrvxAgG0?0S|#o+WFuSbJ!+ zzCn6-D@mzBlLhsU8?qDm-Y4trq_9G5q4;r9SP4quaJ{gk3Nq#JPuL&FNB8>L5(+Lpw4-bgg<}moK zi_;!lUaq_B{jZdc_#fUck3-^4igRvZyW)J51$5&bg;_+TYCxumil<;(6q;0Kfxm)a?9_eF0gxaAl71G?9aEqS5?y zTpAh#M+}>wfBc-NhCmyj1=S?DSIVlPM6fRv%!cy=Zxj4+R7+iVzW?tGd7%Ga$oqdu zT-?rdM@VNTz~-nS_B)YuxEovFwry08uqq!}dqJ8dy+s1;l?3<;um2t!Qav#vuvCz- zWPY92Rl7kF;HW~weiH#PQQroYBawE7ms^;;1Q*l!YPe{=#--Xvdd*UF?IdJrjaV5# zyHyUY1pt;O1&c_*7p7hRrc)ZPzcuLKv_*S|#q{guRj7T5nyB6f};oskA9 znp%yqZ+R*%5p?0q44=e1PdGoK@mGxp$93z9Cs;p8+GKmpvs2Des+806OvJ|Q%<%?Q z@uE}X4*+o0Yl@a|s6rw6OKQU{tUD9=vq$>1NcfSN2C61n;9{6k`h#lkjzId^?{cjb z&fyPb=RL;N^A!ghLBP&2cp2j5w^Ly+e+(ZsnV!H%_Npy(%K54SU9X^ zWP`ck3>>*;42PUoGW{n-CfEPq}o7I5L1bj&b>c^+haZNw7L8j`vu_+%>WY325t%AgR09rArZpN zI=2LK4OKcYXDZjL|I=zWl`6q9haXpH5gKNz3-v7$7_THg{F4MqX9x>M=KfEdx{*rP zb25iZbNPDX2NPHot4k@tf=g2G>ue0;QJC2gO)Lm~>BO=sORZKnffdo0l*>KeFAW*{(6?aCSMjvojb4;){gk`n~^L>SJZxXWt3&*=Mkb z=V#jo`|Lg!-frS)ZUAs;8-lDO)soT{}u_%R}zr_B#|}8MwvML$x#KVfRtHgcZ*KL zhWIn&Rj0|(l&Y5*f~xcGuS6Y!ZSE7_6AK&okIQ9{RS!*#Oe<($A5BqfYnlMSpv;Z^ z8+k$a>4|CIc`PEu-b}V$0>cWwi$0n!Ck-sA+fXMmJx@logZIvr2p5?9bNhnr@IBtW z6&MtTdRoB}0H8m|{EznjNLD;K=JHsfp}jPoHj2_^KL%5XUWTRLWB5z~O$_Cl-IM$E z%yAkPJbHsc+>YnXH7DgCVO#S+f+qk#!@(#wzDX&>1>)8ViKhTlAlgj(6nM+_1>V&{ zR48(oM^u59J=5eUv|CmBM+-zE08Cv#aXN1;%M4fH0t^x5J0T%)Wy@QocU8w9q_ofW z$oePw*qd2zP(GGpu3Hp*9cuY45?HS!p#Djs1RF<6A)45b2>hhkZ*yqUWkC6i+X4_7 z=^Xko46&hbQ7UpWe2r-&`FMZV)m!I4Go%sQxy)c|6ZK0dv!r_sJcmJGy zUVMo&xnpKoVDa&#cq_7gPEdntx`1omap^LAO5WhL+iaqpe$gUCa6vfDI0k-z#v$QI zLVX+jr{y0$c$`pbavVN(0H9D;`=oS;_s$20s*AG@Zks1mY5%kae{yNVzOFW-HT>-y z8fm)rng97zmkCdCy9?0L6*sm>RzaWKb@h9Zk9bBJMT3UsI=UfeV?PX z36|&2+H%OYD@niBnF0@5oNVDh6tDB46~HK(P){vNh!6ol&5wV~rL&%`TZ!pxikeu( zz)dj{=9RHZy*_kLLm&0g^o62w8vVTbaOs#-snrHJO3`TQdgg)UTjMHE4{24Q1ppDt znXrQ`ZLs8jEC{KA;Y#6I}oRr^ks<$&XJDF87c=EPBRKtaT-O7_2lz8GjW4p9jnHg$qBngBh!1 z)PmBJK$b8|B%9Q=*lRM8#az+U&l3N=@=iz?nn*f3w!%peXJ58XILAY~0X`_DVqVJK z$lM*Fj}qOyMFQuQ1k684jHE5qn`1dyL)C(Ug;HzCu6h&gJF2L|MmIY|41$CXxWkeP zTVCvg%Yl>^?#qT&fj<;6{dMp&S%v`Nl7$ap zC83KXk46`jqVvlajf}k)8Vq$NWTT2&Spr=i9!&^5-1it&EeiP}C>a2t%N`V&=MCKw z*eW+DS|9T^?S3|`y(rM7&&tf_+UV+h1X~Q7Vpzg_hd)(q-L0@&5}?T`L~NoQBx9@N z(PoMQ06GB-KSnVyZ`9$#k_;~|hJ&Ad)BOd3HnV+9Dz{wx%xIb+>-uu#KJ_;QL!bc2EhBBdE(rN z=>*1#&2H@+y}275_RMG5o-e_*tlscVT)U)BvDM%7`};(F$cLkI`Q za0tago^!kh>O7V3R?k zL$`)RwHlOpOb@s(w&db7~ zI)o^gj6q?sKq^HUczl^!PHN;03a`WwiS-!*6%bzy*bZ-z(F_?YK$|F%EJEB99l#1bur?2 zM>^3;oEhuon^Hyl)*$Oqvr}c+KX;4s>QvMd+@=7a_XnQSkC7qXM@P!A=tm+t&owei z9XkWQvT^;a-LalM-=pZ%i!SN;E)m0LXVUerEd>efzsOH2{eX2GH*p`VeA%FGjgGkw zb70vDm0$EkrlZJ160P@iS4|r4oM1=^jCiZ;)9He1x9j8Jn2;JD?ALvBaqCc$tIgbw zl0Oq6>ui1}B)*x-W2hq23eud#^gikzHYzPtZz=bnSTK5vG4!OOBfUie|CI#bpCo=C zWA3&@waSk+Kbp_|4Ba@*u|VCQ_;bo?{+YPrfw^CJ!DRtwkOn_p1omnJvQGeos&8@j zI_m2s&_FtxaI6pj6sXU|*MjhG40iwf^m7W6gSVLq8Y<71H`%Nqvk?5t_jTV-o=IC4 z_t^IccN_v*Q`Z~)HAdNjelsFYpL`H_@BqL(EF^|UsYfRumPPE7VmcTLazZj@x;vfH zJ;+7nOcL+FGoj<}s+u)04_VN86Fr1@Y%cAF&y6S34~__|bf)7kdx?r?V}hS<5k)CZ zx;ub0`Va_C(yw{kEEp{qjk2tVcE^7LGYR#knQdy1quceA^whT zfPE(ykjyCEYhtRp;vnWAD6 zb_6`wTHiFqlYR{sJ(93d!HN~8Zim{JDNdTJ?&uB^Cje0Ic5dEz`@Gq6WG+uYou};g zB2UVbbOp?w6dn{$hh6UTLg#uj6GWg@jMXH>SDc?x1P<=s35l~` zmL);e_BWf)d=s4Fz3ThFH>~?&R*8P%oohbe_h-IEg7B3D!aqs;T?!qTJgOR=NRCiS ziyluW&BEb|iALbYt4pbE3I6@DIPP3G8 ztp(Y^=xlB3_n{Nj!l_&jmPsL0OIc3otI$ga0ADgA+HG6y>%S%gj&$_5N}JcOMUb*= z_eWGIa6h8Uuj1@C-nU3&lCRhyB?;bt&sb1UB+s(pm!0a-O+$)+19>MT!i^Ictx736 z9-12|DdtoPkp0t^;)0y5T_?v8KJ$tcy+wlPmBfEa!2dm=?bV``h3f8OV#s&4lfFBJ zpPz?L3ui4NlZ>2?o)e9;PGDO)L@KP^u_S)z)u=koG%ovLhc@(=R-z)-$Xc&`HUPM9 z-1{eAjX&rZ0WFZP=ZWmHDwtg?YYfbR!|!eZkMIO9&nA?lIlqZF8~3oJiyb_M9Y_r{9AVJ!0hsb@l#8t5s{h6B3_OoQ4W>g2(jk zxWBbQa=D10>y?Eou>YBgvKiB(c&d1d#K%_>NdF|E(AvJ1(V6q(e6}BnBqxgkZ)Ur~ zxr1QN^tRWRSknBVM`rElCasr7b>eph)r^sP+)lxlLQVUi%p%VFbge-j0PrJqP2-`g zN2Z(ij`gW%z0VGYPO(QW*$1J{@3V4J-B>*>YUyEKgbFL!Et)(Hf!&)ySQ0#LVeAX8 ze^O^lDq;b^n9*n`y#rxcmfRwP8E5F_@o3nu<%N??5_gy8HC`#8{lb}hNp9p390Lm@ zLVr*>;T13tjC9lz1(i#Sx{0@u06>pj?szg>Rk|YnedqyY4<2?!Vx}I+8()*$yJ_u! zK+1bw^A?;SBXV*4PGSBU{!@R%sP$S4p)G!v3y9gZt<-lyf=HbaI1(Io6&2TV)0tD% z9GPZG+i5M8>I^eaa$nxO^A-u>R}#qoBoP;f8d*kL*UE*qgq?f9bgD$#F?P9YsVA_h z2cszUU_xA-hKSu@mSn8~g14f~E;aOAn(w+aZ5|zkOM@wUwg~_-q8C)l@Q3RK?(nLI zs~)*R=^l)yQBxWtW3<#kJ#-|H0X&iPbU98tp$%3odPAC#_Ad;byFFr`V_~{J>f1!T z6s@+_XNY|QCXCZ(zR_paTP3iQ-s zU`;h*3Hq1`(!VZ`2E3Hl#YBjdGz`v7$fQauDny77Y-mbz?R2Nhv$>~^WKrmV z-gZ#4-a|;{XgW*t2fl9g((7|Ehrev>YU3;335n=$Qo+)HkJtE$42L53@3JsSCCOpPOCBuJ%b$XeV!J2nN)57z-RYmb7%2*gE^oD2XQ@uHFR zq9H@_t8`P#t>hND+V)R@n&Sv(Y*W1=?tyCGlJG1Cr)bn#5VSK0Xye&(}_Z9$<8Lyz5P8HrvKXvC@3rT!m^Vf{VF0gz- zmH4h>A=TmS)Tb_4W%F2f`KI5-rIhm~|31ORus2GbVuY^fdt zA-Cp!i5E~Ufc9f$wAxU*5-J;Ls8MjOZ+u0AAMjwW@G1|&Fs(V9|LEjf=S0z7tvWZ9uKa6ivhq2+nWz=I>$VVd(lRr5r`h|#oaC>`1SD>XC!R^Kv_kV0RBC9!|m;=O^Uz% zb^Wt$E03aRR+opFq0X>oi^HUTUsIT`u~*T>ptZyWFc-JvAq^g}lG)Yi7ryftypRaA z25Z1^qOu}YnRot1{E=~ZNyY;ZIW{_I_7kK)lRvV*wxrt)>tpT=AuC5{)XFnh*_RC} zb>pw(GhFZvpSYFY2?^2xgHrUd^>7&t9(S{c#F|FZSrqJ zNH1^oQvsO7g>qO_72^CCX}+6Ntmmv*md&!)A^>0?yJG?T0jIb_`pjmOn)7pcYDVK_ zNv{TtKH0Fz@K5~jw*BSf!|f z3O~rlK5r>9NB%dzD0uKl?28=NsQi# z3K>ib{Xkk>?vCyyGy4WofkH}UI|5E~v$dmRRF)|CDOZrZ2^Zx&K)14CN=j0K)wgJ} zvWoc#2UVn!@EZU~LwF-Ndct;XM2B!K$;(xs<<<%D?KAdL`k2vERIs6Aj$wK_uH_ae0I&rmb8QuyVToHcsCK5D^KjJu!;^3Lo{d>f zDoA|cQF+s}%*c~47#Jp9zIZ=DU=rNJo^?-(r2RMXJjhMA(n|oa2Hh5c6CW%7=7$#z z%n`eNslx52`*kK1TBV0fAN?e1b=U4unuBWX>2#@p#`E;>!Pqq~*>qVY5T<)oNu>hO zcR~UwVO@M_0(9Uht0WpBH6u*uTtn{`2LJ5zc0}Tuuj0+FD#}+9|7k`4?|F%%fMV0k zu*~*;At}`C_07?iNm&K|!`+f?Nu;F&;rs06GGPPFp$ShHEvwJIk8ITU;GAs4C21>q zwdsYG7v;zRAmEqK49d>VMn=$`2%&8z?PRZJGnGv755`?ydJzz7p2bUdtj>b!D>7DL zIl^OZ?3twB5d85cyiz8JdIyFU(*WQR0!2?mE1Pq&!0@ORU~rS6_C~x%L{st)CVnkN z76YQG(e8$R#%PWx^puXxgU!6N_`bN2ZkDnae{Rqx#*vpwXfPFrMwQLkOc;K5f(~Ra zlE<;M!N6c@WvpndTV6}jaXQ#sBd6vRr1CG6W*7~DI&88rwDXMH2XXMLJ-^~%VM3#`()R^#b7VTJ97^Lm{+gWo^@ipa$+l6n>P1CQ{PLYoyoP>Fl!xT z(pnvT`lopg(Q>#0NsWMOTI-#byry1Lv$qxw>Q@rj|0Hpb+Y*5IajCAzs8 zD?$UP$+fL6XF12r7X0`4P)l+57I|U(h;u}2qcab0r3+QLLgLWuQiI_L5sKuOD8cx> z1=-Lk4Pj_E9!+JIEmNZVkOrr(vCQ0_XuI~qZwi<-ZPal{h7N$$h^We#>@r*64NDkg z`K0D_ZL?4p!As$cvDOZG3h`icFS*sKXMDFL=D7xx4i=>1lhw@9r~{VVxK%@KH#5UG z9}b|l685)1{>W=+zZUZYYHl2Sgu!J15FD8_W>2!57*J2H-|yzeUXXZ1J7 zGGT%V`|13XuUFl;O+L-+CJAEqs8Z^{SA^2n$Z!v-p8h!=&naM& zIhZIJ8ox#PqOY$b_5)wo+ewO9_Nfk@J z`8JL1hW`{hC&_r0L@YxZ6o;o1*T`5-v%2l3dK)F(WqjNv)2vqZzC`~x3+c4WUx%0b zA&a2(rb(W?YT5LnD)QqQpg3_kQITlZ0ccQ_30+D3qe1@6XhHZ713kqYEZt`0kzp+I zBqNPXe?m#oX^2m*UyeX?RX(%L*ABwpFj*X#3jaw|F!#HRUqXW_)C&Ac#qRls2*Cq) z!e+N*!4#fA;FLAnMB@G`-uu*g!qrsnok=?WM5tJ7u z4rRFJY1QsJcj+w>bgv}v{z(E$!K31c+cuWKU?f0?4qsgadH|RphSi(;{g{vNV zzXuDWaR6RVZnIS$YGAeM5h}wLfnw}TkH{7phD!zjT)vQG_Mig(-A89OWl1Xv5@J=V zyLc*Azx~7>oPNhin#Mf%{Zz53-2!o;dWEXOmKR4GCVaqPmb_N6#JWK_;!*?ABsiqHWK-raGr#;;Eme-eh(0fKL-Z(()SE1edV16j{0;sm@aQi z#DEX5nNHRNfQ$S}7sVir^>wyS!+zi;RVfv+Mk^@*1M?lsrPNLsv>!ln5-QUuXOn0N zWSsf~6;*Gylf-2d1}3i3!FV@vhIg`XETQJ@UjxzD0uml?47jNlXRFD{Y#K57aBbbOan9L#PT{u1%PKX@|%Y@a(*xTMz>MK)a{! zF+5aB*wNLDXx+!w$spxc0ZtVt;lHshYw~hJ`|;%eBAF0{jl&n0`(rr_GEz4<`25NS zm$&7TJc){LHN^`qtlh)gIq~tJ_-)U0FTUXr*~wihX_;&u>Cl?^am;EaW>cEj=0bk*gcuo-%b z1j8!{f`5`gF}m?yLoOMdrqEu3P{mI|jsV*HhTJ4&y7BcBjKe!0=)dVFlNv4mO}4eG zDTl$DTXK3-?I@gxUOR!!N*P)O0DkTc2vnVN^3;(?rDpUH%_vA?%>CPPHKC2~&fB2q zs-&VH;TM-_BYLQGqskb}>0OK>-sK}&>^1z&r`(p8>!s`!qp)I$^EogF{98W7uqNf2 zvBjW$(&i_?%AOX?$ZT@YBNiPzbH&aGh|%A9e!$Og8&jM}KpS)>&OYwKDu?1rv)|o# z(`P1Og09nfX2rg5Hnv%=Le-={9zt!T@B*qL=|LR&XdZ4?4RC7v2VurPg9wMU(JKhL zI&3@t5opQ>+o*XbQ3B7xOh)}rD+zcbnZ+QJ_yZGwd!CZ3Pb7`=D)p3vz2GepjISgJ z|4Cvg+jS9YD^p2tkD(?N4WgUbqtzOi+6AhygBMdE>#U+$v~~SJw$d^9aEZ#QRo~E2 z7Mo|Fj`|x7P44L%!3p!r6^F+t4ee}gcQI?MXO+=)GOZtRNNmO9OtDm38x4*ZWR0(^ z8WJSec?ERi1VM3)3brnE7D-U>*(p3lC`!Bk-YKp}$O8TjZXw{j# zyd|(EjBT#zz5sxJo>x^*j0~U?a{8__7|1CJw~|3f)BSV4o8>5{2-csjl$WsgadNF= zRr48VKdlLS?vWjAsW#%$d0v(CccSgQG}@srcyp$hu$4)RpoqfCt@3++%f6@PNjChY zwJW@Qqfv39sM9rgPx8@UAy>zWyOl@zlr#Pw!3C6cP1?G%N)iAh(#TgtfJRsUqbKU{ zIb3{+#iT4~cGwIaXM&m^$1wssG?JA^k6nh5=1)CQdG7iz9H{F8ZF}T#s+O+`+iX~j z?<7jNpAhmA+Qnx18tRJ7MrN~d!+jT;eAd8*0M(omHZ402g!_^q?MB2 z5Nohoi)X$tCC>3pi1T0kMR8nnEtlf<%OecVuQj9LrT5ZN>?4i-T15wzaA*3erD(1S z)BUfOOFPZA`|>}bnt3{`(WCc$c<#TQ@k6q*;0-g}Y4svk-QZ5Vko{e44@mpo35lx% z2F1gG*54S6-u4LFN1S`EPtU3?ErapIj>A1Lfdp@nV0k4${7(`sje#-0j29Ar^R{_E z+|{-SGGg`$6JH*e8_5kgWv^bc#jY}~vniKxIR!+(mq_L%bIyWo1W?&IE z`8ZD=GKOI$1x~p+^^$x1a9&&zHE$|vw#Z+d+SnOmeR;llj`fH7!9G?jg)!0|0YjjS z#w&t6O422?4dAWe7NUl0VS@>$aAo|_zcC6I0DRW|yK5B7+Tg%$7~soef{-6o&PB88 zs|qtbT$-)HwkuYhVRT9f!RnksH9mhYm_D66+r5u%JMJY-agw0LQu|Iw@CoHl-c^s| zoH0qtKuO72Kfu75S!1J(8Vmf~I8=@keTxL^D+!W+l3*6|7C0EeX{xu%Cn)GJ@Ig!R z(5xyqBH~h%u6c~Wc5jIejf3sE$O#19iE4DF>DUcV+d))z`_AxaNfuLJ(+U8#%?W5y z;BFGQfA^9-LNTv@gkVIne`J$qOQO>G5o<0N%IgW3tfXJ(G)3V_kthg#W_I%dQ4^BC z;!c-8$g7+I03lqQ_j#=n_>y52zG99Sn^VQ7B42jQq$H|$5od6W9 zGB#X8SuZ+CHXuamj1XAz+bZ=@p6w0<0(B2?=XTCQOIoON7iOBPYBv zrbrID_zyRS$XSu-m>gC@Vl!`%V0$G&`cD!ME&9L8V})0_d;Giuepd%L+=ffsX2(W6 zSX|err?Ip(%XLe(R{DiL>qZG2TMA}bPW+AXRT2_~6)mXX_3bHmX{MFdIxn~YoA)v2 zJQxmEei={|Y4H@G6om*Os-nc&4u(G%=4dwvu5=QzVzW4v(@*u$KNdB&+zPkW)I8$j zpy*3~wFQ=5%XMWj$1#9eN(K`I*1-Nui`PcDnsYWzBZ^CtjaAhGErD(A1=Sco#Xvq)Njvc{M5py>8D~0c^e2`?ie9AkMPSchv8MMBms3MVP_S21Z~}KvbRXEzmg#PCkeOX&#=%`ewH%wRFX>i2VcK!KUTnl_pZvis>gpMSb7_Imk-=Bko$l|gb<2M@TZ0NK${ zG-@jz`WW?Z5AjpJKQ21?P9-J>O!RgXJ}Yg7`2{j0e<&SAL$8kRb zfko3`c>p#|cB2SPtP~JeUp!U8Ls^I=OtU&aNeJuJp8dee_zX=eYwn`Rn2}$~Aj~h^ z*-7Vdzw=d%O*sevbiHcyQjF-Sf}(q}`C1UtxZY<&gC1Vlx|scpiGr-)X+PO7+xYj_ zqA!vqlol177rwN-rmr1h@L2-3_9F(Z?mHo&lE|@kU3d8NNmaQ>*&?0>4cgD4+1U)h z?p7niBiNMp7731566F6Rp=H#_6Lo#o>zqnTsQmmeJRP89kUl_=e$E11dDON? zLaBq+lj&dSN>0Li7N27fGN&wPz|2kZ{`4rR@G`54Y1`}`PX8)yUNNqt%d}Ct*a@zU z;w#kB(nJKyhy_e;8jr5BUTtsr+*IFag1${nIbXVAm@qK!%!k5Bpqlt)dnsQ`|H$Kb z2vxMmqs-`1iZxr<==dqhHWJn$oU=@|-<#qWxM-@)AW;VdbyIPpbqO3i{2s>qM=14& zpNdLzf&gIVu}YL?!)ivQO4Y2NrMLgaTt+V+vAr=I6~52Iy#kB9zS>ZKrV*_`h@9m8 zo(Rul07EG?26o3Uw%DamM*f|5LW23uTX$)I-;JPbmt2P7F<~J;3ja&DJ_3?S?&`!!ZR*oO4 zEQw?dV#=50(_S%Ty1~LX%uJ%@!D$_+p;HZq2*YmY#>&vRFO^WXQbZ>f&wcYSQb+V| zZB2;3IoJoaJ-=>|Kg?0q@MZi))2)}@3}&5f?4_l$<}=#+30;H;mz+}li=i_8uL{!( zOOLY^4B}+e@y}ynIL6+nbW$!o##$SrIAJ&CK1~pgT9&`C0$41M#%kQ89o@jy;qk3* z@4h@+xh`b?vH7^O+44?EtQR6;uOu{4WYs4Dy-vUbkx30!+jzah6YC~5+gU%nxo~j3 zlA!!2i3T0jW{<52I#CwXPL3z)zKw&0(rw;lM-9$jn&vi8b{M*XLpLCmLsAAL17_c} zYgnF?CqK&<*AX3fLZCVEncM-NtqqlXX#NK*!XE2+AX_Q7<4d!J(!TY}d*3Q z@;@TLhdB@<^#Gien_35SjHEJel8ljjAJizOq7$zrn*|8e)>tRBBLY!4CqdCj)@~Qo z5go3nja7Yi-wBC*fFQj_Xy2h|jS1M!7Y+I=+-3Kt#ep5MiEBor(7{lYjvGQ5z&!UGHYGPL>{9ewxE~>rlZ?9{|Y&2-dXCsJ7xc&zN^e z)6iGnY=vt*wQq`i>71-OIH=kLIV>|fkl8}`mDEv{7BmKEqUPK@P@VO{ioIn3#@Ia< zWT)MIkk^Ln5|LfGatYxL8AvQ-FAzTu@&o`G7+1@k2K}bb9CtQXdL5%oN}lYCt!NV( z_NoFpwY)25Ii)^ca>`-qb9v~{+EWZ`rIg&;SQnq~^szuZPJVo8_N!0Rh$esD6xFaO z^mYt(kkDN9`^rI?wbSy~lU7f-JyQxD-DV3#yo4E2b1=z;F-*y4>Xg{vugdNU1laGk zRrYs6;^7tz_BT{Z5;B?uXZ=-8aP^iJd3haPY^fSKA5Ui!=v#XUo>vmo|0GepW~@W& znH}J=q_UEQpLXsmG_+8JWj{pC8OW2UeTA{aCE}!+r!|cZ%1*vW?G9ZdSJY+E$zQU# zw?xjo*47RHq66;4o}%kxUuKp`WVI0{$~9{bX~uEr{S8v-+rif{vt6upe%K&liTMV) z(?~)vQdZ&9C!-%WF)*Z)`p2#80?7Etix*nY&zOnOQoR2apmzsE<@D}pgJY=%oBL5wy#gh0dJV)eHD?RIr_)bWy zCqIi~c80GjOwW}3IV3Tq&@43o*K{RVZP8M$fFqxJiv;g037UVB&?2+0uMCOVP7^&Cx(Fq1Nx?(YUw0bS$IW$pq1#s;p|?RuHN+N{tnpagjcJ4kZ8K#4YzUo`Yr@O} zm9ysL`s}7(9#13fcl%4SYvsC+vGJipm>F!cN`G_u(W#ewP+_sAIw@vne?&qJ<`^lu zEy{Hsd(AJut->-%tT@q5hY#u*j80~CFW-?O@TF(tF2pUg`%3}Wx4>}tRm+bwrKvWo zcEv-O-Q3w~Sapv>jk~x3An zQ@}b)!Sv}Uk+fqr4ogja6V{QU=ZP9sD&AWpKE0Bl{U?c)G9K=2X_XJcmO0c zrX0%Wpjmsu9PUOAKE$2(dM3<9QrqIlyM4h@+9!?gF4~bI(;V@o`6fWfLg9V{04f;h zx!^VDkg4@!W*X!Mp^BT@YMtdelF}!`CF)+zIG8pr7AhE6@u2~DYURFD3^$NS#*fQi zPQWI*6KgkYyj+B8h0baakSH8|yP5yadQL*phKlGPPm|cl#6uM5>yNS_7%rLWG8ZD3 zOS&7Sx>FJJSzhfrn5$BZ(?zIlUabq%fciN2ITUE9M+;Jws1=8pLI5IG|pe0Xnn z_r`eGRDWWBRKN4Fo5^bD!5rmee~Sd)D+#)PlJGK`Yu-(%Y#C`;Pzq-By`@f$u*e#5 zukrTH3#12E9Z|B(MY)Wn)TTt7!DXPUB`!#AbnIrDSRI6(NWxOH_zD14T?=1QEy9M&UfprUBq0Ln?0BB5X|hE&faf#_k2h79f%d(@WQtpg&< zB90NvBA&7!6*OdV`pyK|SYO5wB<3OgU;#;=eYW5c9vpTT_O=IId@iIUPJK=kFPqU?;;^zF8X?~eaAC;k3PaHJu1+G8teC6 z73~qEDXp{@q{EAw9fqCG%YQ|bDLqtPyf9%Za?kbi`#WhSGA}?H!8$pit zI|51!syMT^^vqvu9{_wb%|e}DFpQ%GJtrV%}7 z)pYuRz}yU@|K>#~@RbC^KS?-XUiJBp_-uC~j&Masl($GvB7KSkA@KCzBs!X`H0{2! z47+2%!9E6Xw1BR59R!`jEJ}M?iG5HD*FyDcqtCuf{c6c~EKLgS8Ek52vZ>MskcsTLBb$@UTT zV-E_xyKU<)Lz~aw%*2VQZ~Z@;7FANa?_y0(4So^iu^A?}7^(AsQnu8f`XAD^ z{}|#%`_{rC@JfR5pClOX9o_Oawk`4D?=Gij7Ow9MI?anj1yOMDPq->R@t^7F3J+q^ z#G~7m7`Ky9b5*^=Lb{!~iIQ zZI}TAiyR8mg`i8No9BcW5Xsk}xO-pj}l9#HXtaS$Jvku_~tYhiT(iaWb=14}$bBGc8PpybQg_o0tuUIvyT)X{{ycigN5%q)7G5TE>3{_sxeEx6hn8JAMa!KO8y`(67h3gpZmR4S)ZLn zI$vncP@Wvof%DNNEW*GkWU6URNO=nNJKIu%9B&nTCyU59?LRB<$XnslAzxCN!+qw=N(_`{{URzWB0m zY&7O5-F6}Olc?YQ?0B-@lP`Z_4IUz+G9MC*;>E|Pu6ZD15%Wd_Sp`5^;N2QPH)XoW zI$aoNY@zCd!G0ipCsCrvK+c}V#nK;ciTuaD3M2!+yshlZ2sf&fk%ThV1m`!$mkGU+ zVE!iwGgr*`UBgC5k}?T0ze_FzA%TjW`$p)R=(Rhk0tq&5 zXgA{MCzSUUu8+gEVy1NUd2Eqn70j!(ke4dly(u~1xzQG=B5v!ea=GUI4FH;87)?ir z9?V}yU1z3{_>@$a+u|YN`hSH<&*q8dX$|1#y_xg8#N}dL(1TC*9=@Xuq)H9Tk`CeW z+WPiGCD-wtkl-k;3rIgem}?Pl5GfjeYDAy2!KcNM_wRt4*wVWFe)87BA^b{$<)0)r z=O1cT@$xLM1F#WJAdN6)?FWLZ#eY?2+)|>;8*_(ZV5MgWM*HPQnsPUqNb`hhZPZ4S z4TR-?4?6F*em~}EW)szo$NE6|+bXqB6TB2@w0jqFTD73U4NnTEc zpNvXooP_!y(=))(KbjcSpwtg#gd!^Ey^zp895I@iHx0*En8*X4U04b^&2q$ z@tu&6lG3o$-&!zGoO?Ez8ZrZfesK;}R66`3CvR>6UI(7|773A860H9u5$s~TRtcwO zqS|{(5PGOz}>3$Mq zjv6iv8ZJ?Z*c7lo?W>63aC3P9fQe2eI6x4E;`}hD+nm-qQo5oYoG#=9o_dez67;T^ z4~SvI;7|q~1*sH~Sk5Vj@!tfDynCNh^M||pvHXw1V*o&FEYXFlZT$S;z3T|qeDvll z+nZ0Mja2=o|YB-)$!2AEa6B6Is z9M5Nn7_gZP5{{6t+5u=k%c`b?$4?q$Z_N1h!6e@zA^J*!?VltL?=!G=YngtB*e+-6 zwydiajh#1^m8~&-jYYR|E76o#0uXZh{L`yuw-powt04Y_{?odG%u5DvX=@9)A-pU=nsm z20d*<4;qC1bh=xULIs>2yM+;0SMb5r7FZ?4s;kbpj&LsPOO_)D%D5g&?&g**u;DkN zC4_BEkD>-K;Y@aoOW++y=~Dr=YxJ)skc44Cg;>#l!QcxSb<=Cd*uT31B0s=M_Jy3odS ziYc!)aB~Y0bl@qD)vuRZMZj~jQBhG{gK*Ro48H%l`dh4M9gDeOztyC^WsK<6L}ORTlNuSD-p;fu$=uj zIPANS=VB9muLD*!A-2VD0pv9>Hn;k;{~hbIt0wFd!egQC^~gIR(VaZ(nfK}Zl*chu z|H&bNf<>?rvUkwjY>>V!IjuRQ?JW`#FC;i$C2`v&P;p3NXp8r&Qr`cBzDKm0hJNq9 z6W#VYVFR*%7fnOqDFK#c2g#2oizSVWq0=&0P6a%6Q_4kAT^VW1X+A8a)hr z1YtGt97B=x{9kK4aoSk~*$_|)4UB^9=uSf(d7s%(*V$x(I=%2(#ZCH`%yZ?{kgT!t zmFp}Bw8U;ilb$jy?k>pcsO;!vDxU4bE9Nb{cKvelcS1rZ@|fq#X1a0!R6K%>L3XBx zX?mO;&k(&C;Wyn?P1MY{NJzer;ChvWrcv>ajX3%&$%D8@-ySKW2v zD2&uLs!sonXCUQkkugIB9M;l#L?$)axo3CPB5kY5AEeyT0D$Zn=WDWL*E2CYPLYw3 z{9xhgmuuYI-`kFI__)N4=Wl<|5k?ol$fgB3SM?-~8?BHds_d{g9yWf;nHU_PyK@2n zxz0n&p}wx%+6Rr^h54?h9D!GH>XLn#;L(RfFAP}OCN3joW2pFhen+aS8VbpN2Dw;- z-^=dnV-sTUI5uaanpE8nB6R|x=yzv8;>HpZ z=4X7{a$3R}=O^4J$hGi(E{RSi{tpFeeHn~b$)?sD zgv9*2Z>r}QJP#A?=+yNdB_FG!^@8Lh?2#DFWhp-{b z;^IHE_3#4JV@RUUj20e~ff&bgOL4g7_ zmD!hVul(7@CAWbbsel9Ul#M~5FFMr@v{Pa2YPJYJBg5(iX~U(2v=8sBs4296HkLH4 zoG}6bua?9yISvEpVwbeKy>WLCwNak?cd{^ch~56zjs1n3LQA|_&fab?YKgm5k^*S_(7EF#o5#cnY%)xoN8OW zw@Apmkl=ll#9~};_;w~luJJ8Dm-zO4$ngcbI|V<(2ldB<#XHMO^x4*8Z_*xedN&1Zhi_=Ci#*l74EmG^pDP z|G36wJU!Dhhs%>;@M0_s4Tdm+s;aNvPfV`hnS+d?+r5vGOY5Y@%n1GI8omZL$GU4j zeoWfyZENTq@{a|CpdJb`G23`o?JIGlJq-EE3U`TCJ@R0lJ$Z^-vRW7exn2lp zvRKr{QHT};y}Zz(2S!Ba$f=}kRDWiCq|?(%X3#&h)$l-hn&M->CvDx?E|@Aj@WU>X zCG$A#3Q(RPZB1P72vV{S6PSovDv8-v!$goQCI}wsA{otW_i4+V%^86n0K6%M!U=EB zi2rZ0@*)|X(Wx7TYFJQ27J-54qF-(dZ8J2$G%@tjGD_pGdvlK`fBt&qK@Cq&EFCH178R~pVAps|8x z3=+*_!Ld>k?R^2jSmmK2{NgD>hJZf8-u9N=+=hkcRsHor#_wQ)cTF}Mls1Q!YLu~j zLamHmqKIwx;NrXG&VGL1@$mDn@5e|!fyOZPXm-IZZD^dBQ2FmO;W1FPOj!AaD`GwF zUS~(^?s-kQ^(++9rm=vX3Sju>j-{^L&af4<7D zsj^f#7tW$vFH7yZ>B_@4!EWxgT;hLfiy_ZQQyNJmnpSmJUP8@kz1Cv={RQ`ivFoY- z?wycui4IO1k!Bp%(jJx3ulX9{TXnb;Q9Ii63|{_Onkwtf&T;t{5(2N1Q21VsS5LUI zjUMfuUMj!o#x2J+VV0ym=DwLm5hN~?DGl|P_3^NP9%Dp2adxX$%OhN5uO=F@HD;r6 zaM)jh7@KqH$xRbf>{L}cID z@RjL4@bjQ4JwCMK`~^O#ASEMh&rn{u*-jHODj_n=KvrLj;9F<4dkftSVm=usoFrj zT6^#j>+NIiSJuGCv}i^h>l%mXj@Vtk)}$zsJ!{gEX?}DE)&ZmS?yQ(@1BZgw2uam3Tc^al)b?%Z3egu)96;HxC4>$|;pgx%^ z)q2d23zz{czCVk9zPzjBw%yarta{)Uem=SR*-eZ~H@sI5elt*mxEM@jVtB4!>~#15 zO4_&T;!zlKA)Ip>b;#0|lev$amO>Ru$zYAIE_Q-lOSVNab=*2@%4P{n-HmVNqZw5( zXbm4~P}66Q$Qiw79|r&<*ZfgoWagP$NE2=)hifwtsFi6e3?9rA1s+QF!u@?_{n;17Wqy{@XP;@@Cv27 zoxJ`~!j2jvA56Z9L8R;|yk_!mi#$KN=PeS7FC+wCB?0^pLb-Yu7v9zLmq5*Z^2dKf ztA#rwi`F?eOFf(x?y6_I_t3>`rBt*BLBIu-kMyyEXOV+hzx@jyFu}Wp?+ih;3XTz< zqD@D)c_D%69qVLG$=?znzgBVW_()zSf_>JY4=jpV@ney~8V0(q+2G8=e6h6nS+i)^ z@+$%xn!zLjgo=b;S+>Kjf_??Q=;z@t|1eTSA5n%T^s1mdK4==mEBGuU-=vn)Cs^dU z#e$<#Ip~eWaKIIj6ucH*QR08@9H4{>f35e^^xi+n-O=TnIaWviT~(- zj4IRiMUG~JZ}T*8ycupjIA`yv-avYb2@-`Ln{bx{plOujJf;WwmROP}AyeWs#b-y@ zZeVB$PaUNT|MB3(l)@oqp$OA?KjlypllpaA?kLvM{eVKu@1`~R)5ASW;M}KM_q1Iw z@JUdwR;pvR^LVzPU%$TIj}Po;S)!UhMktB73cMrF9Mn&bMK?utapafL%~8l*u79Y( zn%@;)a8Iy$d@j!=Lal?i1ASg5q%Ft;trI(sdd$9Z41uOR2(BWh9ChjWOVQt^=q=Hm zUeI~PW;u?YqLeL?jM}I`_&`>et^Vi8V2(*llx6ZxRtfFtMp$rf&{Qi~8d_G5zr|vO z6UWCG5*IaJD5D)HHlp7mq5MMP%c~^P9=7C4u!y>biB-QwAlFK4;+!Vi{6|tQvF?1b4i))`!Crh>1=%F2-YL!f(0d=?A^03v~59zupb7c-i5w8PIX z1uQf|<0N=3yNOz#Gp%u{y5qKJZVrl=pgh`(2|@9Q@9W8E;+O6(RG`HGH&h$$;XrR3 z0Xu~{nTP+_=Sub+)=8CNQxE=(p0~Ga3v2CY_=$yi2!GCJT$1|EZy1e|mn@OBaK6MF z4Z~~*&%Q)y?x>0l0G2s13M%+nbTV-!a5hj)6-t|fxwa^+3vTHCiiD%;qOHO?`Qe28 zLD+noSWAQo(S$(I^xS2X#zKR4g@CQZ=)DY>4oXcLMEmp!_t#eLSa&_Of7I9IajfEV zOs{-%JKV>0x3@^BypRxnm4r(?d)@YJ=i{x-4@t&C1Ar!3%VV1| z6IJW^om(kFLl`CqoCJImRKb1}n9t=)(2&b{(QzBnEPIypvVJWJ2Daw-r`lrdzV=f!r z+-Oh5w@9eIkPvy5#4UFZdM64Ul|#l)?J22yMpPXQ>9S9P-S{LNb`4{Wwcd<7vU(^! z>?2#Ns{NeW?9Z*661r+k8YL`-Mk&iNh@h_RpH3B>UQbjwD^a=*%+%K8bsI#~lDr3<$IgV*nFm&nJsTfY?cpN{6_lNpS30m6r6PZr@lyAwe zECSVRaNPeRF401Qb8B(pA>~kY&Q&;?x-TkS8*N$ZaAvCOX;+Xpbu0xI$GAMkS0R4s{Tly4rIAa z(lefU$;~HA)NqmkJ*N8Lf9KUDEOz(5LXpUl!hY1EO5rGY)LAt6R*x6iKbj1;^nHT_KVq4sLvIkVB7xDm-=KB2A6no zmYK<)KVsfJ^mJQAtClE ziCSty4)>X$LlK+7wtT4*%gkS6>MpYCBYv(FeWv@;1W25@@%|iHKS|pbGYUs&=^q8I zGp0_lX>XD(5NqnM{Q$s^+-3-b=DFP7giGfVTl+OKw^D*z9)PxeN2OZPpQo4MTBFDs z#(!roArgA9V|g5wOlZ2kYw!N)ZQFtkKIa9U7fv)1l_lh>tJ%1NKAkhx<5~e-P!dmN z3Ft6)5C3`S&vi4;j9mY1OSbd4!7z1_{@|Y$kFnH7SK&hK4@>>gvj-H%IyD=Zf){~) z{ue-yXM$c&OVoHsSaB);lxtHX36uIC?J{89k#L|yVYRO+UbzM)_ zAO6U^mkjM8dckron?iP-W}(j1ny_!+j0V<0>?cjRtPh#+-V=~-tr8k9B*b4Op&iJ& zRokn14a)^{fK)jPC6v3Ll2tp~JDjy2GKPr5HB6i$SF(bEmCO0r%LzNXo~mdOmpG@Z zNrzIJ(Nl_a<13J?3bz;?`y9OYk%Y$(n77t99(c>EfiU~ zG{&_u;*k_j^t^7Qwr7h)Y=T))9#B?J zxDEVLkJiSeMmh5bfGbx?TaPEDdw4skNqUWuEn0>OoG2z10+US*-(1VWrCNLPk4Jqc z-x4%x7pQzs81u8Lh;hlx$L%a1=p7$^84(bF8RafYkgR%(gystgiC0PFXWX3?_V%(8 zs0|w0p$?3<{#0E0|;hS}RaW>2no+Z_ID*CKnZYJ+Vpn zP^fm6Iknt8MWwIMjOWXD`$2elA~0zE%Mpe|O{y@URbokdY(LL=t%7uLu?>DtDY#oz zJ4}|d_Y=c$X-)lc&Qr*ujnz;bWpJ$wTH}VzPGqJB*ijwk@$(CGNiG7RtYlB zc55sEd$gRe+@vBC6h4p`nv%dGaat;pubZwGX#a$~NQ3Skyw$7rPF9J{J-QFkk1-dD zY8VQSbh1Y?Y@W}~_xkJQsRs_kw;Zu=k@a}cMtN!4 z@!5`7PY`Ylf;f&1&=KBLoab#UMY_95}ZTaCk>%G05ECbr#9(v zujp;#F#_Y&hR2dgFsVRX{eG*ds8Ud+s>;$nysBAnlp{l(sCl}B~rtps}hDn~7Wj)B3s~is2kZ_>RHDhkJ67*N| zq9@>jyG=-z{%O<;s7OL!vkW9y{O-NV8vLa7;N?%pX@dApNKnEP|EaDp=rOdXYWg5~ zP>}MILd3|Lm~b6kLL-m_0sJizUtdT_ze=LbF=Qw5pR%eaPpJ3QZm^NpV--AVp)c>@ zZ|Iw-v$NZ3R=qFzVX29DM5S`l&`UdveyQkH3kDbc_R+ZWuEXE}V294xIQZn}sxoTj3xmZL{`+)x`H}*4Wc`$c_`% zF;HqH-Zzcl9&~4c2swMCIdG-T^ra}l3X0nVBf!t7v+cH+jky#$?dCw#hALSB0q&FL zLM}sCWH-Lr7SipEUwswOLzy)6Qm&><{T&%nd$bSlOZ_mzFEvZTSK zXqzId&li?vEqU;Cq&|M(5z90Gx~Wx>A5hnS$}_(c5({)|kwZ`(x2asKCh2aGkX=-A z&Bn1di&@Y^9Bkja&)y=T^Fl)ART4l7B+TE#{KLU8sYj zoON)nvl$FO%|4)h&G+v06?d$){>h96r}CW*j6z>=#nusYRfPgzO<*SbZEwd-PBKC~ zy+3JjInge|SG;m?n#hUBVs@)&NQ|{D>RkWZVTa-3(6$CHBq+(g#Wz21^x$h-9stO| zC7j5J_J{enKAVhGs!0xo>3C}P`?tp+ferhnn|)t)j{zUuq*}H|0k()IOj;Xj8C(6|Dh!L z=G=SiG5IXxbJ{v29>6`0GRES_w$uyg1iTXxOq!u*5|$?0lkyN0t`;yIYOO{)@sA6+N7A0M3doCq zwCIrd1%^+wKa!+^EqO;8`Km>DZA@~!J0IMvLH|%Aks8+qrrFNw)e?GGqi%j2c?^$4 z*L&GVcJ!kAkU4JMULIL8ANvrm8-v<5UpTm(P{msGct_E4D7FZ}!5C0MuRecz;kUDe zQruhY%?Jh(L6ReEZWfoh5+r|JIDUj3XiQ3%Q+PYY`CY?Ag4!xssNqp;$*0(`=A>?( z#;cEhqX6L6*9^AGheXhHcBHH{swHIXPr-(Z7W*Fc`rtC1djzo-CIA0il zu~gtahTg2d%htX_WQT-2($&B_A%Qa4qVN8Z%CtglX>i}b+mt#H2{Kh3$Z5m#6jkyw zM)NHadM_m8UL~RA_V;4QxxR%dVa)~_OHJgjQHF$z2kQnEm~F|VO1Y?_UNE^sxLvo^ z59QymCE_8j7&Q?(xd;>mM+0YIpJYK*ReAMoTP%8-iR#iTLsl__USFMumkV&px#UtF zN{crS9%J=z)d!p-qP}}nLxxqfw_(5=u)5b%>7}sf`kkfzU;+SBS3eRZqD7B~_%VqS z83^$pbdM$5F72%=Zzht}7TYl$EreKjKYRKxo9!f&q);%-PIc`m3NRHEllWxGRr-O7 z{m|6LzqLFYE=F%OK4DgC5H8>*l$Yo#m9RGRt~M!3s%&#z4yT20>4O4tM`Zahi+&MvE!?DZXND+J|g5(0~;)d+fZQ{Sfl4r24@)jiFT6 z-npMw#15Zi2GI?urR-q5I}SCS#7HUfioFpRp`z_$Y<0w-JcE9^e+!6FGF$$ozGFLG8H(0-Gl!z3D%7ueJKRy0~6AD0oi-f@o358cl zRBY&2UnYFSEXRHt{f*pu^p6Btw0Sq`uyrV~oKzk0k$z!P@)L=W&URy9lD;|b`xZGpf?WH#08#E1e~Jn!|zF(YX^ZB{`;zr1J>UBpB`c}HlT)__gl#+ z12%^Vx}q1A*CG7VMS+0{SovR7RpG2RRAE4m?;`&Lk#;udw z5R*<7&-AMNSw03$BNj`=x&EBF1;An^PlW{jH)c3PcthE---a&Ck_bw|!Oo7sb+a~Q zbnYLPt;#-{D4!;Y%hQK=qQi0cP^5>vPW{-BprH3BF;cm6Ot{9;=+|d;*Iu=pjmM(< zedAmBcd|+#fNulY`PIrSh{3_Wvhr9S?Kk>+*ktoS>4=9G=siNeMZ)lfgyO3tvO0+b z5`8y}INS9!)4%-O3aO;x(J&>}tiY&-b2Y7THHUEyv%Ny(8zeA^Sf|^%%PWA_8&_r`o=)fw7O9MUi~W8T6r*SMHL?AxTNATAn$UwBDEBfhHnw}e+OCrb11hUf zbz<-r@O$5{O%=zaW^wl%c#BgEbSRevmpKV_dcoxMyamD{z3eL3dt>6JP;0+G=pFm- zgai_2EZNKl^!4iIU=QAaCcWp7q-^W&0qB?|-o@6OFx797FnS@O^eTzfuc>#Q9);wQ^ zjSIN6Cy*!}r=>7fBI* zB*I#9^g677wC%G|2h0BZ4&zX@z32S3z41$#!w;% z_%BVoA~%^M`6GJre|m?8LbVp@m~lJ9VnErOp;AI_Sg=fuu4AWzp=YuqH_efk3qQa6 zi@`78SU*NkOfcu1RIG+5TDlZ@70ca@mFM%N{w*_$#wxb6%%TgYdMB%dbNE2=%;(|6 zM4Ebj1kA(lv9ua%s|J1XjI88P9OGn+Z;>#0A))dri8LxdLLFFP5p{MZK0y>HEF@8U zOejWQsQsW_#m`>s#y=(wLlaafT({OWDCAUl#d*zB7yHNQ7;@w)qDnKm)3gDr9=g1T4B3l5@Mb1L#8(*$Lm?%k5<-28l}RG!Bn28ob_@ zqXluAZR7D?Yq{^nf!=02 z+e<(Z$H9j|gVo9D>d?x>kt4Ph@i%{PGP5pRPw+I2-BMjm{N(iz05~PS2{sM02q)jk6yQd<$dt@%%`;g@7M)T^>3^%Aado50dciwcCG!0#(mXVkbpFE}-mJ=q%lfE8 zq(}!`RZ1eCIBeC^#?a*27#;*StJkUWH}N{$W;%ph5Y-nbX4N z4!C2Bel#wBZaq$RQre+)0h8Lo3{xkGK2qsKDWRDWWkv@8vC={+vC}pGJP@}RV%E!U znkj#^n8To$IH6%nCP)5#@>S$!k7Bwxj36a*RjMxjUoy zGJ*eCRW)M&TO`b1NT|O`!Uj;#13Lz-9i3|u>?qH(w{Sp!(#H{sP6CTRINP|zRtOyV zdsf+`Tv)U;v{h@0H-s6(JFCN4t24XJb1-KCnx-MNJna7?=Bxy%AhE<292dh?^N-vr z-Nz$lw3(nHT%$RwLH|Mhwh(qGvpTXvZ|UJ@MEcuu5r#i_|4j9{bUi>{BT3_UB%h+V zN{pK;PumWDc}^pKxo&0JPbU*)XQtpKKZ22Vx0zJE^8)sdQ z@@GESfOXe&g8+CN+9hql*8hg&B}8rWLDdfAw+<%8Xe6o*s2{=ZTS;tIo$wI?q<-gp zvx;oizPjbvJ7^sJGyk8lgYUA3udqeVZqLo2OkC|+U-vmd6fc1;C;?mb!5j}wl>KIt z-kk${uUHx-=0ViP+RT>?SAosPEXeA!@YCZV5{(c}Ym6pg@dQ!{isa8A6K8~{Sq*hG zR8Xxis#(A0ZpAK=de5=dn1#btt_ zJb32pcMP#yu!n0ZArLEV-U*4}gSbjB#T1b;agOy*Q}@Ru-+yw7vq2q9`>??s_20dD z;;?)nq4_F_d${i(?Jkz0pGH?Hb}o3$p2(BczPRfZTxCC@99Cba3J=5wR8Uz2<2WjD zZa~|R3@9@;k$hP;>~EB+@vs^KRaGI~>GCh0o1r0$i8c!MS9kp)${={`2gtZ32>FP^ zVX-Q2`RXg!96C|-9lUj1Y{b1 z8<%yAe+}Cq)%%m+*!c6Hz>o|i7xhGKTmhIucDnTsRjE#>Sg_1Xh9&PACYVaxii{P&L8in^+LljYKU3=>vcQOiyWEGZXOk4AS?vNAd}$0uCL# zL?~#!Mg$`TzfokXy0#|;^Dk!x#njyFtW;X~)`OX=j-W55ogfAqKc#?z77tg>lZ=S$ z1d$3tHW!&p6vx5h$@y*dzR&EIUr>}8)y8|r0z&HBOJ!_pM=$Fz(IBqBl?#$sb}SqQ zeVf{9d@nP{69+voCZ{K;)ouQBZ@_{R6W}%qtZL@NV>MTp0Q>oG^R11;`h|q{t0bD` zFj=}kGHP`LoL8>|hK5zIr2M*AfiUc;O#gMRcnOkk8($>}U$Dv6nhiB%b-P>JQY%d{ zucbBGCnLc1=%Rtfw$A0VC`OV1dL_1ZYHH);$b90RKbY8rTOQ(K3{-Tfc81_ZF-QAW zjrAQxCPCUn84@(O`y%x+KRrPU2JK>d0e~N}|5M}mqZarCFd<+0u9Ve*2qQSE$@gCl z{~AS>RF21Ff=dp(T9BsJXzRRU#D8_^8c6K^O7)e98GC&60yx9~AYzo2OXFoQ4)W2{ z-6{*S?X{O&d+ZT077gi0h7L^#G_BT7r<_66oq(%p^?y^GzN2o=qr;57Km-C51GfS& z-*>V~7|8KliPBe2j}VhZr(4!33dbhJ{vy$Qo=`7CQlYQKev5?73yH6mxx4)tw#4VRN=yBY|EJzElRIy`izMlr1pQhb)J^MiAl=H7Gj&&Jk zcSuJ>-mgDfeLZHsSJQ_ktxjtALVw<7j((e&cc>i}RsrSfQfi_0Pb-MXaN9ApXkZ>f zrC{x?U7iHVMNKW74`B(|j(!*WoJO}%j`-<}#Ed)=_m_NrXJq_M$vFCjpLF_viSLBO zVFJ(ID86U5v9L*itxj-&DnSwQ$#Rt=Pz7UjeGggqEfTgbBy?US0o$ND0#iGHzw-^> zXxo2i)I(708o6X8;`cQRr^yiFnS2F*Kb^_Q_hydTibSR{*8HmuBFA5`^vxE*hs2P+r=ICxf9zB2>V;qXyq zL)URN`G1LJj~7ESCZsa}php?H3-l`W{5PE5V=0O?VdeBCqwgn0;VTpP>xSrnV1us4nt2YJQ!*lNzNT;6W)gKKbLrtW;rSmqVe?JzjFQve+Ek zbUTGf3&imqOAhU$(fGUYcb`M;%Pw`4v%4!j{&KNT{E_uIcL=bO3&40c8%M~+Sh|^T z)Si6_clw4F`yEEELc}lkXLGDrJAnw&H#^7eUP$P^O5(3E>1gD~5t|?GR)TnV=|(9h z_*!!DoutI&RGZ4u2)P<}4D823dGLQs6ITwB?k2;3o$SZsIYl`<7_zG5{{`*iC2s2R zID*6Yb%cxzsh(Y5%Dz(V|1kHiU&1{C@_~!>BY9@J^|PBG%NI(nFESrI*14!(dF_mw z8J5z1(c?|P1wC!gIM;h7wuRyt{|iuH3@Xp+oW}cb=5Gn3fY}r*l3|P*BFs160;?@P zWdL_`Hh!$(mRWBiS>tj|vV1Bo?a2xNULdvG1>-QD13lOCf|hK_tGw|RJlweEM2pgA z*C+?g&OB}Bus>}HcA~98JOAR2pY#rAZR6}tt(#qi7eeKIFI81_C^v=ugkt?ZcAhGq zXGq6PcY9oNJeMFw6#qEDM(w@%5^DcKLhn@)j~(iUd)LSl$8gw)E&kA?4G42s-QphZ zGh}-zIaGq+;NQ5;eSdIhYKYTJJ08|8k;v*cMG4MdT~NA$x8${c0RWu|lb0T5dl}?A zCJcKRG*Fs;MB;Z{vXuGOb~>Gd3&kaJ3?;HrY4&Ud!4sIxwM)A5JgO{Q{_q#u6|KC`Px_cq1g6sy_*CD!;uaIV4>!snx4 zqk)texNwpf7C8!yv^sVkLVS*|qwxi*8QgUK0h8}!;}92;aT!m%Y~M4T_h4f4hj&1v z%nuHVY58gFHU>vNhV|CQ;qXF2|5Xxn_0*P?$q8aI4%+7NUzIqUijHkZ*HfxRs)trl zQ|$V@`c}tWRIAh;Ma|?Aros&BibiW8JIsr4JWpV5__3ov`?w8MSzcN6DE089#q%Sz zsLuntk2aJ#A=j$6`Do$I#QFENBL>5O9CpaekkDKim5mL!wRx!h_*6Q%pZ3&oKR(2@s`iayG_+QaKEXg|?52dTInn(@>$a6$FpcCOjj@I7P!ka(QUJiLYdn*0;j+Jyw#7w_erL%=SlCua z&KeVUB{2?tfqYn2X2H5eg|i7B((^eQFe7XT-1j99g&>!OZj)4PA$STN%Bh{aOHO*Oi6abx zMOM&7R|Wuadmn``)Ia4f=?VBER98XxK)IdZe5`#ioHM4G4BktW?@n@_{Cp-4-4YeJ zfa#}Zan)lWAX+qFA~Gm1p}uwdPDtPvlj=ES&xQ5*kWX$_cwEG|IAeFOT-A1}nLtpZ zgo?jK!s&&C;j1JbCTSZ9j6S*2TpQf9oT!TRwGTM{oVBgj`nBnZnk}CkPmZTe%dzC*-xr^!# z0PK~StWR+}UquU!zN9b(Fp}>E1o0S5=HE_CN!>X%W(FpSf$l$l5rVO6{-Lg(+GzJ= z>M`7KtShYy;SV1(hQ(h=>@3CY?d4uVNR^mIsm2QmFv5KZ&Vj}eK=${Mh5s8VnN}MJ zO2Q#hg^*jD7;WM&Mh`22ZDTM&+r5Ad`RcXyHNhU-i+Ci%)mUpQ!K@x}c*#dqImkQR zdk3|5pL0OHSV2nUtJFIoaX@&WT7BmnyV`N7VXk9#r`J9!rVzC$kTw^*=!l^B^DPq2 zFC>g!CGnrwhGnFC^RfQtlsR8^i4BPbcBjeCjHr~`W~RrP{QPfcQgIF!bDJ@p>5Y_Q zcXj*ZN4U@ldg;_*1d2A@*8hJT7cz`IAe+JXYK)2*IF5&yE2Qu#;C^dm7hcjyIJoti zr=|%zFGMJ~i3M#DTr#BSJjwQ~P(m)Uutb6kuCW%>g#i#3%wdWc&Hbi~E_mmd$F3B! zb$hN;p%QU^iuLi3)g$pP^*(`|<9sF4V6jmNqj({j_KeoKRgWE(e+k1kr5Q96Bsx+5 z2Oa^OAP-!jRy*PeTk?SHlMHEdd2O5wryplQvEre{&qd6?@ECgLw151S^8+ zT#pH>tVO+(omT=3g=Y?$SVct*j}<+N1>jVF_ms*{#{jrI*;CB5(oh0?rl{p~jM=Iw z_0Xn>u|+7jLjoilLCtp%_K3fQ<6&)U26#d^NmlR6N(PTdDReS*#7_Kv&@%g^W~gee z%Cj!BsU3%%hk+GBf~ABxN#{m z0$#95V4j?o6Ol1%w=9d|Y-;1Qd0|<+TfNs#Rradwzt*pq2+^3Wpx*P3$!?p^VWQ2> zwDa3ha}%RRfir&47;0h|16G!aAFio^J6<#YnPYdj<)~-J*Vy0v$Ju8PT=9z`15)`4 z>|pAhknoCM9mk^+al`syMPkapX)}TwsD0jsUx4f^ndcYuMf9yz!u5rO$*UxCHDGvP zobQE&z!iZW3IfthmWP^yK1rE9*?#-x^&;-CI{)FGoe#798u@lQ7i66lJ$m^@kEr)5@0pCLNJy6|V34}=hT2Ak4DX$g z=-r_53Ywd3ROM86#<{{MWg@oy=BzO_Uk%wRx-dd3+m~VfGpHXyKET_}vy>k;NU+1(%WkJ9wdGF59bu^Ji=u!^6kK zJ<#o?2d8HXUs>U!fMHVw-Uy-9wT;dGc(4FjcSB7nCY{UK;>M0Q%~)l&vzWgwv%g51 zKWeR^Hr{52!qR`9-dQ};pkQ_gc-`(YeTHv%nIsoyV@070p#+**W*hi3^XYawEHGHV z?|6xcn_yL(>2@hBQZJeB>u;b_1LR@6izJC#8_z+ddYZVL1qrgqZ4?ey@q5=xiq-$D z=Jf8K>kO(Y7XI3oJ~3uHaZ4HHWpY3jw3=zS6!D|+v`GaO_8o-9FLfe^yb}^;nUK+O ziKX=Wk2NzWhJ)vH1fCD-)XnOb6oq=_<5^*EtrG4pB+OnVkyU_vMJfi9M_R*++~8IX zpYnw8j|#3}(V${9CO#X_Q;R*t49GL^tS(=O@Kx75ZCV>wThYpUXW3LyJnzy16n89m z)Voj;TV|+tY!NKUJl9^6QRRqN=+OR7M@Wsf;yX-eeL&1_Rm*;ErS z6G6X}gCOYJwR;NcJs-DnLNrEWX{SY<@lIv~_tv|Q7H2_E@=vL9N4PE)eRkx?j`v8qg1}}!^wh>P9 z1lUB}G|IOthP7$UFWr$zIg9w84Ya&tG-3T%qyDGiN9r<@jdWies@aSU`#)B+CqLF(Y% zq}kt#toF=wZeHU^_`GoYS}U{s%ZI>Hs0cW}pK|FKIs5#Mqu{1uTr7hLHH5;{vQzz;1;eRs&sK|EQW%zo zthzm&E~XBVhNX3#<_>XuMec2Vva{mup29B{eMb4N4eY7E9%i87&U4!`V#Cvv654+3 z&+V%hUq5M*5kdXB+VTj;T%{tLCg0){?vDI}%@^wVt68B(rgemZ@AqhZr;shH*5fjA z3jny9Y}(*CvC{a6ra*gjyeQL~iHu`A5_L$Ka&a!oe%fAn65pv>X7c%L=(%5Lh=q&L3TtBm1RdrxTpBmC1c0m*A8fAEKhw-4Q(f z&lC&!Gz}mvOf<$$UcwC4#^6LwHx6kn5@w6k|4vApe}E{S4^CKZu8Xf8?~B>oNQHge zUE&uJ?APt*OW5vui-gw;3CmYWoT_d?lN>Nrh|`)N3|RezrIa9-y5XD4^z8HB8~9Eo zH*smBhbDsXP5WVxtDMK@T8*GlEKjq8u(8#tliui_1vD{7`?oyaph-lzcL>onJ?v4* zn3S?oV7Z|LOBs<#2D(MN$nN7l$He~bGhJLEhgZc^U?Z}n$UX<2)yy{}ZodN1Z+sW% z>v=!&os2e%>8n>^rBH?S;AwS#ULC&Jap?v&dRKx1O@}ul2|YnHbJh2Ly!!2UW?xNC zD#&K-ha&_jZvgPmzH5*DEDK)ZBd*9?q~mn7pPPdRHStx1?{umwR#7 zqa-a&(+$5x!uy4U)vF{-t|}BIy$th=3gytpb!>HN_enIW&s;@)min>_{@^jx$hq1< zlRx)TuO(!zmR!Z`bzzS4XoMp~+QoNmL4-GeMkge+!Z7+|MZ4jBnk@2;Kk5`jjg*2% zC6s9zLt(2`7|cy;ym!_5G5lw0tAdGZr(IDPYd4C4)l4c(4O5W>a~X< zEJ4el4UX?e=OZN6tT%C%N;VJ6QQC2DRSmmtMdP(8@1jr*00t(~-^Sks2CG1DR5L|~ z2>r7G0F@Znw8R24Eb5-Gb}kQVZB7KEG`fBi=UG%Z6u@_c8r<2ti-bT>$*&~#qew6K z6q5bpNC1U#&Y`*@H`e#G54{r-dc>*oj3h@{B)-S6lysHWl0H{Bh4zt*znMiAf-Vo= zOvm+kAz}S02?>qH4%x5Kd8$fDa|vPSV4;Hq;Z#x2;M|kL4U_r_zemcF3Majl3NfEq zU={=l>kmky(HhP@Y-7)0w-Ox9azGmgP7cfesJrL4y5Bbd;BgBl+qSJ$r&_hRRxPY$ z+qPZH^~ttt*~_-wvbp>{-|On<`nkX1yw3f8p6AxWnkALVS+6@r$dH_wRCh{M2Qf-M zYECM|8ggD@RwL98(q0GqB!_)l@!KxTD(2YD-@%4R&qh#>sKHVIAY3uqk;_UCan6e3 z$R?#EUb=wW@}J{hF`+V(l7HteAk~x4P(3Q=@n}hK zL8vmthLOc`zV;9KYkROfkS5;pn8S67YsL)+bhDpc4*e$D=Rw~BdZ}N*9{`d3_9>y_ zRi?k%F;=nP3W7y_Yw&m{Br>UNt zCK7w;H&Q7|w8B_mh|sza6aSSgyT(wpZ;C1orQd2ngH8fZM~5y5$HeTIznJ9$8%+zY zP8?hgYH*cj!PvG?y#2CA9r*n^l@AnxD$nbKL3JBzSGSszdIQ4l=~HF_U$K+{zy<^M zJMSAC>AWFljy7X-tM2Kn+4dXtrDjT*4?@pjVRj`>kPQn)KjY3N^}GVag}U?`vpx$a zc_>ptxmL~0EW8sERYY+B1-wjzqD!LCSTmzsxLp@aVOLq(E#t{ zjVj*2J0am4wx&6eJx6LpW=ci=Fe241i;peurk#uMS8kNxBKOS|E#5CAtX?I-yqKy{ z5eJr^p>dLZaM}@BP_o0xZ%wfM$;yzjsC$lGynfuwA|@NfzCA`a(n?5uM^h4)%uoqe zr1UZbgR&cx_7Y|JmfT->GrBiBJ1cXT{$(xvZ1kQsFE)uKlu03Fl|P{FIB;Ok|D3Lo zgQ9ynP9UEuEm%=Zv&u4C?j~4OD0WKEBhzpXfwqOZr3)a65l%^ z;aC+xVKtY%?q0NfWev_6PW}|Kp2?t94I^y$xk>l$o5xF^7ZTR5lHj?(!qVjl0+Sf# zn7LIRM2X{Mslmp>BcPbWM7<+1Vd)5^?AVbDom{Kg-@y1YsHVJM1ZxGFL9KE(U>}}q zi4On{_@lra3ZA$k;uudSc;J09)xW060^ss03P8)-%79}p<1*yQVUqhj19)7JXiuz(a{Z2@PB%~A$ z>!kl(O|Ce_gEDL7qf_)n_zk(C{q^xfr~R(>TOSVJ7ZNtFlAyqoEucsY^3`r_mkL-E zPHR@~Gu%dOyBmavQ!anbX>MVBB;hbA@$rASi9?UVWBeu6D6#!rOn4zS?-MC931}W& zqNhB@U)X-vdGMya{yOjc+!9KRdUXk$>VyK>pJkclRb?)Mgz5nb`%hE^9CIC~>0(^} z0@1%YW(HbClGK3%0l<4PDCza>3yiGI74uxf+ftLNaW!*f$1ViLK2F}X9<`H&{*dVG zDhhjKSAv7y%tL~Yzm1MFp-iyt>~9d6{(wdsHOZ1puS~ixSgifQGKTXb zfnt5axF@w8jF2lH$`Q#*iK_vl6jr=0{8yYHz3oZ-5_|-F0Lf?t`a2;J;V&A#@(-cr zVssROn~|{7b2OZM1vbt>1II0uqiyN-EfRh&By3+L;mgGlsF};F>U}=MQ47}~7oXpX z7&55T8^9Lv<*DSoe_$AoyT>8iHi>IchT3b z(I%l#7)b+{#pkW?Io1FVtN-xS{$EuE8}w0#2(X?OYOkwn;Yr5^8l;Y|I;inez`B8xGzQ1ct$AW%!|Oy`OC zH$>d!WMo(zJiGFQz=ezNn0}Y?GtW356 z28-_$m*c-+{TWZdS67El2O_ z3T?%}-C0BTFOE0oO9Z@-uz!_=w~>xujRxK~i!_*BLD`|v8Bw=Bd>oEQha+jHWp@alU!y_4K>yGWjkanXK}n4t8~;Tqks>)@ z8S-yAmH&P?0A$ri7vEH!L(+ZEb@)pjac6d2d($aSU!r=tzo_+{<(n?5WHhK$ug&={ z&wtfsNouW|M#dvCivRVoTysk0ea!4+;M$w7k&xml%XRw7GR!d26!4*x!x!E7ca>A~ z9~SyTS1aTtb5Nljb+XW4W4@GvETl}5)F4K%ik=>)$i8|%9%=0J0xaIubslW~5h0<* zXPK+>)WIM{$d5o*9Uo?yr4YXarNQg_cS3@5jp<2mJ|DIf+%mWfwC3HmviQjge$#wt z2d0PHf|vTOC=vKV!r@gC>dY)PX58#_WcRy)(2Leo)hGCxYCnD{3l9gj(twT0qsf)! z$urfR1FsH=l#QA>aH+u-EMbYI(7zR;KU)`re$ddz;I1X)_^g7OF_xWUmomI3g@`~w z8kr;Q!H(Iys06UTw)Nmc8_bXU=(&tpGhM&Gp}A3Lv7~Q2!)J|AKP-XP(AQO&bP7!g z@gI7*Q}|tb9qdy4v|>{7F#>N+kI2~q7}Y_f7Hmh6 zWPgi9&c%(tqxT0)WQD@(Ie-M2 zF>Q+#x7z?7Q^*7duFo8(ahN5CG^hgr?n>n}PL(Of>!x+82A^~FV^Nba&>bGzaPs%` z&-~P?6c}>#I9`A$d#Z;(Mq#Lvn=m|bBWh*X=n;2d5IU%H=$Xf6GukG@xbi$w4X z38z;{#CQ9P269}U9g7xPMC1)^HXh35QuEeHnJfSDh#%Q~+E0;TOid@LC9%r!;U%$E z1GC*azBx0D=RX>hRQfTQ0RY}5>i?I2q#|q0vR&&~mM6Cr<*I0W2=lRj%?_VdnvRY{ z;cHtc34Ms@$2JBG3-Q`mVdl=wwvS*v5>pVy+F;@Upnupl@uU}z`N$%c0F|c<(U!vJ z+hXiSeFN^qr9Z4s9YQ_@Kk?8%%)mHCBzRtGrVM6&Q2(BmNh;*t)v=*hs|DKVakPS@ z8db!SsF+F7*!XpjW{xd1*S|TQXFl6iQW19CqwZVE576Eaf4H$LQzmhJv2n zHs**7D4Z<$-%;2$VZj=EJ*$uNTuH;+x7 zRJqr;Cqh5;#@tz}cZ~bdP!07UJH4A0lJUms@xhJetgAU|X^g{Y3`|p|l~og(tklRQ z1Z&?33Djqrwj%S9;QN^0;*&Pjh1G)|cRcu-7_B93K4_ICG;fgzeIeoUDv1DtgfwKa zb2eNjZ&Qt&P*=_*4kurq6T<(FDnj>gL`dKSnB{+PA=X`;F&RSo^(Rl55onb=lN5N9 zbw;<68G3^rnyBI6=AMKrtZxV6!qKo8t+=>(n!VgeV&g9=6*rCD;JzYUsgIs4*{eiZ za5=$siCwl+!HoP}%@Bou%;4Wh0gW%SChC7&>`V8qWZ$M;Kb^hMMW5RJ%Nbl=6)93V`0!rAYy^`xXQ8c7KyMI60Wb3@I;&y&$@^&i%t*{ zPczul|LmWL%VI0-t-p_Pe2IG$=)9~CWY%4I&ZbfBdz#EdfIDQ7V9tc94B%Db$jvFezg|FGJN2*?P;2$LCGN9CF~gb z$^)MZbcr2lK6jyGaSWH+T0dD(gOo?zPr)hru}_!Qbt3(D6IU0J@#?)yp=rGJxLKK= zpdvXdwZ+0W9=@t1KQyDDuDv4IwfKo!&iWRK@D~zpuadBJHS7E|xyLVn<*lDZl}#rT z?He2Dhj~lN(_sZyk!{Uu9K=_EPaHZ{&!@$6fhyU!)A9f@8~mRFc20vaGHM{`zJR__ z)2?lNEb%2tl0r()D=-RN=Oj$bk>+EL2#SguDko=u8%zqndJn^z4CmQsB%B@8!yc@t zS!>Jz;$za82k0z8n7O+RyvJ+RsfoefE?|s;Uo$~@Y>UK7=e=;uAU2(g&QkoQWJmFs zKnd6Ba^k1H*TTs4{ZpBzZ`OEeUPUPYXqv!>*!5+tN`9+>FUcNN*n=N(Z2h~1P#<%Z z%cY5qDGZ8)yc*pg8UnrtcNecbFD+?BaOld$rC>Q?uS&K40-$7$|)mdJ=o zWqn0YR|rxL31}_fPMa(}t9`ixPjqKSZ#y}#NNM-)hdJy}R=(r+6bb;)Zr_ELFF?n3 zXfGL-bVasb6!e08 z`;MU*Xep%E#&Fq>InJ~%hTp_QShb|-PBBXHNT#?{4a zYubV%W>4(rGeZFbdQ?AYf%|jvFWw=PS+m7~_ z$84%3?=V4dJbR@UJxaWTJQ;{GJ4M3pbf|;xBuY3Foy!vmUElBYeVqr;FWLtRh3Wfk z0b{;ug?$@gUVn3u)2|m2p0ARCyHFCv@FMOZ*ur6aLUd5bHgao~$v%|n;*xko#wBNz zaPH8v7~4S+!O&+m&*hQwq*r%xt9>YH9RGwkqrn0ya>L*`vFBt|GlyO_sQpPxVO_vwJQd>{za-Gn|#{DT>${pG&Ti5 z?81an7cpNus@nx+8kiADPv$Chrmz)FNRj1K!TK-Px@YDTZIf(M)6IMwFc=Y*f$&!r z<({P^b?O0)Juz1cXR#4dJH?{@Zup=S<$zO@TtUg)uDHeM*v2zTg zbkXo3i+>jx?AVGa!aI>dnJcTm3u2P^vaT6wgjqX5;X#u$=q3_!u>+db&x~HPQzvTD zx6@b>yw}T_=a&zczYt94au6~@Pn50FP+t`Nvry6=6S~GdFj0Y#-m1ca;7NL9)EbH7 zN2rn$sAj{Mc)xe*Ib-0+SYMcSh{C7MS$eh^QKMRSnV)u2H9qtMAf~*74OX*&%~_O^ zQzAFq1;rIv-@iDQh~T;3uKb;lICe=^;x1@u3d3~zV?GWuo$&2P=5c+3BEJSlD0NAI z?^`6IUr2brN+=dYOxt_)x_fk}?mHjFUXB#XF?fQF+ zj9Y_r0^V{Zeaq??!k+8~+Av{W{3ZY>T{7A|U`I<~*qy+AEF0}X=(BYQP7}~=c*HA9 z(r*e$N3o>&dpEw#^4Sg@d(F(^%x>?^^a5rh_G%TJ?jGx$;UBPs}t0b@S$d{<36$e7$<{B!AGdqN7qUbRX=*9JJWJ%)Hs{74t&E z=T#E8CM`jcCA4=WcB*(w|0XKE8*Eohjx%>lW%3U-&>$x=QNpnJiURh8HybN1=sWSVd|DA`7%<=%iuWV!(cWPZhw0+FA~Cgo*S1lTq0KoBn(I*;&nKOa6*mi*&xN)>tE9&XlM&&> z)(IRVf~g9jITWq|06FrYHyK*)A+?(N%njtleO5YRSk1uZ!ak;S(GO>L1nPm2B5+lz0_?>T?`yq%^Z`KC8vPUOJM<-tKpUld_&YXrh+F_w0!w>} z2&`?B!<3bH_Sa$E*@q;A3auW5?Tv91tqeRQf7JehbX%h}0M#l0cx>P)(4zY{F;a4W zTB`OaVxnXRcZeJxE9QYxPHEzMKN^HaZ!xoMwsG&0p(3*;_NzD{ZgMtt%Gj?SIBujTq)(oGfiC#A6Wj_Nb^TO{IMNcg=d^3kD6#VK&!>407K)AQ^VY_U`9(M(J1a>rq2i_~7u;$>YYE^CA$AmU38F{guM zTkGxFH2{bt&bTWjuzXspcb*L0W1oI{k`!odWyOfFb}9`^^)Gs5$D5CaGtqANip(Vb z2h?_3KIsYgpgC|A4UJ5Y*A6raAlFard=7piQ^-Q)u3QtpYpIV0_?2A4wM4xD7e+OQ z%WGBLI5)8Qeu2j9@7049EDiohaiodx#evdLqq96FC{q1c59<&4M?_0Y?Z!nmk{FYv z5{Yx{?6PF@OTw~SGj}=ZS z+=XbE{*#o-v$6#H!hFD&%rQT#%&Q~01{JY-2AsD@#J`a6f0cwm%;2QGgf~%?R^x;T z@9*p%lGfkQE454#sI2A}xiFEm9|hK!jvfSI zIH_Ds86BCb1!!wn9tQxOJ@5DmEKe|Fd3a+Pr=mt zMSICV#gI^vw`?79g+T?tN3!Sf!iEM{3H_=9b$e|g;cQXv0jO1H7%)XE5;4%V#5PL^ zyX31H6oKp1tgCKq5hyl{=+gak6D#Ia1tF_sdG#GWfdYI)(^bXN0DM4$dL zn_wG(L7Xj~N=E*BwQKNGO+`P<`NH;j=PeQmFC+q9C1ICC%Fcz24Nt*tfKLmRJ&};X z=|`1C(e+d^>}miLsiA_wy`ulEFOl(_svwh>bTJn@YIsFF*OvAf?o-%8ODpKU;HwqT zH=>le5EY+5lttvKbn){aSP?!~cEpf{MtymJ83_*ZB@zdTyNRMqlFQ{~S`#{fPGMC_ zzfI*@+fW&3Ruv0IslIq$|C%Wj6LSiyY`lY3dC%b|81h|-3Ry>=Kq)a2fO8ge`}0wJ z6uHC$G!DvNrr}!{;VmikM?rN_fv*6dG91*0r#ugiHCY{M89KnC!H8%Hc?{Ozy20N~ z(gkayrDlOnB{}5r0S+M}g%XoRubR(Cyl_D)KC*=(q=w@D?}S8M{d%sH7LNH(njK1q z<9&iC{yx3O-p&f2BJXkw&3PGzs)EJ9zWR_1AE zgsIG=`(YaH%K$7f0XQ0eN6{yD^X2Wap@NDWClI&O8=>!ngt|DK)?j50m54;=N{>&DV^=nN zWL(L(lf9oT1rEg5=eI~Cy^sicm4rn~oo=r3XytiKpcfbA2OAu|25*L*6uhe>#vhge zci!aYss00~;{U;F;rtYA+(n<0e1z#B z7`jf+RaDh+GcEIPJSkk=NKa4o#5H`3x9q$WPR3P6R$^17-)*C3k5f}=MDzmE6|^1f z`@J{&^PF~l-G8SWvSBLYrVTC`IEQjS!0P^SpoB(ZF6$>zcV~+Pp;_CX=-O9j<@n-9 z5bV^}>w>B5G~j?5jlFuY`^8pTa>O2YZNv!)mufGr!^Uxseg!2jT60_!peHYwqegfi zwACHcQh>7U?iO3QzeVD|7ZSm*lGx6x*y$K76q13{dZL*Ybtq8ap{*gA(!?+mpXUr`BtZR9 z?;}t)|BW-%b?aIb*0CZ zi)*P~D+zPnt^03B6B~83@iE+r_~J!lIcZz-VmJyWq+^S;HJ9Kl+QHtS9Ea`caDTiF zML3omnhEfJJ-Q6k*hb+0E2FSJ%ov4#mz; zHaj+tTTp9{Xj>U48&3Fg`4xfF+(XpEL9bOjbIDS2Rt{=HVm~VlwVNXxm)ljmePr}( z#jFau@GU^MZD-BhVqBa-%*Xe=Z0(tOl4|d}raqPkVfzJ19Nky=kJLZ-JYHq}4>5PM zc}e_RB$8i9guF^39{I_zS3&NjDeD;YhIHa#8Cw8^Ya8k1iueoK_7n6uP zF1u`A`kTEAu8#vhmm8!pgR=ps?e>}zw2y=7fliKQ!)_r`<8et!D%$N>2P#)a&D7DA z4;*K+MmdqPOJ-!Tn}f2DNp>yDnZ-0A43>6UFhJ5mK|!*X3UrppQ}{gEe`=I7z`{vG zh4}25HG?g)m+GTiDu{Kz5l3rO2>7b{LE;+!v1Tt=7nKmS%|3{rBkWrGG@5=?e5D99 zc~23e(-r)eDVnCzKP^#%4xK3<6ceh*2t%2=gzT~ zf(o?7tbL=R?Fh_rtM8^9S5aP}NeY!JpP}P3K=`vFaXcc%c<<4%-d0!m4`!)1moKEe zkO+O11iUcgSWo6ofZz4g_>AgbfbDcI`Pvo=&i%cB7S)&&9GpyXiECVl3sm<>VR>qM zxVSF9WF+=i>B*h+@vo353r#5;G1M2fG}$e>2!*rFzQ z16Yc`14__qa~2qMmOZS8 zp3fAZM9Sgc$%n&dfI2m!c?pv<8lQX8XHFx;feH0Q0Jz>7g*$j?O$+x{lt_Ic5%wwx zm4o;%<4M^J^CjQh5fy0Wte4Ne9qfnUGI7(j`;JTC9~}SAO^CY?u(jNCi4W5rfTnyN zFer`p@~X7Exci<48c}$vyk6;X*f?V!exRB-nAbpKEE{vi!@?T=IrEG~ZH{~FC$k?a zpLp(!0(^_>FRG1`aU}`mi7K(**AsMqqeMZO&_~jZ&EZIuA(%F3*nc(bj1;$Kct$t( zb5f9)DQm_^TKP|UgzTr7;iL%7;c`3%y3tMvx+n2$p8DFc9{Fs7KTXM?<~ z!b==MF!r>a0nQ&g?e0q57r(bvFKn`Z`#nMTt9%V*Fa}SJW-l)+=H}=4NeZ5rFCcRSlPEgU zS;jdfK72ACRPC_Ny!dcH8AM(7htEK&lF-rFs_stfI54s^0;rQ{iq6t6Z5TXl=;v)I zv(RZx*7?Wu9LzHRn0t8&!6n}a{sB~%rHvD$XY;qg>5GUR5%Z<^!%c2M|DF&uXJf@_ z!*75cUL4VXVRh{hIQ(;{sSXsgeZ3V`)19tyt;(`r^z}4AFB>6Ws#T`wX%w{m(ct2% z$!sEUUFI+eXOV_1Cj7ODfA611{ZewBYz~mJ6+kx`;H%7SL>!LmDwM>=rkfsf8+$Jm z+H&(>Tg2QvxQ;V#Fv|irWkRrox?6RoMbFft*6dii``;pw{z4++RT3pc-c1vd0U<18 zF_!=Re4-SZeKb7O7^kZV<5}Er0sM>*@X)n47!8qz7=yTqsHOOkQCKYWy+-!ujs!G6 z1j!bt$PJ(S?Bce8KI8YwE#BpSqE2@gC#$`RT$2}U=e0-X~+SDbww{bXOLQBdv-9g(gxQWqmAPp4P`s?b(}Wmktyy}A{RtogGS;sptb zf6=ZXC1);uKfw0m+BCdN!pog&W1vV^Duc}~GI-FYNjkYkyjg%bTEae~%Ke>03AEBU z1Fn)8*+K8G^fys392ghctp7Bw@lo~7ulZDHM&2Tk@j@c4_hS-ToM1|ZEE}kH5|)MoHV`;y!%wDnn=aw7`!lp)4(*7 zAD*liE*(tDrw#W1Z5sW-+LU5o1yv+d2<4Z$q-K2~!JRlpdh~v-<3M#plKjSeD+2!rSA=G8TH)LtaK~ltw->J zzl==qfbbOf$Z;$A7b??S^KUN0N2Y~b^uy1}T=zE#YhdnB2UdC)1@DB!SNb)9o{=N+ z3Ov%trTV9+q>$nyN`2ZQCC@$bZmJ1rCqAlpRY>pf-{OsXpHN1#RM`%35;rCZXC##M_0`+5#7InKA z8t+olW7m0{WrAJ3Qn3fL}!Oa2Ib72d;J5}u?|NB8XI4@hd z(k?7%Q^*UdcA))u-;;V}VCbn0wH2Hj^eY2Xow*`ChE{t3{l7B`_!*}-Jj|<)H)E6+ zA9TtbF&#{h?DIVOFqO)Hr7*J9nV{r2uuSZG!V!MWF-DRSJOYY2xb?t_dxY8i4{46m zkiJoI;qdwNI+aJ{<e2jVl>Z^ z+yg5d*>-SYa?@ub2Q*SiZAb8Lk;r->5%nqwqz>LMovByh%fpJk&!kzqEc1ODe5_3p z^DO^{D*Wq;Sua&gR|}waG}5=8J8p19$>L+&=l1mue=B{u_rjsSsj)px@d~Zd#|3lk;T;r6~ zC#qB4Y@28(>i_7Dr9iW-v-bA8E*9~{w|_@V8Gjyy5|=iL)00TDul3dakeZ+ULL&NA z5&$ZAHADNz!YKH`bUuP-FaxwIyDPW|x|Vp>aX3hK6IYR1u&20w&|dK9*m-nWXt9RN8Ku`;^)*E0wy-a9$al}9RHh#%22$av04w*rWv3MH0vR2 zYb?XsJ0YQO%}3i$N=uN2ZHT&|lAvv-&sYggx@D6zybQDJyTJ7piJTV_F|U%y!4QYq zp6+ONlcn1MyKcy1q#v~Hhs&KgiUI)5(53}dul>hXjWSf*aL^_6z(U3zS~X=ci9Jr0et{_3 zwQOL86pFL_XclT-L}{QW`CkFdArZOs0AK{im(-!gg1Z7|j?RG= zhLz+Z2{((hp+Qo!-(`tXom7^95}>n)fPt&HxDbt~dPY?_#{+?ZGBb}P1LMnl5$_1&M zW=FbU>;7VZtGg3#I!(q0i6xXHX=~J>=1k1K!KZF6G*N}^De5K;0U`)N#1Ru)anYX{ z+@L03Cd}W#jT=FBzr1LkwK1?b?TClJV0&}|k{)KnKd19)^>@bYY>leu%A76!91Pn3_sWvdhSi zb?_<2568$=-;hl){=qRKS1j~@$P8u?pRz2Or1}S16O&4#`j4IogR?rlzA!3Hm3F#p z5UFRu5zFo9j8XZbV~bedz>H?bR_qR{b49-Qn;NQ%Ql1%298svV`@J*Y@;iwV@kh*p zeu_n(s>5FC^k#C2{h{KG$MrmGxlU^9#Jd z{gth}-Dk`IyNge1lTTG>wi9jsgtgj=kNh+-nv9=5RMD$w&5Oj}vla#Wb?W6`n1UMl zLu(xGScR_=VvJJr`Bhu&7No#o!XismkYF#fX03?W#an1k<%$C-&IyD*biKE^- zqFw&}(1uN8^-{nOf;58C-JB;sEs0f$V}s}tC#s7oIkNo$dT7>$yk z^|8cP1Mgq616=3Y=#a0E7KY=fRM8)qu2I}g^5$C|iY16BALXnES=0OqQ0KS<8}u@7 zQ$O4FZCd`yy#_k^JdN0nyT8HtlKgTz^@-)-U2MX!A{YZs|hQD1V zl%9Bde`2zYxsw2>83i!{m*ie$pj;|zdaVC0x!%ZZ<_;Ziw)~#In#G?*Tn(@x%R4U$ z=HoN6b^rTk?W-oAIMzo}p>;H;-g@^Bysn6!)L6P86_8@y35nennFpT=DkENkeeYbh zR^!DXDrY}DwZ0<~h*-v)l8(2cM8OM*gjY#;+-W7%S47s+ZMqy$x#pL6ZA{gTA6-_U z#P3$lr42LUmo+2#qu8d8+ZVWn=T=Z72*Jh?cA86kYf{r`F77i0014v}(R3v8w6(LM z_&P0@%?dWvd-I|X;g<=sTj1SHct$G!VU&q<7md#rZoDl>Om)M^kUy_ zCxfoBLe+g&JSE!(ys|#<7gDIE-;T{WA@!TBi}cB;BzwiWdYbns9F zFh!>Ql2bhAw#7u&t-H1d=2=pyh^d`PjDASuG%_z;bC_ ztRXa_rPTtrA#Fp>glyd`yMB{Nr$sF?v45aiTfAOo%M9`;J6VySTtrd4LkzP5Em#S* z$A|#T?&>hEhX!f7Z|hs|)XCwh$M+74&jcPK`kurzjZDGHY}C_2eZ%T_NNVGeyxWM% zqY%~s5_3Zl4|4@CY$(G0REy0dyKN))}2NP3mT-LFO6Rlc3#U)xTIrwCjLNndL%f4Tf%Y-k{d+~gxWxTtW= zkC^`0V78H@jOt&}lcJX>j*<7};h2M<&9loE6!!OIO;xN2I;-QHKa)J0iSe}1Oy#Ry zC4X?hy7_N}1-ag~1K+Zzw^Hk4Q9p*5eq!mmK5vUhG zZtiIs3jq8Nrs}!iDd2oSCBy$Q=2!076(bhT!5j&b_g|;w zkdWPhxnULgi?$$bY{T*r_??b-^5F>G)cE&JECf83Hj+}Zk3V~6Ae zqiyQCSK2H?LsXTm0U^NhY(?|KeN^uu06`pfWT9FA)Pi|Wi z>iGlW@L=}6X*3btC@si`V?;$KK<_|mTd5uuG#53-<&+L53uwU#0QU;}>-Tfs^v{Zf zi|1?>1yAHZfCQfw*-CJ2$-dU~`#5%CY1}Xft<+obA_z<9{rj8lpO&KAZYibt$E=X0 z1(XSunp4+x<7JRa#eI}}VqBRZjsG~kKqe17raGs)@9@S3 zsEs8z`ADeFWdlg%jC?PB9L6-PweeK9-qh0x@aeU!CEo61{Epr9x>-sD$z1z!UT;N- zk{1%muaaO$z>XPHcbqUa%qh;rYX{Fbw#9*`J^SIRlBewJuVgxRV*lvq$iz92PRCZV$$IsQI~4Y1eNOjgXuX`D2Y5ZVv?=upJLv9 z`b1F4oxhhM*l-b)hfFFd)6W1wn`0acB(OPAtyBI=x@peI9AO(pLgSQaXI^0Z?=#-m!&Qn*f~9|b)kh|{K6x8* zZo{FHG}UT$>~|6+i007j4&uq;{`j={e_HDyz7G)BFLE?ps_fj@pC{^ec#A~o3yG9h zNvy!lxYRK8G;9XUe4DNbS^i$bo#qtQ)jrt)XRZr=g)`IvSR)XB(xP2<%$E? z=l$YK^Og-d;~{=+5{3cv@&ybi-)ct~Grn&cD@DcJF+^plGJ%c7kum^a-ACGBfp~Vw zoymVgb0t}}Ysl@5`hkf-X`WK(;)CIJ=4BA;!js?KUB?hj<9|u>?=z^Sxv24`$C1&I z0Y5=Sz7rBqwX=*^>i!4x97PZ__4Un>MU!IeM#=<-W4o4L5Md(UB2o52BK1`gPzgQS zBALS?&q@C-=(Ek7ys_P3%NCHMHWCXo$9iev-52 z|7XM$U@F}RdY8z-#Vgf}-D%Y2J%-6A`ZJt{Rw6_fjj{?mOqg-U*qfmN7w9DClAgKTOYL%QLuu)C}<^dWxq_u$E5bf6=m$2;P09}gKbR>e)P@cwmnR>gXaAV>&6me9y8rdbb1rB`ywWh!{DwZDhQJ`>MY|RxGqkPP;~q-rQI7 zr<4Z~cf8;$%80f$YMl>MprIv>S|43$e_u3ds!1lJz@Hy7!if7>yD26Zw3vXC#_Q%* zJ}}+t-}6v(5q|6)Ajiq9?bt+4lC&wBr)|N07avmtcVd2 zd%oUga;CzoAf_SUziE0{%x5ZeK4d{_#}$~FYh?%${%HwotGO&jn#(#ET$Oi1VjqL- zij#%RjBe3+>HaR^$v5LnR52efc4pZHTCr8`&5c)OvN9Xwy=CNRa3@a ztE)cSp!DlFUnW)SYqB^evZ^`t2YfmkY#MShYcao~MY&IRymOyOY^y-V@2vp#?VXU|Uykt0ilc?$ zs-Da_FO%3z&pZ`g|H^C8_@gVwX-Y=;tte6XLL%c;5-yHaS@m9dM=R*{k(RCN#kC$) z_sDyYwkn~PbXBwv^lt529&>9Y5S?c!85$)i?DM*v&p@J>rk38&iV|YA1h2cXG{o$0!w~f^k%cnmb2CY?Gtj;$hp~WS;e` zuwXxt+Z)i014u(Sa7P52kbIVXd@S#MvTku_`(H-e5F?p1{MeWB+E%m8q#nE^+NaOr z>!QehkW#7;Y69EcL&XB=76y;C)1WwGoUU4A=5WFQcf=9#nBmi+gfWweF@1L`5=W=+ z+@PSUO;D6;2KZ-Eu0e~?ERlzX^1LHooXYmSj(7#*M#uA=kch4FnCLHb;!!mIWS(Zn zF-@_Sc1#9auF~YT{Fji5C-yB8RWBqmUnNl+K^_~mJsawetY?&iQ+`p`=EX>g+19IC zm2-q|DE}kqw3RDbGx&pNxcZgY@Qob zQGdy2QzM-^k_)j^vtOUSM)?(8PBDPb|y*3ZD-A;aIsC=?U8-))aq-oUbSj z6$ia%(@s~-LQ4$*;ycgfSbD%a~tb z@jFX1w60M>^are8!7d-~K73>wLt?{$eJ4@E(c#BDda5tLYcaQnb<*%Rr=u<@8Y@Q| zRSDeF2Cl^XTT!Csg+%tNB$C@ERKf`yr|3-EczewqL)u&=q)}GstBd_qTo%*%p8e`Y z@I3REAW-hYQrBb@uvJOqTM|PRdAUec+G~<~Hb5K0QPpX|EC(QR?k3vl%ET*pop0}g zKRSTbmF49M&cN186DnbEk{R7wap$8FQ-G}>r-~pO65HayDe;VG2wIbZwu5~JR5#C) zPiQFBC#J7WTFXKy+x`eeD<~Vf{V=&9rhE)vh;0IdBz^Q)r7bT9HWvP!hOHJ{q0_Gy zrM0BUi3crmk_f%j)s09`QTk~j){LMMNN2166PCF7lACRm&4Z^kwmk5&+}^=@AG)~P z0S+%eCn+-FW6a=<@AY~#VaEu|J0X$aRi$6u*jdsYk*lY*?fNB^zIl&!Z68y>PL2>> zq43QcN9_xVoL5QAYAS@Z<<(qveF%Zp)A%5Ic$%NJkYQ*>O>EBB&Nh>@-#8k0>_}gG z4+RH(Nr(86GW6R9ouMzaK@~h+@Pwx>0C>c=O_@|Op~(rOFrg@8F``+I#X^if;0+Nw zV=b&s>MqW^gV^zJ8L@t8>Q1%4$imz{+d4dLw=xpDIgh)qBLV>Y3<9aYMsniA;K4}N z5rkh6m`iX`fS0Wt|nXjMuRo3L4r%L0D<7pxD(vn zA-H>R4eoBi-8HxbcXtm24etNWJItALp6{JxF20M&zTj!Px~lfB{adSS)mmfsC)XO0 z{2==R0atoL%;=}WK< z%qgPw*y~X^=xmhDou|2frzPs1k;wfe66oLMUm!Bt`m0W@bJXk1)56CYP`t%@Q*V%- zm1+IS=p`e#L6u=quJ*C>5%Y}v{skvOZ&G_m=a{>LhtB*K)H%qQHV3$E^U);wU}!k` zvCch6E(U@^bDLeQm7xHFjmm5b@`XM!LgSs=x+$)xV>OsCx}DXiOS?ruCi0eiENw0* zYR_?>w^cN251`!#VHNd&*hR-xz+XrQ0l9^ff&dCr4G{TVRYab8{2j$e)OWmsS6!ad zh^PC;BdOpkyj->VoA@9L?ab{B8Y7r4N49Z~O6Ps@uF1I0yjUkOBJlDuudo$;Xrlu0 zMRWY?yySH=#C7wKV1iF}YnOC2FVL-oZGG?d{tzTugXx229NLGX)EK%@-&S4)*ZK8L zMZShpbU~MZ(J^2B9TN4=NaXzz37#2Gc9BP?p8B(f*{sW@;2K6q=6!{=hR1G}-Lbn1 z4^51RJo;$(XtI;X6R7di`0<@|(X0g6V0U}g568V%rU2l@-4b)m(Dfr_tLUC(@9XsI zlnWWV$-UrDxa9f{e2FsW=B@84`&GesKERs<*ri+a+eBk4DV7aK<_+xYf=BTJfTH&^ z_zA_)Bio^n2z*e)eQVowsf@PY16O7>%96RP#PQp0LraRCZDfwSyLjayZRI5wKBB$* zdWqdrh`Loe0y603CcNPKveg(}q3ux#`TEW*Gaf4%UX63^bobu$ji4$HT`;@rE$#*r zszi8+&#Z>QTgD6fhBweL`Vwq07f@cJe+UxNdG}!5FWSS^QfltkAxysN9&=Gv0zP;? zfFMZ*j7*bsa5^8MlZWKT+f!UUu!uXaImSv$;ox><3OJiAqW@BPM_?T;D64 z>9U&Ez*VAAQ5Bu_cW$jpqkQ8k!u=Ct(VS@x)jr`cHF#!epAYCAUzffC4NxiL0(F11 zyu?!H@3@;yDY&p)JjxZkGEy15{8EEs%JW_IqITAHbfGG4f=7PShW8B*yju}UmtA<@ zG4dW_DafE#q)m1nYTL_um2#I}1YS~Eq5zGP=ddhr6=~u7j^;x50mF6S6LXNBd(lke zu7MzcEIdck8jo$wh0BqNVJ&vb_Ff!4-cP= zg@ehHS!-g%3I`tTlb{O|gVhT~`0s(ZJnu^R0PpGdW*`lxFfF$xB`IaEoWeIEz5Qv5D_ov73nGc6xS&nkCV-o&e?Ac zRNf)57ts}&@7zQ}viYBILZ&&hhj10B0rt5F{S^^*vO4ZgoCZsEs$2bRep7%EC`r%_<3VczD<94@~_|OEf)LB1XC%^$HpHp|_GwHhokAn1;B_d4`e-n}&&WjT_WTNxU_ zkMq|Yq)q<=vE3WmM?QpI!_)OS@&Evbi)O8ARBKuA`92q zG#b$oVmF^cJfn9@L$?I&!fn+I4K=KcRvce~Rcr{L#RS(6-8OH&fxWQ+u%lr@Zr{G1 zEfE-allM~S4?&_SL68`4L9}DFjZOUoBBuZl;0EP!x`^&%!Izp)RQX%Kmo3jo6#o*5 z=J?owupZm)cReHcF)`95vGJ!RE#oR0eg~yR-Mz1$l&!~cEtR7xZ#;`Lod}3-k;1%d z%FlUJu5BU6v!C?XK>=2-vq#8vZq;CERXCCThD!LR2T=u4y`v7drSlxF`mDc93Km*( zY`$yHzBnb`OianYs^EL_ts&WTXfUU z(K^i^f<&`+O7h_xW^Wvl%LumA6~#Fu9zN`8ri_s!|i zj|FhNOXHmD4jcJ#P@pz~6jY%~+NG_F9Wqp!-q9U*ir0yTdRnqru-UeH<057eu#6Y1 z2K~jYg7#-18QLDmO})ee+SKWm&QcdF+DL)I9Hk{zsFwSA0XybQb(8Tjp>4a1OKl~z&!dvFTi2e{H zB3IV1A5on7oMR!ED&eWx_$ zRV6@&vO?1)<&q8M-I0|+MmUQE>@OSL2!uImjBeHonH4+)dVBB$=~i3`{MdIUUpo({ zELHB{m@^IY)&T6C3WXM3fo?p_Qq5Agy49246hMA25vvB_w!gGuXnSef15X?tU*%7& zi|f2Li+j*XG3(*`nt zQPuPC@6L3T4xTvqlEP2Qz;~vilNZ9$@}Yw6!LRF1564hnL}c z0^5DlItON&VbzS+|4HEbu<@g+413(_z%A`z<^VZVsCRPf%lYOqYleCIol=l@h-LCh zA2L=#xXDt(N#%-h&6h8XN1bmup74^pN|?<2%HMGh-?;*q^`{OTF78u|jZ zX&bIDw_$r-pmvtngq%FsIa9WL6*>;&g(kncsab=x(h{txMT`!o@FA}DPX%_Cu+_soX61si{wb&-yzZQj6}sRkne+GSQs&4I!*er@kIb5v{36{s8uO{vldoEY#drVdl}^;BZcjlI_G* zbJ!Q1ore1mZovS}%MqpPcSv+TBT@NFB#u7#s>{5GmWdVDmcZR!Pk3eESVG=+Pm(qM zbO&khwetdadSp}U5ToH0BOAo2IZues-zKj3L!U()5|jNiG03VaB&`=a3D%GnTfp0( z%5~AoT2|SH5!>y&W)7l%g++n_Q5%B*hX-3&_l2f=ra$=Cvnx$*xw%G7GOy3u7ZVrjhE2W^I!M^FHis1O8EU{b*q9)7TEj zCOa-S1!M2tk}1<&;0oWg-RTUiS_&s(+F|vdvN;a3&M{uSR^oJP^?`5)x*j6yqf$;# zC86w%EIrifj6vh?km!C!qUx7OB(sL&>W6ATKcbz&rRX2$WL-HD`_D4=#hOwlz3sb! zQ^laf|lxLq~x{wOsNAZ8?#?_+gX8VI7sq`?Vp1FOe9{ zBV~bC7C;xr<;A6p_QXC(s_3iPzD`hPFCTB}z}1?PM1X%kFUK92L}QfMZg&U(Vyv%( z(fQ`Zd7n{Cq!#E%i7LHrEvHsGoXuj`{!VRa^MLg>hD4JArtYiNSeSfl(kTF{fVA_I zb-0kmqetB}$eDm*7iSVNlyHa`wSqY;q*2jqOaswIlnb?Y1V7MXT#Sxsx3ZlU9>Ha> zX1+hWoR|=Wk;0F`bhb3LIe78&9x1^eq9x3U@LGJk8fc=Wt4Wn6RJWw|g_5}q@sE-S z30XQ2Ui>x;ea|xz)xSg{sSr=DbJ2;QTWR6!3G%pXBP^rbiwsErEf5usD#-4jZd3au z##V=Y39oY2BkkB?N?!}drMV8wJ3%Ik8N+<};0hHD zmTDT2YJ5%cW_Paihw2H)g&YC9TN*;o2ZmnslMmSK0WC%6j52a1m!NYTqFge?zK2yZ zr8pjIe9I;j8G=`>rLuMQ^Bp3FVD4c<^HKRjz_{cek{% zuP5OiyhpOc*45+!6X$8CcluKz0P?z*ZVMvf_b2&PWpFjh+(|glvFG`>X(Xv~D=`MUK0tc6)?U zOTohXG|Vpug`AIS18%vJx|gP)EvMvnN|eR%In(Q8%|RR0)KKk-im@z?pIRP1D~!EV zltsu5iNU&^e%C$a6XAXF=D~sOjh)`w?KdpYDe*E|GDARbOIw;{}s-bb;^9~y!dcZF(_xyKF|H$g6! z(_5B9Z8WVUhg5FN!Hy^PSE2mY7+cA!@TV2K3O}A(KCSSL?|0BUw~0$RVSU#ay?!hg zx@d~Mm8nsZ?%VlO&T%A`L&y!NJVB-?O9>c>x`V&gE{9Vbp+tl389xHE?wb1@5?`N@ zsQV=nPxMx;T><1$;URE}SqQYv31`9G+IxMBH={1LM`Akz?iih~2{0O~vOnquA4Y%d zH=)CU@pS(tw>mL_{@~%20|1sZ;47Ruq8bLcvt_CKxEMV)ZK}Tr_@J?8XDQx@ox3{z zS^ZR>7$VCzXeAbdie720-gEnjC^M$r@G9d}`HhnsSuzd|U|2K>vb)3)PPhZWB!)il$lvInQiKv#{N#`3m8F!Pm#1YiB29j|l+lgo2Y8y7ZvMuGF<0s6vt1Ti$84DZ_$*r%vUxmT?Bg z9+;V3?@BT?edQq)`$C`5LLObQ#mOY24DZ=DGYJR{NYOC)*>Z3q{J zoHm&9ZKX+3EIe(0uznbL^=4%0Wlmg{s}kF1`D{5cyvVot_M`6#+g{G74hs-H3d42| zlCp~LG610fz;vG<>xB&nv;03Y9{rVu2`A*UQzBnLTU#upR@HMl4AL(rl3w>O+QIj3 z>~e3X!hcj(2v_f90lHYYoJu{8fL1p8iSZXUeaun;IFE)`^;<5UqB9KZsbae10qM3X z!uBGhmURkMTbeN??xGEK5Z?BEF9Rr-VePsac+;R09F=;4$1ld`6=2mq-ZJMF>4syL}J) zT!*EKRe+(X(%gNx<4LJCfRNr{@`3rl(VGIrs?r4;yuUu%DnVP zJQ4~R6N{T+7~~t>6XD=BE(`u3F7YDok$cOw4Z%AJo36kXxLE=#w zQ4&iazhCLXLpbcF@YI=_$R(@b&fg=WcCk2l$@O;s!}^a9pi5MA<1WSa$D z20AMZ-244L3j<@ci4c%0RAd53ny=oa?E6msaoK|O+O;4BesMTVXL*<~q2Qz9@Osmk>0i`DxWtVdv4B(l`e z0&jT;gazTxqMTTAX3@djL@f5p+aUJ@VWlvv_hoER)~Mh*L+YqXQoH^TB+kHgR-AUg z7;LhsvWY*2wHd(jnk-pttac;fC(S zt$PH0E3CIpVKE*F_wt0$Mg>Dlau+Drx8ERElR#&2h7k1&;*(Z-3+j7jddY((fLli< ziW04XMrzj!z{Z4;F*RGogpljI52FT_CRj$PTv%gAJ@7wd-6IhEwZ1K7?-wJnhOUb8 zq^F1T2$poGfud<3(@g}nXX4o#IaN0q^OKaF$g-li!jcNnYu$a3x(gTQ&&R#KmhDco z6U;Wg{nXhIwEDK_8Wg&{>f9ma?Z_-BN{g& z%x8&drZ+Sb6N-;e@)@@SUd!bhlcTEwL~mImvT`jS1v6NMzHt5_NG#p2+#(g|hNpg! z?$#e+JY-L5^2MJ~P;=|t<`~ho`0bg{k!K`Yeu+eJLb}uenSz7)>jyUQOwTb+yr)2t z@dsCJ_+an$J>@RtsyY@^^5jTMv_CXSe*t%2pe9mA zeA6VZ{|EpMYF}=h*={n>^@I-=v3veUaOqI zOWP22CPPEY^eho0;z-e?Tk(kD*dOHwH$39G7ITT7aijR*4S^fE zTjnwJocEN|X&7mvzda^A_KZa9FOi_bv3$Ae*bzy?hyql6<(caat#6!$4p*Ez-D0%J zLO7`?LLx9*eA#n1CmEjp`9nI#)k^nBDHuv(EdS{_TsTPW>o;hY(Yi-q2Y!-E6uWql zka)6`ANM_xL6$TxIbdz|sZPpYm~SrAD9*J-qV+Nc-PqMa7)O)#;(XZzXRge%1{6($ zvP^Rz7Zn(P^1_Lj5@uHN$Co>anq}5H#9n#xSON*V$);w%fod^tIWlISPgH z!^%4sn6Xny_m`Q(n5=9)s=)*Ps2+zV=6v08rVJ-}Aj#g;E0r@`(iKqo;Wih>2L zgp=4ISHO}t1h~L3KPa>}4zIr}QK+vyrjLs&IA)DI6TEz~Z4#|QarMa|G6k)I>MCXy|Jm2hIHdvcUtvnCqB{1~Z-%V9y(NYT@n611)PZ>)Xb)=)CUg&*IV$=Y(d0?yUJz(5OZ#<5DFpv~PVr`Z9 z9TJnzNOb%XiL?hELzo;h63%fbwaLq;liq+QEH6_S5&=MA<&+>C4{Oq(&!4heZgsYt(mqt$CauhJmG_kT z!;uke^vByRMWb89XWOe=+!d>k*X}Ld*Igs8;{f5XTB6qgK%(SbrKbs#*4~M{4rv!X zL_HoCNg-^>jQ7op?>6$e>YJX7yWhOXcx#$E{ID~;4JoWjT+WadCSS7i6^UDJ9JDqf zuuEGV#%wQs^-hNa%UjCldW0a-P&l%(2Z+9wV$(iw>qJJs&L@z4)VBlQ&x2Q$N=A;b zwmQBQAu+PCt?}~l5782EZGrkk??1hOk!Spy41um&LP=winot&b)a}0LzEE2mh}oXqE{kNf)W8}`{ZPhx3OhBesL{1lIWyK z0&#Q0{r9|a@8l7N)7gs4X+HaC35&prQrel%>xFs(fGl68NK^T$)v_7IU$Rx-6pOo; zE>)+D;D}hggnEsB(ABhq{uSNdUrw7LUq%e_LOJuLS64nZ#CvJ<5ILNk&~1=~Hq4dM zX+(yFTPCrLPot8bcaR1)+~NiWY|Gn&7s_vC1$T}x>}~ulyjK!Sp=Y5w}n{HxfR525qFoBVH8N;N~=o zzu0Z5YUhztp2wLMJLUQ%H)@pm%IyrTRE}O00N6=k-Hh!5C66s2)rz8aR=qL?Cr973 zlt;zH`}!f}d&D|wQ}O%YL&r$ReB-A`KF^5u5Kf`SJ5rJ{>lS01&TO)>2IeS9Bk$nZ)I^6g)O&V*iVQC-jv2fS`^wUU#t;_ZZOAB3?DNiWAz z&wXVt^zEy>J!e!{x&GVg77Y<{T-ejNeHUurJFNPG6*YBCPmAQk+OuYPKcdJH%VlGeUY*ApSL7^FT5+gSGMeQKQcbDb}f zX&p>&1OTtfy^qgg{2IgPWC*iJG@7uHY1c?;lDzs?NtjqON;2Tgy_CTnV76Y~exE0% zuQ`S9eji|(k|HPG(-Xx(+tmXA>Xa8pyD3B_pU>i(=+KpY=WV7FiaTri3RBQ2#|NkO zRWtD_*4xq-pji`2janwH^-&NRni{fCku=cebW+b$9TZJig-6xMRznu256{D3|NB4X9LEq! zT%#Q4cZ`){1)7N^N>-hf?0Dmju@pAX(}QY6h5g?lG53r_?=O)ksH*iCR4^^+PpS`H zeB&N#*D9<%i&Ol?u0&+aD^5;OS*FC($^@VMlKTPh0i0P~BG>#ZY`Z7$HG+i^Dtt7^ zgl2wtOLioES%!;3tVK}*LV238_@d$5SCGu0s0$^%h<4IsFY4}to0CX$4SdgO4D^d4 z4GcbQxl?+?Z8iq^3(!JSAb)3S8M!0o3t9&fZvdPJt|I;-<>IIt#iOfa_r^@k$+?^4 zD103BL+$4lS|bM`t)Av+)<8*K(pZ+*`3@`=01%CT^`7YU85IGbEbH7Q{s4C0yLg9A zN3S$7eZwM5#JGjyQ24lsqs7zr9qO6rYM=lXOUHa$4wrHjY4=%jfAt@tCB7An{t)RJ zkcT~;If6`>#Xgd>duxj>hM$RHp)r2@G5B{#%s(U1_e&(;AARj41Ue^~iV?c0kfPe|5gp(my+2?B0J+#K zr_hqm6u6{pT`?y_P?W6`u40!z-B1e(#lpuB*zKjX_O1ynd{%NI|AKz)OCAnTl`SdW z?qOn3%y4fz0BxM10*#3(6FYaPS`G?ZyId&2s;|WqoXp>M%8tOGWRb;Bt|VP%{djDz z9^DD!)rWx(>qcA|#oxRx-_aBRwg(pjfEMgBk~6iq=jd|<*NNeEMiW&^&GofHM;2h7 zkFd&=udJi$WhpNA_fFvsa-`7O8_*iA$%sZh3}PJE54+JJHUAJKL{5J+8Vctu(09!< z`J)P@GswS2>wz_yP}Vn(#e(9+`yCPs&q#dzB@*k1le|Wg>-(J5*x$=IUKJ>+1veND z%0$_Hue`_Hk@h_g13*t5k>C+$t;s7c8O0deCAGcTu#yT`&7ZzSNCNF+9={=rbGJlx zwA5b=pysS&=-Wm6gwEbI>G0P7juK~ov@%-&PxBTfzINyG#*)j2IX2yOi`}n z*4Cz{4RRQQKA7o_vA^`K@0L6npPk#DhK7`?d7%_SZJ__PTU*G~t9Y!+59ja0j$aXZ z9-r|&RTXP3!+voIH3M>-Aw>oQfHVrmy;2F-s_P1pl!wrwT3 zg=<I1e#02qGI5x#1&1+yL7fy0b`Yo!NpEuu--stuB zri0=6?Hbx^`Ea%X(d`)5ir~zQ_ex}5xEDDiwotWUVGql*pwO|?^64zt(CE2<4g`UVhUKmfZb)u`R@Zl{i~5@AIake4 zaY+J`rJrS=qTP*N{{R5RuQX`d#+J(>9*5LXACOI!nNzMJGV!v-=BaQHq`c;}U>J2L z5w6Vi>4La+xb(jB)oVKz7XVjmZj|KZw71Rw%aK5Y1ieGh^}g-__G5^bZ6J8p=X)h* zy8NK->iAMSe;SaqSoFgZ9O?dYt~UTYf&OiuBf!oGfU4% z41mfiK9JWtedSQMMh|pr4AVE(#9-qCe}DxC9jl=lmhSh$OJ}9=?C@kW4Mg@W5}2XX zi&8Og0R=)S#pEk(qjH!-L9TJXNoe=CA_pU$+NN_Qp9057@c@IQ1x-S+5d(Jdx)w(7 zCYlk3F2Rjf(QGBj}Y zkLyU_f(h3WApqXJAeR!fI{=V(kR%plL7#=iqLuo7g=ehuV@3yhI;78sed>@@MUvyW2j7 zbt3S=N19C`Jqtv!1R`&e%qr~~mL^rNbTXol*re|kT;%+GdV6{56jtjd=B#~N9#rJ+ z;t+Qh4VsB3CHioBO>IM8vMI?7N)r9@vp@`jTI$~mL`eR*fgTr}Z1vUdnd$)5SQ2|o?tTw!I1S$uM3V{JOWJ9TS@%8qML6RRaUWH=kpy}`Uh27XU zU&xHQ$T;qh)K!QBdbA;ZXITs-0W}(jGz&ex4KUq4@(H*X-euX54!sknH1|A zS%(!zL4c`Rzvqz_ud#MT9EETLC?bj<9soPyMN0(l%LW&~*NWD%`_>^FcbO}7wV);l z2{*Mn-5+Z4I_LBFoc_41B0;Cf!#w4?X2-Z^wE(Oq>b?KYQ!M`y2nevBoc~H7LO%RU zApQe!0F?%gza;w=YUH?N7EU-MY~jj`3S$27)eqA6M!#b9fIFY-_ErUJ@_$q9Pl;H@ zHa+XQf<^@D^+&Ftjc)`j9YM34ltAq=y>v4eD$==ZF<~nnre>%v4spFFY!j0&SM3zb zOVx1VQYz{>aeVmCC4%Dx=r%xCE^{12-8Wu<_uWx~&W%ElRX(*4yG*)@;x|5r1feJH zHRlc$Mu9fCko|+@Sj)6a=1ByM9YY(k3}Bjb zKdJk6Sj^}q(sX>2YdcX1*D`qu$K^*Cz_P=t}@GprN z2mi_Y-%7+5f&v66&1@7E^cM{5XBY864GF*z)Fsllvb49=)wd@y(6uKr(KR=>vLkW; zAe&hk0u7yYEv!L-sP(NZ0Pu3UmIhW9L?R9@04N4}c6I=as3GXbhPJ4f0B{(@SqLQv zWkLu5;{TMV4=T&qMIODK4;m&Ki`ZEl04d{OpFl|lx&ahLK0llpL}FVr7nBhf)Dd|; zxh%d5Vj)x@X$0s-#Q_NRR`$B)@($M4<}L}8Kkr%y0?3aH1|+rmD;?IrP~X%-*W50F z67gpu8jw`!uLLMdT?@kmO0=I}0-)p^^vr>zTz{p!uye7{voe1!4FD;p$PXkX{woPi zPuE=6Qs3~sQ39pj|GGUp(B0Xa4}f9RP?Cba1|XYSI_jF68W8Ck7}y%x*`X@(y_=MK zK`ex_NCf;~F2hGi?*>Ec0QgsV<`)0c074c((kk$u4+jfsa7#NQL)!#O8qgR2Yz#+G zZB8&&Fn`rY{j)x-f7VB7WNT$X`M1@ATF(jA3ihu|R6jFe{7)u(tACRPZNv%A3J#@~ zlH_Lwq6?ep1JwSgd3<% zaR8L5r74IX8PGrfY%(VR=u=?VgaNS=;$M6?Az1;e5Ur5@Kcxb|78!mf{GW3Fda0=Y ze0(cwLt9;YQ!C5AUMdIaPiYbY@?DzeT7tR;Rq*cqR#Xa2;p{hBUs~c|69eeCW*>Lr z1A2jP4%9M1A@6?Qdn}0J|E%)wMD%CxF?)F_HSyNof620ca)%7rB8s0!wykoq^&m2lhv^Z&f}*a2bx^SWhF#pG%u zqS|%ulyZE#6RK1cWih^BAE4-Jo8wW78-srs8W<^jm|Yhz4jo#jV~fm3ik}?y{>J!? zNB#1K(c|iK?=cK2>)-btsXVU;9{i=Z(}AX{<5p+gQR>&F+gFhA2L&OJAM zgmaK+?IxNzlwS*J?&Iu*33oBD&Xp~eZ+x%M5p=hq**3B8wOQW>-jEmo+~5`Omh~7e zr0X{4V?^ssI6*S}44GSq+ttY|IkGv-dens0H1hrfJGCBh)ekzFtSucso`LcQvg11k zHG)t&klUIzX5O&zl!7}PqDf)?uZg()4bH`{d?@U62S#)mi#7>pW+~6Vi@$o0cK|qhLpytr zHgqrq!2JC9!O#V*{Vx>{z;KMxBYSmt<4)#nNWF@edC{gUfXAojp)U8cn4hF$3_`bD zFPMQMea~$&*E`croj?hxsQ2=}5z0VlimRX_UY>T#cOYO8jd9(kF2&{y6FShC3t()G zEp=UgKj6UkpOY^3JafS0C3!gdxZJE=qFe~<*LOtlLx7~6&&gku{;mbYlKDbEY{@f& zk+v)97pHhCi#lr#M#Bco9YSjUJZbG@SRuXkO!^4u3I09lzOsTmBOH5unHouqvdr2T zT7%mwyiP<8jUM06GNW^$F=Ccv^UK<-_B>r2a_v$DWI2x9jQaCzYBWwcEf!Eghn=ha z+bYn1EZ7X`1cZjUza91wDqE=dQArFz^KBC4W=4>wKXxuYcJa+du!7|NAWno-kIw0< zmRkbS-GP~*2Uj2{n3U9&Nes>_XZe<4S~?6qIVRD^8cbG6>cu6>?;kC}at~>Fg9n%m zP49g#`tjx)-&-fUo)`epw_7&PtMAI>-~d2vd`u}h{r$&r4Kj9kC7pwiR3sZwq1V%9 z+~x@Nv(B;WuW;<#G2=6;6xQ@pITK2H4(shW06{DR!Vn4MqTFc{EF{1xdC za{m}zKTo9bB`wR_)0PK^`fNaP3?Y6ymHy@^iVdoj z$kxZcyu8awAk$`&YBXo(_55JPZ}T!tu5|rk8lI-)8k8`Zu!7kU+@^eyVxS(**fHjS zi(nj#y`EE=nuNg-gr|sXB^p@)L8VJN2owhwLf)V49!V9>JdMk^9{qKauh4!7ABwG zd7y{_7*?(A*Pn%H^q0aEx7ruXlA5K^{t@q?GaSAL?aEupN9*<>g)y%HEcIBQeZ|U` zv1n4;;%j-b6KUqhM#j{EY00SKly${;>09k+0MNJu^@T;_)<=WUKud0mF;6NcDcM@y za%%pe@-7=_q`S3RuT(E%`Yfzm<+d+v&M9sKU|t5kQVjt2sC<)_14oeU?E`-l{7l|W zR}*$_b$Hk=P8hs2`b zE*tDj{2SJ+{~YUaaJb(*14s7H!Qek8PRiilAORSEr#}Avq0rm^HMafxU;NcIvVnpB zU74Wy!OsqJ^d$?kBW|J{S&pK8hL-fTSjI(c*yT}(L?ZLx8aWEbScrWl(krr0c4za( zRormph(w5~_526$g{W6ozJn8M|9NBJJ&+)cM?}bxlCCyU0rd@bdRz8;vuV|UATNp{QA@t(Lvy6{{n(g0rm`a;p z4Q#gcNfHshW$XppYs{1xA`Go&+gcv@I&7BuwAl6wQosjCfL9tR!ZaE4-2$~P%dw_z7VE5QosLp=d9!K7%3$Qx2kWA z`laHI&P?Y`SnNA(1_TKK>wE-Kcfeu;0GMNRP0OigtOO6ROFk1V!hxTGeB~!IqjUE4 z2ylW2Nk?nDPVb+lex^(fL>PB9)>B?XJ~Dj`6Fa8>+H&_dy9JqQ8XK#8C31%_oWpJR zccRPIh;UbNIY0Ww&xWU(Xx`b=+D%03QLxL7C0t zzf#8k_s|d?^b-G$&Yv>z^O8&dmwYIJxdAZ#uAlpRq51zsJc@iP`?dluCiOc-P7M`U zLUO;lHaQU1#Ny=o?TG)lkZSmHQ1bp3!S{#Aq29Nxfcu19W1fdg_bAr)BtAWmoWTEF GJpLc#CcAC`