rust #rustc 1.71.0 (8ede3aae2 2023-07-12) 0ǀEl#恲Tn-6624200dfedfc0521+\CG/-824b50d5d74d440c9 kBVN -869678be6be78072rustc_std_workspace_coreL=&+qN&-0844b1adb4747323h)@B/&h-51440ec7093ee569hHn@2u-6a91feb4c72083b2 _Rpѻm-699b85f808fe3146cfg_if{4]^yo15-bb20fb5f7f95cc4e miniz_oxideODՋ Oz-50af747198c2d5e6adlerȽ{+N%T-9941ce975025e581 hashbrowng?y?W"Z-8af4befc2eeae01crustc_std_workspace_allocukW6e1O\-bb2a564ae6dbf36e std_detectB`G0꧁(-94cd52f09bdeb366rustc_demangle֌8 8f-e481ebd1a38e61b5 addr2line9թڶD--551696919ea5a0cegimli)ZSԝi>vF-665ed3f7d67b8bedobjectphA *:KcX,xP-43f8e2f299c70565memchr#LMYf_OP9-902b9cb59cf0e7dczmJ7a-126fc802ec161823  read  parse  from_mmpto_mmpat_least at_most exactly channel  supports_featuresis_dev is_nightlyis_beta is_stable%date'')* * )- - )from_ymd)to_ymd)2 )4 )6 '8#version_and_date_from_rustc_version? ? ? ? +version_and_date_from_rustc_verbose_versionD E get_version_and_dateG G G triple is_min_date is_max_date is_exact_dateis_min_versionis_max_versionis_exact_versionis_feature_flaggableR supports_featureT T V TALLOW_FEATUREST T T T Version] ] adg i kKindmDevn mNightlyp mBetar mStablet vy|Channel       'Date  '''''''' '  7 777777777777777 7!7"7#7$7&7&7&7-717272747476767979797?7D7D7L7M7N7O7P7Q7T7b7b7e7h7j7j7l7l7w7w7w7z7z7}77777777777777777777f]~mmg]]vmk]]%8|md]xm`]{mc]i]a]ymGG   db[ [ ]]^_  Ը_[ [ [ [ [ heffffff p uh p p p p p p       j w  =(Less~GreaterSoz) w  w  w    w  w  w        l          =(888 *0;Fy    !     "" =(!  #"  $   " ^   Inj=)!%ϫϫ ParseIntErrorЫ%DBQ   $%$  '3# ##### #$##! (##(###(# ##(#)())))) ))))!))))()))() ))()/(//// ////!))//(//(/ /.(/      (z     mnopqrstu!l /  0    __self_tag  __arg1_tag  ,}**/***494/4/444// //     U (Ld 3 //   333   !!!  " "" =(3! $9" $$$ ":     ' }Txl ; ::   ;    ; ;   !:!:!! ::!!! ! ;! ;!  :!?!! ! ! ":":"" :"""";";"?"?""""  + +!!!  "  -, =(;,! $D $$$   ' . '  3  %  / %  /'' $    ;   ;; 33! ;H;H;;H H%H%%%% %  ;;% %5$%5!II$;$H%;%;%H$ $$H$*H*** *  ;;* *7**7!II*;*H*;*H* **H*  ^)@ @'  $ $$c  ^ && ^$)$22  ^ II ^(AM $A! '$M$$I$2$2$&$&$ M   , B B! ' $   S C C!T$  ^$':$ 9SplitN X ݫ⻝:$'5 >$ F!TXE?  E 7 7 ?$ =($ WW ? ^ S F X$$$ $$rustc$$$ S$ $$$$H$ $H! ::: NotPresent:: NotUnicode: =ggW!hiWWVW5 =(gWV! jW5 =(gWW5W  W WWWgWiWgWWWXXallow-features=$W7XW7$X W7"allow-features="YY ^$Y-Z$YY#Y#YZYYYY*$Y Y'RY*$Y$Y#$YflagYY*Y Y Y  ^$YX$YZZY'Y Z'OY'OY$YnYY'YX$ZZX$ZZ ]ZZ 'ZZ  iηY'ZZZ[Z$$Z ['RZ$$Z$ZrZ'Z$ZnZZ$ZX$[[Z[[[O[[ $$[[\[[ \' 'O[$[O[$[O[[TO[ ]^ ]^ 3/ 3/ ;: ;:ЕH This tiny crate checks that the running or installed `rustc` meets someKJ version requirements. The version is queried by calling the Rust compilerLMG with `--version`. The path to the compiler is determined first via theJI `RUSTC` environment variable. If it is not set, then `rustc` is used. IfL? that fails, no determination is made, and calls return `None`.B # ExamplesK * Set a `cfg` flag in `build.rs` if the running compiler was determined toN be at least version `1.13.0`:# ```rust ' extern crate version_check as rustc;*8 if rustc::is_min_version("1.13.0").unwrap_or(false) {;: println!("cargo:rustc-cfg=question_mark_operator");= } ``` J See [`is_max_version`] or [`is_exact_version`] to check if the compilerM/ is _at most_ or _exactly_ a certain version.2I * Check that the running compiler was released on or after `2018-12-18`:L~ *+ match rustc::is_min_date("2018-12-18") {.) Some(true) => "Yep! It's recent!",,( Some(false) => "No, it's older.",+6 None => "Couldn't determine the rustc version."9 };   H See [`is_max_date`] or [`is_exact_date`] to check if the compiler was K6 released _prior to_ or _exactly on_ a certain date. 9 : * Check that the running compiler supports feature flags: = ~  * ( match rustc::is_feature_flaggable() { +; Some(true) => "Yes! It's a dev or nightly release!", >1 Some(false) => "No, it's stable or beta.", 4„ 9   ? * Check that the running compiler supports a specific feature: B ~ *; if let Some(true) = rustc::supports_feature("doc_cfg") {>. println!("cargo:rustc-cfg=has_doc_cfg");1ր < * Check that the running compiler is on the stable channel:?~ *! match rustc::Channel::read() {$@ Some(c) if c.is_stable() => format!("Yes! It's stable."),CB Some(c) => format!("No, the channel {} is not stable.", c),E? None => format!("Couldn't determine the rustc version.")B L To interact with the version, release date, and release channel as structs,OK use [`Version`], [`Date`], and [`Channel`], respectively. The [`triple()`]N/ function returns all three values efficiently.2 # AlternativesK This crate is dead simple with no dependencies. If you need something moreNL and don't care about panicking if the version cannot be obtained, or if youO$ don't mind adding dependencies, see'9 [rustc_version](https://crates.io/crates/rustc_version).<    F Reads the version of the running compiler. If it cannot be determinedI< (see the [top-level documentation](crate)), returns `None`.? # Example  ```rust  use version_check::Version; match Version::read() {- Some(d) => format!("Version is: {}", d),03 None => format!("Failed to read the version.")6 }; ``` ! $.* Parse a Rust release version (of the form-E `major[.minor[.patch[-channel]]]`), ignoring the release channel, ifHE any. Returns `None` if `version` is not a valid Rust version string.H  Е1 let version = Version::parse("1.18.0").unwrap();4$ assert!(version.exactly("1.18.0"));' 9 let version = Version::parse("1.20.0-nightly").unwrap(); <$ assert!(version.exactly("1.20.0")); ') assert!(version.exactly("1.20.0-beta")); , . let version = Version::parse("1.3").unwrap(); 1# assert!(version.exactly("1.3.0")); & , let version = Version::parse("1").unwrap(); /# assert!(version.exactly("1.0.0")); & 4 assert!(Version::parse("one.two.three").is_none()); 70 assert!(Version::parse("1.65536.2").is_none()); 3+ assert!(Version::parse("1. 2").is_none()); .' assert!(Version::parse("").is_none()); *) assert!(Version::parse("1.").is_none()); ,. assert!(Version::parse("1.2.3.4").is_none());1#      '  '>E Creates a `Version` from `(major, minor, patch)` version components.H  Е8 assert!(Version::from_mmp(1, 35, 0).exactly("1.35.0"));;8 assert!(Version::from_mmp(1, 33, 0).exactly("1.33.0"));;8 assert!(Version::from_mmp(1, 35, 1).exactly("1.35.1"));;8 assert!(Version::from_mmp(1, 13, 2).exactly("1.13.2"));; 'B Returns the `(major, minor, patch)` version components of `self`.E  ЕD assert_eq!(Version::parse("1.35.0").unwrap().to_mmp(), (1, 35, 0));GD assert_eq!(Version::parse("1.33.0").unwrap().to_mmp(), (1, 33, 0));GD assert_eq!(Version::parse("1.35.1").unwrap().to_mmp(), (1, 35, 1));GD assert_eq!(Version::parse("1.13.2").unwrap().to_mmp(), (1, 13, 2));G #-@ Returns `true` if `self` is greater than or equal to `version`.CI If `version` is greater than `self`, or if `version` is not a valid RustL! version string, returns `false`.$  Е1 let version = Version::parse("1.35.0").unwrap();4% assert!(version.at_least("1.33.0"));(% assert!(version.at_least("1.35.0")); (% assert!(version.at_least("1.13.2")); ( & assert!(!version.at_least("1.35.1")); )& assert!(!version.at_least("1.55.0"));!)!1 let version = Version::parse("1.12.5").unwrap();!4"% assert!(version.at_least("1.12.0"));"(& assert!(!version.at_least("1.35.0"));")"## # )),= Returns `true` if `self` is less than or equal to `version`.$@$F If `version` is less than `self`, or if `version` is not a valid Rust$Iڬ%$%% && Е&&ϭ&4'$ assert!(version.at_most("1.35.1"));''$ assert!(version.at_most("1.55.0"));''$ assert!(version.at_most("1.35.0"));''(% assert!(!version.at_most("1.33.0"));((% assert!(!version.at_most("1.13.2"));((()) ) +.,8 Returns `true` if `self` is exactly equal to `version`.*;*I If `version` is not equal to `self`, or if `version` is not a valid Rust*Lڬ+$++ ,, Е,,ϭ,4,$ assert!(version.exactly("1.35.0"));-'-% assert!(!version.exactly("1.33.0"));-(% assert!(!version.exactly("1.35.1"));-(% assert!(!version.exactly("1.13.2"));.(... / ./0400 11411    3 C Reads the release channel of the running compiler. If it cannot beFG determined (see the [top-level documentation](crate)), returns `None`.J   use version_check::Channel; match Channel::read() {1 Some(c) => format!("The channel is: {}", c),4; None => format!("Failed to read the release channel.")> 7 9 .H Parse a Rust release channel from a Rust release version string (of theKH form `major[.minor[.patch[-channel]]]`). Returns `None` if `version` isK! not a valid Rust version string.$  Կ 0 let dev = Channel::parse("1.3.0-dev").unwrap(); 3 assert!(dev.is_dev());  9 let nightly = Channel::parse("1.42.2-nightly").unwrap(); < assert!(nightly.is_nightly()); " 3 let beta = Channel::parse("1.32.0-beta").unwrap(); 6 assert!(beta.is_beta());  / let stable = Channel::parse("1.4.0").unwrap(); 2 assert!(stable.is_stable());    8  'G Returns `true` if this channel supports feature flags. In other words,J< returns `true` if the channel is either `dev` or `nightly`.?  Կ3" assert!(dev.supports_features());%<& assert!(nightly.supports_features());)6$ assert!(!beta.supports_features());'2& assert!(!stable.supports_features());)f? Returns `true` if this channel is `dev` and `false` otherwise.B  Կ3/ let stable = Channel::parse("1.0.0").unwrap();2 assert!(!stable.is_dev()); ! C Returns `true` if this channel is `nightly` and `false` otherwise.F  Կ8 let nightly = Channel::parse("1.3.0-nightly").unwrap();;"2 assert!(!stable.is_nightly());"    "$@ Returns `true` if this channel is `beta` and `false` otherwise.!C"" "" Կ""2 let beta = Channel::parse("1.3.0-beta").unwrap();"5###2 assert!(!stable.is_beta());#$$$ #(B Returns `true` if this channel is `stable` and `false` otherwise.%E%% && Կ&&&2' ''5 assert!(!beta.is_stable());'(( ( $)3)4)%)% &  ;@ Reads the release date of the running compiler. If it cannot beCѾJ   use version_check::Date; match Date::read() {6 Some(d) => format!("The release date is: {}", d),98 None => format!("Failed to read the release date.");)) * *++++*B*,,,,*E (I Parse a release date of the form `%Y-%m-%d`. Returns `None` if `date` isL not in `%Y-%m-%d` format.  / let date = Date::parse("2016-04-20").unwrap();2& assert!(date.at_least("2016-01-10"));)% assert!(date.at_most("2016-04-20"));(% assert!(date.exactly("2016-04-20")); ( C assert!(Date::parse("2021-12-31").unwrap().exactly("2021-12-31")); F 2 assert!(Date::parse("March 13, 2018").is_none()); 5- assert!(Date::parse("1-2-3-4-5").is_none()); 02 assert!(Date::parse("2020-300-23120").is_none()); 50 assert!(Date::parse("2020-12-12 1").is_none()); 3+ assert!(Date::parse("2020-10").is_none()); .( assert!(Date::parse("2020").is_none()); +  ) )C --' -////-G6< Creates a `Date` from `(year, month, day)` date components.?H Does not check the validity of `year`, `month`, or `day`, but `year` isKH truncated to 23 bits (% 8,388,608), `month` to 4 bits (% 16), and `day`K to 5 bits (% 32).  < assert!(Date::from_ymd(2021, 7, 30).exactly("2021-07-30"));?< assert!(Date::from_ymd(2010, 3, 23).exactly("2010-03-23"));?< assert!(Date::from_ymd(2090, 1, 31).exactly("2090-01-31"));?, // Truncation: 33 % 32 == 0x21 & 0x1F == 1./< assert!(Date::from_ymd(2090, 1, 33).exactly("2090-01-01"));?)) 0!')) 1*4 Returns `true` if `self` occurs on or after `date`.7B If `date` occurs before `self`, or if `date` is not in `%Y-%m-%d`E format, returns `false`.  / let date = Date::parse("2020-01-01").unwrap();2& assert!(date.at_least("2019-12-31"));)& assert!(date.at_least("2020-01-01"));)& assert!(date.at_least("2014-04-31"));)' assert!(!date.at_least("2020-01-02"));*' assert!(!date.at_least("2024-08-18"));*)) 2233332I$)5 Returns `true` if `self` occurs on or before `date`.8 A If `date` occurs after `self`, or if `date` is not in `%Y-%m-%d` D !! !! !!!2"% assert!(date.at_most("2020-01-01"));"(% assert!(date.at_most("2020-01-02"));"(% assert!(date.at_most("2024-08-18"));#(#& assert!(!date.at_most("2019-12-31"));#)& assert!(!date.at_most("2014-04-31"));#)$$)$) 4$455554K))3 Returns `true` if `self` occurs exactly on `date`.%6%C If `date` is not exactly `self`, or if `date` is not in `%Y-%m-%d`%F&&& '' '''2'% assert!(date.exactly("2020-01-01"));(((& assert!(!date.exactly("2019-12-31"));()& assert!(!date.exactly("2014-04-31"));()& assert!(!date.exactly("2020-01-02"));))& assert!(!date.exactly("2024-08-18"));)))*)*) 6*677776M+;+4+8+8 9S# ??@@@@?O?AAAA?R?BBBB?T?CCCC?U[+d DEEEEDXDFFFFDX#E# G$GHHHHG]$GIIIIGa%GJJJJGe(3L Reads the triple of [`Version`], [`Channel`], and [`Date`] of the installed%O or running `rustc`.&&: If any attribute cannot be determined (see the [top-level&=( documentation](crate)), returns `None`.'+'A To obtain only one of three attributes, use [`Version::read()`],'D* [`Channel::read()`], or [`Date::read()`].(-( K02J Checks that the running or installed `rustc` was released **on or after**-M some date.--K The format of `min_date` must be YYYY-MM-DD. For instance: `2016-12-20` or-N `2017-01-09`...I If the date cannot be retrieved or parsed, or if `min_date` could not be.LJ parsed, returns `None`. Otherwise returns `true` if the installed `rustc`/M: was release on or after `min_date` and `false` otherwise./=0 0 L52K Checks that the running or installed `rustc` was released **on or before**1N22K The format of `max_date` must be YYYY-MM-DD. For instance: `2016-12-20` or2N33I If the date cannot be retrieved or parsed, or if `max_date` could not be3L4M; was release on or before `max_date` and `false` otherwise.4>5 5 M90I Checks that the running or installed `rustc` was released **exactly** on6L77G The format of `date` must be YYYY-MM-DD. For instance: `2016-12-20` or7J88M If the date cannot be retrieved or parsed, or if `date` could not be parsed,8PF returns `None`. Otherwise returns `true` if the installed `rustc` was8I) release on `date` and `false` otherwise.9,9 : N>8J Checks that the running or installed `rustc` is **at least** some minimum;M version.< <K The format of `min_version` is a semantic version: `1.3.0`, `1.15.0-beta`,4>? OC8I Checks that the running or installed `rustc` is **at most** some maximum@LA AK The format of `max_version` is a semantic version: `1.3.0`, `1.15.0-beta`,ANA$BL If the version cannot be retrieved or parsed, or if `max_version` could notBOBP0 is at most `max_version` and `false` otherwise.C3CD PH6J Checks that the running or installed `rustc` is **exactly** some version.EMFG The format of `version` is a semantic version: `1.3.0`, `1.15.0-beta`,FJF$FK If the version cannot be retrieved or parsed, or if `version` could not beGNM parsed, returns `None`. Otherwise returns `true` if the installed `rustc` isGP) exactly `version` and `false` otherwise.H,HH QO-H Checks whether the running or installed `rustc` supports feature flags.JKJ= In other words, if the channel is either "nightly" or "dev".J@KK Note that support for specific `rustc` features can be enabled or disabledKNG via the `allow-features` compiler flag, which this function _does not_LJL check. That is, this function _does not_ check whether a _specific_ featureLOJ is supported, but instead whether features are supported at all. To checkMM@ for support for a specific feature, use [`supports_feature()`].MCNJ If the version could not be determined, returns `None`. Otherwise returnsNML `true` if the running version supports feature flags and `false` otherwise.OOO RPRSSSSRfT6D Checks whether the running or installed `rustc` supports `feature`.PGQI Returns _true_ _iff_ [`is_feature_flaggable()`] returns `true` _and_ theQLM feature is not disabled via exclusion in `allow-features` via `RUSTFLAGS` orQPK `CARGO_ENCODED_RUSTFLAGS`. If the version could not be determined, returnsRN `None`.R SS SS  use version_check as rustc;SS9 if let Some(true) = rustc::supports_feature("doc_cfg") {S<, println!("cargo:rustc-cfg=has_doc_cfg");T/ }TTTT TVTUUUUThWTVVVVTjWTWWWWTiW"W YTYYYYToYTZZZZTpZT[[[[Ts[T\\\\Tu? Version number: `major.minor.patch`, ignoring release channel.BԸ_^_]] ^]][ [ [ [ [ [ [ [ [ [ a[a bffff ffff fffff ffffffdfd ejjjj  p p p p  p pg pg h w w  w  w  w w i wi j      k k l< A/!lnopqrstuoqsuLLmm/LLmm/UUmm/UUmm/bbmm/bbmm/llmm/llmm//vv w    /    /  yy z****/****/***** ******|*| }..../4444/444 8 Release channel: "dev", "nightly", "beta", or "stable".w;3U (Ld/3/3 /3     3    3   33  33 - Release date including year, month, and day.0;}Txl:;:;' ':;     ;    ;   ;;   ;    !;    ! ! ! ! ";! ! ! """"#;""" ##))..000 111   $()))  $$**+++ 05:?DHT[[f p w w  *4 !!"")-  P  M  K&https://crates.io/crates/rustc_version  R   Q Version::read Date::read  ]   Channel::read     N       T 88889,'?DGKLMNOPQRT  ::Command(;]<=>]^ $b[ [ 77 7 7ef7 7hp7 7jw  w 77 7 7l 77 7 7 # 7 7#majorminorpatch%%%7 7%%%# #77 7 7) )77 7 7. .77 7 7G00777 7 7GGGDGDGDG DGDG]D QU6'7  Inj=)! Qs,~G11777 7 7GGGDGDGDG DGDG]D QU6'7m $G/w777 7/ 7GGGDGDGDG DGDG]D QU6'7///z  77 7/ 7///}*7 7///47 7//G3777 73 7GGGDGDGDG DGDG]D QU6'7333  77 73 73337 73337 733 !"#$9 7 797 737 737 73 7 73$7 73(7 73G3&))777 73 7GGGDGDGDG DGDG]D QU6'7 $'(G;777 7; 7GGGDGDGDG DGDG]D QU6'7;;;  77 7; 7;;;7 7;;;7 7;;;; ! 77 7; 7;;"77 7; 7;*-01246D 7 7Dyearmonthday%__;7 7;%__ 77 7; 7$ $77 7; 7* *77 7; 7G;9++777 7; 7GGGDGDGDG DGDG]D QU6'7O'$' '  7 7!' 7Y  7 7!] a $! =(! =(3;min_date07 7 =(max_date57 7 :7 7 min_version> 7 7 max_versionC 7 7 H7 7fhghgj'$O'$'T7 7! $#'%)))! $9! $D'%III,#*%$KoNOx,#*%$Kc5ɑL,#*%$K7\^,#*%$K+@Kx ,#*%$K`#^K,#*%$Kg$,#*%$K)!EӦ-',#*%$K)lL#֧,#*%$KB"q5,#*%$K.|3,#*%$KO},#*%$KuDT {4O,#*%$KN(XS'S,#*%$KZf(,#*%$KCrT ,#*%$Kz̼J,#*%$K lD8#,#*%$KGw@,#*%$Ka9i ,#*%$KY'\,#*%$KQ\Z{b,#*%$K6{G,#*%$K-XO ,#*%$Kӕx,#*%$KAOg,#*%$KMb5L,#*%$K/ ,#*%$Kj-2,#*%$KE(#,#*%$Kx m,#*%$KyS_,#*%$K0P,#*%$K|(Q,#*%$Ku,#*%$K+,#*%$K\),#*%$K&,#*%$K Id,#*%$K7&MQ?,#*%$KT ʊXP,#*%$K~q~{ݱ,#*%$Kk}Y,#*%$KA%}a},#*%$KqwךT,#*%$K7,#*%$KsRűa,#*%$KWDDq,#*%$K8e,#*%$K:鬃,#*%$K,#*%$K} +J,#*%$KTa,#*%$K"t>u|,#*%$Kr,#*%$KO',#*%$K'M\,#*%$KE2,#*%$Kbnl,#*%$KB^с,#*%$Ko9fvy,#*%$K dJY,#*%$KlUOȼ,#*%$Ko,#*%$Ke,#*%$K+AyC,#*%$KH=Dȕ,#*%$KMH+,#*%$K"=VI Q|,#*%$K}_,gj ,#*%$KJ?.,#*%$K=5V$,#*%$KH@b^(,#*%$KQ"=$,#*%$KG2|.,#*%$K 1e3t,#*%$KAs,,#*%$KH##8,#*%$KBAP,#*%$K"5k,#*%$KI^3 |l,#*%$K-:QY[=,#*%$K{6k%+,#*%$K0&J,#*%$K>,#*%$K /@% ),#*%$KQt z,#*%$K;-,#*%$K0},#*%$KX+(^ \,#*%$KqUljn,#*%$KH=[,#*%$Ka۞[,#*%$Ki[Q嫣,#*%$K#, ,#*%$K@u!,#*%$Kdek =G,#*%$K5t,#*%$Kdb.g,#*%$K\;,#*%$K PM,#*%$Kٞh,#*%$Km(t ,#*%$KgoD,#*%$KќkJ,#*%$KR;A,#*%$K;^鯌,#*%$KK,U}6,#*%$KJ+ogU,#*%$KlXhGx,#*%$KS#{,#*%$KxiKjq,#*%$K h4%,#*%$KӽS,#*%$Kޙ/;,#*%$K%?H'~o,#*%$KmK/,#*%$K̲lZ],#*%$K,#*%$K,#*%$KHU,#*%$KeL`=},#*%$K@Rԃ,#*%$K)Q,#*%$K[Cu,#*%$KWgiR%(,#*%$Kٺ,#*%$K{!"k_n,#*%$KtbETƗ,#*%$K{/a=P,#*%$KvR \,#*%$K\[M,#*%$KPI,#*%$K|sd,#*%$K(*6,#*%$Kr\FJ,#*%$K9n01,#*%$K_3WNj,#*%$KA,#*%$KmKYc,#*%$Ks35,#*%$Ka-#ej,#*%$KnGf ,#*%$K7oD,#*%$Krf>,#*%$Kd'<,#*%$Kÿg;y,#*%$KZh,#*%$KE1q8k,#*%$Kݢ)P=,#*%$K՘֚T,#*%$Kb=,#*%$K ,#*%$K)V,#*%$K&ĠEe,#*%$KϞRdL,#*%$K *zK,#*%$KկT&,#*%$K.\r,#*%$K!Y,#*%$KǽiF&,#*%$K2gԢB,#*%$Ks#yN,#*%$KlPZH,#*%$KзR0 R,#*%$K,dNg,#*%$K4J*+,#*%$K٘I\,#*%$K0u.N,#*%$KÇC,#*%$KSE4v,#*%$KQN[f5T,#*%$KSkf,#*%$KT,#*%$Kww?,#*%$Kjx,#*%$K2X,#*%$Ko;sZ,#*%$K»&<9,#*%$K2>>X,#*%$K¶c@p,#*%$Ksw,#*%$KOm$[,#*%$KL׎#/I,#*%$Kh-En,J,#*%$K dV&8,#*%$KTKJ,#*%$K}x ,#*%$KEno䗀,#*%$K+m ,#*%$Kc}(8jp,#*%$K-H*4-,#*%$KA" ,#*%$KxѨ}Q,#*%$K%9V,#*%$KIK,#*%$KL,#*%$K/LS5,#*%$K#b+,#*%$KB-&,#*%$KX6 ,#*%$K!,#*%$Kfy@h,,#*%$K?^|,#*%$Ku :3,#*%$K8E ,#*%$Kzty{u,#*%$KO.,#*%$KՖ/,#*%$K[p,#*%$K0j4,#*%$KA_n,#*%$Kn#S,#*%$K] IP(;=QIII KRLL\QQ S U YPY[[^G^[^^^^^^ `7a}addf Nh i k BlVllll Znnnrruvxx%{k{}} ~n~~~(n&lڀ f * ކ È k ʔVpB?ZDĘ"P['kț&T2auƞ-`ǟ#͡RRG{&72~ЬPCMêʪ=AHOVmwï,Ӱݰ%,X_V \cŴ      !$$$$!!IIKAQSUX[]o^^^`sddf1hij%ljllCneruu|x{}!~~ņʊtRk\ږ'E˗5bΚ.V9 Z{ڞticӡ2̢[¤)=IIIIIIKLLLVQQQSUYJY[[]A^U^^^^^^^`1awaddfHhikfÛ!O~-\@o'ZǡLLۣAuܤCKS[cks{å˥ӥۥ #+3;CKS[cks{ǦΦզݦ&.6>FNV^fnv~IIIIIK-QlSzUXm[]I^[^^^^^^`_ddfhijlDlVllll/nQruuhxz}} ~>~J~V~^~f~n~l`>{WVԖ?x3"nϙ]w)C&rPFuƞN`Sݠ]͡ s @5GIQYaiqyɥѥ٥ !)19AIQYaiqyŦ̦Ӧۦ $,4<DLT\dlt|IKFLLPQQQSUXDY[[];^Q^~^^^^`+aqaddf@hik4lLlyllLnnntrrruuxx{_{}}~0~~~b`΀Z ҆׊_ܑxJd6|1Oٗ ;Cvי lؚ8`Gz%Xe#VyjޡB{ܢHѣ =kҤ 9IKK`LBQjQQSUXY[[]^K^p^^^^``Eatddf2hij&lFlkllDnhnnfrrruu}xx {3{}}}"~~~~6|4.ƆˊuSlؔ^~ĕ Pۖ)Gz̗56pљdК0X:tR \}۞Pujߠdա3u͢B£7\ä*IKJLLTQQQSUYHY[[]?^S^^^^^`/auaddfDhi k8lNl}llPnnnxrrruuxx{c{}}~4~~~ fdҀ^ Ԇيaz”Nf:5Sݗ=Gxٙ"pܚ <dK|)Zj%X~l¡G}J֣ ?pפ >KBQSUX[]p^^`tddf2hij&lklDnfruu}x {}"~~ƆˊuSlۖ)̗6dК0X: \۞ujd3͢£\ä*/8A٫ J^RZbk&HjWt}g-kzKV_hзٷ2M|ù˹ݹԹ]ҪO̮˯7.26ii'mش!KKRL3Q\QrSUX Ys[[]^a^^``7aeddf#hijl\l5nZnnWrruunxxz%{}}~t~~~(n&rڀ fD]ʔpB'|H+L̞fY$Mɬ<Cê6fm̰Ӱ%QXO U\"gj !"v#$%&'j) **,-.@1t2.33i5n6v7L89: o / 8;[_<,Lz"5K;<<!Kf!y""u#$%&'i) **,-.?1s2-33h55m6u7K89:;n . 7^<Z=+i "U6"Z6MѬڱ@bW^޵Zq29hù N˪>xį!߰.aXeǴ####  2 + #  #  #  2 + IIIG^^^^Blll}Җv1l͙['pN}L۠[ q >30"z$n ,0>BFMQXfjnuy} *7>BIMTX\cgkosw 1CWl  '+/6:>EIPT[fpt  %)-5@EMQY]aimqy}     % + 1 7 = C I O U [ a g m s y      & - 4 ; B I P W ^ e l s z :AHO$|*;/$ںںFilterݺ޺ predicate)7stuMap/AGfXSplit X dT^opsY 9$/$oY)$Yp/$$Ys' Y$Ys'p/%G/%'/$ZZZSplitInclusiveZ X p?XLinesMap |h!7X! ' ' MMIterMMMMM_markerMm{_'$\^Y \^YL_L_L__*pY* X dT^$O)/AGfXG)/AGfX'M_33Z/$ gk_MLNPOQTR*-4620K" !#$    gk_Box  lS <)Ҏ<<Custom<<_x~0չ_!  $$($( /:%^Y;;;;;;;;;;' ''uO''''GbOs Simple  SimpleMessage  BZ˷  lS <)Ҏ_!  ^ root length  O /<gk_  IntoIter range  . D>gk_  Inj=)!2S0Z  lS <)Ҏ_    DropGuard   Sjpgk_444]/4/-Q._##RawVec&'cap(e_]a (((g'ԱXXD*^88f8g#Zg##OwnedFd#fd#d"r$[QQBufQgB$N`OOOFileDescO F gKBorrowed Owned 39##&'(e__ Repr    >)>$ U>$ T>+>.>;M>$$R>3f>ggi> !e>;I>$ X>ggh>;K>gj>! 7>a a> 39>! B>! !> $> ;E>>$B ]]B `Baק_'(__[[[%%%gU:8 gk_Handlenodeidx=O67 hNodeRefheight+SK֟\/lgk٪ D=O67 h+SK֟gkk)beB&$+sqgk_! _gk_gkgkgkgkgkgk!  NonNullW%.  InternalNodedataedges v>gk=O67 h+SK֟gkc  LeafNodeparent parent_idxkeysvals\; Agkgkgkgkgk_gk_gk_!Ȁgkgkgk_gk_|_|_|_|_|_7__<_<_<_<__8Lines X \">J8кк EnumerateҺ)Ӻ)_.vp#8ккҺ)Ӻ)_.vp#9w6_6__6_6_&L__X_X__X_X_!5'5'$___$P_'$'$\\ gk_ gk_Z!   #""   "!!    core_intrinsics,#*%$K/}O ю derive_eq ,#*%$KI}O ю ,#*%$KVCPq2i4% юderive_clone_copy,#*%$KړhQ( =ю ,#*%$K)s8Vip% ю,#*%$Kdag[ =ю ,#*%$K(e>i,#*%$KjKb ю,#*%$KMumHю,#*%$K<=7hp2юfmt_helpers_for_deriveGG,#*%$K吤+'gmHю,#*%$K/(*džp2юGG,#*%$K =}*O ю ,#*%$KK[O/D\w ю,#*%$KP tg}fO ю ,#*%$Kݎi(w=),#*%$Kλ%O@B,),#*%$Kԏ?#R6),#*%$KuweIfNi% ю,#*%$K\źi+. =ю ,#*%$KHEA.J8si% ю,#*%$K?R =ю ,#*%$KMTTm.Hю,#*%$KdAj.yp2юGG,#*%$KFHG ю,#*%$Kc"`mjHю,#*%$KR[@,),#*%$KtO4i0FFFGFnFGFeFF\FFFSFFFJFFFF8FFFAFFwFGHlK8eI,#*%$Ka9i ,#*%$KE1q8k,#*%$KR;A,#*%$Kc}(8jp,#*%$KH=Dȕ[,#*%$KQ"=$b,#*%$K%9V,#*%$K[Cu,#*%$KtbETƗ,#*%$Kh-En,J,#*%$K] IP,#*%$KќkJӁ,#*%$K+@Kx ,#*%$KTKJ,#*%$K,dNg,#*%$KկT&ܶ,#*%$KlV5,#*%$K_3WNj,#*%$K dV&8,#*%$K!Y,#*%$K̲lZ],#*%$K-:QY[=j,#*%$Kr\FJ,#*%$KA_n,#*%$KncFA3,#*%$Ka-#ej,#*%$K}_,gj ^,#*%$KlXhGx,#*%$K h4%,#*%$KWgiR%(,#*%$KǽiF&,#*%$KOm$[,#*%$KqUljns,#*%$KEno䗀,#*%$KCrT ,#*%$Ko;sZ,#*%$KGw@,#*%$Kx m,#*%$Kfy@h,,#*%$Kzty{u,#*%$KA%}a}*,#*%$Kƈ}LZ0,#*%$K}x ,#*%$KI^3 |li,#*%$K՘֚T,#*%$K lD8#,#*%$KWP1,#*%$K'M\Q,#*%$KÇC,#*%$K!,#*%$K`#^K,#*%$Kٞh~,#*%$K[J.?,#*%$KQ\Z{b,#*%$KH@b^(a,#*%$K(*6͟,#*%$K\[Mɜ,#*%$K0P,#*%$K»&<9,#*%$K)V,#*%$K>m,#*%$Kz̼J,#*%$K/ ,#*%$K dJYV,#*%$K{/a=P,#*%$K&ĠEe,#*%$KT ʊXP',#*%$KTaM,#*%$K2>>X,#*%$KMH+\,#*%$K7\^,#*%$KϞRdL,#*%$K2gԢB,#*%$KՖ/,#*%$KqwךT+,#*%$K-XO ,#*%$KO} ,#*%$KSkf,#*%$K܍垯8,#*%$KBAPg,#*%$Ku!,#*%$KTЯ||6,#*%$K6ħ4,#*%$K@Rԃۓ,#*%$K.qf H,#*%$Kdb.g{,#*%$K ,#*%$KlPZH,#*%$KO.,#*%$Krf>,#*%$Ko9fvyU,#*%$Kӕx,#*%$KL:,i|9,#*%$KZ}h+:,#*%$K|sd,#*%$KзR0 R,#*%$KuDT {4O ,#*%$Kdek =Gy,#*%$K{!"k_n,#*%$K0j4,#*%$KIK,#*%$KA,#*%$KJ?._,#*%$KE(#,#*%$Km(t ,#*%$K)Q֔,#*%$K;-p,#*%$K0u.N,#*%$K9n01,#*%$K.|3 ,#*%$KQN[f5T,#*%$KX6 ,#*%$K9mD,#*%$K:鬃J,#*%$Ku :3,#*%$K"t>u|N,#*%$K /@% )n,#*%$KHHylJ;,#*%$KPI,#*%$K)lL#֧,#*%$KL,#*%$KoNOx,#*%$KlUOȼW,#*%$K7&MQ?&,#*%$Ki[Q嫣v,#*%$KN(XS'S ,#*%$K PM},#*%$KK,U}6,#*%$K/LS5,#*%$K\)#,#*%$KyS_,#*%$KeL`=},#*%$K#b+,#*%$K 1e3td,#*%$K,Xk%2,#*%$KΜkkh?C,#*%$Kݠ:m!A,#*%$KmKYc,#*%$KoX,#*%$KJ+ogU,#*%$K+m ,#*%$Kww?,#*%$K+%yi5E,#*%$K+AyCZ,#*%$K6{G,#*%$Kk}Y),#*%$K~q~{ݱ(,#*%$K0}q,#*%$KxѨ}Q,#*%$K+",#*%$K_7@,#*%$KeY,#*%$K|(Q ,#*%$KZf( ,#*%$KHv[?>,#*%$K} +JL,#*%$KO'P,#*%$K7,,#*%$KY'\,#*%$KH=[t,#*%$K8E ,#*%$Kٺ,#*%$K61!=,#*%$K"5kh,#*%$K\;|,#*%$KAs,e,#*%$K,#*%$Ka۞[u,#*%$K٘I\,#*%$Kb=,#*%$K)!EӦ-',#*%$KK,#*%$KMb5L,#*%$KH##8f,#*%$K#, w,#*%$K;/ɮG,#*%$K¶c@p,#*%$K?^|,#*%$K92[xU1=8?,*RJXr@b%bds5 CJ+:K%si`%3nEAyk%]y<-E@-~6:q 6*e(.!%Hw1fduP ud,p2([eS!BxI`3b(}J~mT3Ip<<~)'#7%~kN'TkF6AL%OSg^Q)}Pu?>o:\H1cEcuW,X_fdZa_I AC][we`-.Uf&aV8>CAGSJ8oS"G8A<0Zl}IkqNZ=K69$>92[xUq/Users/richardalbertleddy/.cargo/registry/src/index.crates.io-6f17d22bba15001f/version_check-0.9.4/src/version.rs Ɗw[dGaҕҕC7ND$ 5; '!.:2MM$9,A,16+4+<83/16 5((!/(5! :1M$@@@@ EPJ$LLLL .""3HQ)$9---..9-. 4 -EN)$9,,,-- 3 -@Q)$9,--- 3 - ;33;I@ !PK2 "L #6Q  (*..64,.,(L>V +(&"##%$- 2228020,0> 9,-+(,--A14,+6+2)34+)'<%E  %%)&&0uZ"5!1q/Users/richardalbertleddy/.cargo/registry/src/index.crates.io-6f17d22bba15001f/version_check-0.9.4/src/channel.rs *uSVGLǑ- <-KO$ 9C '!.:PP)$8A';!7% 5&:%I)C&+( 1' "(& OD$8*A.;,7. .// G$87# # K$@'7' '# H$:!7$ $  J$7%:$ &"  ;'u6u0E6ȑȑ17> HO!>@ $!(1Q"!7.--K:5:830 /!R(5! ;K ;DPP!DDD4D ='1'!,(%%<J!!7...// 1'=I!!7---.. 0';K!!7-.... 0';'- %L  ******9ƷWƉ!@Um/Users/richardalbertleddy/.cargo/registry/src/index.crates.io-6f17d22bba15001f/version_check-0.9.4/src/lib.rs UlĢgѕLNKMCO$+<> N3M+/-,: L:>+,?5: C+?2 @+%DFC PO3OP(= ## CV36%>]BK^0U.H)#7N8 AHKHBBP>,E.6A>6)><> NOMN>52LOOMN?52LMKQJ-3.DN O%PQ5;;HM O%PQ4;;HNK%OQ-97HLAOKPNDNP03HMQO  =09#)+;&I.@14==8>Q NN 4<7,3MF 5OG.HISS %2M '2U  .,>*($6IQcSc  &F!I+*2@FI+*2@4!I+2B5[!iKm0yyk{|`~ version_checkx86_64-apple-darwin-1ee68fd77645a535U:%.V;5 ,#*%$Kځ          Xc