From 9e8a39ce2ca13c003b3f044e78adac2d4874c681 Mon Sep 17 00:00:00 2001 From: Douglas Lowder Date: Thu, 25 May 2017 08:37:55 -0700 Subject: [PATCH] Add ART library to UIExplorer for iOS, with sample and snapshot test Summary: **Motivation** The ART library is part of the react-native repo, but is not included in UIExplorer and has no native testing. This PR adds the ART library to UIExplorer, adds an example tab for it, and adds a snapshot test. **Test plan** New snapshot test. Closes https://github.com/facebook/react-native/pull/13621 Differential Revision: D4954082 Pulled By: javache fbshipit-source-id: 83e21c5df1b766ff6ca9f8914eb3382f7323627d --- RNTester/RNTester.xcodeproj/project.pbxproj | 77 +++++++++++++ .../RNTesterSnapshotTests.m | 1 + .../testARTExample_1-iOS10@2x.png | Bin 0 -> 74878 bytes .../testARTExample_1-iOS10_tvOS.png | Bin 0 -> 60279 bytes RNTester/js/ARTExample.js | 104 ++++++++++++++++++ RNTester/js/RNTesterList.ios.js | 5 + 6 files changed, 187 insertions(+) create mode 100644 RNTester/RNTesterIntegrationTests/ReferenceImages/RNTester-js-RNTesterApp.ios/testARTExample_1-iOS10@2x.png create mode 100644 RNTester/RNTesterIntegrationTests/ReferenceImages/RNTester-js-RNTesterApp.ios/testARTExample_1-iOS10_tvOS.png create mode 100644 RNTester/js/ARTExample.js diff --git a/RNTester/RNTester.xcodeproj/project.pbxproj b/RNTester/RNTester.xcodeproj/project.pbxproj index 5962d20ca80..6a291b5ebba 100644 --- a/RNTester/RNTester.xcodeproj/project.pbxproj +++ b/RNTester/RNTester.xcodeproj/project.pbxproj @@ -86,6 +86,8 @@ 2D4BD8E51DA2E20D005AC8A8 /* RCTComponentPropsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 13BCE84E1C9C209600DD7AAD /* RCTComponentPropsTests.m */; }; 2D4BD8E61DA2E20D005AC8A8 /* RNTesterUnitTestsBundle.js in Resources */ = {isa = PBXBuildFile; fileRef = 3DD981D51D33C6FB007DC7BE /* RNTesterUnitTestsBundle.js */; }; 2D4BD8E71DA2E20D005AC8A8 /* libOCMock.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 14D6D7101B220EB3001FB087 /* libOCMock.a */; }; + 2D66FF8F1ECA406D00F0A767 /* libART.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D66FF651ECA405900F0A767 /* libART.a */; }; + 2D66FF901ECA407E00F0A767 /* libART-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D66FF671ECA405900F0A767 /* libART-tvOS.a */; }; 2D8C2E321DA40403000EE098 /* RCTMultipartStreamReaderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 001BFCE31D838343008E587E /* RCTMultipartStreamReaderTests.m */; }; 2DD323DC1DA2DDBF000FE1B8 /* FlexibleSizeExampleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 27F441E81BEBE5030039B79C /* FlexibleSizeExampleView.m */; }; 2DD323DD1DA2DDBF000FE1B8 /* UpdatePropertiesExampleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 272E6B3C1BEA849E001FCF37 /* UpdatePropertiesExampleView.m */; }; @@ -215,6 +217,34 @@ remoteGlobalIDString = 2DD3238F1DA2DD8A000FE1B8; remoteInfo = "RNTester-tvOS"; }; + 2D66FF641ECA405900F0A767 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2D66FF5F1ECA405900F0A767 /* ART.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 0CF68AC11AF0540F00FF9E5C; + remoteInfo = ART; + }; + 2D66FF661ECA405900F0A767 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 2D66FF5F1ECA405900F0A767 /* ART.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 323A12871E5F266B004975B8; + remoteInfo = "ART-tvOS"; + }; + 2D66FF8B1ECA405900F0A767 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 14AADEFF1AC3DB95002390C9 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D383D3C1EBD27B6005632C8; + remoteInfo = "third-party-tvOS"; + }; + 2D66FF8D1ECA405900F0A767 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 14AADEFF1AC3DB95002390C9 /* React.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 3D383D621EBD27B9005632C8; + remoteInfo = "double-conversion-tvOS"; + }; 2DD323A61DA2DD8B000FE1B8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; @@ -445,6 +475,7 @@ 27F441E81BEBE5030039B79C /* FlexibleSizeExampleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FlexibleSizeExampleView.m; path = RNTester/NativeExampleViews/FlexibleSizeExampleView.m; sourceTree = ""; }; 27F441EA1BEBE5030039B79C /* FlexibleSizeExampleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FlexibleSizeExampleView.h; path = RNTester/NativeExampleViews/FlexibleSizeExampleView.h; sourceTree = ""; }; 2D4624E01DA2EA6900C74D09 /* RNTester-tvOSIntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "RNTester-tvOSIntegrationTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2D66FF5F1ECA405900F0A767 /* ART.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = ART.xcodeproj; path = ../Libraries/ART/ART.xcodeproj; sourceTree = ""; }; 2DD323901DA2DD8A000FE1B8 /* RNTester-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "RNTester-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 2DD323A01DA2DD8B000FE1B8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 2DD323A51DA2DD8B000FE1B8 /* RNTester-tvOSUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "RNTester-tvOSUnitTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -495,6 +526,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 2D66FF8F1ECA406D00F0A767 /* libART.a in Frameworks */, 14AADF051AC3DBB1002390C9 /* libReact.a in Frameworks */, 147CED4C1AB3532B00DA3E4C /* libRCTActionSheet.a in Frameworks */, 134454601AAFCABD003F0779 /* libRCTAdSupport.a in Frameworks */, @@ -532,6 +564,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 2D66FF901ECA407E00F0A767 /* libART-tvOS.a in Frameworks */, 2DD323EA1DA2DE3F000FE1B8 /* libReact.a in Frameworks */, 2DD323E31DA2DE3F000FE1B8 /* libRCTAnimation.a in Frameworks */, 3D302F221DF8285100D6DDAE /* libRCTImage-tvOS.a in Frameworks */, @@ -565,6 +598,7 @@ 1316A21D1AA397F400C0188E /* Libraries */ = { isa = PBXGroup; children = ( + 2D66FF5F1ECA405900F0A767 /* ART.xcodeproj */, 14AADEFF1AC3DB95002390C9 /* React.xcodeproj */, 14E0EEC81AB118F7000DECC3 /* RCTActionSheet.xcodeproj */, 134454551AAFCAAE003F0779 /* RCTAdSupport.xcodeproj */, @@ -754,7 +788,9 @@ 3D0574901DE6008900184BB4 /* libjschelpers.a */, 3D0574921DE6008900184BB4 /* libjschelpers.a */, 3D507F421EBC88B700B56834 /* libthird-party.a */, + 2D66FF8C1ECA405900F0A767 /* libthird-party.a */, 3D507F441EBC88B700B56834 /* libdouble-conversion.a */, + 2D66FF8E1ECA405900F0A767 /* libdouble-conversion.a */, ); name = Products; sourceTree = ""; @@ -802,6 +838,15 @@ name = NativeExampleViews; sourceTree = ""; }; + 2D66FF601ECA405900F0A767 /* Products */ = { + isa = PBXGroup; + children = ( + 2D66FF651ECA405900F0A767 /* libART.a */, + 2D66FF671ECA405900F0A767 /* libART-tvOS.a */, + ); + name = Products; + sourceTree = ""; + }; 2DD323911DA2DD8B000FE1B8 /* RNTester-tvOS */ = { isa = PBXGroup; children = ( @@ -1056,6 +1101,10 @@ productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; projectDirPath = ""; projectReferences = ( + { + ProductGroup = 2D66FF601ECA405900F0A767 /* Products */; + ProjectRef = 2D66FF5F1ECA405900F0A767 /* ART.xcodeproj */; + }, { ProductGroup = 147CED471AB34F8C00DA3E4C /* Products */; ProjectRef = 14E0EEC81AB118F7000DECC3 /* RCTActionSheet.xcodeproj */; @@ -1208,6 +1257,34 @@ remoteRef = 14DC67F01AB71876001358AB /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; + 2D66FF651ECA405900F0A767 /* libART.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libART.a; + remoteRef = 2D66FF641ECA405900F0A767 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2D66FF671ECA405900F0A767 /* libART-tvOS.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libART-tvOS.a"; + remoteRef = 2D66FF661ECA405900F0A767 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2D66FF8C1ECA405900F0A767 /* libthird-party.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libthird-party.a"; + remoteRef = 2D66FF8B1ECA405900F0A767 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2D66FF8E1ECA405900F0A767 /* libdouble-conversion.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = "libdouble-conversion.a"; + remoteRef = 2D66FF8D1ECA405900F0A767 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; 2DD323B51DA2DD8B000FE1B8 /* libRCTAnimation.a */ = { isa = PBXReferenceProxy; fileType = archive.ar; diff --git a/RNTester/RNTesterIntegrationTests/RNTesterSnapshotTests.m b/RNTester/RNTesterIntegrationTests/RNTesterSnapshotTests.m index 0d177887daa..f88704a7f73 100644 --- a/RNTester/RNTesterIntegrationTests/RNTesterSnapshotTests.m +++ b/RNTester/RNTesterIntegrationTests/RNTesterSnapshotTests.m @@ -39,6 +39,7 @@ RCT_TEST(ViewExample) RCT_TEST(LayoutExample) +RCT_TEST(ARTExample) RCT_TEST(ScrollViewExample) RCT_TEST(TextExample) #if !TARGET_OS_TV diff --git a/RNTester/RNTesterIntegrationTests/ReferenceImages/RNTester-js-RNTesterApp.ios/testARTExample_1-iOS10@2x.png b/RNTester/RNTesterIntegrationTests/ReferenceImages/RNTester-js-RNTesterApp.ios/testARTExample_1-iOS10@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fc8d91df94580fdf375ce5111165d1969d554e9c GIT binary patch literal 74878 zcmeIbXIPV2)HeErAWfQOC{k^xqcl;f6h*~?Vg-~IWdN1lI|-mzXwIk%7-F=b39n+1YjNwb#1Wy-V(%IjzUXvxx_S zAim?r4xfV{HXH;ABy(|qlpBSaZQw7I>p8tcP*$V(H}DI$)3Hmg5G1r6{)0MxZreCW z6u*Ah-~#xY4g3NBaW;b=J6HaO|DCHjvR(fY1nEG>4gCJZ#n8a*^iyx=G=+NQ|vr4e2Dj;&w5uiL0$2g z(e0BcyTct6@rRERC|~nJo!5Wa{`=M8n>$tSzWaLCG<9jKQMz?&OG}HHqi4lbz_3l? z^#->pdOKq|Gp(n}C#}?Hx?(Kb{|X+(?}S5(_d=W>oRiNDyWGocztQkLO-EH4Qb$vH z6*yH_vfWaXhJ*~A5|SDtSw%oH>I~FMcV4MM^-K(!4Rd7;k^XJ|dkJwtXpN4U)ITaP zOUgnj_-M1FKI`^sy?*nC&j(FVTeYE%G4sINF z?oTGQsA|ewM;aqZz2J`*Th71W3Ode) zxmiV!!kUhglJSRfQ@-m4K9DZ%wJ_1Ld$U3)B$B$Pzdk8H;HJ63HSIx;74^WVbAHyx z+$#$9)kceqnGi^oJQ`+KoZsC2u4|xzJ4L};P3ZnYISfcd*iV(I_l16V#?|4w1}hKh z{FdIwi68hNbc(I;JnRePAL4zv++_g^W3;@>!cgN%)<3GS$X6pb${J$U#P2doHne!beb zWfA!twqGTn{{sV|oMX*pK)OKo44*Alu=hL#Y7{haEkFqW1 z9$6$%dl$Qi6%NynX9_4|Dr6_!#k>k%8j%v<>p!U}5GgUWRJ2IEYw1Q1W6V}9_eq6I zc#d#P1y%*vwbXep(#B$L3>Vb>O7F3l_@#`NmS$KPQAw}Ds92lqZsVg-nozuY;%W+I zXtv&%;7{@kpXDR?$d|z$JiH(rck^;;lktH?a{l%d+|>t1R(-D zo>EpdS?)C5v&58g5D6$nDX?{0MVl2;Y2OU6^WObSQ`m`?^xANU@jhwc{h+`9ryc&E z(ulQH1kEvlh)VZ1FB*4&GL)ra?kT$bITdT2mP<6TzOF3{jWnNh?Vfi@M9%?XW^v=d zQb{5Tn>tmW=(s0HOtc~`>uSHgGW(4KFE!sMCCOaSp6}OwRW+YpWxa2d;8#y*Z7H{B zE}fSWsgN1i=-Aho|0I(Shh6O89NgrXSYp>k@9C zO9l!(vX<-zn^^X}ALuBN9pA((Z!+PwUbpZ$qr=mmxU9x=gF*Hkd)usF4}~2n|NP7H zZ~I1z{Afj|#Z?luUqiE*Ju~)n8=!*Oej}tR?C?U*!a$Fd=3rgrLLH5<*v2%{lt0vw zy+ozac4wF81$4C}Du14+x6yL_x+R{zlsKWX^tEbJxEMBD6stFvX0+Hc|3RLa=R+#A zcQ0RxtNLm}^&MNJe4PATKPs?*7idjlmL!$s#YfJ+j7-yBp3<&bYEY@TJ{>>GF)6Uz zXOyw$*&?$^)p8RSJ%=@Qzv$n0OE{}urTrT|FzIrUVvI7hM8i%w8a47@KcxD7_&`pa ze3;r=<}s3HG5u7yN#af!?MrU(%6fYZCM5y#>REIYyLF!{0JV$l5L0Ng)*E#Cf#+~n~Rpmb4DRLyDD`FuL?D-CkJ7cqr zW2T<<9+!02;uNz-FV)L0ev&tHml-ZhTI~Ed|E^-Zi+-)DYW$W;M8NW^r1@8L?Rh=< zH0-zNfRd#NDeMsmoA%4f&MBkI%;0C~<~@A4T(Xw~xo}5gvzaHw-97%Gt%a1$uB!31 zRZiQV2QWST^duaMuwRYLHRm;&yv!FeZOYxrjk1+RsPSjo^UrA6bB}EeYeSQlwu0Yw z2j+{7UJWa}G8FOAzp)D^-o#uQTVDEjpe9plk+57Gp{?Q7(6qepA-2{-LTh4!wzD06 zSgy{J6Joiwjxb=99-zi+B9pSTM_RP(zv9FLvzaPaRVdSxXJ~qYXQlJSGed6@m7&_6 zQvWwQ{N7xvFUDd#e7&wD74(uGoSgfTA9s4 z_&0{Ubt$ONz>L|YEH|xWKb*!CRG!K=3;xcxSe)A;z)%$8f_}ZfDV>r zjr12gyE6@);*W=}-BXHHQQM_ZWElnozqDw!^{BI9HZ$G<3NslwY)oC!lGJ9DG)Yt} z(W;hcO-%m-sZ1gF))yK_RiIkYn$fY+$n1)lu8%I2W6Y)Oi%oGGp`_&?;V^Sgf<#pz z)qP~vS$A?~%kxw%`YTIfzJJ!3#}dmK=7<8fy93?3wvtwMl=BOhpV^%WhTVj+>CI9$4h_%&jTc8rEOgLwvxsaNdwu_x}9dwWd^JEel1GCobAUmkN_ z7%|sqjMg4hORojy+u5Zrvmt z;g+Pb3o7hWS_*I(AvIAHxA+x`FAZ078in`xClWjs{_g95w4{+&?HaUma(J@JsE`yz zyM4KYSZ+NW=%s{G$XZx@usoqnh)~MHy+Zf?zO~ATaIuKyznHqb5akZM!y4>IVgHXi zU$PU5bEnG;;!PR*N7QTIZJYS$CGY+IB(*qCb*WqK(3i%9r2U&5&p`{-QVZ3&b$4`# z9I4KZJ++hlj-y?J`aHPhDT8IV;k{SGX2W_s!nndmeBLpRqsA?@XDp4(h53#w*!THZ zP{eTA_WGrDlN}LBEOVjUkAphIU-ruu&qzz!e65@ft(q;*Zd#~6sn>KDx0l}qOlL!4 zf8-n~J83D_D7#d(PkUitmJ}H#rVz`O+(X^NsyM?!57uTHl-~;Y_F|bdH0PZD zXg02*`0Gj2W9x;V0vxjVX^2tBk8{K_HEOf;GEB%8Ihof@>pzo9YN$!Ko?k$+M8i<`)&4l!E?L@o!PdWd0&7{+g3%;xIRHk&_8ko`w8| zu!~11m2~0$jEZs0xsM^@5O#zZ;Q#hT-A>~Olho1F%(tEG&NfnIjNeQ>poPqyrIB3P zI+~D5oI}DL648z5SpkVO&BcTNKhg#kryq>&)hwJ^S;yDKcWOZ%@+HHjT)tpa0P*xc3$hG`BCP13l;V*RqTCl)QWIf9F&pn;1<@}ZU zi;=0~Wr9Y}tk|IQy(+Ao=)#BW1*&(I0Kc;Vent(*<$;{_T;rgoz z#q>6dg+|nhAY|0e_(2PQ$j|-p5mjC>H|2x>+>LAUs#QALWWhXZ)xwTfCAD-LtFtxk z18OuSdIMO6jMoP<`SxO+rZb<3$r6t6+Gamq>K?1`o_<`sdHQnq#KLH%OOym;x%io* z!FEuT@8AN(qHM`l{$cD!2+Q;gu$eCP(pb=JcWw*6$}XKk;MG~4Y@Q_=c0lUY{0!@TYrsdABIv^W}#om&=NlzVf^6eaGM zf7B^#cSe8roe6I75n8kaL^6TiiB`^%-o{|byZ1WueQIH_J)m5V3=#C!R&}k#ivKsHf?CMCJI3-5;Av95egnTsvAU zY3E1D>HZ9T#s=LKKHR#2E(3|Xx$PY9o$F46Hr*djYmPFAjhW1LM>5xZFJjp%CfQN^YesO;*?7gJCz}=fO$tliPrv%x_yHEd#*4n$x9V%}mUA_?eoJ^<2pFjzE+5J0Edkr;UcElB7k9 z?h!-@&Wso0MF+H9rB}Ll9q!)gwSP{1a?p2H9ygHkN{-04iz|^mO)YgpcXp+_^&4>3 zCQQV6o?hnz!%&Mkx0nLpw8lEjliDr)CcZ+PE+EXZYkc#?aNpD^i~Qp#!R6@%#o8F4 zL^_u_*>wPaAqnhXj0eGz5Fro8ZeM{TjZm9?;8JpqKd=h=GjOxlHU0x2AUg-x4<1}2 z6ye-^smaGsqG;%Dc5#V&8eem<$LNYP;02CLk#pH<RhlYh%VIPQ9 zS7?;+Bkn>`&q6^L;f%b*|E5yH`HIBOixu>-eEbns4@$LG!*(7pwmliWq0~Kl^n~kH zSR0WnRt!t~XACPQ=Ae?Ie4~byE7avbV^86>OU4m$Q7n_Js$j|z50S9S23_I*Z3ATa zv{HdJIjq!0)$t+U9t+0YMY@`C*e|zcq}aHmaS;4NN1J_%2|WQs7y&mdH?j-rKq&A- znj3{u;5H22vXTj6tJy9M@fRsuhp-BPAKNxdLo(Gj&a9Te6tlDA``T;kzt;c-ZUYJ1 zjQQ@Zmf(%XL8|1g7}3?X@81Ly%AS63-AbEKVBdN{=(dTNk}j(c;Kv_=g3trZ{++8O z6inIJdYx=7t^ex%dNwx9`V5XEt0h8C>OkTS_Vv8*DB#3nhjbwQptj`I5_l(WE?iA! zcw}Mgs(-;B5|6nq z@bw6**Kh~7lbqX-u2I3T98ZJ z&=gL5Yik)Ma#H%SlHiD!yO|j?q_oS|z)a$Rq0w!rjC7_!d)vf$cXz6rS;7*tRDJ6A ze2WRy0HLbT!MCpc`zN|Yw$^?iH;pdXbm@ApV<{>;)z+LHb?L%w%ye67S(*(o(oneV z)S)3d?RV>X5nqe^Fk?doG&&LEP^Py*dKP8tKvPoN4LQ+v%aglJo6r zLlmQ9&ev!9V&p$hG!k3e0*hMPYNW`j&-cesLk?y|4!$+LdRnn4(1)C0^wTW!593S9 zO0R!)oJt&;%cRf`QTAv@mb~i`s5LF)oRyvPV$hnF?7KG@?2&2RA2*RwV_7e|6reDm zu8>qV75kGeq17;>ugs05GUcvEEH(61&2935>;^?$BT764rcFLiBo4^7KO55$t__id z;wUvIoWj%yWX{j-o|4CBFe^(f<}MB@{(}CRMSVyA{f3QDbvB>>2*cr6xceRVZ<6Er ze&w_RclR$|lGWLrUyKrDheKM8ZyQH%XHv|Te$rFZPbe2(`sDl>*R@f_M^3V*ImFyR z8_M;NN(iNI)!&u63oKkZ&>fJR#ZU2^nc35jV(4CTVL>A`+hf$ZEY>*HxM;g~x0%CF zqLS;wd->BB<`2`Shl6{%a9teL#zn@2(Q0gSWOh}4*69P@M;yfxA2;kuZ&q=r94UQU z`c7T0nm)SsCuQqp6SyaAnElc*Ju!d%LVHMR=Iod;(Rk2-OQf}bt;I#7qKf^?$;9DJ zDLm=9S-FjC-73p6ep+d!&DGm1fU9G)BjGbd*_ES=Ny5){W zj?@|bOZnWVetGWVXI>VO+n77LcCxZ8{-@}#-ReV9J(B}2 zXp4NNh?qz4@i+F#8XiAQfsE>`S+k$@X!U@{&UFi2Rkt>n!ZK^u4Ye`)PDD023+i7$KAv zY$h=1XiS|<%=VHa`s4vP5>j4k5r+}1Ur*U$ouc_rnB`_*XE`GX^&cfTXO}6r&Q>~) z)AsUsRCMoAcW@JDl-eqbS|}-Sd2l-jCHy8}&2p-NvB2!Ra^PoQ=Fe=8K;rzSB!6NE-iWx1Oyxj5p{?la!cBi{yt;mcN5N<{&R_yMLi0^^Dk_GNbUu>Eh>2 zGxi?b$I%Ws@vh9FO0D;j^(+2RX&uO|iZ`>+tWsku8+sOr=`i28Uccm6> z&Uhcbb83;ob~fbGrP*;m*)S#X4v&lS<|SWGG7GJe`ckKJgRYY|$%uH?)Vw8>nfuN} z$&Zkt8dA2D(}Bv?W?l)J;3b`4?ElGvsn#4EIaZLbRyuXA^ zbKyZqH|9W1;V1uwp9~iH%Rzes`kP1NgTp-~IqjZK_MIFw2b>7gt4YEpI5HpmjSW+$ zZ0zXb`%O#xCqb)t>u6jy`#jte)EKZ*WOk^mWlfUxgA+c6vPBcYbeW>)(W#%*zgLF; zT3LEr{G!R3S=%Nyjwy#b#&lrn6Bcbf)~@A#HF61$sl02S!X*E+6v%I@hexS-j{skQ z^0yESuHj=9oE1z+p5&I31JzvaE$T^;aYB!yZ2Q`_;AIv&ZTA1+m`NuZmE zWd-}I9LqSMH7*2X`Xze3Pw?VH(kX_w(#Vr?u2rPzbPwHGNPR@FX?w@k`v)5)CvsER zo417~G-{uK+z!y;zH^6&_oKvypK+YG)1VCgWZQZ-a^|L|i`}Z)eyd8xDr2Q=Tf@k) zO%#9G-w(E8?%Ag@f3~Ko?+y;nQ13kw{1mdTrzs@wh|3+g!4by|OOGkl=g>~y3;jH< z&(a=wU2>4z951F7vr*=>Rv~%3#qP#QJ_}vrfd6WyxccDmB=yLfot`EBXvb*`d{)4Xi94dUMh9hFVf z(>@RedhZa-b)_y|uk~v1NGg;0lgm-sD$rIF9 zx|p8~;%P1%@uIvS#0mI;!BSetF9DBFIh?s-CpuL!%E#8LUuMoircnT##|uJ?66m)x zsM$h)CVQ4OR`F$X2}2U)RKj#RsR!UI3~51qoawtcf5CmWZ~mjo+-1Bs2T0;Q->+e^ zmRg*V+&HBXp9)xgjA5*P2r4ft%^1S(f1Tr9L-AZ|+OTx>%#*3{V76WtMqg9}z_>8( z1uc(ddvM{<>a^Jxj2`U_Fn*U{9?QCzro|m=@Ub2hEI7Oe4pTNmS{F2RA@MWNLXVWs zvECaq!ofTV1Oskd9p$!(I>4g}8(1wb=+G~qoODp*qEfT?A3B+OdhI_udB9Bb2wbCI z*EboveWcKAl%nb)<6nIQI2!bk2Pfq|5H?P<8wlpX+h}cp8eh}saQJ{JfkOm^xcj>y z{yhu(nOP?w(@{zCClEvhih|H)16y(tF3$B7S{*$k+l%7RaYQv0)98D@7sYd~^y00eIhzy0O=?X&B(=3Ns<5`or3V)^yY~+CD=R3C z`c%NN)pxU7m$RII8X!@)Znir?V<4|js9SwWKIuJ^(OmM}T z1IeK}V0x2_Oyd^cC3kyhdDYuvqRIq{+~EF#=&AQ6R9sYQ$eM}H3g6p*YgVUkB&6Ds zMTGrc;8zei?qJ8$(pF?w?LxiC~d0~GKdYT$W+$&N>@!83+C6o1fy2%~?^ zS;pfY&2whk*!j1y!;401o7;Y7*g^KDm+v@81`I|WrR@@|3^*O2G{x1Z;Vf$B_tjfU z3%qhO$$Iyu!(1i<2cE91c2Ca(l3U@p6IL>i-wx{@4yoRUinCuGDOfhIPVcng-QqVI zx5RdzD`<%o28-|mJqw1syy;s|PSPla8)wayO5vKtB!8?~z^2GXh7~Qc0fU(Hpv_~m z)BDW|Hxzg_?2y_}`PiR$4t;IKNQsx3u)@$j02NYI?@-LmHbZi1&{4jlS3b`a$*L^u zBaNM_AqqxG?T@)i`le;0TBfOV5DqL^`OVBIJO9d0)nL!D?kQ*$+_aLHFe(Hab&M*A z{de(SC8Zg)3m6Hn4Lr#cSgi$jhUAc$ep|bk47J+ToaDpQnFauZt)DyMmZTIC$ z9MwIM1YaCPr<#bK+7!okoX22?cB!{LosQ z>V1hUxeW_Kf(xZ6jTleew`qjiQX3Z@`*$3waa8DetK8zBMUjQ)8Sex@S)6LjNS4E8 zZd@Z%^)?d!@9IdqS2vAp9Rg>@uwu~BMhVW z>2*${{@k0UZtRJE+d2scu?^r=aUPN0OwO%iNjor-d zirej~Okum=6-ZUnITFha3kTTE{(~cD++XD5xY;ld_EP@>bIX0Ho!ZlqFI~iyRxqHA zXDG}(D2Rg<9>!TX(pE>?(AIJbpQwvb;47r`Dzx>Fa8jvnE!j-+9lz~=&C!C<==b>K zPjT|_wGM)dN<)p#n6gTrr4x{y{N-yAf3Wq1@m>z8el501nLZ1)EklxKp5C%%j_&7u zw9mXwA*L}m+|9!Fhj!yRi%4mMT>eTSl?8!n#vbSz{YXdO^k(9)g%5XSwM*m3Gv<8X z@Ju~BtkOWurXbHN^n3Hh^lyiH<2NgaaMU?qV!ln>%1#4u+&s5V!_t#z=|}yl)e6Rq zCH`&}j(<0X5#TI7nI7GinwH8Fs1$<72=kU*xspYQUNSXHP&ae%vYnB4T|)%Pz8%V? zmb`zjW{d%6iCEfTCb{yt+6|r{5Ly)ZaeGjbo9p_;y1iy*wl^qi8HxNlLU*o<#t>UP zK1%$!1|u_04Y97NGk=jVn$P9J0?a?fuFh zC2W6K>%LkYlyf8N*i=-}9U)biHa@Q7l0B2wn{zswPVrXS&#pDpbQGXW{IC%9o$wm7 zUrs$GCAWxQG&=NTtZk^}e9&1H@ooNo<1vCA!>+Xuvmw>^gbJ2PF#~GmbLB~D65$BH^9$Q=VDh$A^jdcLykq^I z|I5b3UwGG>kALI~80jC4AXu^tBIwLg8L(g2g; z`_!c3^%X}lw-@tRcCFxsTFin&Q4_$=%6V z*yG?v4!C-ZS>)6Zm21_+Q%Dn`#rMiI(OgDb)64oNL|7&i_<4LI>c->Xjss11Bh`0* z%MZ3R^PTf5y0HJ=U%xJS6*bri{N#pWel^t>Va!wK=y$2#c4LJ*5_ge!Y|te4yI@0( ztgmWJbzLDrJZ6S1d{Z(yPvmKfb!45)Fv;j=-yu9v_S5*I-OiBBE6TN6$^0)Wbe{7W zsBu(#jONOL4J?OHu8kFPmT-*c)>E?faMyUNT~g;7@Uim~y^Ql2q(2Uf$$6HPsk306 z;1G~zv>%3iv7%V(+=!`~m`GnX-+49m>QPfmiK}L%oC|xT#(eC}B-8@rrVFm5b>85R zVlQ)r8Kp~kJ(RCM`A*gQ=r4)XTlA0AKlTJ+RA%4BTaHrDi&0+XgAt|b^P{d$vc<9< z+k2e3lA}=+<67@8ZSFakOEyb*!E(QD04Sj~&WvU`q>W|CiA~4ixp24R)c&T@Xw=an z;zgC;_M0^Kvi0_H(tceb(!Py)9XJZRLKgl>=B!U>J4r*gU4%oIQ(f0S*Fu$7RsA3Jnktyr{ocb|N}`*xh{jVm^*d8~SuJO+uB39m5NF6ID=9CMVjSvAJo zyy9iIh1vO@i<)HtuS;J72%lCt*p;@_S#fdkkKl`oqbIJDcneky6 zansg#Z|dB#-eX0}VgH7`S1*-JTpIUd<&cS|w6Wv$;&R#<*vJEuPafqmM#@qntiGB? zR(6UAuvU);Sn)yVniPRv(&Hkt?8;nk(%8KLS;B}vp(30RYE_$O$*&mwWa`9$D*Faf zmXU?Op1<#u^6>kCk&YwF!gXO*1o5kKYHgMuGxn_1=nv%j8Lu#f^09G!@-8s_aVWoB zx9W3Qswj)nwSP%o-(bu7Xdo!`cHCO|kV%XB?E@QK>z+vJ_E}4^z?r)&B*Vk2Bz51j z=Yr8~d0PjKPg5pk{vmH;OzIT})b|BwHraT(+CHjjkTp!a=73geUB2p|NQj}`rzu_t z7`O#y_#pu5!)glkeo%J{S$}S5`{32CW;8~l1y=K&;=Ydwi38Rj^y1=vEn4Q&gbJr% z_V%`Mq(?;M3iM0@#|X}2V&-sV>2tHMw`!17_YW&!2d%wl&Z<1GRexK$CvGsluBXk< zuj}^#%hs;t5b=dBwZfj2wJ3T{v&(xPj;W+`{D6?-1FsCAhi9URZBKRsfUsup_N#(} zwnNJf!I+GbuocKFZY(B`kOW$9^HYqH)TVxal$j@%5>*xJ;J`6Lwluq%aFr5rCbA*( zmJO?a&$j{BE+R6Zo@~Cn0O+IX1;F8AzH_)%ISE%{i56HJ|Icqbcl(gWAG$m%xi^=Z1kWy2g~VUM$hbC^fOv{6g2f zcBH!iM<_<~-Cl>{zHs`h^AiW{td@jnlDtA@k$bP3*us5?flIQ1k{{xdd`AyOW=hf9 zEoxwj_W3|X^{h(ILdwTmk~QRQ!b<6I>YhBw&`U}uS)-2$0pZ0#ObiY3u1ln&&%UbS zmf00+Ai|6?=|0e)e74m!=>1db*^S1#VHn064@bN}qcG(xX0~DE%;#l5&7R=%qtG2L zvBzN^1}(-Y$`|*x&-Yea?vA?(To<}WPIzxc)R7$SqpxVW_aEg6vV7(%u#zp=YRH_2 z`m)8ChT5Yc_>IGauw4t8Rq{h2_>u~#no5m<`TTJ)R`w$sfS^^cxeH*yKPfqXh;PsBuLXAJswCpkYh4cm<9h;TQ$?ZvEw>%;>lp1jnnUn6 zg+tyR;h(S&b2`!a(&kcA)Y%Vfb**EgiL8L)Ib7hE@0@L>l<$JIY#=78S4h!0?!k;D z<&&MdiEAq+iYlaN@*t)F-b0%NN;tC)CTzF&3_9AsBn?*un?@AQrc-f;P}D$8x}L0+u7ScH^{|aBdMh|wm$>EoT@P4j+$x*(6e=FzZS@d!%qWE@Ma^>o3zDl zcCFp?>Fv|KN9{#9T10JK7U`Z@F+JwZ3X9ggv9{c=d4s=Y(2bd;1$E<&ECGK746hBZ zSR1@R@1{ntYZNMp0z|Aso*b!2>ZL)vmz}rCCm}NzfV$%{3B`ksXAc{$1s3$rKY#|k zPgYdVk?@&(pd}<4apIC;4&^s9eu+}~IzENl$2mz2?Uv*zS7W2UCdFazwG6<^R?H5| zT67i3p5(R;HEzOeDhlDQJ>PCk%pzuyCtvuJ@*akJuA_`#-$f)U&@j&6$kxihD$81o;l5AGyH3=;iK$xx?f5@2+-ctjAqH@1*~{nB7+jm z5$1o$&5C&M4}?oaNcuBAsXRR=BbcF*MtI&6{pP(73^~nb+I#DN*B`m z?_uf3ldZ(-iLXA6QnD>NYeA}-ol{9;E}WQ7II7*`PH7MW!tA&QX3+i3yN=*aN;F;6 zIcz^)AfRO3Z@4iijy?BCUy_O6#``#lnFJsA8(6KOUzF59CzBO`c~$Rws(CHEa?J0# z*}F@xX6jq_^}TZ)*xC#zSzGFB*FjsV>h8A0*kA3+%sx;H%YzrYeDtTrUg&onVui=G z0CW-AL)`^_25tWzKUx_7WRQ*It93?ytT& z9B4-Z=DaV|MnJ(_O)3y0wcjhxkW@&yti3SKnd(lS@{th)bSx;m*gdt6_crVg6gUA@ z@fh-=hfl2$$xcktY3+S~+038bX;M|+R}tNKT>3_HyJgpytK6qLR_}bkDmx7h>sDP| zf-G;&aUJGM%xD_{+pC0A_%r!}cQ(DI$ILMI)J<$+&DlQCx9e=Z??LkH(p zJUdKQgtPT7+0JvzAB|1YIUl;n9Fu5lKR>JgREQ1Jx8B$vEQlzuAkISNw9Y9`;jPoU z$*w@PTg z`GfoT?g|DMj(cv?CQ#k6Bfv~;gapjhz#+@c?@|{AU2?QyZfGcshOzTY9*}_=|7@&- z`7|q-Pg{d8livVw9_}5TAGLDW9i`HE#N0aCas5xE*#0^ zT@f4TnD%%psLQ)4>Fe^mK&#YFtFn4)O@jn=S;+dl><0LdM)?*L`On9f zNb&{YzqMfHA^xZ9WdeaB+C>0=whKxu!RSovSXT0y%Bqf?uOAqm8UDiF7(aIhiiyu# z13QLAU{z2C9LW1CRLb?6m&SVV&ukfM_%ww+Oh|2nBDG!5pssaSJ*iuy6KMS{sv~M^ zxAiJ3ti5S}7S_&4*8DezCj*k3!c|I;txA1D<|^HBKLmE*Li(&q{5O)5*^(oJOvbyf z+k`%ncVXx!E=d|7K|p}{E+ymI+#G_NU>X!0mkv$305@> zbHEkf!FT&Oro?r&C(N)k!lbCY9T2&N3ak2szNbBvs9m>AC$S@w(@Az>HCb$#1gT21X;39@IcC+EECOwnh4{1gu!e32kSQ2?zh|WBzGSY4%a_Va z+QBl}8tHdU_m$=qMfRscZAVE4gN)GFM=w~885Y*Ccyg^|{ishNq`Hyql0~)Dcx1e-MiXmUbnK(jKH*M zN8-YYErMr|wfwowbvHM+ex9teP>Ih>9gjUMdo=vhQPS^_aj~qS6krgKf?j{dUrZot zJ>d9=)TgY}f$yZ_<-$V~?>rIQ@7 zB%I2ty(vQbuhA4o7<>OTJ_*c~v;gS9KGZl>?DqQL4+(nTZJ~s>otcSO)Y;%d$(Deg zH>w$%zVNhkw@8M;g-QKpL!9J|NZaH-G558naqSw{0wxJGj!6uo2LbU*6U(zi8W$$L#9bv$L9%B?I zbUbGB-my!aRMV4=$v*$A=C;%xuNJe$G|nkHHTPpvw36jX)^RKmfQd|Zn1*S_j8uNJ zQ*agkb=B)ZhfZ`mCnRVnDTqPMy!+Bzyl_MuYCEeiVqvKn4OwQ{ znN9I?e-7zij57JGvqQpWImliiu~3qx>6n~;?K0fq-$93W>4FXy=o&Q&IhEhAWUKag z;I8I2RJlc^_eh3Y4#iHhRuj98eVCl*pbR7m|g^t>1 zl2j);+}eHHTUlwW!qi(nfBQn2;Mz1a2?mi4U7AN?245L?RO?CSx$;>r<0ePh(xmTQo-W5&x~kShcbsy?Q0)MZIH{jgY;QQ8Re zq$ZK0G~a~eYETZvJ^;4<8bwtN`JJLGGqO%=Uc4XoNGE4)h=1!-(SBCEAAPE7D3=_`JIWs?F1&Nx_@9WG29uDq%T5BueX;0mUKSjpiM@cV?fJ?sCIy_;~N~j zl&*`e$-h7s>AoBX`@b__?=feCh>zMhB~OnFIQ_ytd1HD5w!y22JUQ?vvy4yms{@sm z?Oi8h{33%euk=IALu3yz=f`m-l^=H#b5rIyynV6KYJJ$b94Vy%V89Iv)0Kzz_-qxM zoV+Ykz0+MYq`sOAOZL-hboFMf`6Z)6y>q#RVoO11d1fqY%X@=NY&VZDn3<>mg0+>d ziscAk5#>31fO^N^n@NE={u;9jJ1>kH2#ptx`Os~9_|4mEmEV3%2_O}jgl^8NQriqf z`2sk%^Bi~)4LO%PyUk86Ym00v?|mk=PewB$RQ&S^;-}@c9J}OaMT~+!#hPG&ZeorB zU2a7w)JBrxANnQXjT!7kKBB^VQ|2y_2cCanve%ZTmbTSxThi^Ch+PW{P92!Lb>PO$ zIu&&XZN=w{CdHY4hB;;g<3UNs$pgDEb_1S2@TVHV9uk%b=gD8ZH_e#DX1l}NVlH65 z<$i@~T|Pf+JTX7qYfO~X>b8IEq*&+rS4yRJx4jbCm8AAq9=4T_fL4a`;zshaumNTX zUh|z(*pb-0Oef_WvuOBun1?^-(&9XAECUXTtTY^(9@^guuUz@eifFl8p@1JOT)ZJb zS#rDM?Xccv5;sO~5zVDPg`|oHV>B4X(eQCJE9V5~5;(RJkSKL@3p^&4=t6D=r`c{v z!j!4*OTCCa4KT9nNCQ$6Me90pwwlRjrEk?}dRM8epTKqUr5*^k-BY+A(N1xi_rC}3eY!Wvs)o%jrN!j&VWn?J|b+}KD@UQKwWw2w+QxIOW5 zh5B6Kgfu-{^&%^MU+WHqq<<9PoJ?N%@D5#sORk0GUax_QG}nNNipw0+(#z!2(;fcY zbaYrlB{YWAXC0wPd@@1v)++O?s;p!Jc9e2||7%UX`VkPg&{+J`K8Jx|U{4;m|y zX%DD-?o+9{(?v5)zloCGf?>TMc(Oro_K}mn{6)ZQp8&r#uyQar>hh9+!N+pJ1|6q_ z3)XgWu+>sxP{nA}89?EDnR%y&|9%|v_{JO;QBM*$A(Eb5`K)qrrl@U)L1KlA*YC{V zzh`-W%cQ;q3#tNVmpAwFVjKboCWQfUX-lPM*$~^F3Dc#xEbB#BTx57t(4g??B1Y=?W9_ht5Gf{qo%F@!& zHSPtBu2S_5a?tjrfbk^>cY3o@W55FWTWWkon?CvJc1Z#u@7>sEwF$D< z_H3%P{am1UG_2qeRdLGv!`hW_Y6nnFH3hpD=yLb>G}+E0#B@eQG>Y|^H9#&rI1}og zmZ!SmUr$N-*mR%t-VBRcXN>)?Gsi>zV^%sWcM}U%3+v3W#(CvMuuMMO7^rwC%-VgK zKK=I@;%HOtAv3DW@S4fDMSWceC+=^OwW@7?--4@*LDLN`dL zc(P9rZV;~YK8R=)BGqHJuO>8$0h_P#kb`y38eTP%U?Xzi?2devLcj?=uqO)nr1QN7 zoQ@<|=Le|2Mg5iF2ok!_Y+{{$g4O8HV6dB|mr%bR9y^>c6b=|#u@h+68na4y1NLF+ z<%3Hs!NEPN08x;y?se(!1z2DcBk8^u2A*&YI>{=4t#;hW$2#8)SAz%x5eA|eASOeW z$#)Y02dIcJ5MdzR1aYkh&OksHfwqLW+>qlhb*)vD<5$a zVs*fsDN|4R?*UFA8~0(4drDa6L$Z4>Dx-1|uEpntF*5rjh5LDg!0p$SM+w07Y;OL2 zvAgol-vfL2enLGD;!(qL`2K+GuIdd2tJk6j;MXM1jh72nNb0Vpxv*|LufeST{{8B- zn){A{v^dtoUMT+O&i{EU+Wp*h^+2 z2luaQ+Ul?NC2Y(pc7cbYa~ixf^zT>1yiQZ@mQYi^zfpGmKihIjxbXNikC7=Wlk|>% zUDD>l-TLJ~>gZcj_ZHTrbbR2x|7@%H^slFO+}fSR%5?w1f8H8TJnwlmtMvMc&~!Ha zXIrK_9;G~Z^NSHH)1UAE^BQ~8D-A^>%D$Bg@Y3P`*;dwr6D`O4?(Jq}`toJv;j`5{ z^gHWOsGOXj!PbPBbce?)7u4_9{%2dn<1fBFcY61Tm1$+#|Mke4EA@2!MV0UG93Jcc z&$ejKKe?SN{``S;(OvDoZ{8#7gQyRpK0iJYfmk2J`mih};=KNP0~c{#y$JR}unz*A z|LG_Z=!`^ONaRKRr=vt7FC=hB0{4G?YXZXiAiNJk8~*EION2ID;l>fx`JdlIgRsuX zrUkNT@vnU-WYYrKv_Lj3{>jB4Tc*gCDH_?d_$L>G?708G_Q1yMa%Z-s7=#fCxw4E+ z*nNQgGv|>H2dy!dIuMUedL)WN1cO6yT;*WL4A;oMYWTy&$kPfWh|K=>9~rbWH#iog zh{7dAIz$9^@UYPHCJbnV&Y>2AcT)8IccEVQUk7}`EwX*3*#+6iT9tyCv+2Q-)~Q1o2+ zim3A%Spp*h0Li55uB+&gG36^CACQ2(Qcok`=0_THT+2LEc zjIL4q)n-m{<#Qag5oaj1QkM5EFBiU}I#cT}it1mt(D@zcm;6}`@hV6|Ym(at-`iD0 zvnhBur8lkKdjI$B@?aDHzZ&AwL0zMN?}1J|4hoYXQ}b7^yZ`%keXn8CUk$OHfiAE1 zKu}2#`fQ05Nu@&p} zKZJ!qBiz!Dk2xX`0)Y^#oFxJwR$?mzLLd+VjSwyf;ewzg1TC%Z1+t#LM$i(1mJqar z=0&!rknO2qgj+(mr60dp0zpd%T0+ngavBXecn2P^Kz8Dgow%RAxCuc^2wFnW5*|7F zj2wNgMQAjHMnh;cghpG97Lill$SH5+_SE+;Xhmo=ghpF6jL4=Va;X!!6NlW1LvAI5 zGt8{VsSq0Nf1gGx2`5ZK(B3Ziix5}XjDLNBJ3@aW^fy9(L&z!8?=J`;*LIO>yU4X& zphJQnt2}rz(#H&cWio~l( zyb3}Tgxz0xXBdfBk$4q}SCM#i^@0=fqSk-B)^5&p*9R}gZG(@6IP0@^fH<2` z7gpa&S5WGO8aa&o(^dm6aUISxt52ij>v3pRF;n`hRV3~NN$C9Lg_Y3!y>?D*sjKIs z@F+Lv;_936^}MRM{OXHItJ8x*8f9_JhG>Y_e;GLPCcN*Y@%G*%uJfyIbXBPayhKk^F?_)p}oSMu*k zHMU>7a1aO#a!K>tRe!4a5#}NXrhYm7$JD4d)_Sg_A!xyBdm%(G5SKRA$;V_5 zqx+?w%x$he{B988FG6new}vyd{KAhW9V>b<-0wi;FMYcOCd_33F?}nv9err`g~qQ@ z1*6J`tfQ2EX$LSmv5(=<%E!F3Hr|_kJhB4Rzw*Oyowg{fZM=U)V&FShA5+nK z3afNCOfCO1Us=%%*LPEYQDm8qnMA_H2jT(!zs%Q6hzW%F%OXp(zkZH(S)J5qM^G6X z$bip3UBCWo!UllQXovZfeEKB$y>l^u106P2ySzA3gDsi{?YSUDKv-ve(Uq8*&zc%b$cV}B=XxD2LPKB+3#8!lq3u%=I zDS0RT8nm8@hQoFB#lv}74$=Q2z7(9stEPkkoto9huvFGvyy&3{_4KoxzX+Zd^s*ca zl8UF(qQc$#z_RYqMfmQUU&X~kE|IB2;|kxnO72?!B9lIIDfXv-UW9~R6wu=RW9W&} zFYS_3k8YT1xEs1z?4g>WzH&beH@4fDG{EfT_lRj);A^Y#FWf!zB~$6*p>b5`f(KrI z`}1z1zRJStc5BC2-Od)NJ9+2x`~(}y|AHF6T@LTGSnIuB{CqxJHgf!#QidYxS$sxKxz43}q8p2Gcab|stk_*2o6L$;zSV%j28T^;h=lJh_0>*=V~5t$7wX;;*7ZYf ztrKksW4kJtk#}MEM8M#M=#3F1ii9~cE+8#ZL z%TC^LtcUkZ2aS#SFXaReILzVsN7gX}e&nbOQI5ZUv6`f=Fq&qkvXUyZ`V%Bg*d~kHr4L%3r_T63gX)$WamA{(%i^bZun^ZoYm5g zM6^l{yptVyKrB2f^DM4K2%omw(U1}{%JfZuVcfp}UOQomKdi+QpXD068#Xeh*M{K_ z3m)Bx)8E)pf6#aT{{33V4$*)wZ;b1dNGnK^^HR_i9?Xz@!`I(DTGY3D)YENNUvNw| zGOMfFgc3Z~T4#~l1IUGt-C=xZ8gH2D$)lO$CmWCE#wB*n{e=$P-%U8(HQxiv7aDfv2*Mb? zv|PB_lO;l1!wzNBWLm%MZ@FNwq{7p zVQZ-MK-Eq4hR;DA9&X!yOLBL@W|KojwFUzFZ6hZyBX`d)1(8W)i=%{PnB>Uv0}ReTIyx=85ll%w?=KCFU|!ZOA}6*3x@G&u|*TKBhlE9%`) zn5o@0ecB($U4m7eTk}Zsib5OFU7TTdXlGL&x7IiI$c8Aja{<*7JKfHT4qM@XV|R3i zv$-Ac?JmLdcKl0qezlX{!4eGPm2Li0#1-OfF7lIj-~={^9lhe$ZM%}!5NNwIv$W&B zbl5|j*Cx7e1TRk-xbbTqa-kFEvIwc4!0zOmUfXGjBmEJ&5^Xaa^ua<{>+3Oi)kPM- zb#+3I`a)vnbOWKIuEKf;H%989itfC}ir!YE_Md`8RRqPJSAOuNVQUFF$NwglV`_pgrmsH*BjMf6CPp2T@@l}v#L@@ zagiZbeaRdWwiT-qsLl=N#guOZ2jk-0hvwuR%a=C%_&={Bw@>~;@aCDx#Oiy%GdRLy zm@2sEa)UZC3fueey*xwrQ#1f+OIFwzaknAp`zPy_>gkcvAU&T)w9CSCy_3kz`^Xmc zUA)Ws7HLds6dvXg6Xr9-k4-9QSY~V}`VO`s<&Ul6fe(AtVOe5P3+9mB4%7PXq0nL4 zx@r9Oz&WX3AWwjL%^{Nw4#7B$)i2+ZYF`TMt63M5nQ%+D!97m?E{9bu*;or<9H*c6 zunhJ>LAKifbAz^BgFTMZda~wMkSZ)T0^5V>JZn2{*M9M-&AuI6=stX(IJ#jyI5euk ze0G>vJ7N>IQ4=&)vqim|y|KGu-YgT5QW0)F!;4-~YV-(bv%sf^?M&ANXdbQ)-6jU2 zs+_2Jh7>0gjPS+crc;|d-z&M5c_t(Z__v8+{n+0#mfrn>RRodyk2aVL91=#FXy_C7 z+6Zx(q#vmXUFf@=@Z6$)Cv3fjTCsk&{|p~?rTh~rV8LZWT!E}C@2Z!Cv`78trj7GV zCgol9QbM*XxfPpP;k(V8-{jz7BurSXDQV}M)Xt6i<@aF?-&Ml1KAfF?<{dbcB6_zX z#3{%lh{%o(Bf{fW)r9;9-a6FDktipC6saD@;tEYx2t`r$EHL&=Rf^Zm~%~TMeko=}lVrya zU57)6!M4A^S^x%+fk}6(gd^S5Jp1n=_UGnbR4|>Sz5>CFbnkAi`h`S-;l zrZ6hY#d;apz1Z>B_fGu*qpB5<)IUM-UjOh2Rt2?_3OBlj{3n0;oQk+DMHLf6c|*5Y zK`Nffw)|Iy2lBv&9L!Uily^nmbmV68PT6ROqxItF1TruPPMO0x5FsIoG$D@BlCxy^ z&c~mH6DApId27|DNB<%9KPgHO&xG)Ov)QWAaNmKq6yFf0mNjspYptV^-h(f%u8<2M ze$&XGcto?v8B8?YRXR)&1%N9ImMnX6aBBVeB~OK_XKN ztlbK44j4_c zegw~H#CbcLFC7kxMKx`FQ(76`OxYapf9PM}-{HT|f6+DXgo^hpI=uj6nb>owZ`x;( z|NCiQQ$16U_Sxo!&e`?I+k=(DxsmmWJxNR7SHH(TD?j_Br_)O5Yz2`Rw+W)$dJgRU z>1ON)Y_rP;mnN5H7mUIUi{1hgu7se2*X{Q}Q5GnP#lJO;e=EBks3x9{l)98Vnbz~B zR_XE-ue0D8{bRF2SPm6SZJzkiCw(s~CVgjp39+j<(pB%|#aGdz z_uQqLIqe?GVEXM2X-j1<8_0To@R%-j)X5W=PPylEnS2|G*D58W+D zsL)F`9#xorh)Dh@gYh4ldFtI>hg(A>5EB1gsFm-b_5s(Du{s{D71_v-*q4oOq(X>^ z?J^tE^wH9y*-WyrGRg1SP%X2y>g}`TsPC)o8+0~r6`UR*I4T5?@z>Ni{6W|`*6WC_{8F6 zn^xyQQx%56sal!0f=c91#jYLINztiFhV11m<$+tVu=dlIL*COV%+W-KfPzw)`u}{w%Nz9on zP(H4ncF362S+eOim|vIwUXrQtZNiHdMY^jrsI5QrxcS;=2c`$DniZyFixWTEazxk; zbo;(d@JilC0uD{hv(9eya&@jKLGQ5}J-bU*tDP7j-Ny2S_brO-<}}Eim1m2j!A?ZDmp)0^@ss0%;m7AE+E=H7ZLU4v9GR9JB_z}^2Iz4{ z`ieHid$pI)tKoB=Ee7Rx;>wi5SdGLYz04}?M@~6Bo3w^?05_Q63 zX|cwnLsgq26~7EAx4V53)OB?7rci5?sJ zJukmibbW*8Kr#qt*Nx{(3|q5*V2Zc4fL;BRAy}$pRGL%D+iYfM)1)ST-A%%QX}@^M z?ozR8L0jKT)1aE^B-RE{VIlE(F!B;5*KI|GjeIA}LNDm`x#Ik=9fU03d$(&PeCBKV zBke5hbO!wP;X3B3-m}!vRQ}6aRdW^hCYLfUc+NK(rG}Vmf4bVCsJCsV7w7I`voi2Z z_?l_&A@BBLX8nOK!bDbc^Z{={%HiN`5Dp4ShEL$_P`W7JK99EOv9mhkAcI|hjis}0 zSbZU-roP^a1@}{Ox@z=0W&~ZVuRGL>+QpbJs5+nlrOCe6{}>} zA%k>g0&0bQY9*F^ZC=%^x_0syCs#+O*v#V()d~CT<7XnxAgDiP-`B$6`7D z0x6P_Cq*PX<`_}2v%YD1TVa|;c$t~$n>Rw}sD@dzPC&;#j-9#Er&6R&ZAq_fn2-k< z6{n8B-*Qp(-sk>iuTM_52e)f+B}!=`;TzIXx|#}fwS39A!2M)x@U`faRg!vw-e}&c z%OKM(_Bx8ma>)Mow}#p>@^8IPSs;5N)lfh}v=7Gaa$44i=C-tk_f8sG=kAjMQHvZq zbh#nr%*&(eVp|CftxKU?QTdvV+M>A;YOxw)$vqJV*Z?*)2`bEYTeR&RAuiscs4M&U zG~pzsqqE(?E`iy&zVv#=R+#;Xw?^9M6*QUqh>gz~AXo?1*hW>7gp8d^( zEm(xZzW1Yr(P=-%uWmGNbKs4?-RpF6+x_%B-^;V4_;Qu zf;dQ5GHK=rT4dKcEWE%JyM}-u;HtHPOFa}GP8a{Wr5D;aXP9BLC>$QYM`HO9B$l-7 z4E)+B#lsTEG(MusE|+VI=ChxTWe%|hnj)Iepdnr9XXFwWw;yGhkb052P?08^o?HG_ zbahOc&Foh7k^*fS1I-tZSArE>>TvKVy7*$R>EOddQvaU1F01a!?#}yIkESPy-eN1$ z=z!UudfQw5cy8X}Z|%?l$^1W*@~RoL|h}uKaA*e>S{y# zq_)IY8Mfvr{q$jei-y4pbG0})4PDRWUO{iXS&dGB-aeq47CCJ45=E4ct~1Lp`T=kK;y+Iz&V)g&zS{d=aoDM0&Pv--4$uDI4uLKkFa z90cBSaGlEjFzCT^G8Mld<`^A9;67YqHsIk&9!<&Z`4ehFWuZwY7#;u7ur=RjIMN&VB$8_< zJ;ONAeDE%H{$zG=!9LcRm_WCZlE?g#gX0QWwqDYJWwPcUrl~Mag=)*c0pfB1ak5dm z?4*GGobhNbq+YhpWcH1Zge-M@NAcJv|H)~qKJ6pK z-EpafDmcx9lP_JU{?H>y9vb; zo7Vd{;4lML%O}|O#=ufZ4iN+<j|@F*OHKK5gA7A(uhEP{ z9u9=Q)7;G?UUysE?fq{G_kA~3a@#G$m6%tsp~)*O##2$Y?GGuZtcL`;2B4cCR%6L&186w1 zNJq4I+6Rma_km2rc?179SNa8HdCd8|4+e*OqogQXc?jb9L7#F+{mHu0FTgzC!fnP4Dv-q9#$7ZTd{~N@7cy zy@2f5q9dE7apG!eO@;)E_;dDwi0lOcWY|9RyoJ=C;mw2iZMYh9Md>o<7gfWf0dsG& zq1m`JbJ)-tHIJ6x?;)ln*fhhqTu)k_*iNcRV=(8cEX#oP?T@}wmmgpqADZl#++-Qx zGdgJ5>pXUIk9^M$(aDD1$Yx_Oy62q873C^bHD0|W12pr8c(^#wO!07+h8!7n%Bk&5 z8f9Y$GNaeToFrcm5kR)lvh_2M=X{Xcd7A}An{IkOB}92ywTL7AU+5^KgM~92mdh}% z($mJ8{h<4e91E9?&pY4gzMa=1E+)?hy4#WFpC2PyDxv-feVpYND3`SDSY~voYQ?O~ zd{_EPk4<4RlMyXjcXSGk`LEnoU@Ypcp{9#pJDiNRQ>+;JoiZIhW|?xd%Mm_z?p!@L zc%MnLm&4N2&EJ49@Qj`n%_|+1FCMNEJYe^Oq9k6~WFDnmwy#zMg^2}Cvc60W0DTFx z4;}rfFK3C*fJm3velDanrDX=~3lp`CptzQR!DHA-hVj=v5r(A`**E(hthA7784F+6 z0PFiEpS1AkoV_)bWp`Or@jo@4|CB5mLaTfQLax66T~SFy{Jc7{LQFmFf-%+b@w+Xx zQ2+4cBi0WnYn%3wSM?CmQ~m?0M;Ah~06D zh77Sq`$j6D@+y=lTvShq^RtG3*x+w(SCGZvnDclvqFdd|{gRXOkH;m(x z&Q=+EM?nLl|4CrH;_Na#K9&LFo&y(EPrGMBHGJ-FODGSukO)G>-_5p_G9#rgl2^ia zrzrz?K8y&E1MrMR)YJ9_guU8yWw)91i2UsvrvW5x<;aH|inPG4b3%1G8`?6O*}65^)zI z5PNT%p%AbB8tf=|QtB=%<_@&-ZnAogE+th#1k%2d2=~y-BOmB+-IN7)45jVsNJ~U^ zR2M=VAAK`3fb<0=+Bs6>=u9Rok#_m`>|0O^eNHlhw85T$oqT)xRHEvTIkKnM8JLZ6 z@o=uy*n5g6BFv!h<-zv}doVTzYRry4naju;)@sAmFGTI7+s$at6jfdEHe!;mBCHwjrXPX6#c=!aK2h>57CO z2ypva_Ma;94|A{oBqFW5_;O9ws=WZU99NXxjq>rqRo{CyB{O2-Tv4ec!%<(WrlZRVF3~?Z! zd;J?CE(vD05Qg`jj$E~&pc@Kba3pP}}0ed&ud4pm^phfX3Sg5adZ8mxLquQ@P7 zYx5R61irMAP#Y@M7I7xjUT);^c>K_+Xh22)$TslVGZt(&4W00ouN(+Hlb2Y z(mBj6Oj!=+7_J&a#vYr9?rtT75l4Ufv0DSzTHf_;llX56($0tjfZp2^pr@e5Y-mt# z1Z~i#s6%8uNmDt)x01L(D{t3H>NF&aTA? zE)}PIM9Y}|R!hUzHZZaW5t${>FRW;A=mvaIXk;F=GK`AU^hD2aS-!0n`t;p1F2&hE zT2Cjb`?}Bm(aQg@TfX#HjUdRh(U*UVU^sBG3b3yuqlAR#xj4OpfL6xNahFg&Eq0;> z^n)0=yDbfA@KFbEgvYd&>#{fPrLkOR-W8Q zPX=L=sZ9aNwRc{rO&x3Nvv!fzleh1TyfNzU(2zlv=r4) zS=`_Fo9?K-WGq$pBc;RnmB97w1L zZ^7TJ=h-muHnl5p43K_=P?BBls@V7Tq_tJSNgE^%B@VAjbuwC5`-m>K*{#M^m`^1l znWoy&ePmb!U9$g1(ICFk$V`Q9ek`r^Abdfw;@5WW9Z#!vJ%J21{BI_F zLlHgcY+wuEFgFvj=)I9ETTv(rmm%U`xefg{0?N;3K^EtQ~R0_pP#v16x5{!Bg@J>JeKWc{mns&a8#*9!g{|JJbg zgF43)Q;6JCIcn^}zXJdq_By{&T!Mkoj0aeyXzbLpDW!*G%;)We`A9P6>u7z9Mtm|` zPGg!DoII!shOaJm%2AI(s~eLwbMz>}Rhg{o71K^UFKvNMRtE8tGUf(_}kRBZ;OsKPAPtl?1IUN!C2^ zFPlG;llYIKxhS|_otJkh|7oH6`-dfvz09juFq3!8DMhTXaF_*|dmj3zpUOTgUsGA* z=yE%#aiKyS#3BKmIIK74$mp;H3gX@-ALDg|qPap-{ai%%q)7N*B51fh@enY9>grD> zoY^UZZbCR1>-T8uSvU-^Uawqtk83v`_z3j#D(B!q>u zs>3@Z7YhechuzO^SOT{%i#6W~IF#kR3l2kb@;L4GaGKj>9_VX(fY>A4Ayc2O-oN`2 z-~qwtCl5|qp&+A6hVM8i0s)qJne1#ZFGYVEog5YO4hJu|Tp0eT9Y8{>>Q5xZR%!1~ z0O-4dzdR^hbcC$)*9oz_t#ytEuR`T!(h$7ZL$#!b-cM{O^8j`|;cu7y)9ZE) zuhkB8M~C|3n~VLtt9Bwz9#VSZSv8%aJ;xMTV;P7@`VmCOhqm@}KT+4UOR)sP*rB5T?fKh_Hj@)j> z1hn>bE=3sKxBfr$7p~&u+g=}e`VJhy*xAt|cjqKBBmK6&-J|HnVVQ9-U)p8f*~!)h z>Vz<>spm&Uak_xCHbRVXe9igcPqqZv3&h?ZxZ|>YmZ8Bh5y0dpB@E+Ntb_X5Df5-- zN@go`^SjTv9@o=hW#q=|z`xQkWda=l%B#+#u$^{6avH`WC0~1*@***YI{io7mf*}3}?*kNZjG?O6@BbfsD zo(wV19E5JR_*@D-!J7lQ3WY0Edog_|F0y&&`<>_=I2FXu<%lqb!ux;L5m?b0^`Dn< zlw}NrbBl3&lW}{f8|za|a=G>!eyQ>t4|Pae!B9Og1tu1>p5z(`=WPNvYKem~Z^;$9 zFSN@6vzHmVVmUIcq~1+%&RBS+Z$tv!DKmzU2?5=6RH}D$eoLe1Ab)b!3WBkjA4`Z` zvL}#BeV{C@|1wMsUgg`942=APJji0^yOXK&ahartZkv1Lbu<@64MM1DPt;vLJh&oQ zn&;qeAJ%!trGt#OZ(`wON=zYfxWLA8%6{g$CiDvjdWD0;oST*Am-X6TmDA^U>Ucsx zvIVn;akv6w;gL!Wx_H9j#D-$ty_%%aBIG(9+0`O>Mb#2XW4n=uz!DsmM&ufovFSgx zx`e)CdzC$fSZ6e;R8u57u{j!vXzg)5dx5unDMmEhFi=tikfh~9urlI`&=p;C}eCmYxO>mA;vO+=i6@ZB~?ax(&PKDW7{0r=T zav;`;l2>E=YB?9QmH5nUJl~c55CSNf1SmlZye$NN&o^Q(zZXTTYy^b6IhJCbLt_Fp z1!ext7i|S94LM*R*M&Ws=;BunCpQ$I{Wp&ORgV6v(&jr%u14RPTa6<-UsEc};&b+v zRI05mOhbEgw#d-?yn)0vY&J+07(Di?{k@<}Bo0)>he1UgfRsfXL9U3$JqOU*+8bJ3 zRnX1$RYwrXR<<%}mM2?!rUyI$x{m-A{bQQtZ0M}o`XUL+=9KdZxuP!uS-gxfF^4ED zLj|-C?-WM;&JCoH_VlQ=V7U}v3ReTU$)1yO1m6$AxIiG)(?}pG~xEs4;;!(wl zf1U+!!4n*hP0A!S6ubSKP=GajIvNkpbueZPzg%O>$15Mjq?L5Q+B1Fg(=$JH6vWNM zPS}%t5ESn~rc8WK%1(i!AVmfQcXu9ZF0X{1i)e>XqlS2eyFUyV=PrhEc5clGjO9-A z`Zi?=gP??U#^11KKP8_DJPDy7-ZnBJ!C7>t4!7 zOYc(+iM?@MEd5g}4wTAcY9_!%&yy{F>hHa4RKwu3+ns9CBj(+|_|8raH0b{T-MeB& zD%LsW1qN~L7yTlwJuidqkExTanV{rP;||V}6yD|mGJXYMHnffPSA5tT-&~g2lmM=-rlE_T`UoXPUq6ZSKRNn+Js7$brFW7pC`2mx639bZ_UyM z*`I!^jJxAPU{g9cxTn8;XL0V#Nk&@F=X5K**!WLpdshv2hQGQn8SPOUm7xdCM52s^x+u57-#kj% zGi#YN6)@H}tq4j$!41R_&KZ!- zh&`ssF7zZj!F(35vJHi6EiM~R^?mc1}LaUs6R z@In57SAN}PaH6Hiil*h%WGCiNWCz#nN7ze6a?b=X$Z`MCGm+WxqJV}k>zw_vfQ!HA z788*q?CDY z1ij(wK?Yc5kxzhRM}tr0K6Vv@^<>-2eg#O$EzV3{-%A*8qUMC~-vO|LEh{4}IZ+Utg>SHo0m=4_rya#TOfD=h4PZyugBF z;>mq5X9D_*X!8fMRV(%puT+t4r9yf>5HGVZb$o##L*9kBi9rzQIUYBKGQSgeTZUe% zPMD7SI_&<0a*Ww!3xYo=<2?s(EOb0wIssbbe5Tf2>o-B8zn8Nc0FAM#uYgL3X^&GK zBll@BTB39ULL*T!y6Kc7#%2L945sA=>HJh<1`6O@Q%7{9=QzOr*M zLR<7Tomy;Tn9jlBQy^cva7>fH&2{blF{@T=>^^Kf(sr*hsAuTh8Mb6W|8sQlDPl{c zkq!R`HD~I0OOI44eUyAfAJ=}>a~cevkL+jWB=Xr;c2@`mphu2T48oQ(BJog2+&E-v z$r7U*96A?qfWri$5dHNIg9a9b5r5l_!-9tFP^VD-eN?%sH7_7E%)I)PO`4twwC3n$ zCRbF9ritT&=bfZ_(0bSB{wDXOtKKn&AICX0FA9p|E#X7B+Cw&WPn9Vr7%}HS)Ia_L z0D23wc&OYwII}pmII_*166IQ&U36?vQEE$9uLfzFp%7gM4FJuRn)Y_+IWJMvnSHcb zLxhK{d9$aV)A*h71P9soS~Nu+KKEn1)+LlKFByg_oa7Vsv|}-k(q*!hkerlP*+9Dkp?JLAY(8eb~5N(ZmMXGoep*u?;;x-4P_Hp#Q~bMC#ONHWbhfC?kW4LR!TfX*>&g0QCz^-x2kxIj0*hk>4f?trRH50ro)GBv=^gpAlZt_lVl@g zo(;J@rfi3mPk|wmmoKBRap~Gl-xp?=zcF?dCVeK)Oc3(NsOmcK=VR+ON&T;DZV&E^ zxF@~oxb$XIR%!k6eAc0`UXO{@*1s{fD()W~ zqM5x6+Ra9m!z=E&>#;YnzW@8fnClN+ClvNUMrGIgZ=h`~7#{e#27$4p!Kg)rd}{7~ z{X+%`@{YyOm(PxrD&1!_YKgsls+jqP4Qq95l5F8VhRV|4%j;U84!LKGp3mzr&y=l= zHo~4KWKmjeVM1x7COd7?#rr*{#Vq-g%`NlR&Hbnprfp7{?I6^bo-K#Z6DpPTWqbYC-zYT*&tJ?zzkR_$AM_2hlw}gTYRLDT4m! z3!YCS3U0V$+;e%2>6itBLGaK5ZU!Z2m;Mp!S zbqtIm^0zl{u)d#d*_ig(Iq6*;;H_ton{53C>_(Ua?B?N9yLS009&c3ewzxy+KDN42 zgSG{<`2^pt7C`B{;BtIiL3>LI{5Yw@&T!}3CDE}!_g2%(*}*GcM0Z;siZ*;*Pp~PG znVjI$4wy_zIEmCHymAxeFP59sKoWO^c6e-}mzuo4RjtUal&lc}NR-j%@MjAXNNVmiv`B}BojnAlK z;>VPi9lo+Iz}1zHSw2ppW8&jfaY4YmD<5`ye2-z>W|nMf6v{PbK1qoH}fE;xxGcQzstn7wl)cc5{bzBHH#%mBP(B?Weld6D(K+N zJ0>1ad3odehgJPf$6eWd;MQDj$0U=)X%r*T+|TV2qojsCGu8D~zA&NcOilBibp%-| zTF>ORc%f9BPsh;hYa7)$rvn3w`0B2IkY5tip8Sg%yErAE0RB{B*ZS_^%K_CnqF4Il z9e(g$rXpQ6DoolD|F7ZQ*tnJ5#y`8g?Sd&s{07P3QG`0QgU6HQJ*b1u;r)tSQY-GA zEf0tu(rA?mo<3&#UyQCP)$j1VP9#2>T8P(oA3YHeg7^EFmRfOn^h<5X?V+$Ho*R-f zxlb+HKds0F-YuVQ+1w+Cv;sNgAY-YJ)W=!U88E~A=2lu25$BY0v_( zkCapz7pIEbCXn#zDIWC!-lNsN)mC{Mf)}~HW2%~;*)7J#eM)#2-ESQFCuM&}f9e`| zh=U!XJlINax=u8ADD*_G(;=6z*ERiIABGzRPQ8EG9O9!@yjeE!OPN@H$0>zFKa4ScU!n#Ry zosjBu{t@$xPpx_s=hr32m?zCxQ@#{7p+2Mb>{+dtKCq+wq5gC8FQ%CfaL|KKRWO+A zt>bs2iISA*W#P;RA}^pFe8cEH=y_fb%cndOSgL~JARBkL4uluK=UBnDwfI`w#=8XY z+(7R62LsPd8Ed4ObTF9i2jhpDny>C5SO|db5JPEC-;~dETeVSl?5!NzW94pbcUKn6 zuzKp-6NFBc1`~AmwLX^jr(JpZqs8ycY2O{#;~ah#z@(h@rc=FAF3}|B&7p-wzxRsy zLys9J<`?qhu(hIN@G-k=R7C;54QFK8gq`gL&pCK4Wzxc7c_4ew=D3+#C!8A;x8QzU zr7$Hjpg%byE;eqdv_~ytsSd7_$3Ak5j(f^>Y4fSgVarCfGY2Tg=Qra32R}m>KES{G zZ0KN&!v+^)VDoqTIkKl-W=$xse2AN>Sqgo5R@^OH=wS#8@%@U|vS4NRh{qnyf(Ea^ zdZkb|+_z`${>FMW$sJc8h4NRx=A-*h7JF#7>0p}Wlmd+FzeXIuEskJ0s$cqfm=#Oi zKz^wA3g)S#U$ho$e@a;inngj-mkmp+Je~Vm?)G5lX62mT(9%hkzvpOg_r!bYg6Xte zFi1O85e9!Ym+i){DL{_-`b}fw>Y~T*77_M1>|^1q1Z4jSbz7rVa?6-ERoM!3hLR)E z#7F6eVrwjtw8B);OF2s7qOz|0_$HzJL-8%W5q@mU+0FNQs0^>-!d7F?GOPUg8`ZI&)C-gdlerAHSd69{c3X z2KzLi9emq%d#mfC{ME!MXcD@DAj*L`WC0r?VEB|sH;er}T5E3ur z<(C*{i`b*7LxLUb^#x32^$hR?@1J+>u6 zD<~eHk{TO#WouwBdtd;OD*I_^ENsk;&N@qGu|&0N`X!|{yblY#@eLO|S71}#eZ=h1 z&$-yPmEz2gL3{LPu$a97n-!%U{JPXJYlPywV0DvQo^w)n_n9e)z@A} zCRb__RtkT9AkV{ZH4-^>nQ|-C1dys!IV`&7Ok#t4@7t_&Bl}nHRS*-4mnWC}+1FCb zk8!>EsyCjxe!prDZ$tpzsEHK~YH*|L0i_q5J1nA48Ly`N^+pw`sX;<0=2Y3X9AfB( z+cU~|Fo*=3dQQ6xBnTXDhwsa(hZ+L1Yy;PB@-YVOkmVQg8*^{5a_R*cC>V4#v51Si zA@JKC(T(zPP*uH&SbzQmbA@@(k%Okt?QL0?D*HN#Ib;T(Zl-wo_A0c`y5@Bm1~XIU z8c*3WR)d;=^&beoPjfW}8mSYCw1RewAMMX!>tdn6PrgposHE7>Zx`Ip*=^HE=)~5>40XG0DTUa?zGzO<+M2|ZGf1awNjGp zOPUaBp8dBoF#kfRTT_iUFc89@?=*J_Bgm%94>Un z#igtaI8c@$xhD*qfUw;>nmkqN<&b>_5f?*9EYeDgz#i&fSG>o*2ysJ><^-JY0vuY8Rzt@^8B)+Fl5=j&2vJsFq`>|3y zUAcut!}nTd9N7D9hSIWWpJMmZ(?@6pqqlD>=b%tlK||xFLa0BkABM&^b;rhqU`nE# z35WNv^F=p-okuW~PK>4iw{hP%Q^xm-z+27~RRa^ua@j;I(K91sv~1=AhWQBROPIZk ztawZEdwrc4vCy$ssH*B)Tn@U5h2%#`(8m_0t>L{^Za-=AS>Yhajlqy~xdl{k$` zV$@X7S8{0VkBz&_n=FwlA5599n<;><9GFGDWUf}6Sk;c40(1-urdUr@2yKNBaN@Wu z@KlZgoMWZc(Wsb}9N@04$n>pGDf#GAe##palo}X3EkyYi)MI-%_D7G1hQKI;vaHGr92~@D zb!&K7l7*Bk1A;usI{zv*j^OIViZB0-@&*N@g)$)-AcE|8^56n=;YbwuSlbe+58}o% z9-%iJ>y}jzCiLX#)yC>uoAkd0$ic==A$O zIs$K1<|pjxQDYJTC3~>OixCvkGinuc7b3BrokLG{Ng~LDtbYhEfB$YAKwMvn4SM)C z1R8yWJjojA8+_`!FNZvp`W{`jH0+{X3t*bnv@CB~?i!THpcxT)6*A`8NF8lyLgGZo z(g-#-Dyy;MsvT}}Qtr&B_qmW+L%V!`sRh6(WbX8?ex?;P{%Z>^Txa~KKI!IY9g$F& ze|O6KHOyY|t?JB#-E)+wD9V{~yBX{`bVMS2DZshrfm)Vum;U(Ti8gA<@TIEhPv?_Q zH3}9Eo;~s;5t+Zf?u^?9!9kr|zUHYJLB@?YJEELw6K&8 zWw%XpNTjO{x>?V*AW4YHfT<%|){iib6BmQ#!x`^M9l2Qpvk!U=HWF69;Mc5Ad5wi5 zGbU8QTZ5rrQcy=<0f$@Pa%6M0CuH5DCdnhq>J`jBxEO;m40V4#vATzb3ly;;+}Y6Z z`uy0(*i-bYK#!%ss4u<~CE*~kQbO~91H7@mY1WEmW3~&Y>^KY(VQ_|VV~+K__TY3F z0LdC{5<1T$ywX?VXLHL)Z^aMl5E8TqK{$v0)e3gb9StlwZgeQ!YKOF#~+13R0;mp z?=o)D=Nk(IhQa7nm6Uous7)NBxptDJPW@&`%#XERHV+tOcsweD?NBY>*GI`qdh;M^ zXK-_!`N7hn0vQeb-57r~;9lUH<3%Qj znQb%bkn`gO7Dzojp3!$+yz^4#8uSyfm~N{e?uy!2AQSZ-T_^c8xI^L0YSq23+P!FS ztWok^Cn0M7%Qfb1jt`DY=fm<5p>uW#SY{PT4CVY2f_O;(ofm@Kx|;Dk;|-Z7y)YzX z^Yd$@tNqflH8h1%|!_o7lGdQxHXv{OIl~$r}uJ-c?Z99L-@CXGZ26xCUNpgkl>lF4U-{` z+KZW-2s1|T?7CMCQglYoDNCt~0TE0+{-h@2;YS{Q0e$iX(D5fHr>_-LanT^W7(ZMy zt5>_YyY(*YEJn>0~kM~Zc0N&Yc|Xz((XSwGV=zOe}8oA z)kJZgWb+<*(Fkjc93&&7U8UWK7hy|#<8m-3L|=b5Gp#1^%F$Ps1bQ_+LO!pU^%SKi zQBEM}^F>8%XzU?f$uKEeWUZJ=pO1{B?V1u>uWR zXu?O3G8#CuV4+mYlPYcW_^X$$n<1LYya>258TT`imow{rUb~Razt@v|%NW12fyb49 zv=t)X_~Q7)?1al07tf_k7$RMz!CHsjQXu;=Wmf`*r2}ZuL}s?5Q^sP#(l60FrC~7^ z4|R^-Y(Vd9j~#(jgr&wjqRc8fdT?9*(KGhHpSUP&5R3lm!L*Sh()*G{HA^VVl(_V`(cLiZuO zGE)3W=(C0wYgD7f@IZl>iLM{z#bJxF?b&kE08-3~(WdH`nMQ60agl{s>E6urY!qIM z<3lMy6ry~3%}0ke@livkLgT%czc*@7T^q8~kAy-G>fjR%9NBOxhd(L6PYpO9uZ$QR zjaN=LD45!yq#Z4Q@3;15%@WpuBF zxzeD(d*ipU#`K&QQni~ByS&#g1M~MqZQHu2@YhL9OTU{FpkGzn2@|; z`QnfRu~7uR(P(A753>D+@syhRmzFQ_#{t737JFl)e`DEE^d|fb-c$~pRG9V?Sl%gG zjaGJtI|q&()xF6{#B|#QtgaOP5lf0mju<3lRLW1MO-m3IE8EE#slniT5Jx@1z#Jh7FxXD{*$TZDEOYd?#b zD8@pkeR^U}9I9i7FI!8D4f9zJ>Yhx$@;W=Wx9dc*&8VwOJjt2I59nXtcY?n>N(N znjp#Cvc8i^kcY2J8=dv?U9>ip{mi4fZ8N4e64awt;5&Lej${fHqAMKm9VOVUki*y- zK0#O=VO#Otl<xV`#~W;+o-z_t`Xt>)d_ zzR7Opf7P?y*^s8tFJ@<}D~2Co?`xZRyd+9($|B#b-slU0h;i^K)cGu$XW+m!D;-eR zfbT66GccElJ$j}OyScGux8K(n z46vgNH#!Y{j(|L_`HRCBjt-}V4E|&DGAt`d=@dIt!@PdAtk3vfgwy^yF*?&T!Vcnv z0hO8`WEk6IPSX1Hfq6HopF zb0H7?4dQh6fAcaAaePDh<#X-nj3&Y@vrWfv#7|AxJ`+Z~qas$DE3z?3LEHVV)(m1h zin8fA<2Ac(nnTk=qRhZpByCR1mNxU7h&$luaa|M;B6aG59~~pAvG6L7i9Up%Mz(K? zGTt^hB!EEPui$5KEFP?V8==Dk7n-+z}zj7nsn z8q&Z!Lw;oYN?mybygI(X&?4!t!#s&nV|Vze@e#zsASSo8-#Lrz{BVWGPU$KpS_!=I zBF6-mjOy8JhR5L8B}^n@kox&B*Zr<xv`P85zjP(-+-VdQA zka$I=c7palolpk(4n;}&QgY!ow$Gd9Q=|_XhehDKP{Bg0pj7)wZ`HlKmJ;P$TfxNb zOS;AhUWUh2KRGgN+7K0Z3)7EG=dskJ)@cZaWbl5Z(;JM%H83D2W>Zo3yS&u+`!rN| zlviNALqxU9b~P^ZITURIQbK~OPQ6u5F8mZh_zP^`lF;eHIy6*77n9K9bW-*fd>#9I z4(Ut2E=?!Odt-zqK_1N?^-K#0`Dxlk%pf~jACQr@6Kc!sx9yo6F+WYn*%nMh;|-b8 zdG4i#=wMaO3jjX_Z;@iwype%|iR7BNd+MiNZUNs5Ov0b}=r}N?8|SzC9pQBjFfAZ? zcT}pGXpmdSL??~YS`M;(VV@WI#Q6?&1EZ`s-m2wjwoKb1202eT6jWaDqO*|(1)|ph z$b)=KuT*x>;tagPCtGk0`h!eL7QgAnrdlYq;{W9Q} zaD!Q6lR3_zMmchPYXAxNxXXKn^xDeQRhCW?gfcu79Y_o9AEEKjz~AdZo~}vAt!itR zLpE}#m8ZJ;27b!6+pw0-^*70Dwr+yjz82}VW+x{>$1=WfsHJL@r%FO?=^c$O9mS<5 z9F8qJU{QmtBv%gGnhM9rI@IiyrRRYRH9==&FQq-0dbg5U-|QZSI=Q}()OJBiO2x=N zYH&T?j`?xDw=b#2O4@^i4#BL&c841pn5=%b4^w+@2a2G48p^k=C%IS_?mmd*UmIX1 z?B;7n9S;g_oPzgAIHCmd3p0@`fG}kIPQRD%_P1gOg6oxE zKcK1Xw(1=nrx;z0Ji|idR6e23_VnFFmd7Rae2~g`yNo>H0iPmX68F zq)USyk4^$;q{|G5$q49qwjnE<$-pWMcn_CG1zp5m5JM(&1+-B{JgY;JRVC;M?ACqJ z`Ox@Bl@AKcdZsy`3jP&1VZU)TF8-*E@3{lo+PWtV2d3UvpOA#N*@3#Cye#sW3}u_l zWcWGoQ*Ks35^3kI3X)6Mm$aaSh8kmYv+>g<} zy91>}c$Ei6Ldq&Xhe&;P&MW>8WMwsBR;a{^_3a8e7c$B3Ja!fmP;Dd^oOCdJIs~}P zP>nUSqh-UBfU{*w-*{hj(3q ztT?{=BbR>xVOUUMbQIexp{N>t1X)=~@Du8?3jGjx7d{@(6+h+%<#*hO_nHgNN2=D| z*@PnSE1Bp*`Bo**duGPw2vd0x9M{(bv;_&J*!r$;Zrdn|sf2e;64Ll*OzmuCu|nHL zCG@P#kd=9RuYe9|X%gf!OW$5$w^KuVW!0B-__Z7qY@@e8a&;{V()N+lcUBnUSf+ow z07JE-I+P*?U%xh}YH9HkI=V|QzAeTh-I%83=c@Qwigi5VzUbie0D{VeG( z!s`O4x`6Rhf~bspBoq=W=sP_}ot+D-$(SLsaW`*m2yUGdL?A6f}l>k*sliq%5^d zSSTT_8Ce-qnMinP-+h5x7gwz?V8S=-_GO6q1aE*)keR)g?~2^E-k4E38;?-yl5voS zHEy&~Wi&22PcWoYX>z=}oO9=BcU7eQAi3OcbZ%0&BBmAl(Ec*=Yh0ADhs9YtvQ>tw z+~2z&(m8I=wqgwm66dUloFL@ySF3e3KzliR7D!LeNR>|)5;cnu%*7i}1Ubq`<-lae zppz!Nn*sNVK>3Q8@bQZYZIeNitC!Uy<1p0I)XpJ4`|+u3*HZt=YMVTnqY(SfcpFNI zZ@#`{HL0!e^}RU(>N}2e8;E*hMB$BA8f9%=&JiT5jqfh<^OcY7687%Xs~=PDCbw6Srxzojv7yEnd@ zAdRIARAu}*b9yTsF4IT^4VmqNg6k=>H}nWoww^3E60Cs^nNZuJX9b4I?xdN}o>up{ zWc~24SD(dEO1y;n(UD4i^I56K`{0p3e;dfyE<{tL=yBKn(NX`a>i7ML(`pHiyXvaK zcgdbDkL0b+uw8E7R39i}g`b$XvPP-??g&@MZ)j}*TOHJY>yP-{jBOz}owfaI1B7mv z8QYp?e$Lhq^4vyK%-i0fwrhbY+s!s(Nn=ggZ`jR*A5wg}7euy(1xG1Me^Jqik$A|CJSyq;QRj zr`Jc>)f`tghwM_Ao#-lman4=p&m`u@S-H8&&%)S>U{g{YhRniDEL?UzJo0eu2jBkX zoIy{4lIvC)7mixJ4<@~^mM{G<{d9ys3gLDH?X}%2F_9c&+@wy&Vwm!xpj1&zUO)Cp zZ}VJCGd`v=3&`0vFB>I7!{1{qZq0LAq}fpwcVEXnv-jB4#1Ck@diuV&TqOZZHDRJr zK-|2TUR)E8>z#_S(+)Vlxphr|&~-B-N8wDWFE_XOA=2Dz&b~~YGj$>;r8R__krAEH zkYV_&6vE#HCYGPQf-)Ypuic?IrGK64<$}un{5`LD3dVvJWq==d}vG_4{?U?8O2@nKHtk*_i7!MbQKk(l!7{wpRkLg1Q*b7%c(F7=n8 za?vP4)kyiY=}Vs6c85TC6}=e(6krX)DZ;8+H{Q!{K-TI&J=hUOJxG1`bTVaAS0k8H zrMc+`K5klfYc`^kRulego_xyk{t&z)0rWYTgQrX{M6oKsF}ZHIzNdH#%VW{UGU~04 zf(oSD+Oxj7uH-+In{UM(SsM@;(DugF_l|rj{pBV$9GR^`NbY{Z#I-FQ2kLE}W2pP6 zYJ!BiSI){qZ;n{|`JGZ!h)m1`vEv4>ja?&^@-9s9U!cGz0pWFJIqw~Lur{xtuG6rp zAq*8D6kzr=v0UD(P08Er=)lV<$CHjJ*ZFs%lu(45QxolsgA!t)s2_;PAcqrIYlWrN{ivL!sT@1m@O$WtcMMSABL^_gU)7|vgKf; zt17mh%aV-T6D!YRS!P8cQ&NMYu$G^8^jzVcO&{iuM_%O)kPFEXKjXV1uH!tN z&ZS9$&gmkWtg!9Qcrv(!z_ruZ!iy z6?9G_KI1|`GJMgkQ|IEnrevB{>#r|)%F<>O(R{ySi}&^z+g9%Z^SCV1EVj`ug=69= z(b#cjXOTc?wzBf}k93x6(8p2%;oJl5n%y}lRS=qB9Ih^?B2UU@wiL6{nt9u`(%<{* zIee67r*KuWv2ab^u$;FQQZiIBP6Yh;WrMp_gBU$c;{lVb$x0-Ul?F@Vy}Ig4)}G9z zJY}|AWhLf4+zcV8NJ)Rm&?l)O!P+q&;TLT&CBO!Btmw-WI#lai zKz3-?xst9KDGH8;=G>4IILCR$r=PZ5U#{d{+)5OjdbGMQD9_J|V!0|gq-RxG^aeV$ zhJsGovsH{L-b%<3)GQ87$>74@PrUzJnyQ7cYIxpNv`1#lEOe~#aj}r|TIaLAN9RIS zbyh|j!q4`)JOJh{;AZ{$YWCBD-5|BwZN_n!51Jotl~2y3S|rBb1Q$cO+4R;@XQ$?r zM>VUV6FdPq*W|WOJolSQ_P<-CNXJAo_kzjK5`ic|RwcZ;u6^#)C%fhUXgO6bh^5GN zZtjeg(H1JPOsB=u4e41kC%e7;gp$ZfU%Mi$v@9KxLd;u7@@gzi)7t1wSKT(S;9z^x zeJ<*+-Vu_3bb`zDQx?lrmSRm!qE~{+pu5t9*~x+w=jP!|9ro7(uT2bvcd!;Hh3a@J zaKh(SU_k`n(T`|)sdBiMe=JbG&gG>l@|4i1{XodyC0ULnnJRwA2=n)5UH7>-E_*f@ z3nzjKqqwRR*3zkP9dN^x!?@8w;n?2NJl3LnW~8SWaD|+~LMKvJc4LQc*GKk?*mYvU=-J>rx_N2Gi{(a0* zQmQ_>?{A5nc}=XvgikH~O(QbaXFD}|ii5&8wTQi!*QXsKH4-K-_w#l*;~H!OZ`CbY zXjQYGS9p0pA>RMED}&giJhfW-)Sc>x#51MCa&mIFwIaqZ z(86EKVWBfzwBJtq25zC6_R7A?xhMu-En4CrsMiXYIdU*zm2y~uZq(u0k>*g1M_+t| zGyGKzFCPkaPL6%lzz zRPZM_z+%pEIaK?^QHI#m#MJI)$wQ(~IwS4Ew|^Bgae--E%z2{3X9>E)D9B zK~$EhXxGl}kC)FE*B9S4yX{MkV0^B8rH_O_eW309{ixv+mJ-E64LQSP>$zFSCx!mz zN5lzKZEFV#!DXa3s2IET_1=yq$*b#*1a2!n>l>)jXKKA_y(5a3P9Xdk*k7v^w@+|z z7)`Z|#_RRZ?n_vu81_xLsZ#Ose&z{U*xmZi6?9!k!L$M;6?4$6y<3#$lG+-X5FS1| zJU1>Md87W*eOc)??tviZ*EydeE>N=7P2T5AbRXliBhA`15vGb<+KKK}H8qJn-Ia|l zV1>Q9r}|uVU*CkwXkU5tmE{9*U_Ci@he1l5Z9Pv_X?T|31lC8eyvX*#Q33veYh%T7 zpG+>4$-0|tN;%{ELaMu8M*P6sy+B5KH+dhwe!7C5B`}~^w+39 zv4ikj@&OQYun;L*YM8t*oZa~K-qGEp-D~LVSPKGwww>0%x=-A74UL+RCV?_ZHB3Qs zr`=WIJG9jZ1MQ^UFD+C-YoMlqX^GyObf`?Gx`^KIYT59Vm5LMEn#j6-?k(jKyu~~A z0tXpFePt?2(X>B5O=rD6yKDbf_&--<1D{ZgrMicjpLCyi;5eMjN+ljvsuwdMy+zAi#fKlzejivG}ov>CDB+r-%;1y3F?4AlavgI`TtEVdE3to_aY$rZnKzM!qWbarqo zbU6TrkR7_I{KxN`TV}Bmo{L{7hTdoa1uOnl4!4JFVNe(xfQQbFlMB6Mz_U2Ra1RW4 z;80lhj|Q10DuEKgt8cvD3m9M%?o&EB3=120TB2@vGxu zz{7xN!H)iu1VMO4&INp2hI&rw7JD&aZCfhc^s(egNawsEz>-1D-`U^TPvUo$CiM zer2s0@G#(^7s)f$xqfvsKfGbU^8*;avXl&X81Ve+Z@`{a#`dS*2?hfmIH6hOu^I3% z;Gvu7Fcy)2qE!CV&@kZn-@-F!ysTYV#ZTSCht5Y>7DSW6mY>-KwonVtjEqt_{U(O$ zyGlw*1X&8`d?0%v2`OPQW3&?ML;GJ3F)YOFV^Z%l` zGzTJN2l-78EH^Ld8t9sknL~B@x4d4maQP(@^|4&Cj_>?)m>@??Uqc- zESS=4S1o}Nt!{MHx6RzVshrbi4Wxbp=sYwH(iWi4d7bo;pZ_EH!^V~0_O0)>^yYhY zJ8mfyiA7+L%Pi^zmhMCa<}U=3)8`H1X2Rp8DQEv%tldf>Td zZKi)8(0_(mJ90?~dHE$Eew?ZE(w)FCeHXrb58rl~ys*k8m5-Q-U`j(Y?Db!2!a+?a zYa%4zc`%f#`8`{t;@*Em2Odqae=U5TUnhxvoOitazt$PCO_`xwik>!0>92_$ zP0|02@C|($!IS!I)R&(3=6|g-rs{U$n>>bUmYT=xhJP!3pNq&$1&y_VOV4}ezt)-D zzy>q*!O!ta&7)KLzZJeWH|kmao+t7xrRa#2cK=#u7zTSmqZtPKXZd0n?4O*}_h^A( zuoqq5yv{HT_Ck>IJz8KG>; + + + + + + + + + + + ); + } +} + +exports.title = ''; +exports.displayName = 'ARTExample'; +exports.description = 'ART input for numeric values'; +exports.examples = [ + { + title: 'ART Example', + render(): React.Element { + return ; + } + }, +]; diff --git a/RNTester/js/RNTesterList.ios.js b/RNTester/js/RNTesterList.ios.js index 0d92f58944c..51ce4798152 100644 --- a/RNTester/js/RNTesterList.ios.js +++ b/RNTester/js/RNTesterList.ios.js @@ -23,6 +23,11 @@ const ComponentExamples: Array = [ module: require('./ActivityIndicatorExample'), supportsTVOS: true, }, + { + key: 'ARTExample', + module: require('./ARTExample'), + supportsTVOS: true, + }, { key: 'ButtonExample', module: require('./ButtonExample'),