rust _#rustc 1.76.0 (07dca489a 2024-02-04) @A}}-62a9b4d83244cb2br#3JIb'' @-4010f8e9d1f7f9aarustc_std_workspace_core?-]-fa2288bf7728f91c addr2line),SO)R%X-a2e883cf5bcf6347gimli$?g')&-df8440ef641907f8object_O?#-9e012890a70780c2memchrG ̇삭-60338fe528589910vt'FKj-401344856f0fc3c5;;;< 16<<< 32<<< 64 <<;h;m;utests@@ @  @  څ ޅ  ؅ | ll l  l  oo o  o            .. .  .  ٗ ݗ  ח  44 4 4 wasm32       x86_64       Imp         ݯ ί ү  ̯ simd128       avx2         sse2  4 <    searcher_kind_sse2k j j j  j j k  k k j4 j< searcher_kind_avx2p o o o  o o o  p o o4 o< searcher_kind_simd128u t t  t t t prefilter_kind_sse2           4 < prefilter_kind_avx2           4 < prefilter_kind_simd128             x86sse2<;;  <;;x86avx2FEE  FEE wasm_simd128         macroslogtracearch USIZE_BYTES USIZE_ALIGN" LOOP_BYTES""find% "rfind' ""find_raw* " rfind_raw, " count_raw"/'a/'h" has_needle"confirm4!4!448 4: 4 size_hint=!=!= next_back@ BB D B F B!H B!J BL!L!B!B!Q!Q!QQU Q"X!X!X"[ ]] _ ] a ]!c ]!e ]g!g!]!]!l!l!llp l"s!s!s"v  has_zero_bytexLOxHIsplat packedpair|| default_rank~RANK | with_pairfind_prefilter pair| with_rankerR with_indicesindex1index2|HeuristicFrequencyRankrank|DefaultFrequencyRank |'|!&' rabinkarp ! !is_fastforwardreverserolldel is_equal_rawshiftorMaskMAX_NEEDLE_LEN  twoway find_with_prefilterfind_small_impfind_large_imp rfind_small_imprfind_large_imp))))contains is_prefix is_suffixis_equal)genericV LOOP_SIZEneedle1!!!  search_chunk---needle2!!----.needle3!!-!!!""search_slice_with_rawfwd_byte_by_byteFrev_byte_by_byte0count_byte_by_byte0%- & find_in_chunkfind_prefilter_in_chunk&min_haystack_lenmatchedaarch64 is_available    ! ! !  find_raw_implrfind_raw_implcount_raw_impl!!!!  "!!" !!3    ! ! 33!!!! "!!" !!3    ! ! 33!! !! " !!"  !!%&with_pair_impl3 & find_implfind_prefilter_impl&2defraw memchr_raw memrchr_raw memchr2_raw memrchr2_raw memchr3_raw memrchr3_raw!cow!!B new_ownedas_slice into_owned!;extdistanceas_usize<<<<Byteto_char= memrchr memchr2 memrchr2 memchr3 memrchr3  memchr_iter! memrchr_iter memchr2_iter! memrchr2_iter memchr3_iter! memrchr3_iter!!  "!" !!! "!" !! ! " !"  !:::::;!memmem    searcher&* SearcherKindFnsearcher_kind_emptysearcher_kind_one_bytesearcher_kind_two_way$searcher_kind_two_way_with_prefiltersearcher_kind_neon <is_nonefallback&MAX_FALLBACK_RANK  find_simple PrefilterKindFnprefilter_kind_fallbackprefilter_kind_neon MIN_SKIPSMIN_SKIP_BYTESupdate is_effectiveis_inertskips! Gdo_packed_searchMIN_LENMAX_LEN find_iter!'n rfind_iter!I  !I<!I"!I<!II; H!!<needleI; ;I!!<K build_forwardI;build_forward_with_rankerI&; build_reverseI; prefiltervectorVectorBITSBYTESALIGN)% load_alignedload_unalignedmovemaskcmpeqmovemask_will_have_non_zeroMoveMask"all_zeros_except_least_significant has_non_zero count_onesclear_least_significant_bit first_offset last_offsetget_for_offsetOOOPPP aarch64neonMMN)%NNNNNPOOOPPPOnes1v1   OneIter!!Cit !! !!TwoSs2Sv2TwoIter!!CS!!!!ThreeSTs3STv3 ThreeIter!!CS!!!!|Finder&byte1byte2||||Pair''||| W hash_2pow FinderRev      <   Wmasks  needle_lenW  X     TwoWaybyteset critical_posshift  ShiftSmallperiodLarge[Suffixpos\ SuffixKindMinimal Maximal SuffixOrderingAccept Skip Push ApproximateByteSet  S-SS---T-STST - - -U-STVSTV - --Iter!original_start haystack!!W-&ST2---S    S!!CS!!!!T  U!!CS!!!!U  V!!CS!!!!W  CowBytes ! !!!Borrowed  Owned  !!Memchr!-S ! !Memchr2!-.S!!Memchr3!-./S!!Searcher(  SearcherKindemptyone_bytetwo_waytwo_way_with_prefilter  TwoWayWithPrefilterfinderprestrat   SearcherRev(  SearcherRevKind Empty  OneByte K [ l  PrefilterConfig   Auto    Prefilter    rarest_byte  rarest_offset  PrefilterKind E  PrefilterState H skipped  Pre ! prestate l ! FindIter ! I b p l \ ! I  ! I  FindRevIter ! I b l \  ! I   ! I W I K C  I   I X I K C  I  I  FinderBuilder M   <SensibleMoveMask      NeonMoveMask     %7%7'7'7)7)7*7,7.7273787<7@7D7D7F7F7H7J7O7P7U7W7[7_7_7a7a7c7e7j7k7p7r7v77777777777777777777777777777777777777777777777777777777777777777777777777777impl Fn(V::Mask) -> usize77777{777777{75impl FnMut(*const u8, *const u8) -> Option<*const u8>)impl FnMut(*const u8, *const u8) -> usize7|77|7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777   77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7SSS՚ÜMSCSDžᇁ!!MSCSDžᇁ!!>SCSDžᇁ5!6!=SCSDžᇁ>!?!TSTST쫓MUCS!!MUCS!!>UCSR!S!=UCSY!Z!USTVSTVج˜MVCS!!MVCS!!>VCSm!n!=VCSt!u!W&|W|W|ϲMW'|'|޷ߜMߜ' ߇ϋ !&WX哊ɑuMX  ᭢M  ׯMMWZZǼݩW  <MX  єԠMԠ[[[[΃[M\\\[ݵPMM\\\؝~]]֛M]^^ܟΤM^  ج֩ÄmMSSSҮ\-ܤMܤTSTSTMUSTVSTV¯Maa b݇喥!Maa b݇喥!aa b݇喥!aa b݇喥!W&ST2߆ߩMߩS  MSCSԣң̌g!!MSCSԣң̌g!!>SCSԣң̌g!!=SCSԣң̌g!!@SCSԣң̌g!!T  Ƴ0MUCS!!MUCS!!>UCS!!=UCS!!@UCS!!U  ϘŀHMVCSއk!!MVCSއk!!>VCSއk!!=VCSއk!!@VCSއk!!W  璔>Mg  ϼǀ!Mg  ϼǀ!h h 8!Mh h 8!g  ϼǀ!  h-S!Mh-S!>h-S!=h-S!@h-S!i-.S܅ƌ!Mi-.S܅ƌ!>i-.S܅ƌ!=i-.S܅ƌ!@i-.S܅ƌ!j-./SǏØҀ!Mj-./SǏØҀ!>j-./SǏØҀ!=j-./SǏØҀ!@j-./SǏØҀ!k(͗ŤMkkkkkֵlll‚ߣMm (ӂM   m m K [ lؗM     n䈷1M  o   o o· M  o E   p H p՚ީι1MM  p p lè !M  q b p l \뤎к ! I  q b p l \뤎к ! I>  q b p l \뤎к!I  r b l \꼢 ! IM  r b l \꼢 ! I>  r b l \꼢!I  W K C؊ߩa IM  W K C؊ߩa I  X K Cٟ IM  X K Cٟ I  t M˟M   t   ؏֯M uint8x16_t          101112131415 ט   u   ؒNM Ql4 =Xs                                                               > = J<M43@*     ˻˻   6  ˻˻_      +!   _    One  s1 M v1     N    ЫҐןן؟ ۬ MMMflagsJMfillJMJMwidthJM precisionJMbufJ؀      *#  _  {% $SK: &   d &%    b *&   _ref__self; (e (' b  ,(   \        .  ) U b ** * )* + ++ +++  +.+ +)--  --&-  ---  2 -  ...)11  1 1   1 !1.1      191  13U+2 2  U+ Fassertion failed: cur > start22#2 2,2) U+33 3#33! U+3assertion failed: end.sub(One::LOOP_BYTES) >= start333 333#33(]++8*4" 44"!4 4#4  #! !  + + 8 +$ +% +'$ +(% +&'(& !+)  ++  ArgumentspiecesJJJ0 ]+ + G)$%+*ց4. 44.-444 -,442 4424  1 44$510!54+5߃0/"555 ,3#5 3$(55 /4%5 4&(66 6666#5'66 5367 6,67)6* ) * + - 1 + +449*)))*+- 1NeMatchɏ +ց 44˃ ׇ !chunkcurƈ left_val$ right_val%)a,b/ֆ  !  ###   ˅#4ۏ*ۏ**+ 3+ ++* *)*@ @ )A -AAAAA  A.A -)ғBBB   BB$B BB5B BCC   C  C.C)DD D D  D !C%D  D!U+D D —D D U+,assertion failed: start <= cur && cur <= end,,DD#E E.E)E EEE#EE!(]+՚՚+:,F FFF F F  ՛՛ ՛  ++ : +! +" +$! +%" +#$%# !+&  +(  ]+ +&!"('F, F.FF  .˞ -.FF,-+FF(F+*FF/F߃*)FG2 G4GG  ʠ4ؠ ʠ34GG231 GG(G10!GG/G߃0/"GGG )5#G ɢ5$(GG /6%G 6&(H8 HH8H#7'HH 7EI9 H.H9)I, ? @ABC + +FG;@??@@AB͔C—՚Ĝ՛՛ًٜ +FGġʠʠɢ֣ƣ  !Սͦ ٜ!"&)/   ̖!##      #F,AAAA A-ӒA ӒAӒݮ?Ӓ Q RίU SSSsSS ưT T T  TT T   T   T)  TT T TT TT .QSSQQQQSS ưֱñ  óXXXX  xY2XYXXXՍӶYYY3YUYYY ķ haystack_byte^ ^aa b݇喥 ú] ]SCSDžᇁ  ú ú]OneIter^searcher^it ú   ] ȼ ߼߼aúa#ҿ 9a1a 9a)b8_a<_  _  úҿa abbb9ҿa ҿaaҿ self__searcher_ҿ_ref__self__searcherbúb ; bb ;bd:bbbúc cc cd;c(b bb dúdd  d e<dQdd߼gúg$ Ag7g  Ag/h@egBe e h hh hhAh gh ejj jTwojs1js2  j  v1   j  v2 N   jllmml mCklll-.u: Etdt EuDrts ssbuuu HuuEu uu sz; Gyey GzFxyx xxbzzz  JzzGz zz x# ل " Iƅ̅  . I" &LJ LJ  O   ."Ћ֋ ֋ ϋ    !.      9  3U+   U+assertion failed: cur > start#U+  $U+/assertion failed: end.sub(USIZE_BYTES) >= start//ڌ   ڌ!']+(+1H   !  ! ( +(+ 1( +"( +#( +%"( +&#( +$%&$( !+' ( +) ( ]+( +'"#)(Ѝ, Ѝԍ,+ԍЍ߃+* *--!ˎ/ ˎώ/ӎ  . ώŎ .Ԍ0 ,0"H   ( +( +č2փً( +ȍ  !Ս "#'Ս*  !       H P I ׃!    K  . K    $ 5 ›   ›  . œƜ Ɯ œ  Ӝ !%  !*U+    +U+,assertion failed: start <= cur && cur <= end,,   .]+/+/J     / +/+ // +/ + / +"/ +# / +!"#!/ !+$ / +& / ]+/ +$ &%* *  )$)(+߃('֞۞ '+۞+- -  , ,. Ο.Ο. Jۙ/ +/ +0טߙً/ +Ɓ  !Ս߆  $Ս܈'  !    ҃ ߝJ™™ǙǙ љK  @ڎڎ O{ۣãʣՍ4P̤qפޤ Бʸ’0 0úӓӓӓ0 0UCS ˕ úӓ߼ӓ1ߕTwoIter1searcher1ҖitҖ úҖ  Җ ߕߕߕ1ߕ ߕߕߕߕҖҖҖ߼Җߕߕߕú# V1 V)U<  ˕ ĭ ĭҭҭVí  Ŝú  ήWQ߼ú˱$ \7  \/[B  Ϟұ ұ \ѱ ̱ϱ 22ߢߢߢߢ ߢߢߢ4ԣ 44  4ô Ф  4ϴ    4޴ 4 ťťԣ   ԣԣ  ԣԣThreeԣ  ԣԣ Nԣ4ԣԣԣԣԣԣԣ ԣԣФФťťťԣԣԣԣԣԣԣ ԣԣ s2ФФs3Фv1 v2 ť ťv3ť  ԣ s1 ԣԣԣ ԣԣФФťťԣϭ ^ϭ-./ï: `d `Ȱ_Ͽ ȱbֱ c`  ; be ba Ƶb  eb Ƶ #  " d  . d" &   j غ  .Ϻ"      !.      9  36U+  ۽7U+assertion failed: cur > start:U+ѾѾ  ;U+/assertion failed: end.sub(USIZE_BYTES) >= start//   !>]+?+1c   !  ! ? +?+ 1? +"? +#? +%"? +&#? +$%&$? !+' ? +) ? ]+? +'"#)(, ,+߃+* *--!/ /  .  .0 ,Ϻ0"c   ? +? +2պغ˻۽˽Ѿً? +  !Ս "#'Ս*  !       c k d պ!    f  . f    $ 5      .      !%  !AU+    BU+,assertion failed: start <= cur && cur <= end,,   E]+F+/e     F +F+ /F +F + F +"F +# F +!"#!F !+$ F +& F ]+F +$ &%* *  )$)(+߃(' '++- -  , ,. .. eF +F +0ًF +  !Ս  $Ս'  !     e f   z     j Սhk ʸG GúG GVCS  ú߼H ThreeIter HsearcherHit ú   H ߼ú# q1 q)p<    óq  ú  rQ߼ú$ w7  w/vB    w    y   z#x׀xہyzҁ  ߂ҁ؁߂yʁ_  ߃߃z_ …ЅÅ ʻʻ!օ{Ʉ؄߄Άʻʻ߄݇߄ʻʻӅ͉{Ά߄݇Άʻʻ#" )7<4O3b2u10/.-gBC,+*)('&%$#"!8 z~ x                 p       {      r         iPb`aQtsykmn|oRlvqw}u\jSHc]AO        !!!!!!!""""" _̫̫̫̫̫256I I   K FinderK pairߜK byte1  K  ήbyte2ή ή  ή   N  K  ߜήή ήή      ߜ  rߜ -      D  iȳȳٴ  r h yߜȳߜK ȳ     ٷ"      "       # ٴߜٷ޸͸ߜK&WW޻ պ ߜ ҽ  ߜ       + "  #    # r(     ޻      ۻ  "     \    9  D"       &  r h y   b''  foundaligned1  aligned2 aligned_index2   ߜ  6  L*L*ߜN*PairN* index1N* index2    N* ./. .-i. -K'3 334 ߜ>#5 5      $ 5 55 5 66 $6 66  6  66 66 &$6 6666$6 6' 7 7  6'6  $7 7  7)7&$77 7 ~  $8 8 \% $888  >SSaS SS end_or_lenSS_markerSّȉ%$ $8 8#8 >،، Enumerateڌ+ی+掇!$ # $8 8+8 >Take6n6#8"$88+ =؍؍^ڍ5ۍ5ݝ"!$&!8(& >('$) ')8N'+N8*'8.88.+-$8O+AO+B O+@ ABO+C@O +D@O +FCO +GDO+EFGE"!80918801/$8 8#,-/,929  2939 39 +99  *5$9: HTryFromIntError  תs54$:9!48:7: 6+76:::::+9$::<:= ::<=;$: :#89;8:  +;; *?$;;?> $;;! >:O!+H O+J O]+O + GHCDJI$>L>M >K LM> ߜK#>%2  5678O+O+O3 33  7    ЫҐًO+ߜ Krankerrare1'rare2 ' max &*+CDH~ GH ߜ HH I H#I ߜ II  I  I#  I ߜ J J ߜ J D E DEEߜK''K KJ6KKL LK6LKlll ڝl llBl  ڝllbyteP  PP P   QFinderQ hashQ hash_2pow     Q  ! !  !* !! !"! !" ڃ""" ""$# # ### ? ### >ŌŌCopiednjS*η #  ##ʆ =؍؍^ڍ5ۍ5ݝ  ʆʆ  # ʆ ʆʆ > ʆʆ ʆ ### ##$߄# ##  ˹###) ߄ !!"#]! !"ڃ ʆͅʆ ʆ ʆψK  first_byte! ڃʆ  ))))))))))*  ** **)*  *$**     ** r*+  +* * +  ((())**jԐԐ ( (((())*r h yҏԐ bKhstarthendœnstartۓnend*   Ԑ 7777778 8 8 88 8 9 9 9 9 9 9!9    ؘ9 9 9  9 99    : :  : :   : ; ; ; ;;; ; ;; ;;;;1; ;,; ; ;;;; 9;677889 76666777889ÚΛߛלǝ ɕܕȟhlenԟnlen   R< R< R< S< FinderRev S< NS< > > ڦ>* >>5 > > [>§ >? ? ?? ?§?A@ @@@@ ? @@@ ?Rev4겶x  @@$@ >ŌŌnjS*η @  @@$ =؍؍^ڍ5ۍ5ݝ   ?  >  ?@@@@A@ @@ @@@-۬ =>>?۬@c= =>ڦ§?ڨة ֭۬Ѯ§K  last_byte>  FFFFFFFFFFG  GG GG*G   G%G+    G+ rHH  HG G H ۶ EEEFFGGk E EEEFFFGŴ۵ bKɕȸܕոG    TTTTTTU U UU U V V V V  V V!V    ۼV V V W VV   W W  W W  W X X XXXX X XX X XX XXXX X XXX4XX/YSTTUUV TSSSSTTTUVԿĿ ɕܕ  U ZZZZYZZYZb_needleT[T[V[HashV[V[W[ W[ W[X[X[Y[Y[Y[ \ \]\(\_ _ __ __ _ _ ____` ` ` ` `` _c``^_ _^ ^_ b b cb cc ccccc c c c ccc  cccbb bbbb ff ff ffffsff fffloldggg gghh  g4g  ¹gg=hgjgg gjjjj j$j  Źjj9j  Ĺj2jBjijp ii iijlfactor256ZFinderZmasksBox  lߓE888Global CZ needle_len     Z  ן  8_ #  ן         2           =   s   >              ן       !  .Unique陭ۑ # $ #% &%' $&('(%$     !  "!"  G) ן ן  ןKZC  256                   ! " !# $#% "$&%&#"     $    '   '  ܀b à  [ [  ] ӇFinder] ӇӇӇ] ӇӇӇӇӇ  ӇӇӇ^ ^ Ԡ Ԡ` ׊ FinderRev ` ׊׊׊` ׊׊׊׊׊׊׊׊aa cTwoWayc bytesetc$Ԏ critical_pos Ԏ Ԏ c&  shift       c ԎԎԎ  ʒ(( ) (,( ϒ) ),)* * *    * **#  *+++# ) *  +8+ ,' ,/ ,'(())+(((( ) Γ͔+K[ min_suffix max_suffixperiod_lower_bound[[0   p p lè000 0+0/0 /// יbK6  67\717 7,6\626 6-856m7k6 55556ΝprebK\Ν[:<=ʠ=  ==  == =! >  > = =   9>> >ޢޢ>>$  8>?>$> ?? ? D ??   ? ??   ? @@ @ @@ @@  @!r@""!˧"!@9˧"@ @@#@#A&A 'A(&'(&'%(A)A#$%)$A 9B+B.B/. ڪ/. ڪ-/B01-010-,-B6B +,*B'ܫ*B 2B32323C CC5C 6C4564"C9C :;9:;:989C>D?C@>?Ǯ@>?Ǯ=@CAB=ABA=<=C78<ȯ7" DCDC!CC`DED FDDEFD'#DIDJDKIJűKIJ$űHKDLHDLH%GLD"MGMG&ME EDENEa (E PNE QE  OPQ O/)F TNF  Uɴ VTUɴ VUT*ɴ STF YF ZNF [YZ [YZ+ X[F \ ]X\ ]\X, WXF RSW R/-F ^NFж ^N.ж N^ (F `NF aF  _`aڷ _50F dF  e fde fed1 cdG iG jG  kij kij2 hkG l mhl mlh3 ghF& bcg b54G nG  n9G  oȺ o6Ⱥ oH  pH qp qp7H qųH H9 ; < < = >> ? Er< ;;<<<<< =ܡޢϢޢ>Σ  ˧ب۩ܫڪ˪ڪȯ֭ǮǮ۰űűEɴɴɴжڷ˷ѸȺԟbKν\ڽ\[ last_byte_pos=  ܡ ԟ   !j N5JJ JJ JJ J! K  KK K   4KK K KK$   3LL L̥LL   LLL  L MM M LLҧ LL LrL"M4M!M "M#!"#!" #M$M# $M 4N&N)N*) *) (*N+,(+,+('(N6N&'%N'%O/O` O -N.-.-.O 1/O  2O 012 0"P 5/P  6 756 765 45P :P ;/P <:; <:; 9<P = >9= >=9 89P 348 3" P ?/P ?/! /? P A/P  BP @AB @'#Q E/Q FQ GEF GEF$ DGQ HDQ HD% CHQ" IC IC& IQ MQ L QMQ Q ? ؝yLK(QQ  =4겶xKJ) NJQ * PN  >PO+ Q O Q-,Q ROR  U VRU VUR.S ^S  ^4 TRR YR ZYR ZYR/ XZR [ \X[ \[X0 WXR STW S*1R  ] ]2 ]S S4 H J J KLO Q _I IIIIIJJO   ԟbK[\J   ԟ   / N RVVV V,V W W,WX X X    X XX#  XYYY# W W  Y8Y Z' Z2 ZUVVWWYԠU UVV W YK[[[`  `a\b-b b(`\a.a a)b]`iag^ ]]]`bK\[/d ddd ddd d e Y Yee e   .e e    -fff ff-f f ggg$g  f  f ggggg h  g !"!"!h'h ('('&(h)h*&)*&)%*h+%h+%$+h,-$,-,$#$g-#h.h..gd h0h/0h/h4h 545435h6̀736̀763̀23h"1 21i:i;i<:;݁<:;݁9<i=9i=98=i">8>8>i hj?jh jA?jBj @AB@(!jE?j F̈́GEF̈́GFE"̈́DEjKj LKLK#JLjM?jNJMNJM$INjOPIOPOI%HIj%CDHC(&kQ?kQ?'?Q kS?kTk RSTR*)kVk WVΈWV+l XX,ΈUWk U.XlɃl l.b cdddegjZc cccccdd eg̀̀̀݁΁݁j̈́̈́̈́݅ΈΈ bKɋ\Ջ\[d   ?/n nn nnn no T Too o   .o o    -ppp pp-p  p  qqd p ӗ ӗqqqqqqq љљљq$q %$%$#%q&q'#&'#&"'q("q("!(q)*!)*)! !q- Ӝq+r++Ǘ r-r,-r,r1r 212102r3403430/0r". /.r7r8r97897869r:6sà:6Ԡà5:r";5;5;rs<sg s><s=>=(!sA<s BآCABآCBA"آ@AtGt HGHG#FHtI<tJFIJFI$EJsKLEKLKE%DEs%?@D?(&tM<tM<'<M tO<t NON*)uQu RQʦRQ+u SS,ʦPRt P.Su u.mnnnoqsUm mmmmnnoܔÕޕӗqӜљљљàޟàsآɢآآʦʦ bK[©\Ωn   <dd°°°ʒ°°°f f  \ Largeϱ ϱshiftϱ  ϱ   N  f \Smallperiod۳fʒϱϱϱϱ__self_0ϱ gٓSuffixgՖ ݶposݶݶgΘ period    gޓ  ݶݶݶh״hܴ j ͺͺͺMaximalͺjͺͺͺMinimalͺͺͺ Mͺjͺͺͺͺͺͺͺͺͺͺͺkk m PushmAcceptSkipmnnpApproximateByteSetpp   @@@    U    ф ффӄדU+  bK              f    ! <       bK  -  8 y'''' ''' ' ' ( (( (( ( ( ( ((   ())))  ))  )))) )) )) +++ ,,, , , , ,,,,, , ,,,------- ------ --+-!- !- -$--$#--&--&%--"#%"...'(+,'  ' (+ ,vxvy q'q' q' q'ܤ ܤ s'Ones's1s'v1    s'  ( (((&(_** *( *)gܤ**K+++:++muU+778 8' y"  Mx@ x  F88 8{U+   9 9  9  91 : 9 L:9 "  IvalueL formatterLƢu   M ~@ ~  ;;    ;;   ;<  l=== = ==(=<3==-U+= =  ==="= =!"!U+;assertion failed: cur > start && end.sub(V::BYTES) >= start;;#>% >$%>$S>'>>>(>>&'(&S]+))+>.>>.-> >/?/-,- ++,+* + +0* +1* +30 +41 +2342 !+5  +7  ]+ +50176?9?? 98?<? >??> =>??<=;!??&?;:"@A@ C@@ǁCՁ#ǁBC@@AB@$@@&@@?%@ F@  H@@ Hԃ& GH@ @FGE'@@& @ED(A JA A J8I)AA LA AL:K*AA NA AN?M+AB PB BPDO,BB B IKQ-BB BMOR.BC CQRS/CC!C ST0CTQ1CC IU2C DD  UV3DV74DXD UY5DDXYW6DD WlEEKZ8E EE Z[9E[?:F^F `FF܋`;܋_`FF^_]<FF Za=F&F]a\>FF, \lFFMb@F GG bcAGcGBGfG hGGhCghGGfgeDGG biEG&GeidFGG, dlHHOjHH U+kϑϑkLIHH jlJHlKLU+%assertion failed: mask.has_non_zero()%%mIpI rIIrēMqrIIpqoNII jsOєI&IosnPII, nlIuIIuItRIIt> KwKKKxTK Kvwxv^UU+yyYVL|LL|{WL Lz{LzXYU+ǘ/assertion failed: end.distance(cur) >= V::BYTES//}ǘLLL ~ZLL  ~[\L~M  lMMMM]M MKSPP ԛ`_U+daR RlPPPbP PPcdU+ɝ.assertion failed: end.distance(cur) < V::BYTES..ɝPQPPeP PPfP%PgP!P+]+khQQQiQ + ++  + + + + +jk !+  +  ]+ +QQQ lQÜ488;)< + +? ? @ @  A A A B BBCCEFHL1 + +54458 <ً +??@˂ǁǁ@ A A хA B ׆BBCC߉E͋܋܋FѐHϑєؕȕŖӗǘԚԛěϜɝ͞šߠΠޡً +ϣ topos8 0158:ګ ? Deqa¬ Ieqb٬ Keqc MeqdOor1Qor2Ror3SmaskͭUZήbjޡ:Qԃԃēē>פ߸߸פ߸ haystack has length , but must be at least  %vector cannot be bigger than 32 bytes%%cU+^^^ ^'" @  __ _U+   _ _  _  _1` ``` "   @   aaa a `+a    a&`  `a  baaa a ba"aaU+bb b!b  ! U+,assertion failed: start <= cur && cur <= end,,"b$ b#$b#Qb&bcc'cb!%&'%Q]+((+c-cc-,c c.c.,+, +*++) * +/) +0) +2/ +30 +1231 !+4  +6  ]+ +4/065c8cc8c7cc7d:dd:9d=d ?dd? >?dd=><!dd&d<;"eBe DeeD#CDeeBCA$ee&eA@%e Ge  Iee I& HIe eGHF'ee& eFE(f Kf fK9J)ff Mf fM;L*ff Of fO@N+fg Qg gQEP,gg gJLR-gg gNPS.gh hRST/hh!hTU0hU1hhPV2h ii VW3iW94iZi \ii\5[\iiZ[Y6ii V]7i&iY]X8ii, XbjjN^:j jj ^_;j_A<kbk dkkd=cdkkbca>kk ^e?k&kae`@kk, `bkkLfBk ll fgClgIDljl llllEkllljkiFll fmGl&limhHll, hbmmJnJm U+ooNKmm npLmpMNU+%assertion failed: mask.has_non_zero()%%qnsn ntOnnstrPnn rbnvnnnwRn nuvwu[SU+xxWTo{oo{zUooyzoyVWU+1assertion failed: cur.distance(start) >= V::BYTES11|o~oo~o}Xo o}ppp Ypo  ZQpp  bpp ]\U+a^q rbqqq_qqq`aU+0assertion failed: cur.distance(start) < V::BYTES00qq bqZ^_a)a + +d d e e  f f f g gghhjkmp1[[[[_aً +ddee f f f g gghhjkm ^ /049; @ E J L NõPӵRSTV^fn`c   haystack has length , but must be at least  %vector cannot be bigger than 32 bytes%%HU+  zzz  z'v  v"   @   z {{ {U+     { {  {   {1u  u| |  |t | t  "  ߋ ߋ ߋ ߋ  ߋ @   }} } } }}(} ō   }3}}-~~'~   ӎ U+     я " !" !U+ڐ ;assertion failed: cur > start && end.sub(V::BYTES) >= start;;#ڐ % $%ؑ $8'(&'( &8]+)  )+s ..- /ʀ  /- ,-  ++,+* s+ +0* +1* +30 +41 +234 2 !+5  +7  ]+ +50176̖ 998 < >ɗ >ؗ  ɗ =><=;&;:  A C Cə  ! BCAB@"܁&܁@?#  F  H H қ $ GH FGE%& ED& ނ Jނ J8I' L L:K( N N?M) P PDO*IR+   RQ, $SQ SQ- SÄDŽKU.DŽ Ä҄  UT/҄ $VT VT0 VMX1   XW2 $YW YW3 YO[4   [Z5 $\Zأ \Z6أ \^^]7܅]`a9 _`aݥ _E:U+b  b>;eed< cd c=>U+ /assertion failed: end.distance(cur) >= V::BYTES//f hΈΈ hg? llgk@ kjA ,  jiB 5mi miC mooÉnD nۇ8Šq% q pF .rpޫ rpGޫ rފyz{} ~  + +ԁ Ԃ   ؃ ˆwzyyy     z{    ߋ  ߋ ߋ ߋ  ߊ  }    ~ Î  я    ڐ ؑ ɑ         ѓ     ͕ ߕ ً +̖   И  ɗ ɗ ؁         ؂   ӝ   ܃  ן    ɠ       أ   ݥ        ƈ    ʨ      ޫ        !       0 1 5 8Ͳ : ? D I K Mõ OՍ g   | ō ō      ڪ       қ қ Ť           ج      haystack has length  , but must be at least   ج      %vector cannot be bigger than 32 bytes%%     {{{ { z{ z  z   y       ʑ ʑ         {      #  ޑt Ē   ג ؒ               mask_to_offset Ս             ̔ єД              ٔ Two s1   s2     v1     v2         ޔ                         &    _ ԘԘ  ؗȗ  - .  ș: ޙ  ՚:   YU+  §  Ƨ'  "   @    U+           1  ©   ө    "        @           ɫ  XԬڬڬ Ӭ Ȭ(Ȭ   3ĬĬ-U+      " !" !U+ ;assertion failed: cur > start && end.sub(V::BYTES) >= start;;# % $%ǭ $?'(&'( &?]+)  )+ ..- /®  /- ,-  ++,+* + +0* +1* +30 +41 +234 2 !+5  +7  ]+ +50176 998 <<;  ";:! ӯ>ӯۯ>8="ۯ @ @:?# B B8A$ڰ Dڰ D:C%  =?E&  ACF'ر ܱEFG(ܱ!GH) H=*=J+ βӲAK,Ӳ #˲ JKI-˲ IL. L2/N IO0 NOM1 MX?Q3 CR4 # QRP5U+S  S96Ŵʴ PT7ʴ T89U+ %assertion failed: mask.has_non_zero()%%U XXW:  PY; "WYV<( VXȵ[ȵ̵[еZ>̵µZǷ]ηҷַ^@ҷ Ƿ\]^ \JAU+_  _EBbbaC `a `DEU+ /assertion failed: end.distance(cur) >= V::BYTES//c ͸e  edF f d fGHgd  gXiihI h?k jk jLKU+l  lPM XoonN mn mOPU+ .assertion failed: end.distance(cur) < V::BYTES..p μruutQ ּvּt v tR svμ%ҼrsqSҼ!ȼ+q]+w  wWT{{zU +yz + +x y +|x +}x +| +} +~܀ ~VW !+  +  ]+ +|} սýȽ  XȽ ) + +ޮȯ  ϰ   αٸ1 + +ڤ                                                ً +     ̯     Ӱ    ұ                                                    ܀  ɀ ً +           ˅     0 1 5 8 :eqa1ĉ =eqb1܉ ?eqa2 Aeqb2 Cӵ E F G֊ I P g | } ΂   ө                                        haystack has length  , but must be at least         %vector cannot be bigger than 32 bytes%%  ΂   OU+   њ 's  s" ћ ћ @    U+ Ԝ Ԝ         1rǝ ǝ r   q ֞ q ֞ "        @   ۟   +   &     N  "U+    !  !  U+ ,assertion failed: start <= cur && cur <= end,," $ #$ #=&'!%&' %=]+(  (+pڦ --, .  ., +,ɧ  +*++) p* +/) +0) +2/ +30 +123 1 !+4  +6  ]+ +4/065 8877::9 ==<  "<;! ??9>" A A;@# C C9B$ E E;D%  >@F&  BDG' FGH(!HI) I*@K+ DL, # KLJ- JM.ñ M3/PPO0  JQ1ֲ "OQN2( NN>S4 BT5 # STR6U+Uߴ ߴ U:7 RV8 V9:U+ʵ %assertion failed: mask.has_non_zero()%%Wʵ Y RZ; YZX< XN\]> [\] [G?U+^  ^C@aa`A_` _BCU+ι 1assertion failed: cur.distance(start) >= V::BYTES11bι ddcD cf  feE g e gF=he  hNj ijԼ iIHU+k  kMJ NnnmKlm lLMU+Ǿ 0assertion failed: cur.distance(start) < V::BYTES00oǾ   N )  + +     1t  њ  ћ  Ԝ   ۟  ǝ      ֞ ʠ          ֣      ƥ        ̨     ً + ک    ګ ɫ Ǭ    խ        ñ    ֲ ӳ  ߴ  ʵ ٶ         Ը ι ĺ      Լ ļ   ޽ ͽ Ǿ ڦ  ǝ         ̨ / 0 4 9 ; > @ B Dӵ F G H J R h       ߷    ɧ ɧ ٪    ڦ ڦ  ڦ  ڦ        ǝ  ǝ haystack has length ǝ , but must be at least ǝ ǝ  ǝ ǝ ǝ    %vector cannot be bigger than 32 bytes%%                                 ( $.     `               Ս eq1 eq2   mask1  mask2                                                                   Three                                   s2   s3   v1   v2    v3     s1                    &    _       - . /  :   :   :   aU+    '  "   @    U+           1         "        @             `  (   3-U+      " !" !U+ ;assertion failed: cur > start && end.sub(V::BYTES) >= start;;# % $% $Gـ'(ـ&'( &G]+)  )+ ..- /  /- ,-  ++,+* + +0* +1* +30 +41 +234 2 !+5  +7  ]+ +50176 9ԁԁ98 <<;  ";:! >ɂ>8="ɂ @ @:?# B B8A$ȃ Dȃ ЃD:C%Ѓ F F8E& H H:G'΄ ӄ=?I(ӄ ACJ) EGK*Ʌ ͅIJL+ͅ KLM,!MN-Ɗ NE.ӆ(=Q/ AR0 ӆU QRP1ŇʇES2ʇ ӆ‡ PSO3‡ OT4 T85V OW6 VWU7 U`(?Z9 C[: U Z[Y;G\<  Y\X=U+]  ]A> X^?֐ ^@AU+ %assertion failed: mask.has_non_zero()%%_ ъbъՊbيaBՊ  XcCÒ ъ"ac`D̊( ``eedFdӀ ghH fgh fRIU+i  iMJߍlҍ֍lkK֍ ҍjk jLMU+і /assertion failed: end.distance(cur) >= V::BYTES//mі o  onN p n pOPqnȎ  q`ssrQ rG͑u͑ tu tTSU+v  vXUʓ ԓ`yyxV wx wWXU+כ .assertion failed: end.distance(cur) < V::BYTES..zכ |Ē~Y ~  ~Z }%|}{[!+{]+  _\] + + +  + + + + +Ǡ ^_ !+  +  ]+ +   `К ) + +́        ĄȆ1 + +                                        Ѐ       ΂ ً +  Ё           ‡   ȄÅƊ ̆           ˏ  ֐     Ò Г    Ĕ    ו і ŗ       ԙ    ݚ כ    ڜ ɜ   ֟   ۞   Ǡ   ً +                0 1 5 8Ʃ : = ? A Ceqa3Ȫ Eeqb3 Gӵ I J Kor4 Lor5 Mƫ O X q                    ׄ                    ע      haystack has length  , but must be at least   ע      %vector cannot be bigger than 32 bytes%%     WU+    '}  }"   @  ɽ  U+        ߾   1|  | ԡܿ ܿ {  {  "        @    Ѣբ٢ բ +Ģ   Ģ&     V  ģ"U+    !  !  U+ ,assertion failed: start <= cur && cur <= end,," $ #$ #E&Ťɤ'Ť!%&' %E]+(  (+z --, .  ., +,  +*++) z* +/) +0) +2/ +30 +123 1 !+4  +6  ]+ +4/065 8877::9 ==<  "<;! Ҧ?Ҧڦ?9>"ڦ A A;@# C C9B$٧ E٧ E;D% G G9F& I I;H'ߨ >@J( BDK) FHL*ک ީJKM+ީ LMN,!NO- O.(@R/ DS0 U RSQ1֫۫HT2۫ ӫ QTP3ӫ PU4 U95XXW6 Ϭ PY7 "ˬWYV8ˬ( VV(>\: ٭ޭB];ޭ U֭ \][<֭F^=  [^Z>U+_  _B? Z`@ `ABU+ %assertion failed: mask.has_non_zero()%%a c ZdC cdbD bVfƯ̯ЯgF̯ efg eOGU+h  hKHkkjIij iJKU+ 1assertion failed: cur.distance(start) >= V::BYTES11l nnmL mpܰ  poMа q o qNEհro  rVt st sQPU+u  uURв ڲVxxwSvw vTUU+ 0assertion failed: cur.distance(start) < V::BYTES00y   V ) + +ݥ  Ǧ  Χ   ըЩ٪1~ ՜  ɽ    ߾ Ͼ       ܿ ɿ                               ً +       ˦     ҧ      ٨ԩ ݪ                                                    / 0 4 9 ; > @ B DȲ Fٲ Hӵ J K L M N P Z r                                haystack has length  , but must be at least         %vector cannot be bigger than 32 bytes%%        ͹͹չչ          ɺκ  κ      ǻ˻  ˻      )     2.8 ƺ  ̼ͼށ ط ùjӸ   ǹ     ڀ          Ս΃  ܃  eq3     ΄  ܄ mask3          ݇ ݇  ݇ -  PhantomData!         ú ߼    ݇ ݇     ۊ Iter original_start  Ӌ startӋ Ӌ    end   -  haystack   ۊ ۊ    ۊ ۊ ۊ ߼ۊ ۊ ۊ   Ӌ Ӌ Ӌ      ۊ ۊ ۊ .    ú   Ԑ  b    Ǔ   | Ǔ        r #                     Ǖ Ǖ Ԕ Ԕ o     Ǔ    Ǔ   Ǖ Ԕ    !   Ǖ  Ԕ       Ú   }Ú   ú     Ú    !       ٜ     ӝ  ӝ ӝ ӝ    r #   ӝ ӝ  ӝ             f     ӝ   ٜ        !          9 %? D ߼    ң          |           r                mD      Ĩ  Ʀ    Ĩ     ¨ b !       U+    U+˭ assertion failed: start <= end ˭ w   ̮          0          ɳ         ߱    ˭ ̮            !  ߲ ߱  U+    U+ܴ assertion failed: start <= end ܴ z   ݵ   ɳ                         ڸ    ܴ ݵ ͵       Է   !  ڹ ڸ U+    U+Ի assertion failed: start <= end Ի  q                         4  ɳ   ټ       Ի             !     ߜ   ߜ                   ߩ ߩ ߜ            Finder  pair ߜ   v1      v2      min_haystack_len                                       !         ?      "    ,        "    , )  nߩ ߜ                     ߜ K &  max_index 2 S  T    2' .+  6d  d     "           @          !!)!   !$    !! !!   !! 1""""""!" "!  "$" #$ #0"&""&%" U+'  '# )%#*#!()* (#c   -c$2$ 21 % 4%$ 43 " 0 13 /0 ./  -., @  ,+ % 6%% 7%567 5% 1U+8  8&:& 9: 9&/b  =b"  =< @  <; '?''?> ' U+@  @%!'B>' AB' A"%'&a  Ea(J>'  JI# " H I GH FG  EFD$ @  DC U+K  K+&(M>(LM( L'+)7`  P`)U>)  UT( )_ )  _V) " S TV RS QR   PQO* @  ON ,X>,4,+  XW, ,  - Z-* -  ZWY--%-  [ Y [.0- \Y. ^- - ^\]/ -! ]1. .1  !I" ',, -I e                              "                         '                       , -             b K      chunki  remaining %overlap > Wm Y \  )            overlap (  ') cannot possibly be >= than a vector ('' )         overlap (  ) must always be non-zero        -after main loop, cur should have exceeded max--        Fremaining bytes should be smaller than the minimum haystack length of FF , but there are   bytes remaining        'haystack too small, should be at least ''  but got       666'ށ 77766)  )7 6   776  "          @   888888888< <<   <  > ????'? @9  @`@   BC CC=> =>>         @  @@ @ @A @  @ γ   = K  K LLLL'L M9  MbM   OO OPJK KKK         M  MM M MM M  M γ   K U UU UUTT TTTγ     Z ZZ  ZZYZ YYYγ     _ __  __^_ ^^_γ     bb  b< baSCSԣң̌gb aaú  b  f      gú   f f    ú ߼   f OneIterf searcher  g it ú      f         ߼    júj#   j1j  j)jgj<h   g      j  jj jj j   jj   h júk   jk  kljj jú     l  ll  ll l(k   kk     múmm m mlQl l߼   púp$   p7p   p/pmpBn  n      p  pp  pp p   pp   n ss     s TwosTSTST     s          vv   w$w  w* vx  xvw5 v vv  - .  }#}  }( }|u}}} - .    :  d   ߇ֆ    b    ·        ;  e   یы    b     ʌ          ̖ 'R  y     ɕؕ  π     .͘  ل  ͘Ԙ Ԙ Șπ  πރ  ل π πʕ πפ  'ƦR  y   գ ߇Lj    ܦܦ.  ˌ   Lj ɦ LjǦ֋  ˌ Lj Lj Lj  ɮ ʭ٭   Ƴ  Ƴ   ڑ۶۶ < UCS úbǓ   úҺ ׺֔ ֔   ú߼ٺTwoItersearcher it ú   ޺ ȗ߼ú# ՚  1  )ھ<  ֔ ՚   þ þѾ՚ ՚ ՚  ՚ú  Q߼ԞΟú$   7   /B   ڡڡ         ThreeUSTVSTV¯إ   / 5  @  -.ͪ/ڪҩ. 5 -.Ŭ/Ҭѭ: إd  إbإ  إ إ; e  إb۲إ   إ إ ̵ 'ƶ    إ̵ƶи ޸ض إ   º إ   ûo إ       ºûإإإإ  '   إ  إ   إ  o إ  ʽ    إإإإ Â݂إށ ׇׇއ  އ׆إ  ֊> VCSއkإúbإ إú  إ إú߼ ThreeIter searcherإit ú    ߼ȒúՒ#إ Ȓ1В В)<Ɛ   إܒ إܒے ْ֒إ إ͓ú͓Փ Փ Q߼Ӗú$إ Ӗ7ۖ  ۖ/ʖBД ” إ إ  إ ǔإ FinderW&ST2߆   в  rߜ-    iߜK   $ *  5ߜK&3%  ^ߜK&l! !  !! !+    bK$"$ $%#$-# ##b))) ))() (()bK... ..-v- --b00 0 00/9//444 443Q44U+ U+%assertion failed: One::is_available()%%! 5          n1 U+ U+%assertion failed: One::is_available()%%! 5           U+ U+%assertion failed: Two::is_available()%%!   5   n2 U+ U+%assertion failed: Two::is_available()%%!   5     U+U+'assertion failed: Three::is_available()''!Щ   5  إn3 ̅U+U+ć'assertion failed: Three::is_available()''ć!Щ   5   ćإ͉ى U+ U+%assertion failed: One::is_available()%%! ČČ5    ČČލ  h h 8   g  ϼǀ   CowBytes ̑̑ ̑ ̑̑   h  lߓE  h    ˕      h OwnedЗ З     hBorrowedޘޘ  ŗޘޘ ŗޘܗЗЗ ܗЗޘЗ     8        ;     "  {   bytes       m     מ          H     ɠ    h    h   /    c '    ڣ         h  h Ȧ陭ۑ ȦȦi         ܗŗѨƨ  ) < H  ЫҐҩorigin 8 /    qɭ®Ϯ       H  C  m         Kb ²        ² ϳܳK _ref__needleD ɴ n         ɴɴKbȵ ʶ    ɴ  ɴ  ʶɴ ׷KɴN ƸƸ x          ƸƸƸ-.bչ  )    Ƹ  Ƹ  ƸƸ -.Ƹ _ref__needle1 _ref__needle2"O ߽߽ "y "  #   " ! ! ! ! ߽߽߽-.b# # #* #  # ߽"  ߽" " ߽߽ -.߽ͽ,W  , ,  - * ,  * * * * * -./b, , ,  ,2 ,  -  ,  , ,  -./ͽ _ref__needle36X  5 5  6 3 5  4 4 4 4 4 -./b6 6 6  63 6  6  6  6 6  -./ͽ9 9  9 8j h-S9 8 8 Kb: : :# ;  ?; ; :o 4겶x: : : Kb=( =  > < i-.S܅ƌ= = = = -.b?( ? ?. ?  ?? @ > 4겶x? ? ? ? -.bB1 B  C A j-./SǏØҀB B B B B -./bD1 D D7 E  ?E E C 4겶xD D D D D -./bI I* úH H  ú߼H MemchrI needle1I* it ú   H  ߼L1 L'  Lj M K L L L ú-bR úR%  R3 R  R+ S N P N N S R R S R  R R   self__needle1N _ref__self__needle1S úS  S S  S U S S S úU T T  U T( S  S S  U úU V V V UQ U U ߼X úX&  X9 X  X1 Y V XD V V Y Y Y Y Y  X X  V ] ] ]* ú] ]  ú߼ ] Memchr2] needle1] needle2  ]* it ú      ] ߼a1 a'  a b ` a ` ` ` ú-.be úe4  eB e  e: e b da c b e e e- e Ӽe e  e e  c  self__needle2_ref__self__needle2f úf f f f eQ f e ߼i úiU  ih i  i` j g i g g ԁi i i. i ͂j i  ԁi i  ƃg n ؄n n o* ú n n   ؄؄ú߼n Memchr3n needle1n needle2  n needle3   o* ĉitĉúĉĉ   n LJĉĉĉ߼ĉs1 s'  ̌r s q r q q r r ú̌-ʍ.֍/bv úvb  vp v  vh w t v t t Ύʐw w đw  w; w w  v  v v đ t  self__needle3_ref__self__needle3x úx x x x wQ x LJw ߼ߔҕ{ ú{c  {v {  {n | y { y Ñy ї{ ՘{ {  {< { |  {  { { ՘ y ǔ< (   } ~ ~ ~ ~ K؜ = )  ˋ   ̆ ܆  K G )   ܌ č     -. ̟_ *  ˙ ϓ      -ա. ٞg ٞ)  բ ޚ כ     › -.Σ/ۣ ͦh ͦ*  ݤ Ϣ ɣ      -ɥ.֥/ ; '  ʯ Ӫ     Kʧ ا    7 7 7 7  7  7  7  7                 / HH   )Ӭ       [) ŭ        $]+   +F   +  + F  +  +  + + +ʰ !+  +  ]+ +) ٱ    )$    $ "    ) (    ! )   !*)  ߜ  e+"" &  &%) +$% )  )()  +'(+# $'+*# ++# +-* +.++,-.,!+/ ' G3G!+32)!<+1 2 }+ +/*+10). 5-% - 54)- 6 4ӹ6- 74. .  8)8/ 9 7/ : /6 :9. #0 <0 0  <;)0 ;0 = 0) 0 =+)1 1  7>)ļ2 ? >13 1 ?,)2 A2 2 мA@)2 ν@! 3 B 2) 2 B-)3 HӾӾD3 E3) 3  DEC")4- 4 C.)8 H%'%8 * %&H&($# ## # (  + +#  ++. / 1 3 I    ŭүïʰً +ٱܲߜ  ߜִ ƶًܶ+ĸߜӹ/  1 ν3 ӾߜMK(&&ִ ܶ*+/pp7 9l >l C  %pair offsets should not be equivalent%%< <  <  < > @(  @'   A$   A   B =  =  =9  > B : < = > ? @  ; ; ; ; < < = ? @ K(lllk  F F F F F H H- H E H8  F E E E F pbKN N S S  S TwoWayWithPrefilterS finderT prestrat    S    }  }  | |    |  SearcherRev } kind}  rabinkarp     |      à [Ԡ Ԡ   m       Ԡ  à [Ԡ TwoWay finder  ۳  Empty mOneByteneedle  ۳           ٮ     ]+ +  + +  +  +  +  +  +    !+  +  ]+ +   Ԉ.        "    !       Nj Ʌ   + +e `  ۅ  ً +Ԡ  K  l(      ’ ގ  ؎  [Ԡ$       ͏ m         &             g      ڍ  bKK l      Auto None           "   Ϻ  Ϻ ֺ   ֺ     ׀         ѻt ѻ/  ѻu  ٴ    ѻu  r"   н     Ľ4   :  ż       Թ   Ļ Լ   Ӷ  ߜ  ع   ׀r h yٴߜǁ ݃ Ć&҆Koo rarest_rank lȻ   ؼ ш  Ê" ފ ފ250          "                           lKˎo؎o   7 7  7  7 ʐ  &    b         ٓPrefilterState skips єskippedє є  є ٓٓٓ  ٓ ٓٓٓٓєєєєٓٓٓ 2  50   8'     ] ш ӊ ӊ ފ   ފ Ɗ) Ɍ Ɍ  ̚̚ Ì    $    ̚ ~ ٍ  3     ֙Ì   ЫҐ̚ ppٜ~       ̟ Ï Ï ȏ  ȏ Ï( ҏ    ͐ ͐ Ґ  Ґ -   ۡ  ۡ  =    آ    Ñ Ҏ   ۡۡأ ڒ ڒ   : ˒         ʓ ݓ ӓ Ȧݧ Preޖ prestate prestrat                ϙ  ř  Dř 6   (    ޘ  ʘ b        ˚Z   Ư     ϰ 2 ذ    ڰKϱ ˲  2   ѳ ѳ32   ,   ȴ    q b p l \뤎к     W K C؊ߩabK$ $  $2 $  $ #   r b l \꼢$ # $   X K CٟbиKݸ , , , @, , ,5 ,  , , ,  ," -  - - - +  + + + ҹ bμKۼ 5 5 5 @ݽ5! 5 59 5 5 5 5  5& 6  6 6 6 4  4 4 4 ݽν bK8 FindIter8 haystack8 prestate  8 finder   9 pos   8   ŗ8 8  8  9  8  8   ŗ: :  ; :/   ; ; ; 9 :c : 9 : : blp> ? ? ? ?  ? ? >  ? > > > K K  L  K  K K   ŗ  K  FindRevIter K haystackK finder  L pos       K  ŗ N N  N%   N M NS N M M N bl\R R R R  R S R  S Q R Q ^  ^  ]  ] ]  ] Finder^ needle^ searcher    ^    _ _  _* `  ` ` _{ _ _  Kg g g g g g g h g3 h  h% h f g gf g f f g g bpKp p  p p& p ݵp o o o o bs s s  s t t t t sm  t t s s s y y  y y y  y y z z yq  z z x y y } } } } } }D } }           FinderRev  needle searcher          *     ~  ߅ K؎         ؎>   0       b    )      ϖ b        ɚp       ܠ    Π Π     t       Ԥ Ԥ    D Ĥ  ҧ ĀĀ Ā    ĀĀ  FinderBuilder ҧ  prefilter ۳   ҧ ڄ ڄ    ڄ۪<   ;7   ƪ   ކKî  ̮ Ӯ Ӯ    ͯ  ňň-                 ňĊҊKKӱ ڱ  ڱ      Ҍp    ۲ ̰ Ʊ    ʱ ҌKK    b((  (SensibleMoveMask(בב( בבב,,***U+-- ݔU+assertion failed: n < 32-  - - -ʖ ۖʖ - -!  -, --ݔʖʖ.. ...9..ҙ///  / //.I/.000 0"  0/l///ś؛Ȝ՜111 1"  10k100̝222 22 2'  21p21Ơ66 66&6 66/6232ޢ;;΢;;%;  ;;.;3;  ;7;;677ãQݦQQ128QQQ16RR RŨQ%R_SS  mSRPS RЪUU UST SdataثVV qVU^V VWW WW  ԭXX XX  mX YX+  YVWWXXiW V uint16x8_t         ҵW uint8x8_t         jW uint64x1_t  ݺ˘…XXasu16sasu64scalar64Wޭ ޭޭޭ4X 0ZZ ZYbY YYvector2ص[[ [Z`Z ZZ\\ \[_[ [[ĸѸ``  r`+` aa maaa``h`` uint64x2_t   `lowǻϺa 0ii  iս NeonMoveMask iսսսi սսսսսսսսmmkkkU+noU+assertion failed: n < 16o @  o o o  @   o o  o o$  on n npp ppoAooppp  p pqpQpprrr q  rqhq qqsss s  srgr rrttt tt t#  tsps s~ ~& ~-   ~6t ut%  ,   5:   > ˁ  ց <  [        Ԡ Ԡ       s              ("      i       =>> >> ?>  >>  ?>  >>  =>  >? ?? >? ?? >? h?i?j?@6 This library provides heavily optimized routines for string search primitives. # Overview This section gives a brief high level overview of what this crate offers. * The top-level module provides routines for searching for 1, 2 or 3 bytes in the forward or reverse direction. When searching for more than one byte, positions are considered a match if the byte at that position matches any of the bytes. * The [`memmem`] sub-module provides forward and reverse substring search routines. In all such cases, routines operate on `&[u8]` without regard to encoding. This is exactly what you want when searching either UTF-8 or arbitrary bytes. # Example: using `memchr` This example shows how to use `memchr` to find the first occurrence of `z` in a haystack: ``` use memchr::memchr; let haystack = b"foo bar baz quuz"; assert_eq!(Some(10), memchr(b'z', haystack)); ``` # Example: matching one of three possible bytes This examples shows how to use `memrchr3` to find occurrences of `a`, `b` or `c`, starting at the end of the haystack. ``` use memchr::memchr3_iter; let haystack = b"xyzaxyzbxyzc"; let mut it = memchr3_iter(b'a', b'b', b'c', haystack).rev(); assert_eq!(Some(11), it.next()); assert_eq!(Some(7), it.next()); assert_eq!(Some(3), it.next()); assert_eq!(None, it.next()); ``` # Example: iterating over substring matches This example shows how to use the [`memmem`] sub-module to find occurrences of a substring in a haystack. ``` use memchr::memmem; let haystack = b"foo bar foo baz foo"; let mut it = memmem::find_iter(haystack, "foo"); assert_eq!(Some(0), it.next()); assert_eq!(Some(8), it.next()); assert_eq!(Some(16), it.next()); assert_eq!(None, it.next()); ``` # Example: repeating a search for the same needle It may be possible for the overhead of constructing a substring searcher to be measurable in some workloads. In cases where the same needle is used to search many haystacks, it is possible to do construction once and thus to avoid it for subsequent searches. This can be done with a [`memmem::Finder`]: ``` use memchr::memmem; let finder = memmem::Finder::new("foo"); assert_eq!(Some(4), finder.find(b"baz foo quux")); assert_eq!(None, finder.find(b"quux baz bar")); ``` # Why use this crate? At first glance, the APIs provided by this crate might seem weird. Why provide a dedicated routine like `memchr` for something that could be implemented clearly and trivially in one line: ``` fn memchr(needle: u8, haystack: &[u8]) -> Option { haystack.iter().position(|&b| b == needle) } ``` Or similarly, why does this crate provide substring search routines when Rust's core library already provides them? ``` fn search(haystack: &str, needle: &str) -> Option { haystack.find(needle) } ``` The primary reason for both of them to exist is performance. When it comes to performance, at a high level at least, there are two primary ways to look at it: * **Throughput**: For this, think about it as, "given some very large haystack and a byte that never occurs in that haystack, how long does it take to search through it and determine that it, in fact, does not occur?" * **Latency**: For this, think about it as, "given a tiny haystack---just a few bytes---how long does it take to determine if a byte is in it?" The `memchr` routine in this crate has _slightly_ worse latency than the solution presented above, however, its throughput can easily be over an order of magnitude faster. This is a good general purpose trade off to make. You rarely lose, but often gain big. **NOTE:** The name `memchr` comes from the corresponding routine in `libc`. A key advantage of using this library is that its performance is not tied to its quality of implementation in the `libc` you happen to be using, which can vary greatly from platform to platform. But what about substring search? This one is a bit more complicated. The primary reason for its existence is still indeed performance, but it's also useful because Rust's core library doesn't actually expose any substring search routine on arbitrary bytes. The only substring search routine that exists works exclusively on valid UTF-8. So if you have valid UTF-8, is there a reason to use this over the standard library substring search routine? Yes. This routine is faster on almost every metric, including latency. The natural question then, is why isn't this implementation in the standard library, even if only for searching on UTF-8? The reason is that the implementation details for using SIMD in the standard library haven't quite been worked out yet. **NOTE:** Currently, only `x86_64`, `wasm32` and `aarch64` targets have vector accelerated implementations of `memchr` (and friends) and `memmem`. # Crate features * **std** - When enabled (the default), this will permit features specific to the standard library. Currently, the only thing used from the standard library is runtime SIMD CPU feature detection. This means that this feature must be enabled to get AVX2 accelerated routines on `x86_64` targets without enabling the `avx2` feature at compile time, for example. When `std` is not enabled, this crate will still attempt to use SSE2 accelerated routines on `x86_64`. It will also use AVX2 accelerated routines when the `avx2` feature is enabled at compile time. In general, enable this feature if you can. * **alloc** - When enabled (the default), APIs in this crate requiring some kind of allocation will become available. For example, the [`memmem::Finder::into_owned`](crate::memmem::Finder::into_owned) API and the [`arch::all::shiftor`](crate::arch::all::shiftor) substring search implementation. Otherwise, this crate is designed from the ground up to be usable in core-only contexts, so the `alloc` feature doesn't add much currently. Notably, disabling `std` but enabling `alloc` will **not** result in the use of AVX2 on `x86_64` targets unless the `avx2` feature is enabled at compile time. (With `std` enabled, AVX2 can be used even without the `avx2` feature enabled at compile time by way of runtime CPU feature detection.) * **logging** - When enabled (disabled by default), the `log` crate is used to emit log messages about what kinds of `memchr` and `memmem` algorithms are used. Namely, both `memchr` and `memmem` have a number of different implementation choices depending on the target and CPU, and the log messages can help show what specific implementations are being used. Generally, this is useful for debugging performance issues. * **libc** - **DEPRECATED**. Previously, this enabled the use of the target's `memchr` function from whatever `libc` was linked into the program. This feature is now a no-op because this crate's implementation of `memchr` should now be sufficiently fast on a number of platforms that `libc` should no longer be needed. (This feature is somewhat of a holdover from this crate's origins. Originally, this crate was literally just a safe wrapper function around the `memchr` function from `libc`.) 676   > ?  >  ?  >  =  > ? > ? > hij=>>? ? ̧1? ?       logging                              @  A module with low-level architecture dependent routines. These routines are useful as primitives for tasks not covered by the higher level crate API.  @  Contains architecture independent routines. These routines are often used as a "fallback" implementation when the more specialized architecture dependent routines are unavailable.  | Provides architecture independent implementations of `memchr` and friends. The main types in this module are [`One`], [`Two`] and [`Three`]. They are for searching for one, two or three distinct bytes, respectively, in a haystack. Each type also has corresponding double ended iterators. These searchers are typically slower than hand-coded vector routines accomplishing the same task, but are also typically faster than naive scalar code. These routines effectively work by treating a `usize` as a vector of 8-bit lanes, and thus achieves some level of data parallelism even without explicit vector support. The `One` searcher also provides a [`One::count`] routine for efficiently counting the number of times a single byte occurs in a haystack. This is useful, for example, for counting the number of lines in a haystack. This routine exists because it is usually faster, especially with a high match count, then using [`One::find`] repeatedly. ([`OneIter`] specializes its `Iterator::count` implementation to use this routine.) Only one, two and three bytes are supported because three bytes is about the point where one sees diminishing returns. Beyond this point and it's probably (but not necessarily) better to just use a simple `[bool; 256]` array or similar. However, it depends mightily on the specific work-load and the expected match frequency.   !x{,   7  ¾    #$%')*,./23 ""@ Create a new searcher that finds occurrences of the byte given.C"" $K4G Return the first occurrence of the needle in the given haystack. If noJ1 such occurrence exists, then `None` is returned.4E The occurrence is reported as an offset into `haystack`. Its maximumH8 value for a non-empty haystack is `haystack.len() - 1`.; 7 7  7  7"" %b%&&&&%5F Return the last occurrence of the needle in the given haystack. If noI4H; 7 7  7  7"" 'b'(((('-; Counts all occurrences of this byte in the given haystack.> 7 7  7  7"" )b)s3 Like `find`, but accepts and returns raw pointers. 6!@ When a match is found, the pointer returned is guaranteed to be!C `>= start` and `< end`.!"F This routine is useful if you're already using raw pointers and would"ID like to avoid converting back to a slice before executing a search."G# # Safety# #2 * Both `start` and `end` must be valid for reads.#5= * Both `start` and `end` must point to an initialized value.$@E * Both `start` and `end` must point to the same allocated object and$HA must either be in bounds or at most one byte past the end of the%D allocated object.%F * Both `start` and `end` must be _derived from_ a pointer to the same&I object.& D * The distance between `start` and `end` must not overflow `isize`.&GF * The distance being in bounds must not rely on "wrapping around" the'I address space.'(H Note that callers may pass a pair of pointers such that `start >= end`.(K. In that case, `None` will always be returned.(1) 7  7")" **++++*?t4 Like `rfind`, but accepts and returns raw pointers.6777C788I8G99 995:@:H;D;>>K>1?  7  7"?" A,----,QIF Counts all occurrences of this byte in the given haystack representedII by raw pointers.IJJIJGKK KK5L@LHMDMMIN NGOIOPPK+ In that case, `0` will always be returned.P.Q  7  7"Q"Q VDC Returns an iterator over all occurrences of the needle byte in theUF given haystack.UUF The iterator returned implements `DoubleEndedIterator`. This means itUI7 can also be used to find occurrences in reverse order.V:W0!1! 0! 1!SCSDžᇁ0!1!"W" /WbWWX*X  7  7"X"XՍY,Y 7  7"Y"Yʸ^)!5!65678:<^^_ _44_#_ 7  74_4 85!6!a899998bb44 :5!6!b:;;;;:d-d  7  74d4 <5!6!de4!>!?>?@eee(e  7  7=e= @>!?!g@AAAA@jCDFHJLOPk+E Create a new searcher that finds occurrences of the two needle byteskH given.k kBB C-.r4D Return the first occurrence of one of the needle bytes in the givenpGA haystack. If no such occurrence exists, then `None` is returned.qDqqHr;s 7 7  7  7BsB DbuDEEEEDx5C Return the last occurrence of one of the needle bytes in the givenuFvDvvHw;x 7 7  7  7BxB FbzFGGGGFsz6{{C{||I|G}} }}5~@~HDIـ GIK1ă 7  7BփB HIIIIHt7CאߐIG 5Ԓ@HDɔI GIؖK1  7  7BBЍ JKKKKJDG Returns an iterator over all occurrences of one of the needle bytes inJ the given haystack.נIɡ:M!N! M! N!UCSM!N!BB Lb*  7  7BãBģՍ̤,Ϥ 7  7BפBؤʸ’ª)!R!SRSTUWǪ˪ QQ# 7  7QQ UR!S!UVVVVU-  7  7QQ WR!S!Ү4!Y!ZYZ[׮ۮ(  7  7XX [Y!Z!˱[\\\\[ ^_acegjk:G Create a new searcher that finds occurrences of the three needle bytesJ۵ ]] ^-./ï4˻GDH; 7 7  7  7]] _bֱ_````_5FDH; 7 7  7  7]] aŷbabbbbaƵs6CIG 5@HDI GIK1 7  7]]ó cddddcպt7CIG 5@HDI GIK1  7  7]] effffeFJI:h!i! h! i!VCSh!i!]] gbҐ*  7  7]]Ս, 7  7]]ʸ+!m!nmnoprޒ ll# 7  7ll pm!n!pqqqqp-  7  7ll rm!n!6!t!utuǛv(  7  7Ǜss vt!u!vwwwwv" ƁɄ҄ Provides an architecture independent implementation of the "packed pair" algorithm. The "packed pair" algorithm is based on the [generic SIMD] algorithm. The main difference is that it (by default) uses a background distribution of byte frequencies to heuristically select the pair of bytes to search for. Note that this module provides an architecture independent version that doesn't do as good of a job keeping the search for candidates inside a SIMD hot path. It however can be good enough in many circumstances. [generic SIMD]: http://0x80.pl/articles/simd-strfind.html#first-and-last  ~|} |}  | ̫  +G Create a new prefilter that reports possible locations where the given J needle matches.   7  7ٴ  K=- Create a new prefilter using the pair given.0D If the prefilter could not be constructed, then `None` is returned.GD This constructor permits callers to control precisely which pair ofG bytes is used as a predicate.!  7  7ߜٴK&>6 Run this finder on the given haystack as a prefilter.9G If a candidate match is found, then an offset where the needle *could*J# begin in the haystack is returned.& 7 7  7  7 b A Returns the pair of offsets (into the needle) used to check as aDD predicate before confirming whether a needle exists at a particularG position.   7  7  7ߜ   + ߜ-)4 Create a new pair of offsets from the given needle.+7+B If a pair could not be created (for example, if the needle is too+E! short), then `None` is returned.,$,> This chooses the pair in the needle that is believed to be as,A: predictive of an overall match of the needle as possible.-=- 7  7-вK2n? Create a new pair of offsets from the given needle and ranker..B/F This permits the caller to choose a background frequency distribution/IE with which bytes are selected. The idea is to select a pair of bytes/HC that is believed to strongly predict a match in the haystack. This0F? usually means selecting bytes that occur rarely in a haystack.1B11EΪ2$2  7  7&322 KDi@ Create a new pair using the offsets given for the needle given.>C?E This bypasses any sort of heuristic process for choosing the offsets?H9 and permits the caller to choose the offsets themselves.?<@D Indices are limited to valid `u8` values so that a `Pair` uses less@GG memory. It is not possible to create a `Pair` with offsets bigger than@JF `u8::MAX`. It's likely that such a thing is not needed, but if it is,AIB it's suggested to build your own bespoke algorithm because you'reBEG likely working on a very niche case. (File an issue if this suggestionBJ does not make sense to you.)C CCEΪD$D  7  7D K''J& Returns the first offset of the pair.J)J 7  7ߜKKK' Returns the second offset of the pair.K*K 7  7ߜKKd L This trait allows the user to customize the heuristic used to determine theLOB relative frequency of a given byte in the dataset being searched.LEMJ The use of this trait can have a dramatic impact on performance dependingMML on the type of data being searched. The details of why are explained in theNOL docs of [`crate::memmem::Prefilter`]. To summarize, the core algorithm usesNOJ a prefilter to quickly identify candidate matches that are later verifiedOMF more slowly. This prefilter is implemented in terms of trying to findPIH `rare` bytes at specific offsets that will occur less frequently in thePKJ dataset. While the concept of a `rare` byte is similar for most datasets,QME there are some specific datasets (like binary executables) that haveQHJ dramatically different byte distributions. For these datasets customizingRMK the byte frequency heuristic can have a massive impact on performance, andRN' might even need to be done at runtime.S*SF The default implementation of `HeuristicFrequencyRank` reads from theSII static frequency table defined in `src/memmem/byte_frequencies.rs`. ThisTLJ is optimal for most inputs, so if you are unsure of the impact of using aUMJ custom `HeuristicFrequencyRank` you should probably just use the default.UMV # ExampleV V ```V use memchr::{V3 arch::all::packedpair::HeuristicFrequencyRank,V6 memmem::FinderBuilder,W };WWI /// A byte-frequency table that is good for scanning binary executables.WL struct Binary;XX) impl HeuristicFrequencyRank for Binary {X,% fn rank(&self, byte: u8) -> u8 {X(# const TABLE: [u8; 256] = [X&J 255, 128, 61, 43, 50, 41, 27, 28, 57, 15, 21, 13, 24, 17, 17,YMG 89, 58, 16, 11, 7, 14, 23, 7, 6, 24, 9, 6, 5, 9, 4, 7, 16,YJI 68, 11, 9, 6, 88, 7, 4, 4, 23, 9, 4, 8, 8, 5, 10, 4, 30, 11,ZL; 9, 24, 11, 5, 5, 5, 19, 11, 6, 17, 9, 9, 6, 8,[>K 48, 58, 11, 14, 53, 40, 9, 9, 254, 35, 3, 6, 52, 23, 6, 6, 27,[NC 4, 7, 11, 14, 13, 10, 11, 11, 5, 2, 10, 16, 12, 6, 19,\FK 19, 20, 5, 14, 16, 31, 19, 7, 14, 20, 4, 4, 19, 8, 18, 20, 24,\N@ 1, 25, 19, 58, 29, 10, 5, 15, 20, 2, 2, 9, 4, 3, 5,]CJ 51, 11, 4, 53, 23, 39, 6, 4, 13, 81, 4, 186, 5, 67, 3, 2, 15,]M9 0, 0, 1, 3, 2, 0, 0, 5, 0, 0, 0, 2, 0, 0, 0,^<I 12, 2, 1, 1, 3, 1, 1, 1, 6, 1, 2, 1, 3, 1, 1, 2, 9, 1, 1, 0,^L1 2, 2, 4, 4, 11, 6, 7, 3, 6, 9, 4, 5,_4I 46, 18, 8, 18, 17, 3, 8, 20, 16, 10, 3, 7, 175, 4, 6, 7, 13,_L: 3, 7, 3, 3, 1, 3, 3, 10, 3, 1, 5, 2, 0, 1, 2,`=K 16, 3, 5, 1, 6, 1, 1, 2, 58, 20, 3, 14, 12, 2, 1, 3, 16, 3, 5,aN7 8, 3, 1, 8, 6, 17, 6, 5, 3, 8, 6, 13, 175,a: ];b TABLE[byte as usize]b  }b  }b2 // Create a new finder with the custom heuristic.b5" let finder = FinderBuilder::new()c%= .build_forward_with_ranker(Binary, b"\x00\x00\xdd\xdd");c@& // Find needle with custom heuristic.c)9 assert!(finder.find(b"\x00\x00\x00\xdd\xdd").is_some());d<ddhD Return the heuristic frequency rank of the given byte. A lower rankeGE means the byte is believed to occur less frequently in the haystack.eHfH Some uses of this heuristic may treat arbitrary absolute rank values asfKE significant. For example, an implementation detail in this crate mayfHG determine that heuristic prefilters are inappropriate if every byte ingJ the needle has a "high" rank.h!h 7  7h hhi&i߇ϋi4jj 7  7j jjkQI This permits passing any implementation of `HeuristicFrequencyRank` as ajL borrowed version of itself.k!&ڝkڝlѝkll 7  7ѝl !ڝl An implementation of the [Rabin-Karp substring search algorithm][rabinkarp]. Rabin-Karp works by creating a hash of the needle provided and then computing a rolling hash for each needle sized window in the haystack. When the rolling hash matches the hash of the needle, a byte-wise comparison is done to check if a match exists. The worst case time complexity of Rabin-Karp is `O(m * n)` where `m ~ len(needle)` and `n ~ len(haystack)`. Its worst case space complexity is constant. The main utility of Rabin-Karp is that the searcher can be constructed very quickly with very little memory. This makes it especially useful when searching for small needles in small haystacks, as it might finish its search before a beefier algorithm (like Two-Way) even starts. [rabinkarp]: https://en.wikipedia.org/wiki/Rabin%E2%80%93Karp_algorithm    #A Create a new Rabin-Karp forward searcher for the given `needle`.DH The needle may be empty. The empty needle matches at every byte offset.KF Note that callers must pass the same needle to all search calls usingI this `Finder`.   7  7!K(C> Return the first occurrence of the `needle` in the `haystack`$A> given. If no such occurrence exists, then `None` is returned.$A%D The `needle` provided must match the needle given to this finder at%G construction time.&&F The maximum value this can return is `haystack.len()`, which can only&IE occur when the needle and haystack both have length zero. Otherwise,&HD for non-empty haystacks, the maximum value is `haystack.len() - 1`.'G( 7 7 7  7  7  7((bK6+6++CF `>= start` and `<= end`. The pointer returned is only ever equivalent,ID to `end` when both the needle and haystack are empty. (That is, the-G( empty string matches the empty string.)-+..I.G// /H Note that `start` and `end` below refer to both pairs of pointers given/KG to this routine. That is, the conditions apply to both `hstart`/`hend`0J and `nstart`/`nend`.00151@2H2D33I4 4G4I5+ * It must be the case that `start <= end`.5.6 7  766ɕܕȟ<=&A Create a new Rabin-Karp reverse searcher for the given `needle`.=D= 7  7=KED= Return the last occurrence of the `needle` in the `haystack`A@AABBGCCCICHDGE 7 7 7  7  7  7EEbKSH7HHCIIJGJ+KKIKGLL LLKMJMNN5N@OHODPPIQ QGQIRR.S  7  7SٵSɕܕY>Y 7 7  7  7Yb[ \\^?^ ^b?b bf5f 7 7  7  7fflgg 7  7ggi,i 7 7  7  7iilnDn nnn"  An implementation of the [Shift-Or substring search algorithm][shiftor]. [shiftor]: https://en.wikipedia.org/wiki/Bitap_algorithm   ן+? Create a new Shift-Or forward searcher for the given `needle`.BK 7  7 K4D Return the first occurrence of the needle given to `Finder::new` in GC the `haystack` given. If no such occurrence exists, then `None` is F returned. G Unlike most other substring search implementations in this crate, thisJG finder does not require passing the needle at search time. A match canJG be determined without the needle at all since the required informationJ: is already encoded into this finder at construction time.=IHG 7 7  7ן  7 b An implementation of the [Two-Way substring search algorithm][two-way]. [`Finder`] can be built for forward searches, while [`FinderRev`] can be built for reverse searches. Two-Way makes for a nice general purpose substring search algorithm because of its time and space complexity properties. It also performs well in practice. Namely, with `m = len(needle)` and `n = len(haystack)`, Two-Way takes `O(m)` time to create a finder, `O(1)` space and `O(n)` search time. In other words, the preprocessing step is quick, doesn't require any heap memory and the worst case search time is guaranteed to be linear in the haystack regardless of the size of the needle. While vector algorithms will usually beat Two-Way handedly, vector algorithms also usually have pathological or edge cases that are better handled by Two-Way. Moreover, not all targets support vector algorithms or implementations for them simply may not exist yet. Two-Way can be found in the `memmem` implementations in at least [GNU libc] and [musl]. [two-way]: https://en.wikipedia.org/wiki/Two-way_string-matching_algorithm [GNU libc]: https://www.gnu.org/software/libc/ [musl]: https://www.musl-libc.org/   ,  ,  p   ܙ BȚ & '#@ Create a searcher that finds occurrences of the given `needle`.&C&F An empty `needle` results in a match at every position in a haystack,&I including at `haystack.len()`.'"' 7  7(K/CE Returns the first occurrence of `needle` in the given `haystack`, or,H- `None` if no such occurrence could be found.-0-@ The `needle` given must be the same as the `needle` provided to-C [`Finder::new`]....I̜/"/ 7 7 7  7  7  7/ /bK55 7 7 7 7  7   p p lè 7  7  755ԟbK;; 7 7 7 7  7   p p lè 7  7  7;;ԟ;bKν\ڽHH 7 7 7 7  7   p p lè 7  7  7IIԟIbK[SԠU&TCTTI̜U"U 7  7ԠUK]DD Returns the last occurrence of `needle` in the given `haystack`, orZG[0[[C [`FinderRev::new`].\\\I̜]"] 7 7 7  7Ԡ  7  7]]bKbb 7 7 7  7Ԡ  7  7ccbKɋ\Ջmm 7 7 7  7Ԡ  7  7mmbK[ф q 7  7̖K[ q 7  7K[  5 7  7K5 7  7K: current candidate + 7  7K$ 7  78@ Returns true if and only if `needle` is a prefix of `haystack`.CK This uses a latency optimized variant of `memcmp` internally which *might*N) make this faster for very short strings., # InliningK This routine is marked `inline(always)`. If you want to call this functionNI in a way that is not always inlined, you'll need to wrap a call to it inLE another function that is marked as `inline(never)` or just `inline`.H  7 7  7  7 bK 8@ Returns true if and only if `needle` is a suffix of `haystack`.CٶN,N LŹ H  7 7  7  7  bK+9 Compare corresponding bytes in `x` and `y` for equality. < C That is, this returns true if and only if `x.len() == y.len()` and F+ `x[i] == y[i]` for all `0 <= i < x.len()`. .    NLŹH # MotivationL Why not use slice equality instead? Well, slice equality usually results inOJ a call out to the current platform's `libc` which might not be inlineableMJ or have other overhead. This routine isn't guaranteed to be a win, but itM might be in some cases. 7 7  7  7c6 Compare `n` bytes at the given pointers for equality.9B This returns true if and only if `*x.add(i) == *y.add(i)` for allE `0 <= i < n`.NLŹHOMM ? * Both `x` and `y` must be valid for reads of up to `n` bytes.B7 * Both `x` and `y` must point to an initialized value.:> * Both `x` and `y` must each point to an allocated object andADI allocated object. `x` and `y` do not need to point to the same allocatedL object, but they may.H * Both `x` and `y` must be _derived from_ a pointer to their respectiveK allocated objects.J * The distance between `x` and `x+n` must not overflow `isize`. SimilarlyM for `y` and `y+n`.I     &O&M&&<& '-''ܤ(( ).)ܤ K+"+ 7  7ܤ+ +4z4 7  7ܤ4 4 Z{[  7  7ܤ[ [ yoy  7  7ܤy    z   7  7ܤ {     Ð  Ґ    - < - . ș"֙ 7  7ޙ ߙ՚" 7  7 z 7  7   {  7  7     7  7 {      - j - . / " 7  7 " 7  7 " 7  7 z 7  7   {œ  7  7՜ ֜  ط  7  7 {  ø    !!!!!aa b݇喥!1 ! !b  7  7 |   5 0  ! !s }   ) $  !  !   7  7 |  50 ! ! 8  7  7 ! 7  7Ĩ |  Ĩ 5Ĩ 0Ĩ  Ĩ b ! 0       !  0    !  0    !  )  WOMm  -  ߩ@ 7  7ߜߩ K & p 7 7 7  7ߩ  7  7 b K 5c5 7 7  7ߩ  75 5b II  7 7  7ߩ  7I IK   ǝ UIU 7  7ߩU݇ U ["[ 7  7ߩ  7ߜ[ [].] 7  7ߩ] ]`K`      ]      2  - Vector algorithms for the `aarch64` target. 2 4 E Algorithms for the `aarch64` target using 128-bit vectors via NEON. J<L This module defines 128-bit vector implementations of `memchr` and friends. The main types in this module are [`One`], [`Two`] and [`Three`]. They are for searching for one, two or three distinct bytes, respectively, in a haystack. Each type also has corresponding double ended iterators. These searchers are typically much faster than scalar routines accomplishing the same task. The `One` searcher also provides a [`One::count`] routine for efficiently counting the number of times a single byte occurs in a haystack. This is useful, for example, for counting the number of lines in a haystack. This routine exists because it is usually faster, especially with a high match count, then using [`One::find`] repeatedly. ([`OneIter`] specializes its `Iterator::count` implementation to use this routine.) Only one, two and three bytes are supported because three bytes is about the point where one sees diminishing returns. Beyond this point and it's probably (but not necessarily) better to just use a simple `[bool; 256]` array or similar. However, it depends mightily on the specific work-load and the expected match frequency. T ,  M Ņ G ޅ    %G Create a new searcher that finds occurrences of the needle byte given. J H This particular searcher is specialized to use neon vector instructions K# that typically make it quite fast. & B If neon is unavailable in the current environment, then `None` is E    Kõ .B Create a new finder specific to neon vectors and routines withoutE! checking that neon is available.$ F Callers must guarantee that it is safe to execute `neon` instructionsI in the current environment.C Note that it is a common misconception that if one compiles for anFG `x86_64` target, then they therefore automatically have access to neonJE instructions. While this is almost always the case, it isn't true inH 100% of cases.  K B Returns true when this implementation is available in the currentE environment.B When this is true, it is guaranteed that [`One::new`] will returnEC a `Some` value. Similarly, when it is false, it is guaranteed thatF' `One::new` will return a `None` value.*E Note also that for the lifetime of a single program, if this returnsH& true then it will always return true.)  4GDH value is `haystack.len() - 1`." 7 7  7  7  b   5FDH "  7 7  7  7!  b # $-#>$ 7 7  7  7$ $b /s&6''C(((I)G)) ))5*@*H+D,,I, ,G-I...K/1/ 7  7/    2 =t5755C666I7G77 7858@8H9D::I: ;G;I<<+D Create a new pair searcher. The searcher returned can either report GE exact matches of `needle` or act as a prefilter and report candidate H positions of `needle`.  C If neon is unavailable in the current environment or if a [`Pair`] F? could not be constructed from the needle given, then `None` is B  7  7 K=A Create a new "packed pair" finder using the pair of bytes given.DGɢ!E   7  7ߜK&= 7  7ߜK&ED When this is true, it is guaranteed that [`Finder::with_pair`] willGE return a `Some` value. Similarly, when it is false, it is guaranteedHF that `Finder::with_pair` will return a `None` value. Notice that thisIH does not guarantee that [`Finder::new`] will return a `Finder`. Namely,KF even when `Finder::is_available` is true, it is not guaranteed that aI3 valid [`Pair`] can be found from the needle given.6H˒)  C2 Execute a search using neon vectors and routines.5 # Panics A When `haystack.len()` is less than [`Finder::min_haystack_len`].D  7 7 7  7  7  7   bK#>"5"" ""D# 7 7  7  7# #b(j(  7 7 7  7  7  7((bK-F- 7 7  7  7--b/.D.G/ / 7  7  7ߜ/ʌ/3'C Returns the minimum haystack length that this `Finder` can search.0F0G Using a haystack with length smaller than this in a search will result0JC in a panic. The reason for this restriction is that this finder is1FE meant to be a low-level component that is part of a larger substring2HB strategy. In that sense, it avoids trying to handle all cases and2E= instead only handles the cases that it can handle very well.3@4 7  74 4CR            needles      $   2      chose neon for {}       debug_assert     3                 $        0no neon feature available, using fallback for {}2                 m   n Ϟ z  {    ̅ ͉ى ` ލ @@ops   $ !׷      7  7׷  7  !  !g  ϼǀ! H   !; !  A   ԣq              g  ϼǀ ! &    7  7  7   !  3  q        ǥ !ڣ !h h 8! &   !٨ !  q         7  7٨  7  ! @@9J0  3  1 ®Ϯ              @ @ ,:   Բ; 6 Search for the first occurrence of a byte in a slice.D9 ~ L This returns the index corresponding to the first occurrence of `needle` inO J `haystack`, or `None` if one is not found. If an index is returned, it isM - guaranteed to be less than `haystack.len()`.0  6 While this is semantically the same as something like9 K `haystack.iter().position(|&b| b == needle)`, this routine will attempt toN I use highly optimized vector operations that can be an order of magnitudeL  faster (or more).    F This shows how to find the first position of a byte in a byte string.I    use memchr::memchr;  ' let haystack = b"the quick brown fox";* - assert_eq!(memchr(b'k', haystack), Some(8));0    7  7 Kb < 5 Search for the last occurrence of a byte in a slice.8   K This returns the index corresponding to the last occurrence of `needle` in N  M  0   ɵ 9 L `haystack.iter().rposition(|&b| b == needle)`, this routine will attempt to O  L        E This shows how to find the last position of a byte in a byte string. H      use memchr::memrchr;     * / assert_eq!(memrchr(b'o', haystack), Some(17));2    7  7 Kb J E Search for the first occurrence of two possible bytes in a haystack.H  K This returns the index corresponding to the first occurrence of one of theN J needle bytes in `haystack`, or `None` if one is not found. If an index isM = returned, it is guaranteed to be less than `haystack.len()`.@  ɵ9 L `haystack.iter().position(|&b| b == needle1 || b == needle2)`, this routineO L will attempt to use highly optimized vector operations that can be an orderO  of magnitude faster (or more)."    L This shows how to find the first position of one of two possible bytes in aO  haystack.    use memchr::memchr2;  * 4 assert_eq!(memchr2(b'k', b'q', haystack), Some(4));7    7  7 -.b  K D Search for the last occurrence of two possible bytes in a haystack.G  J This returns the index corresponding to the last occurrence of one of theM M @  ɵ9 E `haystack.iter().rposition(|&b| b == needle1 || b == needle2)`, thisH K routine will attempt to use highly optimized vector operations that can beN ( an order of magnitude faster (or more).+    K This shows how to find the last position of one of two possible bytes in aN     use memchr::memrchr2;  * 6 assert_eq!(memrchr2(b'k', b'o', haystack), Some(17)); 9      7  7! -.b" *j G Search for the first occurrence of three possible bytes in a haystack.#J $ $N $M %@ % ɵ%9 O `haystack.iter().position(|&b| b == needle1 || b == needle2 || b == needle3)`,&R I this routine will attempt to use highly optimized vector operations that'L / can be an order of magnitude faster (or more).'2 ( ( ( L This shows how to find the first position of one of three possible bytes in(O  a haystack.( ( )  use memchr::memchr3;) ) )* : assert_eq!(memchr3(b'k', b'q', b'u', haystack), Some(4));)= * *  7  7* -./b, 3k F Search for the last occurrence of three possible bytes in a haystack.-I - -M .M /@ / ɵ/9 P `haystack.iter().rposition(|&b| b == needle1 || b == needle2 || b == needle3)`,0S 0L 12 1 1 1 K This shows how to find the last position of one of three possible bytes in1N 2 2 2  use memchr::memrchr3;2 2 2* < assert_eq!(memrchr3(b'k', b'o', b'n', haystack), Some(17));3? 3 3  7  74 -./b6 8D F Returns an iterator over all occurrences of the needle in a haystack.6I 7 7I 8: 8 ! !h-S!8 Kb:C I Returns an iterator over all occurrences of the needle in a haystack, in9L  reverse.: :  7  74겶xh-S 7: Kbb J Returns an iterator over all occurrences of the needles in a haystack, in>M > >  7  74겶xi-.S܅ƌ 7? -.bAt @J @ @I A: A ! !j-./SǏØҀ!A -./bCs CM C D  7  74겶xj-./SǏØҀ 7D -./bI !h-S!I K9 IF J J JI K: L  ! !-bM !M M M N# N  7  7N  !R S S  !S U- U  7  7U  !U V+ !V V( V  7  7V  !X Y1 !Y ^ !i-.S܅ƌ!^ `G ^G _ _ _I _: `  ! !-.bb! !b b b b# b  7  7b  !e e- e  7  7e  !e f, !f g( g  7  7g  !i ԁj2 !j o !j-./SǏØҀ!o q{ oG p p pI q: q  ! !-ʍ.֍/bs! !s t t t# t  7  7t  !v w- w  7  7w  !w x, !x y( y  7  7y  !{ |2 !| ݃}f } K؜ g  K ܌y  Ӽ-. ϓz ٓ -ա. ޚ  -.Σ/ۣ Ϣ ٢ -ɥ.֥/ ӪJ ݪ Kʧ ا@ This module provides forward and reverse substring search routines. Unlike the standard library's substring search routines, these work on arbitrary bytes. For all non-empty needles, these routines will report exactly the same values as the corresponding routines in the standard library. For the empty needle, the standard library reports matches only at valid UTF-8 boundaries, where as these routines will report matches at every position. Other than being able to work on arbitrary bytes, the primary reason to prefer these routines over the standard library routines is that these will generally be faster. In some cases, significantly so. # Example: iterating over substring matches This example shows how to use [`find_iter`] to find occurrences of a substring in a haystack. ``` use memchr::memmem; let haystack = b"foo bar foo baz foo"; let mut it = memmem::find_iter(haystack, "foo"); assert_eq!(Some(0), it.next()); assert_eq!(Some(8), it.next()); assert_eq!(Some(16), it.next()); assert_eq!(None, it.next()); ``` # Example: iterating over substring matches in reverse This example shows how to use [`rfind_iter`] to find occurrences of a substring in a haystack starting from the end of the haystack. **NOTE:** This module does not implement double ended iterators, so reverse searches aren't done by calling `rev` on a forward iterator. ``` use memchr::memmem; let haystack = b"foo bar foo baz foo"; let mut it = memmem::rfind_iter(haystack, "foo"); assert_eq!(Some(16), it.next()); assert_eq!(Some(8), it.next()); assert_eq!(Some(0), it.next()); assert_eq!(None, it.next()); ``` # Example: repeating a search for the same needle It may be possible for the overhead of constructing a substring searcher to be measurable in some workloads. In cases where the same needle is used to search many haystacks, it is possible to do construction once and thus to avoid it for subsequent searches. This can be done with a [`Finder`] (or a [`FinderRev`] for reverse searches). ``` use memchr::memmem; let finder = memmem::Finder::new("foo"); assert_eq!(Some(4), finder.find(b"baz foo quux")); assert_eq!(None, finder.find(b"quux baz bar")); ```  @ o  p  ' '' ( g p  k m (    ÛÛۛۛ    ') WA (L *W  \ ͝͝&     7  7&   MK՟՟:~ :  7  7; K(lE E  7 7 7 7  7  7  7  7E E pbKH" I@ I  7 7 7  7  7MMMJMJMJMJMJMJ؀ 7I  I I V V Y Y  7 7 7 7  7  7  7  7Y  _searcherY _prestateY _haystackY Y \ \  7 7 7 7  7  7  7  7\ C\ \ b\ ] ` `  7 7 7 7  7  7  7  7` C` ` b` Ka e e$  7 7 7 7  7  7  7  7e Ce pe be Kf y y ܪ˄y y   y y 2y y y  7 7 7 7  7  7  7  7z Cz z bz Kz  Ʌ/ ׅ  7  7 Kj   7 7 7  7  7  7  bKڠ    ʡ    7  7 м     7ߜ  7&ö   Ć&҆Kرر  9        2    7  7 ؽlKˎ0   7 7  7  7  b7   7 7  7  7   b   # @   7 7 7  7  7MMMJMJMJMJMJMJ؀ 7      a   7 7  7  7 strat b ]  ؉      2    7 7  7  7  b      % Ȉ $   7  7  pҎ" Վ  7  7     7  7 ’ ʓ ͓  7  7ӓ ԓ  !  p p lè!× ?   7 7  7  7  !Ę b˚- ٚ  7  7  ! *   7  7 K    x K Returns an iterator over all non-overlapping occurrences of a substring inN    # Complexity  E This routine is guaranteed to have worst case linear time complexityH E with respect to both the needle and the haystack. That is, this runsH , in `O(needle.len() + haystack.len())` time./  B This routine is also guaranteed to have worst case constant spaceE  complexity.   # Examples   Basic usage:    use memchr::memmem;  ' let haystack = b"foo bar foo baz foo";* 2 let mut it = memmem::find_iter(haystack, b"foo");5  assert_eq!(Some(0), it.next());#  assert_eq!(Some(8), it.next());# ! assert_eq!(Some(16), it.next());$  assert_eq!(None, it.next());   ! ! I  q b p l \뤎к!II I  IbK  #| E Returns a reverse iterator over all non-overlapping occurrences of aH  substring in a haystack.    H H /    E           ! ! ! ! !* 3 let mut it = memmem::rfind_iter(haystack, b"foo");!6 "$ "# "# # # # ! ! I  r b l \꼢!II# I# # IbиKݸ# # +< ? Returns the index of the first occurrence of the given needle.$B % H Note that if you're are searching for the same needle in many different%K C small haystacks, it may be faster to initialize a [`Finder`] once,&F  and reuse it for each search.&! & & ' 'H 'H (/ ( (E ) ) ) ) ) ) ) ) )  let haystack = b"foo bar baz";)" 5 assert_eq!(Some(0), memmem::find(haystack, b"foo"));*8 5 assert_eq!(Some(4), memmem::find(haystack, b"bar"));*8 3 assert_eq!(None, memmem::find(haystack, b"quux"));+6 + +  7 7  7  7+ bμKۼ4= > Returns the index of the last occurrence of the given needle.-A - -K F small haystacks, it may be faster to initialize a [`FinderRev`] once,.I /! / / / /H 0H 0/ 1 1E 1 1 1 1 1 2 2 2 2 2" 6 assert_eq!(Some(0), memmem::rfind(haystack, b"foo"));29 6 assert_eq!(Some(4), memmem::rfind(haystack, b"bar"));39 5 assert_eq!(Some(8), memmem::rfind(haystack, b"ba"));38 4 assert_eq!(None, memmem::rfind(haystack, b"quux"));37 4 4  7 7  7  74 bK9 !I  q b p l \뤎к!I9 9 9d 9  !  W K C؊ߩaI !Ibl>0 E Convert this iterator into its owned variant, such that it no longer;H  borrows the finder and needle.;" < G If this is already an owned iterator, then this is a no-op. Otherwise,   q b p l \뤎к! !I?* !I@ @ @ @ @# @  7  7@  !I@ C- C  7  7C  !IC L !I  r b l \꼢!IL M Mj M  !  X K CٟI !IblQ3 OH O" O PJ P P : This is only available when the `std` feature is enabled.P= Q Q Q  Q Q Q Q Q   r b l \꼢! !IS- !IS S S S S# T  7  7T  !IT ^ I  W K C؊ߩaI^ _@ * Create a new finder for the given needle.^- _  I;_ IK_ f4 F Returns the index of the first occurrence of this needle in the given`I ` a a a aH bH b/ c cE c c c d d d d  use memchr::memmem::Finder;d d d" 8 assert_eq!(Some(0), Finder::new("foo").find(haystack));e; 8 assert_eq!(Some(4), Finder::new("bar").find(haystack));e; 6 assert_eq!(None, Finder::new("quux").find(haystack));f9 f f  7 7  7  7f  If boa G Returns an iterator over all occurrences of a substring in a haystack.hJ i i i iH iH j/ j kE k k k k l l l l l l* " let finder = Finder::new(b"foo");m% ) let mut it = finder.find_iter(haystack);m, m# n# n$ n o o !! ! !  q b p l \뤎к!!o  Io bo ڀs* C Convert this finder into its owned variant, such that it no longerpF  borrows the needle.q q E If this is already an owned finder, then this is a no-op. Otherwise,qH q r r? r r r  r r r r s   W K C؊ߩa Ix" / Convert this finder into its borrowed variant.t2 t C This is primarily useful if your finder is owned and you'd like totF @ store its borrowed variant in some intermediate data structure.uC v G Note that the lifetime parameter of the returned finder is tied to thevJ E lifetime of `self`, and may be shorter than the `'n` lifetime of thevH C needle itself. Namely, a finder's needle can be either borrowed orwF F owned, so the lifetime of the needle returned must necessarily be thewI  shorter of the two.x x  7  7  W K C؊ߩa 7y  Iy } 2 Returns the needle that this finder searches for.z5 z F Note that the lifetime of the needle returned is tied to the lifetimezI D of the finder, and may be shorter than the `'n` lifetime. Namely, a{G H finder's needle can be either borrowed or owned, so the lifetime of the{K < needle returned must necessarily be the shorter of the two.|? }  7  7  7}  I} ք I  X K CٟIۄ C 2 Create a new reverse finder for the given needle.5 …  Iӏ;҅ IKƅ A E Returns the index of the last occurrence of this needle in the givenH   B The haystack may be any type that can be cheaply converted into aE C `&[u8]`. This includes, but is not limited to, `&str` and `&[u8]`.F  È ؈ H H /  E      ̋ ԋ  use memchr::memmem::FinderRev;"  " < assert_eq!(Some(0), FinderRev::new("foo").rfind(haystack));? < assert_eq!(Some(4), FinderRev::new("bar").rfind(haystack));? : assert_eq!(None, FinderRev::new("quux").rfind(haystack));=    7  7ӏ;   I be D Returns a reverse iterator over all occurrences of a substring in aG     H H /  E Œ ْ      " ̓ ԓ* % let finder = FinderRev::new(b"foo");( * let mut it = finder.rfind_iter(haystack);- $ # # ە   !! !ӏ !  r b l \꼢!!  I b ʞ- F   H   =  ğ        ӏ  X K Cٟ I% ś2  F ԅϜC  J H ӇF I ԟ   7  7ӏ  X K Cٟ 7  I  5  I ؋G K ڣ?   7  7ӏ  7  I   3 Create a new finder builder with default settings.6 ƨ l ? Build a forward finder using the given needle from the currentB  settings.ҩ  I 7  7 I  W K C؊ߩaI;   KΨΨ  I Build a forward finder using the given needle and a custom heuristic forL : determining the frequency of a given byte in the dataset.= 1 See [`HeuristicFrequencyRank`] for more details.4  I 7  7 I  W K C؊ߩaI&;   ԭ  ҊKƬƬججȭ ̰o ? Build a reverse finder using the given needle from the currentB  Ӱ I 7  7 I  X K CٟI; ݩ  Kӯӯ G 0 Configure the prefilter setting for the finder.3  C See the documentation for [`Prefilter`] for more discussion on whyF " you might want to configure this.%   7  7   M @ @ 0Mų       "   0  2 '- + * 3 28"        "    !!! !!"-" ###  #$$  $(**΢,",C," ..  ҙ..  /9/ Ȝ՜080 181 22  ޢ67  PPPP  P P2P PP  OPMQvcopy_lane_s64{ pvcopy_lane_u64~ pvcopy_lane_p64 pvcopy_lane_f64 pvcopy_laneq_s64ֈ qvcopy_laneq_u64Ȍ qvcopy_laneq_p64 qvcopy_laneq_f64 qvld1_s8 qvld1q_s8Ś qvld1_s16 q vld1q_s16  qvld1_s32 q vld1q_s32  qvld1_s64٦ q vld1q_s64  qvld1_u8ȫ qvld1q_u8 qvld1_u16 q vld1q_u16  qvld1_u32 q vld1q_u32ݷ  qvld1_u64 q vld1q_u64μ  qvld1_p8 qvld1q_p8 qvld1_p16 q vld1q_p16  qvld1_p64 q vld1q_p64  qvld1_f32 q vld1q_f32  qvld1_f64 q vld1q_f64  q vld1_dup_f64  q vld1q_dup_f64  q vld1_lane_f64  qvld1q_lane_f64 qvst1_s8 qvst1q_s8 qvst1_s16 q vst1q_s16  qvst1_s32 q vst1q_s32  qvst1_s64 q vst1q_s64  qvst1_u8 qvst1q_u8 qvst1_u16 q vst1q_u16  qvst1_u32 q vst1q_u32Љ  qvst1_u64 q vst1q_u64  qvst1_p8 qvst1q_p8ߔ qvst1_p16— q vst1q_p16  qvst1_p64 q vst1q_p64Ρ  qvst1_f32 q vst1q_f32  qvst1_f64 q vst1q_f64߬  q vabsd_s64  qvabs_s64а q vabsq_s64  qvbsl_f64 qvbsl_p64 q vbslq_f64˼  q vbslq_p64  q vuqadd_s8  q vuqaddq_s8  q vuqadd_s16  q vuqaddq_s16  q vuqadd_s32  q vuqaddq_s32  q vuqadd_s64  q vuqaddq_s64  q vsqadd_u8  q vsqaddq_u8  q vsqadd_u16  q vsqaddq_u16  q vsqadd_u32  q vsqaddq_u32  q vsqadd_u64  q vsqaddq_u64  q vpaddq_s16  q vpaddq_u16  q vpaddq_s32  q vpaddq_u32  q vpaddq_s64  q vpaddq_u64  q vpaddq_s8  q vpaddq_u8  q vpaddd_s64  q vpaddd_u64  q vaddv_s16  q vaddv_s32  qvaddv_s8 q vaddv_u16  q vaddv_u32݂  qvaddv_u8Ą q vaddvq_s16  q vaddvq_s32  q vaddvq_s8  q vaddvq_u16܋  q vaddvq_u32ō  q vaddvq_u8  q vaddvq_s64  q vaddvq_u64  q vaddlv_s8  q vaddlvq_s8  q vaddlv_u8  q vaddlvq_u8  qvadd_f64Ӝ q vaddq_f64͞  qvadd_s64Ǡ qvadd_u64 q vaddd_s64  r vaddd_u64  rvmaxv_s8 r vmaxvq_s8  r vmaxv_s16ګ  r vmaxvq_s16ƭ  r vmaxv_s32  r vmaxvq_s32  rvmaxv_u8 r vmaxvq_u8  r vmaxv_u16  r vmaxvq_u16и  r vmaxv_u32  r vmaxvq_u32  r vmaxv_f32  r vmaxvq_f32  r vmaxvq_f64  rvminv_s8 r vminvq_s8  r vminv_s16  r vminvq_s16  r vminv_s32  r vminvq_s32  rvminv_u8 r vminvq_u8  r vminv_u16  r vminvq_u16  r vminv_u32  r vminvq_u32  r vminv_f32  r vminvq_f32  r vminvq_f64  r vpminq_s8  r vpminq_s16  r vpminq_s32  r vpminq_u8  r vpminq_u16  r vpminq_u32  r vpminq_f32  r vpminq_f64  r vpmaxq_s8  r vpmaxq_s16  r vpmaxq_s32  r vpmaxq_u8  r vpmaxq_u16  r vpmaxq_u32  r vpmaxq_f32  r vpmaxq_f64  rvext_p64 rvext_f64 r vdup_n_p64  r vdup_n_f64ĉ  r vdupq_n_p64Ћ  r vdupq_n_f64  r vmov_n_p64  r vmov_n_f64  r vmovq_n_p64  r vmovq_n_f64  r vget_high_f64  r vget_high_p64К  r vget_low_f64  r vget_low_p64  r vget_lane_f64  rvgetq_lane_f64 r vcombine_f64ǧ  rvtbl1_s8 rvtbl1_u8 rvtbl1_p8 rvtbl2_s8 rvtbl2_u8ų rvtbl2_p8 rvtbl3_s8 rvtbl3_u8 rvtbl3_p8 rvtbl4_s8 rvtbl4_u8 rvtbl4_p8 rvtbx1_s8 rvtbx1_u8 rvtbx1_p8 rvtbx2_s8 rvtbx2_u8 rvtbx2_p8 rvtbx3_s8 rvtbx3_u8 rvtbx3_p8 rvtbx4_s8 rvtbx4_u8 rvtbx4_p8 r vqtbl1_s8  r vqtbl1q_s8  r vqtbl1_u8  r vqtbl1q_u8  r vqtbl1_p8  r vqtbl1q_p8  r vqtbx1_s8  r vqtbx1q_s8  r vqtbx1_u8  r vqtbx1q_u8  r vqtbx1_p8  r vqtbx1q_p8ċ  r vqtbl2_s8  r vqtbl2q_s8  r vqtbl2_u8  r vqtbl2q_u8  r vqtbl2_p8  r vqtbl2q_p8ך  r vqtbx2_s8  r vqtbx2q_s8  r vqtbx2_u8  r vqtbx2q_u8ǥ  r vqtbx2_p8  r vqtbx2q_p8  r vqtbl3_s8  r vqtbl3q_s8  r vqtbl3_u8  r vqtbl3q_u8  r vqtbl3_p8  r vqtbl3q_p8  r vqtbx3_s8  r vqtbx3q_s8  r vqtbx3_u8  r vqtbx3q_u8  r vqtbx3_p8  r vqtbx3q_p8  s vqtbl4_s8  s vqtbl4q_s8  s vqtbl4_u8  s vqtbl4q_u8  s vqtbl4_p8  s vqtbl4q_p8  s vqtbx4_s8  s vqtbx4q_s8  s vqtbx4_u8  s vqtbx4q_u8  s vqtbx4_p8  s vqtbx4q_p8  s vshld_n_s64  s vshld_n_u64  s vshrd_n_s64  s vshrd_n_u64  s vsrad_n_s64  s vsrad_n_u64ׅ  s vsli_n_s8Ĉ  s vsliq_n_s8  s vsli_n_s16  s vsliq_n_s16  s vsli_n_s32  s vsliq_n_s32ۖ  s vsli_n_s64˙  s vsliq_n_s64  s vsli_n_u8  s vsliq_n_u8  s vsli_n_u16¥  s vsliq_n_u16Ѩ  s vsli_n_u32  s vsliq_n_u32  s vsli_n_u64  s vsliq_n_u64  s vsli_n_p8  s vsliq_n_p8  s vsli_n_p16Ǿ  s vsliq_n_p16  s vsli_n_p64  s vsliq_n_p64  s vsri_n_s8  s vsriq_n_s8  s vsri_n_s16  s vsriq_n_s16  s vsri_n_s32  s vsriq_n_s32  s vsri_n_s64  s vsriq_n_s64  s vsri_n_u8  s vsriq_n_u8  s vsri_n_u16  s vsriq_n_u16  s vsri_n_u32  s vsriq_n_u32  s vsri_n_u64  s vsriq_n_u64  s vsri_n_p8  s vsriq_n_p8  s vsri_n_p16  s vsriq_n_p16  s vsri_n_p64  s vsriq_n_p64Ď  s vsm3tt1aq_u32  s vsm3tt1bq_u32  s vsm3tt2aq_u32  s vsm3tt2bq_u32  s vxarq_u64  t_TMSTART_SUCCESS  t_TMFAILURE_REASON  t_TMFAILURE_RTRY  t_TMFAILURE_CNCL  t_TMFAILURE_MEM t_TMFAILURE_IMP t_TMFAILURE_ERR t_TMFAILURE_SIZE t_TMFAILURE_NEST t_TMFAILURE_DBG t_TMFAILURE_INT t_TMFAILURE_TRIVIAL t__tstart t __tcommit  t __tcancel  t__ttest" t__crc32d t __crc32cd  t_PREFETCH_READ t_PREFETCH_WRITE t_PREFETCH_LOCALITY0 t_PREFETCH_LOCALITY1 t_PREFETCH_LOCALITY2 t_PREFETCH_LOCALITY3 t _prefetch  t__dmb i__dsb i__isb iSYiإܥiSTiiISHiŦiISHSTiiNSHiiNSHSTiiOSHiiOSHSTiͨԨiLDgiiISHLDiiNSHLDiiOSHLDii__wfi i__wfe i__sev  i__sevl i__yield i__nop i__crc32b  j__crc32h j__crc32w j __crc32cb  j __crc32ch  j __crc32cw  j vaeseq_u8  j vaesdq_u8"  j vaesmcq_u8&  j vaesimcq_u8*  j vsha1h_u32/  j vsha1cq_u323  j vsha1mq_u327  j vsha1pq_u32<  j vsha1su0q_u32A  j vsha1su1q_u32E  j vsha256hq_u32J  jvsha256h2q_u32O jvsha256su0q_u32T jvsha256su1q_u32Y j vld1_lane_s8֫  j vld1q_lane_s8װ  j vld1_lane_s16ڵ  jvld1q_lane_s16޺ j vld1_lane_s32  jvld1q_lane_s32 j vld1_lane_s64  jvld1q_lane_s64 j vld1_lane_u8  j vld1q_lane_u8  j vld1_lane_u16  jvld1q_lane_u16 j vld1_lane_u32  jvld1q_lane_u32 k vld1_lane_u64  kvld1q_lane_u64 k vld1_lane_p8  k vld1q_lane_p8  k vld1_lane_p16  kvld1q_lane_p16 k vld1_lane_p64  kvld1q_lane_p64 k vld1_lane_f32  kvld1q_lane_f32 k vld1_dup_s8  k vld1q_dup_s8ͪ  k vld1_dup_s16Ư  k vld1q_dup_s16  k vld1_dup_s32  k vld1q_dup_s32н  k vld1_dup_s64  k vld1q_dup_s64  k vld1_dup_u8  k vld1q_dup_u8  k vld1_dup_u16  k vld1q_dup_u16  k vld1_dup_u32  k vld1q_dup_u32  k vld1_dup_u64  k vld1q_dup_u64  k vld1_dup_p8  k vld1q_dup_p8  k vld1_dup_p16  k vld1q_dup_p16  k vld1_dup_f32  k vld1_dup_p64  k vld1q_dup_p64  k vld1q_dup_f32  kvaba_s8њ kvaba_s16 kvaba_s32 kvaba_u8 kvaba_u16 kvaba_u32 kvabaq_s8 k vabaq_s16Ĵ  k vabaq_s32  kvabaq_u8 k vabaq_u16  k vabaq_u32  kvabs_s8 kvabs_s16 kvabs_s32 kvabsq_s8 k vabsq_s16  k vabsq_s32  k vpadd_s16  k vpadd_s32  kvpadd_s8 k vpadd_u16  k vpadd_u32  kvpadd_u8 kvadd_s8 kvaddq_s8 kvadd_s16 k vaddq_s16  kvadd_s32 k vaddq_s32  k vaddq_s64  kvadd_u8 kvaddq_u8ߍ kvadd_u16 k vaddq_u16  kvadd_u32 k vaddq_u32  k vaddq_u64  kvadd_f32 k vaddq_f32  kvaddl_s8 k vaddl_s16  k vaddl_s32  kvaddl_u8ܶ k vaddl_u16  k vaddl_u32  k vaddl_high_s8  kvaddl_high_s16 kvaddl_high_s32 k vaddl_high_u8  kvaddl_high_u16 kvaddl_high_u32 kvaddw_s8 k vaddw_s16  k vaddw_s32  kvaddw_u8 k vaddw_u16  k vaddw_u32  k vaddw_high_s8  kvaddw_high_s16 kvaddw_high_s32 l vaddw_high_u8  lvaddw_high_u16 lvaddw_high_u32 l vaddhn_s16ߕ  l vaddhn_s32  l vaddhn_s64  l vaddhn_u16  l vaddhn_u32  l vaddhn_u64  lvaddhn_high_s16 lvaddhn_high_s32 lvaddhn_high_s64 lvaddhn_high_u16 lvaddhn_high_u32 lvaddhn_high_u64 l vraddhn_s16  l vraddhn_s32  l vraddhn_s64  l vraddhn_u16  l vraddhn_u32  l vraddhn_u64  lvraddhn_high_s16 lvraddhn_high_s32 lvraddhn_high_s64 lvraddhn_high_u16 lvraddhn_high_u32 lvraddhn_high_u64 l vpaddl_s8  l vpaddl_s16ւ  l vpaddl_s32  l vpaddlq_s8  l vpaddlq_s16  l vpaddlq_s32  l vpaddl_u8̔  l vpaddl_u16  l vpaddl_u32  l vpaddlq_u8  l vpaddlq_u16  l vpaddlq_u32Ц  l vmovn_s16  l vmovn_s32έ  l vmovn_s64  l vmovn_u16ƴ  l vmovn_u32  l vmovn_u64  lvmovl_s8 l vmovl_s16  l vmovl_s32  lvmovl_u8 l vmovl_u16  l vmovl_u32  lvmvn_s8 lvmvnq_s8 lvmvn_s16 l vmvnq_s16  lvmvn_s32 l vmvnq_s32  lvmvn_u8 lvmvnq_u8 lvmvn_u16 l vmvnq_u16  lvmvn_u32 l vmvnq_u32  lvmvn_p8 lvmvnq_p8 lvbic_s8Ћ lvbicq_s8ۏ lvbic_s16 l vbicq_s16  lvbic_s32 l vbicq_s32  lvbic_s64 l vbicq_s64  lvbic_u8 lvbicq_u8 lvbic_u16 l vbicq_u16  lvbic_u32 l vbicq_u32  lvbic_u64 l vbicq_u64  lvbsl_s8 lvbsl_s16 lvbsl_s32 lvbsl_s64 lvbsl_u8 lvbsl_u16 lvbsl_u32 lvbsl_u64 lvbsl_f32 lvbsl_p8 lvbsl_p16 lvbslq_s8  l vbslq_s16  l vbslq_s32  l vbslq_s64Փ  lvbslq_u8  l vbslq_u16  l vbslq_u32  l vbslq_u64  lvbslq_p8Ԭ  l vbslq_p16  l vbslq_f32  lvorn_s8  lvornq_s8  lvorn_s16  l vornq_s16  lvorn_s32  l vornq_s32  lvorn_s64  l vornq_s64  lvorn_u8  lvornq_u8  lvorn_u16  l vornq_u16  lvorn_u32  l vornq_u32  lvorn_u64  l vornq_u64  lvpmin_s8  l vpmin_s16  l vpmin_s32  lvpmin_u8  l vpmin_u16ˍ  l vpmin_u32  l vpmin_f32  lvpmax_s8  l vpmax_s16Ɯ  m vpmax_s32  mvpmax_u8  m vpmax_u16ۧ  m vpmax_u32  m vpmax_f32  mvgetq_lane_u64ײ  m vget_lane_u64  m vget_lane_u16  m vget_lane_s16  m vget_lane_p16  m vget_lane_u32  m vget_lane_s32  m vget_lane_f32  mvgetq_lane_f32  m vget_lane_p64  mvgetq_lane_p64  m vget_lane_s64  mvgetq_lane_s64  mvgetq_lane_u16  mvgetq_lane_u32  mvgetq_lane_s16  mvgetq_lane_p16  mvgetq_lane_s32  m vget_lane_u8  m vget_lane_s8  m vget_lane_p8  m vgetq_lane_u8ǂ  m vgetq_lane_s8  m vgetq_lane_p8  m vget_high_s8  m vget_high_s16  m vget_high_s32  m vget_high_s64  m vget_high_u8  m vget_high_u16  m vget_high_u32ѥ  m vget_high_u64  m vget_high_p8  m vget_high_p16  m vget_high_f32  m vget_low_s8  m vget_low_s16  m vget_low_s32  m vget_low_s64  m vget_low_u8  m vget_low_u16  m vget_low_u32  m vget_low_u64  m vget_low_p8  m vget_low_p16  m vget_low_f32  m vdupq_n_s8  m vdupq_n_s16  m vdupq_n_s32  m vdupq_n_s64  m vdupq_n_u8  m vdupq_n_u16  m vdupq_n_u32  m vdupq_n_u64  m vdupq_n_p8  m vdupq_n_p16ƀ  m vdupq_n_f32ӄ  m vdup_n_s8  m vdup_n_s16  m vdup_n_s32  m vdup_n_s64  m vdup_n_u8  m vdup_n_u16  m vdup_n_u32ڤ  m vdup_n_u64  m vdup_n_p8  m vdup_n_p16  m vdup_n_f32  m vldrq_p128ʼ  m vstrq_p128  m vmov_n_s8  m vmov_n_s16  m vmov_n_s32  m vmov_n_s64  m vmov_n_u8  m vmov_n_u16  m vmov_n_u32  m vmov_n_u64  m vmov_n_p8  m vmov_n_p16  m vmov_n_f32  m vmovq_n_s8  m vmovq_n_s16  m vmovq_n_s32  m vmovq_n_s64  m vmovq_n_u8  m vmovq_n_u16  m vmovq_n_u32˂  m vmovq_n_u64  m vmovq_n_p8  m vmovq_n_p16ۍ  m vmovq_n_f32  mvext_s64  mvext_u64  mvcnt_s8ҝ  nvcntq_s8  nvcnt_u8Ȥ  nvcntq_u8  nvcnt_p8  nvcntq_p8  n vrev16_s8  n vrev16q_s8  n vrev16_u8  n vrev16q_u8  n vrev16_p8  n vrev16q_p8  n vrev32_s8  n vrev32q_s8  n vrev32_u8  n vrev32q_u8  n vrev32_s16  n vrev32q_s16  n vrev32_p16  n vrev32q_p16  n vrev32_u16  n vrev32q_u16  n vrev32_p8  n vrev32q_p8  n vrev64_s8  n vrev64q_s8  n vrev64_s16  n vrev64q_s16  n vrev64_s32܋  n vrev64q_s32ŏ  n vrev64_u8  n vrev64q_u8  n vrev64_u16ț  n vrev64q_u16  n vrev64_u32  n vrev64q_u32  n vrev64_f32  n vrev64q_f32  n vrev64_p8  n vrev64q_p8  n vrev64_p16  n vrev64q_p16  n vpadal_s8  n vpadal_s16  n vpadal_s32  n vpadalq_s8  n vpadalq_s16  n vpadalq_s32  n vpadal_u8  n vpadal_u16  n vpadal_u32  n vpadalq_u8  n vpadalq_u16  n vpadalq_u32  n vmmlaq_s32  n vmmlaq_u32  n vusmmlaq_s32  n vcombine_f32  n vcombine_p8ȗ  n vcombine_p16  n vcombine_s8  n vcombine_s16š  n vcombine_s32դ  n vcombine_s64٧  n vcombine_u8ת  n vcombine_u16  n vcombine_u32  n vcombine_u64  n vcombine_p64  n int8x8_t poly8x8_t  int16x4_t  uint16x4_t  poly16x4_t  int32x2_t  uint32x2_t  float32x2_t  int64x1_t   poly64x1_t  int8x16_t   poly8x16_t#  int16x8_t& )  poly16x8_t,  int32x4_t/  uint32x4_t1  float32x4_t3  int64x2_t5 6  poly64x2_t8  int8x8x2_t:  int8x8x3_t< ܫ int8x8x4_t>  int8x16x2_t@ ֬ int8x16x3_tB  int8x16x4_tE ҭ߭ uint8x8x2_tG  uint8x8x3_tI ήۮ uint8x8x4_tK  uint8x16x2_tM ʯد uint8x16x3_tO  uint8x16x4_tQ Ȱְ poly8x8x2_tT  poly8x8x3_tV űұ poly8x8x4_tX  poly8x16x2_tZ ϲ poly8x16x3_t\  poly8x16x4_t^ ͳ int16x4x2_ta  int16x4x3_tc ɴ int16x4x4_te  int16x8x2_tg ŵ int16x8x3_ti  int16x8x4_tk  uint16x4x2_tn  uint16x4x3_tp  uint16x4x4_tr  uint16x8x2_tt  uint16x8x3_tv  uint16x8x4_ty  poly16x4x2_t{  poly16x4x3_t}  poly16x4x4_t  poly16x8x2_t  poly16x8x3_t  poly16x8x4_t  int32x2x2_t  int32x2x3_t  int32x2x4_t  int32x4x2_t  int32x4x3_t  int32x4x4_t  uint32x2x2_tĕ  uint32x2x3_tʗ  uint32x2x4_tߙ  uint32x4x2_t  uint32x4x3_t  uint32x4x4_t  float32x2x2_t  float32x2x3_t  float32x2x4_t  float32x4x2_tͩ  float32x4x3_t׫  float32x4x4_t  int64x1x2_t  int64x1x3_t  int64x1x4_t  int64x2x2_t߶  int64x2x3_t  int64x2x4_t  uint64x1x2_t  uint64x1x3_t  uint64x1x4_t  uint64x2x2_t  uint64x2x3_t  uint64x2x4_t  poly64x1x2_t  poly64x1x3_t  poly64x1x4_t  poly64x2x2_t  poly64x2x3_t  poly64x2x4_t  float64x1_t  float64x2_t ȕ float64x1x2_t ѕҕ float64x1x3_t ڕە float64x1x4_t  float64x2x2_t  float64x2x3_t  float64x2x4_t vand_s8& vandq_s8 & vand_s16&  vandq_s16 & vand_s32&  vandq_s32 & vand_u8 & vandq_u8$& vand_u16(&  vandq_u16- & vand_u321&  vandq_u325 & vand_s64:&  vandq_s64> & vand_u64B&  vandq_u64G & vorr_s8K& vorrq_s8P& vorr_s16T&  vorrq_s16Y & vorr_s32]&  vorrq_s32b & vorr_u8f& vorrq_u8k& vorr_u16o&  vorrq_u16t & vorr_u32x&  vorrq_u32} & vorr_s64ǁ&  vorrq_s64 & vorr_u64Ê&  vorrq_u64 & veor_s8& veorq_s8& veor_s16&  veorq_s16 & veor_s32&  veorq_s32 & veor_u8& veorq_u8Բ& veor_u16&  veorq_u16ϻ & veor_u32&  veorq_u32 & veor_s64& ¶ veorq_s64 & öveor_u64& Ķ veorq_u64 & Ŷvabd_s8& ƶvabdq_s8& ɶvabd_s16& ̶ vabdq_s16 & ϶vabd_s32& Ҷ vabdq_s32 & նvabd_u8& ضvabdq_u8& ۶vabd_u16ב& ޶ vabdq_u16ɘ & vabd_u32&  vabdq_u32 & vabd_f32&  vabdq_f32 & vabdl_u8&  vabdl_u16 &  vabdl_u32 & vabdl_s8&  vabdl_s16 &  vabdl_s32 & vceq_u8& vceqq_u8& vceq_u16&  vceqq_u16 & vceq_u32&  vceqq_u32 & vceq_s8& vceqq_s8& vceq_s16&  vceqq_s16 & vceq_s32&  vceqq_s32 & vceq_p8& vceqq_p8ؑ& vceq_f32&  vceqq_f32Ӛ & vtst_s8& vtstq_s8& vtst_s16&  vtstq_s16 & vtst_s32´&  vtstq_s32ڹ & vtst_p8& vtstq_p8& vtst_p16&  vtstq_p16 & vtst_u8& vtstq_u8& vtst_u16&  vtstq_u16 & vtst_u32&  vtstq_u32 & vabs_f32&  vabsq_f32 & vcgt_s8& vcgtq_s8& vcgt_s16߅&  vcgtq_s16 & vcgt_s32ю&  vcgtq_s32 & vcgt_u8×& vcgtq_u8& vcgt_u16&  vcgtq_u16 & vcgt_u32&  vcgtq_u32 & vcgt_f32&  vcgtq_f32 & vclt_s8& vcltq_s8߿& vclt_s16&  vcltq_s16 & vclt_s32&  vcltq_s32 & vclt_u8& vcltq_u8& vclt_u16&  vcltq_u16 & vclt_u32&  vcltq_u32 & vclt_f32&  vcltq_f32 & vcle_s8& vcleq_s8& vcle_s16Â&  vcleq_s16 & vcle_s32&  vcleq_s32 & vcle_u8& vcleq_u8& vcle_u16&  vcleq_u16 & vcle_u32Ħ&  vcleq_u32 & vcle_f32ѯ&  vcleq_f32 & vcge_s8& ·vcgeq_s8& ÷vcge_s16& ķ vcgeq_s16 & ŷvcge_s32& Ʒ vcgeq_s32 & Ƿvcge_u8& ȷvcgeq_u8& ɷvcge_u16& ʷ vcgeq_u16 & ˷vcge_u32& ̷ vcgeq_u32 & ͷvcge_f32& η vcgeq_f32 & Ϸvcls_s8& зvclsq_s8& ӷvcls_s16& ַ vclsq_s16 & ٷvcls_s32& ܷ vclsq_s32 & ߷vcls_u8О& vclsq_u8& vcls_u16&  vclsq_u16 & vcls_u32&  vclsq_u32ϴ & vclz_s8& vclzq_s8& vclz_s16&  vclzq_s16 & vclz_s32&  vclzq_s32 & vclz_u8& vclzq_u8& vclz_u16&  vclzq_u16 & vclz_u32&  vclzq_u32 &  vcagt_f32 &  vcagtq_f32 &  vcage_f32 &  vcageq_f32 &  vcalt_f32 &  vcaltq_f32 &  vcale_f32ē &  vcaleq_f32 &  vcreate_s8 &  vcreate_s16 &  vcreate_s32٥ &  vcreate_s64 &  vcreate_u8Į &  vcreate_u16 &  vcreate_u32 &  vcreate_u64 &  vcreate_p8 &  vcreate_p16 &  vcreate_p64 &  vcreate_f32 &  vcvt_f32_s32 &  vcvtq_f32_s32 &  vcvt_f32_u32 &  vcvtq_f32_u32 & vcvt_n_f32_s32& vcvtq_n_f32_s32& vcvt_n_f32_u32& vcvtq_n_f32_u32& vcvt_n_s32_f32& vcvtq_n_s32_f32& vcvt_n_u32_f32& vcvtq_n_u32_f32ζ&  vcvt_s32_f32Ƚ &  vcvtq_s32_f32 &  vcvt_u32_f32 &  vcvtq_u32_f32 &  vdup_lane_s8 & vdupq_laneq_s8& ¸ vdup_lane_s16 & ĸvdupq_laneq_s16& Ƹ vdup_lane_s32 & ȸvdupq_laneq_s32& ʸ vdup_laneq_s8 & ̸vdup_laneq_s16Ȃ & θvdup_laneq_s32 & и vdupq_lane_s8ҍ & Ҹvdupq_lane_s16 & Ըvdupq_lane_s32 & ָ vdup_lane_u8ݟ & ظvdupq_laneq_u8ҥ & ڸ vdup_lane_u16 & ܸvdupq_laneq_u16 & ޸ vdup_lane_u32 & vdupq_laneq_u32 &  vdup_laneq_u8 & vdup_laneq_u16 & vdup_laneq_u32 &  vdupq_lane_u8 & vdupq_lane_u16 & vdupq_lane_u32 &  vdup_lane_p8 & vdupq_laneq_p8 &  vdup_lane_p16 & vdupq_laneq_p16 &  vdup_laneq_p8 & vdup_laneq_p16 &  vdupq_lane_p8މ & vdupq_lane_p16 & vdupq_laneq_s64 & vdupq_lane_s64ԛ & vdupq_laneq_u64 & vdupq_lane_u64 &  vdup_lane_f32 & vdupq_laneq_f32 & vdup_laneq_f32 & vdupq_lane_f32ȼ &  vdup_lane_s64 &  vdup_lane_u64 & vdup_laneq_s64 & vdup_laneq_u64 & vext_s8 & vextq_s8 & vext_s16 &  vextq_s16 & vext_s32 &  vextq_s32 & vext_u8 & vextq_u8 & vext_u16ǫ &  vextq_u16ز & vext_u32 &  vextq_u32 & vext_p8 & vextq_p8 & vext_p16 &  vextq_p16 &  vextq_s64 &  vextq_u64 & vext_f32 &  vextq_f32 & vmla_s8 & vmlaq_s8̓ & vmla_s16 & ¹ vmlaq_s16 & ùvmla_s32ġ & Ĺ vmlaq_s32 & Źvmla_u8 & ƹvmlaq_u8 & ǹvmla_u16 & ȹ vmlaq_u16 & ɹvmla_u32 & ʹ vmlaq_u32 & ˹vmla_f32 & ̹ vmlaq_f32 & ͹ vmla_n_s16 & ι vmlaq_n_s16 & Ϲ vmla_n_s32 & й vmlaq_n_s32 & ѹ vmla_n_u16 & ҹ vmlaq_n_u16 & ӹ vmla_n_u32 & Թ vmlaq_n_u32 & չ vmla_n_f32 & ֹ vmlaq_n_f32 & ׹ vmla_lane_s16ր & عvmla_laneq_s16 & ڹvmlaq_lane_s16 & ܹvmlaq_laneq_s16ʓ & ޹ vmla_lane_s32 & vmla_laneq_s32 & vmlaq_lane_s32 & vmlaq_laneq_s32 &  vmla_lane_u16 & vmla_laneq_u16θ & vmlaq_lane_u16 & vmlaq_laneq_u16 &  vmla_lane_u32 & vmla_laneq_u32 & vmlaq_lane_u32 & vmlaq_laneq_u32 &  vmla_lane_f32 & vmla_laneq_f32 & vmlaq_lane_f32 & vmlaq_laneq_f32 & vmlal_s8 &  vmlal_s16 &  vmlal_s32ۅ & vmlal_u8&  vmlal_u16 &  vmlal_u32 &  vmlal_n_s16Ԙ &  vmlal_n_s32 &  vmlal_n_u16 &  vmlal_n_u32 & vmlal_lane_s16ì& vmlal_laneq_s16& vmlal_lane_s32& vmlal_laneq_s32& vmlal_lane_u16& vmlal_laneq_u16& vmlal_lane_u32& vmlal_laneq_u32& vmls_s8& vmlsq_s8& vmls_s16&  vmlsq_s16 & vmls_s32&  vmlsq_s32 & vmls_u8& vmlsq_u8& vmls_u16&  vmlsq_u16ه & vmls_u32&  vmlsq_u32 & vmls_f32&  vmlsq_f32 &  vmls_n_s16۟ &  vmlsq_n_s16 &  vmls_n_s32 &  vmlsq_n_s32 &  vmls_n_u16ϲ &  vmlsq_n_u16 &  vmls_n_u32 &  vmlsq_n_u32 &  vmls_n_f32 &  vmlsq_n_f32 &  vmls_lane_s16 & vmls_laneq_s16& vmlsq_lane_s16& vmlsq_laneq_s16&  vmls_lane_s32 & vmls_laneq_s32& vmlsq_lane_s32& vmlsq_laneq_s32&  vmls_lane_u16 & ºvmls_laneq_u16& ĺvmlsq_lane_u16͍& ƺvmlsq_laneq_u16& Ⱥ vmls_lane_u32 & ʺvmls_laneq_u32& ̺vmlsq_lane_u32ߦ& κvmlsq_laneq_u32& к vmls_lane_f32 & Һvmls_laneq_f32& Ժvmlsq_lane_f32& ֺvmlsq_laneq_f32& غvmlsl_s8& ں vmlsl_s16 & ۺ vmlsl_s32 & ܺvmlsl_u8& ݺ vmlsl_u16 & ޺ vmlsl_u32 & ߺ vmlsl_n_s16 &  vmlsl_n_s32 &  vmlsl_n_u16 &  vmlsl_n_u32 & vmlsl_lane_s16& vmlsl_laneq_s16́& vmlsl_lane_s32& vmlsl_laneq_s32& vmlsl_lane_u16& vmlsl_laneq_u16& vmlsl_lane_u32Š& vmlsl_laneq_u32Ц& vneg_s8& vnegq_s8& vneg_s16&  vnegq_s16 & vneg_s32&  vnegq_s32 & vneg_f32&  vnegq_f32 & vqneg_s8&  vqnegq_s8 &  vqneg_s16 &  vqnegq_s16 &  vqneg_s32 &  vqnegq_s32 & vqsub_u8&  vqsubq_u8 &  vqsub_u16ʁ &  vqsubq_u16 &  vqsub_u32 &  vqsubq_u32 &  vqsub_u64œ &  vqsubq_u64 & vqsub_s8&  vqsubq_s8ư &  vqsub_s16 &  vqsubq_s16 &  vqsub_s32 &  vqsubq_s32 &  vqsub_s64 &  vqsubq_s64 & vhadd_u8&  vhaddq_u8 &  vhadd_u16 & Ļ vhaddq_u16 & ǻ vhadd_u32 & ʻ vhaddq_u32 & ͻvhadd_s8& л vhaddq_s8 & ӻ vhadd_s16ܔ & ֻ vhaddq_s16 & ٻ vhadd_s32 & ܻ vhaddq_s32 & ߻ vrhadd_u8¯ &  vrhaddq_u8 &  vrhadd_u16 &  vrhaddq_u16 &  vrhadd_u32 &  vrhaddq_u32 &  vrhadd_s8 &  vrhaddq_s8 &  vrhadd_s16 &  vrhaddq_s16 &  vrhadd_s32 &  vrhaddq_s32 &  vrndn_f32Ё &  vrndnq_f32Ȉ & vqadd_u8&  vqaddq_u8֕ &  vqadd_u16 &  vqaddq_u16 &  vqadd_u32ߩ &  vqaddq_u32 &  vqadd_u64 &  vqaddq_u64 & vqadd_s8&  vqaddq_s8 &  vqadd_s16 &  vqaddq_s16 &  vqadd_s32 &  vqaddq_s32 &  vqadd_s64 &  vqaddq_s64 &  vld1_s8_x2 &  vld1_s16_x2 &  vld1_s32_x2 & ¼ vld1_s64_x2 & ż vld1q_s8_x2 & ȼ vld1q_s16_x2 & ˼ vld1q_s32_x2 & μ vld1q_s64_x2 & Ѽ vld1_s8_x3IJ & Լ vld1_s16_x3¹ & ׼ vld1_s32_x3 & ڼ vld1_s64_x3 & ݼ vld1q_s8_x3 &  vld1q_s16_x3 &  vld1q_s32_x3 &  vld1q_s64_x3 &  vld1_s8_x4 &  vld1_s16_x4 &  vld1_s32_x4 &  vld1_s64_x4 &  vld1q_s8_x4 &  vld1q_s16_x4 &  vld1q_s32_x4 &  vld1q_s64_x4 &  vld1_u8_x2̣ &  vld1_u16_x2 &  vld1_u32_x2 &  vld1_u64_x2 &  vld1q_u8_x2 &  vld1q_u16_x2 &  vld1q_u32_x2 &  vld1q_u64_x2 &  vld1_u8_x3 &  vld1_u16_x3 &  vld1_u32_x3 &  vld1_u64_x3 &  vld1q_u8_x3 &  vld1q_u16_x3 &  vld1q_u32_x3 &  vld1q_u64_x3 &  vld1_u8_x4 &  vld1_u16_x4 &  vld1_u32_x4 &  vld1_u64_x4 &  vld1q_u8_x4 &  vld1q_u16_x4 &  vld1q_u32_x4ߏ &  vld1q_u64_x4ה &  vld1_p8_x2͙ &  vld1_p8_x3 &  vld1_p8_x4 &  vld1q_p8_x2 &  vld1q_p8_x3 &  vld1q_p8_x4 &  vld1_p16_x2 &  vld1_p16_x3 &  vld1_p16_x4 &  vld1q_p16_x2 &  vld1q_p16_x3 &  vld1q_p16_x4 &  vld1_p64_x2 &  vld1_p64_x3 &  vld1_p64_x4 &  vld1q_p64_x2 &  vld1q_p64_x3 &  vld1q_p64_x4 &  vld1_f32_x2 &  vld1q_f32_x2 &  vld1_f32_x3 &  vld1q_f32_x3LJ &  vld1_f32_x4׎ &  vld1q_f32_x4 & vld2_s8& vld2_s16& ývld2_s32Բ& ƽvld2q_s8& ɽ vld2q_s16 & ̽ vld2q_s32 & Ͻvld2_s64& ҽvld2_u8& սvld2_u16& ֽvld2_u32& ׽vld2q_u8& ؽ vld2q_u16 & ٽ vld2q_u32 & ڽvld2_p8& ۽vld2_p16& ܽvld2q_p8߃& ݽ vld2q_p16 & ޽vld2_u64& ߽vld2_p64ّ& vld2_f32ϙ&  vld2q_f32 &  vld2_dup_s8 &  vld2_dup_s16 &  vld2_dup_s32 &  vld2q_dup_s8 &  vld2q_dup_s16 &  vld2q_dup_s32 &  vld2_dup_s64 &  vld2_dup_u8 &  vld2_dup_u16 &  vld2_dup_u32 &  vld2q_dup_u8 &  vld2q_dup_u16 &  vld2q_dup_u32 &  vld2_dup_p8 &  vld2_dup_p16 &  vld2q_dup_p8 &  vld2q_dup_p16 &  vld2_dup_u64 &  vld2_dup_p64 &  vld2_dup_f32ɮ &  vld2q_dup_f32ڸ &  vld2_lane_s8 &  vld2_lane_s16 &  vld2_lane_s32 & vld2q_lane_s16& vld2q_lane_s32&  vld2_lane_u8 &  vld2_lane_u16 &  vld2_lane_u32 & vld2q_lane_u16& vld2q_lane_u32&  vld2_lane_p8ۚ &  vld2_lane_p16̠ & vld2q_lane_p16æ&  vld2_lane_f32 & vld2q_lane_f32ؽ& vld3_s8& vld3_s16& vld3_s32& vld3q_s8& þ vld3q_s16 & ƾ vld3q_s32 & ɾvld3_s64& ̾vld3_u8& Ͼvld3_u16& оvld3_u32Ő& Ѿvld3q_u8& Ҿ vld3q_u16 & Ӿ vld3q_u32Ğ & Ծvld3_p8& վvld3_p16& ־vld3q_p8& ׾ vld3q_p16 & ؾvld3_u64& پvld3_p64& ھvld3_f32& ۾ vld3q_f32 & ޾ vld3_dup_s8 &  vld3_dup_s16 &  vld3_dup_s32 &  vld3q_dup_s8 &  vld3q_dup_s16 &  vld3q_dup_s32 &  vld3_dup_s64 &  vld3_dup_u8 &  vld3_dup_u16 &  vld3_dup_u32ޢ &  vld3q_dup_u8ק &  vld3q_dup_u16Ь &  vld3q_dup_u32̱ &  vld3_dup_p8ƶ &  vld3_dup_p16 &  vld3q_dup_p8 &  vld3q_dup_p16 &  vld3_dup_u64 &  vld3_dup_p64 &  vld3_dup_f32 &  vld3q_dup_f32 &  vld3_lane_s8 &  vld3_lane_s16 &  vld3_lane_s32͆ & vld3q_lane_s16& vld3q_lane_s32&  vld3_lane_u8 &  vld3_lane_u16 &  vld3_lane_u32޳ & vld3q_lane_u16׹& vld3q_lane_u32ҿ&  vld3_lane_p8 &  vld3_lane_p16 & vld3q_lane_p16&  vld3_lane_f32 & vld3q_lane_f32& vld4_s8& vld4_s16& vld4_s32چ& vld4q_s8&  vld4q_s16ϙ &  vld4q_s32 & ÿvld4_s64ˬ& ƿvld4_u8& ɿvld4_u16& ʿvld4_u32& ˿vld4q_u8& ̿ vld4q_u16 & Ϳ vld4q_u32 & οvld4_p8& Ͽvld4_p16& пvld4q_p8& ѿ vld4q_p16 & ҿvld4_u64& ӿvld4_p64& Կvld4_f32& տ vld4q_f32 & ؿ vld4_dup_s8 & ۿ vld4_dup_s16 & ޿ vld4_dup_s32 &  vld4q_dup_s8 &  vld4q_dup_s16ĩ &  vld4q_dup_s32ҳ &  vld4_dup_s64ڽ &  vld4_dup_u8 &  vld4_dup_u16 &  vld4_dup_u32 &  vld4q_dup_u8 &  vld4q_dup_u16 &  vld4q_dup_u32 &  vld4_dup_p8 &  vld4_dup_p16 &  vld4q_dup_p8 &  vld4q_dup_p16 &  vld4_dup_u64 &  vld4_dup_p64 &  vld4_dup_f32! &  vld4q_dup_f32! &  vld4_lane_s8ܘ! &  vld4_lane_s16ʥ! &  vld4_lane_s32IJ! & vld4q_lane_s16ÿ!& vld4q_lane_s32!&  vld4_lane_u8! &  vld4_lane_u16! &  vld4_lane_u32! & vld4q_lane_u16!& vld4q_lane_u32!&  vld4_lane_p8! &  vld4_lane_p16! & vld4q_lane_p16!&  vld4_lane_f32" & vld4q_lane_f32"&  vst1_lane_s8О" &  vst1_lane_s16" &  vst1_lane_s32" &  vst1_lane_s64" &  vst1q_lane_s8ѵ" & vst1q_lane_s16"& vst1q_lane_s32"& vst1q_lane_s64"&  vst1_lane_u8" &  vst1_lane_u16" &  vst1_lane_u32" &  vst1_lane_u64" &  vst1q_lane_u8" & vst1q_lane_u16"& vst1q_lane_u32"& vst1q_lane_u64"&  vst1_lane_p8" &  vst1_lane_p16ۀ# &  vst1q_lane_p8# & vst1q_lane_p16#&  vst1_lane_p64# & vst1q_lane_p64#&  vst1_lane_f32ҝ# & vst1q_lane_f32#&  vst1_s8_x2# &  vst1_s16_x2# &  vst1_s32_x2# &  vst1_s64_x2# &  vst1q_s8_x2# &  vst1q_s16_x2# &  vst1q_s32_x2# &  vst1q_s64_x2# &  vst1_s8_x3# &  vst1_s16_x3ч$ &  vst1_s32_x3$ &  vst1_s64_x3$ &  vst1q_s8_x3$ &  vst1q_s16_x3$ &  vst1q_s32_x3$ &  vst1q_s64_x3$ &  vst1_s8_x4$ &  vst1_s16_x4$ &  vst1_s32_x4$ &  vst1_s64_x4$ &  vst1q_s8_x4$ &  vst1q_s16_x4% &  vst1q_s32_x4% &  vst1q_s64_x4ۛ% &  vst1_u8_x2ʢ% &  vst1_u16_x2% &  vst1_u32_x2% &  vst1_u64_x2% &  vst1q_u8_x2% &  vst1q_u16_x2% &  vst1q_u32_x2% &  vst1q_u64_x2% &  vst1_u8_x3% &  vst1_u16_x3% &  vst1_u32_x3% &  vst1_u64_x3% &  vst1q_u8_x3% &  vst1q_u16_x3% &  vst1q_u32_x3% &  vst1q_u64_x3% &  vst1_u8_x4% &  vst1_u16_x4% &  vst1_u32_x4% &  vst1_u64_x4& &  vst1q_u8_x4& &  vst1q_u16_x4& &  vst1q_u32_x4& &  vst1q_u64_x4& &  vst1_p8_x2& &  vst1_p8_x3& &  vst1_p8_x4& &  vst1q_p8_x2& &  vst1q_p8_x3& &  vst1q_p8_x4۱& &  vst1_p16_x2Ҷ& &  vst1_p16_x3ʻ& &  vst1_p16_x4& &  vst1q_p16_x2& &  vst1q_p16_x3& &  vst1q_p16_x4& &  vst1_p64_x2& &  vst1_p64_x3& &  vst1_p64_x4& &  vst1q_p64_x2& &  vst1q_p64_x3& &  vst1q_p64_x4& &  vst1_f32_x2& &  vst1q_f32_x2& &  vst1_f32_x3' &  vst1q_f32_x3' &  vst1_f32_x4˟' &  vst1q_f32_x4' & vst2_s8'& vst2_s16'& vst2_s32'& vst2q_s8'&  vst2q_s16' &  vst2q_s32' & vst2_s64'& vst2_u8'& vst2_u16'& vst2_u32'& vst2q_u8(&  vst2q_u16݇( &  vst2q_u32Œ( & vst2_p8(& vst2_p16(& vst2q_p8(&  vst2q_p16ǟ( & vst2_u64(& vst2_p64(& vst2_f32(&  vst2q_f32( &  vst2_lane_s8( &  vst2_lane_s16( &  vst2_lane_s32( & vst2q_lane_s16(& vst2q_lane_s32(&  vst2_lane_u8( &  vst2_lane_u16) &  vst2_lane_u32߈) & vst2q_lane_u16ǎ)& vst2q_lane_u32)&  vst2_lane_p8) &  vst2_lane_p16) & vst2q_lane_p16)&  vst2_lane_f32) & vst2q_lane_f32)& vst3_s8)& vst3_s16)& vst3_s32)& vst3q_s8)&  vst3q_s16) &  vst3q_s32) & vst3_s64*& vst3_u8*& vst3_u16Ӎ*& vst3_u32*& vst3q_u8*&  vst3q_u16* &  vst3q_u32* & vst3_p8˥*& vst3_p16*& vst3q_p8*&  vst3q_p16* & vst3_u64ظ*& vst3_p64*& vst3_f32*&  vst3q_f32* &  vst3_lane_s8* &  vst3_lane_s16* &  vst3_lane_s32* & vst3q_lane_s16*& vst3q_lane_s32+&  vst3_lane_u8+ &  vst3_lane_u16ؙ+ &  vst3_lane_u32+ & vst3q_lane_u16+& vst3q_lane_u32+&  vst3_lane_p8+ &  vst3_lane_p16+ & vst3q_lane_p16м+&  vst3_lane_f32+ & vst3q_lane_f32+& vst4_s8+& vst4_s16+& vst4_s32+& vst4q_s8+&  vst4q_s16, &  vst4q_s32Ǒ, & vst4_s64,& vst4_u8,& vst4_u16,& vst4_u32,& vst4q_u8ٰ,&  vst4q_u16, &  vst4q_u32, & vst4_p8,& vst4_p16,& vst4q_p8,&  vst4q_p16, & vst4_u64,& vst4_p64,& vst4_f32,&  vst4q_f32, &  vst4_lane_s8, &  vst4_lane_s16- &  vst4_lane_s32- & vst4q_lane_s16-& vst4q_lane_s32§-&  vst4_lane_u8- &  vst4_lane_u16- &  vst4_lane_u32- & vst4q_lane_u16-& vst4q_lane_u32-&  vst4_lane_p8- &  vst4_lane_p16- & vst4q_lane_p16-&  vst4_lane_f32- & vst4q_lane_f32-&  vusdot_s32- &  vusdotq_s32- & vusdot_lane_s32.& vusdotq_lane_s32.& vsudot_lane_s32.& vsudotq_lane_s32.& vmul_s8.& vmulq_s8.& vmul_s16٤.&  vmulq_s16. & vmul_s32.&  vmulq_s32ȱ. & vmul_u8.& vmulq_u8.& vmul_u16.&  vmulq_u16. & vmul_u32.&  vmulq_u32. & vmul_p8.& vmulq_p8.& vmul_f32.&  vmulq_f32. &  vmul_n_s16. &  vmulq_n_s16. &  vmul_n_s32. &  vmulq_n_s32. &  vmul_n_u16. &  vmulq_n_u16. &  vmul_n_u32/ &  vmulq_n_u32/ &  vmul_n_f32/ &  vmulq_n_f32/ &  vmul_lane_s16ڒ/ & vmul_laneq_s16/& vmulq_lane_s16/& vmulq_laneq_s16/&  vmul_lane_s32ª/ & vmul_laneq_s32/& vmulq_lane_s32͵/& vmulq_laneq_s32/&  vmul_lane_u16/ & vmul_laneq_u16/& vmulq_lane_u16/& vmulq_laneq_u16/&  vmul_lane_u32/ & vmul_laneq_u32/& vmulq_lane_u32/& vmulq_laneq_u32/&  vmul_lane_f32/ & vmul_laneq_f32/& vmulq_lane_f32/& vmulq_laneq_f320& vmull_s8׆0&  vmull_s160 &  vmull_s320 & vmull_u80&  vmull_u16š0 &  vmull_u320 & vmull_p80&  vmull_n_s160 &  vmull_n_s320 &  vmull_n_u160 &  vmull_n_u320 & vmull_lane_s160& vmull_laneq_s160& vmull_lane_s320& vmull_laneq_s320& vmull_lane_u160& vmull_laneq_u160& vmull_lane_u320& vmull_laneq_u320& vfma_f320&  vfmaq_f320 &  vfma_n_f321 &  vfmaq_n_f321 & vfms_f321&  vfmsq_f321 &  vfms_n_f32י1 &  vfmsq_n_f32Ԟ1 & vsub_s81& vsubq_s81& vsub_s161&  vsubq_s161 & vsub_s321&  vsubq_s32ϸ1 & vsub_u81& vsubq_u81& vsub_u161&  vsubq_u161 & vsub_u321&  vsubq_u321 & vsub_s641&  vsubq_s641 & vsub_u641&  vsubq_u641 & vsub_f321&  vsubq_f321 & vadd_p81& vadd_p161& vaddq_p81&  vaddq_p161 & vadd_p642&  vaddq_p642 &  vaddq_p128ۊ2 &  vsubhn_s162 &  vsubhn_s322 &  vsubhn_s642 &  vsubhn_u162 &  vsubhn_u322 &  vsubhn_u64Ѩ2 & vsubhn_high_s162& vsubhn_high_s322& vsubhn_high_s642& vsubhn_high_u16ǽ2& vsubhn_high_u322& vsubhn_high_u642& vhsub_u82&  vhsubq_u82 &  vhsub_u162 &  vhsubq_u162 &  vhsub_u322 &  vhsubq_u322 & vhsub_s82&  vhsubq_s82 &  vhsub_s16̃3 &  vhsubq_s163 &  vhsub_s323 &  vhsubq_s323 & vsubw_s8Ξ3&  vsubw_s163 &  vsubw_s323 & vsubw_u83&  vsubw_u163 &  vsubw_u323 & vsubl_s83&  vsubl_s163 &  vsubl_s323 & vsubl_u83&  vsubl_u163 &  vsubl_u323 & vdot_s323&  vdotq_s323 & vdot_u323&  vdotq_u323 &  vdot_lane_s323 & vdotq_lane_s323&  vdot_lane_u323 & vdotq_lane_u324& vmax_s84& vmaxq_s84& vmax_s164&  vmaxq_s164 & vmax_s32آ4&  vmaxq_s324 & vmax_u84& vmaxq_u84& vmax_u164&  vmaxq_u164 & vmax_u324&  vmaxq_u324 & vmax_f324&  vmaxq_f324 &  vmaxnm_f324 &  vmaxnmq_f324 & vmin_s84& vminq_s84& vmin_s165&  vminq_s165 & vmin_s32ȍ5&  vminq_s325 & vmin_u85& vminq_u85& vmin_u165&  vminq_u16Ϯ5 & vmin_u325&  vminq_u325 & vmin_f325&  vminq_f325 &  vminnm_f325 &  vminnmq_f325 &  vpadd_f325 &  vqdmull_s165 &  vqdmull_s325 &  vqdmull_n_s165 &  vqdmull_n_s325 & vqdmull_lane_s165& vqdmull_lane_s326&  vqdmlal_s166 &  vqdmlal_s326 &  vqdmlal_n_s166 &  vqdmlal_n_s326 & vqdmlal_lane_s166& vqdmlal_lane_s326&  vqdmlsl_s166 &  vqdmlsl_s32ح6 &  vqdmlsl_n_s16޲6 &  vqdmlsl_n_s326 & vqdmlsl_lane_s166& vqdmlsl_lane_s326&  vqdmulh_s166 &  vqdmulhq_s166 &  vqdmulh_s326 &  vqdmulhq_s326 &  vqdmulh_n_s166 &  vqdmulh_n_s326 & vqdmulhq_n_s166& vqdmulhq_n_s326& vqdmulhq_laneq_s166& vqdmulh_laneq_s166& vqdmulhq_laneq_s327& vqdmulh_laneq_s327&  vqmovn_s16ϐ7 &  vqmovn_s327 &  vqmovn_s647 &  vqmovn_u167 &  vqmovn_u327 &  vqmovn_u64̱7 &  vqmovun_s167 &  vqmovun_s327 &  vqmovun_s647 &  vqrdmulh_s167 &  vqrdmulhq_s167 &  vqrdmulh_s327 &  vqrdmulhq_s327 & vqrdmulh_n_s167& vqrdmulhq_n_s167& vqrdmulh_n_s327& vqrdmulhq_n_s327& vqrdmulh_lane_s167& vqrdmulh_laneq_s168& vqrdmulhq_lane_s16Պ8& vqrdmulhq_laneq_s16͑8& vqrdmulh_lane_s32Ę8& vqrdmulh_laneq_s328& vqrdmulhq_lane_s328& vqrdmulhq_laneq_s32׫8&  vqrshl_s8±8 &  vqrshlq_s88 &  vqrshl_s168 &  vqrshlq_s168 &  vqrshl_s328 &  vqrshlq_s328 &  vqrshl_s648 &  vqrshlq_s648 &  vqrshl_u88 &  vqrshlq_u88 &  vqrshl_u168 &  vqrshlq_u168 &  vqrshl_u32܄9 &  vqrshlq_u32݋9 &  vqrshl_u649 &  vqrshlq_u649 &  vqrshrn_n_s169 &  vqrshrn_n_s329 &  vqrshrn_n_s649 &  vqrshrn_n_u169 &  vqrshrn_n_u329 &  vqrshrn_n_u649 & vqrshrun_n_s169& vqrshrun_n_s329& vqrshrun_n_s64:& vqshl_s8:&  vqshlq_s8: &  vqshl_s16: &  vqshlq_s16ڜ: &  vqshl_s32: &  vqshlq_s32: &  vqshl_s64: &  vqshlq_s64: & vqshl_u8о:&  vqshlq_u8: &  vqshl_u16: &  vqshlq_u16: &  vqshl_u32: &  vqshlq_u32: &  vqshl_u64: &  vqshlq_u64: &  vqshl_n_s8: &  vqshlq_n_s8: &  vqshl_n_s16: &  vqshlq_n_s16; &  vqshl_n_s32Ê; &  vqshlq_n_s32; &  vqshl_n_s64; &  vqshlq_n_s64; &  vqshl_n_u8П; &  vqshlq_n_u8; &  vqshl_n_u16; &  vqshlq_n_u16; &  vqshl_n_u32; &  vqshlq_n_u32; &  vqshl_n_u64; &  vqshlq_n_u64; &  vqshlu_n_s8; &  vqshlu_n_s16; &  vqshlu_n_s32; &  vqshlu_n_s64; &  vqshluq_n_s8; &  vqshluq_n_s16< &  vqshluq_n_s32< &  vqshluq_n_s64ՠ< &  vqshrn_n_s16< &  vqshrn_n_s32< &  vqshrn_n_s64< &  vqshrn_n_u16< &  vqshrn_n_u32< &  vqshrn_n_u64< &  vqshrun_n_s16< &  vqshrun_n_s32< &  vqshrun_n_s64= &  vrsqrte_f32= &  vrsqrteq_f32= &  vrsqrte_u32ɚ= &  vrsqrteq_u32= &  vrsqrts_f32= &  vrsqrtsq_f32= &  vrecpe_f32= &  vrecpeq_f32ռ= &  vrecpe_u32= &  vrecpeq_u32= &  vrecps_f32= &  vrecpsq_f32= & vreinterpret_s8_u8=& vreinterpret_s8_p8=& vreinterpret_s16_p16=& vreinterpret_s16_u16=& vreinterpret_s32_u32=& vreinterpret_s64_u64=& vreinterpretq_s8_u8=& vreinterpretq_s8_p8=& vreinterpretq_s16_p16>& vreinterpretq_s16_u16>& vreinterpretq_s32_u32>& vreinterpretq_s64_u64>& vreinterpret_u8_p8>& vreinterpret_u8_s8ߘ>& vreinterpret_u16_p16>& vreinterpret_u16_s16ڡ>& vreinterpret_u32_s32>& vreinterpret_u64_s64ت>& vreinterpretq_u8_p8>& vreinterpretq_u8_s8Գ>& vreinterpretq_u16_p16>& vreinterpretq_u16_s16ռ>& vreinterpretq_u32_s32>& vreinterpretq_u64_s64>& vreinterpret_p8_s8>& vreinterpret_p8_u8>& vreinterpret_p16_s16>& vreinterpret_p16_u16>& vreinterpretq_p8_s8>& vreinterpretq_p8_u8>& vreinterpretq_p16_s16>& vreinterpretq_p16_u16>& vreinterpret_s8_s16>& vreinterpret_s8_u16>& vreinterpret_s8_p16>& vreinterpret_s16_s32>& vreinterpret_s16_u32>& vreinterpret_s32_s64?& vreinterpret_s32_u64?& vreinterpretq_s8_s16?& vreinterpretq_s8_u16?& vreinterpretq_s8_p16?& vreinterpretq_s16_s32?& vreinterpretq_s16_u32?& vreinterpretq_s32_s64?& vreinterpretq_s32_u64?& vreinterpret_u8_p16?& vreinterpret_u8_s16?& vreinterpret_u8_u16?& vreinterpret_u16_s32?& vreinterpret_u16_u32?& vreinterpret_u32_s64?& vreinterpret_u32_u64?& vreinterpretq_u8_p16?& vreinterpretq_u8_s16?& vreinterpretq_u8_u16?& vreinterpretq_u16_s32?& vreinterpretq_u16_u32?& vreinterpretq_u32_s64?& vreinterpretq_u32_u64?& vreinterpret_p8_p16?& vreinterpret_p8_s16?& vreinterpret_p8_u16?& vreinterpret_p16_s32?& vreinterpret_p16_u32?& vreinterpretq_p8_p16@& vreinterpretq_p8_s16@& vreinterpretq_p8_u16@& vreinterpretq_p16_s32@& vreinterpretq_p16_u32@& vreinterpret_s32_p64@& vreinterpret_u32_p64@& vreinterpretq_s32_p64@& vreinterpretq_u32_p64@& vreinterpretq_s64_p128@& vreinterpretq_u64_p128@& vreinterpretq_p64_p128@& vreinterpret_s16_p8@& vreinterpret_s16_s8@& vreinterpret_s16_u8@& vreinterpret_s32_p16@& vreinterpret_s32_s16@& vreinterpret_s32_u16@& vreinterpret_s64_s32@& vreinterpret_s64_u32@& vreinterpretq_s16_p8@& vreinterpretq_s16_s8@& vreinterpretq_s16_u8@& vreinterpretq_s32_p16@& vreinterpretq_s32_s16@& vreinterpretq_s32_u16@& vreinterpretq_s64_s32@& vreinterpretq_s64_u32@& vreinterpret_u16_p8A& vreinterpret_u16_s8A& vreinterpret_u16_u8A& vreinterpret_u32_p16ڍA& vreinterpret_u32_s16A& vreinterpret_u32_u16ٖA& vreinterpret_u64_s32A& vreinterpret_u64_u32؟A& vreinterpretq_u16_p8A& vreinterpretq_u16_s8بA& vreinterpretq_u16_u8A& vreinterpretq_u32_p16رA& vreinterpretq_u32_s16A& vreinterpretq_u32_u16ۺA& vreinterpretq_u64_s32A& vreinterpretq_u64_u32A& vreinterpret_p16_p8A& vreinterpret_p16_s8A& vreinterpret_p16_u8A& vreinterpretq_p16_p8A& vreinterpretq_p16_s8A& vreinterpretq_p16_u8A& vreinterpret_p64_s32A& vreinterpret_p64_u32A& vreinterpretq_p64_s32A& vreinterpretq_p64_u32A& vreinterpretq_p128_s64A& vreinterpretq_p128_u64A& vreinterpretq_p128_p64A& vreinterpret_s8_s32B& vreinterpret_s8_u32B& vreinterpret_s16_s64B& vreinterpret_s16_u64B& vreinterpretq_s8_s32ߔB& vreinterpretq_s8_u32B& vreinterpretq_s16_s64ݝB& vreinterpretq_s16_u64B& vreinterpret_u8_s32ܦB& vreinterpret_u8_u32B& vreinterpret_u16_s64֯B& vreinterpret_u16_u64B& vreinterpretq_u8_s32ոB& vreinterpretq_u8_u32B& vreinterpretq_u16_s64B& vreinterpretq_u16_u64B& vreinterpret_p8_s32B& vreinterpret_p8_u32B& vreinterpret_p16_s64B& vreinterpret_p16_u64B& vreinterpretq_p8_s32B& vreinterpretq_p8_u32B& vreinterpretq_p16_s64B& vreinterpretq_p16_u64B& vreinterpret_s16_p64B& vreinterpret_u16_p64B& vreinterpret_p16_p64B& vreinterpretq_s16_p64B& vreinterpretq_u16_p64C& vreinterpretq_p16_p64C& vreinterpretq_s32_p128C& vreinterpretq_u32_p128C& vreinterpret_s32_p8C& vreinterpret_s32_s8C& vreinterpret_s32_u8C& vreinterpret_s64_p16C& vreinterpret_s64_s16C& vreinterpret_s64_u16C& vreinterpretq_s32_p8߭C& vreinterpretq_s32_s8C& vreinterpretq_s32_u8ܶC& vreinterpretq_s64_p16C& vreinterpretq_s64_s16ݿC& vreinterpretq_s64_u16C& vreinterpret_u32_p8C& vreinterpret_u32_s8C& vreinterpret_u32_u8C& vreinterpret_u64_p16C& vreinterpret_u64_s16C& vreinterpret_u64_u16C& vreinterpretq_u32_p8C& vreinterpretq_u32_s8C& vreinterpretq_u32_u8C& vreinterpretq_u64_p16C& vreinterpretq_u64_s16C& vreinterpretq_u64_u16C& vreinterpret_p64_p16C& vreinterpret_p64_s16D& vreinterpret_p64_u16D& vreinterpretq_p64_p16D& vreinterpretq_p64_s16D& vreinterpretq_p64_u16D& vreinterpretq_p128_s32D& vreinterpretq_p128_u32D& vreinterpret_s8_s64D& vreinterpret_s8_u64D& vreinterpret_u8_s64D& vreinterpret_u8_u64D& vreinterpret_p8_s64D& vreinterpret_p8_u64D& vreinterpretq_s8_s64޽D& vreinterpretq_s8_u64D& vreinterpretq_u8_s64D& vreinterpretq_u8_u64D& vreinterpretq_p8_s64D& vreinterpretq_p8_u64D& vreinterpret_s8_p64D& vreinterpret_u8_p64D& vreinterpret_p8_p64D& vreinterpretq_s8_p64D& vreinterpretq_u8_p64D& vreinterpretq_p8_p64D& vreinterpretq_s16_p128D& vreinterpretq_u16_p128D& vreinterpretq_p16_p128D& vreinterpret_s64_p8E& vreinterpret_s64_s8E& vreinterpret_s64_u8E& vreinterpret_u64_p8ݎE& vreinterpret_u64_s8E& vreinterpret_u64_u8֗E& vreinterpretq_s64_p8E& vreinterpretq_s64_s8ӠE& vreinterpretq_s64_u8E& vreinterpretq_u64_p8ЩE& vreinterpretq_u64_s8E& vreinterpretq_u64_u8ϲE& vreinterpret_p64_p8E& vreinterpret_p64_s8ӻE& vreinterpret_p64_u8E& vreinterpretq_p64_p8E& vreinterpretq_p64_s8E& vreinterpretq_p64_u8E& vreinterpretq_p128_s16E& vreinterpretq_p128_u16E& vreinterpretq_p128_p16E& vreinterpretq_p128_s8E& vreinterpretq_p128_u8E& vreinterpretq_p128_p8E& vreinterpretq_s8_p128E& vreinterpretq_u8_p128E& vreinterpretq_p8_p128E& vreinterpret_s8_f32E& vreinterpret_s16_f32E& vreinterpret_s32_f32܃F& vreinterpret_s64_f32F& vreinterpretq_s8_f32܌F& vreinterpretq_s16_f32F& vreinterpretq_s32_f32ߕF& vreinterpretq_s64_f32F& vreinterpret_u8_f32F& vreinterpret_u16_f32F& vreinterpret_u32_f32F& vreinterpret_u64_f32F& vreinterpretq_u8_f32F& vreinterpretq_u16_f32F& vreinterpretq_u32_f32F& vreinterpretq_u64_f32F& vreinterpret_p8_f32F& vreinterpret_p16_f32F& vreinterpretq_p8_f32F& vreinterpretq_p16_f32F& vreinterpretq_p128_f32F& vreinterpret_f32_s8F& vreinterpret_f32_s16F& vreinterpret_f32_s32F& vreinterpret_f32_s64F& vreinterpretq_f32_s8F& vreinterpretq_f32_s16F& vreinterpretq_f32_s32F& vreinterpretq_f32_s64F& vreinterpret_f32_u8F& vreinterpret_f32_u16G& vreinterpret_f32_u32G& vreinterpret_f32_u64G& vreinterpretq_f32_u8G& vreinterpretq_f32_u16G& vreinterpretq_f32_u32G& vreinterpretq_f32_u64G& vreinterpret_f32_p8G& vreinterpret_f32_p16G& vreinterpretq_f32_p8G& vreinterpretq_f32_p16G& vreinterpretq_f32_p128³G& vrshl_s8G&  vrshlq_s8žG &  vrshl_s16G &  vrshlq_s16G &  vrshl_s32G &  vrshlq_s32G &  vrshl_s64G &  vrshlq_s64G & vrshl_u8G&  vrshlq_u8G &  vrshl_u16G &  vrshlq_u16H &  vrshl_u32H &  vrshlq_u32H &  vrshl_u64ӖH &  vrshlq_u64H &  vrshr_n_s8ӤH &  vrshrq_n_s8H &  vrshr_n_s16H &  vrshrq_n_s16H &  vrshr_n_s32H &  vrshrq_n_s32H &  vrshr_n_s64H &  vrshrq_n_s64H &  vrshr_n_u8H &  vrshrq_n_u8H &  vrshr_n_u16H &  vrshrq_n_u16H &  vrshr_n_u32H &  vrshrq_n_u32H &  vrshr_n_u64H &  vrshrq_n_u64H &  vrshrn_n_s16H &  vrshrn_n_s32I &  vrshrn_n_s64ӓI &  vrshrn_n_u16I &  vrshrn_n_u32I &  vrshrn_n_u64I &  vrsra_n_s8ݪI &  vrsraq_n_s8I &  vrsra_n_s16ֵI &  vrsraq_n_s16I &  vrsra_n_s32I &  vrsraq_n_s32I &  vrsra_n_s64I &  vrsraq_n_s64I &  vrsra_n_u8I &  vrsraq_n_u8I &  vrsra_n_u16I &  vrsraq_n_u16I &  vrsra_n_u32I &  vrsraq_n_u32I &  vrsra_n_u64I &  vrsraq_n_u64I &  vrsubhn_s16؂J &  vrsubhn_s32̉J &  vrsubhn_s64ĐJ &  vrsubhn_u16J &  vrsubhn_u32J &  vrsubhn_u64J &  vset_lane_s8ŦJ &  vset_lane_s16J &  vset_lane_s32ѱJ &  vset_lane_s64J &  vset_lane_u8ؼJ &  vset_lane_u16J &  vset_lane_u32J &  vset_lane_u64J &  vset_lane_p8J &  vset_lane_p16J &  vset_lane_p64J &  vsetq_lane_s8J & vsetq_lane_s16J& vsetq_lane_s32J& vsetq_lane_s64J&  vsetq_lane_u8J & vsetq_lane_u16J& vsetq_lane_u32K& vsetq_lane_u64ЊK&  vsetq_lane_p8K & vsetq_lane_p16K& vsetq_lane_p64K&  vset_lane_f32K & vsetq_lane_f32ͦK& vshl_s8K& vshlq_s8K& vshl_s16ӸK&  vshlq_s16K & vshl_s32K&  vshlq_s32K & vshl_s64K&  vshlq_s64K & vshl_u8K& vshlq_u8K& vshl_u16K&  vshlq_u16K & vshl_u32K&  vshlq_u32݁L & vshl_u64L&  vshlq_u64L &  vshl_n_s8L &  vshlq_n_s8L &  vshl_n_s16L &  vshlq_n_s16L &  vshl_n_s32L &  vshlq_n_s32L &  vshl_n_u8L &  vshlq_n_u8ȹL &  vshl_n_u16ӾL &  vshlq_n_u16L &  vshl_n_u32L &  vshlq_n_u32L &  vshl_n_s64L &  vshlq_n_s64L &  vshl_n_u64L &  vshlq_n_u64L &  vshll_n_s8L &  vshll_n_s16L &  vshll_n_s32L &  vshll_n_u8L &  vshll_n_u16L &  vshll_n_u32M &  vshr_n_s8χM &  vshrq_n_s8M &  vshr_n_s16ʒM &  vshrq_n_s16M &  vshr_n_s32ӝM &  vshrq_n_s32M &  vshr_n_s64ܨM &  vshrq_n_s64M &  vshr_n_u8M &  vshrq_n_u8M &  vshr_n_u16M &  vshrq_n_u16M &  vshr_n_u32M &  vshrq_n_u32M &  vshr_n_u64M &  vshrq_n_u64M &  vshrn_n_s16M &  vshrn_n_s32M &  vshrn_n_s64M &  vshrn_n_u16M &  vshrn_n_u32M &  vshrn_n_u64M &  vsra_n_s8N &  vsraq_n_s8ކN &  vsra_n_s16N &  vsraq_n_s16‘N &  vsra_n_s32N &  vsraq_n_s32N &  vsra_n_s64ݡN &  vsraq_n_s64N &  vsra_n_u8ŬN &  vsraq_n_u8N &  vsra_n_u16N &  vsraq_n_u16N &  vsra_n_u32N &  vsraq_n_u32N &  vsra_n_u64N &  vsraq_n_u64N & vtrn_s8N& vtrn_s16N& vtrnq_s8N&  vtrnq_s16N &  vtrnq_s32N & vtrn_u8N& vtrn_u16N& vtrnq_u8N&  vtrnq_u16O &  vtrnq_u32ɉO & vtrn_p8O& vtrn_p16O& vtrnq_p8ߙO&  vtrnq_p16O & vtrn_s32O& vtrn_u32ʪO& vtrn_f32O&  vtrnq_f32O & vzip_s8O& vzip_s16O& vzip_u8O& vzip_u16O& vzip_p8O& vzip_p16O& vzip_s32O& vzip_u32O& vzipq_s8O&  vzipq_s16O &  vzipq_s32O & vzipq_u8O&  vzipq_u16O &  vzipq_u32P & vzipq_p8P&  vzipq_p16P & vzip_f32P&  vzipq_f32P & vuzp_s8P& vuzp_s16P& vuzpq_s8P&  vuzpq_s16P &  vuzpq_s32вP & vuzp_u8P& vuzp_u16P& vuzpq_u8P&  vuzpq_u16P &  vuzpq_u32P & vuzp_p8P& vuzp_p16P& vuzpq_p8P&  vuzpq_p16P & vuzp_s32P& vuzp_u32P& vuzp_f32P&  vuzpq_f32P & vabal_u8P&  vabal_u16Q &  vabal_u32Q & vabal_s8ŎQ&  vabal_s16Q &  vabal_s32Q & vqabs_s8ΞQ&  vqabsq_s8Q &  vqabs_s16ثQ &  vqabsq_s16Q &  vqabs_s32Q &  vqabsq_s32Q &  veor3q_s8 '  veor3q_s16 '  veor3q_s32 '  veor3q_s64 '  veor3q_u8 '  veor3q_u16 '  veor3q_u32 '  veor3q_u64# ' vabd_f64('  vabdq_f64- '  vabds_f322 '  vabdd_f645 '  vabdl_high_u88 ' vabdl_high_u16<' vabdl_high_u32A'  vabdl_high_s8D ' vabdl_high_s16I' vabdl_high_s32M' vceq_u64Q'  vceqq_u64T ' vceq_s64W'  vceqq_s64Z ' vceq_p64]'  vceqq_p64` ' vceq_f64c'  vceqq_f64f '  vceqd_s64i '  vceqd_u64l '  vceqs_f32o '  vceqd_f64r ' vceqz_s8u'  vceqzq_s8x '  vceqz_s16| '  vceqzq_s16 '  vceqz_s32 '  vceqzq_s32 '  vceqz_s64 '  vceqzq_s64֌ ' vceqz_p8'  vceqzq_p8 '  vceqz_p64 '  vceqzq_p64 ' vceqz_u8'  vceqzq_u8Ϡ '  vceqz_u16 '  vceqzq_u16 '  vceqz_u32 '  vceqzq_u32 '  vceqz_u64 '  vceqzq_u64ٴ '  vceqz_f32 '  vceqzq_f32 '  vceqz_f64 '  vceqzq_f64 '  vceqzd_s64 '  vceqzd_u64 '  vceqzs_f32 '  vceqzd_f64 ' vtst_s64'  vtstq_s64 ' vtst_p64'  vtstq_p64 ' vtst_u64'  vtstq_u64 '  vtstd_s64 '  vtstd_u64 '  vuqadds_s32 '  vuqaddd_s64 '  vuqaddb_s8 '  vuqaddh_s16 ' vabs_f64'  vabsq_f64 ' vcgt_s64'  vcgtq_s64 ' vcgt_u64'  vcgtq_u64 ' vcgt_f64'  vcgtq_f64 '  vcgtd_s64 '  vcgtd_u64 '  vcgts_f32 '  vcgtd_f64 ' vclt_s64'  vcltq_s64 ' vclt_u64'  vcltq_u64٨ ' vclt_f64ҫ'  vcltq_f64ͮ '  vcltd_s64 '  vcltd_u64 '  vclts_f32 '  vcltd_f64º ' vcle_s64н'  vcleq_s64 '  vcged_s64 '  vcged_u64 '  vcges_f32 '  vcged_f64 ' vcle_u64'  vcleq_u64 ' vcle_f64'  vcleq_f64 '  vcled_s64 '  vcled_u64 '  vcles_f32 '  vcled_f64 ' vcge_s64'  vcgeq_s64 ' vcge_u64'  vcgeq_u64 ' vcge_f64'  vcgeq_f64 ' vcgez_s8'  vcgezq_s8 '  vcgez_s16 '  vcgezq_s16ք '  vcgez_s32 '  vcgezq_s32 '  vcgez_s64 '  vcgezq_s64 '  vcgez_f32 '  vcgezq_f32 '  vcgez_f64 '  vcgezq_f64ȟ '  vcgezd_s64 '  vcgezs_f32 '  vcgezd_f64 ' vcgtz_s8'  vcgtzq_s8 '  vcgtz_s16 '  vcgtzq_s16 '  vcgtz_s32 '  vcgtzq_s32м '  vcgtz_s64 '  vcgtzq_s64 '  vcgtz_f32 '  vcgtzq_f32 '  vcgtz_f64 '  vcgtzq_f64 '  vcgtzd_s64 '  vcgtzs_f32 '  vcgtzd_f64 ' vclez_s8'  vclezq_s8 '  vclez_s16 '  vclezq_s16 '  vclez_s32 '  vclezq_s32 '  vclez_s64 '  vclezq_s64 '  vclez_f32 '  vclezq_f32 '  vclez_f64 '  vclezq_f64 '  vclezd_s64ڄ '  vclezs_f32އ '  vclezd_f64 ' vcltz_s8ލ'  vcltzq_s8 '  vcltz_s16 '  vcltzq_s16ޗ '  vcltz_s32 '  vcltzq_s32 '  vcltz_s64 '  vcltzq_s64Ϥ '  vcltz_f32 '  vcltzq_f32 '  vcltz_f64Ů '  vcltzq_f64ر '  vcltzd_s64 '  vcltzs_f32 '  vcltzd_f64 '  vcagt_f64 '  vcagtq_f64 '  vcagts_f32 '  vcagtd_f64 '  vcage_f64 '  vcageq_f64 '  vcages_f32 '  vcaged_f64 '  vcalt_f64 '  vcaltq_f64 '  vcalts_f32 '  vcaltd_f64 '  vcale_f64 '  vcaleq_f64 '  vcales_f32 '  vcaled_f64 '  vcopy_lane_s8 ' vcopyq_laneq_s8' vcopy_lane_s16' vcopyq_laneq_s16' vcopy_lane_s32' vcopyq_laneq_s32' vcopyq_laneq_s64'  vcopy_lane_u8 ' vcopyq_laneq_u8' vcopy_lane_u16' vcopyq_laneq_u16' vcopy_lane_u32' vcopyq_laneq_u32' vcopyq_laneq_u64'  vcopy_lane_p8 ' vcopyq_laneq_p8' vcopy_lane_p16ŕ' vcopyq_laneq_p16' vcopyq_laneq_p64' vcopy_lane_f32' vcopyq_laneq_f32ݱ' vcopyq_laneq_f64ո' vcopy_laneq_s8' vcopy_laneq_s16' vcopy_laneq_s32' vcopy_laneq_u8' vcopy_laneq_u16' vcopy_laneq_u32' vcopy_laneq_p8' vcopy_laneq_p16' vcopy_laneq_f32Ԁ' vcopyq_lane_s8' vcopyq_lane_s16' vcopyq_lane_s32' vcopyq_lane_u8' vcopyq_lane_u16' vcopyq_lane_u32' vcopyq_lane_p8' vcopyq_lane_p16' vcopyq_lane_s64' vcopyq_lane_u64' vcopyq_lane_p64' vcopyq_lane_f32' vcopyq_lane_f64'  vcreate_f64Ȍ '  vcvt_f64_s64 '  vcvtq_f64_s64 '  vcvt_f64_u64 '  vcvtq_f64_u64 '  vcvt_f64_f32 ' vcvt_high_f64_f32'  vcvt_f32_f64ݡ ' vcvt_high_f32_f64'  vcvtx_f32_f64 ' vcvtxd_f32_f64' vcvtx_high_f32_f64Ѱ' vcvt_n_f64_s64' vcvtq_n_f64_s64' vcvts_n_f32_s32' vcvtd_n_f64_s64' vcvt_n_f64_u64' vcvtq_n_f64_u64' vcvts_n_f32_u32' vcvtd_n_f64_u64' vcvt_n_s64_f64' vcvtq_n_s64_f64' vcvts_n_s32_f32' vcvtd_n_s64_f64' vcvt_n_u64_f64' vcvtq_n_u64_f64' vcvts_n_u32_f32 ' vcvtd_n_u64_f64 '  vcvts_f32_s32 '  vcvtd_f64_s64 '  vcvts_f32_u32 '  vcvtd_f64_u64 '  vcvts_s32_f32ȗ '  vcvtd_s64_f64 '  vcvts_u32_f32 '  vcvtd_u64_f64 '  vcvt_s64_f64 '  vcvtq_s64_f64 '  vcvt_u64_f64ʬ '  vcvtq_u64_f64 '  vcvta_s32_f32 ' vcvtaq_s32_f32 '  vcvta_s64_f64 ' vcvtaq_s64_f64 ' vcvtas_s32_f32 ' vcvtad_s64_f64 ' vcvtas_u32_f32 ' vcvtad_u64_f64 '  vcvtn_s32_f32 ' vcvtnq_s32_f32 '  vcvtn_s64_f64 ' vcvtnq_s64_f64 ' vcvtns_s32_f32 ' vcvtnd_s64_f64 '  vcvtm_s32_f32 ' vcvtmq_s32_f32 '  vcvtm_s64_f64ń ' vcvtmq_s64_f64 ' vcvtms_s32_f32 ' vcvtmd_s64_f64 '  vcvtp_s32_f32 ' vcvtpq_s32_f32 '  vcvtp_s64_f64ܡ ' vcvtpq_s64_f64Ӧ ' vcvtps_s32_f32ͫ ' vcvtpd_s64_f64 '  vcvta_u32_f32 ' vcvtaq_u32_f32 '  vcvta_u64_f64 ' vcvtaq_u64_f64 '  vcvtn_u32_f32 ' vcvtnq_u32_f32 '  vcvtn_u64_f64 ' vcvtnq_u64_f64 ' vcvtns_u32_f32 ' vcvtnd_u64_f64 '  vcvtm_u32_f32 ' vcvtmq_u32_f32 '  vcvtm_u64_f64 ' vcvtmq_u64_f64 ' vcvtms_u32_f32 ' vcvtmd_u64_f64 '  vcvtp_u32_f32 ' vcvtpq_u32_f32 '  vcvtp_u64_f64 ' vcvtpq_u64_f64 ' vcvtps_u32_f32 ' vcvtpd_u64_f64 ' vdupq_laneq_p64š ' vdupq_lane_p64 ' vdupq_laneq_f64 ' vdupq_lane_f64 '  vdup_lane_p64 '  vdup_lane_f64 ' vdup_laneq_p64 ' vdup_laneq_f64 '  vdupb_lane_s8 ' vdupb_laneq_s8 ' vduph_lane_s16 ' vduph_laneq_s16 ' vdups_lane_s32 ' vdups_laneq_s32 ' vdupd_lane_s64 ' vdupd_laneq_s64 '  vdupb_lane_u8 ' vdupb_laneq_u8 ' vduph_lane_u16 ' vduph_laneq_u16 ' vdups_lane_u32 ' vdups_laneq_u32 ' vdupd_lane_u64 ' vdupd_laneq_u64 '  vdupb_lane_p8 ' vdupb_laneq_p8 ' vduph_lane_p16 ' vduph_laneq_p16 ' vdups_lane_f32 ' vdups_laneq_f32 ' vdupd_lane_f64 ' vdupd_laneq_f64ʔ '  vextq_p64 '  vextq_f64 ' vmla_f64 '  vmlaq_f64Ѥ '  vmlal_high_s8 ' vmlal_high_s16 ' vmlal_high_s32 '  vmlal_high_u8 ' vmlal_high_u16 ' vmlal_high_u32 ' vmlal_high_n_s16 ' vmlal_high_n_s32 ' vmlal_high_n_u16 ' vmlal_high_n_u32 ' vmlal_high_lane_s16 ' vmlal_high_laneq_s16 ' vmlal_high_lane_s32 ' vmlal_high_laneq_s32 ' vmlal_high_lane_u16 ' vmlal_high_laneq_u16 ' vmlal_high_lane_u32 ' vmlal_high_laneq_u32 ' vmls_f64 '  vmlsq_f64 '  vmlsl_high_s8 ' vmlsl_high_s16 ' vmlsl_high_s32 '  vmlsl_high_u8 ' vmlsl_high_u16 ' vmlsl_high_u32 ' vmlsl_high_n_s16 ' vmlsl_high_n_s32͕ ' vmlsl_high_n_u16 ' vmlsl_high_n_u32 ' vmlsl_high_lane_s16ӟ ' vmlsl_high_laneq_s16Τ ' vmlsl_high_lane_s32ɩ ' vmlsl_high_laneq_s32 ' vmlsl_high_lane_u16ײ ' vmlsl_high_laneq_u16ַ ' vmlsl_high_lane_u32ռ ' vmlsl_high_laneq_u32 ' vmovn_high_s16 ' vmovn_high_s32 ' vmovn_high_s64 ' vmovn_high_u16 ' vmovn_high_u32 ' vmovn_high_u64 ' vneg_s64 '  vnegq_s64 '  vnegd_s64 ' vneg_f64 '  vnegq_f64 '  vqneg_s64 '  vqnegq_s64 '  vqnegb_s8 '  vqnegh_s16 '  vqnegs_s32 '  vqnegd_s64 '  vqsubb_s8 '  vqsubh_s16 '  vqsubb_u8 '  vqsubh_u16 '  vqsubs_u32 '  vqsubd_u64 '  vqsubs_s32 '  vqsubd_s64 ' vrbit_s8'  vrbitq_s8 ' vrbit_u8'  vrbitq_u8 ' vrbit_p8'  vrbitq_p8 '  vrndx_f32 '  vrndxq_f32 '  vrndx_f64ͷ '  vrndxq_f64 '  vrnda_f32 '  vrndaq_f32 '  vrnda_f64 '  vrndaq_f64 '  vrndn_f64 '  vrndnq_f64 '  vrndns_f32 '  vrndm_f32 '  vrndmq_f32 '  vrndm_f64 '  vrndmq_f64 '  vrndp_f32 '  vrndpq_f32 '  vrndp_f64 '  vrndpq_f64 ' vrnd_f32'  vrndq_f32 ' vrnd_f64'  vrndq_f64 '  vrndi_f32 '  vrndiq_f32 '  vrndi_f64ڠ '  vrndiq_f64 '  vqaddb_s8Ω '  vqaddh_s16 '  vqaddb_u8 '  vqaddh_u16ٳ '  vqadds_u32 '  vqaddd_u64 '  vqadds_s32˿ '  vqaddd_s64 '  vld1_f64_x2 '  vld1q_f64_x2 '  vld1_f64_x3 '  vld1q_f64_x3 '  vld1_f64_x4 '  vld1q_f64_x4 '  vld2q_s64 '  vld2q_u64 '  vld2q_p64 ' vld2_f64'  vld2q_f64 '  vld2q_dup_s64 '  vld2q_dup_u64 '  vld2q_dup_p64 '  vld2_dup_f64ц '  vld2q_dup_f64ы '  vld2q_lane_s8 '  vld2_lane_s64 ' vld2q_lane_s64'  vld2_lane_p64 ' vld2q_lane_p64ϧ'  vld2q_lane_u8 '  vld2_lane_u64 ' vld2q_lane_u64Ǵ'  vld2q_lane_p8 '  vld2_lane_f64 ' vld2q_lane_f64'  vld3q_s64 '  vld3q_u64 '  vld3q_p64 ' vld3_f64'  vld3q_f64 '  vld3q_dup_s64 '  vld3q_dup_u64 '  vld3q_dup_p64 '  vld3_dup_f64 '  vld3q_dup_f64 '  vld3q_lane_s8 '  vld3_lane_s64 ' vld3q_lane_s64'  vld3_lane_p64 ' vld3q_lane_p64ϋ'  vld3q_lane_p8 '  vld3q_lane_u8 '  vld3_lane_u64Ә ' vld3q_lane_u64'  vld3_lane_f64 ' vld3q_lane_f64֧'  vld4q_s64߭ '  vld4q_u64 '  vld4q_p64յ ' vld4_f64'  vld4q_f64ɽ '  vld4q_dup_s64 '  vld4q_dup_u64 '  vld4q_dup_p64 '  vld4_dup_f64 '  vld4q_dup_f64 '  vld4q_lane_s8 '  vld4_lane_s64 ' vld4q_lane_s64'  vld4_lane_p64 ' vld4q_lane_p64'  vld4q_lane_p8 '  vld4q_lane_u8 '  vld4_lane_u64 ' vld4q_lane_u64ځ'  vld4_lane_f64 ' vld4q_lane_f64ˌ'  vst1_lane_f64 ' vst1q_lane_f64ȗ'  vst1_f64_x2 '  vst1q_f64_x2à '  vst1_f64_x3ե '  vst1q_f64_x3 '  vst1_f64_x4 '  vst1q_f64_x4۵ '  vst2q_s64 '  vst2q_u64 '  vst2q_p64 ' vst2_f64'  vst2q_f64 '  vst2q_lane_s8 '  vst2_lane_s64 ' vst2q_lane_s64'  vst2q_lane_u8 '  vst2_lane_u64 ' vst2q_lane_u64'  vst2q_lane_p8 '  vst2_lane_p64 ' vst2q_lane_p64'  vst2_lane_f64 ' vst2q_lane_f64'  vst3q_s64 '  vst3q_u64 '  vst3q_p64 ' vst3_f64ϒ'  vst3q_f64ӗ '  vst3q_lane_s8 '  vst3_lane_s64 ' vst3q_lane_s64'  vst3q_lane_u8 '  vst3_lane_u64ų ' vst3q_lane_u64۷'  vst3q_lane_p8 '  vst3_lane_p64 ' vst3q_lane_p64'  vst3_lane_f64 ' vst3q_lane_f64'  vst4q_s64 '  vst4q_u64 '  vst4q_p64 ' vst4_f64'  vst4q_f64 '  vst4q_lane_s8 '  vst4_lane_s64 ' vst4q_lane_s64'  vst4q_lane_u8 '  vst4_lane_u64 ' vst4q_lane_u64'  vst4q_lane_p8 '  vst4_lane_p64ǎ ' vst4q_lane_p64'  vst4_lane_f64 ' vst4q_lane_f64' vusdot_laneq_s32' vusdotq_laneq_s32' vsudot_laneq_s32' vsudotq_laneq_s32ȱ' vmul_f64'  vmulq_f64 '  vmul_n_f64 '  vmulq_n_f64 '  vmul_lane_f64 ' vmul_laneq_f64' vmulq_lane_f64' vmulq_laneq_f64' vmuls_lane_f32' vmuls_laneq_f32' vmuld_lane_f64' vmuld_laneq_f64'  vmull_high_s8 ' vmull_high_s16' vmull_high_s32'  vmull_high_u8 ' vmull_high_u16' vmull_high_u32'  vmull_p64 '  vmull_high_p8 ' vmull_high_p64' vmull_high_n_s16' vmull_high_n_s32' vmull_high_n_u16' vmull_high_n_u32' vmull_high_lane_s16ԑ' vmull_high_laneq_s16' vmull_high_lane_s32' vmull_high_laneq_s32ß' vmull_high_lane_u16' vmull_high_laneq_u16Ԩ' vmull_high_lane_u32' vmull_high_laneq_u32'  vmulx_f32 '  vmulxq_f32Ӻ '  vmulx_f64 '  vmulxq_f64 ' vmulx_lane_f64' vmulx_laneq_f64' vmulx_lane_f32' vmulx_laneq_f32' vmulxq_lane_f32' vmulxq_laneq_f32' vmulxq_lane_f64' vmulxq_laneq_f64'  vmulxs_f32 '  vmulxd_f64 ' vmulxs_lane_f32' vmulxs_laneq_f32' vmulxd_lane_f64' vmulxd_laneq_f64' vfma_f64'  vfmaq_f64 '  vfma_n_f64 '  vfmaq_n_f64 '  vfma_lane_f32 ' vfma_laneq_f32' vfmaq_lane_f32' vfmaq_laneq_f32'  vfma_lane_f64ئ ' vfma_laneq_f64' vfmaq_lane_f64' vfmaq_laneq_f64' vfmas_lane_f32' vfmas_laneq_f32' vfmad_lane_f64' vfmad_laneq_f64' vfms_f64'  vfmsq_f64 '  vfms_n_f64 '  vfmsq_n_f64 '  vfms_lane_f32 ' vfms_laneq_f32' vfmsq_lane_f32' vfmsq_laneq_f32'  vfms_lane_f64 ' vfms_laneq_f64' vfmsq_lane_f64' vfmsq_laneq_f64' vfmss_lane_f32' vfmss_laneq_f32' vfmsd_lane_f64' vfmsd_laneq_f64ی' vdiv_f32ߏ'  vdivq_f32 ' vdiv_f64'  vdivq_f64 ' vsub_f64'  vsubq_f64͝ '  vsubd_s64 '  vsubd_u64 '  vaddv_f32 '  vaddvq_f32 '  vaddvq_f64 '  vaddlv_s16 '  vaddlvq_s16 '  vaddlv_s32 '  vaddlvq_s32 '  vaddlv_u16 '  vaddlvq_u16 '  vaddlv_u32 '  vaddlvq_u32 '  vsubw_high_s8 ' vsubw_high_s16' vsubw_high_s32'  vsubw_high_u8 ' vsubw_high_u16' vsubw_high_u32'  vsubl_high_s8 ' vsubl_high_s16' vsubl_high_s32'  vsubl_high_u8 ' vsubl_high_u16' vsubl_high_u32'  vbcaxq_s8 '  vbcaxq_s16 '  vbcaxq_s32ݓ '  vbcaxq_s64 '  vbcaxq_u8Ԝ '  vbcaxq_u16 '  vbcaxq_u32٥ '  vbcaxq_u64 ' vcadd_rot270_f32' vcaddq_rot270_f32' vcaddq_rot270_f64' vcadd_rot90_f32ļ' vcaddq_rot90_f32' vcaddq_rot90_f64'  vcmla_f32 '  vcmlaq_f32 '  vcmlaq_f64 ' vcmla_rot90_f32' vcmlaq_rot90_f32' vcmlaq_rot90_f64' €vcmla_rot180_f32' ŀvcmlaq_rot180_f32' Ȁvcmlaq_rot180_f64' ˀvcmla_rot270_f32' ΀vcmlaq_rot270_f32' рvcmlaq_rot270_f64' Ԁvcmla_lane_f32' ׀vcmla_laneq_f32' ـvcmlaq_lane_f32' ۀvcmlaq_laneq_f32ݒ' ݀vcmla_rot90_lane_f32' ߀vcmla_rot90_laneq_f32' vcmlaq_rot90_lane_f32' vcmlaq_rot90_laneq_f32' vcmla_rot180_lane_f32' vcmla_rot180_laneq_f32' vcmlaq_rot180_lane_f32' vcmlaq_rot180_laneq_f32׷' vcmla_rot270_lane_f32' vcmla_rot270_laneq_f32' vcmlaq_rot270_lane_f32' vcmlaq_rot270_laneq_f32' vdot_laneq_s32' vdotq_laneq_s32' vdot_laneq_u32' vdotq_laneq_u32' vmax_f64'  vmaxq_f64 '  vmaxnm_f64 '  vmaxnmq_f64 '  vmaxnmv_f32 '  vmaxnmvq_f64 '  vmaxnmvq_f32 '  vpmaxnm_f32 '  vpmaxnmq_f64 '  vpmaxnmq_f32 '  vpmaxnms_f32 '  vpmaxnmqd_f64• '  vpmaxs_f32 '  vpmaxqd_f64 ' vmin_f64բ'  vminq_f64 '  vminnm_f64 '  vminnmq_f64 '  vminnmv_f32 '  vminnmvq_f64 '  vminnmvq_f32 '  vmovl_high_s8 ' vmovl_high_s16' vmovl_high_s32'  vmovl_high_u8 ' vmovl_high_u16' vmovl_high_u32' Á vpaddq_f32 ' ā vpaddq_f64 ' ǁ vpadds_f32 ' ʁ vpaddd_f64 ' ˁ vpminnm_f32 ' ́ vpminnmq_f64 ' ρ vpminnmq_f32 ' ҁ vpminnms_f32 ' Ձ vpminnmqd_f64 ' ؁ vpmins_f32 ' ہ vpminqd_f64 ' ށ vqdmullh_s16χ '  vqdmulls_s32 ' vqdmull_high_s16' vqdmull_high_s32' vqdmull_high_n_s16' vqdmull_high_n_s32' vqdmull_laneq_s16' vqdmull_laneq_s32פ' vqdmullh_lane_s16' vqdmullh_laneq_s16' vqdmulls_lane_s32' vqdmulls_laneq_s32' vqdmull_high_lane_s16ֹ' vqdmull_high_lane_s32߾' vqdmull_high_laneq_s16' vqdmull_high_laneq_s32' vqdmlal_high_s16' vqdmlal_high_s32' vqdmlal_high_n_s16' vqdmlal_high_n_s32' vqdmlal_laneq_s16' vqdmlal_laneq_s32' vqdmlal_high_lane_s16' vqdmlal_high_laneq_s16' vqdmlal_high_lane_s32' vqdmlal_high_laneq_s32'  vqdmlalh_s16 '  vqdmlals_s32 ' vqdmlalh_lane_s16' vqdmlalh_laneq_s16' vqdmlals_lane_s32' vqdmlals_laneq_s32' vqdmlsl_high_s16' vqdmlsl_high_s32ǐ' vqdmlsl_high_n_s16' vqdmlsl_high_n_s32Ǘ' vqdmlsl_laneq_s16' vqdmlsl_laneq_s32' vqdmlsl_high_lane_s16' vqdmlsl_high_laneq_s16è' vqdmlsl_high_lane_s32' vqdmlsl_high_laneq_s32'  vqdmlslh_s16 '  vqdmlsls_s32 ' vqdmlslh_lane_s16' vqdmlslh_laneq_s16' vqdmlsls_lane_s32' vqdmlsls_laneq_s32'  vqdmulhh_s16 '  vqdmulhs_s32 ' vqdmulhh_lane_s16' vqdmulhh_laneq_s16' vqdmulhs_lane_s32' vqdmulhs_laneq_s32' vqdmulh_lane_s16' vqdmulhq_lane_s16' vqdmulh_lane_s32' vqdmulhq_lane_s32'  vqmovnh_s16 '  vqmovns_s32 ' Ă vqmovnh_u16 ' ł vqmovns_u32 ' Ƃ vqmovnd_s64 ' ǂ vqmovnd_u64 ' ʂvqmovn_high_s16' ͂vqmovn_high_s32' ΂vqmovn_high_s64' ςvqmovn_high_u16ؕ' Ђvqmovn_high_u32' тvqmovn_high_u64ۜ' ҂ vqmovunh_s16 ' ӂ vqmovuns_s32 ' Ԃ vqmovund_s64 ' Ղvqmovun_high_s16' ւvqmovun_high_s32' ׂvqmovun_high_s64˰' ؂ vqrdmulhh_s16 ' ق vqrdmulhs_s32ѷ ' ڂvqrdmulhh_lane_s16' ۂvqrdmulhh_laneq_s16' ݂vqrdmulhs_lane_s32' ߂vqrdmulhs_laneq_s32'  vqrdmlah_s16 '  vqrdmlahq_s16 '  vqrdmlah_s32 '  vqrdmlahq_s32 '  vqrdmlahh_s16 '  vqrdmlahs_s32 ' vqrdmlah_lane_s16' vqrdmlah_laneq_s16' vqrdmlahq_lane_s16' vqrdmlahq_laneq_s16' vqrdmlah_lane_s32' vqrdmlah_laneq_s32' vqrdmlahq_lane_s32' vqrdmlahq_laneq_s32' vqrdmlahh_lane_s16' vqrdmlahh_laneq_s16' vqrdmlahs_lane_s32' vqrdmlahs_laneq_s32ߡ'  vqrdmlsh_s16 '  vqrdmlshq_s16 '  vqrdmlsh_s32 '  vqrdmlshq_s32 '  vqrdmlshh_s16 '  vqrdmlshs_s32 ' vqrdmlsh_lane_s16' vqrdmlsh_laneq_s16' vqrdmlshq_lane_s16' vqrdmlshq_laneq_s16' vqrdmlsh_lane_s32' vqrdmlsh_laneq_s32' vqrdmlshq_lane_s32' vqrdmlshq_laneq_s32' vqrdmlshh_lane_s16' vqrdmlshh_laneq_s16' vqrdmlshs_lane_s32' vqrdmlshs_laneq_s32'  vqrshls_s32 '  vqrshld_s64 '  vqrshlb_s8ɇ '  vqrshlh_s16 '  vqrshls_u32 '  vqrshld_u64 '  vqrshlb_u8 '  vqrshlh_u16 ' vqrshrnh_n_s16Ÿ' vqrshrns_n_s32ӣ' vqrshrnd_n_s64' Ãvqrshrn_high_n_s16' Ńvqrshrn_high_n_s32İ' ǃvqrshrn_high_n_s64' Ƀvqrshrnh_n_u16' ˃vqrshrns_n_u32' ̓vqrshrnd_n_u64' σvqrshrn_high_n_u16' уvqrshrn_high_n_u32' Ӄvqrshrn_high_n_u64' Ճvqrshrunh_n_s16' ׃vqrshruns_n_s32' كvqrshrund_n_s64' ۃvqrshrun_high_n_s16' ݃vqrshrun_high_n_s32' ߃vqrshrun_high_n_s64'  vqshld_s64 '  vqshlb_s8 '  vqshlh_s16 '  vqshls_s32 '  vqshld_u64 '  vqshlb_u8 '  vqshlh_u16 '  vqshls_u32օ '  vqshlb_n_s8 '  vqshlh_n_s16 '  vqshls_n_s32ސ '  vqshld_n_s64 '  vqshlb_n_u8 '  vqshlh_n_u16 '  vqshls_n_u32ҟ '  vqshld_n_u64 '  vqshlub_n_s8 '  vqshluh_n_s16 '  vqshlus_n_s32 '  vqshlud_n_s64Ѳ '  vqshrnd_n_s64 '  vqshrnh_n_s16һ '  vqshrns_n_s32 ' vqshrn_high_n_s16 ' vqshrn_high_n_s32 ' vqshrn_high_n_s64 '  vqshrnd_n_u64 '  vqshrnh_n_u16 '  vqshrns_n_u32 ' vqshrn_high_n_u16 ' vqshrn_high_n_u32 ' vqshrn_high_n_u64 ' vqshrunh_n_s16 ' vqshruns_n_s32 ' vqshrund_n_s64 ' vqshrun_high_n_s16 ' vqshrun_high_n_s32 ' vqshrun_high_n_s64 '  vsqaddb_u8! '  vsqaddh_u16! '  vsqadds_u32! '  vsqaddd_u64! '  vsqrt_f32! '  vsqrtq_f32! '  vsqrt_f64! '  vsqrtq_f64! '  vrsqrte_f64! '  vrsqrteq_f64! '  vrsqrtes_f32! '  vrsqrted_f64! ' Ą vrsqrts_f64! ' DŽ vrsqrtsq_f64۴! ' ʄ vrsqrtss_f32ӹ! ' ̈́ vrsqrtsd_f64! ' Є vrecpe_f64! ' ӄ vrecpeq_f64! ' ք vrecpes_f32! ' ل vrecped_f64! ' ܄ vrecps_f64! ' ߄ vrecpsq_f64! '  vrecpss_f32! '  vrecpsd_f64! '  vrecpxs_f32! '  vrecpxd_f64! ' vreinterpret_s64_p64!' vreinterpret_u64_p64!' vreinterpret_p64_s64!' vreinterpret_p64_u64!' vreinterpretq_s64_p64!' vreinterpretq_u64_p64!' vreinterpretq_p64_s64"' vreinterpretq_p64_u64"' vreinterpret_s8_f64"' vreinterpret_s16_f64"' vreinterpret_s32_f64"' vreinterpret_s64_f64"' vreinterpretq_s8_f64"' vreinterpretq_s16_f64"' vreinterpretq_s32_f64"' vreinterpretq_s64_f64"' vreinterpret_u8_f64"' vreinterpret_u16_f64"' vreinterpret_u32_f64"' vreinterpret_u64_f64"' vreinterpretq_u8_f64"' vreinterpretq_u16_f64"' vreinterpretq_u32_f64"' vreinterpretq_u64_f64"' vreinterpret_p8_f64"' vreinterpret_p16_f64"' vreinterpret_p64_f32"' vreinterpret_p64_f64"' vreinterpretq_p8_f64"' vreinterpretq_p16_f64"' vreinterpretq_p64_f32"' vreinterpretq_p64_f64"' vreinterpretq_p128_f64"' vreinterpret_f64_s8"' vreinterpret_f64_s16"' vreinterpret_f64_s32"' vreinterpret_f64_s64"' vreinterpretq_f64_s8"' vreinterpretq_f64_s16"' vreinterpretq_f64_s32"' vreinterpretq_f64_s64"' vreinterpret_f64_p8"' vreinterpret_f64_u16"' vreinterpret_f64_u32"' vreinterpret_f64_u64"' vreinterpretq_f64_p8"' vreinterpretq_f64_u16"' vreinterpretq_f64_u32"' vreinterpretq_f64_u64"' vreinterpret_f64_u8#' vreinterpret_f64_p16#' vreinterpret_f64_p64#' vreinterpret_f32_p64#' vreinterpretq_f64_u8#' vreinterpretq_f64_p16#' vreinterpretq_f64_p64#' vreinterpretq_f32_p64#' vreinterpretq_f64_p128#' vreinterpret_f64_f32#' vreinterpret_f32_f64#' vreinterpretq_f64_f32#' vreinterpretq_f32_f64#'  vrshld_s64# '  vrshld_u64# '  vrshrd_n_s64# '  vrshrd_n_u64# ' vrshrn_high_n_s16#' vrshrn_high_n_s32#' vrshrn_high_n_s64#' vrshrn_high_n_u16#' vrshrn_high_n_u32#' vrshrn_high_n_u64#' Å vrsrad_n_s64# ' Ņ vrsrad_n_u64# ' Džvrsubhn_high_s16#' Ʌvrsubhn_high_s32#' ʅvrsubhn_high_s64#' ˅vrsubhn_high_u16#' ̅vrsubhn_high_u32#' ͅvrsubhn_high_u64#' ΅ vset_lane_f64# ' υvsetq_lane_f64#' х vshld_s64# ' Ӆ vshld_u64# ' ԅvshll_high_n_s8#' Յvshll_high_n_s16$' ׅvshll_high_n_s32$' مvshll_high_n_u8$' ۅvshll_high_n_u16܏$' ݅vshll_high_n_u32$' ߅vshrn_high_n_s16$' vshrn_high_n_s32$' vshrn_high_n_s64$' vshrn_high_n_u16$' vshrn_high_n_u32$' vshrn_high_n_u64Ĭ$' vsm3partw1q_u32ޯ$' vsm3partw2q_u32$'  vsm3ss1q_u32$ '  vsm4ekeyq_u32$ '  vsm4eq_u32$ '  vrax1q_u64$ '  vsha512hq_u64$ ' vsha512h2q_u64$' vsha512su0q_u64$' vsha512su1q_u64$'  vrnd32x_f32$ '  vrnd32xq_f32$ '  vrnd32xq_f64$ '  vrnd32x_f64$ '  vrnd32z_f32$ '  vrnd32zq_f32$ '  vrnd32zq_f64$ '  vrnd32z_f64$ '  vrnd64x_f32$ '  vrnd64xq_f32% '  vrnd64xq_f64% '  vrnd64x_f64% '  vrnd64z_f32% '  vrnd64zq_f32% '  vrnd64zq_f64% '  vrnd64z_f64% ' vtrn1_s8%'  vtrn1q_s8% '  vtrn1_s16ҩ% '  vtrn1q_s16ά% '  vtrn1q_s32گ% ' vtrn1_u8ղ%'  vtrn1q_u8޵% '  vtrn1_u16% ' † vtrn1q_u16% ' Æ vtrn1q_u32% ' Ćvtrn1_p8%' ņ vtrn1q_p8% ' Ɔ vtrn1_p16% ' dž vtrn1q_p16% ' Ȇ vtrn1_s32% ' Ɇ vtrn1q_s64% ' ʆ vtrn1_u32% ' ˆ vtrn1q_u64% ' ̆ vtrn1q_p64% ' ͆ vtrn1q_f32% ' Ά vtrn1_f32% ' φ vtrn1q_f64% ' Іvtrn2_s8%' ц vtrn2q_s8% ' ҆ vtrn2_s16% ' ӆ vtrn2q_s16% ' Ԇ vtrn2q_s32% ' Նvtrn2_u8%' ֆ vtrn2q_u8% ' ׆ vtrn2_u16% ' ؆ vtrn2q_u16% ' ن vtrn2q_u32& ' چvtrn2_p8&' ۆ vtrn2q_p8& ' ܆ vtrn2_p16׋& ' ݆ vtrn2q_p16֎& ' ކ vtrn2_s32& ' ߆ vtrn2q_s64ڔ& '  vtrn2_u32З& '  vtrn2q_u64ɚ& '  vtrn2q_p64Ý& '  vtrn2q_f32& '  vtrn2_f32& '  vtrn2q_f64& ' vzip1_s8&'  vzip1q_s8& '  vzip1_s16Я& '  vzip1q_s16Ʋ& '  vzip1_s32ʵ& '  vzip1q_s32& '  vzip1q_s64& ' vzip1_u8&'  vzip1q_u8& '  vzip1_u16& '  vzip1q_u16& '  vzip1_u32& '  vzip1q_u32& '  vzip1q_u64& ' vzip1_p8&'  vzip1q_p8& '  vzip1_p16& '  vzip1q_p16& '  vzip1q_p64& '  vzip1_f32& '  vzip1q_f32& '  vzip1q_f64& ' vzip2_s8&'  vzip2q_s8& '  vzip2_s16& '  vzip2q_s16& '  vzip2_s32& '  vzip2q_s32& '  vzip2q_s64& ' vzip2_u8''  vzip2q_u8' '  vzip2_u16φ' '  vzip2q_u16ȉ' '  vzip2_u32ь' '  vzip2q_u32ď' '  vzip2q_u64' ' vzip2_p8''  vzip2q_p8' '  vzip2_p16ޛ' '  vzip2q_p16מ' '  vzip2q_p64' '  vzip2_f32Ԥ' '  vzip2q_f32ʧ' '  vzip2q_f64Ǫ' ' vuzp1_s8''  vuzp1q_s8' '  vuzp1_s16' '  vuzp1q_s16޶' '  vuzp1q_s32' ' vuzp1_u8ݼ''  vuzp1q_u8' '  vuzp1_u16' '  vuzp1q_u16' '  vuzp1q_u32' ' vuzp1_p8''  vuzp1q_p8' '  vuzp1_p16' '  vuzp1q_p16' '  vuzp1_s32' '  vuzp1q_s64' '  vuzp1_u32' '  vuzp1q_u64' '  vuzp1q_p64' '  vuzp1q_f32' '  vuzp1_f32' '  vuzp1q_f64' ' vuzp2_s8''  vuzp2q_s8' '  vuzp2_s16' '  vuzp2q_s16' '  vuzp2q_s32' ' vuzp2_u8''  vuzp2q_u8( '  vuzp2_u16( '  vuzp2q_u16( '  vuzp2q_u32Ë( ' vuzp2_p8('  vuzp2q_p8‘( '  vuzp2_p16( '  vuzp2q_p16( '  vuzp2_s32( '  vuzp2q_s64( '  vuzp2_u32Ԡ( '  vuzp2q_u64ɣ( '  vuzp2q_p64( '  vuzp2q_f32( '  vuzp2_f32( '  vuzp2q_f64( '  vabal_high_u8˲( ' vabal_high_u16(' vabal_high_u32('  vabal_high_s8( ' ‡vabal_high_s16(' Çvabal_high_s32(' ć vqabs_s64( ' Ň vqabsq_s64( ' ȇ vqabsb_s8( ' ˇ vqabsh_s16( ' ̇ vqabss_s32( ' ͇ vqabsd_s64( ' Ї vslid_n_s64( ' Ӈ vslid_n_u64( ' Շ vsrid_n_s64( ' ׇ vsrid_n_u64( ' هPPQQQQQQQR RR'R S5S  U7U V(V Y2Y Z0Z [/[ ĸѸ`3` ikkmn?n" oo  pp  q1q r0r s4s tt     6 Finds all occurrences of a single byte in a haystack. 9 ՚Ü     7  7    ""͛"՛ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7   ]A An iterator over all occurrences of a single byte in a haystack.YDZK This iterator implements `DoubleEndedIterator`, which means it can also beZN+ used to find occurrences in reverse order.[.[6 This iterator is created by the [`One::iter`] method.[9[( The lifetime parameters are as follows:\+\B * `'a` refers to the lifetime of the underlying [`One`] searcher.\E> * `'h` refers to the lifetime of the haystack being searched.\A]!!SCSDžᇁ!!Džᇁ]ӆ#]ކ#^^ !^^aa b݇喥!؝!!ޓӆ#ӆ#ކ#ކ# 7  7ޓޓ] !!]!!ӆ#ӆ#ކ#ކ# 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7] !!]j2 Finds all occurrences of two bytes in a haystack.h5hI That is, this reports matches of one of two possible bytes. For example,hLK searching for `a` or `b` in `afoobar` would report matches at offsets `0`,iN `4` and `5`.j j쫓jjjjj jj jȞ 7  7j jj### 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7j jF An iterator over all occurrences of two possible bytes in a haystack.I#Nڂ#ަ.6 This iterator is created by the [`Two::iter`] method.9˧#ϧ+B * `'a` refers to the lifetime of the underlying [`Two`] searcher.E#ŨA!!UCS!!## !aa b݇喥!!!ܖ#### 7  7ܖܖ0 !!ߕߕߕߕ!!####ߕߕ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 71 !!ߕ4 Finds all occurrences of three bytes in a haystack.7K That is, this reports matches of one of three possible bytes. For example,NK searching for `a`, `b` or `o` in `afoobar` would report matches at offsetsN `0`, `2`, `3`, `4` and `5`.ֳج˜ôôϴ ϴ޴ ޴ ߢߢߢߢߢߢ 7  72 3֢#֢#֢#ԣԣԣԣԣԣ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 74 ԣH An iterator over all occurrences of three possible bytes in a haystack.K#Nڂ#.8 This iterator is created by the [`Three::iter`] method.;#+D * `'a` refers to the lifetime of the underlying [`Three`] searcher.G#A !!VCS!!## !aa b݇喥!פ!!#### 7  7G !!!!#### 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7H !! 2 An architecture independent "packed pair" finder.5L This finder picks two bytes that it believes have high predictive power forOL indicating an overall match of a needle. At search time, it reports offsetsOI where the needle could match based on whether the pair of bytes it choseL match. J This is architecture independent because it utilizes `memchr` to find theMH occurrence of one of the bytes in the pair, and then checks whether theKL second byte matches. If it does, in the case of [`Finder::find_prefilter`],O: the location at which the needle could match is returned. = F It is generally preferred to use architecture specific routines for a ID "packed pair" prefilter, but this can be a useful fallback when the G3 architecture independent routines are unavailable. 6 ϲ  |ߜ  |  |ĥ 7  7I   J ĸ#ĸ#ĸ# 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7K   *< A pair of byte offsets into a needle to use as a predicate. ? F This pair is used as a predicate to quickly filter out positions in a!IK haystack in which a needle cannot match. In some cases, this pair can even!NJ be used in vector algorithms such that the vector algorithm only switches"M3 over to scalar code once this pair has been found."6#K A pair of offsets can be used in both substring search implementations and#NH in prefilters. The former will report matches of a needle in a haystack#KC where as the latter will only report possible matches of a needle.$F%K The offsets are limited each to a maximum of 255 to keep memory usage low.%NG Moreover, it's rarely advantageous to create a predicate using offsets%J greater than 255 anyway.&&H The only guarantee enforced on the pair of offsets is that they are not&KF equivalent. It is not necessarily the case that `index1 < index2` for'IG example. By convention, `index1` corresponds to the byte in the needle'JJ that is believed to be most the predictive. Note also that because of the(MH requirement that the indices be both valid for the needle used to build(KK the pair and not equal, it follows that a pair can only be constructed for)N needles with length at least 2.*#*ߜ޷* *|* *|ߜ 7  7ߜߜL* *M*##̦#ߜԦߜ 7 7 7  7ߜ  7MMMJMJMJMJMJMJ؀ 7N* *= A forward substring searcher using the Rabin-Karp algorithm.@H Note that, as a lower level API, a `Finder` does not have access to theKD needle it was constructed with. For this reason, executing a searchGC with a `Finder` requires passing both the needle and the haystack,FH where the needle is exactly equivalent to the one given to the `Finder`KF at construction time. This design was chosen so that callers can haveIG more precise control over where and how many times a needle is stored.JG For example, in cases where Rabin-Karp is just one of several possibleJ substring search algorithms. 哊ɑu   7  7P  7 7 7  7  7MMMJMJMJMJMJMJ؀ 7Q = A reverse substring searcher using the Rabin-Karp algorithm.;@< ᭢# <# 7  7R< < 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7S< <[ׯ# [# 7  7T[ [U[### 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7V[ [ ѩ٩   7  7X[ [ 7 7  7  7Y[ [ ; A forward substring searcher using the Shift-Or algorithm.>ןǼݩ ן 7 7 7  7ן  7MMMJMJMJMJMJMJ؀ 7Z > A forward substring searcher that uses the Two-Way algorithm. A <#  #ڪ 7  7[   \ ###ӇӇӇӇӇӇ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7]   Ӈ> A reverse substring searcher that uses the Two-Way algorithm. A ԠєԠ#Ԡ  #Ԡ 7  7ԠԠ^   _ ##̫#Ԡ׊׊׊ԫ׊Ԡ׊׊ 7 7 7  7Ԡ  7MMMJMJMJMJMJMJ؀ 7`   ׊  ΃[  $$ & & 7  7a b### 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7c  !ݵP!# !# °°°°°° 7  7d e### 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7f  "؝~Ֆ ՖΘ Θ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7gٓ ٓ# ֛#####ǀ$ǀ$ǀ$ 7  7h״ ״i޴$$$ͺͺͺͺͺͺ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7j ͺ$ܟΤ$…$…$…$$$$$$ކ$ކ$ކ$ 7  7k l$$$ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7m %ج֩Äm$ $̯ 7  7n o$$$ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7p '&'-'ܤҮ\$$''''-$ܤ$$ 7  7ܤܤq' 'r'$$ذ$-$$ܤ$$-$Mܤ$$ 7 7 7  7ܤ  7MMMJMJMJMJMJMJ؀ 7s' ';-Ֆ$Ֆ$  ȶ -Ֆ$$ Ֆ$Ֆ$  7  7̔ ̔Ӕ$$$-Ֆ$$$Ֆ$Ֆ$   -Ֆ$$ Ֆ$Ֆ$  7 7 7  7  7MMMJMJMJMJMJMJ؀ 7ٔ ٔ K-¯˝$˝$   -˝$$ ˝$˝$  7  7 $$ü$-˝$$$˝$˝$  Ҽ -˝$$ ˝$˝$  7 7 7  7  7MMMJMJMJMJMJMJ؀ 7  [!aa b݇喥!݇喥$- ! !   !$$  7  7 !ۊ ۊ ۊ ۊ !ڧ$$ۊ ۊ  7 7 7  7ڧ  7MMMJMJMJMJMJMJ؀ 7 !ۊ  _ - ߩ߆۫$۫$  ߜ         -۫$$ ߩ۫$۫$  7  7ߩߩ    $$$-۫$$$ߩ۫$۫$   -۫$$ ߩ۫$۫$  7 7 7  7ߩ  7MMMJMJMJMJMJMJ؀ 7    " 9f  $   $ د د د د د د  7  7    ô$ô$ô$Ű Ű Ű Ű Ű Ű  7 7 7  7  7MMMJMJMJMJMJMJ؀ 7   Ű f#bDc#cNڂ#d.d#d9d#d+e#eE#eAgf!!SCSԣң̌g!!ԣң̌gf$f$ff !ggaa b݇喥!   !!$$$$  7  7f !!f   !!Ы$$$$  7 7 7  7Ы  7MMMJMJMJMJMJMJ؀ 7f !!f #q5q#qL͍#rN#rhsƳ0 ҿ$  s$     7  7s ss$$$     7 7 7  7  7MMMJMJMJMJMJMJ؀ 7s s ѓ#Iͷ#ѷNڂ#.ϸݔ#Ӹ9#+ʕ#E#Ai!!UCS!!$$ !aa b݇喥!!!$$$$ 7  7Һ !!Һ!!$$$$ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7ٺ !!ٺ#7#N#N#jϘŀH$ $ 7  7 $$$ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7 #K#Nڂ#.#;#+܍#G#Ak !!VCSއk!!އk$$ !aa b݇喥!!!$$$$ 7  7 !!!!IJ$$$$ 7 7 7  7IJ  7MMMJMJMJMJMJMJ؀ 7 !!?KEJN>l璔>$ $ 7  7 $$$ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7 ' ' '''''t !g  ϼǀ!ϼǀh h 8!$$$$ ! $ $$!$$ 7  7  ! !$$ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7  !   $       u !h h 8!8 !$$ $u !$$ ! $$u !$ ! $!$$ 7  7  ! !$$ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7  ! I #ED E #EN ڂ#F. F D This iterator is created by the [`memchr_iter`] or `[memrchr_iter`]FG C functions. It can also be created with the [`Memchr::new`] method.GF H I The lifetime parameter `'h` refers to the lifetime of the haystack beingHL  searched.H wI !h-S!I $I I I* I aa b݇喥!!$$ 7  7H  !H !$$ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7H  !H ] ѓ#YI Z #ZN ڂ#[. [ F This iterator is created by the [`memchr2_iter`] or `[memrchr2_iter`][I D functions. It can also be created with the [`Memchr2::new`] method.[G \ $\L $] x] !i-.S܅ƌ!܅ƌ] $] ] ] ] ]* ] aa b݇喥!!$$ 7  7]  !] !ͻ$$ 7 7 7  7ͻ  7MMMJMJMJMJMJMJ؀ 7]  !] n #jK k #kN ڂ#k. l $lI D functions. It can also be created with the [`Memchr3::new`] method.lG m $mL $n yn !j-./SǏØҀ!ǏØҀn %n n n n n n o* o aa b݇喥!!%% 7  7n  !n !ؾ%% 7 7 7  7ؾ  7MMMJMJMJMJMJMJ؀ 7n  !n   z  ͗Ť            7  7     N N ֵN N N N O O O+ O R4 R %R R   R R 2R R R  7  7N  N N %%%S S ‚ߣS S T T S %%% 7  7S  S  7 7 7  7  7MMMJMJMJMJMJMJ؀ 7S  S | } ӂ } } } }   7  7 |  |   7 7 7  7  7MMMJMJMJMJMJMJ؀ 7 |  |   ؗ     %  %%   %       ˙%  à à   Ԡ  7  7      7 7 7  7  7MMMJMJMJMJMJMJ؀ 7     H Prefilter controls whether heuristics are used to accelerate searching.ƒK  L A prefilter refers to the idea of detecting candidate matches very quickly,O D and then confirming whether those candidates are full matches. ThisG G idea can be quite effective since it's often the case that looking forJ H candidates can be a lot faster than running a complete substring searchK G over the entire input. Namely, looking for candidates can be done withŕJ  extremely fast vectorized code.#  J The downside of a prefilter is that it assumes false positives (which areM K candidates generated by a prefilter that aren't matches) are somewhat rareN F relative to the frequency of full matches. That is, if a lot of false՗I H positives are generated, then it's possible for search time to be worseK 9 than if the prefilter wasn't enabled in the first place.<  I Another downside of a prefilter is that it can result in highly variableL J performance, where some cases are extraordinarily fast and others aren't.M L Typically, variable performance isn't a problem, but it may be for your useǚO  case.  L The use of prefilters in this implementation does use a heuristic to detectO H when a prefilter might not be carrying its weight, and will dynamicallyK G disable its use. Nevertheless, this configuration option gives callersJ K the ability to disable prefilters if you have knowledge that they won't beN  useful.۝  ڪ%  䈷1    , Never used a prefilter in substring search./ %  %%  Ѡ F Automatically detect whether a heuristic prefilter should be used. IfI D it is used, then heuristics will be used to dynamically disable theŸG ; prefilter if it is believed to not be carrying its weight.> %  %%    7  7     %%%  7 7 7  7  7MMMJMJMJMJMJMJ؀ 7      ·              д д     7  7     %%%   .    4  ϶%      2       7  7     ָ%ָ%ָ%  ՚ީι1           7  7     %%%ٓٓٓٓ ٓٓ 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7    ٓ  !    p p lè !è  %ޖ ޖ   !    !!   %% 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7    ! 8 4 An iterator over non-overlapping substring matches.67 6 = Matches are reported by the byte offset at which they begin.6@ 7 G `'h` is the lifetime of the haystack while `'n` is the lifetime of the7J  needle.7 8 ! I    q b p l \뤎к ! I뤎к 8 %8 %8 8   !8 8   8 8     W K C؊ߩa I9 9   ! I    %%%% 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7 8   ! I8 ! I    %%%% 7  7 8   ! I8 K ? An iterator over non-overlapping substring matches in reverse.IB I %I@ J %JJ %J K ! I     r b l \꼢 ! I꼢 K %K %K K   !K K     X K Cٟ IL L   ! I   %%%% 7  7 K   ! IK ! I   %%%% 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7 K   ! IK ^ : A single substring searcher fixed to a particular needle.W= X G The purpose of this type is to permit callers to construct a substringXJ F searcher that can be used to search haystacks without the overhead ofYI G constructing the searcher in the first place. This is a somewhat nicheYJ I concern when it's necessary to re-use the same needle to search multipleZL K different haystacks with as little overhead as possible. In general, usingZN J [`find`] is good enough, but `Finder` is useful when you can meaningfully[M 1 observe searcher construction time in a profile.\4 \ F When the `std` feature is enabled, then this type has an `into_owned`\I C version which permits building a `Finder` that is not connected to]F  the lifetime of its needle.] ^ I    W K C؊ߩa I؊ߩa ^ %^ ^   g  ϼǀ I^ ^   I   %% 7  7 ]   I] I   %% 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7 ]   I]  B A single substring reverse searcher fixed to a particular needle.}E ~ %~J %~I %J %L E different haystacks with as little overhead as possible. In general,݀H G using [`rfind`] is good enough, but `FinderRev` is useful when you canJ > meaningfully observe searcher construction time in a profile.A  %I F version which permits building a `FinderRev` that is not connected toI %˃  I    X K Cٟ Iٟ  %    g  ϼǀ I    I   %% 7  7    I I   %% 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7    I  J A builder for constructing non-default forward or reverse memmem finders.M ¥ D A builder is primarily useful for configuring a substring searcher.ƥG D Currently, the only configuration exposed is the ability to disableG 8 heuristic prefilters used to speed up certain searches.֦;  ˟ ҧ ҧ     7  7      7 7 7  7  7MMMJMJMJMJMJMJ؀ 7       (؏֯ %  (%    7  7 ( ((%%%  7 7 7  7  7MMMJMJMJMJMJMJ؀ 7 ( (i ؒN %  i%    7  7 i ii%%%սսսս սս 7 7 7  7  7MMMJMJMJMJMJMJ؀ 7 i iսsxȅɉЍܓ̖Ӭ((EEZfi/0555;<<ܧIII]]ccmm¯ڱ˲ӵ 5J!$ןգ٭  ‚#փ))ڄ-ͺȂğݠE E F I I V V V V ڥY Y Z \ ] ] ` a a e f f z z z ŭͮˍ  Ʊݳش ֵ ˸     ˻ ȾԘ + 4 f    ޭ"#########؜#؜#ߕ###ԣ##########################Ӈ###׊########$Ʉ$Ʉ$ͺ$$$$Ϗ$Ϗ$Œ$$$Ù$$$ $$$ ͨ$$$ۊ $$$ $$$Ű $Ӿ$Ӿ$ $$$ $$$$$$$$$$$$$$$$$$$$$$$$%%%ӊ%%%%%%—%—%%%%%%%%%%½%½%ٓ%%%%%%%%%%%%%%%%%%%%%%%սB"]' crate::memmemcrate::arch::all::shiftorcrate::memmem::Finder& crate::archarch::all::shiftorBmemmem::Finder::into_ownedmemmem::Finder!crate::memmem::Finder::into_owned&&&Bƛ&&&& arch::all&&crate::arch::all&&& &Bƛ&& &&&&$S Two::iter One::count& One::iter˞& Three::newS One::findUU&TTOne::new Three::iterTwo::newS&&ߞ&SSU&T&˟&˟&S&˞&ߞ&&&&i Memchr3::newh> ? Memchr2::newj&h?>? & Memchr::newʡ&ij&h>&jʡ&i 'HIooX 'o   I WW'H   HIW XX   #Shift-Or substring search algorithm-https://en.wikipedia.org/wiki/Bitap_algorithm&ߣ&&ߣ&:https://en.wikipedia.org/wiki/Rabin%E2%80%93Karp_algorithm%Rabin-Karp substring search algorithm&&&&SSUS&&T&˞&˞&&S&UU&TT&S˞&&&S&&&&&Finder::find_prefilter)http://0x80.pl/articles/simd-strfind.html generic SIMDcrate::memmem::Prefilter&W&W&&ŧ&&&W&ŧ&  Finder::newFinder::min_haystack_len&Finder::with_pair&WW&&&&WW&&Ϩ&Ϩ&&WW&GNU libcmuslX"Two-Way substring search algorithm&https://www.musl-libc.org/?https://en.wikipedia.org/wiki/Two-way_string-matching_algorithmFinderRev::new"https://www.gnu.org/software/libc/WXX&&Ǫ&&&&&WW&&&&Ǫ&&&&&==>==>==>==>==>==>==>==>==>==>==>==>==>==>jV(0isBjV(0/a쥔jV(UǘjV(|vKvjV(va'jV(s% jV(8!jV(#Y? jV(7{/jV(hrg#jV(YjV(IѾ[ :jV(%jV( ٤|fjV(QrjV( L:{jV(. jV(K+yjV(SXʔjV(]9jV(hf3jV(ALCٔjV(DNOBjV(@ɧ!סjV('=bi5QjV(w̒QjV(pϐӔjV(7f1jV([hH\jV( Zt4?,fjV(p4\fjV(Ua^sjV(FLjV(\k.jV(35jV('܀_`jV(¬ٽqjV(jU 2jV(S[jV(Pk xjV(F)iVjV(u]-jV(*+tjV(XVᦇjV(0jV(~`֔jV(s\}{B6 jV(M;hejV(>F;L?jV(;f!: 6jV(۱҇jV(胔jV(EI^ijV(jV(MWHjV(F /B+jV(ӄjV(z#9GjV(iR:`rjV(Ÿ4jV( EjV(ZHpjV(`u]Ɓ\jV(KiPjV(I]HjV(H%jV(dGljV(8ЇjV(|jV(V*>jV(LuϔjV(eCYŔjV(=:Yذ]jV(k¢݂jV(C>jV(ݢɠjV(kTዂjV( K" %MjV(jV(Hܾ&jV(̬{HZjV(ԭw5ljV(; w]^jV(B=ĔjV(iO\jV(q}KjV(SWdjV(XNy"ڔjV(%B_&]-jV(LϼjV(\Our jV(}z*jV(%>$ jV(Tk?[jV(/ MjV(W!%jV(jV(g'%YjV(:عjV(a4jV(frjV(Al_LjV([7.%jV(t0vLjV(f91jV(W)s۔jV(?AєjV(}~jV(7zCjV($@n$ڤjV(Xj`VjV(Ĕu9SjV( CcjV(191jV(I Rr/jV(!kXojV(T(즔jV(PextΫjV(RD jV(xP͔jV( Qz9 jV(,ǾjV(įĵ ~jV(OO6A5jV(IߔjV(-6y}fHjV(O%=KjV(/L)_jV(>:C9jV( pYjV(*PjV(XnԔjV(]ۅjV(y4=jV(xYp[}jV(.jV(՗qjV(I4k}JjV(b6cjV(aD-bؔjV(<Ur(XjV(f̔jV(ŭjV(rVjV({ }jV(N'x=0FjV(|'BwjV(SC/WjV(%("jV(l9s=jV(DL)ejV(d\&jV(t𮆔jV(V}9jV(-D_pjV(v6_t}jV(`m-(jV(s<,jV(@{ojjV(imڔjV(7%jGjV(;Oݚ4jV(RF0jV(.N}˱jV(rުɉjV(QoX0 ܽjV(-;F} jV(~s].3jV(@`#kbjV(}#l2jV(=mߔjV(7L%jV(I.V{}LjV(hMͫHHjV(ruՔjV(l jV(W} jV(mKjV(pxG$jV(*P jV(9##3jV(%aljV(EIGdKjV(bNN  jV(;pFjV(p pnjV(ٌ|jV(4rjV(|GIqДjV(=`ljV(d}RM.jV(1חjV(e\%jV(ϧ0ȔjV(&*fjV(laՙjV(&9RjV(O jV(f}ʜʔjV(eڔjV(sLxjV(e;ǔjV(k_I!jV(8GjV(4jV(ÝijV(b~zjV(CjV(wE@LjV(!S뉔jV(/%ljV()Z ynjV(rikǔjV(y&jV(;$<ޔjV(+Gb|jV(zljV(iZc?-jV(QwfHjV(yh^>jV(ڡ!jV(ޟU3jV( `} ljV(QJjV(9;jV(:6/ VjV((f jV(I@]ojV(SQIކrjV(Vcwچ\jV(\~heVjV(5ݺpFjV(}8%jV(u-I^jV(oGvjV(5&+ƔjV(OyjV( n5jV(EԢjV(BjV(2L,ajV("jV(u4GjV(#T֏OjV(lHjV(~ܝ7!jV(D͆3jV(;2SjV(ߵjV(&c ѭjV(|9\k@jV(h﷤ؔjV(4jV(l>'jV(><jV(f+0]jV(5X`Q jV(L@ajV((jV(#VBg"qjV(uZlp ܔjV(Ӵ7~jV(E[5gjV(Cyeu9jV(ˁCjV( ^pX jV(" 魔jV(MߍZ[jV( Q'|UjV(5 ~IjV(_R%tݔjV(jus1jV(ǔjV(ǡϔjV((5EjV(.sjV(ɰjV(gjV(PAtjV(\UHsYjV( pfsfjV(}jV(]m§jV(R͉,mjV( =.jV(Ԋ =PjV(|f jV(hQ`<jV(OaojV(jV(aA8NHQjV(hlcjV(K"DAjV(}aUg+1DjV(nkjV(!5{jV(aj jV(PjV(f~ȌjV(c餔jV(Y[jV(jV(9֐_jV((^-jV(7xF|jV(b+*jV(|Ϲ5jV(y?8u.jV((*ԔjV(V;:jV(i?VjV(1VjV(u jV(pVjV(V_ojV( mvċejV(51\_jV(0Q7#g|jV(jV(aspW|jV(\=X_C֔jV({ ̯L&jV(2拁jV(䴢 jV(0n]jV(* rjV(@߾m;}jV(R(jV(̡A+jV(`ƶ]ߟsjV(}eKm7jV(|OV$ޔjV(ܺ^fjV(!kДjV(nte6#jV(?فjV(f"h)?jV(`DkjV(4xMjV(&%ÔjV(.oDjV(<jV(o2+jV(DG`ULjV(N͔jV(FD* jV(,c% jV(:-jV( pOE}jV(~IQjV(5?,KjV(>M ]jV(ƾUtQjV(.wZ$jV(lk 3ϔjV(\\jV([0ajV(-Ox~hփjV(yW=jV(Y(yS{jV(&ՔjV(m5jV(W%71%jV(y ʔjV(&]Z jV(V uEjV(O:jV(S:ߟ}jV(m${}6djV(9 mjV(!6E=cc7jV(}mcjV($#~ajV(lhmnjV(dG±jV(A冔jV(JrqjV(5ƔjV(_ZǜߔjV(#8(/jV(@j/"3_jV(侵?jV(4ۙdjV(ƞUjV(к&jV(CR jV($0RIjV(ՔjV("Ү譾jV(+-(jV(ÄޔjV(㕥)fjV(W]jV(W<G.ʔjV(/z`_jV(+HnjV(VeYo޽jV(>֯%VjV(%v;:jV(]l+jV(:RjV(dZ2jV(~#W=ejV(%ljV(ǣcTzjV(ς&jV(]3i}jV(Mx*OLjV(aĬxՔjV(C![hƪjV(Q,jV(].jV(U)jV(L߽jV(=f)~RjV(.wXjV(;b=BhjV(2R' jV(j [jV(GVjV(JEW$jV(,KxjV(L(tADjV( *ʔjV(<ͮ|l 1xjV(=љhiܔjV(جPzjV(IUyߔjV(ؚ[=jV(ɀd~jV(VB$bjV([7'8UjV(:l'jV(a+~g'jV(4qNRjV(޽wtqjV(Ü jV(. ͌jV(hh44["ijV({0DշjV(^ [9jV(KPVa @jV(qn3+7ljV(WNSxTjV(s?4jV( s+_sjV(Ƀ_jV(>$+jV(,LjV(A=ؔjV(VQ\H$jV(i*#.jV(ۺjV(&x jV(5QWCjV(p0i|jV(NWUWjV(U78˔jV(-<묔jV(=jV(A-x0z#jV(Y H O=jV(}ݓďjV(hK&cjV(EoľjV(RtQǷajV( OYg.jV(3YcGjV(9紾cjV(F1hjV(/$'S-jV(ňyp /jV(!ƍMjV(r %9jV("]]H jV("\BwjV('->jV(rhRjV(^47jV(==T3JjV(q4jV(=jV(q(ijV(4va%jV(e'BajV(fHUS#ikjV(a}jV( E^MYrjV(no jV(f,SXjV(zo/sjV(kvjV(A>BU-jV(EUjV(J~~2jV(ٗB@{cjV(yTהjV( vf}ƔjV(GpwjV((l/ jV(=(ʴjV(ZM[DjV(~jtQBHjV(.jV(;%jV(Jl VjV(X{ٔjV(@ӂH jV(,t*jV(UjV(C`UjV(5װ(`jV(KiCjV(4yXKjV(@==jV(6OnjV(DUXjV(kYȔjV(T&L”jV(yhz0jV(EDݔjV(m3D'KjV( wnjV()%PnjV(+d-DY,jV(_wr`jV(&SZjV(6ŠUajV(hYQjV(9#:7jV(XW IjV({'znVjV(7݊5WjV(S>jV(f4jV((mR{jV(̃_;jV(TnSjV(.AjV(gk)H`jV(p 3\)ejV(^("^1jV(`40ա3jV(.*OxȔjV(XXf/_”jV(A jV(Bw! jV(͊a%jV(;-jV(`SI!jV(پojV(}yL2[=jV(~0DjV(<>는jV(#0jV(b9jV(4gcZFKjV(^jV('d 5.jV(.]+XjV(Y>zEjV(qi#n*{jV('?sjV(y#AjV(OYjV( NWIhjV(9hjV(P:DjV(qB FjV(yEejV(@MujV(uFׂMjV(JTujV(injV({܌5YjV(!8IjV(mwdWjV(6 Gt1jV(?*.jV(B pvjV($Mnq*jV(!l jV(5jV({ .?jV(6XٔjV(Qr^#jV(;|2~TjV(=iG׬jV(qѻ!%MjV(p6V \jV( Һ[ڔjV(?GhjV(r1B MjV(@`35 h jV( WAFjV(tjV(RɍFJjV(ywjV(b|GmjV(•z MjV(v`S9jV(`7$\jV(Hm};埔jV(c.7:jV(w\؁jV(CrؼNjV(kdjV(b0jV(]rMajV(U٧owNjV(!Sr &⧔jV(AX#jV('jV(]MjV(7RHӔjV(2$sPjV(BG~)5MFjV(3u_jV(%(̐jV(eYjV(|ݐ@ @jV(o׽jV(vW𿾔jV(NJ<s[jV(* ԔjV(A^Z. jV($<{8.UNjV( B ؘ jV(TDДjV(kKܫ jV(-ήLjV(#b"̈jV(\N"RjV(9 2skjV(,ʯ-jV(a]WjV(cbԮjV(Kϝ jV(=:bєjV(LWajV('ݔjV(nXߔjV(q" /jV([*#-LjV(Y~sjV(V9?jV(u"}jV(zx)sjV( k”jV(F'jV(h jFojV(v͹q5jV(hKjV($_jV(oj?qjV(JI=jV(r(fjV(#”jV(Vl,4IjV(("%ДjV(b.$=jV(b7*jV(ꔔ%ͫjV(TTpjV(5iPjV(NeEjV( bjV(t䫱ҕ5jV(jV(jpjV(H@d3jV(JTNjV(%ʔjV("/#֔jV(%u'jV(#<|jV( ޙߔjV(!R)jV(MOZjV(C;5ˎYVjV(sPKj!jV(ڮ7$?qojV(5!J`IjV(Z,ujV(=#C%ujV( 0U7*JjV(6L~WєjV(ݳ2B^jV(E2bgNjV(ƪUdjV(d2lRjV(PpLYjjV( k|PpjV(OM_QjV(0qJHjV(O.ȔjV(sHp?rjV(cJ,#3jV(D nŒ*jV(|jV(\XjV(}@ jV(Qa;\DjV(uǔjV(El LCjV(61㼔jV(E+A bjV(!B6jV(N+6}jV(]V_jV([jV(W<\ДjV(=ՔjV(=gfջwjV(@ݷɔjV(x =jV(2?jV(ĊGjV(0NjV(n@bnjV(jbcjV($x$݉\GjV(οRwjV(hDŀ1jV(̘e/jV(V?OVjV(AxbjV(UX$jV(~UBKjV(znUjV(n^l jV(2n'ؔjV(-4 jV(ʺi0jV(#iFjV(]W 9ljV(*qovڔjV()%U:jV(-72jV(>EєjV(cNzŚjV(+6cDjV(]UuòڔjV(*!TjV(V%jV(W:ɫ;jV(r0jV([,A3jV(\;jV(->L'e~jV(km΁CjV(uȞjV( ||jV(AS)^ZVjV(*wdjV(Iqb-DjV('NjV(;xj=jV({/ԔjV(9UljV(̛[ HjV(y"OXjV(IQu-8hVjV(O\jejV( 7&jV( |u|jV(XJqQwjV(L1fjV(tjV(I}헳SjV(jV(ә`NjV(*?v 8jV(gn~jV(B zjV(FjV(EzMjV(ٍjV(75zjV(-Ż^ٔjV(@I5jV(&ДjV(EeE?jV(2^{1jV()ajV(iʀVjV(Ҥ5jV(eO8jV(3\|dkjV(UV<✔jV(^EXŝjV(^b+yW jV(TU*jV(~p>jV(JjV(Ċ ӏvjV(T~R-jV(`2OQjV(tfjV(|'/IjV(۔u)6”jV(=PjV(<J䀔jV($d\ؔjV(~o=jV(63ήjV(T)OjV(oApǔjV(M綼jV(v15jV('EAjV(9S!jV(bTKjV(1=֭HŔjV(<%jV(&mI jV($ qzjV(ŔjV({wԔjV(a9^jV("E|ājV(_+S!jV(8jV(ЃjV(ޔx{ĔjV(ČjV(GqfjV(ڢrjV(ĨXpIjV(??LjV(<j_jV(+~7jV( N[jV(;ʔjV(MP7jV(I Q jV(EjjV(U_ GjV(4g}#h2jV(a!qBZjV(CC0ufjV('Ce8jV(:maşjV(-'>f/jV(H怔jV(.jV("2nOjV(РjV(yEZ jV(Q̢%QjV(پ*n̸wjV(ti@jV(Lm!LIjV(CdxהjV(V_iܙ*jV(b얧*ܔjV(8f?fjV(\ļm:WjV(x_jV(+BbTjV("?'jV( m]jV( 1Sh|jV("PFԔjV(rXjV(RE9, jV(%ov)(jV(&jV(DE]jV(^j캔jV( jV(4* BjV( |HN89jV(K7jV(b6%IZjV(EPjV( &dԔjV(HN:jV(jV(ooǔjV(ȣ5jV(_O%E"jV(ZnjV(GgJ,jV([ZjV(~ynjV( ּvjV(Xaw=jV(ՙ{3ԔjV( 5d-jV(<=jV(xt2$/jV( 6jV(w[KjV(+԰jV(t!ҔjV(ĘojV(h+YRjV(s;X~8jV(#%徔jV(ƂOS8jV(he'yOɔjV(ݼ jV(/e8ղ8jV(,f ҔjV( jV(' h{jV(b?jV()O,mjV(\hCpYjV(|dy!jV(n^4l|ajV(Zwo5$jV(oqBЕjV(gnaFhjV( IjV(ߴy<2jV(bB[jV(.( yjV(rCMEjV(67zɔjV(&i jV(B|s jV(j3ȆTƔjV(} KTmjV(CB?ޔjV(Rs"jV(?$h&ĔjV(#B6;UjV(r+B1FQjV(gbOLjV(;LȧjV(YZjjV(vB]`jV(N88jV(|hGjV(hv샔jV(B둔jV(ȍ·ejV(&y0FjV(EjV(f-jV(@ap.28jV(J|jV(#yb\:jV( ߔjV(WN`:@bjV(LֲZjV(;@jV(/>H-jV( x;@+”jV(N`#_C~jV(D5jV(xfrKjV(LFz䀔jV('KA鑔jV(ZjV()~jV(Sky=yjV(Im}UjV(S}EޔjV( mjV( ^ZGjV(96 \jV(; jV(\ȅّHjV(7{JjV( + .]jV(e񟮵Lf(jV(wjV(uiYjV(ЈjV(!ēi=jV(#yǔjV(|FNf,jV(R~ϤԔjV(:s?0CjV( Z-jV(ԫX6KjV(x+jV(&)>jV(8PjV(iA3jV(WДjV(Q#.jV(×YGjV(OjV(E@jV( r<jV(0ejV(d|gjV( _?;jV( 5"BjV(._jV(AaL1ajV(N72"jV(a!2+ݔjV(R-:jV(Q.8ϔjV( L%jV('etėAjV(”JXޔjV(QKcjjV(1[KαjV(ҤxXjV(cՔjV(^7jV(C\OjV(y'jV(Nk ^jV(4*2㙔jV(?ojV(LT8\jV(sT/( UojV(]*jV(HtqCjV(Q jV(MHゔjV(-pv'3jV(:`૔jV(ɷgcjV([y'7jV(&xtCjV(`o~ﺔjV(`z6%EdjV(vL ZjV({ȔjV(jV(.`YjV(tq$jV(w6D[OPܔjV(Έ ~jV(gotMjV(s? J2>jV(:Ҋx0jV(bh*jV(Kj1jV(sSjV(ZELsjV(o"IHjV({ݶ”jV(SIyFjV(WwєjV(?fdjV({EjV(㨄 jV(4jV(ZkNujV( wNPLjV(.b0jV(37jjV(V#(LjV(:=ɓIjV(4;mjV(3wœjV(RjV(jV(5JCהjV({Q2D垔jV(HqY^jV(aIejV(Jl_ jV(JܽRjV(QU0jV( 9UjV(R礔jV(gjV(> ?jV(;&dRxjV(K3ցrfjV({V!ӔjV(jV(oѠjV(oeemMujV(`ő8jV(|Y^jV(GLjV(a(ΔjV(bDjNjV()nsjV(}gdjV(ќ{xQjV(<lGjV(*\AjV((8*ajV(&SUzjV(tY)ߔjV(x:{(!jV(WojV(3$ ljV(HjV(D|"۔jV(pkQۓ jV( zJjV(Cg`XjV( /6޹'?jV(IٔjV(0+!ijV(HٚYjV(;ױCpjV(peHajV(L`(jV(N jV(Kk} UjV(Po^YjV(sjV(K˃?YjV(u۽{jV(Z8,zjV(س)jV(M9!jV(G6aL3jV(%iVjV( 1jV($}jjV(́1F1jV([bqjV(i ;jV(ePUMjV(4" *jV(K(myjV(T데jV(Mχ~”jV(^_ujV(tGJ`LpjV(#?jV([#|jV(?jV(wɫ`jV(@/'/=jV(C*GtO jV(W)à(kjV(v`P;jV("2KjV(h l0єjV( f6jV(Jb.njV(_yLjV( Zs%p֔jV(IKjV(/cjV(m_hjV(iB9MjV(?KjV(´jV(/k5jV(,ھHjV(!mjjV(69ZjV(]ʾDIjV(ҜZMŔjV(Z%jV(Ҥژm!jV(kc̙0jV( EjV(= ޜjV(g>NjV(2X9r]jV(MKjV(,N:jV(;"^jV(;MwojV(qo1ujV(S- ~jV((2ˏjV(kRjV(ajV(LrjV(X[OjV(FsjV(D,'`jV(qOwjV(. ?jV(&ߺjV(mpqjV( ϗ x;jV(gS=VkGjV(aVVpjV( _^rxjV(:7jV(SDjV(#B9YʔjV(mN-:jV(wZ~PjV(3l)jV((8ӠpהjV(lj8jV(ŞKܔjV( Ȏ jV(qI̯jV(yGnjV(7~&jV( NAĔjV(^`GjV(Wk-@EjV( V.ը>jV(E+PąjV(ib5jV(rڔjV({jV(ӖjV(SSjV(]=hYN,jV(l2ʒj\jV(66̈́NIjV(dBjV(M6jV(RҩC:$jV(4x_1jV($=l٢5jV((h0 jV(2P9qjV(\8)jV(UגOEjV( mAzXjV( AnєjV(\qҘ%jV(i]ɔjV(҄jV(gw -jV(MSfjV(h'HpjV(q 1ejV(Zug6jV(ll^jV(KQ [jV(Ns֔jV(Ë4۔jV(U3{jV(3#jV(u@WjV(5e0jV(}\MΌjV( }&6jV(1jV(ޯkSjV(7–~'jV(UU=QjV(4 g4=jV(PzjV(BDZހޔjV(XOjjV(f%g:jV(iڴ7SĔjV(ӿ^* jV(ȢjV(> ږjV(͌u]jV(J̑jV(/ s}jV((ȅ !tjV(KBjV({QZVbjV(`9jV(irٔjV(;?$jV(l]F_ᡔjV(597>jV(wp:1jV(U^ jV(^C]-:0jV(%|-jV(ΒRjV(t˻IjV(O$jV(b2gⒶjV( nOpkjV( gkjV(jV(:=o8jV('3jV(;p0fKjV(WK*2rǔjV([޼wjV(sꅈ jV()3Be2jV(C燔jV(ήAjV(HX<,l jV(0c4$WL(jV()`m%ǔjV(2 MjV([^MjV(\HEjV(:~sjV()`(jV(*xjV(3jV(gu*$ДjV(W{ jV(ȰA jV(OʄKjV(,DjV(6 jV(T`~]^|LjV(&$]”jV(q 2${wjV(~;sjV(=HWjV(%KH%jV(:afjV(GQkjV(p|&EG@tjV( 6vjV('ڔjV(aݛLjV(~˜jV( Ԇ;%PjV(=VHKjV(~djV( YjV(=GmQsjV(_N@jV(aojV(PUejV(pa8IjV(~ыjV(`[;jV(;u(jV(%;rE>jV(&jV(rOY*jV(EPQĩjV(1&*Զ:jV(:BjV(a Z"  A B 5 ^ D #  N  V  9 \ X %  3 ' / F R P ) L = +  7  H ? J - ;  Z 1   T )3CL1fPx"8 Dc2b|)!e.1z,1+u#m*tT%MLm$.8?Ff4 ~   U   {    ; w );eRnq =Z<+.|..//n04!4 5O8;; <=?:@^@@@7AA*BBC(DDDbDD[ EH{MMNPQRT<TT#VVbWWW{XX YzYYZ1ZZ Z ]^ afffg;gggXhhDiinjjjEkkll mm%nInn osooVppqqqyrrsatuuFvwwAxyryyzzz{|o||#}}*~`"  i]QO99L W]y h FYhw@"sW'T  9L_n-}oz@O ^kYx\Vz9Z:?`u V? \oy]$sACO`lnTcL0g"q p@IbhRq;UB`3[j~Oq=n{Cg k,  &!!!"#"'6*-0152444k55w6788999:=l@9 B7E8GGHUL^O PQRRISTV-XhYYHZiZZZZ[c[[[N\\]F]]^Y^^^S___2`L````:a|aabYbbb{0tA+l3tP\ p f.)v) r<#Fi^ Tzw]K{M} ]s6SmFx\# </aZw4fJ,^;^-]w#Cu5X| O  ) Y  u   f   @ p     Q     ^   k  ? ,  &  O   6 Z ~    L   u e  1 V {   x    ? b    i  -     K {     n  7   I f  %! W! @ " # # +$ $ $ R% M& ' .' `' ' ' "( ) Y* * * T+ + , - - . B. . . / O0 o1 1 1 62 }2 o3 4 5 5 5 5 5 V6 6 7 v9 9 : N: : : ; = = = B> > > 3? % @ A A A A fB B C WC ID D D D D E vE E E E F >F F F DG wG G G G 'H YH H H I J 'J GJ yJ J K K <L L L L L M JM M M N U GV }W W X ?X qX \Y Y Y Y Z (Z ZZ Z Z )[ N[ [ [ _\ \ \ \ ] B] ] ] ^ ^ _ _ _ ` a b c 6c c c d e ce e g Hg g g "h h h i m 2n Rn n n Co 6 p r &s Gs s s :t /u v v w cw w |x x x [y wy y z 6z hz M{ { { | q| | |   4+3C L f!fLx} ~ ckQ  tsY Y]@c I4 L U t][  v+K../4;K@UDM-TsWXY%Zfjmqq[rKyq 8@n M8 kz # )jS~r8cL{`  n14V689GR Z]C`` }OPg#dPwvy #Br6$0`X.Yo/L U      l   K   A  ' v q 9   4  ]        S  w    }   !! Q! h# q$ <% & Z' ' ( 5* >+ , - <. . . 0 1 o2 Y4 x4 5 6 `9 @: : w= {> %? wA B IC uD E E F pG G #H SH H I sJ J &L +L 2L DM M U U W ;X kX Y TZ Z [ [ \ \ <] ] ] g_ ` b c Me f h h m n 5o r s ,t v w w x y y 2z bz |{ | | | ###                     #                                    """""                !!"""      iV6;YxFzCAz,j ;|  k $   & Q 2A 9,G+-%.a.. 03`57N;B<R=W??s@@@LAA?BBC/DiDDGLNPPQRTU8VVWXXYYGZZ)]^^Vae ff gPgggmhhijk[kk)ll"m-n_nn"ooolpprrswt*uu\vwwJxyyz{{|||}~w'1gܒQ N lC3bY[{m0ϧ֨ĭӯαIC>.aqk+@oO>Ti}! )q '<r&[ytTa  V_( q.jIuH''K}!  b    ^  o  9 ^  %   # F i   ? . v    0      M i! " # # $ d% & & ' r' 4( ) a* * f+ 1, - - - T. / X0 11 s1 1 2 3 4 4 5 &5 \5 5 6 6 8 }9 9 `: ; = = = = > E? @ A A A A B iC RD D D D ,E E E E E "F F F G G G kH H I J .J J K K CL nL L L L L \M M U V ,V =W fW W X gY Y Y Y Z lZ Z 1[ [ \ \ \ \ T] ^ ^ _ _ 2` *b b c =c c d ue kf "g Og g 4h h Zm m 9n n Uo Hr r .s s Lt v v w w x x 3y _y y zz W{ { { &| | +#+6ALT\dlt|[U_juy"^ '*s%*$me"lLEuDe&07>JR^, ^ j v   M     s    3 p "5O^~Kgj6S+.K.u...///g03345G8;;<=?3@W@@@0AA#BBCD!D=D[D}D?ETE H=MHMRMYMaMiMtMMNPQRT5TTVVZWwWWsXXYrYYZ Z)ZZZ}]^aefyffffffgg4g|ggQhh=iifjjjj=kk llmm nnAnnokooNppqqqqqerqrrsXt uyu=vvvww(x:xxxxxxxxyyYykyyszz{{h||}}$~#.8CNYъۋbVJH2”2E:EP@KVr`{>Q`o8S_kOťԦL 1DWf%ugyƲҲ޲r³8myGzlwWdz SqUOs'2S(3-8YoO8nUhr|h} rVl:4<HYegMr}\:E)`ji8@ [  '/7BIQYa (08@Ki4N;X+SbvGh5zfs;_c$   !!!!"&&&'* **/*-0r1}11.244444d55Z6e6p6788889999::=R@Z@e@2B0E0GGGbHxH;LMLBOJOVOPQRRASTTTVVVVXX%XaY}YAZbZZZZ[\[[[G\\\?]] ^R^^^L___+`E````3auaabRbbbPZdltŸ)m:ֺ$e,mIν˾US^iRZb"*"o%}n8>aVPfnvpVxDwzFyYo/O /fBtX8(KZ|Ss0bF(Z4Wy&Yo?q1Pt G j ! U  m    3 ^    8 l      M     E W y    d ) ; $ ~ " s 9 K    . R v    6 H    _ q ]   ) N s    t      8 [ ~    a    )  `    C w       j    3     B b !! S! 8" l# x# # # '$ s$ {$ $ $ >% F% N% I& & ' *' \' ' ' ( ) 9* E* Q* * * @+ H+ P+ + , , , - - - . >. . . . / / 0 0 0 -0 <0 K0 1 ]1 h1 1 1 1 22 q2 y2 h3 4 4 4 4 5 F5 5 5 5 5 R6 6 6 7 d9 o9 9 : B: J: : : : ; }= = = = >> }> > > '? /? @ A A A A A bB B B C KC SC BD {D D D D E oE E E E F 7F F F ] ] ] ^ ^ k_ w_ _ _ ` ` a b b b c /c c c c d d e Oe We _e e f g g Ag g g h h h h h h h i m m +n Nn n n n 7o ?o .p r r s Cs s s s .t 6t 'u v v w _w w xx x x y Ty sy y y 2z dz I{ { { { | i| | | } } } } } } } } } } ~ ~ ~ ~ ~ &~ 0~ 7~ A~ H~ O~ V~ ]~ d~ k~ r~ y~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~      % , 3 = G N U \ f p w ~                   ! + 5 < F P Z a h r | ǀ ΀ Հ ܀     $ + 2 D K R Y ` g y ΁   ' 1 ; B L S ] d k r y Ȃ ς ւ ݂     $ + 2 9 @ K R ] d k r y Ń σ փ     % , 3 : A H O V ] d k r y ń τ ք    # - 7 > H R \ c m w ˅ ҅ م    ( / : E P [ b m t  † ̆ ӆ ݆     & 1 < G N ] l { ȇ χ և ݇     # * 1 8 ? F M T [ b i p w ~ Ĉ ˈ ҈ و     & - 4 ; B I P W ^ e l s z lj Ή Չ ܉    " ) 0 7 > E L S Z a h o v } Ê ʊ ъ ؊ ߊ     % , 3 : A H O V ] d k r y Ƌ ͋ ԋ ۋ    ! ( / 6 = D K R Y ` g n u | Œ Ɍ Ќ ׌ ތ   '2=IPX`hpxb\fq|A!&Dc1e.z!,etT%O}NmwNZf6 f r ~  U        ; +;gq$2p+-.O.~..////334K579;;-<==B??<@^@@@7AA*BBCD(DFDbDDGLDMOMVM]MeMpM}MuNOPQRTrTU#VVdWWW}XX Y|YY ZZ1ZZ]I^Aaeffffffffgg;gggXhhipjjjjEkkll mmn%nInn osooVppqqqqqmryrrsatuuFvvwww,xCxxxxxxxy yy]yryyzzz{|o||}~*5?JUb_{OĒ9˔9ALWGR_.L̛ߜǡ@E $[gsWϥަ)}}βڲʳBuQs~4.)k[x\Vz.9Z/:)q4?bw XAr"\nx']Fdw8_QblpVy?AL%2iq @I  #+3>FMU]j$,4<GTq=UB`3lQq p{zCg k.   &!!!"%&&')***<-y00y111344444k55a6l6w6 888889994::=u?V@a@ADF:GGGjHK?LlNFORO!P5Q5RRSSTTUVVV2W XXXjYYHZiZZZZ[c[[[N\\]H]]^Y^^^S___4`L````:a|aabYbb6cWahp}̸0tAݺ+nɻ3tPս\yZep'V^f&.>v)(Y#Fi{ q;jrz(]hMj^z6p3m3cxy'</aZ!QfI^;^Jzy#`u 5!X| Q n F v  w    7 h    ]      < Q     I ^    - ? .  C w = l    6 Z ~    : L   / c u g   1 V {          ? b         - ' d    h   )         T      I ! B! W! " t# # # # H$ w$ $ $ % B% J% R% & & ' K' `' ' ( "( ) A* M* Y* * + D+ L+ T+ + , , , |- - - -. B. . . / / / 0 0 &0 50 D0 Q0 1 d1 o1 1 1 1 S2 u2 }2 3 4 4 4 5 "5 J5 5 5 5 5 s6 6 6 8 k9 v9 9 $: F: N: : : : < = = = = _> > > ? +? 3? @ A A A A A B B B -C OC WC KD D D D E E yE E E E F F F F aG zG G G H DH YH H H I J 'J dJ yJ J K K ?L \L L L L L 5M JM M M ~U U V 9W TW W W ,X \X qX _Y Y Y Y Z EZ ZZ Z Z )[ [ [ [ |\ \ \ \ -] B] ] ] ^ ^ s_ _ _ _ ` ` #b b b b c 6c c c c d d $e Se [e ce df g g g Hg g g h h "h h h h h Sm m m 2n on n n o ;o Co @r r r &s ds s s t 2t :t v v v w w w x x x !y [y y y #z Sz hz P{ { { { | | | | } } } } } } } } } ~ ~ ~ ~ ~ #~ -~ 4~ >~ E~ L~ S~ Z~ a~ h~ o~ v~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~     " ) 0 : D K R Y c m t {                   ( 2 9 C M W ^ e o y Ā ˀ Ҁ ـ    ! ( / 6 H O V ] d k } ҁ   $ . 8 ? I P Z a h o v ł ̂ ӂ ڂ    ! ( / 6 = H O Z a h o v } ƒ ̃ Ӄ ݃    " ) 0 7 > E L S Z a h o v } „ ̄ ӄ ݄    * 4 ; E O Y ` j t ~ ȅ υ օ     % , 7 B M X _ j q | Ɇ І چ     # . 9 D K  Ň ̇ Ӈ ڇ    ' . 5 < C J Q X _ f m t { Ȉ ψ ֈ ݈     # * 1 8 ? F M T [ b i p w ~ ĉ ˉ ҉ ى     & - 4 ; B I P W ^ e l s z NJ Ί Պ ܊    " ) 0 7 > E L S Z a h o v } Ë ʋ ы ؋ ߋ     % , 3 : A H O V ] d k r y ƌ ͌ Ԍ ی  j y} F!s l q#f^e3l#o=X)07- V   F   U    / c JZq:_s[B+-..m...//?045(8;;q<=?@F@@@AA BBB9DPDvD.EMEGMNhPQRS(TTUV4WnWWIXXXTYYY ZyZZh]^aefg-gggg,hhiiijjj!kkkallkmmn:nznnSoo(pp2qqqrr/sst\uuvvFwww7x0yhyyNzz`{{Q||}l kɊuӋHNߏBݑ@+#3;iZJs':DSHݤGb̦3)ݪ<O^ mΰG^Pfմ?uxu޼OJb@,HKu=8q$Z}@UjVNdp%h8y]KEmyC3I1bPp}A^eGSn&4vV5[1aFzT4XQ E  l!!!"& '))*-012b444?5566889[99z::^=/@BEGQG8HuHKJLOPQRR9SWTTOVVVW"XBYY[Z|ZZZZC[[[%\~\\+]f]];^^^+___`>`x```#aeaaaBbbb߸![*p Uxӻ]2|kľBKMjT}a7Z}B6_C7p1rs\3tumFU%Gz\~=m>1 CVuxIk+[, SOrTU8j*3m ? b  P  R    + V y   $ g  i    F      T r    M 8  O  \ $ H {   ' K o     E    H n >  ! F k   W     0 S v    J    &  6    0 r  t T     x \  8 Z ! L! " # # # l$ $ 7% & & & "' U' ' ' ( ( ) n* * 9+ + , , - - . 7. . . . / n0 J1 1 1 2 j2 E3 3 4 4 5 35 u5 5 5 66 6 e7 9 9 9 ;: : : ; = = = = v> > ? ? A A A A B B B DC D [D D D D E \E E E E F /F F F )G kG G G G H NH H H I I J ;J nJ J J K L PL {L L L L M ?M M M N U V 7V HW qW W W 6X fX 9Y qY Y Y Y Z OZ Z Z [ >[ [ [ B\ \ \ \ ] 7] ] ] ] ^ _ _ _ ` ` Nb b 'c Jc c c d He e f /g \g g h fh h i pm m Fn n n 0o p ^r r ;s {s s 't u v v v Kw w ]x x x x Jy ly y y -z ]z /{ `{ { { | V| | | } A v ˁ ݁  Y h w a7im}6c?a918"[RQ  9      D    ( \ CSj)-bJi1+-'.c...//.04~58x;;`<=?@?@~@@ AAAuBB2DIDlDECEGMNWPwQRS!TTUV#WgWW7XXXBYYYZgZZZ]^aefg#g]gghh iRiisjjjkzkkOllJmmn0npnnAooppqqqqrsstJuupvv0www0xyayy=zzO{{@|||eZd7ڍΏ̑vΔ!nZЖԗbP@iT(g2vA٣'|ˤҥP,ާ˪ ޫ,;5L>Eô TgdͼEv9Q/%A Ah{k,.[Dv+}G}\H2bT.e+:sYo2q5'l0?~iv:WT@ L`&oD#T *OsB*N? 1  Z!!!"n&')"*-001X444.5556v888J99a::M=@BEG=GHnHKCL OxPQuRR/S6TTVVVWX0YYQZrZZZZ9[[[\t\\!]Q]]1^{^^!_v__ `7`n```a[aaa8bzbbոQ۹ fKq̻Sۼ(rd1|sy*FY3 \O -Ps0~ut>10f kbU"mdf5}D=sRt6f-|*9Okg?a$TL EhM}D .c#,c 5 X I y @    ! L o    `  W    ?      M h    < 1 9  F {  A o h    A e     > }   2 g + r  < a   D  u   & I l    8      /     k  b 3     W J  . P ! E! " " # # K$ $ % & & & ' N' ' ' ( ( ) d* * + + + , - - - 0. r. . . / Z0 @1 v1 1 2 V2 33 3 4 4 5 )5 k5 5 5 $6 v6 S7 8 9 9 ': : : ; = = = = b> > ? ? @ A A A B B B 0C D TD D D D E JE E E E F %F F F G dG G G G H GH H H I I J 1J gJ J J K K FL qL L L L M 8M zM M N U V -V >W gW W W /X _X &Y jY Y Y Y Z HZ Z Z Z 4[ [ [ /\ \ \ \ \ 0] r] ] ] ^ ^ _ _ _ ` -b b c @c c c d 'e e nf %g Rg g g Th h i \m m StTxVWGY`ZZZZH[[[*\\\0]]@^^^0___`@`}```(ajaaaGbbbø&`/uúZzջb7ýmɾGMO oVf<_G8aH9u6tx^8vzoKZ*L|a?oC3 HXz}Np-]1%UTwVZ=l,5r D g  R  W    0 [ ~   ) i  n    H     ) w   R $ ]  n 6   , P t    1   Z C  & K p   \    5 X {   O    8    5 t  y V     z a  = _ ! N! #" # # # n$ $ 9% !& & ' '' W' ' ' ( ( ) s* * ;+ + , , - - . 9. . . . / p0 O1 1 1 2 l2 J3 3 4 4 5 85 z5 5 5 ;6 6 j7 9 9 9 =: : : ; = = = = x> > "? @ A A A A B B B FC $D ]D D D D E aE E E E F 4F F F .G mG G G G H PH H H I I J @J pJ J J K L UL L L L L M AM M M N U V Y sY Y Y Y "Z QZ Z Z [ C[ [ [ G\ \ \ \ ] 9] ] ] ] ^ _ _ _ ` ` Pb b ,c Oc c c d Je e f 4g ag g h kh h i rm m Kn n n 2o p `r r @s }s s )t u v v v Pw w bx x x x Oy qy y y /z _z 4{ b{ { { | [| | | } [ j y W7<ZyG|DB{-l<~ l %  S  :-H-'.c..0a57O;C<S=X??v@@@OAABBBEGNPPQSTU;VVWXX"YYJZZ*]_^WaeRgggohhi k]kk+ll%mann$ooonpprrsyt,uu^vwwyyz{{|||x(2jTO mD4c\\n1JD?/sm-pQAU#s(=s'\zuUb !Yb+1kxK$ >!!%)R-013556"8+9J:=?ADFHKN8PLQLR'SSUIWYZ-[z[[ \e\\]]'^p^^_j___d``aQaaa-bpbbGXBJgdyAF<10Uf"HO4yq. H, 5 X     ! L o      d $   R 8    _  q &    @ / y   1    # j! " $ e% & & s' 5( ) g+ 2, - - U. / Y0 41 1 2 3 4 4 )5 _5 6 6 8 a: ; = > F? @ B jC TD -E E F G lH H I J K K FL qL L L ]M M U V -V >W gW W X jY mZ Z \ \ U] ^ ^ 3` +b !d ve lf 5h h [m n Vo Ir s Mt v w w x x 6y y {z Y{ { '| | W7<ZyG|FD{-l>~ n '  S  :-I-.0a57O;C<S=X??v@@@OAABBBEGNPPQSTU;VVWXX"YYJZZ*]_^WaeSgggphhi k^kk,ll'mbnn%oooopprrs{t-uu_vwwyyz{{|||x(2jߒTQoD4c\\p3Чרŭԯϱ!JD?/sm-qSBV$t(=s'\zuVc "Yb+1kxK$ ?!!%)R-013556$8-9L:=?ADF HKN9PMQMR'SSUJWYZ.[{[[ \f\\]](^q^^_k__`d``aQaaa-bpbbGйXBJͼgѿ{C<"%HO4yq.H      d $  S `  '   A U y      # j! $ g% & & s' 5( i+ 4, - - U. / 0 51 1 2 [4 4 z4 `5 6 6 b: ; > G? B kC -E F lH H J K ]M M W X mZ \ U] ^ 4` #d xe 7h i n Wo s Nt w w x y 6y y {z ~{ { '| | H)(-Kj8 l513l{+#*\-un  ]  {  C x+9w-S../R57@;4<D=I??e@@@>AA1BBDG|NPPQRyTU*VVWXXYY9ZZ]P^HaeBggg_hhDiijMkkllmQnno{oo^pprrsituuNvwwyyyz{{|v||f#V˒@@L^Ɨ5"TԛFYhwϡHM_"Ũ ů-zҳ;50 r c]aA0xFco.dy$Mk~fs FcS"xpHQx \g:y os .!!% )C-0135r5~689;: =|?ADFGKtN)P=Q=RSSU:WYZ[j[[[U\\]]^`^^_Z___S``aAaaab`bb7{H2:{ Wܽ¿j2-~ 7|@#jby9$ r   ;     U   C P y    1 h      [! $ V% & d' &( X+ #, - F. / #1 1 2 4 N5 5 6 R: : > 7? B [C E F ]H H }J K `L NM M V XW W uX ^Z \ F] ^ $` d ge &h h n Go s >t w w x %y y lz { | | I5JkKKLBM"NLNSTUU,VPWWW YUYYR[[[[2\u\\]]/^*___s` bfbceffhIIIQIYII}JJJJ!KKVL^LfLLMMMMNN`NNNNNOO O(O0O8O@OROOOOOP PPVP^PfPPPPP,Q4QZ@ڣ~_0oop]@&'E(w>q?}Q:R&-dde%ffpˬfуrUk@5K %!OdeaYv!0#WCXmnfRwwj \i_V+i**H+-)./1*==>HhII T`^c]ghmBnvwBW]8fӞHmSnFr]qr{shڵAEKKIYY[ ԫz-p ǭnc ^ V=sBu'vwxyׇvnРáգ}bK0ȺoKhW!u>]L[l&h''*u:<?==u>F'K{QpY9]qc+dgikmyn+p{dӌ5&R>a#ecA6^$aMdojjQkڧ,:_  Usvt!*<THPUXVVWZ[[\]^_acd"fg*i$jkklmqrstOuevLwzp{{|}~ypch\L ݘԙĚdܥתǫwT״XA ]D*05\g_SCG=>6F>xT^pU`bhL_YLJ=  Q  ~gPX`))%(g*9(=?EGHLuORDS ThWXGYv[\^`-f[gkmpsrNstuvYz||1~@k6.hY< X>أ|]}oDrj =C()o?!Aӫ8RUSyde#f}f.grσƭSi 3I m 2eqhW.#%AXYnpw y9b ^]G!*F+-'./1n4=>^?fIIKU\cdh k@now|yU݂‰UўRn/o ssCu5vwxy؇ woѠۡڣcL5ͺpLi\"v?^Q \\p%m&m''*v:<@==v>F(K|QqY:]rc,dgikmzn,ps{|eԌ6'S?b$fdA7^)aNdgipjjRkۧζ-;`  Vtwu!*<UHPUYVVWZ[[\]^_acd#f!g+i)jkklmqrstPufvQwzq{{|}~~qdi]Qՙɚiݥت̫xUشYB ^E+16]h`TDH>?FGCy]w}VaciM`^0UK\  R  hQYa**%(h*9)=@EEHHKTLLvORES TiWXHYYZw[\^`.f\glmptrOstuvZz||2~Al7/iZ =Y?٣}^~oErk>D()p?"A%9RVSʬde$f~f/gprqЃTj 4J  3 erhX/#%eBXYnp w!y:[_\H"*G+-(./1o4=>_?gIIKU]cdhkAnow}yVނÉҞ<eJn'osTs|_iƶEKLLYZp4]On,osY s|di˶EKQLY Z p9brM$:;5   m  h D }c!J..V0508;y<=?$@@@AABBB8EGNrPQRSTVV<WWQXX\YYZZo]^aeugg:hh)iLj/kklollmnnaoo6pphqrsGttou+vvuwxy\zzh{{_||}uR?dR{1DL[ ~1Ohl.}WTjJ1M PF2Zo]w%,K^V Dc#u$Fm(s+9^=i^Y  !!!&)-0 2~4[55 78w9:q=B@,B'E'G[H*L1OPQRAS}TVWLY[Q[[[3\\\9]]I^^^9___"```-aoaabLbbbe4z_$g< Lt.}L_;}=P_H6_ \ . s   [     L j  X  : ~ * x  (" $ 8& ' ( + - . / )2 X3 I6 x7 : ; > @ C 2D fE 3G H I J K M N W CY Z L\ ] ^ ` d e h i n p s u Uw gx x y 9{ `| } +BY~]ABGFABFABFABGFABFABF] ^ ABGFABFABF& &ABFAB & & & & & & & & & & &   & & & & && & & & & & & & & & & & & & & & & & & & &   & & & &   &&&  & & & &  & &ML4  )e+.|./34;:@CDDL{MTbW{XzYZfffnjmqqqAxy}~`ɔ ]"ͥܦ'@OY`uV? O`nT0g hR;j~On, 045898GRhYYF]2``4c{lǻZv$<&Vxn8&eKg\wm0`v $NFGww] O C s u   f  Z   9     , @  i    , e       %  e  '  Q  ! ?! " E$ % & H' ' ( ) + + z- *. . . O0 1 P2 3 4 5 5 p6 8 !: : < \> ? @ B *C ID E vE F ^G wG H AH H I aJ J K FKS[crw ,16;@EJOW_z  %*2BRbqx#+3BJRZ_gow2;S[u}&5CKSX]bglqy '/7<DLT\ainv{&+3;CKPX]emuz %-2:?GOW\aiqy~ "4GZn'/7AIYinv~ !&5:JObj~    $ , 1 9 A F K S X ` h m u } ! !!!!'!/!7!?!G!O!W!d!i!n!s!x!}!!!!!!!!!!!!!!!!!!!!!!" " ";"Y"v"""""""""""##'#/#7#J#O#T#\#s########$$ $%$-$5$=$U$d$s$$$$$$$$$$$$$$$$% %%%"%*%/%7%?%G%O%T%\%d%l%t%y%%%%%%%%%%%%%%%%%& &&&$&,&1&9&N&V&^&&&&&&&&&&&&''''2'H'X'e'm'u''''''((+(?(R(W(m(r(z(((((((((((((((((())))&).)6)>)C)K)P)X)`)h)p)x))))))))))))))))))****"***2*<*D*N*V*`*d*l*p*t*|*****************+++"+&+.+2+6+>+N+V+^+f+n+r+z+++++++++++++++++, ,,,, ,(,0,8,I,N,V,[,c,t,y,,,,,,,,,,,,,,,,,,,,,,---+-0-8-@-E-M-R-Z-_-d-l-t-y---------------- ..%.2.:.?.G.L.Q.Y.g.r.z............../ ///&/+/0/8/=/B/J/d/i/q/v/~///////////////////0000$0,01090>0F0N0V0^0f0n0v0~0000000000000000111$1)11191A1I1Q1Y1a1i1n1v1~11111111111111111112 2222&2.262>2C2K2P2X2]2b2j2r2z22222222222222222223333 3(3-353=3E3J3R3Z3b3j3o3w3|333333333333333333334444(4-454B4G4O4T4\4d4i4q4y444444444444444445 555"51595A5I5Q5Y5^5f5n5s5{55555555555566#6+606K6Y6i6n6s6{666666666666667 777"7'7/7F7N7S7_7d7i7q7v7{7777777777778888+838B8G8O8T8Y8a8l8t888888888888888889 999.969>9F9N9V9[9c9k9s9x9999999999999999999::::$:9:A:F:N:S:[:`:g::::::::::::::::::::; ;;;;!;';-;3;9;?;E;K;Q;W;];c;i;o;u;{;;;;;;;;;;;;;;;;;;;;;< <<<<%<,<3<: >>>#>*>1>8>?>F>M>U>\>>>>>>>>>>? ??? ?'?.?5?BEBLBSBZBaBhBoBvB}BBBBBBBBBBBBBBBBBBBC CCCC%C,C3C:CACHCOCVC]CdCiCnCsCzCCCCCCCCCCCCCCCCCCCCD DDD"D)D0D7D>DEDLDSDZDaDhDoDvD}DDDDDDDDDDDDDDDDDDDE EEEE%E,E3E:EAEHEOEVE]EdEkErEyEEEEEEEEEEEEEEEEEEEEF FFF!F(F/F6F=FDFKFRFYF`FgFnFuF|FFFFFFFFFFFFFFFFFFFGGGGG$G+G2G9G@GGGNGUG\GcGjGqGxGGGGGGGGGGGGGGGGGGGGH HHH H'H.H5H>uu]]EEddLL44kkSS99rr##ZZ@@yy**aaII11hhPPooWW?''^^F..eeMMllmTTss""[[n ))obbJJ22piiQQqppXXr(__GGs~/ffNN66mmUU\\ {{ccKK33jjRR::qqYYAAx``HH00ggOn%-4core_intrinsicsderive_clone_copyjV(ċh/d$crate::assert5U++generic_assert_internals'jV((6  $crate::cfg\U++%jV(4De$crate::panic::panic_2021vU+ 2const_dispatch FEjV(;Ҧ2U+Ϥ2%jV(۔5Y: 'jV(Ѝ1Fج2U+222 FEjV(W0wn%222jV(NX⣺ң2U+22'jV(!HՋ2RU+Ϥ2%jV( 3 ή+*jV(] L;n#222jV(&lJ.uf$2fmt_helpers_for_deriveMMjV(|JAMң23U+22'jV(\ }Cnw$222jV(@hGJ:ң2HU+22'jV(\n%222jV(ޥr"q2D]+Ϥ2%jV(Fs_ ن`22jV(ycң2)U+22'jV(>=}g Ĩ2*jV(zQң2>U+22'jV(q n%222jV(ܐbr u #222MMjV(jیWV$crate::const_format_args" ۉ+ fmt_internalsconst_fmt_arguments_newjV(!c'Ĩ2*jV(!ӵ s!222jV(') Jui$222MMjV(Ut 2U+222 FEjV(#oEA] Ĩ2*jV(Kt`IuKΤ$222MMjV(Su#u%222MMjV(Z`-gn#222jV($}Ю2" 222jV(V?a 2-U+Ϥ2%jV(vy5-2BU+Ϥ2%jV(Ly Unθ%222jV(He&2 )U+Ϥ2%jV(OL2W]+Ϥ2%jV(P̙GUs$222jV(6޺+sl222jV(=k:F  jV(~>2ң28U+22'jV( 5*n"222jV((P 2U+222 FEjV($pQU>n#222jV($u2U+222 FEjV(se^Ю2" 222jV(fJ]/ң2U+22'jV(X,9)S Ĩ2*jV(`rٍЮ2" 222jV( Gn%222jV(*Kss222jV(m͎2aң2ZU+22'jV(:Xqh^u&$222MMjV(wZ9pĨ2*jV(ѤYԽu;$222MMjV(dHMu%222MMjV(YRrԐ  jV(~7<ң2PU+22'jV(/F[5Ĩ2*jV(vojn#222jV(Ʌ52]+Ϥ2%jV(ՄR0rЮ2" 222jV(LB}$O822]+Ϥ2%jV()~ut$222MMjV(fS Ĩ2*jV(+|z~2G]+Ϥ2%jV(7M8T&zn%222jV(G_.7ż   jV(Q~Xlk2^U+Ϥ2%jV(AQÔĨ2*jV(]}2v$crate::assert_eq=]++jV(icA9ʡ@  jV(Nq.:12jV(0:T2U+222 FEjV(-pu"2]+Ϥ2%jV(CPsdu#222MMjV(n?AwJ2TU+Ϥ2%jV($[%QUδĨ2*jV(}#!Ls 222jV(h-_rshs222jV(@mf  jV(Dvdx{qң25U+22'jV(YWny%222jV(*+si  Ĩ2*jV(˶F\ң2JU+22'jV(cU\2|U+222 FEjV(#yނLn#222jV(Zb4 2aU+Ϥ2%jV(7^@ң2U+22'jV(b5dң2+U+22'jV(JNuң2U+22'jV(H;in Ĩ2*jV(8fң2@U+22'jV(,s 222jV(wpE[ң2 "U+22'jV(,&sgЮ2" 222jV(2Z  jV(e+1u@s#޴222jV(o0fcnk$222jV(K܎J2U+222 FEjV([JK2~e+Ϥ2%jV((dL׳0Ю2" 222jV(f\)u#222MMjV(^AvЮ2" 222jV( d/2/U+Ϥ2%jV(XȓY2DU+Ϥ2%jV(_օ6juؽ%222MMjV(Ьrn#222jV(d8(2YU+Ϥ2%jV(c0)u%$222MMjV(qX#QrĨ2*jV(ܙ$H]#jV(jN!SsN 222jV(qUI#K:ң2U+22'jV(JXa_ң2:U+22'jV(c$bhw2O]+Ϥ2%jV(C)!;#Z #2 derive_eq jV(~tH2U+222 FEjV(5A assert_ne=+jV(4bEtЮ2" 222jV(_5UF2U+Ϥ2%jV(> PؔЮ2" 222jV(>Ud u%222MMjV(T S jV(]?',ң2\U+22'jV(+t/'i29U+Ϥ2%jV(ߟЮ2x" 222jV( /Hң2U+22'jV($&*:*2jV(o,Ю2" 222jV(fφu%222MMjV( %-'2]+Ϥ2%jV( Io~ң2RU+22'jV(s c\Ĩ2*jV(sNKϡ[s 222jV(pJng$222jV(8W%24U+Ϥ2%jV(;xm?@juw$222MMjV(1r2IU+Ϥ2%jV(UcA]Ĩ2*jV(G%s(222jV(ۉMau_$222MMjV(-]2D]+2jV(sP2*]+Ϥ2%jV(Tbhs,2?]+Ϥ2%jV(,Us 222jV(T)F 2 U+Ϥ2%jV(T@>4'Ԕ   jV()ne2UU+Ϥ2%jV(װQEXLu!#222MMjV(G-nj$222jV(r72y&\Ю2" 222jV(Lw$ H Ĩ2*jV(|FRJ52LU+Ϥ2%jV( vĨ2*jV(K@j"s*222jV(052bU+Ϥ2%jV(Ε0*2U+Ϥ2%jV(ֈ=rң2-U+22'jV(1z2U+Ϥ2%jV(\vj sjV(Z$Eң2BU+22'jV(Ah9_s 222jV(KVsrң2 )U+22'jV(Sߋ)2W]+2jV(B'u$$222MMjV(7%Kkul$222MMjV(P1h'29]+Ϥ2%jV(uas 222jV(6h`NЮ2" 222jV(2zڪĨ2*jV(W s[222jV(AɲsЮ2" 222jV(qz~al20U+Ϥ2%jV(+lp:s| Ĩ2*jV(:cɪ2EU+Ϥ2%jV(QJln%222jV(瞻iwu#222MMjV(jI)n[$222jV(;KuX2'tU+Ϥ2%jV(t~\ Ĩ2*jV(,E `2<U+Ϥ2%jV(+LC=>nǕ%222jV(?3_URP*  jV(AQ!+2QU+Ϥ2%jV( LĨ2*jV(5.`s 222jV(cJt:nf$222jV(@gxqY2]+2jV()MoJq22]+2jV(v fP#nu$222jV(yh PĖ2G]+2jV(KLu%222MMjV(Tj#42@U+Ϥ2%jV(AiE[ң2^U+22'jV( @JЮ2~" 222jV(c78S2U+Ϥ2%jV(=z%:'2jV($\XqЮ2" 222jV(~O2]+2jV(Xb-Ln #222jV(I$Y  jV('q͑Ĩ2*jV(s\ku #222MMjV(c\YFuh$222MMjV(bxٕ$NĨ2*jV(ˤt  jV(g oNQuy%222MMjV(18 Ĩ2*jV(kz0 s>nK$222jV(fP4n%222jV(wms 222jV("raN26U+Ϥ2%jV([rcm2,U+Ϥ2%jV(21)  Ĩ2*jV(.+2q2AU+Ϥ2%jV( BΪ82 &]+Ϥ2%jV(Y0d]>1   jV(' Y^2VU+Ϥ2%jV(:|&u#ބ$222MMjV(N;"uk$222MMjV(TaЮ2" 222jV(|YX$crate::assert_ne~e+2jV(@[iĨ2*jV(Wb 2MU+Ϥ2%jV(qn#222jV( ς62cU+Ϥ2%jV( 5jV(0pu%222MMjV(dFu#222MMjV( 5ְxң2YU+22'jV( n&ݒ$222jV(7fOY;2U+Ϥ2%jV({LLK8ɺĨ2*jV(bn;ݙ$222jV(Ԓ66sS 222jV(&'D2 U+Ϥ2%jV(9p5]02O]+2jV(&]Ĩ2*jV({S#C#2 jV(<!%Ю2" 222jV(Mk(ͅjV(ro[21U+Ϥ2%jV(kðVң2U+22'jV(^H h(2FU+Ϥ2%jV(`r+" Ĩ2*jV(h Lu|n%222jV(Oen$M2ң29U+22'jV(N|W 2]U+Ϥ2%jV(:7'V2(zU+Ϥ2%jV('cp|:+2jV(onP2=U+Ϥ2%jV(?cR"ó?jV(q;2]+2jV(U8h<2S]+Ϥ2%jV( T]GĨ2*jV(Ku#222MMjV(Kȥ2ug$222MMjV()-G>7Yx  jV("[{Eoң24U+22'jV(~XCnx$222jV( t Ĩ2*jV((atf6ң2IU+22'jV(<3njĨ2*jV(҃qUn#222jV(pݼ: u%222MMjV( `2`222 FEjV(}%Sc2*]+2jV(15H,H Ĩ2*jV(oHT@2?]+2jV(uŲ%222MMjV(ʂ`z⠚ң2 U+22'jV( g  jV(4YhHu"#222MMjV(^]% ြsj222jV(,%R}$ Ĩ2*jV(A8jV(/9'\'`=27U+Ϥ2%jV(&M  Ĩ2*jV(Doԣ2}]+Ϥ2%jV( Ĩ2*jV(A ܛu#222MMjV(gNQң2U+22'jV(D"B  jV( ePC2.]+Ϥ2%jV(mُ֯ң2U+22'jV(1ӟ@jV(CnZëY2C]+Ϥ2%jV(!an%222jV({s2-]+Ϥ2%jV(Mw^oyʶ2XU+Ϥ2%jV(me,n%$222jV(Tu* Ĩ2*jV(ZƊ%La29]+2jV(IIu#222MMjV(c"MX7QjV(?EjS Ĩ2*jV(FG3u#222MMjV(dqc2dU+Ϥ2%jV(mo.2NU+Ϥ2%jV(gHW% Ĩ2*jV(&@u%222MMjV(2x5LD25U+Ϥ2%jV(nYru[$222MMjV(ĭ.RW: &2jV(epG'Auח%222MMjV(V?9;2U+Ϥ2%jV( EAzp5ң2QU+22'jV(r@΋[O Ĩ2*jV(TQR)u#222MMjV(Sy48sf 222jV(+ h 823U+Ϥ2%jV(l7GA^uu$222MMjV(г9ٳ Ĩ2*jV(+ 72HU+Ϥ2%jV(tm!z 22jV(&{{ң2@U+22'jV(*Iyn_ڮ$222jV(Y~ɜ2)U+Ϥ2%jV( 'ң2U+22'jV(;C ~S Ĩ2*jV(Bѳ92>U+Ϥ2%jV(|,G  jV(+Z:s j222jV(ά2U+222 FEjV(:@Ќ]Ĩ2*jV( n!#222jV(68ni$222jV(J Knz%222jV(MlJ Ĩ2*jV(UhsK222jV(Vu msi222jV(Yk\ u#222MMjV('zRG2U+222 FEjV(ڠ*ң2,U+22'jV( jjIң2AU+22'jV(бS;2 &]+2jV(3bmZt|y  jV(!t ң2VU+22'jV(/8B/n$$222jV(=Lnl$222jV(w   jV(IN+~ +28U+Ϥ2%jV(^I DM+$crate::format_args!++2jV(ѿffBu#222MMjV(ZMSuĨ2*jV(M!:;v2U+222 FEjV(]:, N2U+Ϥ2%jV(-*N Ĩ2*jV(8OeZjV(.Ŀu%222MMjV(8-n΢#222jV(k~2ZU+Ϥ2%jV(g 2U+222 FEjV(;kis&'222jV(%L ң2U+22'jV(1}@AĨ2*jV(%`s;Ӕ222jV(e̎v6'n%222jV(U &GTң2 U+22'jV($QQs2PU+Ϥ2%jV(7a<Ĩ2*jV(m@fBu#222MMjV(ieg2e5222 FEjV(5h#R=ң21U+22'jV(t~nt$222jV( 1 '.  jV(S3Bң2FU+22'jV(>FaJRu%222MMjV(\Fq2=]+Ϥ2%jV(`574ң2]U+22'jV(!3]  jV(rؕIjV(Ht:02jV(o?nlj#222jV(6ùX2S]+2jV(y2:R"zГĨ2*jV(9#3}yn #222jV(B8NB0nh$222jV(χ/tk?   jV(P~-25U+Ϥ2%jV(o=$nux%222MMjV(b2*4 Ĩ2*jV(RN2JU+Ϥ2%jV(p([L2U+Ϥ2%jV(Xz(u#222MMjV(_5jE.Ю2" 222jV(Y\^xN-2+U+Ϥ2%jV()$/$K2U+Ϥ2%jV(΂3] Ĩ2*jV(Bؑ!92@U+Ϥ2%jV(+Du#xn%222jV(|}3n2 "U+Ϥ2%jV(tK0g   jV( wjbM2U+222 FEjV(=bgn#$222jV(\ uj$222MMjV(IbNjV(,\T2}]+2jV(PS-:(Ĩ2*jV(oܱ9k2U+222 FEjV(@Gi|M  jV(j,֭mn#222jV(3%te2U+222 FEjV(hH72.]+2jV(f;0:2C]+2jV(u.|?s 222jV(=ng2-]+2jV(ң2XU+22'jV(ow(.s%222jV(' qCfĨ2*jV($s}n"2:U+Ϥ2%jV(PɹG?2n%222jV( }pjV(ԕE))ң2NU+22'jV(%KλN*Ĩ2*jV(w A2z[32jV(<җVOB=2U+Ϥ2%jV( y2U+222 FEjV(H32U+222 FEjV( Dz)=5't(zC@N~M\LZ.+DGdcSbeaP2 &IW9zz9tt4B-^-Y@FEDR` "1?0/}H8V*U5T6 )A3O]7,X :Q >=<Jdebug_assert_eq-\+ jV(n*Xu .ң2aU+22'jV(G|${T+ jV( qSHH"3 jV(Yru@&x3 jV(Ue;ף)3 jV(m7Vk313 jV(s"3 jV(SspQ+3 jV(9?~e!ң20U+22'jV(◔P9=wң2EU+22'jV(gI]zF3 jV( ң2'tU+22'jV( 8)rң2<U+22'jV(-dKz3>.3 jV(2 *L̇#3 jV("E:-3 jV($d3 jV(mF4Ts,3 jV(> JE.3 jV(S8m&D)3 jV(Қr"3 jV(CO ˨3 jV(]j@/b)3 jV(.k=3 jV(xgyC]9ң26U+22'jV(YY""3 jV(V,T)3 jV(z9HF3 jV(Mk{B-q"3 jV(uق83 jV(v%-kL,3 jV(h;}[C'3 jV(E-En3 jV(nI(k3.3 jV(mjlң2MU+22'jV(oe%5)3 jV(|[ң2cU+22'jV(X3.3 jV(>*@p"3 jV(ݒ^m"3 jV( u*'7F3 jV(J<Ut`3 jV(-υ򞣟+3 jV(W)3 jV(`)}HI#13 jV($r"H3! 3 jV(}X,3 jV(ELizgң2(zU+22'jV(k_o"3 jV(O|Qsң2=U+22'jV(/AE3Q-3 jV(| z<3522'jV(ңh;E.3 jV(~&紸3 jV(i^nk>3 jV($Sjk,3 jV(!+Cq-3 jV(pS,|n"3 jV(kA^t=83 jV(?B4M22'jV(}{Dң27U+22'jV(쒴~ɪF3 jV(t]mtr3 jV(vMd"3 jV(u|'3313 jV(le\#VF3 jV(?,Ni_3 jV($cݪm"3 jV(o,eң2TU+22'jV('˜#3.3 jV(pMt+*ң2dU+22'jV(] `a313 jV(tehg >  f + Ɇ n { b 3 o (   % F ځ r ʈ 9 + X % Ή } y k  : ? ߆ I h U - [ ̇    $ ֎ D Ì ֊ b d v # O A w ҍ ۋ Ґ Dž Z , P `  ҏ  w s ‰ C e > = ? F  g x ! -  = Y + K L  - ƍ f _ ^ Q p    x P I x  e ك / O | Ԉ j  5 b  Ë ؉ 0 O ~ D  I R Ƃ r G _ e և  . N ͌ [ O  K ܍  ܐ х < d Z p " ނ } o . O } [ J H  ' q  8 ' k  7 ܅ E  ΁ | ߈ X  L z ; f q ~ x \ i |   ք 4 \ x ! O     ʎ ; ʊ V : C n ϋ Ɛ  + T  } ҂ 4 7 q 2 1 2 : Z ٌ  l 1  W   p 6 f 7 % @ Z R .  3 ӆ ( D l k w  C  & % ̓  Y  b B C ܏  V o  % ̈́   u F u # ) ɏ T  P w 2 L f B c A  b  z  O  R V E ' 5 4 a # % Ǘ % 2 N t  ' N U  A S n    C  N . ~ q Y   V e .  [ : P L E U  '  % x X , d y ( ] O {  N b V A j Ȫ D ɓ Ȯ > Ƽ ,  ұ Ц  M 6 q x (  ϑ   M ϕ  p    E  } p s ׹ U h b R T ] Z * t l "   s Ȥ 2 < 6 # Q , y   { & V @    x ϯ f ' 5 c Dz  C L  5   { t J W U B U g Z C 8 *  * W ] 5  } ژ 1  \ > y Z  ?  % x  r , B d M , ; s } q ԩ ] ԝ Q 3 D U > = } Ͱ T E P z ɳ ( ̨ ;  )  ؟    . _ ۵    ! c  h e o u { H = D ( X (  F } +  t  Q  ; x i B e w ٠  v   < £ h ߞ K   r O c  , F  E   z  g 4 s   U k ` e  3  > Ӷ m 0 p t c ǹ E X R B D I U  q  F q x > d s  C @ g " <  r S 1  y .   ݽ % z R % y X o k d Ը u : G 2 E v  J   G | m ʘ ! m t i  ȟ h b  T =   5 m a ĩ M ĝ A  # E . ա m & D 5  @ j  +  z z y    O ך ˵ K *  5 Ԓ ڭ  S h W H ߥ r ֙ X 3 ( _ w  k 8 - 4  H  A a >   d x 1 Z /   { Җ A ѿ   + h Y  U ַ E c ج ɠ  x V 2 R S j { ? ` B F 5  % $ Q  n M   6 \  ~ v E c p v j ^ " ,   f  T t F J   4 ܔ , 6 S ҧ  2 @ < "   E  >  1 u b i Һ  M % } M ? k L F Ϟ ;  ± w = & a h   =  ؾ 5  ? V  ܣ   h .   2  i   J d + c 3 < - ODHT jV(S'ӱjV(~`<jV(8ЇYjV(5!J`IxjV(B pvjV(n^l jV(Ј\jV(jtPL3njV(KPVa @2jV(r %9RjV(iY-z%pFjV($*-mjV(Wk-@EFjV('=bi5QjV(Zwo5$jV(<>늲jV(ٗB@{chjV(NeEgjV(h'HpajV(tGJ`LpjV(]rMa.jV( wNPLjV(OYjV(C*GtO jV(aVVp5jV(vW<jV(vg\PijV(\=X_CַjV(r\,f`# `jV(KiPUjV(Xj`VjV(uZlp ojV(mpq2jV(Ckn;jV(Jb.n jV((8Ӡp=jV($ qzjV(a!qBZjV(tjV( `} lIjV(gn~#jV(jbcjV([#|jV(l3mjV()`(jV(ڗpipjV({jV(61㼏jV(|ݐ@ @:jV(4 |pjV(jV(Hc,jV(TU*6jV(ә`N!jV($NϙjV(hQ`<jV(>M ]jV(`o~ﺐjV(ȰA jV(H< 㦲jV(/e8ղ8jV(´`FjV(b9jV(VD ^jV(×YGjjV(O:jV(}@ jV(^7jV(`[;jV(b0-jV(0%jV(ti@jV(/z`_jV(ɠjV(&9{̀njV((l/ ljV(t!jV(oѠjV(c~jV(~0DjV(pVjV(9֐_jV(4 9jV(=:Yذ]^jV(•z M%jV(RWհjV(/лUjV(2n'شjV( BjV(=`ljV(ڢrjV(1[Kα|jV(WN`:@bCjV(y jV(+HnjV(&x >jV(OM_QjV(Mχ~jV(jV(TTpejV(;Lȧ4jV(&)>ejV(xMjV(,jV(̘e/jV(kTዂbjV(yW=z!jV(dBQjV(9 <jV( Ȏ @jV(%>$ rjV((ȅ !tjV(k{< !jV(p k"jV(MjV(Kk} UjV(W%71%jV(~ыjV(́1F1jV(#VBg"qnjV(#b"̈EjV(% jV(V ,a.jV(Xh/CjV(oM/Q(jV(&y0F<jV(4*2㙃jV(G6aL3jV(oj?q\jV(qB FjV(=#C%uzjV(r+B1FQ2jV(EjjV(L [HDCjV(JI=]jV('KALjV(v`P;jV(RՕjV(ǣcTz jV( WAF jV(@RSWQMjV(ĩZjV(^!xjV(`QgjV(4va%\jV([bqjV(Jjd]jV(F)iV7jV(%KjUrjV(imjV(Ҥژm!jV(=GmQsjV(q}KkjV(LYzq!RjV(~rx񼽦jV(2^{1-jV(%|-jV(K7jV(̡A+jV(E@ljV(ǂxjV(xz|jV(2拁jV(ݢɠajV(W!%ujV(~jtQBHojV(6 Gt1jV(havEjV(3u_7jV(I Q jV(AaL1asjV("\jV(v6_t}jV(YIȪjV(oApǧjV(찧1jV(@ɧ!סjV(hlQ "jV('5DF;jV(* rjV('EAjV(d|gojV(>jV(;jV(?:qljV(0+!ijV(,ǾjV(@I5*jV( jV(uiY[jV(1`g?jV(Jdq(~jV()3TjV(>p0fKjV(5 {@jV(`u]Ɓ\TjV(ǡ|jV(߬lǵjV(aojV(~IQjV(5ajV(K3ցrfjV(\ȅّHVjV(ڡ!GjV(]xLjV(B1jV((ʮuWVjV(@'FjV(. ?0jV(SC/WjV(irيjV(XVᦇ:jV(`=QjV('d 5.jV(K,] jV(B:jV(҃jV(3OqCjV({V!jV(e&jV(a jV(VB$b'jV(4#jV(o2+jV( YjV(2Mʥ jV(k bjV(b+jV(bIjV(QrjV(*N"jV(&*fjV(F1hNjV(7f1jV(0 Rs jV([ZjV(?B~jV(aspW|jV( * jV(\qR8jV(\N"RFjV(g'%YwjV(%rjV()%PnjV(+(vYjV(WK*2rjV(Du+fjV(@ap.28?jV([0ajV(ݳ2B^}jV(N72"tjV([y'7jV(2X9r]!jV(C>`jV(d>?,f,jV(f@[tjV(sHp?rjV(+BbTjV(7zCjV(,DjV( NWIhjV(s? J2>jV(t˻IjV(I Rr/jV(TDBjV( E^MYr`jV(Yr[btqjV(-D_pjV(l]Ead%%jV()3Be2jV(xfrKJjV(_wr`jV(XNy"mjV(s\}{B6 =jV(S- ~'jV(b2gⒶjV(.b0jV(ʼnJbIjV(FrtjV(ȍ·e;jV(²BLHjV(??LjV(0isBjV(gotMjV(pϐjV(Z,uyjV(i͖R)ޙjV( zJjV(y[y2_‰jV(i ;jV(hv9jV(jV(;2SbjV(-B ߣjV(ib5IjV({QZVbjV(e'Ba]jV(^("^1jV(xt2$/jV(L@aljV( 5"BqjV(JܽRjV(W<\ЕjV(wɫ`jV(5װ(`xjV(T데jV(NjV(1h jV(hrg# jV(ƻBjV(BZjV(,c% jV({/jV(d>"/jV(@MujV(t䫱ҕ5ijV(۱҇AjV(DorjV({PXjjV(]UuòڿjV(\qҘ%\jV(\Our pjV(pSjV(SˊǒNMjV(r0jV(iB9MjV(Q̢%QjV(K:⬾8jV(ȢjV(9Y\jV(4(nDjV(\?(jV(EԢYjV(3jV(CB?jV($=l٢5UjV($0RIjV(d\&jV(4rjV(r8jV(@Q\jV(a!2+ujV(Q,jV(EBcojV(RjV(Mx*OLjV({h jV(n@bnjV(T&LjV(T~R-jjV(%;rE>jV(iR:`rPjV(xO=jV({L`RjV(bB[jV(Ċ ӏvijV(u7)jV(H3jV(sjV(" ujV(x =jV(Pz{jV(|'BwjV(&06CjV(U3{pjV(VjV(9##3 jV(@j/"3_jV(jV(*/MSFVjV(>:C9jV(==T3JXjV(MΫyjV(GLjV(q(i[jV(ӄNjV(P:DjV(;ױCpjV(NJ<s[=jV(OʄKjV( tSjV( CcjV(]*jV(H SjV(S[5jV(S>jV(Ö jV(W)sjV(:=ɓIjV(VXRjV(L3/LjV("/#ojV(3YcGLjV(eZcyjV(d{ӹjV(pkQۓ jV(Ua^s.jV(!ƍMQjV(|'/IjV(f->jV(3#qjV(ӖLjV(ƞUjV(!R)sjV(<=jV(c^tjV(/L)_jV(Έ ~jV(:~sjV(s?45jV(/ s}jV(.s~jV(}qBjV(6c> jV(4jV(mwdWjV(ԏujV(E=jV(SSMjV(/F"ljV(҄^jV(JhjV(`7$\'jV(|dy!jV(?fdjV(6 jV(<jV(/cjV(=ZjV(ɀd~&jV(djV(*!TjV(b.$=bjV(_R%tyjV(;&dRxjV(gu*$jV(*1$Ҩ4jV({Q2D垾jV(q 2${wjV(B=ijV(ˁCsjV(pxG$ jV(EIGdK jV(lH_jV(MHりjV(} KTmjV(-)GνjV(ҜZMjV('Nt>0jV(p|&EG@tjV(Yc~P=jV(TnSjV(xTsjV(|OV$jV(70V$jV(hYQjV( Zt4<jV(\\jV(cbԮJjV(ae.jV(+idjV(PextΫjV(yw#jV(?sN$ysjV(K"DAjV(2׀?jV(@ӂH tjV(]ۅjV(rhRVjV(:TTjV(&jV(ؗJjV(W{ jV(GQkjV(޽wtq,jV([hjV(}ݓďGjV(d}RM.jV(. jV(РjV(ZELsjV(1VjV(:`ૌjV(L(tADjV(ήAjV(nkjV(к&jV(1vjV(ߵcjV(.oDjV(h﷤fjV(侵?jV(|Ϲ5jV(]l+jV(`DkjV(ED݌jV(0enjV(Ë4L'e~jV((5E}jV(_O%E"jV(FD* jV(`z6%EdjV(CC0ufjV(9UljV( 9UjV(RaAHعjV(A>BU-ejV({0Dշ0jV(S}EQjV(aA8NHQjV(aMJ'jV(E2bgN~jV( pOE}jV(T?OujV(IR^zjV(iڴ7SjV(Y\VjV(\&XELjV(H@d3ljV(0g%`TDjV(\~heVQjV(Bje6jV(FkHjV( n5XjV(D nŒ*jV(znUjV(|GIqjV(\hCpY jV( Zs%pjV(rJjV(qo1u&jV(&xtCjV(yhz<jV({EjV( Q'|UwjV($#~ajV(351jV(ÄjV(R|eANjV(:R jV(oejV({܌5YjV(%u'pjV(2ڌVjV(HqY^jV(Ҥ50jV(5jV(QU0jV(djV(ߕߙyjV(Ynیu!jV(OyWjV(N jV(r1B MjV({Cѫ5یjV(>{ȞjV(*¢jV(V%jV(peHajV(4>jV(Dn¼]SjV(ޟU3HjV(EoľIjV(K' LDjV(E+PąHjV(MSf`jV(.pjV(`40ա3jV(.]+XjV(5jӵ&9jV(e\%jV(ƾUtQjV(=gfջwjV(EeE?,jV(Fs-jV(0NjV('2jV(XIg敳jV(JwfHEjV(wrjV( ٤|f jV(m${}6djV(~;sjV(hDŀ1jV(ς&jV(OO6A5jV(v15jV((f MjV(9&AЋjV(VRjV(FL/jV(sSjV(BHV|jV(ܺ^fjV(DE]jV(^jV(>fjV(!Sr &0jV(N+6}jV(aÎ1jV(CR jV(aζV[ jV(Cg`XjV(8G"jV(UA:jV(i?VjV(;pFjV(V)eEjV(j3ȆTjV(1&*Զ:jV(> ږjV({ݶ¬jV(!B6jV(L1fjV( 6vjV(W} jV(M綼jV(;@EjV(쫪&؀jV(<%jV((ֈ-jV(RF0jV(+6jV(RɍFJ"jV(|FNf,_jV(y&,jV(Z(oLV҄jV(8fxjV(ݼ jV(W<G.jV(Kϝ KjV(XW IjV(Sp W,jV(D,'`.jV(q 1ebjV("PFjV(Ӵ7~pjV(WfW jV(.0dw-EjV(0Q7#g|jV(0c4$WL(jV(&'W8v"jV('jV(@/'/=jV(4 g4=zjV(E[5gqjV(N887jV((8*ajV( n@*jV(m3D'KjV(=iG׬jV(۴(IjV(L'˓jV(WADOznjV(RtQǷaJjV(DUX}jV(6ŠUajV(h+YRjV(ZnjV(\HEjV(u]-8jV(nGV@jV(GpwkjV(jus1zjV(kvdjV(*wdjV(^b+yW 5jV(Y>zEjV(vPy*HjV( ||jV({wԲjV(a+~g'*jV(ڏԀ7jjjV(^`GEjV(WPTĉgexjV(:77jV( djV(?فjV(~ܝ7!`jV(KJvjV(2R' jV(5jV(><ijV(ԭw5lgjV(+Gb|.jV(/$'S-OjV(a(jV(ɷgcjV(^47WjV( OYg.KjV(F'WjV(9紾cMjV(}gdjV(qn3+7l3jV(a*jV(UvjV(!5{jV(597>jV( 7&jV(JEW$jV(뛮Է?jV(~էjV(Ia<פgjV(Xaw=jV(;Mwo%jV(1חjV(UǘjV(o,C@EjV(2$sP5jV('NjV(I}헳SjV(=DjV(c.7:)jV( pYjV(7{JWjV(m5jV(~#W=e jV(ĊGjV(FWzjV( 6jV(;b=BhjV(ê_jV(AxbjV(x:{(!jV(Y'jV(;f!: 6@jV(t x"jV( B ؘ AjV( ϗ x;3jV(' h{ jV( 1jV(|ςjV(&c ѭdjV(*88~jV(ujV(dG±jV(5xv*jV(9[djV(`ő8jV(?,jV(L`(jV(AX#1jV(("%ajV([7'8U(jV(\])z7jV(+-(jV(Q.8wjV(ϧ0jV(7݊5WjV(ԫX6KcjV(IQu-8hVjV(t[9ȻjSjV(p˦ApX jV(p>gjV(<Ur(XjV(Cyeu9rjV(ќ{xQjV(f,SXbjV(axjV(ĨXpIjV(|hG8jV(%njV('3jV(M Xc#jV(R(jV(-Ox~hփjV(!سGjV(㕥)fjV(GVjV( V.ը>GjV(injV("Ү譾jV(,ʯ-HjV(EPjV(}xMjV(U78BjV(¬ٽq3jV(RD jV(x_jV(u۽{jV(pa8IjV(|jV(M5k(@wjV(HjV(?GhjV(SX͈TjV(XyjV(؂8jV(;?$jV(kd,jV(F,.jV(/k5jV(#0jV(ex%`WjV(_N@jV(ҤxX}jV(YZj5jV(ȣ5jV(2` ~jV(b? jV(uSv$jV(N8LjV(zx}jV(ٍ'jV(?$h&0jV(|Y^jV(i]]jV(!kXojV(&jV(`SI!jV(7 jV(_yL jV('->UjV(VvK ozjV(㨄 jV()Z yn*jV(]W 9ljV(.9 jV(2 MjV(}jV(]=hYN,NjV(.( yjV(&jV(Y(yS{jV([+WjV(u-I^TjV(淴/p7jV(F{/z4jV(@`35 h jV(!8IjV(HN:jV(}4:y jV(#B9Y9jV(KiCyjV(SD8jV(DL)ejV(PpLYjjV(v`S9&jV(T)OjV(jU 24jV(PsUejV(PUejV(s;X~8jV(OQjV(F*[jV(^pTjV(EzM&jV(p6V \jV(WhjV(G:AYjV( bhjV(V+ j jV(A^Z. ?jV(;u(jV(B{CQjV(TjJjV(pm/ujV(k}bi jV(<J䀢jV(JTujV(3$ ljV(V#(LjV(H_$%jV($@n$ڤjV(9?&jV(=(ʴmjV(ӿ^* jV(b+*jV($*R-PAOjV(R-:vjV( U.JL-kjV(A-x0z#EjV(^C]-:0jV(Av5J'jV(b7*cjV( 0U7*J{jV(\ļm:WjV('?*jV( mAzXZjV(LFzKjV(HjV(ڦM*jV(XOj}jV(=PjV(&SZjV(WzUjV(nXOjV(^EXŝ4jV(IѾ[ : jV(w\؁*jV(#yb\:AjV(AS)^ZVjV(dZ2 jV(gjV(M;he>jV(GgJ,jV(f%g:~jV(lj8>jV(XnԙjV(qi#n*{jV('pP;jV(wp:1jV(V uEjV(=YwjV(Vcwچ\PjV(4xMjV(  jV(sꅈ jV(f~ȌjV(s<,jV(MOZtjV(y?8u.jV(5e0sjV(Kj1jV(NzjV(* 6jV(LֲZDjV(>EѼjV(*jrjV( ~[1mjV(Lu\jV($}jjV(sPKj!vjV(xYp[}jV(el=ZY&jV(}z*qjV(&J=UjV(F /B+MjV(cNzŚjV(9#:7jV(͊a%jV(:Ҋx0jV(bh*jV(75z(jV(O\jejV(ۺ=jV(;Oݚ4jV(rުɉjV(Ü -jV(*qovڹjV(<jV(&mI jV(rOY*jV(ٌ|jV(\XjV(C~N3jV(t!jV(67zjV(ЃjV($+8jV(5?,KjV(:6/ VLjV(}yL2[=jV(hh44["i/jV(69ZjV( 9'ljV(Qa;\DjV(O%=KjV( x;@+GjV( NADjV(_:BgU=jV(aH jV(MP7jV()%U:jV(u@WrjV(yEZ jV(Z{\k$jV(|9\k@ejV(0/ajV(:maşjV(}aUg+1DjV( gkjV(iO\jjV(rik+jV(\k.0jV(no ajV(uZjV(|vKvjV(gw -_jV(ޔx{ĸjV(#y^jV(.N}˱jV(辒A~{%jV(u+k jV( Ԇ;%PjV(vL ZjV(\8)XjV(Jl VrjV(>F;L??jV(8rWwPjV(jV(QKcj{jV(ŞK?jV(Q#.ijV(4;mjV((mjV(mKjV(Tk?[sjV(; UjV((2ˏ(jV(7{/jV(ʅb>;jV(@2B;}jV(f;KބjV(WojV(űjV(BjV(9;KjV(+԰jV()O,m jV(.`YjV($Q jV(/%jV(jpkjV(37jjV(l jV(Pk x6jV( mvċejV(-Ż^)jV(jĻGjV(,f jV(W:ɫ;jV(!jV(ZkNujV(Hm};(jV(>֯%VjV(=S{ybjV(OkjV({ .?jV(kKܫ CjV(aݛLjV(#B6;U1jV( L:{jV(*PjV(οRwjV(laՙjV(:BjV(I4k}JjV(&i jV({KjV(CjV(.jV(Ƞ/pjV(X{sjV(tcR ljV(!kjV(#%jV(&+jV(OaojV(|f jV(2L,a[jV( mRjV( |u|jV({ƆjV(<lGjV(LWaMjV(}#l2jV(3\|dk2jV(C\OjV(NWUWAjV(kc̙0jV( A,9jV(-KjV(@=={jV(yM0DTTjV(-;F} jV(7xF|jV(Y H O=FjV(1|G]jV(x G}jV(}eKm7jV( L%xjV(XJqQwjV(V}9jV(yW=jV( ^pX tjV(~4Y >jV(ؚ[=%jV(Ҵ+g\O5jV(%B_&]-njV(m_hjV(aD-bءjV(8f?fjV(lhmnjV(;xj=jV(bDjNjV( m]jV(oeemMujV(ňyp /PjV(l9s=jV(tmqb2jV(pJƣtM=jV(͌u]jV(; w]^hjV("z _}jV(̬{HZfjV(I.V{}LjV(6刜{-RjV(~djV(1␁ܜjV(u͂]p@jV(vB]`6jV( s-VjV(hg jV(b|Gm$jV(RjV(tfjV(vW]jV(-.jV(0]jV(uǍjV(=:bLjV(k¢݂_jV(u"}TjV(frzjV(@ݷɘjV(UU=QyjV( ERjV(uFׂMjV(N jV(}~jV([hH\jV(a]WIjV(}8%SjV(`m-(jV(/ MtjV(GԝjV(ڮQ]]wjV(нRjV(o׽;jV(xP͍jV((mR{jV(/>H-FjV(S޽ jV(PjV(].jV(ČjV(!l <jV(ZM[DnjV(}-pcjV(7L%jV(o@ϴjV(4g}#h2jV(LϼojV(~˜jV(>mjV(v"N͹jV( + .]XjV(( njV(KQ [ejV( N[jV()~NjV(8PfjV(Z%jV(9؁nQjV(mN-::jV(=mjV(Nk ^jV(0qJHjV(_3&\jV(-'>f/jV(W_ (>ojV(V*>[jV(;|2~TjV(63ήjV("2nOjV([7.%|jV(8!jV(Ĕu9SjV(|7΀jV($<{8.UN@jV(a9^jV( =.jV(I@]oNjV( (NCjV(gk)H`jV(SQIކrOjV(=VHKjV(klYL 'jV(Y[jV(MߍZ[vjV([jV(_\[jV([jV(wZ~P;jV([޼wjV(T`~]^|LjV(^c>OVjV(b9hNTjV(U٧owN/jV(՗qjV(*?v 8"jV(|fw{jV(D|"jV(ŭjV(Po^YjV(%al jV(yh^>FjV( ޙrjV((h0 VjV(?jV(gjV(,N:#jV([^MjV(7–~'xjV(U^ jV(Qr^#jV(%-)jV((^-jV(BDZހ|jV(O.ȅjV(owjV( _?;pjV(O jV(AjV(ߒjV(km΁CjV(4qNR+jV(^`۲e޷jV(VHjV(e~[jV(bn }jV(콾jV(JrqjV(y#AjV(wZjV(uȞjV( |HN89jV(C;5ˎYVujV(l>'hjV(k4j^s_jV(e~gLJjV(3ԮjV("ӮjV(= ޜjV(,ھHjV( \jV(L~ܰjV()nsjV(5QWC?jV(EI^iCjV(~s].3jV({[jV(~ynjV( ^ZGSjV(jV(:afjV(6On|jV(ՁjV(2jV((*ԫjV(6L~W|jV(^_ujV(*xjV(L߽jV(i };jV(> ?jV(| É BjV(´jV(oojV(Jl_ jV(V9?SjV(RҩC:$SjV(8.ObjV(V_ojV(1"6jV(fHUS#ik^jV(ڮ7$?qowjV("?'jV(Hܾ&ejV(N`#_C~HjV(T(즊jV(#8(/jV(4" *jV( s+_s6jV(#?jV(4gjV(-72jV(`9jV(S:ߟ}jV( r<mjV(?ojV(.AjV(rCMEjV(+d-DY,jV(Iqb-DjV(l]F_ᡌjV(yGnBjV(Y+iJXjV(}\MΌtjV(DNOBjV(WNSxT4jV(kd-SjV(gS=VkG4jV(VeYo޽jV(w6D[OPܢjV(I]HVjV(iZc?-0jV(z*$i_lvjV(K(myjV( _^rx6jV(:s?0CajV(?3AtjV(vizuajV(.wXjV(nvxjV(IUy$jV(=o8}bjV(J~~2gjV(Lr+jV(&ǽ/pjV(y"OXjV(UV<3jV(3p O|RjV(#T֏O^jV(.*OxȨjV(BR/jV(UגOEYjV(i*#.<jV(ێjV(aIejV(5YjV(;<jV(HٚYjV(4x_1TjV(M6RjV(پojV(ɰjV(䴢 jV(H%WjV(/VjV(0;jV('Ce8jV(X[O,jV(Y~sRjV('?sjV(gNCjV(y4=jV(c?_Q<jV( }&6ujV(vOyUjV(~o=jV(MK"jV( Һ[jV(al?jV(ݼW9jV(,t*ujV(:jV(XXf/_©jV(0o?9jV(qOw/jV( nOpkjV(KBjV(qI̯AjV(/tVjV(f+0]jjV(2?jV(ĘojV( wnjV("2K jV(b6%IZjV($Mnq*jV(]ʾDIjV(B z$jV(`ƶ]ߟsjV(9hjV(e; jV(zo/scjV(:=o8jV({jV(Al_L{jV(&ߺ1jV(#Kϵ#jV(K?IߗjV(4* BjV('q}ˮikJ$;FIwA"(E1|w8}J,_4kp+nDk=-Cw[y>Q8c^ B{tL]|SX#uR# BVD /PjiHj"T/L.&v*loXSe7}(aKS&rAb!~` d *Uu D@L@#:(J!HJ=#{RI 8{+9mU@%^WEO<>J$"/ARzdcRP#9`3se6Bs_O ?*% .gc SL3$H&K+e+lCy.H~Ti}1z ,P[R3?>e|,7;cuyN/.R3:G*RtVFF^h9]8Q%0mJ[|P2$&!&io%aAsQ10t!Vh00f4qGjvB5mW@&&(_ x"]\oH]pwcnSR&47ajy-; 9VL; ]ZYvIy7x8Wi%PA?%_ 18x/ jsH$k5Laa#pTS: )zqKEF_}SGUnOpb~&*] h,kmG!zWo')Q,i/c_ d;mOw 0h%RZe70,F)?" R2R"fCjVg1{ 12`U|= Sh3OGKV ()v,%2J=xy^wxAVmX2XRGh*gd+%5,P o e>/?skXphA, <$seC1AC3x7_t(&e8O=z;Y*+}uR0VxP? > b/d7jD=_76 `s=Hs8J|eIv2R Q2JUsm~)n| < @aK2c+`w7$K wgGnhldJ{r'OOd b#]`&#+OFP8#o}# ,tFMOz\PFLDSmywT,NdAH> 7z=)2, TzTZ0q% 4_o"Vab*W} RnYRO"r.cu Y {bcq(-O; 5nC@Nur}EoybA6C85u<2lQiTb:O+u'X&~BL~%qLC[8lfh_h7K@>cp05E+TV>>^oLZ(B^7+0gGS}hUUowtZMdDrCB=Sq^c]UM8*^e1]-g^P@$!V<\j/.R }hC;6~[z2K<%BC?[j2soeu9V;;GLlXW~$=ChIj$ lc&w)N[({F@*>M` ^'4lRP'?L?\1M|>- )2n8]+ C spJuchL 9dZNu|"#``W F{s`H^f=| C"1yZ L\\.7^Guz[(o`YAm` @N)]' 7A09Y-TLpy(;&+*'ymV 6oxANod;PCj!)o$-AUD u+9p n9!4M~#j3 gXjh:y|Cc]1757{?SYs9~C\> 7H"tP7,F*#^n_LdW"Bm^s+Bz9 'd*mo+Eua@;5Mr+@]^%-$=I4c B&TjZ!eikJ$;FZ/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/lib.rs ʂ C [w@O JKNLJ PIN $.0M* =! ,O'1 !2OOPA)30OJ#:/P$;NMOJELFIHM%NOO#ILIJ)LNHMM+ODNOLNLON:L;NCKFMLOJLJHMO)NINONM  GIJ > !4O6!! D#%GM   >PU2\ qf/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/all/memchr.rs JOKOMILKLNJIJJI7IIOK=37L,:  N/H$.HOL$7O9M@;KB>$ N9M@% C4L3+1' ;H NL:EMINLNP6 +'C I,<$C IKHH&G$$A :0?0A:, 5<H NL:EMINLNP6 +'C K$C =3$C 2?EE:, 7NNL:EMINLNP3P NH7! KN?KE1'3!EO/:,FB(),*JKLEM!5 47/JKMK6MO  M2 HOL$E)LIM@;KB>$ KIM@% ;H NL:EMINLNP6 +'C I,<$C IKHH&G$6,?4(( 5<H NL:EMINLNP6 +'C K$C =3.?E(( 7ON?KE1I3=JO/:,FB(),*JKLE47/JKMK8OO   OA HOL$4LIM@;KB>$ KIM@% ;H NL:EMINLNP6 +'C I,<$C IKHH&G$6,?4(( 5<H NL:EMINLNP6 +'C K$C =3.?E(( 7ON?MG1'..3!((LO/<,HB().*JKLE49/JKMK1N).%MM ##(IFO+!E& / ;"D  ;"J  N>  ;"33@  ;"33F  ;"333F  ;"333L L ,%7(*LLPL# &<@9V Wީsn/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/all/packedpair/mod.rs >YĮ[ǍڮqI OJOLK2I6PPM NLP>JH7O265LL&D88K3,>O+E66HK6P$=",M1@"8KD# IL"@JON7OLGOKLJKNLO$ <J)FB08GNMKGJ)3 GN"66557 .E5!3J3 KLL<$&HMALONJO%J)KLL< E1 1 &.!/!PFNPPNJLNINO+JMNN7M-)'NKM?OGODN=M5M>O;! 6&A*=#LMPMO&$J(7%4M -%  %P+*- @xxfI'Q[Sx`:i/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/all/rabinkarp.rs )/Ϟ,uasMNNMJJLPM.HINLLLKLGKNEHIHGGOONPCB;25PqALHGLJKK!MOL:IPN*@/- 27 FFLNMLJ,3*1D) ;HNL0NLPO:EMINLN3** ":F"? AI-K.+ !8; EFLNMLK,3*1E) <HNL0NLPO:EMINLN3** &:H"B J AN)6 <LJF$$" LJF$" PKL<!"GN@3'L;PI?< .G, 6"6& /9 /=~Cg̓gn(]@g/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/all/shiftor.rs g,e¦/.(8-=%I%G"41DJ&/ "@&* =.(8=%I%-G"4:8&)" HN'-7GG1144N;L5HN'KONL?)?(> !&/&- @>K=41K -  !&/&- @-K=41J- L POOHIIKOP0EKMOJMIL?JNM2  GKIOO#I.2 452 4GKINO#I?2 4?2 4<.OLO@#NO!1,I* *3 B*5:$% <=B F#6 );B1,I* *3 B*5:$% #AKNLL @PN FOPM PML LL? LIA%B@)B@) PINN+ 02# !MM+) GO/%OO/%G.8N>)P@,H 6"6& /9 /= )=/PLL )=/PLL ))+**+-+-,+-31971./1--/. )=/PLL )=/PLL ))*++*+-+,-+1379-1/.--?"LA ?"LA NOPO ':!Ld;;> %B&&  %')+-/1357 &'(,/-0 &'(,/-0oϴ0{o/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/aarch64/neon/memchr.rs !ʖQS؋g٨LOMMHJIJJI7IIOK%M:* OP+J,!>8 J)N$KOM'5'JJK/M.$(  -  LIM';KB>$ KIM'% C4L3+1' ;H NL:EMINLNP6 5O?& MMH'<H NL:EMINLNP6 5O?& MMH(<NL:EMINLNP6P 5OA& MMH(:KELI2'$:LELI2'%9LELI2'%KN?KEEO/:,FB,*JKLEM!5 47/JKMK>6MO* PP+J:!>B J)N$KOM'C1JJK/M.$(  -  LIM';KB>$ KIM'% ;H NL:EMINLNP6 5O?? MMH'<H NL:EMINLNP6 5O?? MMH(:KELI2'$:LELI2'%LN?KEJO/:,FB,*JKLE47/JKMK>8OO . PP+JI#>M J)N$KOM'!>JLK1M.$(  -  LIM';KB>$ KIM'% ;H NL:EMINLNP6 5O?&-- OMH'<H NL:EMINLNP6 5O?&-- OMH(:MELK2'$:NELK2'%KN?MGLO/<,HB.*JKLE49/JKMK@ & ;"E  ;"K  N?  ;"33A  ;"33G  ;"333G  ;"333M -Vr2ds/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/aarch64/neon/packedpair.rs 9_j `BJk@EOJEI%?@LFKO?3@LFKO?LMKG26IL&JD$JKB EP''DJJLMNPN;M.$(  -  :IJP4:IEP6:ILL2'&DILL2'M(IL"KOKMJE." G&3 '0 ? %D67+ @ (%D67- @-u@!A̬=B_/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/mod.rs >GVD9L   w)+gphZ/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/cow.rs qόE?Ł֍ތk-HKLK "JJ$'(O+%H$N,-CK>:"@5 -" ! '  &" (' '  #&}dźնuR[1]/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/memchr.rs &&&ge-:PN1:OMJ+1 >I& @+ 9ON1:PMI+3 ?J& @, IONA:PP#P+8 MJ& @6 HNNA:IO,O+: NK& @7 KONA:SM3P+> J& @? JNNA:TM3O+@ K& @@ JJ; G"M F(KJ; -N 3KJ; 6N <EO/HGM0KN?@C #*HP:IGJI/@ M!5 4./HP?M5JO/JHM0LN?NC $*HP:O 4//HP?'? 6LO/JHM0LN?C $*HP:"L 4//HP?'M 6> 1 #MNM-D#D$E H? 2 #E#E$F I? 1 #O#O$P ="@ 2 #P#P$4*  =#? 3 #23 #23 $33  H"@ 4 #33 #33 $43  H#P 2 M#C#C$D I  ;"B  >D  ;"C  >E  N<  ;"33?  >"330  ;"33@  >"331  ;"333C  >"3334  ;"333D  >"3335 KIKE< 6N&'&PHߙWw`f/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/memmem/searcher.rs t 2^bq ޭ3ٰ0 49=8!MNONK"OKJIMNN,"LL2$8*=/6@32@ > F 4 E F.G:K0>@HM.G:K0>@H,:IOJ%J> ' I.J=N0>CH,:J> ( F.H:K0>@H,:J> B$$ %:J> OP6P&%2F=J /:->D@ KJN)'+HHE %G#351PINJ1A9A9#?$:3- MI!#I< K$ L@ N"$)$KO M!$.2 5NO N0#.2 ?2.@M0 J=$&42 &M0 J=$&42 &K8 M!$)42 &N0 J $&42 &" %&KOM+HJNL *NP#6*#E'H3?J9/ ;(IL%+ <518:;3 LPHKLK$NOJL=MNP PLKO 4 NLC #&G /'MLOOP+FKLMHKPGNHLJMHLGL*LGPJ H,MMM#+/+>4-J0;G AA@24>'2 AA@24>'2 D#F54>*5 B$@34>'2 3LI!IP-PM7GN/NI>PNPL/=H&G$4659M IOJ4A9A9#?$:& MJDO' K#1N G=#4$ (N G=#4$ (L J"&4$ (O G #4$ (GNMCLNI#MIGFL,:N)@?@N#(,0G%+3HL'6&A L) 6 K M!GIJ%M<&IF3@B4%J:LNIKLJOKO -PP)DMPNMM&EKKKPOFNLIMJ=7Kء)kqxa/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/memmem/mod.rs `/ +BLJ"II0F#::98 @B /8AK  .8M'O D7%%. -*+7N".4II-:"EI,41D CAK !K/#(.M'O B:%. 0*#! ?3( >KJKMON5JG 2G3NMM4J $'@@> ;2-<OMM4J $/*1(()% /KM D1.- 7KHOMKN)2- :NLPD$FKJKMIKBJJ :J3MJKMM4J ''DDB HGLMM4J '/-2)((% 2KM B4.- 7KHOMKN,2- :NLPD$NHHKJP'O3MA5O%M72,,2*0"/N,:'DOMOH#NMMPO5M)=M#:"C'B&G$2L$K#KLO>MC)?O%& )  %J*$#%@+?+?0%MMMJL8$MPPOMO/@+!!.&/& =3 ?4 7= :* 8) 7( +!!.&/) =6 ?7 7@ :- 8, 7+   #!!!."2 @J;' B 35/348 =$ ;$ :$ IONNL9>C( PPPMOPNMMK")C M)*$- %J#1 ( ') <+ ;+ ?0 )IHMNO6KI:*?&NJGC (P4K +!!.&, : <# 79 7$ 5$ 4# u_d./|@\w/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/all/packedpair/default_rank.rs JZrtZ:q"%^        !!!!!!!!""""Y,kYAZO2j/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/generic/memchr.rs X6Vl(0 _ FGKEIFF8NKNJ?)'J"LJ?$GIIG#DL+K!LKKIJIHLGKKFLKIHGLI@KLOHFCP(INNPNPO!  : N+H510)LIH OO<:EMINLN#KNOJP+'? NC= JKB$4@.@@@,,,,'''7/-;/-M/-M/8I0 OM#):?"% ONMH99;2 KIH OO<:EMINLN$KNOJP*'? I :3$6@0.@@@,,,,'''7/-M/-M/-M/87 +<%?" ;4 DOO<:EMINLN$P/'? JKFAB$4@.@@@,,,,66660 OM#):0C% F8CLNONGN*3,4!0 6MO N+HC## 6)7)NOH OO<:EMINLN#KNOJP+'? NC= JKB$4@.<----))'7D-;D8E0 OM#):?"% ONMH99;2 KIH OO<:EMINLN$KNOJP*'? I :3$6@0.<----))'7D-ID87 +<%?" ;4 CLNONGN*3,((+!((; 6MO N+H### 8)9)8)NOH OO<:EMINLN#KNOJP+'? NC= JKB$4@.<------)))''7$$-.-;$$-.8E0 OM#):?"% ONMH99;2 KIH OO<:EMINLN$KNOJP*'? I :3$6@0.<------)))''7$$-.-I$$-.87 +<%?" ;4 CLNONGN*3,(((3!(((E FAH",BHMMFNNL#J;3LP%EN%.8/&A1 >KM'MOLO$ MN75:#CBOLO$(0KM'$NOLO$ MO76:=?MCPMNLN!: NP,IPP#)' LOP L:!  MOP L:!  N8 L< !  {aOӄ8._un/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/generic/packedpair.rs !YJVdbFOJEI 1 ;LFKO?N2MNOP.) LMM6;G:M??2KJINPMMK5D# B'-2NLNNMN:% /3OB'*A-8$IMMKM@&: IPL*INPMMK)5D# '-2NLNNMF:% MMNPMF: OKN'MONN5MOA6699))='1'-B%= OKN'MOAP6699))/% %IL)KJ)5LLO# >N!LvzNv1nDj/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/aarch64/memchr.rs ;/1 G}+HL"R( 9:0MMB - /D!8 > 1! +? 2" ,? 1" /@ 2# 0? 3" 5@ 4# 6P 2  ,dj;̱h pMZ/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/ext.rs uV]w6ePW 49LD5'KOMP) :>E!88!&:H",oi(]/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/macros.rs *d- +N,$  336kYxRh@g/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/generic/mod.rs YUMQ-g;KLIJKO<N$]ZveIg/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/aarch64/mod.rs __m|XZ,ȴt/S zl/Users/thiago/.cargo/registry/src/index.crates.io-6f17d22bba15001f/memchr-2.7.1/src/arch/aarch64/neon/mod.rs PϯG5LapD NvT7J[˘f(|xyz~ɇT RTw"Bzc_ iaarch64-apple-darwin^#nJ: -9e426edd08692ba7jV(:ŊG$  1  2 - 1   ))  %%  % 2    !  %  %     % % 2  <       U ΍