Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sql_insert ORA-01483 #2574

Open
JuchangGit opened this issue May 10, 2024 · 8 comments · May be fixed by #2606
Open

sql_insert ORA-01483 #2574

JuchangGit opened this issue May 10, 2024 · 8 comments · May be fixed by #2606
Labels
bug needs investigation It looks as though have all the information needed but investigation is required sql Issues relating to the sql components

Comments

@JuchangGit
Copy link

JuchangGit commented May 10, 2024

oracle 数据库版本 19.3.0.0.0
ACT_GE_BYTEARRAY 和 ACT_GE_BYTEARRAY_TEST1 表结构如下
image

配置1:
input:
sql_raw:
driver: oracle
dsn: oracle://BPM_TEST:Hzsun.com!2@192.168.2.15:1521/ORCLPDB1
query: |
SELECT ID_,REV_,NAME_,DEPLOYMENT_ID_,BYTES_,GENERATED_ FROM ACT_GE_BYTEARRAY
buffer:
none: {}
output:
sql_insert:
driver: oracle
dsn: oracle://EUSPBPM:Hzsun.com!2@192.168.2.15:1521/BSDTDEMO1PDB
table: ACT_GE_BYTEARRAY_TEST1
columns: [ ID_, REV_, NAME_, DEPLOYMENT_ID_, BYTES_, GENERATED_ ]
args_mapping: root = [ this.ID_, this.REV_, this.NAME_, this.DEPLOYMENT_ID_, this.BYTES_.bytes(), this.GENERATED_ ]
max_in_flight: 4
init_statement: TRUNCATE TABLE ACT_GE_BYTEARRAY_TEST1
batching:
count: 5000
# byte_size: 5000
period: "1s"
check: ""

同步1万多条数据后报错ORA-01483,报错信息如下:
image

配置2:
input:
sql_raw:
driver: oracle
dsn: oracle://BPM_TEST:Hzsun.com!2@192.168.2.15:1521/ORCLPDB1
query: |
SELECT ID_,REV_,NAME_,DEPLOYMENT_ID_,BYTES_,GENERATED_ FROM ACT_GE_BYTEARRAY
buffer:
none: {}
output:
sql_insert:
driver: oracle
dsn: oracle://EUSPBPM:Hzsun.com!2@192.168.2.15:1521/BSDTDEMO1PDB
table: ACT_GE_BYTEARRAY_TEST1
columns: [ ID_, REV_, NAME_, DEPLOYMENT_ID_, GENERATED_, BYTES_ ]
args_mapping: root = [ this.ID_, this.REV_, this.NAME_, this.DEPLOYMENT_ID_ , this.GENERATED_, this.BYTES_.bytes() ]
max_in_flight: 4
init_statement: TRUNCATE TABLE ACT_GE_BYTEARRAY_TEST1
batching:
count: 5000
# byte_size: 5000
period: "1s"
check: ""
数据同步正常
image

配置1和配置2唯一的不同就是
this.GENERATED_, this.BYTES_.bytes() 调换了顺序

@mihaitodor
Copy link
Member

Hey @JuchangGit 👋 Unfortunately, I'm unable to reproduce the issue you're seeing. I replicated your schema, but I don't know what data you're selecting from your ACT_GE_BYTEARRAY table, so I tried to take some guesses, but can't get it to fail. Here's how I tried to reproduce it:

input:
  generate:
    count: 8
    mapping: |
      root.ID_ = "foobar"
      root.REV_ = 123
      root.NAME_ = "foo"
      root.DEPLOYMENT_ID_ = "bar"
      root.BYTES_ = "baz"
      root.GENERATED_ = 1

output:
  sql_insert:
    driver: oracle
    dsn: oracle://system:testpass@localhost:1521/FREEPDB1
    table: ACT_GE_BYTEARRAY_TEST1
    columns: [ ID_, REV_, NAME_, DEPLOYMENT_ID_, BYTES_, GENERATED_ ]
    args_mapping: root = [ this.ID_, this.REV_, this.NAME_, this.DEPLOYMENT_ID_, this.BYTES_.bytes(), this.GENERATED_ ]
    max_in_flight: 4
    init_statement: CREATE TABLE ACT_GE_BYTEARRAY_TEST1 (ID_ NVARCHAR2(64) NOT NULL, REV_ INTEGER, NAME_ NVARCHAR2(255), DEPLOYMENT_ID_ NVARCHAR2(64), BYTES_ BLOB, GENERATED_ NUMBER(1))
    batching:
      count: 2
> docker run --rm -it -e ORACLE_PASSWORD=testpass -p1521:1521 gvenzl/oracle-free:slim-faststart
> # Wait for "DATABASE IS READY TO USE!" message
> benthos -c test.yaml

I don't get any error, so not sure what I'm missing. I made sure to involve batching and various values for the GENERATED_ column, but can't get it to produce the error you shared.

@mihaitodor mihaitodor added the needs more info An issue that may be a bug or useful feature, but requires more information label May 14, 2024
@JuchangGit
Copy link
Author

我找到有问题的数据了,我的真实数据和配置如下:

oracle tables:
-- Create table
create table ACT_GE_BYTEARRAY_TEST3
(
rn NUMBER,
id_ NVARCHAR2(64) not null,
rev_ INTEGER,
name_ NVARCHAR2(255),
deployment_id_ NVARCHAR2(64),
bytes_ BLOB,
generated_ NUMBER(1)
);
-- Create table
create table ACT_GE_BYTEARRAY_TEST4
(
rn NUMBER,
id_ NVARCHAR2(64) not null,
rev_ INTEGER,
name_ NVARCHAR2(255),
deployment_id_ NVARCHAR2(64),
bytes_ BLOB,
generated_ NUMBER(1)
);

insert into ACT_GE_BYTEARRAY_TEST3 (RN, ID_, REV_, NAME_, DEPLOYMENT_ID_, GENERATED_)
values ('36164', '1701058348821917698', '1', '信息服务接入表.bpmn_64fa805addca7e2d490debe8.png', '1701058347710427137', '1');
commit;

BYTES_ 字段的值是一个图片
bpm1

benthos配置:
1.能运行成功的配置:
input:
sql_raw:
driver: oracle
dsn: oracle://EUSPBPM:Hzsun.com!2@192.168.2.15:1521/BSDTDEMO1PDB
query: |
SELECT RN,ID_,REV_,NAME_,DEPLOYMENT_ID_,BYTES_,GENERATED_ FROM ACT_GE_BYTEARRAY_TEST3 WHERE RN=36164
buffer:
none: {}
output:
sql_insert:
driver: oracle
dsn: oracle://EUSPBPM:Hzsun.com!2@192.168.2.15:1521/BSDTDEMO1PDB
table: ACT_GE_BYTEARRAY_TEST4
columns: [ RN, ID_, REV_, NAME_, DEPLOYMENT_ID_, GENERATED_, BYTES_ ]
args_mapping: root = [ this.RN, this.ID_, this.REV_, this.NAME_, this.DEPLOYMENT_ID_ , this.GENERATED_, this.BYTES_.bytes() ]
max_in_flight: 4
init_statement: TRUNCATE TABLE ACT_GE_BYTEARRAY_TEST4
batching:
count: 5000
# byte_size: 5000
period: "300ms"
check: ""

2.运行报错:
ERRO Failed to send message to sql_insert: ORA-01483: invalid length for DATE or NUMBER bind variable @service=benthos label="" path=root.output
的配置:
input:
sql_raw:
driver: oracle
dsn: oracle://EUSPBPM:Hzsun.com!2@192.168.2.15:1521/BSDTDEMO1PDB
query: |
SELECT RN,ID_,REV_,NAME_,DEPLOYMENT_ID_,BYTES_,GENERATED_ FROM ACT_GE_BYTEARRAY_TEST3 WHERE RN=36164
buffer:
none: {}
output:
sql_insert:
driver: oracle
dsn: oracle://EUSPBPM:Hzsun.com!2@192.168.2.15:1521/BSDTDEMO1PDB
table: ACT_GE_BYTEARRAY_TEST4
columns: [ RN, ID_, REV_, NAME_, DEPLOYMENT_ID_, BYTES_, GENERATED_ ]
args_mapping: root = [ this.RN, this.ID_, this.REV_, this.NAME_, this.DEPLOYMENT_ID_ , this.BYTES_.bytes(), this.GENERATED_ ]
max_in_flight: 4
init_statement: TRUNCATE TABLE ACT_GE_BYTEARRAY_TEST4
batching:
count: 5000
# byte_size: 5000
period: "300ms"
check: ""

@mihaitodor
Copy link
Member

Thanks! I was able to reproduce it (see config below). I used xxd -plain 330730751-1da38f3b-e4d2-4302-95d9-9c120ee04240.png | tr -d '\n' to encode the image you shared to hex so I can paste it directly in the config.

Guess the issue is that, somehow, trying to insert that large binary blob leads to some faulty behaviour in the underlying https://github.com/sijms/go-ora Oracle driver when the INSERT statement has the columns in a particular order (the BLOB one first followed by the NUMBER(1) one). I'll have to put together a simple example in Go that I can share with @sijms so they can look into it on their end.

