rust 1#rustc 1.77.0 (aedd173a2 2024-03-17) $%E&[7-3ddcb355102b89e9nJnw~ $΁-03abccdd0084e3d9mJ9Ѷw"-3664e01417ecaa92rustc_std_workspace_core;Vh|-90da15eeee4377cd/]gH&{(/g-37ec58b44302b84ebI٣&R1á* -94bd947d28d71943 BR=/Ϟ1f-66b51c8161c08bcacfg_ifzm_/վӳx4-e044218e3f7f29aa miniz_oxideN{9V"րeXQ1-0f9240e3fb707edcadlerMQ8F Pxy-05cfdb8a83cd44fc hashbrown~VN|xtvm-6e5072e8ed4e8b29rustc_std_workspace_allocߜj~"-605810dd7baedec6 std_detectR};w֕v}|-6202b87ef6e88a55rustc_demangle8> ?-a6ec5e4ecbdc2061 addr2lineyCmM`[NyZ-cddcc0a6dcd1c090gimli-U*IY-f399506591a2c959objectBǾDF ?OI-48bd8f421a800ff6memchr*ܶ{vIh%-1451eb7b92c483c0u&ky,ÒmT:8-c3d6edb75b774aa6 p&$Zsx% -c11f690d897aee30 unicode_ident0vjiJw-da76dd8ac69a19ca%%ę%procmacro2_semver_exempt *|%wrap_proc_macro!%t%super_unstable %%C%K'''procmacro2_nightly_testing",<'  d''(|(proc_macro_span!('['c initializeT|no_is_available! LineColumnT,tspan_locationsdDt <fuzzingd!)<t < d!)t ,t <  get_cursorTt  SourceFileT?>>> ??? AĵAA CCtC C  ident_any ident_not_rawliteral_nocaptureliteral_suffixstring cooked_string raw_string byte_stringcooked_byte_stringdelimiter_of_raw_stringraw_byte_stringc_string raw_c_stringcooked_c_stringbyteO O  characterR R next_chbackslash_x_charVIbackslash_x_byteX)backslash_x_nonzeroZ) backslash_u\)trailing_backslash^  float_digitsa intdigitspunct punct_char doc_commentg#doc_comment_contentstake_until_newline_or_eofrcveckkkkkkRcVecqqinnerk RcVecBuildertt+kRcVecMutw#ww+k{{#{{{make_mut{get_mut{ make_ownedk with_capacitypushextendas_mutbuildk#--pop-kkIntoIterk size_hintk detectionWORKSINITinside_proc_macroforce_fallbackunforce_fallback fallback     forceunforcespan call_site# take_innerpush_token_from_proc_macropush_negative_literalTokenStreamBuilder+-push_token_from_parser-from_strBYTE_ORDER_MARK   ) ) -) -) TokenTreeIter.1 mixed_site resolved_at located_atjoin source_text first_byte last_bytedebug_span_field_if_nontrivial delimiterstream1 span_open span_closeset_span new_checkednew_raw_checkednew_raw_unchecked17is_ident_startis_ident_continuevalidate_ident ident_okvalidate_ident_rawsuffixed_numbersunsuffixed_numbers_newfrom_str_uncheckedf32_unsuffixedf64_unsuffixed&(byte_character'' 17subspanR3  escape_utf8 extra5openclose     LexErrorCompiler  Fallback   CompilerPanic mismatch# evaluate_nowinto_token_stream#unwrap_nightly unwrap_stable3proc_macro_parse  into_compiler_token) )   -) -)  1..1555 56?6771777?78817? :unsuffixed_integers!:::&(;''17;;?"#3$%     >+_marker: _new_fallback#<3 -)-) ) )    1 :H1555  5617:H77177 delim_span7as_charspacing17:new_raw17 !"#$%H&'suffixed_int_literalsunsuffixed_int_literals(:H: f64_suffixed: f32_suffixed&(;''17;;:)3 *+% ..ProcMacroAutoTraits  Cursor#rest#####k RcVecIntoIter+k+>1Span !"#$Group771%Ident 1?&Literal 1' u8_suffixed u16_suffixed u32_suffixed u64_suffixed u128_suffixedusize_suffixed i8_suffixed i16_suffixed i32_suffixed i64_suffixed i128_suffixedisize_suffixedON u8_unsuffixedu16_unsuffixedu32_unsuffixedu64_unsuffixedu128_unsuffixedusize_unsuffixed i8_unsuffixedi16_unsuffixedi32_unsuffixedi64_unsuffixedi128_unsuffixedisize_unsuffixed DelimSpan+G DelimSpanEnum>5==>  >  >  &DeferredTokenStream7<'5>  >  (S>  >  )*T>  >  +T>  >  ,T>  >  -UUUUUUVVVVVVONWWWWWXXXXXXY+G,S+G-. TokenTreeT  T  Punct  T  /T+0 Delimiter Parenthesis Brace Bracket  123456`chL17SpacingAlone Joint 89:;<=T+G>T+G?UUUUUUVVVVVVWWWWWXXXXXXY.+G%7&7&7'7(7*7+7,7-7.7/70707677797;7<7=7>7@7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7R7V7X7Z7\7^7^7`7a7c7d7e7f7g7i7j7}7~777777impl IntoIterator777h7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777Q  ƐzzzQQ3#QQ3#QQ3#QQ3#QQ3#}R+kĠsqq+s+k䇖Z}=tt+v+kʎ€}>}}+펈N>1ߏ~a~NN~N~~  ϡY~~T T ` T 9=~=~~=~=~~=~SȁȁȁȁȁNȁT771殝NNT 1?i}NNT 1РӟpaNNY+GÓ>5==> ڨԆN> > ˝Z7<КaN~====N> > >խe> NN> > ‘Y=>> > چۙ׉S+G˦S  žj׉ȁN׉> > ֽHNN> > Š}NN> > aNN+G1a====NNN>+G̼bNNT+䊃)T+GI`bL1씦ʜ T+GϽӌNNaaaʥל.NNNbb4NNN}ONNaNN.+GȳՉ>N= q qt=* >N  ?NFw==a**#O\ &&& %&phantom%&%ّ999Global ̫d   P z PhantomData˂ٷФ]_l!  (/*ERROR*/) !":$!% "(/*ERROR*/)"c c  t9G0bvIƠҮ\UP\ L 1x 11Once1+1تҞ$QT% $)$%& "\u{feff}"% $z/͠7>D #/ȁ7>D #/7>D #/~6=D #/7>D #/6=DK #/.  ͮcjDK #/R+kĠsahD` #׉/ފ7>Da #׉/ȁ7>D $0T  ű&biD $08?DѠ $0T  Ɯ-biD $08?D̷ $0T  —cjD $08?, $08?,Ǖ $08?, $08?< $08?k ,( T)YL,Q,"4- D-$-Kv,-NvN<-N$-OO4-O\.FromStr<.a,.k$. [![github]](https://github.com/dtolnay/proc-macro2) [![crates-io]](https://crates.io/crates/proc-macro2) [![docs-rs]](crate)g [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=githubjk [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rustnj [docs-rs]: https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rsm
DK A wrapper around the procedural macro API of the compiler's [`proc_macro`]N) crate. This library serves two purposes:,6 [`proc_macro`]: https://doc.rust-lang.org/proc_macro/9L - **Bring proc-macro-like functionality to other contexts like build.rs andOI main.rs.** Types from `proc_macro` are entirely specific to proceduralLF macros and cannot ever exist in code outside of a procedural macro.IM Meanwhile `proc_macro2` types may exist anywhere including non-macro code.PF By developing foundational libraries like [syn] and [quote] againstII `proc_macro2` rather than `proc_macro`, the procedural macro ecosystemLA becomes easily applicable to many other use cases and we avoidD; reimplementing non-macro equivalents of those libraries. > F - **Make procedural macros unit testable.** As a consequence of being IG specific to procedural macros, nothing that uses `proc_macro` can be JL executed from a unit test. In order for helper libraries or components of OF a macro to be testable in isolation, they must be implemented using I `proc_macro2`.  & [syn]: https://github.com/dtolnay/syn )* [quote]: https://github.com/dtolnay/quote -  # Usage\  F The skeleton of a typical procedural macro typically looks like this: I  ```<  extern crate proc_macro;$ # const IGNORE: &str = stringify! {' #[proc_macro_derive(MyDerive)]" # };D # #[cfg(wrap_proc_macro)]N pub fn my_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream {Q7 let input = proc_macro2::TokenStream::from(input);:- let output: proc_macro2::TokenStream = {0 /* transform input */! # input };T* proc_macro::TokenStream::from(output)- },<D If parsing with [Syn], you'll use [`parse_macro_input!`] instead toGJ propagate parse errors correctly back to the compiler when parsing fails.MQ [`parse_macro_input!`]: https://docs.rs/syn/2.0/syn/macro.parse_macro_input.htmlT # Unstable featuresE The default feature set of proc-macro2 tracks the most recent stableHJ compiler API. Functionality in `proc_macro` that is not yet stable is notM# exposed by proc-macro2 by default.&E To opt into the additional APIs available in the most recent nightlyHG compiler, the `procmacro2_semver_exempt` config flag must be passed toJH rustc. We will polyfill those nightly-only APIs back to Rust 1.56.0. AsKK these are unstable APIs that track the nightly compiler, minor versions ofN; proc-macro2 may make breaking changes to them at any time.> ```shL7 RUSTFLAGS='--cfg procmacro2_semver_exempt' cargo build:<L Note that this must not only be done for your crate, but for any crate thatOK depends on your crate. This infectious nature is intentional, as it servesND as a reminder that you are outside of the normal semver guarantees.GK Semver exempt methods are marked as such in the proc-macro2 documentation.N # Thread-SafetyE Most types in this crate are `!Sync` because the underlying compilerHL types make use of thread-local memory, meaning they cannot be accessed fromO a different thread.   l "https://docs.rs/proc-macro2/1.0.81$=k %% %Y%Q$"$ $$Kv$Nv%N$N$O%O$O$$a$k$'''(')'T)4) &۟\%۟ RefUnwindSafelD UnwindSafeTS lvh6(>@%',4z'z*zL),)1236789:;<=>@ABCDEFGHIJKLMNORVXZ\^`acdefgij0$8! 8t4 T,D>DKT,?D@>????>?   QQ3A4LA7QQ37  م74A @,AF0lF7QQ37  م7 74G A,GJ8Ǒ>ߔБ V$,:<ђfԒ7 7)YY  䚓> X$,24Ɣkɔ7 7)[[  ݔ Z$,')e\7 7  م7)]]   \$,')M77 7QQ37 ڜ ^,Ӝlast$D^____^_ 1,7QQ37  م74 `,8d7QQ37  م74 a,,abbbbab  /7QQ37  م7ߥ4 c,647QQ37  م74 d,),7QQ37  م74 e,-T7QQ37  م74 f,X\h#7QQ3h# 72+ŪעԮ  م7 g,trees,"$?7QQ37  م7 74 i,=̠7QQ37ܯ 74 j,L),)qtw&kl 1km kmmem- knlCko ,\PkplpTcL'B64\V&d,vrr} |}䇖Zs,kqq&&& %&%&%ّ666buf161鈲/}!duu ~ʎ€vl,ktt!D#xyxy x#ww,z+kȾǶyx#ȾǶyzce`,kww x#666161鈲/|| }}~D7 7}{ { }}$7 7}{ { ~}$$$7 7}TTIterT TT end_or_lenTTGTپ7}{ { }$ED7 7}ww,z+kȾǶy7}{ {}, }$0<7 7} ʁʺww,z+kȾǶy7}{ { }$JT}~{{, }$  ~  ~ } (l ~ }cap  "$ 7 7~}  }$ element<  ;4 7 7~hh ܓ = =}D  }$ $  '4 7 7~ww,z+kȾǶy7}  }$  , ~} }$ # ww,z+kȾǶy#EG"$7 7  #$<;47 7hh ==D #$$"7 7 ʁʺ  #$'47 7ww,z+kȾǶy7  #$ } ,7 7}}  }$( ~ L$}lD}$L~~= }$% } L$}($7 7} ʁʺ}>  }$-L7 7} ʁʺ  }$9 }l}l)). ) )  |))L)b\D&ٚ$@1+CE24|5#G,Nۢx$٣) t   |/       |T +*/ * + 4*t*D+"$KQ4Q+,mq+dttRl,DwaLb<`L$Kv,NvN<NWrite,M ManuallyDropd\  $^<ak$<,C^<&(LԤttL Force use of proc-macro2's fallback implementation of the API for now, evenO/ if the compiler's implementation is available.2, J Resume using the compiler's implementation of the proc macro API if it isM available.t< l  !$ 7 7ȁ  $  !L   ~  ~  D 7 7~  $  .T ~tt+v+kʎ€ $  M 7ww,z+kȾǶy7   token,L7ww,z+kȾǶy7   ≮~$7 7~  $$ŪעԮ, (l 77 7  $ !,~ $"""2 " " " " "  t"܉"T"7 7QQ37 " src""~D###7D#7 7 # #$|$&&4&777 7 7MMMflagsKMfillKMKNwidthKN precisionKNKޣZ7  م7  & $& &'~(4(777 7~ 7MMMKMKMKNKNKNKޣZ7 ( $( (ԣ-~-4-777 7~ 7MMMKMKMKNKNKNKޣZ7 - $- -.2.5 . . <. . d..~//$/~ +,/1205 0 1 <0 0 d001#$1~ +,12$~3 $3~ tree$34,~5BL5~) 5=5=5 tokens45=?6.~6EL6~) 77 =~7 streams<7688&~9B497 7~) 9 999 $949+-<:  ww,z+kȾǶy;(~;E4;7 7~) ; ;; ; $;<;,.<l<Щ=!~L=$=l=D=Щ=#L=~Щ $>LnȁԺnn7 n n n n n  tnܚnLnȁ oToȁ p/\q7 7ȁȁȁ q $q_other4qs-Ts7 7ȁȁȁ s $s,s0~7 ~  ~ ~   t~~$7 7ȁȁ ʁʺȁ  $4܄+ 8  Մ „ ń Ԅ  tƄܼ\7 7ȁ ʁʺ;;; +ͤL  $& 8       tܕTÈȁȁ $ΈՊ% 8  Ί   ͊  tܵLȁȁ $ȁ׍4ڍ777 7ȁ 7MMMKMKMKNKNKNKޣZ7 ލ $ߍ V777 7KKwKKK KK has_fieldsK877ȁ  ,ߏ1$T=ƒ~ 7Lʒ74$L7 7  $#4Ĕ7 7~ ˔ $̔Ԋ$7 7ȁ  $ĕL˕7 7ȁ Օ $֕ T7 7ȁ  $ܖ&D7 7ȁ  $1$4777 7 7MMMKMKMKNKNKNKޣZ7  $ ŝ6777 7 7MMMKMKMKNKNKNKޣZ7  $T4d  :|\7 7ȁ  &41$6l7 7ȁ  &41$ۣ8dɣ  ;|ǣ|7 7ȁ  &41$:7 7ȁ  &41$ԣ$7 7ȁ  $ݦ&D7 7ȁ  $1$-t  Ƨ0  d  <|t7 7  &4< !D7 7  &4Ʈ#d  =|ɮ7 7  &4ܮķְ#ٰ77 7 7 ܰ $ݰ,@}T 77 7 7}  }$,߳4777 7 7MMMKMKMKNKNKNKޣZ7  $ ɵ4 >       t܍777 7 7MMMKMKMKNKNKNKޣZ7  $ 챻 ϻ  ջ  ֻ ׻   ػ $ٻ ݻ ,޻  $  ,             $   n    $ T<   T< :$ ü  4ļ ʼ ˼  4̼ Ҽ Ӽ {}$Լ ؼ  Lڼ     $  ŝ       ͽ   ˽   $  ,  $ Ľ ,Ž ʽ  ̽Ͻ ҽ  ӽ Խ  ޽    $   ŝ    $ T<   T< :$   ŝ    L    dӾ($  $ܿ;7 7   $(t  (t  &47 7  &4%L b*t ($+\7 7  $,)D7 7k+&䛝  &4\  Ը$7 7ȁ  $&D7 7ȁ  $1$F<7 7;;   $range,68čD2D7 7  م7a   $$ 4777 7 7MMMKMKMKNKNKNKޣZ7  $ 6777 7 7MMMKMKMKNKNKNKޣZ7  $/\77 7 7  &4 $4l+M Items which do not have a correspondence to any API in the proc_macro crate,P- but are necessary to include in proc-macro2.Q0,+0DQ"4 S$$Kv,NvN|T,~\sgY[t-7 7  group,4 Returns a span covering the entire delimited group.7$7 7  $ԟ"> Returns a span for the opening punctuation of the group only.!A$"7 7 " $"܈%> Returns a span for the closing punctuation of the group only.$A,%7 7 % $%ī''4'777 7 7MMMKMKMKNKNKNKޣZ7 ' $' '<,$+H + wrapper.rsd+++H + ,  |,+,/ 0DmaLw`,b<`L$Kv,NvN<N\<ak$,% #e7!tTĤDխe    l ܣ D  $   /  74 ԝ D 7 7  $  d7 7  $9 $ D7 7  $2t $/l~ $D7D7 7  م7  K7 7  م7    Box  lܼȹ4777 7 7MMMKMKMKNKNKNKޣZ7  $ 2 /$  +, !2!#$! +,!#0#-$#~ +,$$A$T T ` T ׌{ ,%*$*!$* ,*,,,AL-) --- Ԭ,-%'/.0EL0) 00 =0 <0132 4 ~7&7B477 7) 7 777 $7747*,:(:E4;7 7) ; ;; ; $;<;,.>>4>777 7 7MMMKMKMKNKNKNKޣZ7 > $> >l@@!$A 7  7׉ A $AB,C($C  CC*D&$D  DDD4D 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7 D $D EGH4H 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7 H $H HL!LL$LlLDLL#LL $LOLO$OO'$O 7  7 ʁʺ O $OW-LW 7  7 W $WLa׉ԺaLa׉ ܐcTc׉ f.\f 7  7׉׉׉ f $f,fi-Tj 7  7׉׉׉ j $j,jm'4m׉ފ $mv/$v 7  7׉׉ ʁʺ׉ v $v,w{+\{ 7  7׉ { ${~+t~׉ފ $~+,$ފ  proc_spanLހ"׉&$ȁ׉ +,ׁ׉4 7 7 7  7׉  7MMMKMKMKNKNKNKޣZ 7  $ Vă 7 7 7  7KKwKKK KKȁK8 7 7׉  ,1$Tņ=̆ 7LІ74$L 7  7 Ɍ $ʌ#4 7  7  $ԋ$ 7  7׉  $ʓLѓ 7  7׉ ۓ $ܓ T 7  7׉  $&D 7  7׉  $1$,tӫ $$#$Û g ț< 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7  $ formatterL< 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7  $LÞT4d  ]|\ 7  7׉ С &4ȡ1$֡ƣ@lͣ 7  7ȁ  &4ۣ1$8dܤ  ^|ڤ| 7  7׉  &41$D 7  7ȁ  &41$ԧ$ 7  7׉  $&D 7  7׉  $1$,t $Ē# 7 7  7  7  $,@֖T  7 7  7  7}  }$,ӳ4 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7  $ ֵ4ٵ 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7 ݵ $޵ 쏸    Ӹ   Ѹ   $  ,¸ Ÿ $Ƹ ʸ ,˸ и  Ҹո ظ  ٸ ڸ ޺     $   ŝ    $ T<  غ  /     T<Ĺ >Dƹ ι   TϹٹ T<۹  $   ŝ   $  κ T< >D   0D T<  $   ŝ   ߺ           $  ,  $  ,            Ļ $Ż ɻ һ ŝ ʻ ˻ ͻ $λԻ T<׻ ߻   /    Ӽ T< >D  ż  T T<  $ ¼ ļ ŝ ü  $ռ ڼ  T< >D   0D T<  $   ŝ   dѽ4߽ 7  7   $(t  (t  &4 7  7  &4%L b*t ($+\ 7  7  $,)D 7  7  &4ԃ$ 7  7׉  $&D 7  7׉  $1$F< 7  7; ݭ  $,').tˮ $(%$  ĖD2D 7  7  م7a   $ĝ4 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7  $ 4 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7  $ ,α,,--!-ֲֲ-...Գt.4- Error returned from `TokenStream::from_str`.30D4̼b4,44<4z45($5 +,566l6~ +,67: Returns an empty `TokenStream` containing no token trees.7=7 8' Checks if this `TokenStream` is empty.8*D9 7  7 9 $9:2 `TokenStream::default()` returns an empty stream,953 i.e. this is equivalent with `TokenStream::new()`.96:<: >M Attempts to break the string into tokens and parse those tokens into a token;P stream.\;;F May fail for a number of reasons, for example, if the string contains;IB unbalanced delimiters or characters not existing in the language.>>7D> 7  7  م7 > >? @2@i @ @ <@ @ d@@A/$A +,AB2Bi B B  Span {  ^^^^^^^<ټ$ 7  7  $B Returns the span pointing to the opening delimiter of this group.E\" pub fn span_open(&self) -> Span {% ^<پL 7  7  $ B Returns the span pointing to the closing delimiter of this group.E\# pub fn span_close(&self) -> Span {& ^<T 7  7  $%< Returns an object that holds this group's `span_open()` and?G `span_close()` together (in a more compact representation than holdingJ those 2 spans individually). T 7  7  $&H Configures the span for this `Group`'s delimiters, but not its internalK tokens.\I This method will **not** set the span of all the internal tokens spannedLE by this group, but rather it will only set the span of the delimiterH$ tokens at the level of the `Group`.'D 7  7  $1$H Prints the group as a string that should be losslessly convertible backKL into the same group (modulo spans), except for possibly `TokenTree::Group`sO# with `Delimiter::None` delimiters.&< 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7  $L< 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7  $LT.< Creates a new `Punct` from the given character and spacing.?I The `ch` argument must be a valid punctuation character permitted by theL- language, otherwise the function will panic.0G The returned `Punct` will have the default span of `Span::call_site()`JB which can be further configured with the `set_span` method below.E bL<; Returns the value of this punctuation character as `char`.>< 7  7  $ F Returns the spacing of this punctuation character, indicating whetherIE it's immediately followed by another `Punct` in the token stream, soH@ they can potentially be combined into a multicharacter operatorCH (`Joint`), or it's followed by some other token or whitespace (`Alone`)K% so the operator has certainly ended.(< 7  7  $ԥ1 Returns the span for this punctuation character.4$ 7  7  $&3 Configure the span for this punctuation character.6D 7  7  $1$G Prints the punctuation character as a string that should be losslesslyJ* convertible back into the same character.-4 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7  $ 6 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7  $T"$ +,,G Creates a new `Ident` with the given `string` as well as the specifiedJ `span`.\B The `string` argument must be a valid identifier permitted by theE0I Note that `span`, currently in rustc, configures the hygiene informationL for this identifier.ĚF As of this time `Span::call_site()` explicitly opts-in to "call-site"II hygiene meaning that identifiers created with this span will be resolvedLH as if they were written directly at the location of the macro call, andKL< Later spans like `Span::def_site()` will allow to opt-in to?E "definition-site" hygiene meaning that identifiers created with thisHH span will be resolved at the location of the macro definition and otherK? code at the macro call site will not be able to refer to them.BH Due to the current importance of hygiene this constructor, unlike otherK; tokens, requires a `Span` to be specified at construction.>dE Panics if the input string is neither a keyword nor a legal variableHH name. If you are not sure whether the string contains an identifier andK" need to handle an error case, use%> syn::parse_str::<Ident>4 rather than `Ident::new`.d  t| 7  7  &41$0D Same as `Ident::new`, but creates a raw identifier (`r#ident`). TheGG `string` argument must be a valid identifier permitted by the languageJC (including keywords, e.g. `fn`). Keywords which are usable in pathFD segments (e.g. `self`, `super`) are not supported, and will cause aG panic.Tցd  t|< 7  7  &41$Ԧ" Returns the span of this `Ident`.%$ 7  7  $Є&C Configures the span of this `Ident`, possibly changing its hygieneF context.dDׄ 7  7  $1$īʅ#ͅ 7 7  7  7 Ѕ $х,ׅ@֖TІ  7 7  7  7}  }$,̿߇8\ 7 7  7  7 ʁʺLessGreaterׇϧ  $,ڈ(݈ 7 7  7  7  $,ى)$܉ 7 7  7  7NN  O4 $hasher446M Prints the identifier as a string that should be losslessly convertible backP into the same identifier.솋4ċ 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7 ȋ $ɋ ϋ4Č 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7 Ȍ $Ɍ ό" Ӑ  ِ  ڐ ې   ܐ $ݐ  ,  $  ,        #A Creates a new suffixed integer literal with the specified value.D#ב#C This function will create an integer like `1u32` where the integerF#C value specified is the first part of the token and the integral isF#E also suffixed at the end. Literals created from negative numbers mayH#C not survive roundtrips through `TokenStream` or strings and may beғF#3 broken into two tokens (`-` and positive literal).6##B Literals created through this method have the `Span::call_site()`E#D span by default, which can be configured with the `set_span` methodG# below.T     $   ŝ    $ T<   T<͖Ԗ :$֖ ږ  ۖޖ T<  $   ŝ   $  ٞ  ӗ   ї   $  ,— ŗ $Ɨ ʗ ,˗ З  җ՗ ؗ מ ٗ ڗ ՞#C Creates a new unsuffixed integer literal with the specified value.F##@ This function will create an integer like `1` where the integerC#= value specified is the first part of the token. No suffix is@#7 specified on this token, meaning that invocations likeԙ:#. `Literal::i8_unsuffixed(1)` are equivalent to1#E `Literal::u32_unsuffixed(1)`. Literals created from negative numbersњH#D may not survive roundtrips through `TokenStream` or strings and mayG#6 be broken into two tokens (`-` and positive literal).9##E#G#ʿTޝ     $   ŝ    $ T<  Ϟ T< :$  Ş  T<  $ ž Ğ ŝ Þ  ֞dܞ$$ +,2l +,(1 Creates a new unsuffixed floating-point literal.4I This constructor is similar to those like `Literal::i8_unsuffixed` whereLF the float's value is emitted directly into the token but no suffix isèIA used, so it may be inferred to be a `f64` later in the compiler.DC Literals created from negative numbers may not survive round-tripsکFH through `TokenStream` or strings and may be broken into two tokens (`-`K and positive literal).dG This function requires that the specified float is finite, for exampleJ3 if it is infinity or NaN this function will panic.6tƬ  լ&/ Creates a new suffixed floating-point literal.̭2E This constructor will create a literal like `1.0f64` where the valueHH specified is the preceding part of the token and `f64` is the suffix ofخKD the token. This token will always be inferred to be an `f64` in theGA compiler. Literals created from negative numbers may not surviveDH round-trips through `TokenStream` or strings and may be broken into twoK# tokens (`-` and positive literal).&dѱٱJ6d  (4LI̵DFK԰Ϸd׷J6t  &2E This constructor will create a literal like `1.0f32` where the valueƺHH specified is the preceding part of the token and `f32` is the suffix ofKD the token. This token will always be inferred to be an `f32` in theGDKȽ&dJ6d  & String literal.4 7  7  &4% Character literal.L b* Byte character literal.ܨt ($+ Byte string literal.ĺ\ 7  7  $,) C string literal.D 7  7  &4ԃ, Returns the span encompassing this literal./$ 7  7  $&1 Configures the span associated for this literal.4D 7  7  $1$FC Returns a `Span` that is a subset of `self.span()` containing onlyFB the source bytes in range `range`. Returns `None` if the would-beE. trimmed span is outside the bounds of `self`.1C Warning: the underlying [`proc_macro::Literal::subspan`] method isFH<j [`proc_macro::Literal::subspan`]: https://doc.rust-lang.org/proc_macro/struct.Literal.html#method.subspanm< 7  7; ݭ  $,')4 y   4t 7  7   $D1D 7  7  م7   $<4 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7  $ 4 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7  $ M Public implementation details for the `TokenStream` type, such as iterators.PdQ"4 `L$Kv,NvN\,ĞqsQԪL$'$ 7  7  $-L 7  7  $4 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7  $ !L$lDL $zƐ͠z9͠z ͠  {Rz( {Sz*, 7  7zz ,4#QQ3#3$ #  {T#{^`( {U#{=? 7  7{{ #, |V#|=@F|MO Y_bh|oq { 7  7| #H |W#|;>D|NW#}uw 7 7  7}  7} #L" l }Ġs,k33.313131313 131⏎6}(  X@}VX 7  7}}  }, \~펈,qq+s+k䇖Z(! Y~*, 7  7~~! ,Ԅ  D ߏ $ ȁ(" Z*, 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7" ,m$mȁ(%l \ȁ,. 7  7ȁȁ%l ,l &l ]ȁH'l ^ȁ*-3>^ȁSU 7 7  7ȁ  7ȁ'l Ll(m Ҁ_ȁ,/5ۀ=? IORX܀`b lrt 7  7ȁ(m mΑ,殝L4~T$ȁ(,Ƒ a-/ 7  7,Ƒ ,Ƒ,i\Tˠ$ˠȁL۠۠(- b-/ 7  7- ,<Рӟp$T$ȁ(@ݺ k-/ 7  7@ݺ ,ݺA!\ ŝACd ŝ>}d ŝxd ŝl ŝt ŝ\ ŝd ŝd ŝd ŝl ŝt ŝd ŝd ŝz޽!l ŝzCt ŝ>}t ŝxt ŝ| ŝ ŝl ŝt ŝt ŝt ŝ| ŝ ŝM An object that holds a [`Group`]'s `span_open()` and `span_close()` togetherPJ in a more compact representation than holding those 2 spans individually.M [`Group`]: crate::Groupܲ LÓ,<z  ҇( ڇ.0 7  7 ,!lڨԆȁD    |!3$ފ$ފ,ފä!ä ääȁ tȁ  ( .0 7  7 ,܋"\˝~"  ӥ"ӥ ӥӥ~ ~( .0 7  7 ,%#К4!,666161鈲/( .0 7  7 ,K)lK‘YܨЩ) ܨ K"ܨ) Щ KЩ(J .0 7  7J ,J`*$`׉چۙފ׉ȁ׉* ފ׉ `ފש*ש ששȁ׉ taȁ ` ׉(` Ċ׉.0 7  7׉׉` ,`م1,ֽHӫ1 ӫ ӫ1  |(х/1 7  7х ,х5,ŠŠ۫5۫ ۫۫ ڠά5ά άά |(Ӌ/1 7  7 ,;<ˮ; ˮ շˮ;  (/1 7  7 ,!\ ŝEd ŝ?d ŝyd ŝl ŝt ŝ\ ŝd ŝd ŝd ŝl ŝt ŝd ŝd ŝ!l ŝʻEt ŝ?t ŝyt ŝ| ŝ ŝl ŝt ŝt ŝt ŝ| ŝ ŝ3L An abstract stream of tokens, or more concretely a sequence of token trees.0O0E This type provides interfaces for iterating over token trees and for1H( collecting token trees into one stream.1+1> Token stream is both the input and output of `#[proc_macro]`,1AB `#[proc_macro_attribute]` and `#[proc_macro_derive]` definitions.2EA\313,33<3z(3 .0 7  73 ,3|_A A region of source code, along with macro expansion information._DB$`˦`,`׉`<`z _ (_ .0 7  7_ ,_̔L A single token or a delimited sequence of token trees (e.g. `[1, (), ..]`).OCLՔ9Ԯ1 A token stream surrounded by bracket delimiters.4CԮ ԮԮ , An identifier.C  ,͕6 A single punctuation character (`+`, `,`, `$`, etc.).ٕ9C  ,F A literal character (`'a'`), string (`"hello"`), number (`2.3`), etc.IC  <(Ĕ/1 7  7Ĕ ,Ĕʭ A delimited token stream.켬ڬE A `Group` internally contains a `TokenStream` which is surrounded byެH `Delimiter`s.E,խ䊃),(­Ȗ/1 7  7­ ,­ޮ6 Describes how a sequence of token trees is delimited.9FLʥל.\ `( ... )`lF13, `{ ... }`lF13<ɯ `[ ... ]`lF13$ `∅ ... ∅`֯D An invisible delimiter, that may, for example, appear around tokensGC coming from a "macro variable" `$var`. It is important to preserveFF operator priorities in cases like `$var * 3` where `$var` is `1 + 2`.II Invisible delimiters may not survive roundtrip of a token stream throughٱL a string.lF (/1 7  7 ,(Ǯ/1 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7Ǯ ,ǮήǗ/28З@B LRU[їce ouw 7  7ή ήHҮٗ-06AWY 7 7  7  7Ү LҮB A `Punct` is a single punctuation character like `+`, `-` or `#`.EG Multicharacter operators like `+=` are represented as two instances ofJ4 `Punct` with different forms of `Spacing` returned.7G,씦ʜ D<T$(/1 7  7 ,L Whether a `Punct` is followed immediately by another `Punct` or followed byO another token or whitespace. H<4,1 E.g. `+` is `Alone` in `+ =`, `+ident` or `+()`.4HDY[,7 E.g. `+` is `Joint` in `+=` or `'` is `Joint` in `'#`.:A Additionally, single quote `'` can join with identifiers to formD lifetimes `'ident`.H ՘(ݘ/1 7  7 ,(/1 7 7 7  7  7MMMKMKMKNKNKNKޣZ 7 ,/28@B LRU[ce ouw 7  7 H-06AWY 7 7  7  7 LD A word of Rust code, which may be a keyword or legal variable name.GH An identifier consists of at least one Unicode code point, the first ofKM which has the XID_Start property and the rest of which have the XID_ContinueP property.l> - The empty string is not an identifier. Use `Option`.A@ - A lifetime is not an identifier. Use `syn::Lifetime` instead.CF An identifier constructed with `Ident::new` is permitted to be a RustII keyword, though parsing one through its [`Parse`] implementation rejectsLL Rust keywords. Use `input.call(Ident::parse_any)` when parsing to match theO behaviour of `Ident::new`.> [`Parse`]: https://docs.rs/syn/2.0/syn/parse/trait.Parse.htmlA # ExamplestJ A new ident can be created from a string using the `Ident::new` function.ME A span must be provided explicitly which governs the name resolutionH& behavior of the resulting identifier.)< use proc_macro2::{Ident, Span};# fn main() {|C let call_ident = Ident::new("calligraphy", Span::call_site());F println!("{}", call_ident);#,<K An ident can be interpolated into a token stream using the `quote!` macro.N<# use quote::quote;|7 let ident = Ident::new("demo", Span::call_site());:; // Create a variable binding whose name is this ident.>0 let expanded = quote! { let #ident = 10; };3A // Create a variable binding with a slightly different name.DO let temp_ident = Ident::new(&format!("new_{}", ident), Span::call_site());R5 let expanded = quote! { let #temp_ident = 10; };8,<L A string representation of the ident is available through the `to_string()`O method.\<" # use proc_macro2::{Ident, Span};% #,C # let ident = Ident::new("another_identifier", Span::call_site());F," // Examine the ident as a string.%& let ident_string = ident.to_string();) if ident_string.len() > 60 { 7 println!("Very long identifier: {}", ident_string):,<I,I,<z(/1 7  7 ,ݏK A literal string (`"hello"`), byte string (`b"hello"`), character (`'a'`),NM byte character (`b'a'`), an integer or floating point number with or withoutP( a suffix (`1`, `1u8`, `2.3`, `2.3f32`).Ď+F Boolean literals like `true` and `false` do not belong here, they areI `Ident`s.lJ<Ͻӌ,䏐<z(Տ/1 7  7Տ ,Տ!DבFFHғF۽6EGʿP\ ŝ۽ʿdá ŝ۽ʿd ŝ۽ʿd ŝ۽ʿl ŝ۽ʿt ŝ۽ʿ\ڢ ŝ       ۽    ʿ d ŝ        ۽    ʿ d ŝ        ۽    ʿ d ŝ        ۽    ʿ ḷ ŝ ۽ʿt ŝ!FC@ԙ:1њHG9EGʿPޝl ŝʿtϤ ŝʿt ŝʿt ŝʿ| ŝʿͥ ŝ        ʿl ŝ             ʿ t ŝ              ʿ t ŝ              ʿ t˦ ŝ ʿ| ŝʿ ŝ/ An iterator over `TokenStream`'s `TokenTree`s.2C The iteration is "shallow", e.g. the iterator doesn't recurse intoF; delimited groups, and returns whole groups as token trees.>QDȳՉ,<z(/1 7  7 ,  ȈƋĎќߟ4ߜʣ ܾ &L' (L( -L-ǀ L\؃ۅ L Lڎ Ж Θ L Lȶ¨ĩݫѬɱ Lij L ̼ 'L' L >L? ELE HLH L\ Lʜ ΞL؞ Ů  L Lʪ L LՑʇ MLM OLOӄ QLQ RLR L L L Lſ Lú L L̞Ɲ ޅ     ҋL܋ ҌL܌ L L LΘݑ}zrogeegdbb^YWWYUTT>:#{Ehttps://github.com/dtolnay/synproc_macro::Literal8https://docs.rs/syn/2.0/syn/macro.parse_macro_input.html5https://doc.rust-lang.org/proc_macro/struct.Span.html8https://doc.rust-lang.org/proc_macro/struct.Literal.htmlgithubsyn crates-io https://github.com/dtolnay/quoteproc_macro::Literal::subspan&https://github.com/dtolnay/proc-macro2%https://doc.rust-lang.org/proc_macro/  proc_macro::Span::join$https://crates.io/crates/proc-macro2Synproc_macro::SpanParseparse_macro_input!docs-rs 2https://docs.rs/syn/2.0/syn/parse/trait.Parse.html     T crate::GroupTTNNOOa=>>==>-N=>>==>-XeWvtu(=S'HS”f a5^1!> xuE|O%1Ꚁ AdPI%!AY{znW&Xqٱ 1=@gWe I DKe$RdjXIJ^=ȘV0&UbFLNl\vע[e#z0ª+Մѫ>h>5 [s"eׯ"ہL$l:F{s6-!0AON?Gى B "DAhz]n[[z3G׋cb7~)I`F۸i_X=)ב$=oRZC[cH!z#`K="Wp/ƨI6˿g2!ε6~Y8A_H'>K BY+=;4&k r[:i-#3|^FmO^+&J?9mbvh[gj.,4s!^*OR #`a-n v$RV:*q ~JuxYzOGح(Njn_u”յ :$6Ĕ )Pb 'og/P[#S4^Z8\fteczO7Wc\ީtg \3dzC[W)(#k>֬TM?D]/Ā#cd:c_vmul>z4sWf]Df.U֒n~vH6QV#-6%, PqXgit %[o LbcdzDRlꍱ$@4h<1gQ Ɵi,Ļ?| }g A[Gj*?Nh;Ip*+pZ Zz} h Ny}|9.! Q5~Q{ ۦ@Eb+69xbBw=h]%W:l]9℟'@Uya'1H^ P#%i<Ǹ' O!OxݘڌmU^xU ᠞a{St3KbP['' 2S3 ݼN:oԥż7[,FM0X.JMu`)[|ƙ4 `7ȗ#{';Uv4ZlW - э_s+|mL(aQwZ3Qwq؛PbR:v}8Wk{*E~UMcqA%c0uW66*ƯzJp$tuzD]iN{s<9nET6c9۸4-sм!E+-3HW G~G'[67.E[% *gsBo.׿:> =d„djA[ >d/-Y..]SgXj\e>x c ! 쫚B,YʤTHn]em9-_l<]&'V5Y1Wz^wm0L~Ҩ'/фR0/6=ӊb. |InA*{1 $"!u+=(ŵ5tSsKvLCpo\t 5\O&p&<ȸ4aNR-5#WGD؜F[PgN{1")M`T긴덷|)9jy6VoAH*=sw (T IGO# ^$TPץ,{~vƷPw!B ̡-`N}aZ:([웨_'nc.c^/b=֟ޮakϣxR2I*.l:rS9qmT婓n)V\j"إ՛S/sMg`OM!L+jp%_K!u 㧩**.ѱ(+ƫ"aXwQ 248s՝VZ ~ɪtDxɲ浌3E2]3=swZEjYdn+\;ic9y{3/FceUZvk79vdcKmZ :kJ&GfEOx qAnĬG: .1҃@2jE1zq#TPfU>Ha@nL2!+LY2O[O@23܈9(F.[vt$=5|8@{ rd9_G*k  w2fASi{#;9b Y l*g}j(?L}{ǢWl1be|~R6\`8w|MĖ-dȤ;|os*"ǜ#y.l E}ԉȨ,o`Spk̝m]n>O:cA 7Q *{K;3]{99-cԈr2H !FDw #h C2aJ z$$̄{XF uՔGCzM*H<5 җ!H'[(=}7ڔc$#54HNyHj ewfxZΩ ,VeZnl " Sv%P0:]uHXqpgФsh@"-zV^6Q^}iԀ9WS,ٺFz \׬Xl) I( t 2hk IכxHu֟}_#GHn-'曕10 Dk*(x[:R @t [kaVSxW)3b@Smg:d(VHWC*9K ;;"?'A5s<|FTE8̜˼=x[6R ~Z?ۜ; čYp䤯Ԡ@Ⱦ.v-BXv&V`Ġ@NZ mI=4(ݑ=J0}2ZV2L\ ڿ|?CDT>շ\dlb';x)lNˣ*$HJW3,xܓ&zawAb=\^P6< nTt1N 7=#lcaN˕YnsPM%) 63qVr)Үףj1ǯa1tAKV*lOa0DH èUUt.Her)&\.sàIBf͋ku4&g?Er_/cBQwWF˝AF\R Ex_aw> Ǫs>y9M==;m|w"wI J eT Uvy{"*}Q$$AboUvAh ߸U8AUm#Y0|eՉ:„wYl&Nw̮ȷ{~ |UPR= 8]|/@Rʼ&*ꄺ 1Uuo qkE}Y0J=}Am)x_U Kv{{4O:wVov Yܙ5x7"7OuPpM\Үx0KYent!:HۣU1wGg; 5CfҲջy0 C3Ԑt{df4zCQ6 SUNj<Ǫ?}Zr|;;G``7^R;VUQZ[y^ď7^na5m"F͉!y0x(r!1<,:_/[e~Z<4{|[A#Ny}s3ߎB;}{f,:+ ]!ݚT\ R]Jx D1?hd镸aEK0: PH`¡L-S'Td@Lm)1dލeĴ#ZX_sׂpA 7"QFZC>n= o5o"6%p> (vA\]eRIBf;ɪ{bx&bH}ˏ|@<#Mug&4k kƟG+sO\_T%& ky:bil v aBQ ۾-/I]=se7脓SR #_^3ɺ rT[6-027nLLH#~U[1ƐyU/l︗Ir:!ԂԾM65" W[}ȪWMbՁN쁶|$HWKfh&WZ)zI (}yqs-}J% wZd( wJ E ǜ0H-9.e+K}آ^KWc'-X/JmyL6pkGQܿ] My.襫#2gHgZ,V(u0j@#e##j[#C!o5a*׹`, 3zU-L,k UJ x4'Sh 2d-2" puԮnT#M+e^_yzu_ u5 SB1 ]^q iXTw(> 9\'{8Jy!K gql5 §9 GV4#_GzSv!OQbA;`TQvWJa{jڽ>1^%g8-3<Ϩ]R7^L r.aZoP@E!gJW b۰qVmXaxR]ѥګ>1OA%Cf%T!$d\<0FT<:+ iCC/H(\"ID]}q㝟wȩYG] agx,R䀚h3[!VGUȇ8u)X ty5}p[*vT賂# mW k= zy0Qz R~rHjVՍbJ#zddT6; =u3" %SkMTzAD\uU=$t.ycټ_r?,3(٣Vr$9Qu, #Zs1Z&p/+(e ,j cj']j\3IӢ de{/)_-c:e P;BƧGSug K-q ТؑYh?JJ)}P7W~夎]<Γ(-L}uڼ Jnʸ嚬=IH(Osym 2Rh1MJ ^CiwST31gd!4,!@x}cf}[Z$tuwJcu#kLnG^^!;cz/x=WEہ?pb2K5A-@y^QZ=HՉQM(j P_y z65)d̻l/6QrY5CYlOX'*A{gBGcFT=$o=I2HzFcr-|ɦ-_sn_Kcrw|E58sNl~y(^OUpdu8_Hmht/:ǔ&?{X"hnpN-Z6dw?;_wqK{EǢܯ͍k/3U& eVVLKxY@ɏ._ORNLB.)A?9SQد(Q^ȣ?ϐ=(Kk{Q ^&^ܽB83olV[-Ls)kg$ip$x!j }[oͺҡdz:: kư (D\ e͍4ͿٟCNfO-í@9LpKdh|~[MTޯq Rբ̏e:Mb.QA'k+6 9PA$Vܺ[."n;僠!dǥ{%"71̮֕@]+k^."[\xιk1:b|Q:gc=qm%D, ^D:̋o>MSW{۶C g Agz"sX+L(v(GS]X(m8G.͡"I”3Jj9?/ܼǬ>xó]6h YPm*g4\e`.lS~L~xsb"s.n<(`Lu&*Rx1ukkHY*u5 jzDH^d!ةk_iz@],xYwݑ;f)uz=ݜ4b(:Ir\H^JKTBR|Z~0L\oi|^90 1^`3ұ*QpghdS5 bDkbt5Jr÷߬N>r2~Tjz+MX]pbF8ޝ9z$2 |[Uk`1nW.}PαLOo"-ȸ[JOX W1gK8hiJQwna{,pVTNRi,($xsꚕ}y=$xeeGʾG-p2k[uWyK5=9fB Xċj֛ה]ɨFĺ^ w3´yP]_Ԭ]姱Eny$NXQ6 uU5" d+c7#%"Ʀ6w:53DC=yQx7%pzc^ dSNr ZB 3'10̹HUrEp 2Vre&@j?≽iR\Ahvg駥nXf ]&ӺwTF+e.!WL_sG(3i{!&秜|CO@Hܢ5 2OZ} 1M8D0I3-jx0"rz{%h r7DAoq~E q ջc2\7)zitݣKFmsQ q@V}l/S Ȯ˂amR\+y4_6+uiEclLqZupB|ʟ"- l0Kurh 8Ym>Xox FmVT^cMnwba1p w8=v|"tc 2Up`1v8 pd }۪ .K>Rw4s"Ք +eD<뭋]ߚ8=0&F—A޿Q06Z Ψ!ѐqr8^+A/1ߓIYk ΤMA9XhL1pka vakg* 1z}͹1hgI ZJHH3¼&[jqDsVfV9cAe3>AJ.W2v?&P^Br\=QjQy4״"hŊAz[X{?JM,ҁ9\`&R"!zқɡYvT0ÛE{7n B>FB9=~s J:@R\CLCl}_: 0.uh v]PiPk'[-g#]!A` n<0#;r.zJuhG&KuQD(cv~}^. ,8Q2DfW;9 Kg/F1Aچt鑰tWoLy 0ZMjEUE2$ZƜm4xՆƧQʞEo?xo%U>C-abG' <`Ulm w(;Y <<(%TKެ./d2TUAԳEIzlI8JfZWv m ̆"{,.uR'Ɩr?R+Fp8PMm3o.8oir*e\#wҕC^tsBlEWCNW@qiqHVe72 ee0Uc^3(!^mٽ Gc#F ʪ}v`0C/%w @$]X{DgZeۥ赛*8&庍p'אfywY.ۀf$jgmbt*G0o=86^8L,`3@ǡ+мO[,UZRB 4y N3zӍe7(KOO}q/1;g{)[ Ok_L tiԉTĥ /H-:bcEͪ;ƞCSqG-›K9`OhmWe@?ajU?jiCȿH\xP3BwT)h2Q LN=vzk[mvB p$ Ha#e>_xCHu%B4nNe͖c3HMyƸA/NoLu~gKL]UcOMEigk[QSa=m_HW;CeFA?JYklmGxWYl'm=mRmfmpoo0ppqqrjrr]sstruuvwwxxxyzz{R|}}~fV`]~B|s p_"AUj>YKeRN0g<zl!W&@[4}5ZSHa3mR- #:iD[3Jdr fKWpl.SJOC7os-Fwr\3`J V'E/e}Zt/I0N2oN`]&Yp+SkH` "^vSkIdN<yk #c|_?8=:S>W:_;m(PiKdF *    V   -   <  .nOhJc*FasF>(@S] ^ v S!k!H"]"""#y$%&q ')H *,.B/$0>012223G3_333345 667Y7789:<1=K>f? ABBBCDEqF;HHnIJJ KKLP LRTFU V"VVVJW`WyWXXY1YYZi[[e\`veef_ fQ i k l`nn.oo p}p q q ttttkuuuvvw y)yGyyy zz {){F{{{|6|]||}@}y}} ~G~~!["Hv1_|}&Pw 4!?_/Nl9YP?{/k#aN>z6b-w'DpE 'QLv!y03Mi5)NkE,V'bRB~:t'cS}2=s@YGdIc;F 6F\0Z@$Bag&   P   B   4   + '   U    =   k '4Ssjln,mC xN h?Mmbm ouN~kX{3b TZ?>&8vAidYodZt)KOK a\& &`["r9L o d!Y"n ":/5022X3346 6ABCJKKVV[WqWX)YZz['etuvyz{{1|Y|}p}}=~QpYKu0~\j 5Mr,^s4Ru 9#8MbC]7B 2BOW,^+      #                             ##   !!"            ##         ##      !!!!!!!!!!!!!!!!!""""""  jl+mlmoBppqq$r|rrosstxuuuv#ww$xxxy-zzd|(}}~xh'r1pGr5Tړh}QƗ^Qid`By!ɟN~3ע*Dm #FlƧ7.sƬEXͯ?̱Ló{ζ&ͷm7hQCf] bV2JY-oFs]BW%z 1O{ `D"`r8.( }r4}h!-`N*}6rRKP fjh);|wK =    i   @   O  A{v.JRRe*  }!""X$y%>&&')*L,.U/0H223r3346*7l789:;<>"?@BCE/FGH!I#JK!LRtTUU5VVWXDYZ[j\`e0f$ikl3nnodoo9pp\qsOtttuvx.yZyy z{.{Y{{{{m|| }}~k&Nz7cԅ&D4S >)cډRʊB~6t%aٍQɎя^{ԑ)KwaڔΕ'S{Ŗ@5S&pə;g0ޛ(PKwf:u)eݠU͡M¢:v*fTΧM?jBܫW<iLۮ 1b"IʱKFǵV#·@)G<l'se Wr,ZB 9XYhlnltl{ll mmmmm"m8mMmbmnnnoo oooo%o+o3o9o?oEoKoRoZo`ofolooo+pppqqrfrrYsstnuuuvvv ww xxxyzz{M|}}~aQς[مWyˈ=v_m\jYߑ;O`d8=BGLQVFOUcNIܜ,b 8vgS"<VΤܤ/ky 2UݧOU[agntzȪϪ֪ݪD\/~hM}(5|ҵd1?V޸!/E`{ҺnaEQ޾kf)MEI=z1i m(@rmV-ZEQ #@+axV !'-39AHNT[bip+Ee,I-k I[Y !Tk|' AOfD[ZqOfD`{ J}7tf^vY9375M9Q5Y5g "KcF^A $ z   P   '   6   (iJbE]@HPX`hpx&B]zoB9#;NKY Z q O!f!D"Y"""#u$%&l')B*,.`?AABBCCEkF6HHiI JJKKLJLRT@UVVVVVEW[WsWXXY+YYYZd[|[_\`qeefYfKiklZnn(oopxpqqsttttfuuuvvwxxxxxxxxxyy$yAyyyzz{${A{{{{ |1|[||}};}p}t}}}~?~E~~SYDr-[wy҃!Ku2ȅ:Y׆ *If4SшNĉ<x,h_ӌKÍ;w0\ڐ)sʑ#>jAaғ!OєFtĕ=t.~ؗ/Iidߙ1QҚ$כIdAaӝ %T%_ןOǠ?{8r$`أPȤyަ.Ƨ ;o˩T;UƫE_}ɮDu5\ 9Dݳ 4ٵDWշҸ.S=ZbM?1}#$R :h"/Nl %,3:AHOV]dkry ")07>EMT[bipw~  '.5<CJQX_fmt{ !(/6=DKRZaipx !(/6=DKRY`gnu| %,3:AHOW_fnv}$+3;BJRY`gnu| !(08?FMT[bipx "*19@HOW_fnv}$+29@GNU\cjqx #)/5klqlxlll mmmm m'm?mTmhmnnno oooo"o(o0o6o—@EJOT[MSWeĚRN 0g<|l!ŢY&@[Ф6m 5Z%X^dkqw}Ū̪ӪڪJa3mT- %:µ׵Ti3F[#3Ldغ?r 0rl0SJOC7os/Fyt\3`J > !)Exg}$*06>DKQX_fmv/Ki2N2qN`&[p~CUkJ` "`vUkKdN<yk #e|_?8=<S@W<xTm(RiMdF *    V   -   <   .pQhLcDMT\dmt|*Fc@rt*@=SM ` v U!k!J"_"""F$g%,&'u) *9,.+/B/&00522223I3_333445 667Y78u9:;<=?@ABBBCEFGxHIIJJ KKLR`TTU V"VVVVLWbWyWXXY1YYpZZk[[e\`xeefiksl n{nnQoo&ppIqtssz͏My\wБ'[Ge֓ >Q֔cvʕ#Ay0ޗ3Omטkř7UԚ+ܛNGeםCV'bڟRʠB~:t'cۣSP}ͦʧ*=ϩ;X @ʫ4G7dGˮ !`w8z(;3#6µ޵3F0q$Bx7gn`RD_Gu/4S ")07>ELSZahov} &-4;BJQX_fmt{$+29@GNU\cjqx %,3:AHOW^fmu} %,3:AHOV]dkry")07>ELT\cksz !(08?GOV]dkry%-5<CJQX_fmu} '.6=ELT\cksz !(/6=DKRY`gnu| &,284mIm^mopppOqqqPrrCssutNuuuuvvwxxxyzz{|}}~SCM ˅I ZΉ+jW/g@ Бz@D)uh`tۚ=8͝)Ua%cB6rϣ5O٤Ov-P{֧H=T٬%nԭNҮ=amr/re̵^ K<P0,@VsºdJ-@;Z|M:~48#`ZQ9VT~DqH!W{:3Qq?!=[<w[{9wI:Ce N$k^ L_-TIj8_-Us@s dVLo@$k"x&"FJFV{/\-W( h   > }   m      !Wz8[,V' :Vme|~0(4?GV  J j 8!_!-"T"i"""k$%m&U')2*,.5/0001w2222/3S333345566A7789:<=4>O?@ABBCCEZF%HHPIJJJKK8LRT/UUVuVVV)WVWlWnXXX$YYYzZK[u[F\efGf9iklHnnoyoofppqstztttTuuuvvwy9yyyzzz{9{o{{{|-|U|||+}l}}}9~~M2Ѐ1Wځ@oc˃Fp+݅3QƆ"A`Ӈ,Ky>x+gߊWϋ KÌ:v*fގُ )Wʐk‘6eؒWȓHmו3jܖ'n%A_ Tyՙ )G~˚9͛?\ԜWɝM֞OƟ>z.j#bעOǣ?{\צڧ4{J1M>DuT<m-T2=̳-ӵ =+ͷʸ'otB{5SDx <.z lAo)WFe-mBmWmuoprpp5qqqCrr6sshtAuzuuuvvwwxxyyz{{|}~Hy8uB>-sc>`ُđn48aT™Ykǚ0+ĝ"K۞DY4(\+EҤs9o&ItϧA6MϬ`ʭCǮ/Z֯ _g(qdWŵWٶ2ٷ5IϹ%9OiۺZٻ<1þPu>3t%{)}xuQ S 2G|Ew:b9{9l.d,v Cj1|3Q5mQt/m;k 9^59AEXM?c*XNi6iZHBh1aip?C ? Gl UP Y   / s   ^   q   Ms)TO0Lf[uw"T-s"@rOk< c *!X!"M"b"""a$%_&G')(*,..//)00h2222%3L3~3334556677y789:; =%>@?@ABBCCEKFHHAIIJJKK.LRT UUVfVVVWOWeW_XXXYyYYsZ<[n[7\{ee=f/ikl>nn ooooWpp|qssktttEuyuuvvwy/yxyyyzz{/{e{{{{&|N|||!}X}}}%~~9("P}Ӂ9eTă?i$օ )Gx7VÇ"Ar4n!]ՊMŋA0l \ԎҏP|a~ב,^ȒMAݔfЕ)`}Җ ^7UژDr˙=tĚ2Û5RÜMF̞ E4p$`ءX͢ E5qUЦЧ-k @v'C7u=kܭMܮ 2c#J}+6&wɵ6t$÷ ^c1t+I{=n2~$pb}7eM <[6mKm`mopppqqTrrGssytRuuuuvwxxxyzz{|}}~UEÂOͅK ^҉/OtLDґ#|BF+ØrxA<ΜٝZ*hG;|ԣ :TƤ!i/R}اJ?Vެ*s٭PԮBcrt1wjε` {RǸ5 BXxǺiO2EҾ_~R<9=(e\V;[YI vM&<5 VsD&B` >|"`}>|N?Hg kp{*a2VNl=a2WxEx%i[QqE&p'}+'HL H [4^2Y- m   C    r  "  #\|=]1X, ?[oj~5-6hI: O l =!a!2"V"k"""p$%r&Z')7*,.7/ 0201|222243U333345566F7789: <=9>T?@ABBCCE_F*HHUIJJKKK=LRT4UUVzVV.WXWnWsXXX&YY|ZP[w[K\e fLf>iklMnno~ookppqstttYuuuvvwy>yyyzzz!{>{t{{{|/|W|||0}n}}};~~O7߀6Y܁"Bth̓Hr-߅8Vˆ'Fe؇1P{ňC}0l \ԋPȌ?{/kۏ.YϐpǑ;gݒ\͓J oٕ8o)s*FdY{ڙ.L͚;қ Daٜ\Ν"O۞T˟C3o(gܢṬD^٦#çߧ 6ƩO6R@FzVƮAr2Y4?ѳ/ص?-ҷϸ)tyG}:XF}A3%qFt.\KjoCppqq&r~rrqsstzuuv%ww&xxy/zzf|*}}~zj)t3r t7VjS`SeaCz"O4nn:/uFZ@M|'nREg ^ cW3LZ/qGt^Y&| Q}cG%cu9/)!~t5~".aO+7tSLQ gki*<}x>    j   A   P  B|wSSf+  ~!""Y$z%?&'')*M,.V/0I223s3346,7n789:;<>#?@BCE0FGH"I$JK#LRuTUU6VVWXEYZ[e2f%ikl4nnoeoo:pp]qsPttuv[yy!zZ{{{n||}~lP9*dSC7u&bRaMyb)UAU'r=i2*Myg;v*fVN;w+gUN@kX=M 2c#JLGW$A=(tf Xs-[C oDppqq'rrrrsttv%ww&xxy/zzf|*}}~zj)t3r!t7VܓjSfbD{$˟P6ڢonȧ:/uȬFί@ͱMij|϶(ϷoREg ^ cW3LZ/qGt^Y& }cG%cu9/*"~t5~".aO+7tSLQ gki*<}x>    j   A   Q  B|wSTg+  ~!""Y$z%?&'')*M,.V/0I223s3346,7n789:;<>#?@BCE0FGH"I$JK#LRuTUU6VVWXFYZ[e2f%ikl4nnoeoo:pp]qsPttuv[yy!zZ{{{n|}~m*dۉSˊC7u&bڍRʎ"y7bUǖA͗'i`u*!y6gž;v*fޠVΡNâ;w+gN%:kOdݫX˱LGWA¹(tf Xs-[Co4ppqqrnrrasstuvwwxxyzz{V|}}~jZ؂d#b~ֈxud'F ̓ZoCVR4k@p%ɢ_8^) e7q1 >۵m_Cv 5qXOTH$<txKa8 eO VI|mR6Rd]* t+od&zoR@}o(dD=BX\}Yr-ni/    [   2   A  3mhDFDW] z o!""J$k%0&'y)*>,.G/0:22 3d33467^78z9:;<=?@BCE!FG}HIJKLReTTU'VV~WX6YZ[e"fikxl%nnnVoo+ppNqysAttkuuvLyyzK{{_|}~]փ|݈ỦD4p(fیSˍCiړSxE2qY֚i۝X,gߟWϠ G?y,hX?ө\ ΫIͮ#y;=8H2se WIdLz4=!=p>>>>;?B?I?P?W?^???@@'@2@<@@@@2ADAUA]AAAA\BBBBCCC&C2C>CJCVC^CCCCBDJDD EEiEuE}EEEEENFZFbFjFFFFFFFFFF GGGRGZGrGGGG3HoHwHIIIIIIIIIIII JJJ\JdJlJ<=)=^====<>> ?C@i@q@z@@@@eAAAATBdBBCRDDEEFrFbGjGzGHHHHHHH I(I`IhIpIxIIIJ"Jqvlib+!ۤx>.&N XVYtOPPQQS`SQARRRSTTTUUULVV WRWWW-XPPQQQ_SS@RRRSTTTUUUKVVWQWWW,XuXPnPQPsPQpppqr`rrSsst^uwwxxy zz{ }}~YISOW|TFJ/HCb2pYM)OD/xUG wy|o#nT7JdW>B- j"a c^N%{RA%[I%'eCSMt37SB7J}*n`VJu,0,!%%`<72r   H    w  '  aB61o:2qCT B!7"""u$%w&_')<*,.0 122933356K7789:<$=>>Y?@BCEdF/HHZIJKBLRT9UUV6WxXYYU[P\fQfCiklRnn ooopppqst^uvwyyzy{|~~>'m H5q%aUD4px^Y H8t-lY I(y~LF8*vKy3a {|p 00'''   '''  ''00'''00'    '  ''{|  ' ''  '' 00'' 00   '''''    ''''''    '''00''{|'      '                    '    '     jl=mRmfmporuYKšzW4HR#RDJֺp.-wr<'etI0oYSH ^SI c:>:PK nOJapr}(;^ S!H"]")/$022G33456ABCIJK VVJW`WXYnZi[vetuvx yyz{!|I||S}} ~~4H΁1}:dͅs܆mˏJvސZΑXE;`ȕ!ܗMԘiÙ5)E@Nʦ~'915E^w%0 0nu5uFt{}iR ƔL n Vf=W$ut9f{|[Dޏܕ~>aIY0I  "&*6:>BFJNRVZ^bfjnrvz~*=DQUcjr 07Odq-8<@PTXf}"/;L^e$(/6=DSarv~ '/?GKS[ctx  %*/49>CHMRW\afkpuz7<D^fks{ #+08@EMUZbjot|+<AIot|'@HPf27C]s  38DINSX]bglqv~#+;@H]brw ! & + 0 8 = E J R W _ z  ! !!!!&!+!3!8!@!H!P!U!]!e!m!r!z!!!!!!!!!!!!!!!!!!!""""&"+"3"8"@"E"M"R"Z"b"j"r"z"""""""""""""""""####&#.#6#>#F#N#V#[#c#h#p#x#}#########################$$!$%$,$0$8$@$E$I$Q$U$]$a$i$m$u$}$$$$$$$$$$$$$$$$$$$$$$%%%%%'%/%7%?%G%O%W%[%c%g%o%w%{%%%%%%%%%%%%%%%%%%%%&&&!&)&-&5&9&A&P&_&g&o&s&{&&&&&&&&&&&&&&&&&&&&' ''''#'?']'a'i'q'y'''''''''''''''( (((("(*(1(6(;(@(E(J(O(T(Y(^(c(h(p(x(((((((((((((((()))))")&).)6):)B)F)N)V)j)r)z)~)))))))))))))))))))***"***/*7*D*L*T*[*`*h*w**********+!+5+I+]+r++++++++,,3,I,_,u,,,,,,,,,,,,- ---!-&-+-3-;-C-H-P-X-]-e-j-r------------------.... .%.-.5.=.B.J.R.W._.d.l.t.|.................../ ///"/*/2/:/B/J/R/Z/b/j/r/z///////////////////000!0)01060>0K0P0X0`0e0m0q0y000000000000000001 11111'1.181@1H1L1T1b1o1t11111111111111111111112 222$2,242<2D2L2T2\2d2l2t2|22222222222222222233 3333%3+31373=3C3I3O3U3[3a3g3m3s3y333333333333333333333334 4444!4'4-434:4A4H4O4r4y444444444444444444445 555"5)50575>5E5L5S5Z5a5h5o5v5}55555555555555555556 6666%6,636:6A6H6O6V6]6d6k6r6y666666666666666666667 777!7(7/767=7D7K7R7Y7`7g7n7u7|777777777777777777788888$8+82898@8G8N8U8\8c8j8q8x888888888888888888889 999 9'9.959<9C9J9Q9X9_9f9m9t9{9999999999999999999:::::#:*:1:8:?:F:M:T:[:b:i:p:w:~:::::::::::::::::::; ;;;;&;-;4;;;B;I;P;W;^;e;l;s;z;;;;;;;;;;;;;;;;;;;;< <<<"<)<0<7<>R{2* 񐓿.Zh%#ut* 񐓿1,'̏* 񐓿EjOɰvH}Ʋfmt_helpers_for_deriveNN 񐓿./x  񐓿]?',vFrƲNN 񐓿[`ƌ9ztB$_u Ʋز 񐓿!fno#Ʋز 񐓿0kN* 񐓿82lt$lƲز 񐓿8gMP: 񐓿1C/Ʋ  񐓿Vo * 񐓿Z@N 񐓿* 񐓿F\* 񐓿 ݦ]FƲ  񐓿CggMHƲ  񐓿#8oB Ʋز 񐓿h[Ot $Ʋز 񐓿HxX * 񐓿S0\ݣƲ  񐓿S qU?: 񐓿$&A?Z3o  Ʋز 񐓿#0t$Ʋز 񐓿a2l% * 񐓿`duN 񐓿[SS0@E6, * 񐓿Uw% * 񐓿gDt)OFƲ  񐓿ȖO6x 'HƲ  񐓿JeoCƲز 񐓿+.(^6o1Ʋز 񐓿)]x=B;ȏƲز 񐓿)K7o ֡Ʋز 񐓿oONX* 񐓿:S}ċƲ  񐓿}Z׬o Ʋز 񐓿,?+vaoƲز 񐓿eAy* 񐓿QIoI֍Ʋز 񐓿t3* 񐓿$!koGƲز 񐓿z-* 񐓿b;ޚoEƲز 񐓿Iۮ]* 񐓿WH=\o5Ʋز 񐓿|`No)Ʋز 񐓿yΒ{Mt!$Ʋز 񐓿Q*5@J* 񐓿}NҙI* 񐓿o%v ƲNN 񐓿g"ԩt$Ʋز 񐓿2!"* 񐓿4VORB,* 񐓿zdoJƲز 񐓿VO_* 񐓿^jtH$Ʋز 񐓿<xHHtF$Ʋز 񐓿5c: 񐓿>bڂo;Ʋز 񐓿@̦pt*$`Ʋز 񐓿x򦳶o!Ʋز 񐓿U=^`* 񐓿g^0hoҍƲز 񐓿NEY+ҁoƲز 񐓿"{F=* 񐓿Yh$* 񐓿og* 񐓿Ԥ(7[oQƲز 񐓿nf* 񐓿5h:+%k8טb/ΘŘ;2)ЖYMtAMD̗ؗznٖ#eY[nǥqoF}ԟv[5 UDQC̠(;J_IާB'פL!o3#{ӞWSƨ#qԛa:9uO%Χs_k^C 3_6֝+mğۚfKǤpE<ޙۜ24զwÞGգK{wAODHT KviCC-BXv`7=Ah ߸bՁNm pdU" puϓ} h Np$ HBW kr2Hr4y N*}q/1;-wAbε6]`FRLLLH#ashNXQg賷ջy0 җ!H'}"ǜ#y.dT)h2>5" d+u, 5j2-XrI3-#/x=--o SB1 -02_`^3Hk/3Um*,H`7ȗK ;;ϐ=(x_r?,3@8P3Bw=QʞEoqH s+|mL(M0XфR0/~S#Up.SSW{X;Y <pZ ̠NW@qi 2\7,K;3]oMX]pb1YM_R&^MdcaN.aZo86^8L,%g:d(Ve7hmWe@9x hHFy$ip$xPiPf$jg"(m8/3n; hnpg-XmT3*q ~q3Qwq؛YnsP\t u09mbvh[ixsb"*Rx1uAoq)#z0ª,t{dQ q@V0nw&wY X{a{섹ȿH\x< ʂඓ$R Ex_O:w ƚ (vG7+XǡhLf庍p'e# k#kXe<1gQ%1Ꚁ([웨_Z?ۜ; jߚ8=\Z<,zO7bfʕ@@ YPm؍IQ<0#;P#Oɩ>fO-í@9Lz.}PαL P9|@> U ᠞޸QwnE}Y0Jz}͹jM`T긴HMGU8A\ e|Ԡ@ȾxKFms/1gˣ*$Hةk_[-}§9vt$=RliGk Τd2̑E!afywY !j ~E q*)(#z$$wr$9Qfh&WZp' I( t.)A?t!4,!@%MĖ-da*.ѱ(3 K-q !",Q1'>1^d-2񣷒wST31gd$ :$6Ĕx``7^+6 9*8&}y=$.a>͉&d@Lm<.QA'kHqC)9(F.[QpkGQ~AHGc={8JyK8JMu`ۣN)@O!|?|FTE8\uU=$[MTދsF3URBY@%W[}kiR\AI]=Zg#]!AWc\ހ”f RIBfIٗgh9=ASi{#X)9jy6\j"+͖iЖ 8oinTt1SugJuxYzss>y9VLKxYo!AY{z< {99p^+&Jgq RDRlwf͋k )PyF1Aچ򨨆yŢT%֓<Ǹ ջc+}\A/1ߓIYcMA9Xe$$A!OQbA0o=$?'AdcKCo>MS9q(a־cq۸i_XS G\Yl9h@ɋ_4-sм!E+Մѫ-Ir:!Ԃh_UO8# L}u9\{j+,PZ} 1M! ̡G'[G.͡"e I DK" ~ɪ8x}&%h ';ɪ{J*׹`,ТؑY=I"ہ2]^q iXLqFSt3Kbp&<3i{!j?≽duI_H'_cټb۰qVt鑰taE8jXIJ%=;4bbilU3o.CQ6 W Ok/X W1gT IG`ُ`¡:lB;F<9^PbR:v^QZ=H2aW&k r[cVov UI j+8 2486! ox FLC-}{Ǣ\ *O#^e ;*yC>nDJ ^!r!)1Oe>x c! Q5y{"*}Q(z ? ^$Tد(vܓ&za{%"7&*ꄺr*eGHn-'N-Z6h0C/%wPSV1C .1H10 ͍4H<5 |mZ :kJDr|;;GT<:+ s.n<(҃@2jEI|InA*@nMP@Eg?Er_WEہ.ߞ3H¶)zI qI2H@r.zJuȪWMl4aNR-]n>O:jVTNR|Q:g^ dSNGST0Ûs՝VZ73qVr){X"flEWC (x[:5}p[*vD]0:]uHd9_Uv&V`ܿ] My+e^_yVՍbJ>d/ bDf4z[JO"*(hf>h.A[Gj*۝%iҲ&4k PolV|akg* 1i`E;Ip*+G`Her)($xsR @t [JfZW% wZtaxR]϶iN{s5|8Svc{z^UlՉ:?hul4#_Gz!0AIڼ 4xՆ, Pڑ5p"69_u”v:MbB<wҕC  ZzԮF—A^qٱ 1 ٜc3F?pb/d*-3 3zJnʸb. Ja{jڪUE29,BE#`mxu&秜ޮ" !bxKo5anwbaOyƸH(NjnuR2I%l7cvDk*(:Ir\\ ;;hŊAzx`3@&tDxɲ9r ĵ6|os*cj@ɦ-_sC3)Ѻc/P[#{7"7O*.l&3=swZ;!ݚT4`3ұ*> I”2|"q0ZMjE2Rhqr8^acrwEy4״"w3J׮(vi5F6$Rd$1Wzn v$o]46I7*rY0̈ !;cz,b@SmN>rܽB83{C[Wc7#%"r ZB 8D0"kƟG+sQqDsVoIkC2aJ vX/Jmy|Jcu#*`OM!L.Ls~+LY2O[OƖr?R|/@RʼyS6{}R8'@UyaU $HWKofW;9ZCV]n[[N#Zs1@]+`.pka vh9xb7ڔccAe3qhiJ#j[."n;qk_s$tu(f)uzl0KurI8w|`x[6 x4'1zqJ7%pzc0}չ}l1nF<k'[-1 $׋cbPz3GOj1ǯgS7DN:`Spht!:Hۣ 3[!ՔGCzbcǕYܙ{* 26=ӊZRB )EjYd<̜˼=:zlm.襫Ӏ[P S+Yd6Z Ψ!`zu.vcE4PAgz"sXp2k[}.G]3dS5(^OUpHTKA[ wJ vn+\;ic=mXvzk[@Hҡdz{,T賂# qG-›K7U>HaLrEp (Osy]<Γ(-#cd:C"!zқ<~@{ rTǬ>إ՛,j֛ה?NhҮף$[ Ni>Ar}s3/AԳEIV0&U'yl]Z:Kv{{4b_lmT) }۪ V 쫚lPsbI\3IsKnW1hgIkf ]2!\$[yh?aj: ܖvB~@S5.2<~&^zֵ]ZX ty2S3 ݼJx D1?6~}^. H??/cBQ۶C ZupBG@R\CLCl]ɨF ZJlH^JKTzM*{Q0_WS,Y&UT7Ut.SkMTWl] |[U„wYlmVT^MTj05\\dDОz@],xH^d!P]_Ԭz4s0Qz´y?| }g 7~)IQ(}yragx,R7W~/2I=4a1tݑ=J;`-֬TM? _sIꍱ$@/-llE|OO\R\oi|^:+ 2[,F A,nĴ#?nĬG:Ḡ{xE ǜw \3dzǔ&LB,YʤT)1d=WoLy LN)"g܄fX܈o"ID/H(\ +eDK `;9b YY(?L[6 uUk`1fB Wvtu(=c_vm-3HW[d[X{y4s"ՔY-6%?xo%U>,R'=ڷ[(=}~e+KyNL~+S F+e9.67.E[Ajl/U^X3'10a5^ԾM65"i_ u5 = 8]uWyK5=9 <`YSg=Vךm?&+P@UB=}Am)xqK{EkbF(XF uyכxHu֘8_HmJ?JM,z2K5A0`Lu&#MugOTQvW\ R]5E~UM GVwWF.!WL/6QrY5C8>ɡYvLLK\EHn]ekLnG^^+"[\x*g4\er\=uZ%ԅ\e[cMNxeeWf]D=@gW! l*g}jZi# Kg/)lN#l7n`쐘oJ:}[oͺ^mٽbt5JhvBw=haXwQ5y}|أb';x~Q{ ۦ0x((ƐyUf#zddH èUd~zUxH*= |UPRčY~UcՉQM(j39SQuD1/#3|el E}eۍubhG_K!1L=5^5ەn)"g[ZX_s@U.(%%c=qmd(u뭋][Ȥ;b٦bZ!ED"!u+=(#C!oԥż7Hj$o=?>5 /qs-}Js^L QjQv"cѯM/߂Juee0U|ʟ"- Hc9۸0H-9.xgL /H2?CDS/sMg- ,Ve*u-?U&ׂpAѶ dMʗWRȍs5Qz%CI˝Aܯ͍ltݣ. J:T Uv3zӍe7+C=&rԅہeU@1̮֕OGحt@Eb"e1b =gp=d"6%p>FYwݑ;F8ޝ9CuW Sv%Pv ^tsB _xCHu%D SUNj]}qm cr-|B]'u<=<]&۾-/Y8u)w)+8=Qm9-C*9 2O :i-d 2SGى KFD؜F @"-zZ,V(,k UR\N7Q m =u5 j > 0&]1c^3\'^D_L t03/Fc?5CfҲG kkHYW)3٠1e+bhzFA\uJֶ4_ TZ $ZƜm !FDwsPI% # (v~ k~*~-Y..]S90 1^L2!Nw2fWrHl4/Q2~TjUp`1v8Tr7D(.;ɤFB9=~s]姱Eny$l6FB' G~&GfE4HNyh?JJ)HH3mwm0L~1M lS~L~eK-#TPfKvH6QV#ď=\^P6< 7"QFZCu1`Tf;;Uv4boUv9?e:: kưF{s64ϣx$y^*A}&uW66*쁶|n_fFHU  Dg7.(~V:̋}_: f&)9U֒n~ێSv1") <|vkFF#Fn}>F$#5& eVnQ^}@ɏ.pk^.'nc@|P>@;ƞ5{,pzAD+y4_6+uBzD) 6S Ȯ3q!FT6;Ġ@NZ &\.s{Um#YM&>4s!^*kƯzJd2ѥګ>1`&|:r'B4nNeE}آ^Kz?&P^Bt%"yZ&kaVSxz#`KXT+b䀚h'8S>,LCpo6Tخ7Q LN=?}Z+ƫ"4ԥ ݦ?g駥nXB>^/b t{^aA{g;a(v(.ۀ!^=&"Ц^FmOf-:b3_- ǪQUva1<,:*#Ny.*{nL-S'T;clE1wGg; !dǥOx> 9G*k  V= o5oEĺ^ w3#4M  v V}_#1p wP% *gsBj']VGUa#e>Cjx$2ZV2aQwZ\Ү 3<Ϩ]/l︗gz+a "ȇ|w"wI]%W:P['' mbt*G#V5YET6Ʀ6wRV:p;_wjιk1:b-@y1mvB AWLGrfEmKGJ`@CMY;ON?JgN{ P{&]Kk{Q ^yOR l5tSSeO۳}V't="Wp/YUQZ[5\O&9`O8Wc'-{¼&[jnak#:RwX@Pb(=)ב$T[cH!W_T%S' O!j9?#{' ڙ_C.tg`^ 7kRNrA%c0FT=> (DTUht/:K j э_C/=a-nxZΩެ./)zi-Zeۥ)kg ԉfD]/ĀJ.W2vs㝟wL6}&ӺwT$+o 򞘼Cv(KOO,BQ XvƷPw!BGʾG-r÷ ȜϮ;BƧGb 'ogzȇբ̏edD_ͷs~N;җ4_Oqm w(!gJW #2gHg7tvY\ ڿ|o.׿ͿٟCNVHW̹,h>0LyQG(Ym>XKVo Gch uJƍV^6GIw܉ P_y4T#dw?iyX \'fg'o5c'`E#u}rGYQ^OgKGsL{*QvW^JA7N,y=f4tj2y7A<< jY8?HwP-:~Ug+QBRI/zc;P&k2Ct`/d?I6(}&=Ngz0[v@z..!nw2h6+v~hsoKjaj& ql_M9S$/]LIRf_,^rn(-`z Cp[2JYD65}-J1U^0S>oqY>KxboPHKojmqVB%)6p5(Cb\1Og,e PK%\8TU^b}7 |NkD,.6cS{A |:uYCH-%w>=E?F,u1dAYf^+:~%6pT 3#jZ^;$sJTAvTQRI<7ZW1(w* 0~]2sM; LU%#X"e "@ [XOwS]DaqAkr!zJ$^<`Xr"=\3QmivOEMvUbg9lzSAN cmJ1p!=oI\VdGrcm"u@Q]h0`m7$6;E.v=cZZ 9G`'6 ]b\GI4/Gk#2b9f -$KU/ SzDI WbCsw T-o?[nM)2Il FYqW.n0e^]aHXW6kA-xbc% v}W?$[]]F?[e$ ^Vw;[@vua1k82gY(U~58fTuNYGK|Jp'U S_[=p*F: ^HXQ"Z1Y#,l}4]6;AI)N5"R9K~tMilu3b-Yp4KMFa{^J1a T bPiv~k3?Ebmx#Gj+>iY1Mo8":PkeR L,DA]Ife!u'+n9?oJf0.vfRkz2_ :=bNI?cnqDyX \'fg'o5c'b/Users/kalanlee/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.81/src/lib.rs be04MoA6[ kon O-:PMJQJME?JKPJ*. J(# R;1" .HNUIN'IKLO? ;POHOIPD>M;(! &!$$$# #!&(%L9;: * P0 2' !;%PI,BF"1"/ =! B3/%67Q JFKE>3 !756(75*'(9)J$+LE;/J91LJJKP;%5;#!&;#;%';Q9 "Q. *ONAU=.3CKQQIP*?/ GKOMKHC?(EKOMKHC?&;GEMAf654A%=-$KP2NK02!6;#P9>NJ3!---/ 3QN/-5557 ! ! ! #"HIP;7779 :;O>5%9(' %)6&% %>:*.21< $;=;7"!==*<(? ;&656:5*:''.;# /I-1L) + ))I-P+LE:$#*&! !6$$!;%)/*EO()8 2=*7*@( 52&!%6 0;;9MO"9'"6O 0X0+5 55?5, 600A'*3 **&8 N/0/(# #)28  %09(1/5 @2"( @>&( @& !!"% 6DE64%.2 "+ / %\ (2")4 &2")4  76 "N811  2 2 %c  - ->  , ,> %%;=$Y! $ D% +*!&'-7  ;32-.) (Q =33-? ; +=$ ?$/A$ !-0/3&"GDA((+$ ( 5&7A *7&$> ; #*) ;00! ;17? -,H "-,) /% B'!!!#!#/# /# -@(,&G, 1)0++++++:9 2*&,4H=2 /////;: 0*+"A#!'%R@-%GC%+#9 !-M$   "1,=5,=E2/*9C*9320& 9+5(B3 B!1&++"$ #;$=5!?(4 ?NR<;]@ 56?5*GP 34% DB"/>>K> BD'(!_0 /H!GC-873C-( )I,?&@> +L,$S,Q ;[> (R? //--;77)@) ;99)@+  2'$#*,MT ".!;A `23BB?J^d 4==  &$5!6$11 $44 ;99   !!:8 "!;9  !97 5XXII 4WWII .$d .GH /$1)'1 (D, &D* 6($RR -?? 2(2#'2 2$4 .35%-;33 Y% Q! D,2RJFD\/I +8NFB@1 *_E !<< &AA 'BB -FFJJ 3%5 '*CFF CDD ! ;U[ GF?Y_ KJ!<< -FFJJ 3%5 *X@KK &$:. ;66 ;44 #! -,%A? #-,%A? ;!]V !!!#!#/!FD /!FD -!CA ,!B@ 1! 7>2LJG 2!GE 0! 1:,HJC !BB -LLLL M$N)-N 5'7 +,9!@+>+ ;88 ;66 2h <sHt7|&0e/Users/kalanlee/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.81/src/marker.rs |6fCgR%.N N<Q+^ʀC8ed/Users/kalanlee/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.81/src/parse.rs /F8ͼZ3,&88#; 1!7"> &!%%##0!?#( 7.$#D)@."*D))'""- $"$4'2 3""!6=I %K?9!:%O#Q/  (A 1")2'(*9,H 4O., &1#%/<2., ,&6#%13.&C''\;.=:''. + ## 5-'J2)2))/S- 3 Q - 7'3,I) "II %3*2!$ 1;*(=@$0-).*( -!!5+1 @*-22)&)$3K$.98?2 9>//DC1*' :,"2 E/172*'*%3R:887$ =1D(E >>//DC1*'' 7,2 ;>//DC1*' B*-22)&)$6E$:98?2 3$/2<@L  3:38#*4=?:E  00#()( <'!9 <%?? ?'EF' 9'*//(J  #P4 R "?#0( 4), + ;.1!)!J(   ,' "'-'"1"%"*" % 2#, + 9," (" (" /#(4#4#)(  ,)79 ,%+ )0<6#% /$5 [A :(70% !5;8>`57>C?CC8;B"&;)00)&) ; N01 @&9H= -WNhI?:rvud/Users/kalanlee/.cargo/registry/src/index.crates.io-6f17d22bba15001f/proc-macro2-1.0.81/src/rcvec.rs svK>Щ $$%%!+. 2 73!3 F$ $+/, )"B!.$ %( )"B!).'+ +&++ (/4. |dJQFzp`$ &*B+/aarch64-apple-darwinr.r@_ȱN' proc_macro2-68396a19c0aea70d 񐓿$ Tx%&$ &   &&  $