diff --git a/examples/rgb20.rs b/examples/rgb20.rs index d2777b9..4a42d91 100644 --- a/examples/rgb20.rs +++ b/examples/rgb20.rs @@ -17,7 +17,7 @@ fn main() { let beneficiary = Outpoint::new(beneficiary_txid, 1); #[allow(clippy::inconsistent_digit_grouping)] - let contract = NonInflatableAsset::testnet("ssi:anonymous","TEST", "Test asset", None, Precision::CentiMicro, [(Method::TapretFirst, beneficiary, 1_000_000_000_00u64)]) + let contract = NonInflatableAsset::testnet(Method::TapretFirst, "ssi:anonymous","TEST", "Test asset", None, Precision::CentiMicro, [(beneficiary, 1_000_000_000_00u64)]) .expect("invalid contract data"); let contract_id = contract.contract_id(); diff --git a/examples/rgb21.rs b/examples/rgb21.rs index 11212c3..09d7895 100644 --- a/examples/rgb21.rs +++ b/examples/rgb21.rs @@ -3,6 +3,7 @@ use std::fs; use amplify::confinement::SmallBlob; use amplify::hex::FromHex; use amplify::{Bytes, Wrapper}; +use bp::dbc::Method; use bp::Txid; use ifaces::rgb21::{EmbeddedMedia, TokenData}; use ifaces::{IssuerWrapper, Rgb21}; @@ -10,7 +11,7 @@ use rgbstd::containers::{ConsignmentExt, FileContent, Kit}; use rgbstd::invoice::Precision; use rgbstd::persistence::Stock; use rgbstd::stl::{AssetSpec, Attachment, ContractTerms, MediaType, RicardianContract}; -use rgbstd::{Allocation, GenesisSeal, TokenIndex, XChain}; +use rgbstd::{Allocation, GenesisSeal, Layer1, TokenIndex, XChain}; use schemata::dumb::NoResolver; use schemata::UniqueDigitalAsset; use sha2::{Digest, Sha256}; @@ -20,7 +21,7 @@ fn main() { let spec = AssetSpec::new("TEST", "Test uda", Precision::Indivisible); let beneficiary_txid = Txid::from_hex("14295d5bb1a191cdb6286dc0944df938421e3dfcbf0811353ccac4100c2068c5").unwrap(); - let beneficiary = XChain::Bitcoin(GenesisSeal::tapret_first_rand(beneficiary_txid, 1)); + let beneficiary = XChain::Bitcoin(GenesisSeal::new_random(beneficiary_txid, 1)); let index = TokenIndex::from_inner(2); @@ -48,9 +49,12 @@ fn main() { let mut stock = Stock::in_memory(); stock.import_kit(kit).expect("invalid issuer kit"); - let contract = stock.contract_builder("ssi:anonymous", + let contract = stock.contract_builder( + Method::OpretFirst, + "ssi:anonymous", UniqueDigitalAsset::schema().schema_id(), "RGB21Unique", + Layer1::Bitcoin, ).expect("schema fails to implement RGB21 interface") .add_global_state("tokens", token_data) diff --git a/examples/rgb25.rs b/examples/rgb25.rs index 3925cd1..2bded45 100644 --- a/examples/rgb25.rs +++ b/examples/rgb25.rs @@ -23,9 +23,9 @@ fn main() { stock.import_kit(kit).expect("invalid issuer kit"); #[allow(clippy::inconsistent_digit_grouping)] - let contract = Rgb25Wrapper::::testnet::("ssi:anonymous", "Test asset", Precision::CentiMicro) + let contract = Rgb25Wrapper::::testnet::(Method::TapretFirst, "ssi:anonymous", "Test asset", Precision::CentiMicro) .expect("invalid contract data") - .allocate(Method::TapretFirst, beneficiary, 1_000_000_000_00u64.into()) + .allocate(beneficiary, 1_000_000_000_00u64.into()) .expect("invalid allocations") .issue_contract() .expect("invalid contract data"); diff --git a/src/nia.rs b/src/nia.rs index b40a0e0..8c740b9 100644 --- a/src/nia.rs +++ b/src/nia.rs @@ -26,7 +26,7 @@ use aluvm::isa::opcodes::INSTR_PUTA; use aluvm::isa::Instr; use aluvm::library::{Lib, LibSite}; use amplify::confinement::Confined; -use bp::dbc::Method; +use bp::seals::txout::CloseMethod; use ifaces::{IssuerWrapper, Rgb20, Rgb20Wrapper, LNPBP_IDENTITY}; use rgbstd::containers::ValidContract; use rgbstd::interface::{IfaceClass, IfaceImpl, NamedField, NamedVariant, TxOutpoint, VerNo}; @@ -37,7 +37,7 @@ use rgbstd::schema::{ }; use rgbstd::stl::StandardTypes; use rgbstd::validation::Scripts; -use rgbstd::vm::opcodes::INSTR_PCVS; +use rgbstd::vm::opcodes::INSTR_SVS; use rgbstd::vm::RgbIsa; use rgbstd::{rgbasm, Amount, Identity, Precision}; use strict_encoding::InvalidRString; @@ -53,14 +53,14 @@ pub(crate) fn nia_lib() -> Lib { // SUBROUTINE Transfer validation // Set errno put a8[0],ERRNO_NON_EQUAL_IN_OUT; - // Checking that the sum of pedersen commitments in inputs is equal to the sum in outputs. - pcvs OS_ASSET; + // Checking that the sum of inputs is equal to the sum of outputs. + svs OS_ASSET; test; ret; // SUBROUTINE Genesis validation - // Checking pedersen commitments against reported amount of issued assets present in the - // global state. + // Checking genesis assignments amount against reported amount of issued assets present in + // the global state. put a8[0],ERRNO_ISSUED_MISMATCH; put a8[1],0; put a16[0],0; @@ -69,8 +69,8 @@ pub(crate) fn nia_lib() -> Lib { // Extract 64 bits from the beginning of s16[0] into a64[1] // NB: if the global state is invalid, we will fail here and fail the validation extr s16[0],a64[0],a16[0]; - // verify sum of pedersen commitments for assignments against a64[0] value - pcas OS_ASSET; + // verify sum of outputs against a64[0] value + sas OS_ASSET; test; ret; }; @@ -84,7 +84,7 @@ fn nia_schema() -> Schema { let alu_lib = nia_lib(); let alu_id = alu_lib.id(); - assert_eq!(alu_lib.code.as_ref()[FN_NIA_TRANSFER_OFFSET as usize + 4], INSTR_PCVS); + assert_eq!(alu_lib.code.as_ref()[FN_NIA_TRANSFER_OFFSET as usize + 4], INSTR_SVS); assert_eq!(alu_lib.code.as_ref()[FN_NIA_GENESIS_OFFSET as usize], INSTR_PUTA); assert_eq!(alu_lib.code.as_ref()[FN_NIA_GENESIS_OFFSET as usize + 4], INSTR_PUTA); assert_eq!(alu_lib.code.as_ref()[FN_NIA_GENESIS_OFFSET as usize + 8], INSTR_PUTA); @@ -188,18 +188,25 @@ impl IssuerWrapper for NonInflatableAsset { impl NonInflatableAsset { pub fn testnet( + close_method: CloseMethod, issuer: &str, ticker: &str, name: &str, details: Option<&str>, precision: Precision, - allocations: impl IntoIterator)>, + allocations: impl IntoIterator)>, ) -> Result { - let mut issuer = - Rgb20Wrapper::::testnet::(issuer, ticker, name, details, precision)?; - for (method, beneficiary, amount) in allocations { + let mut issuer = Rgb20Wrapper::::testnet::( + close_method, + issuer, + ticker, + name, + details, + precision, + )?; + for (beneficiary, amount) in allocations { issuer = issuer - .allocate(method, beneficiary, amount) + .allocate(beneficiary, amount) .expect("invalid contract data"); } Ok(issuer.issue_contract().expect("invalid contract data")) @@ -212,7 +219,6 @@ mod test { use bp::seals::txout::{BlindSeal, CloseMethod}; use bp::Txid; - use chrono::DateTime; use rgbstd::containers::{BuilderSeal, ConsignmentExt}; use rgbstd::interface::*; use rgbstd::invoice::Precision; @@ -249,27 +255,22 @@ mod test { let seal: XChain> = XChain::with( Layer1::Bitcoin, GenesisSeal::from(BlindSeal::with_blinding( - CloseMethod::OpretFirst, Txid::from_str("8d54c98d4c29a1ec4fd90635f543f0f7a871a78eb6a6e706342f831d92e3ba19") .unwrap(), 0, 654321, )), ); - let asset_tag = AssetTag::new_deterministic( - "contract_domain", - AssignmentType::with(0), - DateTime::from_timestamp(created_at, 0).unwrap(), - 123456, - ); let builder = ContractBuilder::deterministic( + CloseMethod::OpretFirst, Identity::default(), NonInflatableAsset::FEATURES.iface(), NonInflatableAsset::schema(), NonInflatableAsset::issue_impl(), NonInflatableAsset::types(), NonInflatableAsset::scripts(), + Layer1::Bitcoin, ) .add_global_state("spec", spec) .unwrap() @@ -277,24 +278,14 @@ mod test { .unwrap() .add_global_state("issuedSupply", Amount::from(issued_supply)) .unwrap() - .add_asset_tag("assetOwner", asset_tag) - .unwrap() - .add_fungible_state_det( - "assetOwner", - BuilderSeal::from(seal), - issued_supply, - BlindingFactor::from_str( - "a3401bcceb26201b55978ff705fecf7d8a0a03598ebeccf2a947030b91a0ff53", - ) - .unwrap(), - ) + .add_fungible_state("assetOwner", BuilderSeal::from(seal), issued_supply) .unwrap(); let contract = builder.issue_contract_det(created_at).unwrap(); assert_eq!( contract.contract_id().to_string(), - s!("rgb:pOIzGFyQ-mA!yQq2-QH8vB5!-5fAplY!-x2lW!vz-JHDbYPg") + s!("rgb:YOuqECXu-dD83k1O-anQpcFl-JiArTWz-rxmrARH-uSuhdLE") ); } } diff --git a/test/rgb20-example.rgb b/test/rgb20-example.rgb index ffc286a..74b9582 100644 Binary files a/test/rgb20-example.rgb and b/test/rgb20-example.rgb differ diff --git a/test/rgb20-example.rgba b/test/rgb20-example.rgba index 40126fc..ab2fdbb 100644 --- a/test/rgb20-example.rgba +++ b/test/rgb20-example.rgba @@ -1,100 +1,100 @@ -----BEGIN RGB CONSIGNMENT----- -Id: rgb:csg:wMbFwx2l-Pm15MRg-qftkJhj-QyXWdTq-2Qgh$Jn-wCR$$fI#drama-volume-parody +Id: rgb:csg:1mxhWweO-JFkxLtq-EMqNTXf-q7oUKQV-onociUv-X4xf9N0#hope-lucky-modern Version: 2 Type: contract -Contract: rgb:oeC0oRIm-8CzpSBD-qBPnW$T-qdsuMEO-Sgoet4i-PP!fAJE +Contract: rgb:lyBlsvJ4-5oG5qmq-H$rn6uV-OL91cPS-Yx6hO00-Yqwlq$0 Schema: rgb:sch:RDYhMTR!9gv8Y2GLv9UNBEK1hcrCmdLDFk9Qd5fnO8k#brave-dinner-banana Interface: RGB20Fixed -Check-SHA256: e913606632047498ba3e7da93152655cf807fc2039fffade97d1f75688a38177 +Check-SHA256: c0276d7495db72163c648ea9e902c29e25f65d1077058e16c0a1086bf1a11bf7 -0ssI2002ZbAu%+5_6z)DVT-@j4Fp29h04O2(!&-{P^aZh38Qb#nm# -0iX|$=+dvi?V$kiHY>>R)POH2QN*q5;^`{kJ}FC#v%;(Z1JDNn01^NMR7F!%3RGotbRc1Kb7gb@2+;=t -00RI3007zt0RRX90O)o|7XSbN0iX{70RRI40mWz_3=qW1JT(yrzx+KOLOA(Nl)!B$w#|{Dv0Gg!6afGL -0Ju9*6#|~9QwRX)c1RZh004e|etv#_etv#_etv#_etv#_etv#_etv#_etv#_etwVW(yzenp#bqVE6DKF -fG;Rf#I5V%=_=tqDNBsA!mI!Q00000000000000001{4bZb@!tY+-a^Vr*qWb8}^Mkc}T^00000GyrpR -X*x_=Q!#aTEoW*(Ic```MlDZcWpq_lYga8cax-;PLsK>_VNqyvIaf7iEjUU=H+KL7&<6n5{J!HJ@Tgs1 -mpj@U3yhwA`^&{wC3iS1tkb=;A&LP3007Yk09%X4R5&sPN*yA;lp<^AQ;QQiCWsumMiT;fc;H-Y_W=L^ -+6MrLj96u3I`KP|x6K-jit^gQ+!PC!a#7jT+VjUz9FBwm0004?4*>`O00Ynm0RRC2(FXwl0RY+u0RRC2 -0iX{70RR600juzt(u?g--(Ch+6*7N1n=+qwe6YFx|MoP&lb}4dCJ6ul0T3qu00E#60RaF10iX{70RR60 -0juzt(u?g--(Ch+6*7N1n=+qwe6YFx|MoP&lb}4dCIA2c00000000010SZz_LNYK$X?SI11XfR6o;2qj;#=~;t^vidEtAC%IlVX)dgF*wOtts}w(E1kon`A59t%UgjW&i*H -0009FX>)URWn@!zaBysS0f>xPWn((=JC(Q18jXtb+QHlu3zu?H+0@$e$59-PgaH5qb8uy20oVM#;~wy+ -U0;_w+8Yauo__nw#aAVFI4rEwy|f{U0RaF7bY*gFa{*h6$5c2n1xg(vzLX+s=TnOlIwpu5x<(TMczEDk -Z1({G0SaMrb7gc-cWz~J0ssL4000033~6(7b!B8zb#QQOc>w?c00eVzWn%#V0RRPbWpZtE0RRC20SaMr -b7gc-cWz~J0RaF1009nZb8~fNWKC&vZDDj{XaNXxa$#Ze?--0RR613So0| -Wpqz>Ze?--0RR600S|6(Zbfl*VQfKdZ*^{Ta{&rrb8}^MPj_x*asUAcbaG*Cb7p070uE_&b9H58O=)v& -VRU0?WOH?JaBO)Xb8uy2X=Z6#(b7gc-cWz~J00000009su -2y}8`ZgXa3asU7T000624{mR6MR9duY(Z^rb#8QX000000S;+%b9H58O=)v&VRU0?00000GyrpRX*x_= -Q!#aTEoW*(Ic```MlDZcWpq_lYga8cax-;PLsK>_VNqyvIaf7iEjUU=H+KLd000X1U)Cjo-i6E2P9x&m -nv%Qki+Oba;k67*blZ=H=TQh>UMA(m1w0!?L{VGDpk+OvDhHAKF%fNXr25$w;Zs!r000000000700000 -0000O%am^tlg}6qop{{FTg974FaQ3n`}K{nn9PGH_DcZ;0agu`_oR6wvcum54rF6FkJew+k!36?Lqfl$ -`8gF)R2-|n!`LRkztQP;3W%Qi%!_9htpQ3t>=3qD6)+-@LI6MnH0sE -ektM3d!V}o0nEa3l8<>f1KA&4t&LI4m}^5aI1iE}_s79eO?HmEkSbfMtWb&n35^vCNG$%?ywDnvz}K{0 -G9hl&cB^sg-3J`2zr)xjz`xPycM6D}`pk=G7OeqFKI{;-SrsrMkU}5;FWB;W7bg;sK59Oe@c3K=fV3eR -7p&1RS^QDdq`TfM1OfmAZf|a7*gwADFAe3iZ1@l19{2t5VaJV^T`{fc?xMUvnKPbj0R(ezZDp`<(~tJj -3|i&b2NlXOR2^DUyWY#wQk^*F-L`Td370(4qMgjGn~{4aFkgwNr28QlFe*-S#jFZ=4d$x=UULI21Z8+* -Y#{__VRL9B24rt+Y+-UF17U4&CIoP7b#p5OWMOk?Edyk4bS?yXWpZyY18;6+F#~jWZ!!gRXmVv`GX!RD -b#gQWW@&b1H3M^Lcs2!dWp-t5Hw9&BXJ~Xd1a4_=WjO_7VRB`3UIuJ$WMOk?UjboZ0b*hSV`BkiWC3Mm -0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX5r -D{{BQuNq?vw$uLzi?1~hlkP@ao_$9uVE}^UN!R2B0b{Bo6zH)>$g+grvznd|(VVK)`s##^Jh_COk!RL4 -N<*rD#rE}NPvxSnUK**8Le1-kltSZ7azFKgf3Y*(iUtA%ba`-Pu?^n-fFP~dpvnj-AyBKaJW)+{-ce}5 -$#DguerIN224rbxWpi{YTdJ&3iT??W6$?l#{@A?G8j--)v|TbGZq;_HaqHbhw}2&v0mUY=J6lL$MhcKn -;XgI|zJmp*01;Q@0XT>R0ssVVZ*FDSKfd5E4dt|K_z&S8_xG@u4Q3HlB(d+LiLJm-R=h;`?dxC37W -b8ul}WgrA)cw=lK261(7bY*iQ1ZZJ%Xd?z>Z)|K~awG?EWpZO>ZgeFHVQp|_a&uvBWF`t>aBp*Ta&K^G -WhV$?a$#d@Wpqp^2x4+!V{2t}QYi>wb97~LX>)5T1aNG1b1Ma7Z*6U1ECp?8Zgq1l17vS>E(LRJVRL9N -1bSt1Z!iOIZe=k8ba!tu1$1a~Wo0u2W^Z+JGz4a8c4ajKb7^=s1#@L~Wo|bGWoc(MgX1!He) -Z*DpXb7gI5LvL(vZaV~QWpi^p1!Zw{VQf7IXL4m>bY*fr2yt~~b98BMZa)HHbU*@MK|umvLP7#xLqh^z -L_`8#MMVN%Mn(c(M@Ir*NJs)-Nl5}OG^S@OiTh_O-%w{PEG<}Pfr40P*4J2QBeY4Qc?n6Q&R$8 -R8#_ARaF9CR#pOES62dGSXcsISy=*KT3QNoaYAxoV{2t}Oj`+JVPk7kY+-X~Tnck>LULhaYh`p&T?J!d -a%FU025fI+VRL9-2x4JlYjkO2YhVFkVF6-d0b^qUWMlzlWdUYp0cU3cXlMaxX#r|#0c&dkY-|B-Z2@j> -0dH>saBu-}aRG920dsQ!baVlAbpdvE0e5!+cz6MMc>#KQ31dQXVPk7$bWD2$aA|O5dyr3U)7OiEGa`mzoq#(6;V_O`>9xR8a*>q2D50xZ(4$R31H0PIsUw_ -;fcDKIn~;D0000000000|Nj6000000TX!suv0v9m0LPL+_79KRH|I99{YEOV7tT#ZPWpkW1p!`O$dXTU -&2q#dT$Zaxd1hGe8*-eZ2I646q$?$f9S>WJ$5c2n1xg(vzLX+s=TnOlIwpu5x<(TMczEDkZ1)BN1axJ1 -bQsH&ZxWNw7!I9y+{RnQn@2DI{;m7Md`c4>2IVr*pq1Y~7nX#oXeWo~q70tIbpY;0)*31nqsX-#QtY-t1vV`Xl1X-#Qt -Y-t4rZE0h2Zw3iuWn*bgX=8G42MS|lZggo)X=8G42n23nZf^+)WMyM%PGN3u3JGInZggo*VQy~=1aN6% -Zwv@zWn*bjX=85<31ek$bZJm&V{Z-xW@T-3Zx0D%Wn*bZWo>kC5DH^uZggozWo>kC5d>j$bZ-(~UdWP9 -bIo$ZB3zcMM|oyg?;CQQqXyz&yre57i5(9G0)iue^mXvL0b>G|!V30Z -)+K@7h0D=SBjVedlDqGVd368bwG2#j+mD9lQD0sr<;4X&8%0D>TgISeJ)kNFk^3Xf*%skbRRcZ* -dS!BNFavLHWibPEcW*KUbZByAWite3Z*_7s1ZHV=WiUrS2@UrbB_UrkK{UrtT}Ur$d0Ur8UsO~AUsY8CUshHEUsqQGUszZIUs+iKUs_rLVPOGcVgX}g0c2zWWn}?oW&vks0cdCeX=wp! -Y5{9&0c>mmZEXQ=ZUJv^0dQ~uad821ashL50d#Z$b#(!Db^&*H0eE-;d3gbPdSj|16zH)>$g+grvznd| -(VVK)`s##^Jh_COk!RL4N(lR@SaKRYGgJn%Xv1$>f_VvG%;GuzyszPjx|liD+IRr~000000093000000 -004kq#k^Az$U%@qU7>2Bz={du0O&G0&#r1CLJBFZ06hf(#5#SRxw8U!bIFfg*5RxK^~=*jK)}Ad3JOG^S@OiTh_O-%w{PEG<}Pfr40P*4J2QBeY4Qc?n6Q&R$8R8#_ARaF9CR#pOE -S62dGSXcsISy=*KT3P{NVF6-d0b^qUWMlzlWdUYp0cU3cXlMaxX#r|#0c&dkY-|B-Z2@j>0dH>saBu-} -aRG920dsQ!baVlAbpdvE0e5!+cz6MMc>#KQh>TceV>4 -NmyOwH13hJJ{u?^n-fFP~dpvnj-AyBKaJW)+{-ce}5$#DguerIN2 -1_K0id2nSMuyu|U!T^j90F36+)E=H0H{s0>nH0sEektM3d!V}qb9G{Ld2nSf*z$T8ClZi8YCe|m_*?{l -v>_T7tkE!8{87}TyWT7ZV`yP=b7gcd*z$T8ClZi8YCe|m_*?{lv>_T7tkE!8{87}TyWT9nkIU)BIae{J -w9R4r0N>}O)+shqImKG);D@8R3aUm3Jkg?^%&nV|dnPbniKwLeAs8?!PIJYq3V03Xs{mee0000000000 -KL7v#00000#5#SRxw8U!bIFfg*5RxK^~=*jK)}Ad3JH<(%oY0=TGqa6l5KfYJkC@$v(fAa&d%-e7ws4kFK+d0H97bAybczVb@xPq-Dzr -4oJgUK7OifU&jRjKPz&##IG7-47St%2#c>Z5R>jkTb_MKDq#SEVo@@XB+#WAdR)2C|*D$SwhJOvD -$-0{Gfin@`^Yz>$s@6fa*%L>wyFU00eGtZe`d%zThtn<+N=058)p7{qSMOjh9_9t?BNfyg->Vo@@aGb8l^B -+#WAdR)2C|*D$SwhJOvD$-0{Gfin@`G@u4Q3HlB(d+LiLJm-R=h;`?dxBvhE0000004D$d000000QnaP1l_I#dHB_@bgMhk -0_N&La@nc5HwP6O+keCip#vHLVPOGcVgX}g0c2zWWn}?oW&vks0cdCeX=wp!Y5{9&0c>mmZEXQ=ZUJv^ -0dQ~uad821ashL50d#Z$b#(!Db^&*H0eE-;d3gbPdi$wZavD7|R0gwX!*5!Gc?n?5;yM1jui=Thm^szj -cmV+b0|P-!RR}^*L`g?QQ&a;|M?xV03jhEB(4Y?i2MYiJ01F5J01E*E0La=00XZ-L(V!0j2Lu2B0RR91 -0000 +0ssI2002ZbAu%+5_6z)DVT-@j4Fp29h04O2(!&-{P^aZh38Qb#nm$ +0iX}3{HrB?Kgji}NDdZ1JDNn01^NMR7F!%3RGotbRc1Kb7gb@2+;=t +00RI3007zt0RRX90O)o|7XSbN0iX{70RRI4#b_W55X8znH4zBE{5>8*IQdPKz-=hD&5@z8TU{v>0RR91 +NS28eeh`qp2mt7INEZMA0DgXcetv#_etv#_etv#_etv#_etv#_etv#_etv#_ey9AaC4N81^{Pk?7KgzT +x!Om_d_L|vQHH4TTl-EM;Q#;t0000000000000005>9V!Np5CrVRT_)Y-K@nb7gdpjUQ$J0000q0CRI` +I!szqF?Dz?XKF+_Zdg!8El*=*bX8SrS1mSjGj&r#Q#LJOQD}2HS2boWI7&q~cK`#>2LRXnzT+P7s9j%| +JK7ryjGlh`%f(kEcQ`Dp)4jAIiU9!t0MQ2kTZ_k3I5GuF9U{JzB5UVUixWB~h#a~`69Ra6;9P9?0RRBn +2LOnSSY=~6@jI2b%^Ho0^4h`N6bqMfQQ6em^T$yfj)VaK00E#60SEv91JDNn0098e2LS*90NMuu00962 +pbr56|Nj61tMHl9i|tU~UItecGJiUoGM{&Ru(|&K_B6qhpgguF2><{A5GMct0iX{70RR61pbr56|Nj61 +tMHl9i|tU~UItecGJiUoGM{&Ru(|&K_B6qhpgguF0000000000000323Q|WxGB8GIcx7Y+R!>~x^Kusb +3F_D>3|%=0P4(JM391~BkJ``pp2L<+WYM!zJb=Ey6LPIrKAc+<}ouO+1_y#Ha +zXRttFXqDki#07`P*;L4`>n3v9olck!*b;G%XfgQf1jL_VwFaNLIb3&DfYq8`WE_|WGmgRg!utx00000 +00RtZb8~fNWK(r;aBO)2h>TceV>}QC0RRPbWpZtE0b7g5R5&sPN*yA;lp<^AQ;QQiCWsumMiT;fc;H-Y +_W=L_3So0|Wpqz>Ze?-;009920009FX>)URWn@!zaBysS0RRC21aoj@V*vmG00neqa&2<~009623So0| +Wpqz>Ze?--0RR600S;+%b9H58O=)v&VRU0?0SI(*VQzC~WpV%j0003BVRLh3bWe9~WpV)k|Nj9BVRLh3 +bWe9~WpV)k|Nj614{mR6MR9duY(Z^rb#8QX0SaMrb7gc-cWz~J009Vea$#)C1 +bYo~_b9HcVYK5Ib#!obbaONS +b8~4rOj=Vhb$BgjYD771SWreSPh(|tRaI+OEjDs9byGuAHZ5UMXmdGNHD)b1N<}w!0Yo+-F*JVm3;bhY +i@((k1VXii%EFn_!xm3acbDfo$^IoLJJycZ7-~`8wI*&-=j;sLcpJ-+l@lpYWiSk2IgpJXW&i*H000Bf +2Ly9)Wn%yU007Yk1$1R{ZF2ws007zt3~6(7b!B8zb#QQOc>n+a00E#63So0|Wpqz>Ze?-+000000T3q$ +baG*Cb7p070000000ICHZf|ZyadlyAL2Yk!Zgg`1000014rz09b!B8tX>)C1bYo}$0000q0CRI`I!szq +F?Dz?XKF+_Zdg!8El*=*bX8SrS1mSjGj&r#Q#LJOQD}2HS2boWI7&q~cK{;*01EbB)+K@7h0D=SBjVed +lDqGVd368bwG2#j+mD9lQ3zjNCgsHiJR3zsQCr5KWj&xO2a)?R5p8j#`q>uYQ&j)}00000000L700000 +000=vly4G~&lnD!c-+QY#hXVj|NgD}^^LKZ%!4TQO92G|Rt=W-q*e1Zg(dl;zh@Se)i)R+C0ZKmX5VlzrFd~pb06-kDb&eFm0E`a+jONnR9-bLD;mr@36vdi; +DdEn0pt}VD%))Y#k9jx)*&ki4jZw^)YeOKHujTH+>EdJQM&>E4z*R)+S +A#T-nt8wey2OO)v!`LRkztQP;3W%Qi%!_9htpQ3t>=3qD6)+-@LLdMy*z$T8ClZi8YCe|m_*?{lv>_T7 +tkE!8{87}TyWT7W0ssVVZ*FDSKfd5E4dt|K_z&S8_xVm-pkWcojB&*wsIf|mpsv;oy@J9k$WaEUx}!s`ym)GDo%67tO|Gy=Bof+a|0~|Wq4z3 +Ap~e)b7&(5WN&P2VR9q`VQp|G1aNG1b1MX7VRL9L17vS>E(CgIa&IsLZ*FBV19W$9G6i&Ka%E*R1ZHn_ +ax?^HX?A5b19NG3HU)EKc4cli1!ZYxXmmIPZfS01IR#^3a%FU025fI+VRL9-0byYQVqyVfV*zAj0cB+Y +W@Z6rX8~wv0cmLgYH9&%YXNL*0c~voZf*f@Zvk*{0da8wa&iH4a{+X80d;i&c6I@GcL8{K0eN`=dU`)A +a<{~<8ep?nYaleMc%`0D|O6*W?8OW2z$*=&?u0vV`BWnw}8RoT}CO>V%FwxrCjOXVx@I +L#ltp_Vr{><)W@$8mW*%&FhDhLgP$wKlOrtu`}L^1_A_hd2nU14c`8MAg$P-$_ObTP^+;#QB8K)l1SfF*_j#U`>lTS#F>3Xo9Y +KQ;Tlg9WGn5m)2^IEVxS00eGtZe`d%zThtn<+N=058)p7{qSMOjh9_9t?BNfyg->Vo@@aGb8l^B%Kwk9 +vx)$qPBtM^kB(v2T7{%#%L)!i!&yFls%&4!NWLQ%D(Hkon&*Qwpawq)`VKLB>Wd>h=Ype%b?272178Jm +aA9L*AOvN2V{9P?admHWWpg3~Xkl|`BL-w|Y;0k2BnNP1a${v~bR`L4ZE$6Bb75{|CJJG2Z*z2VZ*XX3 +CkSG4VPk7$bWA7+Vsc?)Yh`p&DF|V6bY*gBb89LDaBOvRD+Ob3ZEayJ1#M|=b#pBPWN&mX1#@g+b7(IF +dS!BNFavLHWibPEcW*KUbZByAWite3Z*_7s1ZHV=WiCgZ)|UFI|OWHb8|ceWpQ<3Y&{2Oa%Ew3WpX|Uadl;LbZKvHKLTNNKmuPuK>}YwLIPhyLjqq! +L;_z$MFL+&Mgm_)M*?3+NCIC;NdjL=N&;U?O9Ed^Oafm`O#)v|P6A&~PXb?1Py%03Q3795QUYI7QvzR9 +R03aBRRUjDRsvsFR{~#HSOQ;JSpr{LS_*SetH31dQXVPk7$bW(i< +bZKm4Wqwu-miMH2B(lTb1P)|lIgi#~)sbZ^DMLcPrTIA(QB(-~saSFvJu_4WvuML_T7r2AV9eq<{=Bc@ +iMp6M)!KLf0000000030{{R3000016cPx&vU)M(f$C5$z50Bb6=QgwbMk=ru&P_#5`hlti0bX9nl23EZ +a>OEBma9j3W?1hVa-5?E;$Xa_D^Yz>$s@6 +fa*%L>w#RMNmyOwH13hJ(~}Y-IohWMyM%0R>}aZggn^1#M|;Y-s}tWMyM%O=)awX#@&mWo~q7O=)aw +X$1vsX=8G41_@+kV`)ukV{&f?3S(t%bZJd#V{&f@1a4t&ZwUxwWn*bhVQy~<31ek$bZJguZf^?&aA{+2 +3`!Wo>kC4+&&tV`)ZZZFFxC3S(t%bZJIqZFFxD1YvY^ZxUW!$dXTU +&2q#dT$Zaxd1hGe8*-eZ2I646q$?$f9S;Qpf+K+Rb@1)9wcJs8k=}EVt)knrbu3H13mOG^S@OiTh_O-%w{PEG<}Pfr40P*4J2QBeY4 +Qc?n6Q&R$8R8#_ARaF9CR#pOES62dGSXcsISy=*KT3P{NVF6-d0b^qUWMlzlWdUYp0cU3cXlMaxX#r|# +0c&dkY-|B-Z2@j>0dH>saBu-}aRG920dsQ!baVlAbpdvE0e5!+cz6MMc>#KQW2z$*=&?u0vV`BWnw}8R +oT}CO>V%FwxrCjOXVx@I2>Yp6avD7|R0gwX!*5!Gc?n?5;yM1jui=Thm^szjcmV(a000000RI3000000 +0DxY_yi*d$L6AgUp=zPPiV5QY=rTIbu4*Gf3Ms7sJp}>8I(?qGvjTZ@$&X#u;j9Gp%hN(Yz`nc+54Z>v +0F=~%BY^aE@a?p<+);Uv-gA(xqT91|EKCMyQK|uB0+zx9Gy-2iK>}YwLIPhyLjqq!L;_z$MFL+&Mgm_) +M*?3+NCIC;NdjL=N&;U?O9Ed^Oafm`O#)v|P6A&~PXb?1Py%03Q3795QUYI7QvzR9R03aBRRUjDRsvsF +R{~#HSOQ;JSpr{LS^;5U0b*hSV`BkiWC3Mm0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~ +0djHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX6fj96u3I`KP|x6K-jit^gQ+!PC!a#7jT+VjUz9FBwq0bHR; +SY72b?vbVm-pkWcojB&*wsIf|mjwYF +uyu|U!T^j90F36+)E=H0H{s0>nH0sEektM3d!W0q4c`8MAg$P-$_ObTP^+;#QB8KK9=zKTm*o$ +AsQE~(J)#3QPiZn-Yf@WXkl`5Wpppt@_H915|BP>K9=zKTm*o$AsQE~(J)#3QPiZn-Ymb5%jv~AS23ov +&0+fh-{+;)DK=9%#aim%hoiX)szwMr(W0Hqt(%d1CNN)#sHFQL7%(bMbH%I*cn#*O0A6zd000000000# +000000002QI(?qGvjTZ@$&X#u;j9Gp%hN(Yz`nc+54Z>v0F=}P0!Y3i7b@t4MVjY>G@u4Q3HlB(d+LiL +Jm-R=h;`?dxb>|UAw1DQOuZYLozrI +k|g)X!BI_ij=PWr0{IsR1l_I#dHB_@bgMhk0_N&La@nc5HwP6O+keCip}&vI>BTu$F{ZT5Vfz5z=cU#u +Hd8spTI%43qqz#IM%Vnl;~wy+U0;_w+8Yauo__nw#aAVFI4rEwy|f{U0R{vHbZKL2WpZ10ERL~X*GB-y +l0o(lkJ>lqHnaUkDzF#MO+`-nfvN;j>;{fO~I?t|ZBSH!(tpGg-WMy<= +X>4;vw}2&v0mUY=J6lL$MhcKn;XgI|zJmp*01;Q@0XT>WaB^j1X>)0BZe0V!7mcZoem^?%L*to!bRZoO +^d~aUzM`;8jz95VBG^B^;4cm3v~2hf;U4$>@L|V|mt8Tf>F%PuK$$b1Yybe<9xqZ>e{x^fFs+1!e+{I` +x|;BTGZEk9?>;P#rE}NPvxSnUK**8Le1-kltSZ7azFKgf3Y*(ir|N+G?p`mnXkl(k`ZV+ +LVYXKJ}#&0xTv^*>Pochfdm2o1a5C`W!OKy;4cm3v~2hf;U4$>@L|V|mt8Tf>F%PuK$$b1YykvwZ*67V +9xqZ>e{x^fFs+1!e+{I`x|;BTGZEk9?>;Wd>h=Ype%b?2720000000000CjbBd00000`4m;t2@#H +=ITLm*{QiV2NfFIf5Z%-0~!HgVF6-d0b^qUWMlzlWdUYp0cU3cXlMaxX#r|#0c&dkY-|B-Z2@j>0dH>s +aBu-}aRG920dsQ!baVlAbpdvE0e5!+cz6MMc>#KQ`>9xR8a*>q2D50xZ(4$R31H0PIsUw_;fcDKIn~;D +0RaF513^qx2trUqNk>IfR0C2+LLmSP0002cpbr5D3jhHC3kU!J3jqQE$l3=1IWPdxpbr5D1ONa500000 +000 -----END RGB CONSIGNMENT----- diff --git a/test/rgb21-example.rgb b/test/rgb21-example.rgb index a082ec7..b351d63 100644 Binary files a/test/rgb21-example.rgb and b/test/rgb21-example.rgb differ diff --git a/test/rgb21-example.rgba b/test/rgb21-example.rgba index 7ed5ed9..04933fd 100644 --- a/test/rgb21-example.rgba +++ b/test/rgb21-example.rgba @@ -1,141 +1,141 @@ -----BEGIN RGB CONSIGNMENT----- -Id: rgb:csg:v02lwmVK-wAvaPE7-8CTK2Jx-hRbmsMI-JbpO3Ha-4HqCbOU#boris-diamond-arizona +Id: rgb:csg:uu8slHX3-TN2HrKk-$Q3uwgt-9t4DWeO-ttko51m-9HRVr40#ninja-mega-copper Version: 2 Type: contract -Contract: rgb:wNVRTazN-!u26vjK-pTrjlpu-!ufzpEo-sxpbdde-p2qPXYU +Contract: rgb:8iYqGppy-AjN9DsV-kl$X063-SFLG$I7-kLAQ5rC-QYpwY80 Schema: rgb:sch:$$bAmeZTo5kK3RJHgeUr06qG86vQ0ozgtug7Yi9zdZo#korea-trumpet-dexter Interface: RGB21Unique -Check-SHA256: a7bb892e37257fd73e04e585ba5888e248844bc88c7451efc2cfa9a0ab83c731 +Check-SHA256: 4c9b56f76b2fec37d8f86700175290a30aa4becea3a8efe019043cc846d4287c -0ssI20095?z?tS#qnQfb5=VjME7Pim^Q+L(jNrEDJ7O<$b(#QYlG$be0000D0CRI`I$>^aZh38Qb#nm# +0ssI20095?z?tS#qnQfb5=VjME7Pim^Q+L(jNrEDJ7O<$b(#Q4M1^Mn0000D0CRI`I$>^aZh38Qb#nm# 000Bf2LS*O00dM;Q&b34Wpi{Ob!1@x0MQ2l04e|g009JaWq5P|0B#dH)QMQDO=WdHyI000000004?4*~%I0{{WVXdny_#L7H15eUEhJsv_h -`Aw9-Z78jM<00IC200961000000H^@frhA~8rEbuv&C{5;rT_o{00000 -00000000005>;+#adl-xX=iD4VQfKjb7gdpjUQ$J0000q0CRI`I!szqF?Dz?XKF+_Zdg!8El*=*bX8Sr -S1mSjGj&r#Q#LJOQD}2HS2boWI7&q~cK`&?2LRXnzT+P7s9j%|JK7ryjGlh`%f(kEcQ`Dp)4jAIiU9!t -0MQ2kTZ_k3I5GuF9U{JzB5UVUixWB~h#a~`69Ra6;9P9?0RR9t2mt>g2dR;eWrf2mfn0W-6EYpxT%Hqe -4Z6#YuvhEM?N$K*05}K$ai+oNNQ%6?MXfTR|H~O&PAZ+M?%c4|uH0003t7IAgS -MAMD6vu_L?ALP&UnspJQz9j^e@~P-Jgw&-A0003HCjbBepbr560RRD@4*>uH0003t7IAgSMAMD6vu_L? -ALP&UnspJQz9j^e@~P-Jgw&+~00000000000099DQb$5EF;#A9adl+`R!>~x^Kusb3F_D>3|%=0P4(J< -mWA;RHt3oehQzyHa;Ae}JlIJdsHP7x0|nOGbO+`KzPzGJ@=Wr^p_$?W%(i(SQXe7bO>GV2&KejyU3PXh -RtzED9#IG2D9~Wef|tz=zf!5xgaTwtA7>rorb(ioCoP%2dR;eWrf2mfn0W-6EYpxT%Hqe4Z6#YuvhEM?N$K*0SaMrb7gc-cWz~J1sHJc%j{$al(PgiY{guV -o`3y4;ZoR4bMl2=SA)CVSpWe6000044`Fn4VPj}*Wo~p-d2nTO0RRC21aoj@V*vmG00neqa&2<~00967 -bZ={AZgT+u0RRCCVRLh3bWe9~WpV)k|Nj635N2{=V{~b6Zclb)a%OCAcNJ-Fc42I3WI=RvVPj}*Wo~p- -d2nS6b#7~JZ+C7~Z);_40SI(*VQzC~Wpe)j0003BVRLh3bWe9~WpV)k|Nj9BVRLh3bWe9~WpV)k|Nj64 -5N2{=V{~b6Zclb)a%OCAcMfiEZbfl*VQf}mY;|RG5^is9Msi_ebZKvHVQf@yYh`W>b#7~JZ+C7~Z);_4 -0SaMrb7gc-cWz~J009Vea$#K5Ib#!obbaNnOcw=Q{WOE=f6=`mEVQgt+L3DIsV`yzK5Ib#!obbaN7JZ*E3%VPkY@Z*F01RBvl#Za86dbY*RDbRcwZAartJZgXa3av)(KW^!R; -bZKvHAa7EndVcYnF`$!M}g%l)2fE^tI*Pn;I`;HVlQ)bn$4(`hi=8$#uk0YMSQ+x1@W&i*H000Eg2Ly9)Wn%yU007Yk1$1R{ZF2ws001@!26S(0Wo~l-0000u2oGU&bYWv?ZDnqBRC#b^ -a{vGU00E#63So0|Wpqz>Ze?-+000000T3q$baG*Cb7p070000000ICEb#7~JZ+C7~Z);_4000003KDK_ -ZboupV{~b6ZeeUxZ);_400000GyrpRX*x_=Q!#aTEoW*(Ic```MlDZcWpq_lYga8cax-;PLsK>_VNqyv -Iaf7iEjUU=H+KL!000X1U)Cjo-i6E2P9x&mnv%Qki+Oba;k67*blZ=H=TQh>UMA(m1w0!?L{VGDpk+Ov -DhHAKF%fNXr25$w;Zs!r0000000007000000000Es;(M&rv!7X$EJo+{V&1)03O%U?m&Rq5}b^8af15> -0t9q!(i%G%h4}Sf8vn;89aSG|t4s0*&BRFk%a^yrND0jb0t9t*cyH)xK+Rkw`Mu(V|7oQW -GN(Z+AyvH&RuaL#D^138|7M^`NNc{jXEg#>2x#JO!0is)`buE3*f$s=77;x>&>|_U& -vjjD4#axh{fBik-QrJv$@`YYkgS*{X1p;LORzu`SjPv&tGy!?nCFm&fz)So=%sVIc1y9;Ha~&D$=A9F8 -Na0y;!RP5vuL@+rc3&yv5+tiFEA;1JTz44Dly4G~&lnD!c-+QY#hXVj|NgD}^^LKZ%!4TQO92G|Rt=W- -q4 -NmyOwH13hJJ{1p&;$a*~gEI0M-qU9F8#%$RFKGB^*CB=^U`QB8J^ -yO1H{K10Q-T=FR=Q=>S+XYD&KHujTH+>EdJQM&>E4z*R)+SA#T-nt8wey2OO)v!`LRkztQP;3W%Qi%!_9htpQ3t>=3qD -6)+-@LLdMu-?&gcOB(fowFxn4+u4A192x5Uog%HF!~38*kwLu#0ssVVZ*FDSKfd5E4dt|K_z&S8_x@L|V|mt8Tf>F%PuK$$b1Yykvw -Z*66;aMO?W(hOSV*asELF;pE|QoG*E(^8!{=H0e(APJW|(W0Hqt(%d1CNN)#sHFQL7%(bMbH%I*cn#*O -0A6zgEd*tFV{9P=Xkl|`BL-w|Y;0k2Bm-e>a3%zBY;|)h1Y}`zXe|R|Z*(pMdS!BNFavLHWibPEcW*KU -bZByAWite3Z*_7s1ZHV=Wi0dH>saBu-}aRG920dsQ!baVlAbpdvE0e5!+ -cz6MMc>#KQKPz&##IG7-47St%2#c>Z5R>jkTb_MKDq#SEtcHU8F!O3w2qJC#)UKHujTH+>EdJQM&>E4z*R)+SA#T-nt8weyMYn(@h5^MU -vO8NyVMYp&P~kr{`@Vw(r~naH;kFK+d0H97bAybczVb@xPq-Dzr4oJgUK7OifU&lzkBNr;@ghiU?gEXK9KMDE{F?;HZBRuDV -qlk6qmbe371#@s=V`U%&Wq4z3AqH`EZ**mIA_Qn*b7&(5WN&P2VR9q~aAk61Wo~pO31Mw;WpZ<2Ze%73 -VQ_DAbaHQSXk{k|Vsc?)Yh`pyCN6MEdyk4 -bS?#RY+-X~F9dpJa&IsLZ*FBV19W$9G6i&Ka%E*R1ZHn_ax?^HX?A5b19NG3HU)EKc4cli1!ZYxXmmIP -ZfS01IR#^HY;SHl33Fv_X+v*pZ*DsTY-MwEJOyQObzy8h2WN6+VRU73J_vDjWpi|CZ*D&VVRS$OUqL|v -UqV6xUqeFzUqnO#UqwX%Uq(g(Uq?p*Ur0y-Ur9*UrS2@UrbB_UrkK{UrtT}Ur$d0Ur8UsO~AUsY8CUshHEUsqQGUszZIUs+iKUs_rUb8$j)VPk7$bWB?bVqs%zQ*2>#Xj}?&aYAxo -V{2t}Qe6dOVRB`3UIuJ$WMOk?UkGAhV{3G2V{2dmVPOGcVgX}g0c2zWWn}?oW&vks0cdCeX=wp!Y5{9& -0c>mmZEXQ=ZUJv^0dQ~uad821ashL50d#Z$b#(!Db^&*H0eE-;d3gbPdI@7fa$#d@Wpqq?1aN6^Wqb)^ -LULhaYh`p&eFb!BY-DAAPO)*A+RkpPGhOnR2u=~wf)QpH7uC5ZDvob;93!rlZ8yf+KCD*)0ZlH6>$O%5miMH2B(lTb1P)|lIgi#~)sbZ^DMLcPrTIA(QB(-~saSFvJu_4WvuML_ -T7r2AV9eq<{=Bc@iMp6M)!KLf0000000030{{R3000016cPx&vU)M(f$C5$z50Bb6=QgwbMk=ru&P_#5 -`hlti0bX9nl23EZa>OEBma9j3W?1hVa-5?E;$Xa_D^Yz>$s@6fa*%L>w#RMNmyOwH13hJ(~}Y-IohWMyM%0R>}aZggn^1#M|;Y-s}tWMyM%O=)aw -X#@&mWo~q7O=)awX$1vsX=8G41_@+kV`)ukV{&f?3S(t%bZJd#V{&f@1a4t&ZwUxwWn*bhVQy~<31ek$ -bZJguZf^?&aA{+23`!Wo>kC4+&&tV`)ZZZFFxC3S(t%bZJIqZFFxD -1YvY^ZxUW!$dXTU&2q#dT$Zaxd1hGe8*-eZ2I646q$?$f9S;Qpf+K+Rb@1)9wcJs8k=}EVt)knrbu3H< -Xi=&GV*-}K3ie;tC4t_B%h66F;@g^%yYGv6bpPSC3`}&}kA~+_UtT8V#RWVYMMP0s#-L?ApehHE`!Nx1 -aisd$7U5G>13mOG^S@OiTh_O-%w{PEG<} -Pfr40P*4J2QBeY4Qc?n6Q&R$8R8#_ARaF9CR#pOES62dGSXcsISy=*KT3P{NVF6-d0b^qUWMlzlWdUYp -0cU3cXlMaxX#r|#0c&dkY-|B-Z2@j>0dH>saBu-}aRG920dsQ!baVlAbpdvE0e5!+cz6MMc>#KQW2z$* -=&?u0vV`BWnw}8RoT}CO>V%FwxrCjOXVx@I2>Yp6avD7|R0gwX!*5!Gc?n?5;yM1jui=Thm^szjcmV(a -000000RI30000000A&GIL*z(|^Y;`q0eROY=qU2QOZ-91J16!9Pue$g9R&fU&-*fU69;}zAIV^Hl7d8_ -9-)kE+Vz;)3s*I)2VU21bj+U}49ir`|1I+*$<$TBtm<+yI?cCS&H}f+m!nk#0ssVVZ*FDSKfd5E4dt|K -_z&S8_xUs_xvd)#O5wx83S{pf*v6^ -k7ERGVQpnjv2mE%&TgwSUGkR*P7%_A5oQ+`)ww4sj&F4yv21O3@X&qCv%6BHgWizA=u(cLP6P}D7lKnk -9D*JpH;-cg0exjom+h7od^|i!6IVh}C$_-w2%^n!R2Osl8!b($Bn1Hu(i%G%h4}Sf8vn;89aSG|t4s0* -&BRFk%a^yrND0k=Ud6mq639W2L|vh3p}>j>;{fO~I?t|ZBSH!(tpGg*0mM3ep1HFEd2`8+UDn~O1og|) -LO{U2yb2Gv2owO6)Pf^`^mXvL0b>G|!UHq{UqL|vUqV6xUqeFzUqnO# -UqwX%Uq(g(Uq?p*Ur0y-Ur9*UrS2@UrbB_UrkK{UrtT}Ur$d0Ur8UsO~A -UsY8CUshHEUsqQGUszZIUs+iKUs_rLVPOGcVgX}g0c2zWWn}?oW&vks0cdCeX=wp!Y5{9&0c>mmZEXQ= -ZUJv^0dQ~uad821ashL50d#Z$b#(!Db^&*H0eE-;d3gbPdZF5UYt#1Jp*e72xXvv~_Ej0eK<_)d?1f|r -B(T3THv|Fz1a5C`W!OKy;4cm3v~2hf;U4$>@L|V|mt8Tf>F%PuK$$b1YykvwZ*67ysX>`mg)dX=J|!5D -^^Svj0r2RU9jkooO*jNSYm*|P)IR&V(Htw%E&VW2%ISUNIBhq^+CHpT0s&1fiR-lpNWLQ%D(Hkon&*Qw -pawq)`VKLB>Wd>h=Ype%b?2720RR91000006aWAK00000qk=;7%h%D+p%U7S;b1RT)c9`>#Kd;Rz-U=a -O9W+B1pz8ss;p3n{|Sv13rH;f*u2mhk-*oqT{0nV)po0K>)oZ#`!aPC2Yyc<$zXDlf<&Mmp^R+W^_bcV -S2e5$Ue^EwuyE6l_R}O)+shqImKG);D@8R -3aUm3Jkg?^%&nV|dnPbniKwLeAs8?!PIJYq3V03Xs{mee0000000000KL7v#00000#5#SRxw8U!bIFfg -*5RxK^~=*jK)}Ad3JH<(%oY0 -=TGqa6l5KfYJkC@$v(fAa&d%-e7ws4kFK+d0H97bAybczVb@xPq-Dzr4oJgUK7OifU&jRjKPz&##IG7- -47St%2#c>Z5R>jkTb_MKDq#SEf1KA&4t&LI4m}^5aI1iE}_s79eO?HmEkOczy7YGF1t^|4b)vt7`JJJH?>OpeZ -skt`?6&l-r#0;UokIU)BIae{Jw9R4r0N>}O)+shqImKG);D@8R3aUoe{J!HJ@Tgs1mpj@U3yhwA`^&{w -C3iS1tkb=;A&LP81O{|zV{2t{TX!suv0v9m0LPL+_79KRH|I99{YEOV7tT#ZPWpkW1a4t%Wq@AAyi*d$ -L6AgUp=zPPiV5QY=rTIbu4*Gf3Ms7sJqKiEbYW?1b49m+C58dTCbBzQNMS|_kWk@2HT%AU1*iZKSL6XW -hzW3VWn*b`X>V>_1H>1Nsg8a>I`c#0nSFF19TD^=GS9xEuuG0V@n0g?Kfd5E4dt|K_z&S8_xxYy=<4kft^@4w~Gv12ehp04`Gl!Y4#EOy;XgWfDE7LwMr|Y<=xPaY62ZUYgq2{$1_lBIba-iGqk=;7%h%D+p%U7S;b1RT)c9`>#Kd;Rz-U=a -O9W+B1a@zAbRpwDL&d6G@+l`%qd385?K@+fP1(-9sgE>i7rMzqb@I9-fEJ#8I!OHhFfAY7fVtxlj{%}v -rgbfS&w=jG@u4Q3HlB(d+LiLJm-R=h;`?dxBvhE -0000004D$d000000QVkcj;BmNHBOwq)*#;@L|V|mt8Tf>F%PuK$$b1YykvwZ*66~e*~A-{pMOIF3{$ogLC-FQ5ynWwEO**XV}S~GTU1D7YGF1 -t^|4b)vt7`JJJH?>OpeZskt`?6&l-r#0;SW8UbNp0b*hSV`BkiWC3Mm0cK_aXJ-LuXaQ+y0cvUiYij{) -YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX7*sX>`mg)dX=J|!5D^^Svj0r2RU -9jkooO*jNSYm*`c0f1h`yi*d$L6AgUp=zPPiV5QY=rTIbu4*Gf3Ms7sJ^QIxavD7|R0gwX!*5!Gc?n?5 -;yM1jui=Thm^szjcme++2dR;eWrf2mfn0W-6EYpxT%Hqe4Z6#YuvhEM?N$Z|1!-<%Wq4%)Rzu`SjPv&t -Gy!?nCFm&fz)So=%sVIc1y9;Ha~%eBX=7_;ax34sP(4c;^?|hsF=^Y`fOQ-h>iwM}t)avFpgNI3y##Jy -ZDpa_d~4J8+@U#eVYtpMO7>M5!a(mkyX=Kz2_&$;GdBlhWprU_Y;#4ofF*_j#U`>lTS#F>3Xo9YKQ;Tl -g9WGn5m)2^IEV*ua%FaDWq0=;WsavzKQ&IAzSbb$9Yi2iGqm?r&xt3_=N0p0RRjfXWn^h#;D@L*mNSQ$ -uf&Ry5okI>eJj&GE~o3bsJMXYO0?^N3t@D0VPj}*Wo~qH%#Y`}U-d|ep?1?aIu@z}I<9l4cr`-4*|VM; -bUc~u2y$g}WpZ|9b8d9ZpB)U#RL=h`^CZdCRl%(4axyy2w_MHwx4oC6RRI7413^qx2trUqNk>IfR0C2+ -LO=iu0RRBRpbr277XS+Z000XJ0077~2muQK0022401F8K0L7pW5ji0N839273jhKD3lReVIWZs$3k3if -0bv0R0000A1ONd50000000000000 +^GkPgvs|)D7&Zt202crP0000000036X>DO=WdHyI000000004?4*~%I0|3QnAPf-1$~-j@2*3P29zrigQ=Omp&uURQ&=-B|zt1keWo0098e2LS*905%8#0096v2mk;900E#60RRC200A}@adpW= +(~Y&WZwwtDuH00E#60RRC200A}@adpW=(~Y&WZwwtD +iewj^T{#F%_1b`z +h4BqG=$aXZ#JgW|rh{QT*hwC!rVla$1=ibi2j&O9yrN3-O!CH|nc@P>ws{{?A0g*WZ4Knk8W=lWc6K&a +3?begQ3v2C&|uDjm(2~oQmNF00%S}dX6O5MP_>W1%xpkN)kbwvAr~`*`2l7C000001P@_!bYWv?ZDnqB +RC#b^a{+Ot!RJVdyu3xNGNAv<8C^~)ovQBKu+`*3lDFOYMcDxW1aoj@V*%IvzT+P7s9j%|JK7ryjGlh` +%f(kEcQ`Dp)4jAIiU9!t1$1R{ZF2!zi^o(rG6hNZe?->7;x>&>|_U&vjjD4#axh{ +fBik-QrJv$@`YYkgS*{X00992000CJVRUq1V`yzV>}Y*cS+Wo`_0ZfkCDcWzW~Yh`W$ +3So0|Wpqz>Ze?-+0SI(*VQzC~WpV`&W^!R;bZKvHPj+Q;W^8YFGIVHVAYpB9b#8PZZ)PBLZ);_4AZBu5 +V{~b6ZgU`MZXj=UbZ~Wab0B4SV`XJzb09GlX>N95Y-wacbaY{3Xl-R~bX0k8WjJAUbYWv?ZDnqBAZTH8 +AYmYMd2nSQcW7y2Xdr2GAZ~ATAYp85Z+B&6AZBlJAarPDAarkQWo`~`Z*E0#bzy8)VQh6}b60d|Wgv5P +Z6I%EAaihKZge1YZ);_4AZBu5V{~b6ZgU`HZ)J0CCv+fXadlyAAarjabZBKDb9HSXZ)PBLZ);_4AZBu5 +V{~b6ZgU`MZXj=UbZ~Waa}sWEZboupV{~b6ZeeUxZ);_4IAL^jWo>YDAarjabaG*Cb7p07AYmY8a$#e1 +X>V>IZ)PBFZ*DDSa$#e1X>V>}Vr*p~bZ={AZVYv9Yi@6MZd7k;Wo{l}Y;131VRUJ4ZXj=FAa!nQZf|#P +AarkQWo{rzL^J?%b7?wET2nD~cr9mYL^*C)P)03JV`X$zRclu*HgYp{Q$tfWEn!h;b2(QvW-T~MMK^Z= +|MtL{=2N4Y3f&S%f#oaHs)qBc(9(?Hw&*)zFLQO8&8U=zZpGQg7JbJ>e7uYQ&j)}00000000L700000000iEt{Qo#1aqv%riM}dFTwu+9@otcHU8F!O3w2qJC#)U<71gbYb$kB!Cv4eL6_}05B~d-+;N}5sv|) +Tc&j_eb0gK2sjSX8ao+<`1M~J|HmdBRUd1sOY#QI#7OY62ZUYgq2{$1_f|(Z*OMux+H)Wo_#t<{Qxj6AK!qv;}MSmqFbhQEq%{{?+7>;aP7yr3U)7OiEGa`mzoq#(6;V_f>*k#ka7f`=3qD6)+-@LI6M< +uyu|U!T^j90F36+)E=H0H{s0>nH0sEektM3d!V}o0nEa3l8<>f1KA&4t&LI4m}^5aI1iE}_s79eO?HmE +kRjtfL&d6G@+l`%qd385?K@+fP1(-9sgE>i7rMzqbp-*X&-*fU69;}zAIV^Hl7d8_9-)kE+Vz;)3s*I) +2VU1ITdJ&3iT??W6$?l#{@A?G8j--)v|TbGZq;_HaqHa&9IL;>*e1Zg(dl;zh@Se)i)R+C0ZKmX5Vlzr +Fd~pbAOI`hxKKSy8ufv-2{CEg*?@H%8S4F=BCVmr`=C0JLA?Y500eGtZe`d%zThtn<+N=058)p7{qSMO +jh9_9t?BNfyg->Vo@@aGb8l^B^h!oTk{Mq*mt#Id5<{IqiqB>((XyRTgKMj7L7^;VFWB;W7bg;sK59Oe +@c3K=fV3eR7p&1RS^QDdq`TfM1OfmAZf|a7*gwADFAe3iZ1@l19{2t5VaJV^T`{fc?xMUvnKPbj0R(ez +ZDp`<(~tJj3|i&b2NlXOR2^DUyWY#wQk^*F-L`Td370(4qMgjGn~{4aFkgwNr28QlFe*-S#jFZ=4d$x= +UULI21Z8+*Y#{__VRL9B24rt+Y+-UF17U4&CIoP7b#p5OWMOk?Edyk4bS?yXWpZyY18;6+F#~jWZ!!gR +XmVv`GX!RDb#gQWW@&b1H3M^Lcs2!dWp-t5Hw9&BXJ~Xd1a4_=WjO_7VRB`3UIuJ$WMOk?UjboZ0b*hS +V`BkiWC3Mm0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d{r)cXt7J +cma8N0eX5rD{{BQuNq?vw$uLzi?1~hlkP@ao_$9uVE}^UN!R2B0b{Bo6zH)>$g+grvznd|(VVK)`s##^ +Jh_COk!RL4N<*rD#rE}NPvxSnUK**8Le1-kltSZ7azFKgf3Y*(iUtA%ba`-Pu?^n-fFP~dpvnj-AyBKa +JW)+{-ce}5$#DguerIN224rbxWpi{YTdJ&3iT??W6$?l#{@A?G8j--)v|TbGZq;_HaqHbhw}2&v0mUY= +J6lL$MhcKn;XgI|zJmp*01;Q@0XT>R0ssVVZ*FDSKfd5E4dt|K_z&S8_xG@u4Q3HlB(d+LiLJm-R= +h;`?dxC37Wb8ul}WgrA)cw=lK261(7bY*iQ1ZZJ%Xd?z>Z)|K~awG?EWpZO>ZgeFHVQp|_a&uvBWF`t> +aBp*Ta&K^GWhV$?a$#d@Wpqp^2x4+!V{2t}QYi>wb97~LX>)5T1aNG1b1Ma7Z*6U1ECp?8Zgq1l17vS> +E(LRJVRL9N1bSt1Z!iOIZe=k8ba!tu1$1a~Wo0u2W^Z+JGz4a8c4ajKb7^=s1#@L~Wo|bGWoc(MgX1!He)Z*DpXb7gI5LvL(vZaV~QWpi^p1!Zw{VQf7IXL4m>bY*fr2yt~~b98BMZa)HHbU*@MK|umv +LP7#xLqh^zL_`8#MMVN%Mn(c(M@Ir*NJs)-Nl5}OG^S@OiTh_O-%w{PEG<}Pfr40P*4J2QBeY4 +Qc?n6Q&R$8R8#_ARaF9CR#pOES62dGSXcsISy=*KT3QNoaYAxoV{2t}Oj`+JVPk7kY+-X~Tnck>LULha +Yh`p&T?J!da%FU025fI+VRL9-2x4JlYjkO2YhVFkVF6-d0b^qUWMlzlWdUYp0cU3cXlMaxX#r|#0c&dk +Y-|B-Z2@j>0dH>saBu-}aRG920dsQ!baVlAbpdvE0e5!+cz6MMc>#KQ31dQXVPk7$bWD2$aA|O5d +f_VvG%;GuzyszPjx|liD+IRo}000000096000000003KeERL~X*GB-yl0o(lkJ>lqHnaUkDzF#MO+`-n +fvN=oUS7zOPjk(3#3Edlt4DceSnnHhoTCQfV7#O&C5asmTZ_k3I5GuF9U{JzB5UVUixWB~h#a~`69Ra6 +;9P9?1_A_hWq5QL%am^tlg}6qop{{FTg974FaQ3n`}K{nn9PGH_DcZ;ZDnL>Vc>_TG?p`mnXkl(k`ZV+ +LVYXKJ}#&0xTv^*>Pochfn1?USY72b?vbnl1H>1Nsg8a>I`c#0 +nSFF19TD^=GS9xEuuG0V@n0eX6ANi>WNCJ3b7^91WdH4q1 +1PWtiZggo)X>4q11qE$sV{&f>31nqsX-#Qka&HF;V`Xl1X-#Qka&HI(Zeeb32?%6mV`)xdZf^<+V`Xl1 +X-;8oZwmx)X=85;2xMhrX;5inZw(1!Wo~q7P-$at4h3dqZFFxB31nqsX+~vjbZ-y}V`Xl1X+~vjbZ-#^ +VRUqF5?)@&l23EZa>OEBma9j3W?1hVa-5?E;$Xa_DA7(M}`c+nSQQ?~8eK|KYU^Omy3ihUZaVUMA(m1w0!?L{VGDpk+OvDhHAKF%fNX +r25$w;Zs!uJ_LGYa&IsLZ*FBV19W$9G6i&Ka%E*R1ZHn_ax?^HX?A5b19NG3HU)EKc4cli1!ZYxXmmIP +ZfS01IRalnK>}YwLIPhyLjqq!L;_z$MFL+&Mgm_)M*?3+NCIC;NdjL=N&;U?O9Ed^Oafm`O#)v|P6A&~ +PXb?1Py%03Q3795QUYI7QvzR9R03aBRRUjDRsvsFR{~#HSOQ;JSpr{LS^;5U0b*hSV`BkiWC3Mm0cK_a +XJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX64sv{KW +u}8?Vgx|B8o)FQTs@3}HgpNG9gq@LR)-*~8`>9xR8a*>q2D50xZ(4$R31H0PIsUw_;fcDKIn~;D0RR91 +00000{{R3000000WdT-0T)tV&9_|60=K=Fqg4a~00eGtZe`d%zThtn<+N=0 +58)p7{qSMOjh9_9t?BNfyg->Vo@@aGb8l^BePvFU?UojNJUmGgS3*%Iw!rWRqRntr7jya>ElsKMYW)~OLxhE=)Z*?BAY;AY&(0$CayHccs-jKoQQjVZb1PlZhf>S{p +f*v6^k7EDElsK<1pyAy8ao+<`1M~J|HmdBRUd1sOY#QI +#7O2Bz={du0O&G0&#r1CLJBFZ06hf(#5#SRxw8U!bIFfg*5RxK^~=*j +K)}Ad3JOG^S@OiTh_O-%w{PEG<}Pfr40P*4J2QBeY4Qc?n6Q&R$8R8#_A +RaF9CR#pOES62dGSXcsISy=*KT3P{NVF6-d0b^qUWMlzlWdUYp0cU3cXlMaxX#r|#0c&dkY-|B-Z2@j> +0dH>saBu-}aRG920dsQ!baVlAbpdvE0e5!+cz6MMc>#KQq1t?F)ArnoEfg=7gN +u)i}m1OfmAZf|a7*gwADFAe3iZ1@l19{2t5VaJV^T`{fc?xMUvnKPbj0R(ezZDskXL77&CFH`J3B^Z(Q +j)Qsu@aUKwt93!rlZ8yf+KCD*)0ZlH6>$M0-z9SbZ=!8X@=Yuq$ +20sb<4l#S`iz7Vef}@Ca=a#qu000000000K000000001^ftcHU8F!O3w2qJC#)UJ{2Xl2|ba`-PFWB;W7bg;sK59Oe@c3K=fV3eR7p&1RS^QDdq`TfM2V-bqa&u*L +FWB;W7bg;sK59Oe@c3K=fV3eR7p&1RS^QDdq`TfMynh6j*8S#MC@#?Ep@Vby$x#~uT(tZBmS@<>pEBE8 +1pyAKt{Qo#1aqv%riM}dFTwu+9@ov0F=}P0!Y3i7b@t4MVjY>G@u4Q3HlB(d+LiLJm-R=h;`?dxb>|UAwL#ltp_Vr{><)W@$8mW*%&FhDhLgP$wKlOrtu`}L^0000000000 +6aWAK00000%))Y#k9jx)*&ki4jZw^)YeOVo@@XB+#WAdR)2C|*D$SwhJOvD$-0{Gfin@`^Yz>$s@6fa*%L>wyFU00eGtZe`d%zThtn<+N=0 +58)p7{qSMOjh9_9t?BNfyg->Vo@@aGb8l^B+#WAdR)2C|*D$SwhJOvD$-0{Gfin@`%$n#j0HLDJN5-IKgM_J7b(p+0MPGk2Gl)y2(Rz^138|7M^`NNc{jXEg#>2x#JO!0is)` +buE3*f$s=72pp@w!`LRkztQP;3W%Qi%!_9htpQ3t>=3qD6)+-@LI3~&000000RR60000000Q5>mLXsI@ +I+tTULlQ%sL5k02Ezz=_P=jl$Y(b$cWd#9ScPx&vU)M(f$C5$z50Bb6=QgwbMk=ru&P_#5`hlwTtrsCg +%+lRr?B`GL`xImylWKs$pvgYJmvV80iF~{WNWLQ%D(Hkon&*Qwpawq)`VKLB>Wd>h=Ype%b?27200000 +00000CjbBd00000_a0@Ar%XRJPMp5hAm1HCAXPK8_f^k{C(h>;^JG;71OfmAZf|a7*gwADFAe3iZ1@l1 +9{2t5VaJV^T`{fc?xMUvnKPbj0R(ezZDqWF1eezR=2|E&(B`3obNI9xR8a*>q2D50xZ(4$R31H0P +IsUw_;fcDKIn~;D0skTgsgaOng~Kd?Ty~ukG9B1lo)d2ky33BRSL@8}Rt5+KX>Md?cx3@rL*z(|^Y;`q +0eROY=qU2QOZ-91J16!9Pue$g9R_r1V{2t{E8n8bYW?1b49m+C58dTCbBzQNMS|_kWk@2HT%AU +1*iZKSL6XWhzD?TWp-(0clRD;j;BmNHBOwq)*#;C068E43kd)K#h?!nIUxZV0YL!^00ICD5d#1@F(3;I1ppZV +VF3*Q000UE00961000000000000 -----END RGB CONSIGNMENT----- diff --git a/test/rgb25-example.rgb b/test/rgb25-example.rgb index c43ca7b..831eec9 100644 Binary files a/test/rgb25-example.rgb and b/test/rgb25-example.rgb differ diff --git a/test/rgb25-example.rgba b/test/rgb25-example.rgba index 64669ff..6a81b49 100644 --- a/test/rgb25-example.rgba +++ b/test/rgb25-example.rgba @@ -1,98 +1,98 @@ -----BEGIN RGB CONSIGNMENT----- -Id: rgb:csg:Q$TnuoI0-j6aIixI-C93gAXT-wRqXQPV-N$jbYo5-kwjxBR8#mental-violin-banana +Id: rgb:csg:R3LTN$51-h6z67LK-KQc6$Oy-QwJZ!fk-PEo6UFy-V7M1u7E#import-client-pirate Version: 2 Type: contract -Contract: rgb:8B4SxOzc-TJPdXbc-kCQwq$E-mDGbAET-uBJv4cw-eTfBu5U +Contract: rgb:mXewm6kI-YoggJHg-1lvYpiM-8G5trMG-SOiI41g-Bs0g7GA Schema: rgb:sch:cJjPZfUpkOqIWhpCTqYJtFYzLfz$AB3JNxIEOJZYn28#circus-version-silence Interface: RGB25Base -Check-SHA256: 374daaad407ad6b79ccea8d29d7c65c13a53b34231d97eed520ddc30fc3cd8ea +Check-SHA256: dd52923f79113626522b2bc01d1a0d86a82b4dc1e39e217f75bbd93f615b6b9c -0ssI2003~9&t>%~km`t98bVH{3A9!-E&Trg9mzKm1UQyhpKkzflG$be0000D0CRI`I$>^aZh38Qb#nm# -0iX{R2iX#u|61C)F286e!B~NFaP8)*X#umRi7(i*6&$bt1kncp00RI3007zt0RRX90O)o|7XSbNxeEaR -3jhjKWpi{OVRLh3biE4!009690iX{70RRI40mWz_3=qW1JT(yrzx+KOLOA(Nl)!B$w#|{Dv0Gg!6afGL -0H(OS7IQ+LrU(G&c1RZh004e|etv#_etv#_etv#_etv#_etv#_etv#_etv#_ets1P*%F%nTH3iTzi21H -Sb=kJ?dGa!0kfxxFW9pc9IyZY00000000000000002o7WY;0v?bZKI2Wkz*wXK7+=WkGXuWpt2@A7%gm -001-qb8~4rOj=Vhb$BgjYD771SWreSPh(|tRaI+OEjDs9byGuAHZ5UMXmdGNHD)b1N<}w!00z+q09%X4 -R5&sPN*yA;lp<^AQ;QQiCWsumMiT;fc;H-Y_W=L^+6MrLj96u3I`KP|x6K-jit^gQ+!PC!a#7jT+VjUz -9FBwm006iP0CxZIJu1QEX=%Xy>vn1>teUKtq)w3djjO=VIO}{ZUjYCBxeEY*Ud6mq639W2L|vh3p}>j> -;{fO~I?t|ZBSH!(tpGg%006uT06!~ox5Td+V+^*_{|Jk(H4u~TMq8eJM=D_eg5*ip1N -sg8a>I`c#0nSFF19TD^=GS9xEuuG0V@n0eV0004?4*>`O00z+q0RRC2+6Msu0RXrQ00031xeEaR0RX%U -00031y$b;V0RRD@4*>xG{{R82@R`z!?NHxd23Hj_e>$5opLcw)x&Ht5G{KXgJhmnY0003HCjbBepbr56 -|NjA?4*>xG{{R82@R`z!?NHxd23Hj_e>$5opLcw)x&Ht5G{KXgJhmnP00000000000099BQb$5EH9}!? -WdefyeA22rmXX)ZV_yI}MH~YN>;K=mRmV)&;+=Xmp=8%{dOaKyPp>`{W+ev&_Ht^TvI2G1Jtsm#HCZ5u -7Cwae0cHRI0000617UJ>0e1iJJu1QEX=%Xy>vn1>teUKtq)w3djjO=VIO}{ZUjP6HWMy<=X>4-=KPz&# -#IG7-47St%2#c>Z5R>jkTb_MKDq#SETceV>000312V`Y*VQFl0000313~6(7b!B8zb#QQO -c>w?c00eGfZDj!f0RRbba%E#_b7^mG0RRC21$1R{ZF2zt0RRCCVRLh3bWe9~WpV%j|Nj614rz09b!B8t -X>)C1bYo}%2y}8`ZgXa3asU7T009bNb8}^MPj_x*asdGU{{aeNb8}^MPj_x*asdGU{{R6GZf|ZyadlyA -L2Yk!Zgg`23So0|Wpqz>Ze?-+0SI(*VQzC~WpV-zX>)URWn@ihb8TUCV`yY^b#QQOc_4FeWn*b(X=P*} -VRIm1AZKiEVqt6`aA9&`ZDn+2av)@HWpi#PbRcbEbYo~BbZBKDX>)URWn>_8b#QQOc_3kIY;R*>bY)~9 -bZ;PZXk{Q_b8}^MAa8eWWpZ;5Zf|ZyadlyAL2Yk!Zgg`+bZBKDb9HSXZ)PBKaAj_EAYpTJWpr~OWN&42 -ZYOjgWpQ<3Y#?-RAarPDAaiwXAa7Rb7?wET2nD~cr9mYL^*C)P)03J -V`X$zRclu*HgYp{Q$tfWEn!h;b2(QvW-T~MMK^Z=aG1|!^(m0*h*}y#PNoU8Rx>U9{{S7yHxdLmmRO%} -1=6B0dz(d+*sZj++->l;t}Y?Say-NZ(5a@eh#oRVkc}T^0000000z+q1$1R{ZF2ws007zt3~6(7b!B8z -b#QQOc>n+a0JsYSVRCc;0002F3j}UqZDjxe006uT2V`Y*VQFl000000y$cC&a%E#_b7^mG000000iX{G -VRLh3bWe9~WpV%j000015GM$9a$#)URWn@ih -b8TUCV`u;X001-qb8~4rOj=Vhb$BgjYD771SWreSPh(|tRaI+OEjDs9byGuAHZ5UMXmdGNHD)b1N<}w! -03ZMW7|WDz5|hsu4xM=1##_akM=$^Wt^4(jv6#$*DE3PM1p!tKmiMH2B(lTb1P)|lIgi#~)sbZ^DMLcP -rTIA(QB)kOzr)xjz`xPycM6D}`pk=G7OeqFKI{;-SrsrMkU{`J9I$nc6v6J{1p&;$a*~gEI0M-qU9F8#%$RFKGB^*CB=^U`QB8J^yO1hds;p3n{|Sv13rH;f*u2mhk-*oq -T{0nV)po0K>)i(&tG~n8CcwYZ>30f@L|V|mt8Tf>F%PuK$$b1YykvwZ*66;aMO?W -(hOSV*asELF;pE|QoG*E(^8!{=H0e(APJW|(W0Hqt(%d1CNN)#sHFQL7%(bMbH%I*cn#*O0A6zgEd*tF -V{9P=Xkl|`BL-w|Y;0k2Bm-e>a3%zBY;|)h1Y}`zXe|R|Z*(pMdS!BNFavLHWibPEcW*KUbZByAWite3 -Z*_7s1ZHV=Wi0dH>saBu-}aRG920dsQ!baVlAbpdvE0e5!+cz6MMc>#KQ -KPz&##IG7-47St%2#c>Z5R>jkTb_MKDq#SEtcHU8F -!O3w2qJC#)UKHujTH+>EdJQM&>E4z*R)+SA#T-nt8weyNWLQ%D(Hkon&*Qwpawq) -`VKLB>Wd>h=Ype%b?272178JmaA9L*AOvN2V{9P?admHWWpg3~Xkl|`BL-w|Y;0k2BnNP1a${v~bR`L4 -ZE$6Bb75{|CJJG2Z*z2VZ*XX3CkSG4VPk7$bWA7+Vsc?)Yh`p&DF|V6bY*gBb89LDaBOvRD+Ob3ZEayJ -1#M|=b#pBPWN&mX1#@g+b7(IFdS!BNFavLHWibPEcW*KUbZByAWite3Z*_7s1ZHV=WiCgZ)|UFI|OWHb8|ceWpQ<3Y&{2Oa%Ew3WpX|Uadl;LbZKvH -KLTNNKmuPuK>}YwLIPhyLjqq!L;_z$MFL+&Mgm_)M*?3+NCIC;NdjL=N&;U?O9Ed^Oafm`O#)v|P6A&~ -PXb?1Py%03Q3795QUYI7QvzR9R03aBRRUjDRsvsFR{~#HSOQ;JSpr{LS_*SetH31dQXVPk7$bW(ieJj&GE~o3bsJMXYO0?^NT%k!=UF9_Hk+b8VFt_j2&9|DqsTD5}A2(UF#~}_M00>4q10|{hh -V`)ukY;0)+3S(t%bZJd#Y;0)-1#M|#a&HC+WMyM%O=)9tZwCrvWo~q7O=)9tZwLf#VQy~;2xMhrX-;8o -Zwd)xWo~q7PGN3u3j}a!V{Z%yWMyM%P-$at4GCjqZggo-X=85=1!iS!bZ-v{WMyM%MrCbuZx9M&Wo~q7 -MrCbuZxIAxbaZbLUtT8V#RWVYMMP0s#-L?ApehHE`!Nx1aisd$7U5G>13mOG^S@OiTh_O-%w{PEG<}Pfr40P*4J2QBeY4Qc?n6Q&R$8R8#_ARaF9C -R#pOES62dGSXcsISy=*KT3P{NVF6-d0b^qUWMlzlWdUYp0cU3cXlMaxX#r|#0c&dkY-|B-Z2@j>0dH>s -aBu-}aRG920dsQ!baVlAbpdvE0e5!+cz6MMc>#KQW2z$*=&?u0vV`BWnw}8RoT}CO>V%FwxrCjOXVx@I -2>Yp6avD7|R0gwX!*5!Gc?n?5;yM1jui=Thm^szjcmV(a000000RI30000000CxZIJu1QEX=%Xy>vn1> -teUKtq)w3djjO=VIO}{ZUj+e*%scV6@fU9pCi53oip!$IFLkNNm8RePe-orvEEUUuUd6mq639W2L|vh3 -p}>j>;{fO~I?t|ZBSH!(tpGg*0mM3ep1HFEd2`8+UDn~O1og|)LO{U2yb2Gv2owO6)Pf^`^mXvL0b>G|!UHq{UqL|vUqV6xUqeFzUqnO#UqwX%Uq(g(Uq?p*Ur0y-Ur9* -UrS2@UrbB_UrkK{UrtT}Ur$d0Ur8UsO~AUsY8CUshHEUsqQGUszZIUs+iKUs_rL -VPOGcVgX}g0c2zWWn}?oW&vks0cdCeX=wp!Y5{9&0c>mmZEXQ=ZUJv^0dQ~uad821ashL50d#Z$b#(!D -b^&*H0eE-;d3gbPdWeizWn((=JC(Q18jXtb+QHlu3zu?H+0@$e$59-PgarXyp-EU>L0b>G|!rXoSC?n5wJSpIAp{09w=bpP+&ZWGMAfo&23(WIz3b1g~kM`0GTIJXW70NMG -9a>Vm-pkWcojB&*wsIf|mjwYFuyu|U!T^j90F36+)E=H0H{s0>nH0sEektM3d!W0q4c`8MAg$P-$_ObT -P^+;#QB8KK9=zKTm*o$AsQE~(J)#3QPiZn-Yf@WXkl`5Wpppt@_H915|BP>K9=zKTm*o$AsQE~ -(J)#3QPiZn-Ymb5%jv~AS23ov&0+fh-{+;)DK=9%#aim%hoiX)szwMr(W0Hqt(%d1CNN)#sHFQL7%(bM -bH%I*cn#*O0A6zd000000000#000000002QI(?qGvjTZ@$&X#u;j9Gp%hN(Yz`nc+54Z>v0F=}P0!Y3i -7b@t4MVjY>G@u4Q3HlB(d+LiLJm-R=h;`?dxb>|UAwf1KA&4t&LI4m}^5aI1iE}_s79eO?HmEkOczy7YGF1t^|4b)vt7`JJJH?>OpeZskt`?6&l-r#0;Uo -kIU)BIae{Jw9R4r0N>}O)+shqImKG);D@8R3aUofKfd5E4dt|K_z&S8_xxYy=<4kft^@4w~ -Gv12aef}sT&vZN~;BKL%dw1uayIIbqypJHF`|S(N^Kl9YUtT8V#RWVYMMP0s#-L?ApehHE`!Nx1aisd$ -7U5G>00000000009{>OV00000;D@L*mNSQ$uf&Ry5okI>eJj&GE~o3bsJMXYO0?^N1OfmAZf|a7*gwAD -FAe3iZ1@l19{2t5VaJV^T`{fc?xMUvnKPbj0R(ezZDrgZFH%;2a$nalt%Qbu4W!Asn(%=$5#QwRK0Hcc -B}nzH7a>H<(%oY0=TGqa6l5KfYJkC@$v(fAa&d%-e7p!qz9SbZ=!8X@=Yuq$20sb<4l#S`iz7Vef}@Ca -=a#qt000000000d000000002_7YGF1t^|4b)vt7`JJJH?>OpeZskt`?6&l-r#0;SW8UbNp0b*hSV`Bki -WC3Mm0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d{r)cXt7Jcma8N -0eX7-saSFvJu_4WvuML_T7r2AV9eq<{=Bc@iMp6M)!KLg0RRI7K}=N$LQq6WM@3Uq15!sqApi>i007XS -4*>@Y0096C2mk;J0RjNX+6MtSFaXh@4*>@R000310000000 +0ssI2003~9&t>%~km`t98bVH{3A9!-E&Trg9mzKm1UQyhpKkzCM1^Mn0000D0CRI`I$>^aZh38Qb#nm$ +0iX|b5+pFCo>^gvrWHeecQTl!!GV}!0cWRCDdNQZO{?|*1kncp00RI3007zt0RRX90O)o|7XSbNxeEaR +3jhjKWpi{OVRLh3biE4!009690iX{70RRI4#b_W55X8znH4zBE{5>8*IQdPKz-=hD&5@z8TU{v>0RR91 +E&V_M!4c?`2mt7INEZMA0DgXcetv#_etv#_etv#_etv#_etv#_etv#_etv#_esmHfFr}VZVTz^|LwwGO=0RRBG3jly##k^Az$U%@qU7>2Bz={du +0O&G0&#r1CLJBFZ06hT!0K5wTKPz&##IG7-47St%2#c>Z5R>jkTb_MKDq#SExG +{{f&60RaF100FD;nbM2xP~Tn#R~0gUI-4?|cYLt9{{Qwg!IPjowk7}o00000000000Rah8M?x|+LSb`d +0)qT}(yBX_k=M;*UjREr90LgJ|KGV)$4uDboq9E)WY=?gJscBHuRauJB?krea%!Hk0(I6sCqhFtSs;lP +K7{!JW&i*H000I9VRCcwGO=000MMWprU_Y;yrWD{{BQ +uNq?vw$uLzi?1~hlkP@ao_$9uVE}^UN!R2601Rn!b9H58Q+04~Yj>;{fO~I?t|ZBSH!(tpGg%010q%Wn*b`X>V=; +T?51yjj4`)KRWY6Ze?-;00031000I9VRCc;00968WMy<=X>4-<0096DX>)URWn@!zaBysS +0RRC21a4t%WdQ&I010q%Wn*b`X>V=;00966bY*gFa{&MW009bNb8}^MPj_x*asUAT{{R6FX>)URWn@ih +b8TUCV`u>gbaG*Cb7p07000000SaMrb7gc-cWz~J0RaF10SaMrb7gc-cWz~J0RaF1009qfZ*E0#bzy8l +ZEtmMbaMd;VRLh3bWe9~WpV%k2y}8`ZgXa3asm!%b8~fNWKC&vZDDj{Xk>GBaBysSAaihKV`*k-Wn>^> +b0A?LXKZg`VQe69VRB(@Wprh7AY^Z4b8aVeAZ=lEV`w0BXk{R2b8~fNWFT{OaBysSAYp85Z)0I}Wn>_9 +Zy?Xk{RCb!{MTW*~ELWo~pJVRLh3baNnNZ)J0C +Cv+fXadlyAAarjabZBKDb9HSXZ)PB2b8}^Mb0BGMAa8YaaCLNZGyrpRX*x_=Q!#aTEoW*(Ic```MlDZc +Wpq_lYga8cax-;PLsK>_VNqyvIaf7iEjUU=H+KPWn9pVPDUj-jS{g!5rU|rGGcEl803FFU5(GGwSf6hN +(xNbXn?;n^t+ch=ZSc3QE+NQrJj4aisiv`r9x_IdjUQ$J000002GIuvbY*gFa{vGU0NMu(X>)URWn@!z +aBysS00000xC;Yea&!Oy006lQ1a4t%WdHyG0K5waWMy<=X>4-<0002J3kh&?Wn*b`X>V=-00001pbrXR +b8}^MPj_x*asU7T0003HCkS+MVQzC~WpV%j0000201s|&Zbfl*VQfKdZ*^{Ta{vGU009nZb8~fNWKC&v +ZDDj{XaE2J05kw|b7?wET2nD~cr9mYL^*C)P)03JV`X$zRclu*HgYp{Q$tfWEn!h;b2(QvW-T~MMK^Z< +AOHXu%am^tlg}6qop{{FTg974FaQ3n`}K{nn9PGH_DcZ;0agu`_oR6wvcum54rF6FkJew+k!36?Lqfl$ +`8gF)R2-|n!`LRkztQP;3W%Qi%!_9htpQ3t>=3qD6)+-@LI6MnH0sE +ektM3d!V}o0nEa3l8<>f1KA&4t&LI4m}^5aI1iE}_s79eO?HmEkSbfMtWb&n35^vCNG$%?ywDnvz}K{0 +G9hl&cB^sg-3J`2zr)xjz`xPycM6D}`pk=G7OeqFKI{;-SrsrMkU}5;FWB;W7bg;sK59Oe@c3K=fV3eR +7p&1RS^QDdq`TfM1OfmAZf|a7*gwADFAe3iZ1@l19{2t5VaJV^T`{fc?xMUvnKPbj0R(ezZDp`<(~tJj +3|i&b2NlXOR2^DUyWY#wQk^*F-L`Td370(4qMgjGn~{4aFkgwNr28QlFe*-S#jFZ=4d$x=UULI21Z8+* +Y#{__VRL9B24rt+Y+-UF17U4&CIoP7b#p5OWMOk?Edyk4bS?yXWpZyY18;6+F#~jWZ!!gRXmVv`GX!RD +b#gQWW@&b1H3M^Lcs2!dWp-t5Hw9&BXJ~Xd1a4_=WjO_7VRB`3UIuJ$WMOk?UjboZ0b*hSV`BkiWC3Mm +0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku`Z~<{~0djHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX5r +D{{BQuNq?vw$uLzi?1~hlkP@ao_$9uVE}^UN!R2B0b{Bo6zH)>$g+grvznd|(VVK)`s##^Jh_COk!RL4 +N<*rD#rE}NPvxSnUK**8Le1-kltSZ7azFKgf3Y*(iUtA%ba`-Pu?^n-fFP~dpvnj-AyBKaJW)+{-ce}5 +$#DguerIN224rbxWpi{YTdJ&3iT??W6$?l#{@A?G8j--)v|TbGZq;_HaqHbkz9SbZ=!8X@=Yuq$20sb< +4l#S`iz7Vef}@Ca=a#qwUj=h;VPj<=1Z8+*Y#|15b#HWKb0P$2VRL9B24rt+Y+-UF2XJL_V`Xl1B?)0| +aAk6HVQyq53Sn?>b98cVaA;*G2x4+!V{2t}OehFqa$#d@Wpq+02w`({WpZhAYbpeAY;|)h1!He*ZDA}0 +ZE0?Gb1eg8Z*(pNb8KOAXfFhMWpZyY18;6+F#~jWZ!!gRXmVv`GX!RDb#gQWW@&b1H3M^Lcs2!dWp-t5 +Hw9&BXJ~Xd1a4_=WjO_7Z)|UFItg=SZD~VqY;SHm1Z-tay|%gb!BsOX>V>n +0%3GO0$)Kv0$)Nx0$)Qz0$)T#0$)W%0$)Z(0$)c*0$)f-0$)i<0$)l>0$)o@0$)r_0$)u{0$)x}0$)#0 +0$)&20$)*40$);60$)>80$)^A0$){C0$)~E0$*2G0$*5I0$*8K0$*BM3UhHna$#d@Wpqqi31VSmYg24t +b7))&b8$j)VPk7$bW&XfV_|Y-bY2E*Z)9O}XkQ3oVPk7_X=7_(0byYQVqyVfV*zAj0cB+YW@Z6rX8~wv +0cmLgYH9&%YXNL*0c~voZf*f@Zvk*{0da8wa&iH4a{+X80d;i&c6I@GcL8{K0eN`=dU^?CLULhaYh`py +djxQ4aAkZ6V?uIaV{2t}Qhfz4R=epU^Z_oR6wvcum54rF6FkJew+k!36?Lqfl$`8gF)R0#X2SaKRY +GgJn%Xv1$>f_VvG%;GuzyszPjx|liD+IRo}000000096000000003Ky$5c2n1xg(vzLX+s=TnOlIwpu5 +x<(TMczEDkZ1)BN1axJ1bQsH&ZxWNw7!I9y+{RnQn@2DI{;m7Md`c4>2IVr*pq1Y~7nX#oXeWo~q70tIbpY;0)*31nqs +X-#QtY-t1vV`Xl1X-#QtY-t4rZE0h2Zw3iuWn*bgX=8G42MS|lZggo)X=8G42n23nZf^+)WMyM%PGN3u +3JGInZggo*VQy~=1aN6%Zwv@zWn*bjX=85<31ek$bZJm&V{Z-xW@T-3Zx0D%Wn*bZWo>kC5DH^uZggoz +Wo>kC5d>j$bZ-)0UMA(m1w0!?L{VGDpk+OvDhHAKF%fNXr25$w;Zs!uJ_LGYa&IsLZ*FBV19W$9G6i&K +a%E*R1ZHn_ax?^HX?A5b19NG3HU)EKc4cli1!ZYxXmmIPZfS01IRalnK>}YwLIPhyLjqq!L;_z$MFL+& +Mgm_)M*?3+NCIC;NdjL=N&;U?O9Ed^Oafm`O#)v|P6A&~PXb?1Py%03Q3795QUYI7QvzR9R03aBRRUjD +RsvsFR{~#HSOQ;JSpr{LS^;5U0b*hSV`BkiWC3Mm0cK_aXJ-LuXaQ+y0cvUiYij{)YyoX;0d8&qZ*Ku` +Z~<{~0djHyb8`W7bOCjB0d{r)cXt7Jcma8N0eX64sv{KWu}8?Vgx|B8o)FQTs@3}HgpNG9gq@LR)-*~8 +`>9xR8a*>q2D50xZ(4$R31H0PIsUw_;fcDKIn~;D0RR9100000{{R3000000cK`4_D#7GwX~6yKc4{fC +nyi?lPLTMGtH94V>wGO=1p$i8JMp&h7jF2B +z={du0O&G0&#r1CLJBFZ06hf(#5#SRxw8U!bIFfg*5RxK^~=*jK)}Ad3J +OG^S@OiTh_O-%w{PEG<}Pfr40P*4J2QBeY4Qc?n6Q&R$8R8#_ARaF9CR#pOES62dGSXcsISy=*KT3P{N +VF6-d0b^qUWMlzlWdUYp0cU3cXlMaxX#r|#0c&dkY-|B-Z2@j>0dH>saBu-}aRG920dsQ!baVlAbpdvE +0e5!+cz6MMc>#KQh>TceV>4NmyOwH13hJBTu$F{ZT5Vfz5z=cU#uHd8spTI%43qqz#IMhHC7qMgjGn~{4aFkgwNr28QlFe*-S +#jFZ=4d$x=UUL8d00000002J#00000006`~eV)0q0(o=Ek6qT`tOWJT(?USNzPt(#xCj&gl+*Wd>h=Ype%b?272^{p2nM9k9NV(jNn@cR^G9g}K+!Jx@Lzn5}xgo%8-%))Y# +k9jx)*&ki4jZw^)YeOVo@@XB ++#WAdR)2C|*D$SwhJOvD$-0{Gfin@`f_VvG%;GuzyszPjx|liD+IRs000RR-OjQU%P((>bMN?D*Qb$4|01E&B0MMWh +0S5~J0RRgK000XC0szR`2LU-S0MVci0S5#C0096100000 -----END RGB CONSIGNMENT-----