input:
  generate:
    count: 1
    mapping: |
      root.foo = 1
      root.bar = "89504e470d0a1a0a0000000d49484452000007d9000002af0806000000ce617f00000000017352474200aece1ce90000000467414d410000b18f0bfc61050000000970485973000012740000127401de661f78000094de49444154785eecdd09785c677937ee339265c7ce1eb28213279085d084adf07583100a4e575a282416295f030d055a4aa1a5b450682185b6d0160ab42c1f9425fd97602750284dcb125ac8421a0a21343884ec8eb33bb1e32cb6136b99fff38cce91c7b2248f642d33a3fbbeaedf75ce79cfd168343a9a19bdcfbcef29000000000000000000000000000000000000000000000000000000000000000000000000000080ce572b970000c034d5ebf54537dd74d3b91b376efc95ad5bb7ee33383858ee691f3d3d3d03bdbdbd576ddfbefdf5a79d76da1565330000000030458aec0000b087aebdf6da8f6fd8b0e195cb972f2f0e3becb0a2afafafdcd33e0606068a3befbcb358bf7efdc3c3c3c32b15da01000000607a7aca250000304d1b376e7cd931c71c536491bd1d0bec29efd78a152b8ac73dee710fc7e65b475a0100000080a952640700803db46ddbb6bd0e39e49072abbd1d79e49187c7e259235b00000000c05429b20300c00ce8e9e98cb7d639a2bd56ab1d506e020000000053a4c80e0000736460dba6e28eabcf2b6ebcf43d8de47ab601000000009d43911d0000e6c0f6adf715ebbefde1e2a10d3f2c061f7da8915ccfb6dc070000000074064576000098039befbcb2181a7ca4dcda21db1eb8f37be51600000000d0ee14d90100600e3cbce1da726d5739a21d00000000e80c8aec000030078606b7956bbb9a6c1f00000000d05e6ae512000098a68b2ebaa87eca29a7945be3bbe192bf2a86b66f29b776d6bb78efe2b853de526ecdbe4b2eb9a458b972a5ff05000000600ed5ebf54537dd74d3b91b376efc95ad5bb7ee33383858ee691f3d3d3d03bdbdbd576ddfbefdf5a79d76da15653330868e350000d843ad14d96fbcf43dc5e0a30f955b3b5bb464dfe2d867ff71b935fb14d901000060ee5d7bedb51fdfb061c32b972f5f5e1c76d861455f5f5fb9a77d0c0c0c1477de7967b17efdfa87878787572ab4c3f84c170f00007360f1d283cab55d4db60f000000e80e1b376e7cd931c71c536491bd1d0bec29efd78a152b8ac73dee710fc7e65b475a81b114d90100600e1c74f429456fdfb2726b876ccb7d0000004077dbb66ddb5e871c7248b9d5de8e3cf2c8c363f1ac912d602c457600009803fb1c7c42b1f7414f28b776c8b6dc0700000074bf9e9ece28cde588f65aad7640b9098ca1c80e000073a15e2f06b76f29377668b4c53e0000008034b06d5371c7d5e715375efa9e46723ddb80f6a1c80e0000b36cfbd6fb8a5baffc78b1f5fe9bcb961db22df7e531000000c0c296fd03ebbefde1e2a10d3f2c061f7da8915ccf367d07d03e14d9010060b6d4ebc5a6f5df8a7f843f546cdbbcbe6cdc55eecb63f258a3da01000060e1da7ce795c5d0e023e5d60ed9f6c09ddf2bb780f9a6c80e0000e358b56ad5d1679e79e653cbcd29ab46af6fb8fecbc5f0d040d93ab13c268f35aa1d00000016ae87375c5baeed2a47b403ed41911d0000c677f4f0f0f055fdfdfddf58b56ad5af966d2ddbdde8f58954a3da01000080856768705bb9b6abc9f601734b911d0000c6313434747bb97a6aad56fbe2aa55abae8d9c7dd65967ed55b64faa95d1eb13d993af05000000006657ad5c0200004d72baf85aad764bb9d9eceec84763df873efbd9cf36e675bfe8a28beaa79c724aae76844b2eb9a458b972a5ff05000000600eb5d27f70e3a5ef29061f7da8dcdad9a225fb16c73efb8fcbadd9a7ff0026e60f030000c6314991bda15eaf3f12fbff717070f003af7ef5ab6fe8a422fb59679d95f77f38eeff706c0e9569ac677bf376a6e9b8b1c78cb64de5986a5f6c37af57c757cb5dee4bd331a36d638fc94c765faaf59e9e9e9d8e19bb6f28e432ef63b60d875ccf656e2f5ab4a8b1dcbe7dfb505f5f5f63bdda97cbb8adc6cfb764c992c6d785c6328e1fddb761c386e18b2fbe386fbf1e010000a0cbb552645fffdd8f175b37df5a6eed6cd9012b8aa39ef15be5d6ec53648789f9c30000a0ab9d7efae9bd8f3efae8b2d4d3d3b3f7e0e0e0b2dedede65c3c3c3b9bdac5eafefb45eabd596c597ed1debfbc6fa6b476e65428d02ecd9679fbdb8d346b25f76d965bddffce6377b962e5ddabb68d1a2de58e6a5a47afbfafa7ae2678f87a8b7b1ccb6eddbb78fb6e5763c56a3fb723d97f1b83696f1983596cdebd5321ee79df6e56d8cdd37ded7471acb387e745fd536f6984cd371638f196d1b7b4ca63a2ef7c5fa4edf2ff7c5f64ec794edcdebd5f1a35fd7741b638f693e2eff2fdbe9c300715c558c6fb455fb62bb79bd3a7ef4eb9a6e63ec31a36d638fc98cbdada66346db9aef4bde8f6abdda17eb3b1d53b68faec7a9b2d3bee6f55ce6b1d53163f7352f33712eeed416e74f6399b7911f68c8f5c58b173796d5071c723dced346dbde7bef3d7cfffdf70fedb7df7ec3715bf96188a1d81ebee0820bf23800008059d14a91fde1fbae2beebae6f3c5d0c0d6b265446fdfb2e2881f7b71b1cfc127942db34f911d26e60f03008079f3f33ffff34b0e3ae8a065dbb76f5fd6d7d7b76c686868a702782e6bb55a16bc1bc5efb1cbb889b185f1d1fdb9af6ccf22e6d668db1adb8d656c6f695a1f6d6f5ee631910f447611c7dc17c7bc2feeefa762fd8157bffad55b3badc8ee9fe4f6921f0639f0c0037b1e7df4d1de38af7a1f7cf0c19ed8eeddb2654ba310bf68d1a2c632ceb7d10f3be4871f7299dbd99eebd5871ee2fc6c2ce3b61acbe6b6b1cb4c7ec8216f63bc7dd57a1e536d57dfafda17db2d7f3021b2d331cd6dcd5f5fb58d3d2633f6b69a8e196dab8ea9ee47b55eed8bf59dbe5fd36de4cc02596c6f14e433715cb5de58c6b1a3fbaab6ea98dc17eb8d7dd571b92fd677faa040755cf331d5bec8e86d356f679a8e1b7bcc68dbd86332636fabf9fb55ebcd1f8488e327dcd7bc6c5eaf66788873a5b1ccdba8d643e336ab0f3fe47ad5363030d068dbb66ddbf0e0e0602e874e3df5d4e173ce3927db0100a06bb47ab9b93b7fb0a678f09e1f945b23f63bece4e2b127af2ab7e686fe0398983f0c0000c653fbe55ffee5a5fbeebbefb21cf9bd68d1a2d10278ec6b14b387c78cfe1eb39cb0305e2de37632599c192d788fb78c631aebb1dce9b8f8fe8d65dc87c67a2e63df96b8bf5be3fe6e5db264c9d674c105176c8faf9d96fefefe9da6f18edbcf29e2df1d8fc57be3761f2e9b5d931dba4bed39cf794eefa1871e5a7d48a077f1e2c58df5ea030d8f3efae8e8be78ee6914e7abe5c0c0404f1cdf28dc57333ce4be3cbe3a26d7e379ab276f3097d916b7d5589669ac8fb7af69bdb18cdb1add57b58d3d26d374dcd86346dbaa63725fdec76abd795f64f4eba6735f5a392693c795f7a32aca3796651aebd5be6a3bd374dcd86346dbc61e93197b5b937dbfdc17eb8d7dd5717b725f223bedabd6ab659c36bb7ce861ec3293a753735b9c3fa3fbaaf5bcbc45de567ec021b7abf5f89aa1a54b970ec7f76accf890ed717b43f132da382e5ef372e9d21600007ba8a5fe837abd58ffbd4f155befbfb96c18b1ecc0c717473dfd15f11fcbdcfd3bafff0026e60f0300a0c3ecc1f4e78dc2766e57ed6396cd85f125b17c2496e316be633969613cbeff68d13b974343438dedaa009eb208deee5333af5ab5eadef8790e8ed5c1f8593e1d3fd79fc67dbe7b64ef0e8aec00b3e3ed6f7f7bcf5d77ddd5bb7efdfa9e78fdc80f2af4c6eb47e34300cd97b78843b330bfd30c0fb98ce7f0d1c27d7c6de3f8784dda655fb55e2de3f97e745f64977df90daaf5e67d91d1af8befb5535bf3f7abdac61e93197b5b4dc78cb6ede9f7abf6c576f37a757cb51cfb7d52a3e81ec7369665aa82fde8be586fecab8eabf64546bfaee936c61e33da36f698ccd8db9aecbe54db99a97cbf38551acb54ad8f775fc6ee6bbe2fd57a9c2a8dc723ce955df685c6326778c863aab65ccf191e7219eff9f24bf3c30f43471d75d4f011471c3164960700e85cbbeb3fd8bef5bee2ae1ffe4bb16df3fab265674b0f38aa38e249bf562c5e965d15b34fff014ccc1f0600c00c6af7e9cf7319f761a7d1df711fb7c67d1c2d800f0c0c6cf9dce73ef7481cbfe047acf5f7f7df128bb5f158bde5fcf3cf5f3bd2ba2b4576001680dae9a79f5e15e47bf7da6bafc68716e2bd434fbc4ef66edbb6ad711986d068cfe3aaf59ce121b7e37dc76801bf5a8faf692ce3fdc8e8beaa6dec326f2bbed7b8fbaaf53c2652b5edb4afb9ade998d1b6a6ef536d37af57c757cb5dbe4fd331a36d7b7a5faaed4cf37d89f52cc28f16ee238df56c6fdece341d37f698d1b6a91c53ed8bede6f5eaf86ab9cb7d693a66b46dec3199c9ee4bb51ea7cf4ec78cdd979f56c865dec76c8bf3a6b19ecbdc8ef3b6b18cf7ec8d191eaa63aa65dc56e3e75bb26449e3eb426319c78feedbb061c3f0c5175f9cb76f960700b2ffe01bf11a71ce9a356bbe59368d6bc2fe837abdd874dbe5c57d377dbd181e1a281bc7d7d3db571cfc84e717071df9d3b33eaa5dff014ccc1f0600b05098fe9c293bf3cc339f7ade79e77dbfdc9cd09e14d90706068a75ebd615471f7d74d1d7d757b64ebd7d2afc930c009d2d6779f8e637bfd9b374e9d2fca0436f2c1b05f8786fd0f8a041f3871d728687aa2db7e33de6e8be5ccf65bcdf1c2de0e7b279bd5ac6fbd39df6e56d8cdd37ded7471acb387e745fd536f6984cd371638f196d1b7b4ca63a2ef7c5fa4edf2ff7c5f64ec794edcdebd5f1a35fd7741b638f693e2edf53edf4618038ae2ac637daaa7db1ddbc5e1d3ffa754db731f698d1b6b1c764c6de56d331a36dcdf725ef47b55eed8bf59d8e29db47d7e354d9695ff37a2ef3d8ea98b1fb9a97993817776a8bf3a7b1ccdbc80f34e47acef090cbea030eb91ee769a36defbdf71ebefffefb87f6db6fbfe1b8adfc30c4506c0fb7fb2c5940776bbadcdc37e3f96dc262fb78fd07bb1bbd3e91b918d5aeff0026e60f03009877a63fa7d3ed4991fd861b6e284e3ae9a462eddab5c571c71d57b64ebd7d2afc930c003073f2ff99030f3cb027fea7c959197a1f7cf0c19ed8eeddb2654ba3101fff2f3496f1bfc4e8871d9a2f6f91edb91eff5f34dae2ff8fc6326eabb16c6e1bbbccc4ff2a3b7d88a0795fb59ec754dbd5f7abf6c576cb1f4c88ec744c735bf3d7576d638fc98cbdada66346dbaa63aafb51ad57fb627da7efd7741b59e4caffc91a05f94c1c57ad379671ece8beaaad3a26f7c57a635f755cee8bf59d3e28501dd77c4cb52f327a5bcddb99a6e3c61e33da36f698ccd8db6afe7ed57a9c3ea3fbe2f809f7352f9bd7e33c6d2ce35c692cf336aaf5eac30ed5871f72bd6a1b181868b46ddbb66d38fe3fcee5d0a9a79e3aecd2162c344d45f6ca37e36feff7c77e707fbcfe83ebbf71ce6e47af4f2447b51fffdcb7975b334fff014ccc1f06003029d39fc3ee29b20300405ba83de739cfe93df4d043ab0f09f42e5ebcb8b15e7da0e1d1471f1ddd17ff3f368af3d532fe77ec89e31b85fbf87f72745f1e5f1d93ebf1bf674fde602eb32d6eabb12cd3581f6f5fd37a6319b735baaf6a1b7b4ca6e9b8b1c78cb655c7e4bebc8fd57af3bec8e8d74de7beb4724c268f2bef4755946f2ccb34d6ab7dd576a6e9b8b1c78cb68d3d2633f6b626fb7eb92fd61bfbaae3f6e4be4476da57ad57cb386d76f9d0c3d865264fa7e6b6387f46f755eb7d7d7d8ddbca0f38e476b51e5f33b474e9d2e1f85e8d191fb23d6e6f68ebd6ad8de32eb8e0825cea0f9965e314d91be2f7f3c5f87d9c5315dbc7eb3ff8d1d7df56ae4dcf139fffae726de6e93f8089f9c30080ce65fa7368138aec0000003bcb4b5bdc75d75dbdebd7afef59b468517e50a177c992258d0f01345fde220ecdc2fc4e333ce4b2b6a3803ffa6187a1728687e67dd57ab51c2e3fe05066977df90daaf5e67d91d1af8befb5535bf3f7abdac61e93197b5b4dc78cb6ede9f7abf6c576f37a757cb51cfb7d52a3e81ec7369665aa82fde8be58dfe94301d5bec8e8d735ddc6d86346dbc61e93197b5b93dd976a3b3395ef17a74a6399aaf5f1eecbd87dcdf7a55a8f53a5f178c4b9b2cbbed058e60c0f794cb82db627145ff7a5f83b38e7e52f7ff995d3ed3f980ffa0f6062fe3000a033d5fafbfbf3cdfc2e05efa6a5e9cf618e28b2030000d0c66aa79f7e7a5590efdd6bafbd1a1f5a58b46851cff0f070efb66ddb1a9761c80f38647b1e57ade70c0fb9dd1372d9bc1e5fd3580eb570798bbcadb11f6ca896d57a1e13a9da76dad7dcd674cc685bd3f7a9b69bd7abe3abe52edfa7e998d1b6a9dc97685f1ecbc93446ba9f7df6d9354576e80efe3000a043e53454ab57aff65a0e6d40911d00000016ae89a68b0fdfacd7ebe7ac59b3e69bb9b127fd07f341ff014c2c3f6103000000000000cc807abdfec5c87357af5efddcaac00e74174576000000000000d843595cefe9e979da9a356b5ea4b80edd4d911d000000000000a6a9b9b87ede79e77dbf6c06ba98223b0000000000004c93e23a2c3c8aec000000000000d0c60606068a1b6eb8a1b16c36d576606628b2030000000000401b5bb76e5d71d249273596cda6da0ecc0c4576000000000000006891223b0000cc807abd5eaeb5b7eddbb75f11f7f5e1721300000000982245760000d8437d7d7d0f6edcb8b1dc9a9aa38f3eba58bb766d63d96caaedadbaeebaeb6e8cc515235b00000000c05429b20300c01e1a1e1e3ee7c61b6fbc276c98ea88f6bebebee2b8e38e6b2c9b4db57d77e23e3eb06eddba2f6fdab4e9d4d87cff482b000000003055b57209007498fefefefaead5abbd96439bf8ea57bffada9e9e9e37c4eab1232d6d696de41d2b57aefcfcc82600000030572ebae8a2fa29a79c526e4dcd0d37dc509c74d2498dd9edf2c3f795a9b64fc525975c52ac5cb952ff230000dd238bece52a00000000d0e6b2c8fee8a38f4e2b6bd7aecdbec0c6724fdaa792bcbf79bf815d992e1e000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec0000000000003007eaf57ab9d6deb66fdf7e45dcd787cb4d600c457600000000000098657d7d7d0f6edcb8b1dc9a9aa38f3eba58bb766d63d96caaedadbaeebaeb6e8cc515235bc0588aec00d0d90e883c25f2acc8d3b221fc9fc8a291d55127447e7564b5656747de31b23aa1fcbe1f8c2c8e7c3ab23c329e1f8f9c32b20a000000000bcff0f0f03937de78e33d61c35447b4f7f5f515c71d775c63d96caaedbb13f7f18175ebd67d79d3a64da7c6e6fb475a81b16ae51200e830cf7ad6b3ea975d76d90db1fac5c8b323596ccf42f6e591fd23db229517477e2bf2f391fb228f440623e9a0c8fb2259503f2bf2ba487e10ef984816f12f89f446f68d5c18796ba4f292c8db2359e01f881c1fc9fbd46c59e43b91bc4f6b22795b0f45f2eb862300000000b0207cf5ab5f7d6d4f4fcf1b62f5d891963df7894f7ca238fbec1c2f3363d646deb172e5cacf8f6c02004097c8227b2c36447299b9349205f26b233f1d392d9245f7a746fe3092c5f793225964fff5487e1a35f385483562fdcd917cf39c6ff2df14c9db3d2e9205f7c7478e889c18f9cd487a61e4fb23ab8d6373fea99f8a3c3d1bc292c8bf4672df05917797ebaf8e00000000007ba8bfbf3ffbdb803964ba7800e85003033970bcb8bdb15114439147232f8d1c1ef940e4bc4816c1b3ed05912c80f747d2af453e12c982fa0391aa509e72caf78b236f8b6c8f7c239205fc1cd19ec5f923231f8ae4f719cfdf4456458e8ae4759bb230ffb2c8f3cbe5ff2b0300000000001d47911d003a54793da51c657e65248bed792df627473647f23ae95f8dfc41e48f237f17b9319253cba71ced7e7de4e64816d873a4fad248cae35646725af72cd65f1dc911f0391d7d16c7bf16c929a3f2b6c75a117966e46391db227f1f392392d784cf51ed79edf6fc5e59f4df3b0200000000001d45911d003a53edbaebaecb6516b17f3cf295c855916f47f68a64413c8be8f95a9fd76b3f3d7272248bf2cdaaa9a4b2f85dc921f2af8ae4c8f8e745f2b672e4fafb23792df5f4b791bcc6fbd842f95f47ce8fdc14f98b484e39ffc34816d5b388ffe9485e0bfe4b911c419f23e6b3980f00000000001d41911de65e16b4662ac0c2555fb122078d17bf18c9d1e8398a3d0bdb79adf42f477e27f29f91e1485e677dbf4816e03f1b794c24afd79e23ca0f8d3c2b92c5ee6d9194cf2f3912fdc591ff8aac8f7c3cf28f914a4e339f23e89fd0d8da21afd7fe9691d5e233911c419ff76b5136841c21ff8c488eb4cfe27d5e433ea7ba070000000000805d8ae29999345bb70b7480fefefefcdbcf11ec79cdf42c7857d75b7f6de491c8418dad9191e2796df63cf6b048f5bc91c5ee4c16df5f12495914df1ac929e3331b225b9ab6b360de98a7be94b75b5dcf3d6ff3574656779185feff1d596d8c88cf00000000007ba8ec2704e69091ec30b3aac25595da389949cdb75b7d4f6081a8d71b7ff2ef8ce474f1792df6ef467254fabb225950ffb74816d5ab91e2f9055980bf26926dbf5ce69048da2792a3d7f398e744f2b6de13b9bc5ccffc6c2447cbff7ee40d919c063ebf3ed7d35323b99ed781cfe27e4e119fd76e7f47246f1700000000003a9a223bcc8caac0dd5cf4cecca5f9f89ec03cbafaeaab739153c3e775ce333744be1ec9eba0e7c8f41c75fe9d4816c473e4f81191df8b9c13c9e78bb5651e8ea4f746726af873237744ee8ee4f5d9f3f92dd733b74696478e2e93d768bfa05cff402447cfe77a4e45ffcc4816fef3fb6731ff7b919cdafe3591bc4e3b0000000000000b485558cf00ccb933ce38239f7faa6b9de7a8f1bcc6f9d31a5b3b64413c0bde2f8ae4a8f203237b454e8d54f2baeafb47721af8bc767bb31c097ffcc8eab4e4ed2e19596dc8e9e98f1b590500000000f694e9e201e8040aeb405bf0e61900000000d04f0873cf74f1d0baaab86e5a7600000000000058a014d961f714d7010000000000800645769898e23a000000000000b0134576d895e23a000000000000302e4576d841711d0000000000009894223b28ae030000000000002d52646721535c07000000000000a644919d8548711d000000000000981645761612c575000000000000608f28b2b31028ae030000000000003342919d6ea6b80e000000000000cc284576ba95e23a00000000000030e314d9e936cda3d7010000000000006694223bddc2d4f0000000000000c0ac5364a71b28ae030000000000007342919d4e666a78000000000000604e29b2d3a98c5e07000000000000e69c223b9dc8e875000000000000605e28b2d3494c0f0f000000000000cc2b45763a85e9e10100000000008079a7c84e27307a1d000000000000680b8aecb433d3c3030000000000006d45919d76657a78000000000000a0ed28b2d38e8c5e07000000000000da92223bed46811d000000000000685b8aecb4130576000000000000a0ad29b203000000000000408b14d969170b71147bfecc32f30100000000008059a3c84e3bc8c2e8429d263e7f6e99d98c2dba67000000000000604628b233dfb2009a85d185606ce177a1fcdc73adb9e05e65ec633f5e00000000000060b714d9994f59d8cc02e842d25cf865ee343fee1345c11d000000000080dd526467be2cb402fb6c176e9b0bc4b3918560a282fb427a0c000000000000d80d4576983d630bb433f9a182e6dbce341788672363bf5fb76be53158088f030000000000006328b2331fb2389945cb6e56fd8ccdd913cd85dd99beed568cfd7ed5fd5848c63e060bf57100000000000058d014d9996b5581b89b4df767ac0ab6e3a5b9b0db0e8f5f753ff2be2d64cd8fc3427f2c00000000000016044576e652552c5ee8aa82ecd85405dbf1d2aef2be55f77f21ab7e4fcdbf4f000000000000ba90223bcc9caab83a5951bcda3f5e3a5575ff159777fe7d568fc7427f4c000000000000ba8a223b73250b8d5978ec465521b52aae8ea7f9986e55fdfcd5cfbad0558f47f363e271010000000000e8708aeccc852c2c66a1b19b4df6f3553f7fb73f0695ea675550dea17a4caac7c563030000000000d0a114d9996ddd5e60dfddcfd7ed3fff641494c7978f8bc7060000000000a04329b2339bbabdc03cd9cf571550bbf9e76f457341999d353f361e1f0000000000800ea1c8ce6c59a805e6aa605a155019a1983cb1ea5cf1f800000000000074004576989eaa905ea90aa455c1945d351793d955f3e3530500000000008036a3c8ce6ca88acd0b41550cad0aa4ec5e5548667cd5b9543d4e1e2b00000000008036a2c8ce4cab0aceddac2a7a563f6bb7ffbcb34101b935d5f9e5b102000000000068138aeccca4aae8dccdaa426755fc64fa9a0bc84cce63050000000000d02614d999290badc0cecc513c6e5df55879bc000000000000e689223b3341811de64e9e833e98000000000000304f14d9d9530ba5c0aeb83ebb148da7ce63060000000000300f14d9616259c0ac0aec0aedb423857600000000008039a6c8ce9ee8e6c273f5b329accf1d05e3e9f1b8010000000000cc214576a66b2114d8997b0ac6d3533d6e1e3b00000000008059a6c80e3b54454a05f6f9a5d03e3df9b879ec0000000000006699223bd3d18d85e8ea671aefe75278a79328b4030000000000cc224576a6aadb0acef9f328a2b71f85e23de3f103000000000098258aec2c6455715d81bd3d2914030000000000d07614d9998a6e1af1ddeacfd24d3f732752689f3e8f1d0000000000c02c506487892950020000000000003b5164a755dd34a27b2a3f8b51ecf3cf88ece9f3d8010000000000cc304576a01328164f5ff5d879fc0000000000006680223badc8e2dc421bd1bd107fe676a7d03e7df9d879fc0000000000006680223b0b8de279675328de331e3f0000000000803da4c80ebb528807000000000000c6a5c8ceee2838d36e8cc606000000000060de28b2b390f8c040f75068070000000000605e283832996e2b4ab7faf328c67706bfa7e9f1b87591fefefefaead5abfd3ea10dd4ebf54537dd74d3b91b376efc95ad5bb7ee33383858ee691f3d3d3d03bdbdbd576ddfbefdf5a79d76da156533000000d0e1f413c2dcf307c764baa91837959f4511b273f85d4d8fc7ad4b78f30cede3da6baffdf8860d1b5eb97cf9f2e2b0c30e2bfafafaca3ded636060a0b8f3ce3b8bf5ebd73f3c3c3cbc52a11d000000ba837e42987ba68b0700803db471e3c6971d73cc314516d9dbb1c09ef27ead58b1a278dce31ef7706cbe75a41500000000982a45761602a3766167f9f7907f1700cc906ddbb6ed75c82187945bededc8238f3c3c16cf1ad90200000000a64a919d89284c4377ab0aed8aed0033a4a7a733de5ae788f65aad7640b909000000004c91223bd0c98cc8de33f9f8790c01e6d0c0b64dc51d579f57dc78e97b1ac9f56c03000000003a87223bec4ad19185c6390f3007b66fbdaf58f7ed0f170f6df86131f8e8438de47ab6e53e00000000a03328b20300c01cd87ce795c5d0e023e5d60ed9f6c09ddf2bb7000000008076a7c84eb7cbd1b9394a77aa8cec65a171ce03ccb287375c5baeed2a47b403000000009d41919df14cb7300d00c0048606b7956bbb9a6c1f00000000d05e14d9616246f6b2d038e70100000000007643911d0000e640ad36f15befc9f60100000000ed456f1e0000cc81c54b0f2ad77635d93e00000000a0bd28b23356375d8f7d267e16d367b3d038e70166c941479f52f4f62d2bb776c8b6dc070000000074064576a093290603d031f639f88462ef839e506eed906db90f00000000e80c8aec40a7aa0aecdd32f3423b319a1d6036d4ebc5e0f62de5c60e8db6d80700000000740645769a65efae82259da03a579daf007484ed5bef2b6ebdf2e3c5d6fb6f2e5b76c8b6dc97c70000000000ed4f911de824595cf7611000e6ccaa55abbe70e699673eb5dc9cba7abdd8b4fe5bc5ba6f7fa8d8b6797dd9b8abdc97c7e4b146b503000000407b5364a7a270493b6b2eae3b4f019833b55aed85c3c3c3574da7d85e8d5edf70fd978be1a181b27562794c1e6b543b00000000b4374576d8bd2cea1a52367f14d7e787f31ea0c9748aedbb1bbd3e916a543b00000000d09e14d9a1350a8ef3a32ab003405b984ab1bd95d1eb13d993af05000000006697e215a95b0b99b3f17329face1d8ff5fcf33b6873fdfdfdf5d5ab57fb1dc12ccabfb372755cf57afd8bbdbdbde7bce215afb8ea94534e295bdbdf25975c52ac5cb9d2f3070000007401fd8430f7fcc191bab590365b3f97c2e3ecf318b707bf8736b7bbe2df7c191a1a2a1e7cf0c1726b7c7befbd77b178f1e2726be46b2ebffcf2e2e4934f2e0e38e080b2153ac7d9679f5d745291fdacb3ce2ad7000000806ea0c80e73cb1f1ca95b0b69b3f973293ece1e8f6d7bf1fb68636dfc09d59c42fb7f229737b68ae2999165918b1b5b45f194c8eb2217457e2b1b4abf1d198efcbfc6d6882f45ae1e5985b937d18759eaf5faf763f18e356bd6fc6b6e5f74d1457523d901000080f960243bcc3dd76407da89822e748f4d9153cbbc2bf299a6ed2b23e988c81f451e29f377910f346dbf2cf2f448cae787aad859ad671e8a7c2d725c04665d16d7232f5cb366cdd3aa023b00000000b0b028b2c3f46421b82af63033f2f154606f3fce75a66b49644be4bec8db222f29d7b3285e15ceb746f689dc3e410e8e4c26cfcf33232b239fce06982d8aeb000000004045911d68070aecd07d1e8dec1f3929f2b7912c4ae6fa2191ef45d2f591b7449e1d7956240be67f5fae673e1fb92432991cc59e720a7a98718aeb00000000c0588aec307d46f8eeb97cfc14d8db9f739de97a62e4b6c88b233f16b929f2c248b3f7443644d6443e1cb923f2bb655e1db9393299d3cae5ff964b98518aeb00000000c0588aec2870ee39c5c7a96b2eae3bffa0bbe5b5d97fb24c3582bdd9a2c81f46f66a6c15c59322ebca7c341b2691cf23e745fe33f29bd9009d686060a0b8e1861b1acb66536d0700000000e686223bec99aa485c158d999ce27ae7aace7398aabcaefada32cfcc86319e17c9ebb2ff4263ab28ae8b3cb54c16df2793e7e5be91e747f2eba023ad5bb7ae38e9a4931acb66536d0700000000e686223bcc8caa68ac08393ec57558789645ce88dc19c96bb267ae8d3c37b23c92b240fe77918f45726af8bc3e7b7a20b239f270630b0000000000da88223bcc2c85f69d29ae7717e737ad5a12e98be4fb8c73238797f9f7c8bd91dc9fe7d3e722f747f2faeb3f13d912393e9273603f18b927925f9f9a9f479ad70100000000604e29b20333ad2aac2bae77a7fc7d2ab4b33b39627d65e46d1324a777bf30f207915f896451fdfb915f8cec177962e439919744fe3c0200000000006d43911d665e55845c4885c8eae7cd548575c57558b87214fa6523abe3ba299223d8af896ccc86268f466e8c5c15b93492c7020000000040db506487d9511599bbbdd8de0e85f56e7e7cdb55756e0300000000002c388aec30bbaac273371524abc27a66be0aeb000000000000302f14d9616e747aa17dbcc2bae23a0000000000000b8e223bcc9daad03e5eda5575ff14d619ab3a9f01000000000016144576985bcdc5eae654c5ec76285a36df97eafe0100000000000041911ddac34405f7f948f37d010000000000009a28b243fb692e72cf47000000000000800928b2d3cdb2609c23b30100665dbdde196f3bb66fdf7e45dcd787cb4d00000000608a14d9814e564d6f0f00f3aaafafefc18d1b37965b5373f4d147176bd7ae6d2c9b4db5bd55d75d77dd8db1b862640b00000000982a4576ba9dd1ec00c0ac1b1e1e3ee7c61b6fbc276c98ea88f6bebebee2b8e38e6b2c9b4db57d77e23e3eb06eddba2f6fdab4e9d4d87cff482b0000000030554680b21046021beddc9dfc5ee79fdfc13cebefefafaf5ebddaef00dac457bffad5d7f6f4f4bc21568f1d69694b6b23ef58b972e5e74736010000804ea79f1060ee4d6da855e75a283fe742e2773afffc0ee659be792e570100000080054a3f21cc3dd3c5b350e427b8bcc8000000000000007b44911d000000000000005aa4c8ce4262343b000000000000b04714d9596814da0100000000008069536467215268ef7cf9fbcbdf23000000000000cc294576000000000000006891223b0b95d1ec9dcb2876000000000000e68d223b0b99423b00000000000030258aec2c7455a15db1bd3318c50e0000000000c0bc52648791a2ad51eded4f811d00000000008079a7c88ee2f20e1e0b00000000000060528aecb03385f6f664143b0000000000006d41911d76a5d00e0000000000008c4b919da4a8bcabea31f1b8cc3fa3d8010000000000681b8aec30b12cecfa00c2fc5260070000000000a0ad28b253514c9e98c70600000000000068506487d628b4cf3da3d8010000000000683b8aec3453489e5cf5f8788c669f023b0000000000006d49919db114da27978f8f62fbec5260ef0c7e4f0000000000c082a4c8ce7814da774fb17d7628dc020000000000d0d614d99988427b6b14db678e023b0000000000006d4f911d664673b19da9a93ea0a0c0de39fcbe000000000080054b919dc9281a4f5df59879dc5a53156b156c010000000000e8088aecec8e42fbd4554563c5f6c95505763a8bdf1b0000000000b0a029b2d30a85f6e9516c9f98426de7a9ce63bf37000000000060415364a7550aedd337b6d8be901fc7eae757a8ed2cd5efccef0d000000000058f014d9998aaa50ccf45445caea716cce42903f67f5f30300000000004047526487f9d15c70cf747bc1bd2ab0d379fcee0000000000009a28b23355554198995515dbabc7b74a3750a4050000000000a06b28b2331d0aedb36ba2827b733a41755f15d83b97df1f0000000000c0188aec4c575500667655c5f6b1a90ad855da4ddea7eabed299aadf210000000000004d14d9a1335505ec2aed526cafee87e26c67f33b0400000000009880223b7ba22aee32ff9a8bedf3a5fade8ab39d2b7f870aec000000000000935064674f29b4b797eaf7311fc9efad38dbb9fc0e0100000000005aa0c8ce4c682eec32ffaa42e95c87ce5515d8010000000000d80d4576664a5568556887cea2c00e000000000030058aeccc348576e81c0aec00000000000053a4c8ce6ca80aed8aedd09eaabf4f057600000000008029526467b664f1cea876683f55715d811d0000000000601a14d9996d0aedd03e8c5e070000000000d8438aeccc058576985ff9f7a7c00e0000000000300314d9992b55a15db11de656555c576007000000000098018aeccca5aad0a7d00eb3affa508be23a0000000000c00c5264673e28b4c3ec327a1d0000000000609628c0309f8cb28599557d78c5dfd502d1dfdf5f5fbd7ab5df370000c00251afd717dd74d34de76edcb8f157b66eddbacfe0e060b9a77df4f4f40cf4f6f65eb57dfbf6d79f76da695794cd00cc22fd8430f7fcc131df14056166f8d0ca02e4cd330000c0c272edb5d77e7cc3860daf5cbe7c7971d86187157d7d7de59ef631303050dc79e79dc5faf5eb1f1e1e1e5ea9d00e30fbf413c2dc335d3cf32d9ff43355b11d983a05760000005800366edcf8b2638e39a6c8227b3b16d853deaf152b56148f7bdce31e8ecdb78eb4020074174576da85423b4c5dfecd28b0030000c002b16ddbb6bd0e39e49072abbd1d79e49187c7e259235b0000dd45919d765215da15db61f7aae2ba023b0000002c203d3d9dd1a59b23da6bb5da01e5260040575164a7dd54454385769898d1eb000000c08406b66d2aeeb8fabce2c64bdfd348ae671b00003343919d76a5d00ebbcabf0905760000006042dbb7de57acfbf6878b8736fcb0187cf4a146723ddb721f00007b4e919d76a6d00e3b54c575057600000060429befbcb2181a7ca4dcda21db1eb8f37be51600007b42919d765715da15db59a8aaf35f711d000000d8ad87375c5baeed2a47b40300b0e714d9e904d5e85d85761692e6e2ba023b000000d092a1c16de5daae26db070040eb14d9e9240aed2c048aeb0000000000006d4c919d4ea3d04eb7525c07000000f658ad367197ef64fb0000689d775574a2aad0aed84e37505c0700000066cce2a507956bbb9a6c1f0000ad5364a75355054985763a515558575c0700000066d441479f52f4f62d2bb776c8b6dc0700c09e5364a7d3558576c576da5973513d5315d615d70100008019b5cfc127147b1ff484726b876ccb7d0000ec394576ba4155ac5468a75d4c5654cf00000000cc8e7abd18dcbea5dcd8a1d116fb0000d8738aec74138576e64b73413da3a80e000000ccb9ed5bef2b6ebdf2e3c5d6fb6f2e5b76c8b6dc97c70000b06714d9e93655a13d03b3a5b9a09e515407000000a66dd5aa555f38f3cc339f5a6e4e5dbd5e6c5affad62ddb73f546cdbbcbe6cdc55eecb63f258a3da0100a64f919d6e54153aab0228cc84ea7cca3417d43300000000d356abd55e383c3c7cd5748aedd5e8f50dd77fb9181e1a285b2796c7e4b146b503004c9f223bddac2a802ab6331dcd45f58ca23a00000030aba6536cdfdde8f58954a3da0100983a45761682b1c5f60c8ca7f91c692eaa6700000000e6c4548aedad8c5e9fc89e7c2d00c042a670c4425515dafd0d2c6c633f70e17ca0a3f4f7f7d757af5eedbc050000e870f9ff5db93aae7abdfec5dedede735ef18a575c75ca29a794adedef924b2e2956ae5ce9ff568059a69f10e69e3f38163a45d685c5ef9baee2cd3300d0ad76576c62e1bafbeebb8bc1c1c1726b87c30f3fbc58b46851b905ddebecb3cf2e3aa9c87ed65967956b00cc36fd8430b7fcc1c1ce1461bb8bdf275d4d911d00e856dee7308975912b23f736b646fc46e4ff44d636b6a0034df4e1a27abdfefd58bc63cd9a35ff9adb175d7451dd487600c6f2fe19e69e6bb2c3cef245a839f90f4e15da5bf3efaacad8df270000009defc723a736657104ba4a16d7232f5cb366cdd3aa023b0000ed43911d26d75ca06d2ede327f9a7f0fcd69fe5d55010000a0fb9c1ff987a66c8d4057505c0700e80c8aecd0bae6e26d737197d9d3fc385769fe3d340700008085e188c8d14de98d4047535c0700e82c8aec303dcdc5dde602307baef9f16c7e9cab000000b0f09c15c9ebb11f18c90b52bfa4290f46fe23f2e6087424c5750080cea2c80e7baeb900dc5c20666ac62bac030000405a1df9b1c8cd91bf88fc6de4eac81323c794cb0f4480090c0c0c1437dc704363d96caaed000028b2c34c6b2e103717dc33ecaaf9f1515807000060228f460623c746ee2cd74f8be4e8f6f591bf8e6c8b001358b76e5d71d249273596cda6da0e0080223bcca6e6827ba6b9a0bc90353f0ecd8f0f0000004ce63591c5910f4672caf8af450e8f1c1af9dd080000c09c506487b9d35c506e2e348f976ed3fcb3353f0e000000d08a3f89fc65e40591f7459e12f9e5c823910d915b239f8e000000cc3a4576981fcd85e6f1d25c949e2cedacf97e36ff6c0000003055ff1df989488e5eff87485e9f7ddfc849919c36fe65917746000000669d223bb4a7e6a2f464692e64b75b9aef27000000ec896f44d68eac8eda12b931f2fdc8a5919b22000000b34e911d3a5b7321bbdd020000000000005d47911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d022457600000000800e51afd7cbb5f6b67dfbf62be2be3e5c6e02007415457600000000800ed0d7d7f7e0c68d1bcbada939fae8a38bb56bd73696cda6dadeaaebaebbeec6585c31b20500d05d14d901000000003ac0f0f0f03937de78e33d61c35447b4f7f5f515c71d775c63d96caaedbb13f7f18175ebd67d79d3a64da7c6e6fb475a0100ba4bad5c02001da6bfbfbfbe7af56aafe50040d7f13e0760625ffdea575fdbd3d3f386583d76a4a52dad8dbc63e5ca959f1fd904603679ff0c00002dca37cfe52a004057f13e0700005ae7fd33cc3dd3c503000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a045b57209007498fefefefaead5abbd9603005dc7fb1c000018dfaa55ab866ab5daee06d10ec6fbe9be721d980546b20300000000004067f8977239a17abdfeffca55609628b2030000000000400758b366cde9f57a7db8dc1ccf601cf3bbe53a304b14d9010000000000a0734c389add2876981b8aec00d0999e552e9f582e0100ba85f739000030894946b31bc50e7344911d003a4f763c5fb07af5ea77c4f2a2880e6800a05b789f030000add96534bb51ec000030beec78beab5ca617476e8be88006003a9df73900003005ab56ad1aeaefefaf9719289b813960243b00748ec6c8aec8e991cbb2217c3ef28688915e004027f33e070000a66e7434bb51ec0000b0abb123bbc632d20b00e854dee70000c03455a3d9cb4d608ed4ca2500d0bec61bd9359eec807e7f6465e447d90000d0e6bccf0100803db06ad5aa0b6ab5da4b56af5eade647573afdf4d30fefe9e9f9a538cf8f8dcdc32347d7ebf5c3637baf587f387277e4f668cbfc68e9d2a5ff7eeeb9e76e8eb659352b7f70d75c73cdb3afbcf2cad76cdebcf9c46ddbb63de681071e3860cb962d4b0706066a7d7d7ddb972d5bf6706463acdf16fbbff0c31ffef09f2fb8e0827c10e86271622fbae9a69bceddb871e3af6cddba759fc1c1c1724ffb883fd281dededeabb66fdffefad34e3bed8ab29936e6bc620168b5e3b9a2031ae681d7238069f13e0700800565b6fa0f3ef1894f14679f7d76b9b567f41fd00e5ef292971c1be7e1aa58fdf95aad36d1ac6713c93fac6fc6dfdb858b162dfafc673ef399db479a67d68c15d9afb8e28a5fbaeebaebde78cb2db7fcc4ba75eb969d74d249c571c71d571c70c001c5c1071fdc58f6f5f5158f3cf248f1c0030f149b366d2ae249a4b8f6da6b8bf8bae1238e38e286f841cfbbfdf6db3f38179f2e60eec5effae31b366c78e5f2e5cb8bc30e3bac713eb49b818181e2ce3bef2cd6af5ffff0f0f0f04a2f20edcf7945979b6ac773450734cc31af470053e67d0e00000b8efe03985c16d7172d5af4ce58ed1f69d96383f57afd1fe35c3ee7820b2ec811ef33668f8bec396afdf2cb2fffe7fffeefff3eea277ee2278aa73ffde9c5539ef294293d3164e1fdbbdffd6e71d5555715dffbdef71edd6fbffd3ef8c0030ffcd9b9e79efb4879085de0b2cb2edb76d45147ed952f1cedeee69b6fbefbb6db6efb6ebc78bca06ca24d39afe862d3ed78aee8808639e4f508604abccf01006041d27f00e3cb29e17b7b7bdf5aabd57ebb5eaff796cd0dd15e3ce9494f2a7280f76483bbefbdf7dee2073ff8410eee2ebf7287b8cd47e2b6dfbd64c9920fccd460ef6917d9efb9e79e277ced6b5f5b7dc925973c2314679c7146e307da5377df7d77f1d9cf7eb6be76edda2dcb962d7bcb3f8472171deea28b2eaa3feb59cfcaa946ca96f6959fd4bafcf2cb37c78bc78165136dca794597dad38ee78a0e6898235e8f005ae67d0e00000b96fe03d8d54b5ffad29fabd7ebe7c7ea7e232d23b2fe9c03bc73b9d75e79f9f5d63cf4d0438dc1dd975d7659f1c31ffeb06c1d11dfe7f65aadf6a2d5ab577fb76c9ab669fd155f75d555a77fe0031ff8d1edb7dffe8c77bce31dc5ab5ef5aa1929b0a7c30f3fbcf8fddffffdda9bdffce67df6dd77dfbf7de52b5f79f1e9a79fbe4fb99b0ed7092f1c293ffd127f6433735233eb9c57749999ea784e9f8fbc217251e489d900cc1eaf4700bbe57d0e00000b9efe03d861d5aa55af8fc5bf47460bec396afdddef7e77f1c637beb1c80fa54ca5c09ef6dd77dfe2b9cf7d6ef1a77ffaa78dac58b1a2dc53e439bd3c16df88ef9bd77bdf2353fe4bbef4d24bdff5f18f7ffcfca73ffde98bdefce637178f7dec63cb3d332bafe7fece77be73497c9f9f8a07e39af8598f2e77d1e506b66d2aeeb8fabce2c64bdfd348ae671bec09e7151d62263b9e2b3aa0a18d783d021630ef730000a045fa0fe876cf79ce7316f5f7f77faa56abbdbf9a1efe90430e29def296b7ec5218df1355c1feb5af7d6da3f85eda27beefea55ab56e5b5dfa76d4a45f60b2fbcf04b9ff9cc67defa8a57bca278f18b7366b6d99573ecfff66fff76df99679e79d4d2a54baf7ae94b5f9aff94d3c5b66fbdaf58f7ed0f170f6df86131f8e8438de47ab6e53e980ee7151d62363a9e2b3aa0a10d783d021630ef730000a045fa0f58080e3ffcf04fc5e2e5235b23c5f03ffff33f2f9efce427972d332b47c4e7ed1f79e491654b6354fbdbf6a4d0de7291fde28b2ffedb0b2fbcf0056f7ad39b1a73dfcfa5e73def79c5effddeef1dd0d7d7f74523dabbdbe63baf2c86061f29b776c8b607eefc5eb90553e3bca203b4d2f17c70e4d7231f8f7c23726de496c80f22d9a9fc91487e026ea24bace8808679e6f50858a0bccf01008029d07f40b75bb56ad51fd76ab597959b8da9ddffe44ffe64c62e4d3e91bc647916da9ffef4a7972da385f6694d1ddf5291fdfbdfff7eff9a356bde98d75e7ffce31f5fb6ceada73ded69c5cb5ef6b27d962c5972916bb477af8737645fcaf8f2935a301dce2bdadcee3a9e73ff97237745fe39f2cac8a991ec40ce0f9e9d14797ee43591cf45ee8de4ed65fb583aa0611e793d021620ef730000608af41fd0cdfafbfb7fa9a7a7e72fcacde2f9cf7f7e91f5e79cdd7c2ee4f5ddffe00ffe606ca1fd1fe37e4d7984f96e8becb7de7aeb8fad5ebdfa9ff387cc42f77c5ab972e592673ef39987c50390ff3cd3858606b7956bbb9a6c1f4cc679451b9bace3f9d8c8172297467e3eb228d28abd222f895c15c929770e8f34d3010df3c4eb11b0c0789f030000d3a0ff806e95b395d76ab5f3ab6bb09f7cf2c9c5cb5f3e3a63fc9cc982feeb5ef7bae6a9e3f789fbf485b3ce3a6b4a43e9775b64fffad7bffe2f871d7658ef8b5ef4a2b2657efdf66ffff6be071d74d093fbfbfbcf2a9b00a0134dd6f1fcbcc87f475ed8d81a3118c9e3fe30f2dcc88991632227477284d7db22df8d54b2b33adfa1e4ed3c351b9ae88006006693f739000000eca456abbdbd5eaf2fcbf59cba3d0bdd7335827dac6a44fbbefbeedbd88efbb6fcd1471f7d7d63a3459316d9afbcf2ca5fbbe28a2b8efff55fcf4ba3b5877cb07fe7777ee7909e9e9e779f75d659f92976ba48ad36f12939d93e988cf38a363459c7f3d991af44f2daa4293b9d3f1dc98ee66747de1bf966e447917591b591ff8ce4143bcf8c64a7f41723959c6a354789fd52636b071dd030c7bc1e010b84f7390000b007f41fd08dce3cf3ccfc80f4e8b0f5d7bce635a305eef99285fedff88ddf28b78aa25eafbff9f4d34f1f3b63da8426fd6bbcfcf2cb3ffa9ce73ca738e49043ca96f670fcf1c7f79e70c209838f3cf2c8943e5140fb5bbcf4a0726d5793ed83c938af683393753cff5ce4a3916acad4db233f157945b9de8aec94cee96772ead5cdd910f689ac8e18e905f3c8eb11b000789f0300007b48ff01dd686868e8afcad5e219cf784671c20927945bf3eb59cf7a56b162c58ac67aad56dbaba7a7e7ed8d8d164c5864bff8e28b5f79f5d5571fd22ed3c48ff5aa57bd6a79fca07f3cd5f9f1696f071d7d4ad1dbd798296227d996fb603a9c57b491c93a9eb3f3373b88ab8ee72b223962ab796ad4a9f86a243baeb3333a6507745efbd4b54b619e783d02ba9cf73900003003f41fd06dce38e38c9facd56af961e9c68ce5ed34837a6a1ecd1ef7f39571ff96979b939ab0c87ecd35d7fcdecffeeccf16cb96edfa87dc0e7208ffe31ffff83b1f79e49117974d74817d0e3ea1d8fba027945b3b645bee83e9705ed12626eb784e1f89541f1ccbe951f3536e7737b6a6af1aed558df4ca2955473f31d8440734cc01af474017f33e0700006688fe03ba4dad565b55ae36468e678db79d3ce9494f6aa4b4687070b0a5daf3b845f67abdbee8965b6e79d2d39ef6b4b2a53d9d7aeaa9fbc7e29747b6e80af57a31b87d4bb9b143a32df6c1b438af987fbbeb78cee9534f1d596d5c9bf405913ded78ae640774ffc86ac3cb22278dacee440734cc36af474077f23e0700006692fe03ba4c4f4f4ffe1fd89045f676d47cbf6ab55a4bb5e7718becfff55fff75e6430f3d94d73d2f5bda53fcc03965fc69a79f7e7a4e0d4787dbbef5bee2d62b3f5e6cbdffe6b265876ccb7d790c4c85f38a36b0bb8ee7f4ae7299fe21b2766475c6e494aa5f1c596d4cd33ad175657440c32cf17a047429ef7300006006e93fa0db9c71c61927d5ebf5c6d40c397bfa89279ed8686f37799df826a7b672b9f2718becb7de7aeb6fb6fb28f6b4d75e7b15871e7ae8ed3d3d3dcf2b9b9807ab56adfac299679ef9d47273eaeaf562d3fa6f15ebbefda162dbe6f565e3ae725f1e93c7fab456f7735ed14ef6e07c6ca5e3f9d848f50afe70e42f465667dc5bca65ca4fe24df401351dd0d0c4eb11d0edbccf0100803da7ff8085a895f3be56abfd6ab95a3cfde94f6f5c93bd1dedbbefbe45d3e0f345dbb66dfba5727d42e316d9efb9e79e639be69e6f6b4f7ce21337c562a78f1730b7e20fe485c3c3c3574de745a4fa54d686ebbf5c0c0f0d94ad13cb63f2589fd6ea7ece2bdac934cfc7563a9ed3e89b8cf095c86c9d84399dea7747568bbd223975eb44744043c9eb11d0edbccf0100803da7ff8085a8c5f37ef4ffae934f3eb95c6b4fcdf72f7eb6ddfebf386e91fde1871fdeefa0830e2ab7dadb11471cd11b3fe8f2729379349d1791dd7d2a6b22d5a7b5e87ece2bdac914cec7563b9ed3f3cb65aaa63a9d2dcdb7dffc7dc7a3031a9a783d02ba9df7390000b0e7f41fb0104d76dec7bed11aeec1071f5caeb5a7430e39a45cdbf97e4f64dc22fb830f3eb8b4838aec4b63a1c8de46a6f222d2caa7b226b2275f4be7715ed14e76733e4ea5e339e534aa956f97cbd97245b94ccddf77223aa0610caf4740b7f33e070000f69cfe0316a209cefbd11a6ebbd79ec7dcbfddd69e6be572272f7ff9cbeb1ff9c8471ad73c6f77b7dc72cb9d7ff2277fb269f5ead5ed3dc74017ebefef9ff4c21ff57afd8bbdbdbde7bce215afb8ea94534e295bdbdf25975c52ac5cb972dcbf11669ff38a76d2eaf978de79e7e5f53fa7d2f19c1e8a54d70ddd3792d72b9d2d27457e30b25aac8db4fadaf9e2c8fb232b23391d2b2c185e8f806ee77d8ef7390000ec39fd072c44ad9cf7b55aedb4585d96db9ffad4a7dabaf67ce79d77166f7ce31b1beb71df7fb466cd9a131b1b1318f70f231f94cf7ef6b3e5567bbbefbefbee7addeb5e7744b9491b3bfbecb38b4e7af138ebacb3ca35da99f38a76b17dfbf6e2c20b2fcce5cb63f3dc91d69634bf1199ed37acf9e9bbdb46568bdb23478eacb6e4edf1fee01de53ad374d75d77157befbd77b1df7efb952d8df732c5adb7de5a1c79e491c5a1871e5ab6ee70d34d3715cb972f2f962c5952b6ec6cd3a64dc501071c50f4f48c3b41d1a85b6eb9a5d87ffffd77f9c4e8030f3cd078733bd1edd31aaf474037f33e0780b465cb961ca1566e8d6fd9b2461f3a0013d07fc042d6eeb5e7ec677ded6b5fdb58afd7ebb7af59b366d2ff2bc77d57f4b297bd6cf8939ffc64adafafaf6c695febd6adfbdf37bff9cd4b76f7690266cf449f548913f0fbb17847fc6efe35b72fbae8a2ba4f68d12ae715eda4d5f3314c6724d4b648f5f1bdbc04ca2323abb322a742bd7664b571ff5a7ded9cead4b04cec33912f47feb9b135e225917c7c1f883c21b231527976e49b915f8d7c371bc2d6c88323abc5f3225f8fe4b5676f88e4472d9f13a9fc49e43f46568baf45ce8ffc5324dfd16e8fe41bc51ce997d3e57e2ac2185e8f806ee77d8ef73900539097fed87b64b5b13c3a92ff87e4ff16e9fac8af8dac022c2cfa0f58885a39ef57ad5ab5ad56ab35fe2ffca77ffaa7a29d6bcf531dc93eee90a77df7dd7760f3e6cde5567bbbe79e7b1e8a5fcedde5266d20ff78222f8c93ef694d1d32b0479c57b49349cec7e95cdbb3f935ecf072395b9a6fbfd5d74e1dcf332b2f943518c9427b16cf3339722e0becfb47f2b1aee470f74f4672345e1635ae8adc15c9df49e57723d744b290fed7913f8aa44f47d64772d87a7fe42d912ca8ff7ce48c48767c7d21f23b919c114881bd455e8f806ee77d0e0093f889485e9ee3c991fc60d3a6c81f479e1bc97605768092fe0316a2f1cefbe61a6ebbd79e9bef5f2bb5e7718becfbefbfffc3f7de7b6fb9d5de6ebbedb6ecac5e37b2c57cf2a2c16c705ed14e5a3c1fa7da017d63b94c3f5e2e674bf3ed377fdf89e8789e59590ccf51eb1f8ae4c8be7f2c93a3cb73c4c7b1919c8637e5a8907f8b645b16e4f35393797dd93cb61a999ea3dc7384fba2c8e2481617de1e3926f2db911cd17e4724f765c13ecfc7fca868f571d15b2239e2e4a8487692e5ed3001af4740b7f33e078016e5ff2aff12f9c948f6cbbe22921f08fee908c082a7ff80856837e7fd680db7dd6bcf7959cf26bbad3d8f5b645fb264c9c6bc3e6727b8e38e3b72cad4563fa5ce2cf0a2c16c705ed14ea6713e4ea5033a4732575e582e674bf3ed377fdff1e8789e79392dfbe72279619f2b223982fdcf23391a24a756ba30921d530746be11c991edd971f58b912cc2e7b5665f1d49bd91bf88e4745d37477e10c9a27a8e58cfa9e48f8fe4b1793b393dfcc59194b7518d96ff60e43f23799e7e34b2e342f18cf27a04743bef73bccf0168d13e915745ae8b1c12796924e5f3efc722ff15f9ad6c005888f41fb010b578de8fd670dbbdf63c66a4fdf446b2f7f4f4fccf0d37e4e574dadfdab56b970d0f0fe7c82ee689170d6683f38a7632cdf3b1d50ee87f2f9729a7f2ce8e8bd990c5d52cd8a69caefcab23abe3d2f13c3b86cb65e5f2c8772277461e1f392192c5f7fb231f8efc6c24f765113daf639b53c3e768f53c762892fbf3e39f39726f45246fffef22f9bbce11256f8be435e0d36bcae5d323bf37b2da38dff2f79cc764713fa77a640caf4740b7f33e0780169d1bf9b3c81723f91a70402467c3ca59b1be14c97df941e2bc1c15c082a3ff8085a895f3be5eaf8fce34f6831fe438a1f6b576ed8e7273f3fd9ec8b845f68d1b37feddfffccfff8ced086e3bdbb76fbfe9e1871f7ee6d2a54b9bff710768c9c0c040911f28ca65b3a9b6c3245ae980fe7ee44723abc5c191378eacceb87746aae9c0bf1ed969ee9b263a9e67dfcb2279adc2d32279edc2fcfd2f8b5c12a9a621ba34f2d6485ee730a78ccfebb2bf27921d5a5f8ba42c22e448f62cb4e7e8f57c5ff7fb911ca19e9fb4cc427d5e6bfd29915f88e4799805f5c322f93eefa1086d60aaaf3b13b503cc31ef730016961ca57e74243fd494ff67e425aab227fafd914f477e33921f08be2b02c02c986a3fc144ed3097eaf5fa680df7aaabf20a33ede991471e29aeb9e69a9c6db461787878b7b5e7718bec1ffce007af8c2fde76ebadb7962dede9a28b2efa612cae38f7dc73dbfb4af9405b5ab76e5d71d249273596cda6da0ebbd14a07f4bbca65fac3488ec69a49cf886461b792d38c8f47c7f3ecc991e839357c16d5ff27f21b91d745b21090d3bae7e56fee89fc4de4bc484ec19853be5f1df98748fe0e33af8c34db2b9205f82cb23f12f9422447bbe7a8921745b2e32b8bedff5f646324afef9ed3d2e7edb7fd072a178aa9beee4cd40e300fbccf01583872e6abfca06fca59b34e6d4abe16a447cb2500b360aafd0413b5c35c3afffcf3afa8d7ebd97fd9988efdbaebb25bb2fd7cf7bbdfcdc27a0e68ca0f065c76c105174c6fbaf874f0c1077fe37bdffb5eb9d59ebef295afe4270a72441700b4b3dd7540e7e8e21ce995721ad57f2b9733210bae5978ad4677e5ebe6781dcb3a9e67d7b6c84191e747de17c951ebe744b2a32a7fd779cdf43322597c787d24a7587c4124afdf93d3ebbebb4c35ed7bca29e2f78ee4a8f7c5919c423e47bbaf8ae434f37f1ac9a2c39a484edd98c7f645fea06c038099e07d0ec0c2f3ab91fcdfa54afe0f02003091af94cbe2dbdffe76b9d65ec6dcafd1fb3b99098bec77dd75d73bbef295af0cb5eb3412f7de7befe59153868686f21f7a006877bbeb80cea9f77224727a6ae4b3913ded80ae3a9eab116339756a4e273e968ee7b991d754cfa2f9c3915f8cfc54e4972259f0ce02fbdf46524eff9e4939523d47a9e7478e33d5d48bf91e2ea785cf6b1f3e10c929e573347c75ada025912cbc67713f8fcba27b4e499f85f72744f2daeda93a0e00f684f739000b47fe0f91c9ff55aaf89f020098ccea72597cfdeb5f6f8c686f2739b37b8e64af0c0d0db5344069c222fb3ffee33f5eb974e9d2cb2fbc3067146d3f6f7ffbdbefa9d56a1f6d65b83e00b489c93aa0f355bc7994f22f477284f274a7543d29f2df91bc5e5eca69fdfa2363e787d2f13c3f72baa02c8e3f2d9205819cbafd4d911c9ddeec1d912cce7fb44c6ee708f73c3e7f9f397d7c5ea33daff19e5f9b53c2a7974672aaf96679bddabc0efc4f44b2709fde1bc9e9e801604f799f03b030e4b5d7f3f93e2f07522567e37a61040060176bd6acf9cf585c91eb39b87bf5ead19a7b5bf8a77ffaa772ad61f5e73ef7b96a20d3a4262cb2a73beeb8e337ffeddffe6de0a1871e2a5bdac3f5d75fffa54d9b363d7bc9922539252a007492c93aa0cf8d6411b59223bdae8dbc3dd2ea68af8323394af9aac8d1d910b2e3393bb6f3cd4c331dcff36fecc736d797cb4afefe9bdbb644b22de528f51cb5777d2447f2e57625dfb48ebded9c92fea6c8fd8dad11f986f1e6915500d863dee70074bfef44368cac8ecad9ba7e34b20a00b0ab7abdfe9672b5b8ecb2cb8adb6ebbaddc9a5f575f7d75f1c31ffeb0dc2a0643ce04da92498bec59a9df77df7d3fb77af5eabcc6675b885fc27d7ff9977fb97facbeebdc73cf6daff90400a035937540e775ba5f1ea9a654cd4ee7ec90be25f2ff455e1cc94ee59c922fe5fe9c2afcd723d9919cc7e56d57d726cdd7ca1c2df689c6d60e3a9e0180d9e07d0e0000003b59b366cd3763d1983e7d6868a8f8e8473f5a3cf248f5afe1fcc869eb3ff6b18f35d7c03fdaea28f63469913d3df0c003bff3dffffddff75d72c92565cbfca9d7eb837ffaa77ffa1f8f3efae892bbefbefb4365330074a2dd8df47a6ee4fb8dad113972eb6591cf45b28339472dd72339dd4c5ee7fb9f232f89348f04cb372e79ddefaf36b676d0f10c00cc26ef73000000d8c9f0f0708e66cfd9c88a9b6fbeb9f8c427c67e5e7aee64a1ff831ffc607de3c68dbdb95dafd73747db5f3476b668b745f61c2dfec8238f9cfac94f7e72db0d37e4ffb6f367f5ead51fbff1c61b7f367ec8175d7cf1c58d5f020074b0c93aa073baefbc5e7776384f75dabdbceee9cf47b2037becd7ea780600e682f7390000008c3afffcf3d7d6ebf5bcdc57434e1bff852fe45530e75e16f8afbdf6da5ab939d8d3d3d37fc10517dc5d6eb764b745f6f4d9cf7ef647b55aed257ffdd77fbdedde7bef2d5be7d677bef39dcf7ee94b5f7a516f6fef0ba6fa4302401b9bac033a7d267262243ba2df16f97a645da49a4b27af7d9753d87c25f28791e322cf8c8c1dd595743c030073c9fb1c00000046ad59b3e613f57afdfde56616dee7b4d09e23d8b3c0fe8d6f7ca36c698c62ffc3cf7ef6b3e3fd9f39a9968aece9d39ffef47f3cf2c8236ffce33ffee387e672447b4e11ff2ffff22f1f7bdffbdef7dcfc74c379e79dd73ca51c007483dd7540a77cfdcbe96a56468e892c8de427edf68d6487f32f44de1b99e89a313a9e0180f9e07d0e000000a3eebefbee37c5223f64dd9085f60f7de843b37e8df6871e7aa878f7bbdf5dfffad747bf75faf49a356b3e50ae4f49cb45f6f4cffffccf1f891ff0f43ffff33f7fe89bdffce640d93c6beaf5fae6b7bffded9f8907f71763f305f143feebc81e00e83aad74404f978e6700603e799f03000040435e123c2f0d1eaba3d5ee9c3afe9def7c6771db6db7952d33ebbaebae2bdef6b6b70daf5dbbb69a223eebd0ff7cd75d77fd56b93965532ab2a71c2e1f3ff8fff9e4273f79f7073ff8c1bbb3ea3f1be241fcaf57bef295575c7ffdf53f363c3cfcccd5ab57e775d700a09bcd4607b48e6700a01d789f03000040c305175cf0f05d77ddf50bf5a6a9e36fbef9e6e22d6f794bf1d18f7eb4d8bc7973d9ba67eebefbeee2bdef7d6ff18e77bca3d8b0614355171f8ceffbe6356bd6fcdf2cf8976d5336e5227bca6bb4f7f4f43cf9f2cb2f5ffd3bbff33b0fae5ebd7ae3c0c0cc0c6c7fe8a187ae7ad39bdeb426f2e4ad5bb75eb1d75e7b3ddb35d8bb479cb4e55a7bdbbe7dfb15715ff3fa7f7400e7155d66263ba0753cc31cf27a04b05bdee70000b0e0e93f801159e05eb366cdefc779f6cad86c14bbf39ae9d15efcdeeffd5ef14ffff44f8d11e85395b7b176edda46b1fe8d6f7c63fdbbdfdd691c779ed32f8ceffb9e91cde91b1d123f5d2f79c94b8eedebeb7bd7a2458b7eeeb9cf7dee5da79e7aea8a638e396659b9bb25f1e06dfece77bef33f5ffad2971eb8f1c61b9f1b4d9f1b1e1e3e4771bdbb7cf39bdf7ce0b8e38edbefe0830f2e5bdad70f7ef0837fdeb469d3e1a79d765a5e139036b627e7557e3868ddba75c5d1471f5dc4f358d93af5f65639af98a21747f2537c79befc281ba648c733cc21af470053e27d0e00000b92fe0318df19679c71524f4fcf5fc5ea2f8fb4ec70c00107144f7bdad38a934f3eb9d87ffffd8b430e39a4d196e7755ec73d47bdc7b95adc77df7d79de16575e79657ddbb66de3d5c03f5dafd7cf59b366cdba727b8fec7191bd72e699673e757878f8d76bb5da8b162f5ebcef49279d74d7939ffce4fc41f77eec631fbbff41071d7448feb0f143dd71efbdf76ebaebaebb1ebeedb6db1eb8ecb2cb86efb9e79ea7c70f9505f50b878686cefddce73e77e3c8add24dfeebbffeeb0f7a7b7bffe898638ea91d1ae25c29f7b48f38871f58bf7efde5b7de7aebc9b1f99a78f1f8f7913db42be7155d6eba1dd03a9e618e793d029832ef7300005870f41fc0e456ad5a756afc5d64b1fd27475af65cbd5eff4afcddbde5bcf3cefb7ed9342366e5af373f6d100fc0af464e8acdc32347c70f70786cef15eb390c3f0beab747dbedb1fceed0d0d0bf2bac2f0c5ffdea575fdbd3d393d3031e3bd2d296d646deb172e5ca9cca900ee0bca2cb4db5035ac733cc13af470053e67d0e00000bce4cf71f5c7ef9e5c5b5d75e5b9c7df6d965cb8cd07fc0bc5ab56ad5f362d11ff9f95aadb6bcd1383537d6ebf50b236bce3ffffc2bcab619d57e1f910100c66ab5035ac73300d069bccf0100803dd0dfdf3f1c8bdaead5abd5fce84a679c71c64fd66ab55f8ae407537637b8fb47b1fcd7f3cf3f3f3f280200d0e880be2df2c4c6d6aeb2e3f9ae720900d049bccf0100806958b56ad517fafbfbeb9997bef4a51f289b8139d0532e0180f6965333e534521745c676401bd905007432ef730000601a6ab5daaf96ab79dde9d796abc01ce82d970040fbbb36b23e725ee4cb91fb223a9e01806ee07d0e00004c418e62afd56a27969ba9e7e4934f3e68eddab55f29b7815964243b007496e6915e6745743c0300ddc2fb1c00006851f328f68ad1ec30778c640780ced318e9d5dfdf7fdedab56b7f21d6753c0300dda21ad1fee1c88b22dee70000c018e38c62af18cd0e73c4487600e84c39d22be9780600ba4dbecf3926e27d0e00008c63bc51ec15a3d9616e28b203000000ed6673b90400009ae428f658d446b6c6d5fbd297bef403e53a304b14d9010000000000a0034c368abd62343b00004ca0bfbfbf5eae02000000000b947e42987b46b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d0a25ab904003a4c7f7f7f7df5ead55ecb019857f97a54ae02c094dd73cf3dc5a64d9b8a134f3cb16cd9616868a8b8f9e69b8b152b56148b172f2e6ebffdf662cb962dc509279c506cdebcb958b26449b174e9d2626060a0b8e69a6b8ae38f3fbe58b66c59f9d500b0b0e82704008016286a00d00ebc1e01b087ce8e3c10f97e99ff8d1c1049fb46f275e6f19157472e8be4b107462e8dbc2a921e13c9e34e8a9c1cd9dc94a32200d0d5fc5f0673cf74f100000000c05c7a56e4fd910f465e1a7930b236724de44791d744b258fee4487a52e4c723d7466e88bc21f268647be419913c3ebd2c92b73d14393cb25f44ff27000033ce9b4c00000000602e3db5cc7f4672f4fa4024fb29b3907e7a6479e42591d745d22b23c747b2787e56e4639194a3f6b2d09e23dbd391914746561b4bd3e60200302b14d90100000080b9f684c8df4472f4f963234747be15b924b23ef2f6c8cb23e95391ab47561ba3ddef88e414f11b22d99e45faf482c87044711d008059a5c80e00000000ccb5ef4472e4fa2f44be1bc9d1eb39f5fbd6c8e7233f1df98348faadc8d2486fe48d911cb99e45fabc8d6ccf91eee97d912cd0e78877000098358aec00000000c05cea8bac8c9c11f98dc8f7223942fdd391fb23d967f9a6c88a48ca6baee7e8f51cf5fe33e5f6e2c8924816dd1f8aa4d5917d2239c2bd5916e7010060c628b2030000000073e9c4c87591f744f68be475d51f8d9c13c911ed1b23bf16797da47268e4fac87b236f89dc167943e4e0c8ef462a2f8c5c36b23aea0b91834656010060cf29b2030000000073e5d8c8ff8dbc33b22692d3bee748f3eca7bc3492d755df16a9472ab9fe5791ff885c18f9eb484e11ffaac89f45f2ebd2732339dafd238dad91afcbdbfec5c860360000c04c50640700000000e64a5e5f3d47aa67a1fc7991c323795df6e3235970ff9fc8ff46ce2cd7732af8bcc6fadf45b2809e5fffaec8c591bc26fb5323795df6f4e1c85b23df6f6c15c5b7225f896c8e3c980d000000002c60fdfdfdcd233b00605e783d026096e434f0ab224737b68a625124afc13e9ebd22bf14796c636b871cc57e5c646c3b007415ff97c1dc33921d000000006837f745723af9758dad91e9def3baede37924f2ef913b1b5b3be408f81b2263db0100608f28b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000000000000005aa4c80e000000000000002d5264070000000000008016d5ca2500d061fafbfbebab57aff65a0ec0bcf27a044c553e6f94ab0073e69e7bee29366dda549c78e28965cb0e434343c5cd37df5cac58b1a258bc787171fbedb7175bb66c294e38e18462f3e6cdc592254b8aa54b9716030303c535d75c531c7ffcf1c5b265cbcaaf9e9afc5e0f3ef860b935bebdf7debb713f2af935975f7e7971f2c92717071c7040d90ab033ff970100400b744e02d00ebc1e0153e57903982767471e887cbfccff46aa8af5be917c6e7a7ce4d591cb2279ec81914b23af8aa4c744f2b8932227473637e5a8482b9e1ad91ef966992d91bccd6afbfec8cb228745ded6943b22b78d697b7204c0fb2b9807a68b0700000000a01b3d2bf2fec807232f8de410f2b5916b223f8abc2692c5f2aa58fda4c88f47ae8ddc107943e4d14816c59f11c9e35316c1f3b687228747f68b4cd4d73e5ee16b53e4d432ef8a7ca669fbca483a22f2479147cafc5de4034ddb791f9e1e49f93daaef53ad671e8a7c2d725c040098418aec000000000074a31c359ef9cf488e5e1f88649f7816d24f8f2c8fbc24f2ba487a65e4f84816cfcf8a7c2c92b2609d85f61cd99e8e8c64a13be572aa53342f89e408f6fb2239223def43ae6751bc2a9c6f8dec13b97d821c1c994cdea733232b239fce060060e628b20300000000d0ad9e10f99b488efc7e6ce4e8c8b7229744d647de1e7979247d2a72f5c86a63b47b4ed19e53c46f88647b16e9d30b22c391e95eff3847c7ef1fc969e7ff36f2afe5fa2191ef45d2f591b7449e1dc951f35930fffb723df3f948fe0c93c951ece929e5120098218aec000000000074abef4472e4fa2f44be1bc9d1eb39f57b8e14cf42f54f47fe20927e2bb234d21b79632447ae67913e6f23db73a47b7a5f240bf439e27d3ccd53b6a7b1dbe98991bcc6fa8b233f16b929f2c248b3f744b2c0bf26f2e14816fd7fb74c5e3bfee6c8644e2b9779fd7900600629b20300000000d08dfa22395dfa1991df88e428f11ca19ed3a7df1fc9fef137455644525e733d0bd939eafd67caedc5919cde3d8bee399d7b5a1dc9a9dcb300de2c8bf32947b8574963b72b796df69f2c538d606fb628f28791bd1a5b23d78c5f57e6a3d930892ce89f17c9a9f27f331b008099a3c80e0000000040373a31725d244784ef17c9ebaae754ede7447244fbc6c8af455e1fa91c1ac9a9dadf1bc9e9da73b4f91b22790df41c415ec951e7978dac8efa42e4a091d596e46dae2df3cc6c18e379912ce6e728fc943f4b759df92cbe4f260bfafb469e1fc9af03006690223b0000000000dde6d8c8ff8dbc3392d3ade7b4ef39d23cfbc42f8de475d5b7459aa770cff5bf8afc47e4c2c85f47728af85745fe2c925f979e1bc9d1ee1f696c8d7c5ddef62f4606b3613796457274fd9d91bc267be6da48de6e16ff5316c8ff2ef2b1484e0d9f05fff4406473e4e1c61600302f14d90100000000e836797df51ca99e85f21c117e782447841f1fc982fbff44f25ae56796eb39157c5e633d0bdb5940cfaf7f57e4e2485e933d478fe775d9535e1ffdad91ef37b68ae25b91af44b2f8fd603634193b457c4e3d9fd3d867dffcb991bc5f997f8fdc1bc9fdf9359f8be494f6397a3ea7aedf12c9fb3e10c9ef714f24bf3e354f45dfbc0e00000034ebefef6ffeb43d00cc0baf47c05479de00da4c4ed9be2a7274636be43ae859e81e4f5e1bfd97228f6d6ced90a3d88f8b8c6d1f4f4e5bffac91d571e507000e8cfc58e431d9d024ef578ed07f5ae4d9913c16c0fb2b980746b20300000000b050dd17c9e9e4d735b646a67bcfebb68fe791488e38cf69de9be508f81b2263dbc793a3d0c75ecbbdd94d911cc17e4d2447e237cbfb7563e4aa484e5d9fc70200f340911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b4a8562e01800ed3dfdf5f5fbd7ab5d77200e695d72360aa3c6f005395cf1be52ab4bd7beeb9a7d8b4695371e28927962d3b0c0d0d1537df7c73b162c58a62f1e2c5c5edb7df5e6cd9b2a538e184138acd9b37174b962c29962e5d5a0c0c0c14d75c734d71fcf1c717cb962d2bbf7a6af27b3df8e083e5d6f8f6de7befc6fda8e4d75c7ef9e5c5c9279f5c1c70c00165ebccbbebaebb1adf7bbffdf62b5b8ae2befbee2b6ebdf5d6e2c8238f2c0e3df4d0b275879b6ebaa958be7c79e331627cde5f0100400b743200d00ebc1e0153e57903982acf1b7498b3230f44be5fe67f2355c57adf489ecf8f8fbc3a7259248f3d307269e45591f498481e7752e4e4c8e6a61c1569c55323db23df2cb32592b7596ddf1f7959e4b0c8db9a7247e4b6316d4f8ecca4cf44f27b377b4924ef5ffe8cf9f3377b766428f2cb91c3cbeca8d0e37912e681e9e2010000000000a6ef5991f7473e187969248790af8d5c13f951e435912c9657c5ea27457e3c726de486c81b228f46b228fe8c481e9fb2109db79d05e6aab03c515d67bc22eba6c8a965de15c9e276b57d65241d11f9a3c82365fe2ef281a6edbc0f4f8fa4fc1ed5f7a9d6330f45be16392e3256757cb381c860e4cb91aae8ff8e487ee060ffc805914afecc9f8cdc1ec9c7f8aac85d917c5c00e68d223b0000000000c0f4e5a8f1cc7f4672f47a1691b3fe9285f4d323cb233952fb7591f4cac8f1912c9e9f15f9582465413a0bed39b23d1d19c94277cae554a703cfb9d57304fb7d911c919ef721d7b3285e15ceb746f68964117bbc1c1c994cdea733232b239fce86ddc80f1ee4fdf850645be41fcb9c1fb93e726ce4e591b477e4df22d99605f99c833f3fbc90c7fe470460de28b2030000000000ec992744fe269223bf1f1b393af2adc82591f591b747aae2f1a722578fac368ace39457b4e91be2192ed59a44f2f880c47a67baded1c1d9f23c373daf9bf8dfc6bb97e48e47b919485edb744724af61c1d9e05f3bf2fd7339f8fe4cf30991cc59e9e522e279323fa3f17796de48a488e60fff3c84f44f2430617467e3a921f34f84624efff4f467e3192f7353fb09053ed03cc2b45760000000000803df39d488e5cff85c87723590ccea9df73a47816aab370fc0791f45b91a591dec81b235950ce227dde46b6e748f7f4be4816e873c4fb78aae9daab29d9c76ea72746f21aeb2f8efc58e4a6c80b23cdde13c902ff9ac8872359f4ffdd3259d0be393299d3ca655e7f3e8dbd1fcddbf9a181669747f2e7be3392d7aa3f2192c5f7bc667cde979f8de4bebc0ff9d8e47dcaa9f3f3588079a3c80e0000000000307d7d919c2efd8cc86f447294788e50cfe9d3b3589cb59837455644525e733d0bd939eafd67caedc5919cde3d8bee399d7b5a1dc9a9dcb300de2c8bf32947b8574963b72b796df61c0d9ea946b0375b14f9c3c85e8dad916bc6af2bf3d16c984416cecf8be454f9bf990d61ecfd18bb9df267ffb54816e89f1bc96bd72f8be4a8f9fcbee9d2c85b2379edfa9c323ea7afcf0f047c31528d9e0798178aec000000000000d397d70abf2e9205e0fd22795df59caafd9c488e68df18c982f2eb2395432339fdf97b23395d7b8e367f4324af819ea3b52b39eafcb291d5515f881c34b2da92bccdbc9679e699d930c6f32259cccf51f8297f96ea3af3597c9f4c16cef78d3c3f925f37991c899e53c36751fd7f22f98184bc4efdd72339623e47fddf13c969f7b3709fb797d7aecf29f4ff2192330364aa91fe00f346911d0000000000607a7284f5ff8dbc3392d3ade7b4ef39d23ceb2f39123bafabbe2d524d9d9e72fdaf22ff11c96b90ff75240bc7af8afc5924bf2e65313a477c7fa4b135f27579db797df2c16cd88d1c199ea3eb73baf5bc267b264785e7ed66f13f6581fcef221f8b64a13b0bfee981c8e6c8c38dad99918f437e38200bf239157e8e5acf0f22e448fb2cf25f1cc9fb9b85fdfc40c211917cfc6e88fc7ce4dd6572e43fc0bc5264070000000000989ebcbe7a8e54cf42798e08cfeb85e788f01c819d05f71cb19dd72a3fb35ccfa9e0f31aeb59d8ce027a7efdbb225960ce6b93e7e8f11cf19df29ae4395dfaf71b5b45f1adc8572259fc7e301b9a344fc59e72eaf99cc63eeb40e746f27e65fe3d726f24f7e7d77c2e9253dae7e8f99cba7e4b24effb4024bf478e2ccfaf4fcd53be37af4f66ec31f97db2689ec5fbfcb0c04f457e29921f50c8027b7e1020e57dcca49cc63eef4b3585fd5d1100e85af922fd9848ab1fe6c84fb0e58b7c7e122f5f3473bbbab6cc78f293768745f26bf27a35c5da273d69f1dd871e73d82d2b5654d78e99d4bd8f3961df4d473cfea83c3ebff6cec38f3d64a2afadc77d7978c58ac3ef3ee698c3ee5fb1e2e8cd471d7560b4f9a00a306ffafbfb9b3f010d00f3c2eb1130559e3780a9f2bc4197c829db57458e6e6c8d5c073dfbd0c7937dd459787e6c636b87ec2f3f2e32b67d3c396dfdb34656c7951f003830f26391ecc76f96f72b47e83f2df2ec481e3b9b0e289795a3ca6525a7e36f6edb3b926d943c4fc2dc5320643665013cafa9922f76fb47f24d41be89a8f2ab917c71fec948be31f8d9c8e9919cc2e6f191fcda159189ced3df8ce46d9e1dc9ebd2ecf398471e39a06f49cfaf1f38d8f782870e7bfca19b961f77cac6c73ee18c8d473e6155950d8f3df669f71d75ec93a2fda76bcb867e72b8b7f63b07d6173ff6f007070ed9abb7387bbf8145f9c66117f79d70c2b2ed83bd672cdebe68d5e050dfab868697bcf281e54f78fcf9937f10000000000080ee96a3b5f35ae78dc16013b82f92a3b54f8de4b139dd7b5eb7bd7252e49091d5e291488e38cf69de9be508f81c053eb67d3c39f27becb5dc9bdd14c911ecd74472247eb3bc5f3746ae8ae4d4f579ec6cca91f9cdd697cb4a4e71dfdc96a3edb30d60de28b2339bf285315ff4b308fee3912cac1f1a198e64fbaf449e1ef9b5c8ff89e4a7e6b2189f6f48f21a2c596ccfe962c67e8aae92c7e79b8d7c31cde2fc13aedeb2255f5cef887727bffe685fefaae1a27ee6504fedc4fa706d687838dee00c172b7b8bfa73eb83c3a7e4d7f4d4f3fed40e1a181ce82bf6aa3f345cd4b6c65fc5e91b1ffb842363ff4e7a07067a866b3d070cd7eafb173dc3ff193fc61171fc4ffce4f2e593bd710200000000a0bbe500b29c0a3e477de788eb0f44728af72ad9cf5dc969e39f12c97ee5cf473e1bc962784e05ffcb11003a80223bb3293f29976f12f2137ad5542edf887c2192edb93fa7c4c9ebcbe41b8ae66bb3dc1db9309253d564213ecfd5b1c9e3b3a87e5124af59b3fee7eeb967ebf6ed0f5f183baf28ea4347d58787972eaa15df7bcc1d37fecba24583ff56afd5d6173db545b55ab1b8d6532c1deaa9e7ed341c7ce38d0ff60c0f7db15ed4f6895b3efbc1238e38b81edfa74acfe060e37bd6eac5f6dac33ddfa92d1afac070bdb8f8c8db7f6afbc82d0000000000b000e575c67344f87f44f2daec7f14499f8ee408ecbc346a7fe42d911ce0f5f391bcfe780e40cbfef2df891c11f95404800e305a60845990a3d673a4f9c7233f88e4e8f5bcdecc9b23274476e74791bf8ce45435f9357f3326f969bf5f8ffc7924a7963ffdedfbefbf62d1e203f6ef5b32fcc9e1453de7f5d41a85fc62e3f2c7bf7568b0ef1545bdd837b72772e05d37df1177f99c6df5e21383bdcb5ebaf1718f7fcfc6e5c7fe4d6668b8ef1db57afd678aa2feb3b565f5770e0f2efabd5a6df8ccfb8efe4e5e9b060000000080852747afe7a5517340590e263b3cf2f6c83191df8e3c27724724f7e575d29f18e92b936e89e440ae1ca8f6e448de0e006d4e919dd9f413919745b2b09d23ceeb91bd22cb23397a7d22390d7c4e9ff3e2c86323d7453e1979df98e4f43b5f89fc7d6eaf28967de937971d727ccff0e06f0f6cef39b1181c7eb8a8d5726afab4bca8d50fadd5ea135e3f7dd3918f7fd6a6239ff0e25a7df19397ed557f70d150ef678b5aeffb9716b5f76506e3fbd4eaf54b6ab5e2aabec19e8f66dbc0f6fab90fd7ebb796370100000000c0c291fdcd7f11c959576f8ee460b32caae788f51c00767ce4d5919ce1f59f22174752f6915f30b25a7c30f29f919cb1f5a3912cc403d0e614d9994d79ad993cc75e1499e8baea13198ce448f5958dad91e9e3f3d37ecdb937f250e4cedc5e576cbdf7e09ee28783f5facdc3c3c5d9bdb5fa338bfae8a701776bfb505eb7bdf6f8783ff492c1478b43f7bbebfafb0ebefd863bf62e73e8ed37ad1b2e8adbebf562a0a8d5eecdb6c337dc72cf31b7de9aa3f50100000000585872f6d6bc1e7bf655ff78644524077efd5d240be90391b7453e1349af29977989d4df1b596d4c1d9f05f73ce6a7239b2200b439457666d36d917323ff1ad99a0d2dba3ff2b5c8dac656511c167977644d24df6c9c1ff94824a7dd5916699cc7b57843b3f71d37de3e3cb4e5fca15aedbdc383b5eb8ba29e6f725a72f89d37fdf7a2de9eefd46bb5a15a7db867e3918f7ff5c6e5c7fed3c6e54fb82096e76f7cdcb11fe9e9c93739b5031fe9eb69b9780f0000000040d7ca016339923d0bed397a3dfbab7f3f9223d473f0d8872379adf51c54f60b911cb19e05f5ecf7ce827c0e2403a0c328b233db72947716cdf3137b29cfb99c36be9ac6bd159b23ff2ff2b148be51c9a27d4e177f5324af4f936f60461d71cf3d5b8a9efac3f59efa83d574f1b57a6d517db8365c8fb5c6412d58521bfc52bd5efb50315cdb5aabd76fe91dae7fa4a8d72eadf7148ff40c0d4e38ed3c00000000000b4a5e26f5f64816d9b34ffc0b911c24764024677acd6bb367b1fdff8b6c8c7c397261242f953a95be7200da84223bb3edc722a747aae9e2f78ee41b8dbc467bab1647f28d475ed3260bf6eb233744b2e09ed76fcffda3362f5f7ed0a2e1fa5b7b8b9ea716f55a6fbd3ebc77ad561c10b9b7a7a857c5feddaad597d686166dbf75b8563c58afd5efab2faddf34146f946ac3c592e16278b26bca0300000000b030e414f1d9ef7d6924fbaa7376d5f7445645f252a77f1a795924676afdb3481e9b33a5fe41d906400752646736e568ef274472da9b7c33f1d948be79c829de730a9dcf47ae2ed727b224f2c2c84f46762aa687bc2e7b7e1270df487e8f7ca3f2d82db5be2cec1f59d48b077a8afae78a7acfd070511c1aeb1b8b5acfbff7f41617d58ae2d1386642b5a2efa7b60f0f9c511be8d9af6c6a5854efb9bf5e147b2d2a7a976d3eeaa803ef7bdcb12fb97bf9312797bb01000000005838b2c692d3c27f29f240e4d8485e3af5c648cafeedecd7de16c9e3b29f3cfbc7b3f09e7de779edf6541d07408750646736e59b85432339e54d8e42ffdfc89191a7465e1ec9f61f45fe3ef21f919c4667ac1f8f3c33b221b23d1b4216efb3589f6d592ccfd1ec996747162f29163dbe56abddb4576fcfda03eeb8e992a2565f512b6acb868bfa2ff70ed7076e3a78ffb58b17d7bf38585ffcde9ea1fa7df1353ba9d5860fa9f50cbfa65eebd9de37343cf23deb454fef238b170df6f66cc8027ddcd671c570df6362c7ff5934d47b44e318000000000016929ceabd3ff2cac8d722bf16c991ed39336b7a6924079a357b67e4b4c84f4472d6d7f4dec83f8cac02d00914d9994d390a7c9fc86d91e591df8ce4a7f8de18c9227916da1f175917b92732f6da33f9e9bdbce6fae591bc96fa09911cb17e46e42f23f9a9c08722c747b2d0bdf9d94b96d4eaf5fa7171f835db7b1e5d7cffe38e3db35ed48f1faed7ffb0a7d673f14051ffb563eedafc8c7d8e3a6ae3a1775c7b434fefa2aa70df303c3cb4a85eefc9d1f157d4867bae1b5cb4e8e85a51ec552f7a9e36580cbcb5a73e74ea70adf861ad567fd640bd7e547c9f9e9e45c3f9330100000000b0f0e428f51ccc757d24afc59edb952b229b4756475d1cb929929746ade4c8f71ca80640875064673665013daf5dfed8c8ab2359d0ce29e2bf17c96970b280fe82c8cf457e3d92d3aee71b8bbc664dca69e0bf1af97e2447bf3f29f29f91bf89bc3f92c5f74b224f8cbc2472ebefedf798237a8be2d07a51bf777878d14bb2c0de53f47ce6e03b0eb8ac6f60f873b57aed965aad78e1c69bd73f37a77a1f1e1a3eb55ed4b6d66a8bb6d49ff4a4c5c3f5da21b5a27ed5f050ef47876bc307f516b5a714b5faff0e16437f59efe979efc33ddbbfdc572bbe1a5f3354abf5fc52fe090d0ed573443d000000000000b00028b2339bee8e7c31726b24a7ca3937929fc8cb6bb0e727fbce8b5c15d912c94ff765d13c8bead5b4f1f9356b2239cdfce7221f8be4270173e47b5e8f3d47b1e7543b5f8964b1fd2b8f1fee5d57d486febf5abdfec3dee1deab067b6ae71eb8dfe2ffae15570eec73cfcdf70e2ddafec5a1a2f7ab8beac503b56228bfe7d5b5b81f8fb963f18662e9d27a4f4ffdaab8731f3ef8aeebaf3fb0f6c88503db177fe2d1a1ad9f3cec8e5bd61e7cfb0d77ac58bffefefd6fbbf196bee1de8ff50cd72f2e8ada055bfa86d7c7ed000000000000000000edaabfbf3f2fa50100f3caeb1130559e3780a9f2bc013039cf9330f78c6407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000000000000005aa4c80e000000000000002d526407000000000000801629b203000000000000408b14d901000000000000a0458aec00000000000000d0224576000000000000006891223b00000000000000b448911d000080e97a56b97c62b904d81dcf1bc05479de0000000066467f7f7fbd5c0580f9901dde7745de1eb92da2e31bd81dcf1bc05479de0068817e420000689137cf00cca3aac3bb1a59f6e2888e6f60329e3780a9f2bc01d022fd840000d0226f9e019827633bbc2b3abe818978de00a6caf306c014e8270400801679f30cc03c98a8c3bba2e31b18cbf30630559e3700a6483f210000b4c89b6700e6d8ee3abc2b3abe818ae70d60aa3c6f004c837e42987bb572090074987cf3bc7af56aafe5cc887abdbee8a69b6e3a77e3c68dbfb275ebd67d060707cb3deda3a7a767a0b7b7f7aaeddbb7bffeb4d34ebba26c6606390f984476745f10393d725936ec46767cbf3fb232f2a36ca03df83b670e79de58603cbf30033c6f30273c5f319f66ebfcfbc4273e519c7df6d9e5d69e71fe416b74cc034087526467265d7bedb51fdfb061c32b972f5f5e1c76d861455f5f5fb9a77d0c0c0c1477de7967b17efdfa8787878757fa476fe6390f98c0543bbc2b3abedb90bf73e688e78d05c8f30b7bc8f30673c6f315f3c9f907dda3a75c0200b0806ddcb8f165c71c734c91ffe4b5e33f7829efd78a152b8ac73dee710fc7e65b475a9949ce03c631dd0eeff4f9c81b2217454ce5da26fc9d33073c6f2c509e5fd8039e3798539eaf984fce3fe81e8aec000014dbb66ddbeb90430e29b7dadb91471e79782cb2238e19e63c608c3de9f0aee8f86e33fece99659e371630cf2f4c93e70de69ce72be693f30fba87223b00000d3d3d9df1d6303f515dabd50e28379961ce034a33d1e15dd1f1dd66fc9d334b3c6fe0f985a9f2bcc1bcf17cc57c72fe4177e88cbf640000dac2c0b64dc51d579f57dc78e97b1ac9f56c6361711e74bd99ecf0aee8f8ee30fece9922cf1bb4ccf30b25cf1bb43dcf57cc27e71fb43f457600005ab27deb7dc5ba6f7fb87868c30f8bc1471f6a24d7b32df7b130380fbade6c747857747c77087fe74c91e70d5ae6f98592e70dda9ee72be693f30f3a83223b00002dd97ce795c5d0e023e5d60ed9f6c09ddf2bb7e876ce83aed64a87f7c1915f8f7c3cf28dc8b5915b223f886467f647222f8eec13198f8eef0ee0ef9c29f0bcc194787e2178dea02378be623e39ffa03328b20300d092873764dfd6f8f213d52c0cce83aeb5bb0eefdcffe5c85d917f8ebc32726a243bae8f8e9c14797ee43591cf45ee8de4ed65fb583abedb9cbf735ae4798329f3fcb2e079dea06378be623e39ffa03328b20300d092a1c16de5daae26db4777711e74a5c93abc8f8d7c217269e4e7238b22add82bf292c855914f450e8f34d3f1ddc6fc9dd302cf1b4c8be79705cdf3061dc5f315f3c9f9079d41911d00bac7f3227f34b2ba8bec7cf89dc8418dada2f8b5c81f8cac164f8e1c31b25aec17f9ebc8918d2d00badd641ddef9baf2df911736b6460c46f2b83f8c3c377262e498c8c9911c59f6b6c8772395ec247f79246fe7a9d9d044c7377426cf1bc05479de0000ba8e223b00748f9c3eefad91ef97f9dfc80191d417f95024b75f1dc902fbdb230746b2fd059194c7bd29b27f243b303637e5a8080b58ad36f15bc7c9f6d15d9c075d65b20eefb3235f89e435515376767f3a921ddccf8ebc37f2cdc88f22eb226b23ff19f98bc83323d919fec548255fa37274da2f35b676d0f1dd86fc9d3309cf1bec11cf2f0b92e70d3a92e72be693f30f3a83bf4600e86cd961f1fec807232f8d3c18c98e876b22d91191d7aacb62798e564f4f8afc78242fee7443243b1a1e8d6c8f3c2392c7a79745f2b6872239e55e8e70f7be61815bbcb49a08615793eda3bb380fbac6641dde3f17f968a49aaaf5f6c84f455e51aeb7225f835e14c9295ff3835a699fc8ea8811666dcedf3913f0bcc11ef3fcb2e078dea06379be623e39ffa033e82c0780ce961d0799fc347f8e5e1f88e4eb7b16d2b323637924af51f7ba487a65e4f84816cfcf8a7c2c92ea912cb4e7c8f694d3c53f32b2da58d6465659c80e3afa94a2b76f59b9b543b6e53e1606e7415798acc33b3b9db363baeaf0be229223c59aa7649d8aaf46b2c33c3bc153767ce735575d33b58df93b671c9e3798119e5f1614cf1b7434cf57cc27e71f7406457600e87c4f88fc4d24479f3f369253e47d2b7249647d24a785cfebd3a54f45ae1e596d8c76bf23f298c88648b667913ee5f4f1c311c57546ed73f009c5de07e5e9b6b36ccb7d2c0cce838e37598777fa48a4bad4484ecb9aa3c3ee6e6c4d5f35caac1a6196af537f35b2ba131ddf6dc2df396378de60c6787e59303c6fd0f13c5f319f9c7fd01914d901a0f37d279223d77f21929ffccfd1eb39f5fbd6487620fc7424afc19e7e2bb234d21b79632447aee7bbf6bc8d6ccf91eee97d912cd0e788771851af1783dbb7941b3b34da621f0b84f3a093edaec33ba76d3d7564b5714dd4fcc0d59e767857b2e3bb7f64b5213f1876d2c8ea4e747cb7037fe7ece0798399e5f96521f0bc4177f07cc57c72fe414750640780ced61759193923f21b91ef457284faa723f747f2b5fe4d91159194d75ccfd1ebd9d9f033e5f6e2c8924816dd1f8aa49cba2fa7d8cb11eecdb238cf02b47deb7dc5ad577ebcd87affcd65cb0ed996fbf218ba9bf3a0a3edaec33bbdab5ca67f88ac1d599d313995eb1747561bd3c3e64c2be3d1f13d8ffc9dd3c4f30633caf3cb82e07983aee0f98af9e4fc83cea1c80e009dedc4c87591f744f68be475d51f8d9c13c911ed1b23bf16797da47268e4fac87b236f89dc16c9ce858323bf1ba9bc3032b66324af6b77d0c82a9d60d5aa555f38f3cc33f3bafdd353af179bd67fab58f7ed0f15db36e7e406e3cb7d794c1eeb53d5edc779d01df6e0f7d84a87f7b1919c05253d1cf98b91d51997af3b955f8ee407bac6a3e37b8afc9d331ecf1bcc04cf2f0b8be70d3a99e72be693f30f161e457600e8500f3f9c7d12c5ff8dbc33b22692d3bee748f37c7dbf3492d3ee6d8b34bfe3cef5bc2edd7f442e8cfc7524a7887f55e4cf22f975e9b9911ced9ed7ca4bf97579dbbf18c929fde810b55aed85c3c3c3574de79fbdead3d31baeff72313c545dae7f62794c1eeb53d5edc779d01da6f97b6ca5c33bfd6ab94c5f89ccd62f2fa771cd4b9ba4bd223965ec44747c4f81bf73c6e3798399e0f96561f1bc4127f37cc57c72fec1c2a3c80e001deaa69b6eca458e54cf42f9f3228747f2baecc747b2e0fe3f91ff8d9c59aee754f0798df5bf8b64013dafcf9e53f55d1cc96bb2e73f00795df6f4e1c85b23df6f6c15c5b722d909b239f26036d059a6f3cfdeee3e3d3d91ea53d5b41fe7417798c2efb1d50eeff4fc7299aa2956674bf3ed377fdff1e8f89e227fe78cc7f30633c1f3cbc2e279834ee6f98af9e4fc838543911d003ad4539ef2945ce494f02744b22360bc64c1fd6b919c86efc991bb23fd919ca6ef73914a763a5c12c9027a4ea7f7b8c8df462aa74672147bde061d6c2affecb5f2e9e989ecc9d732fb9c07dd6137bfc7a97478a77c5da87cbb5cce962bca656afebe13d1f13d0dfece198fe70d6682e79785c5f3069dccf315f3c9f907ddaf562e01800ed3dfdf5f5fbd7ab5d7722695e749b93aae7abdfec5dedede735ef18a575c75ca29a794adedef924b2e2956ae5ce9fc6f91f3a03bb4fa7b3cefbcf3f2baa353e9f04e39db4975bdd27d238d6b92cc9293223f18592dd6464e1e59ddad1747de1f5919c9696069e2ef9cf178def0bc31133cbf2c2c9e373c6f7432cf57cc27e71f2c3cfe3000a043edeecd3b4cc5d9679f5d74d23f79679d7556b9c64c721e74beeddbb717175e78612e5f1e9be78eb4b6a4f93565b6ff4fcc59586e1b592d6e8f1c39b2da92b7c7ebdf3bca75a6c1df396379de60a6787e59383c6fb4e69e7bee29366dda549c78e28965cb0e434343c5cd37df5cac58b1a258bc787171fbedb7175bb66c294e38e18462f3e6cdc592254b8aa54b9716030303c535d75c531c7ffcf1c5b265cbcaaf9e9afc5e0f3e38f955dff6de7befffbfbdbb01b6bcaceb007e970d134d240c840265f3a5a6764914cb6c4cd460c44c41995857c9c6578c5e4652cac904932c3335df50490342b06d9cf1050511048a6123c598644901531643281784c6c44076fb7dcf397f39dceecb7376efdd7bef399fcfcc77ce39ffbdf79cff3df7dc47797effdff3f4cea393efd9b469d3d4ba75eba6f6da6bafc1d18577cb2db7f45e7bcf3df71c1c999adaba75ebd4962d5ba60e3cf0c0a97df7dd7770f43ed93aef80030ee8bd473be3acb346f9e82e2de3d5785969ff7ba9c80eb3f387010030c666bb1863fbf6edd96fff948d1b377e228f2fbae8a2edfe236f7cf91c8c87d6df63d9910eacbb2a0fecdf9ddaa3f2bdfedd45912558bfdcbfdb3bbfff3ff33cb35197a49d28fece998971c3b8b1108c2f93c5b8b1a0e3c64b2b6faf7cbdf7a83f17ffd4ca1d9574f2a7f2fda84adec3e32ae9b63fa8f2c9cad995d32b0fab6cade4dff2fd97573ad9cead6513e72c53fdf9caa6dea3a9a9275652b1ff87dea3a9a9ec45f73b952c95fff21c187855655be503bd477d39b72ff5ef2e88732a17543edc7bd4774c25bf833b2b797f6eab749e52b9acf2dcca553950be5be95d4560bc6229f9fcc1e4b1273b00c004c97fdc558eaaffb83b6468828c09e373301ee6f83deec89ea2b70e6e63bfc1ed62197efee1d79d8b42d988fc9d3313e3060bc1f832598c1b23cb73e4e28377555e5049f137cbd55f5b49b1fff84a0ae62990c7cf549e50c905013754f29efe6fe5eecaa1957c7dbca892e7beb7929f2daddfb3cdedcf54e8bbbd72d820a75652dcee1e7fb112fb574eaae4e287e41d95770e3dce393cbe12798dee75bafb49b604f86ce53195e9baaf1f96cda4bf5f49a13dc5f324ab08a4c0fed04a7e1f9dfccc7f53c9ca04798fafaedc52c9fb3223e3154bc9e70fc69f223b00c004f01f7784cfc17868fc3d8e3af1fdd5c16d64a277310d3ffff0ebce46a16c04fece9989718385607c992cc68d1d96aef1e4739574afa6889c39f89c4f9e3bcbd8a7533b9de3f1b2ca632b299e674df074af470ad229b4ff68ef517fb9fbaef33fb7a37695666df5ffa9a42bfef5959c43eea728de15ced3119e3df353c49e293f56994bce6943259df967e6c03c72e141cee3bd95ac72f0c141febe727de5d1956c49100fae9c57c9b114e4b332412e5ec8d79e5fb91fe3154bc9e70f2687223b00c018f31f7784cfc178d881dfe32813dfe91aea1c35b85d2cc3cf3ffcba3351286be4ef9c9918378c1b0bc1f832598c1b0b326e6489f3b756d2f9fde3952c017f45e51f2b59defde44a573c3ea3d22dbf9ea2f3cd952c11ff5f951c4f913e7ead92a5db7774c9e674c7a7337c6de52f2bf9dde6fe3e957fa9440adbafab6449f6bc272998bf7b703fc9ef3a3fc35cd2c51e59827e3ee9e8ff68e584ca959574b0ff49e5172ab9c8e05395275772a1c1a5959cff932acfaae45c73c1c22b2b3f60bc6229f9fcc1e4b18f020000f604a3c7e7606cb5ec999a8eab2cb919e96a5a53f94eefd1c2ca6468f625fda14a9606cdb2a479bd9928942d027fe734326e3032e3cbc4336ef4fd76e5e99574a5a7eb3a45ea4754be5d49013d1dec0faf6499f63fad7cba9225cf23ef5b9643df52f9c94a3acf53944f07f91b2bd9433d9ddb298ca7089df7efc64accb4147be790ca672abf52c9fb7f5d25f2fdd9373eddf4e93ceff645cf45009754d23dfee795fcdea6eb5e2f7f43c3f7733140f66dcffeefbf5499ebbcf2f579dd9c5bdea314fdd3719f25f67391442e36c8fb909f311725e479734ed9af3e1774bcb092f7341dff5fab34335eb1947cfe607ce864070060a7dc73cf3d5337dc7043ef76d8a8c759d946fd7dcf769c45d1d26196e54cbb09f14ce4fe7effee827b532513de717145a16c0519f5ef79b6e3ac08c60d76a951c791d98eb3a48c1b7dbb5772a1c1af577ea3922ef174a8a7989c427be6e35f5b796425b2e77a0ac5e97a4f513a8f1f5049b139ef4f96738fbfab6429f774b80f5b3db84d01ac4b4c7fdcc9deece9064fba0ef66179df5e537960ef517fcff814b993f7e7c01c52503fb792a5f25f920365fa794c7f1cf9d99f5739a2f2b44a3e230faaa46bbebb88e0f2ca1f55b2777d2e5ec8f2f56fa97cbcd275cfef12a38e4bb31d871d31eae76cb6e3c0c25064070060a7dc78e38d536bd7aeeddd0e1bf5382bdba8bfefd98eb3685a26be4f1ddc462657d305b6900ead6412b593eead9928942d53a3fe3dcf769c15c3b8c12e33ea3832db71969c71a3bf57783ac55300deb3922eeb2cd59e4ef4fcacb7555250febd4a67df4a963f7f5b25cbb57fa392f7311722a433be93eeeee9e7fab1cadefdbb4df29cd9cb3c79620e4cf38c4a8af947f61ef57f9674b227f97dcd2585f38754d231df75cbcf668f4a96864f51fdf3955c90902eff5c149125e0b33ffc7f56b2ec7e0af779beec5d9f25f4df53c9ef394917fe2e35eab834db71d811a37ece663b0e2c0c4576000080c930dfc4f739957498452657cf1bdc2e84fd2a9904eebacad27534d384b642192c2fc60d6054933c6ea4c3fab84a3ae93756b2377b3acd33079f4eec2ca57e57657809f5dcffb3caf995ec41fe1795148e5f51794325df172946e7e281f7f51ef5bf2fcf9dfdc9b324fe7cd2199eeefa6f56b2277b92aef03c6f77a1430ae4efa89c5e49a13b05ffb8b37247652197f6cffb908b0352907f7b255debb910219df6f93c6469fc9c6f0afbb920214bfee7fdbba1f2cc4a96b14fd2f90f004b42911d00006072cc37f1fdf2caf7fa777b1d4b1fa9ececc47737e1dd4de066c9d657f7efde8f42192c4fc60d6054933a6ee4e74aa77a0ae5e908cf39a5233c1dd829b8a763fb5f2b1b06f7b314fcbd9514b65340cff7a7d33f05e62f54f2dea4e33b4eab64b9f4ee02852b2ad9cb3cc5efec613e6c7829f6c8d2f359c63eb580b32a39af24fbc17fab927fcff77cb49225edd33d9fa5ebb3277cce3deb4ce735d2599eef8fe125df87efcf65fad7e47552344ff13e170bfc62e5572bb9402105f65c081039c724b28c7dce256db949b79f3d00ec728aec0000009365ae89efab2ac31d41cfaea483aa9bb01ed5daca3f55b2ef67a4d36a7d65fa7a850a65b0bc193780514de2b8f10795fc0c3f55c9cf3c5352b4ce1ee259c6fee0caad959c6bbae053e4eea4c33bdddd2928e7fdf9894a57748ec32a294ce739e6938ef5ec13fffa5992d74a17fd8995e75452544f313fcf9f25ef73de4fad1c53c912ef8b21fbc3a763fe904a2e8ed85619debbbe734a25c5f9ec0f9fe4713adc0160975364070000983c734d7ca7432913969d74516572f6e44a6b9759f6fb4c57d6d5958372a064c23b13ea9feb3dba8f4219ac0cc60d6054c68d99a5cb3edddadd450039e7ecdb3e2c5ddfd9333dc5e6749c6799f761e9804f17788eff6665a6fdd573f1c13e9514eae7fa99ffbd92e5e7b3cc7ef6944fa13b7ebe92d7f96a25ef712e84c8d73cb7328a9756867fd7734967feb09b06b79d7c46868fa5db3ec70060975364070000984c734d7c674fcc4cd8764bb966b23b93a35faf9c5d797e2593d959b233f2efe9c07a612513d8f9ba3c77b7276a264cd385f5a1dea3fb2894c1ca62dc004665dcd8314faf6449f9a7541e51796725dde55dd265dec9f2f33f57794025ef7796dfcfcf794525efc77c8eaae4b5f2bebeb592ef3bb492e7c832f3c352b87f55ff6eef6281ffa8e4628124c5fcae98fee24a562c48877a3af073f14496c1cf7366c9fc74f203c08aa6c80e000030b9e6eb307b5aa5dbfb33d231963d43b39c6926b6efaaa4f3297b8aa69beac3952c259a49f0ce6595ecb17961efd17d14ca6065326e00a3326e8c2e4ba25f5b39bf923dde4faac499957472ef5dc932f3afab1c58796625fb983faf92bde97fabb27fe58cca74792fa7dbab92e5d9b3e4fe172b792fd3e19eaef6232abf5cc96a036b2a59423ec5f6c812f9b95022195e3d20afbda592737a730e9497558eab1c5d794f0e00c04aa6c80e000030d9e69af8beb292c9d54c747f25074690eea54cf866e27cfaf72a94c1ca66dc004665dc6897eef52cc99e0efd74a7ef574927780adce922cffee83757f26fdd9ee9e938efbace7361c2dd9574c067cff6aed37f3629b0a7233db23c7c96ae7f4125af9b0efa732be976cfb1ec7f9ed50552e08f14f5df57c9ef377baa0f5f2c91fde9d3bd9e7ddf733e9756b2e47cf69a4fd73c00ac688aec000000cc35f11de754ba3d3a33517a7125cb8276cbbb7ea792fd3a3f53794de53195ec0d3abd9b2c14ca603c183780511937e6b7ba92a5d4b327fbd72ad75452544fc77a96637f6ce5959514acffb6922276a4a09d9f37de55495779dee7f75752889f4b96d9cf7b990ef614dbb3177b8af3399ee7cafb7b62255debd9033fbf838f5722fba15f5fc9b9a6c09e0b01f6a844beeef04a7ea614ebbf5449077c96b6ff4005005634457600000062be89efc8e469267e3361da4da26612f821954cce1e59795b2593aa33512883f162dc004665dc985b3ac9b31ffbb72a4fa83cb2b2ad92e2760ae9f7547201422e4888e307b78faffc6eff6eafb33f3f7fbee6c995db2b5922be4b0c3f4e01fddd95bc5e2e60b8baf2cf95ec859f82788ae8a923a4c33eefe9ba4a7e0fc3bae74d777d27e7fa8a4a3ae39f51c973bdb7f257952cfd0f002b9a223b0000009d9689ef1da55006e3c9b8018ccab831b7ef577251410aede95ecf1cfeab2be92abfb5725a257bada7689d0b0ef23ea6a0fef04a0af23315b0f37c5d62f871bef7599574a3a78b3d7bb1bfa47241257bbba72b3ecffb879574c5a700ff91cac32ad9af3d1742ec5bc97b9fcefaeca11f29bc9f5e797ee5924af692ffebca072b00b0e229b2030000306c3126be15ca60bc193780511937e6962ef22cdd9e227b96cbff58257ba467fff4a32bd99b3dc5f6b32bb7555210ff54e5ba4a0ae2a3c8d2ed29dea7089ec2f8672b5b2a593e3ef5837fabc4732a1feadfed15f423cbf5a7207f4ce5c04abaed23ff7e6ce5939514d55f5cc912f4b99fe74821bfdb431e005624457600007ab66fef56f85bdeeebefbee2beb5cb31f238bc0e78081859cf856285b66fc9db3488c1b185f18957163665922fec195cb2b597e3d4bc8bfa592a2f5372b7f5c79516563e50d957c6d0ad659f63dc746951ac19b2a592e3e85f0ab2a793f4fad64f9f8f32a299ae73c227fe82754aeade4d8b307d9a7123f5249f77abe26fbc9e7b972fe9b06f7932c899fe5e4978cf18aa5e4f307e341911d0080a9dd77dffdbf6fbb2d0d10a33be8a083a6366fdedcbb1d36eaf156d75d775df65ebcb2ff8885e473c0340b31f13d4e13de63c1df398bccb831c18c2fec20e3c6fd65be3ecbc2a703fccecaa32bdfad74fbcfff702585f72cc99eaf4bd1fd419514de1f55c9deedd17ddd4cba25e33bd9ff3e9df0670e7243e5e2ca6b2be9504fd7f9172a59b23efba9ef5fc9feef6face4b9360fd215e2b25f7ebae2cfaadc5c49977c0aeaa92ae67e924ef92563bc6229f9fcc1f898fe3fa800004ca04b2eb9e4c4d5ab579fb466cd9a55fb9655ab96dfff4ddcb66ddb9d37dd74d3a62d5bb6acab87c71f71c4119feeff0b0bc5e78059a4132913aa8757be92038d14ca96217fe7ec22c68d09647c61271937eeb34725dde97b577eb6926ef26e9ff32755f2fedcd17bd4976ef12c2d7f7be5db3950529ccfb2f1d9677d3e29c6e76bb317fceacada4a8afd57573a59063eddf28fabe47cb29c7dce29e773592552e4df5ac94501f919b2d47d279df00fad5cdf7bb4c48c572c259f3f181fcbefaf1700802571e185179eb0db6ebba58b241332cb553a244e39fcf0c3d3f1c222f0396016a34e7c2b942d63feced9458c1b13c8f8c24e326eb0cb18af584a3e7f00000000932313dfdfa8ccb7946b26bc6f19dc0293cdb8018ccab8c18ab47efdfa4b2b2b63a36d0000000060979a6fe2db8437309d71031895718315e5d8638f3d2c05f664c3860d59521f800990bd55000000a045960accb2861755a64f7c67a2db92adc074c60d6054c60d569455ab569d3cb83b75efbdf7fee03e00e36df5e0160000005a7cb97253e5dcca0595ad1513dec05c8c1bc0a88c1bac08e9625fb56ad529838729b8fff4c1071ffc896baeb9e6d6c12100c694223b000000a31a9ef8bebd727ac584373017e306302ae306cbdeba75ebcea89b83fa8ffab66ddbb6dfb5d75ebb71f0108031a5c80e0000c08ee84d7caf5fbffedccd9b371f59f74d7803f3e90a66a7558eae183780f9183758b6a677b17774b3034c067bb2030000b0a3b2676a98f0065a65dc5853316e00ad8c1b2c4bc37bb14f676f7680f1a7c80e000000c0ae74c7e016a095718365255dec7593cc68d5aa55476dd8b0e1718387008c214576000000000080467375b17774b30300000000335abf7efdf6c15d00009858fe7f31c064d1c90e000000000000008d14d901000000000000a091223b000000000000003452640700000000000080468aec00000000000000d048911d000000000000001a29b203000000000000402345760000000000000068a4c80e000000000000008d14d901000000000000a091223b000000000000003452640700000000000080468aec00000000000000d048911d000000000000001a29b203000000000000402345760000000000000068a4c80e000000000000008d14d901000000000000a091223b000000000000003452640700000000000080468aec00000000000000d048911d000000000000001a29b203000000000000402345760000000000000068a4c80e000000000000008d14d901000000000000a091223b000000000000003452640700000000000080468aec00000000000000d048911d000000000000001a29b203000000000000402345760000000000000068a4c80e000000000000008d14d901000000000000a091223b000000000000003452640700000000000080468aec00000000000000d048911d000000000000001a29b203000000000000402345760000000000000068a4c80e000000000000008d14d901000000000000a091223b000000000000003452640700000000000080468aec00000000000000d048911d000000000000001a29b203000000000000402345760000000000000068a4c80e000000000000008d14d901000000000000a091223b000000000000003452640700000000000080468aec00000000000000d048911d000000000000001a29b203000000000000402345760000000000000068a4c80e000000000000008d14d901000000000000a091223b000000000000003452640700000000000080468aec00000000000000d048911d000000000000001a29b203000000000000402345760000000000000068a4c80e000000000000008d14d901000000000000a091223b000000000000003452640700000000000080468aec00000000000000d048911d000000000000001a29b203000000000000402345760000000000000068a4c80e000000000000008d14d901000000000000a091223b000000000000003452640700000000000080468aec00000000000000d048911d000000000000001a29b203000000000000402345760000000000000068a4c80e000000000000008d14d901000000000000a091223b000000000000003452640700000000000080468aec00000000000000d048911d000000000000001a29b203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ac305353ff078885d1f51664c4110000000049454e44ae426082".decode("hex")

output:
  sql_insert:
    driver: oracle
    dsn: oracle://system:testpass@localhost:1521/FREEPDB1
    table: test
    columns: [ bar, foo ]
    args_mapping: root = [ this.bar.bytes(), this.foo ]
    max_in_flight: 1
    init_statement: |
      create table test
      (
        foo NUMBER(1),
        bar BLOB
      )

shutdown_timeout: 2s

@mihaitodor mihaitodor added bug needs investigation It looks as though have all the information needed but investigation is required sql Issues relating to the sql components and removed needs more info An issue that may be a bug or useful feature, but requires more information labels May 16, 2024
@JuchangGit
Copy link
Author

非常感谢这么快能定位到问题

@mihaitodor
Copy link
Member

I raised an issue upstream: sijms/go-ora#557.

@mihaitodor
Copy link
Member

I received an update from @sijms here and it turns out that the library only allows passing blobs smaller than 32Kb through the generic API which Benthos is using. I think it would be brittle to have to explicitly maintain some Oracle-specific code which adds the go_ora.Blob{Data: data} decorator if the payload is larger and I'm not entirely sure why this limitation exists, but, for now, I think it's probably best to not support inserting large binary blobs into Oracle databases in the official Benthos distribution. If you need this functionality, you can maintain your own SQL plugins as described here. You can start by copy/pasting the code from here and adjusting it according to your needs.

@JuchangGit
Copy link
Author

非常感谢能这么快定位到问题,我很想尝试为benthos写插件,但可能不会那么快,因为我不太会写代码

@mihaitodor
Copy link
Member

Fixed in github.com/sijms/go-ora/v2@v2.8.19. Should get pulled in automatically in the next Benthos release.

mihaitodor added a commit that referenced this issue May 24, 2024
Fixes #2574.

Signed-off-by: Mihai Todor <todormihai@gmail.com>
@mihaitodor mihaitodor linked a pull request May 24, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug needs investigation It looks as though have all the information needed but investigation is required sql Issues relating to the sql components
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants