From 1f01bee1e54d691cc2a5e4a398a12394e860f9e1 Mon Sep 17 00:00:00 2001 From: Andrew Bruce Date: Fri, 29 Nov 2024 09:24:10 -0800 Subject: [PATCH] added pins: changelog, sources, hierarchy, raw --- DESCRIPTION | 5 +- NAMESPACE | 5 +- NEWS.md | 2 +- R/arktax.R | 131 ++++++++++++--- data-raw/nucc_pins.R | 6 + data-raw/splitting.R | 155 +++++++++++++++--- inst/extdata/pins/_pins.yaml | 4 + .../20241129T163133Z-a31f6/changelog.qs | Bin 0 -> 4175 bytes .../changelog/20241129T163133Z-a31f6/data.txt | 10 ++ .../sources/20241129T163125Z-e153d/data.txt | 10 ++ .../sources/20241129T163125Z-e153d/sources.qs | Bin 0 -> 15091 bytes man/retrieve_ark.Rd | 34 ---- man/retrieve_changelog.Rd | 24 +++ man/retrieve_hierarchy.Rd | 24 +++ man/retrieve_raw.Rd | 28 ++++ man/retrieve_sources.Rd | 24 +++ 16 files changed, 383 insertions(+), 79 deletions(-) create mode 100644 inst/extdata/pins/changelog/20241129T163133Z-a31f6/changelog.qs create mode 100644 inst/extdata/pins/changelog/20241129T163133Z-a31f6/data.txt create mode 100644 inst/extdata/pins/sources/20241129T163125Z-e153d/data.txt create mode 100644 inst/extdata/pins/sources/20241129T163125Z-e153d/sources.qs delete mode 100644 man/retrieve_ark.Rd create mode 100644 man/retrieve_changelog.Rd create mode 100644 man/retrieve_hierarchy.Rd create mode 100644 man/retrieve_raw.Rd create mode 100644 man/retrieve_sources.Rd diff --git a/DESCRIPTION b/DESCRIPTION index 74f483e..fad8dc4 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -10,10 +10,13 @@ URL: https://github.com/andrewallenbruce/arktax, https://andrewallenbruce.github.io/arktax/ BugReports: https://github.com/andrewallenbruce/arktax/issues Imports: + cli, fs, fuimus, glue, - pins + pins, + rlang, + stringfish Suggests: qs, roxyglobals, diff --git a/NAMESPACE b/NAMESPACE index c1066cd..7bf9777 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -4,7 +4,10 @@ export(get_pin) export(gh_raw) export(list_pins) export(mount_board) -export(retrieve_ark) +export(retrieve_changelog) +export(retrieve_hierarchy) +export(retrieve_raw) +export(retrieve_sources) importFrom(fs,path_package) importFrom(fuimus,search_in_if) importFrom(glue,glue) diff --git a/NEWS.md b/NEWS.md index 5f3a322..99575be 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,3 @@ -# arktax (development version) +# arktax 0.1.0.9000 (2024-11-16) * Initialize package diff --git a/R/arktax.R b/R/arktax.R index 072c506..b0257b5 100644 --- a/R/arktax.R +++ b/R/arktax.R @@ -1,42 +1,129 @@ -#' Get Taxomony Source File +#' Retrieve Taxonomy Source File #' #' @param year `` year of source file release; options are `2009:2024` #' #' @param version `` version of source file; options are `0` or `1` #' -#' @param code `` Health Care Provider Taxonomy code, a unique alphanumeric code, ten characters in length -#' -#' @param which `` `wide` or `long` version of the taxonomy +#' @param code `` Health Care Provider Taxonomy code, a unique +#' alphanumeric code, ten characters in length #' #' @returns `` of search results #' #' @examples -#' retrieve_ark(year = 2024, code = "101Y00000X", which = "wide") +#' retrieve_raw(year = 2024, code = "101Y00000X") #' -#' retrieve_ark(code = "101Y00000X", which = "long") +#' retrieve_raw(code = "101Y00000X") #' #' @importFrom fuimus search_in_if #' #' @autoglobal #' #' @export -retrieve_ark <- function(year = NULL, +retrieve_raw <- function(year = NULL, version = NULL, - code = NULL, - which = c("wide", "long")) { - - ark <- switch( - which, - wide = get_pin("ark_taxonomy"), - long = get_pin("ark_long") - ) - - if (which == "wide") { - ark <- search_in_if(ark, ark[["year"]], year) - ark <- search_in_if(ark, ark[["version"]], version) - } + code = NULL) { + check_nchar(code, 10) + pin <- get_pin("ark_taxonomy") + pin <- search_in_if(pin, pin[["year"]], year) + pin <- search_in_if(pin, pin[["version"]], version) + pin <- search_in_if(pin, pin[["code"]], code) + return(pin) +} + +#' Retrieve Taxonomy Sources +#' +#' @param code `` Health Care Provider Taxonomy code, a unique +#' alphanumeric code, ten characters in length +#' +#' @returns `` of search results +#' +#' @examples +#' retrieve_sources(code = "101Y00000X") +#' +#' retrieve_sources(code = "103TA0400X") +#' +#' @importFrom fuimus search_in_if +#' +#' @autoglobal +#' +#' @export +retrieve_sources <- function(code = NULL) { + check_nchar(code, 10) + pin <- get_pin("sources") + search_in_if(pin, pin[["code"]], code) +} + +#' Retrieve Taxonomy Changelog +#' +#' @param code `` Health Care Provider Taxonomy code, a unique +#' alphanumeric code, ten characters in length +#' +#' @returns `` of search results +#' +#' @examples +#' retrieve_changelog(code = "103GC0700X") +#' +#' retrieve_changelog(code = "103G00000X") +#' +#' @importFrom fuimus search_in_if +#' +#' @autoglobal +#' +#' @export +retrieve_changelog <- function(code = NULL) { + check_nchar(code, 10) + pin <- get_pin("changelog") + search_in_if(pin, pin[["code"]], code) +} + +#' Retrieve Taxonomy Hierarchy +#' +#' @param code `` Health Care Provider Taxonomy code, a unique +#' alphanumeric code, ten characters in length +#' +#' @returns `` of search results +#' +#' @examples +#' retrieve_hierarchy(code = "101Y00000X") +#' +#' retrieve_hierarchy(code = "103TA0400X") +#' +#' @importFrom fuimus search_in_if +#' +#' @autoglobal +#' +#' @export +retrieve_hierarchy <- function(code = NULL) { + check_nchar(code, 10) + pin <- get_pin("ark_long") + search_in_if(pin, pin[["code"]], code) +} + + +#' Check that input is `n` character(s) long +#' +#' @param x `` string +#' +#' @param n `` number of characters +#' +#' @autoglobal +#' +#' @noRd +check_nchar <- function(x, n) { + + if (!is.null(x)) { - ark <- search_in_if(ark, ark[["code"]], code) + stopifnot(rlang::is_integerish(n), n > 0) - return(ark) + arg <- rlang::caller_arg(x) + call <- rlang::caller_env() + + if (any(stringfish::sf_nchar(x) != n, na.rm = TRUE)) { + cli::cli_abort( + "{.arg {arg}} must be {.val {n}} character{?s} long.", + arg = arg, + call = call) + } + stringfish::sf_toupper(x) + } } diff --git a/data-raw/nucc_pins.R b/data-raw/nucc_pins.R index fa6e8d1..b3ce29e 100644 --- a/data-raw/nucc_pins.R +++ b/data-raw/nucc_pins.R @@ -165,6 +165,12 @@ pin_update( description = "Health Care Provider Taxonomy Code Set Archive 2009-2024 (Long)" ) +get_pin("ark_long") |> + dplyr::count(code, level, sort = TRUE) |> + dplyr::filter(n > 1) |> + dplyr::pull(code) + + ark_long |> dplyr::group_by(code) |> dplyr::mutate(years = ivs::iv(min(year), max(year))) |> diff --git a/data-raw/splitting.R b/data-raw/splitting.R index 8654d4f..eed3188 100644 --- a/data-raw/splitting.R +++ b/data-raw/splitting.R @@ -1,11 +1,21 @@ source(here::here("data-raw", "pins_internal.R")) -wide <- arktax::retrieve_ark(year = 2024, which = "wide") |> - dplyr::select(-modified, -effective, -deactivated) +# Use wide version +wide <- arktax::retrieve_ark( + year = 2024, + version = 1, + which = "wide") |> + dplyr::select(-year, -version) |> + fuimus::remove_quiet() +#------------ BASE base <- wide |> dplyr::select(code, notes) |> - dplyr::distinct(code, notes, .keep_all = TRUE) |> + dplyr::distinct( + code, + notes, + .keep_all = TRUE) |> + dplyr::filter(codex::not_na(notes)) |> dplyr::mutate( .id = dplyr::row_number(), updates = stringr::str_extract_all(notes, "\\[.*\\]"), @@ -13,9 +23,65 @@ base <- wide |> notes = NULL) |> tidyr::unnest(updates, keep_empty = TRUE) +#--------- SOURCES +sources <- base |> + dplyr::select(-updates, -.id) |> + dplyr::filter(codex::not_na(sources)) |> + dplyr::distinct() |> + dplyr::mutate( + sources = dplyr::case_when( + code == "2085U0001X" ~ stringr::str_glue( + "{sources}. Additional Resources: See 2085R0202X. ", + "The American Osteopathic Board of Radiology no longer offers a certificate in this specialty ", + "(Diagnostic Ultrasound is part of the scope of a Diagnostic Radiologist)."), + .default = sources)) |> + dplyr::reframe( + code, + type = "primary", + source = stringr::str_remove(sources, "^[Ss]ources?: "), + addition = stringr::str_detect(sources, " Additional Resources: ")) + +sources <- vctrs::vec_rbind( + sources |> + dplyr::filter(!addition), + sources |> + dplyr::filter(addition) |> + tidyr::separate_longer_delim( + cols = source, + delim = stringr::fixed(" Additional Resources: ")) |> + dplyr::mutate( + id = dplyr::row_number(), + .before = 1, + .by = code) |> + dplyr::mutate( + type = dplyr::if_else( + id == 1, + "primary", + "additional"), + id = NULL)) |> + dplyr::select(-addition) |> + dplyr::mutate( + type = factor(type, + levels = c("primary", "additional"), ordered = TRUE)) |> + dplyr::arrange(code, type) + +# 2085U0001X +# 2008-07-01 +# Additional Resources: The American Osteopathic Board of Radiology no longer offers a certificate in this specialty. +# Note: In medical practice, Diagnostic Ultrasound is part of the scope of training and practice of a Diagnostic Radiologist - see Taxonomy Code 2085R0202X. + +pin_update( + sources, + "sources", + "NUCC Taxonomy Sources 2009-2024", + "Health Care Provider Taxonomy Code Set Sources 2009-2024" +) + + +#----------------------------- UPDATES updates <- base |> dplyr::select(-sources) |> - dplyr::filter(not_na(updates)) |> + dplyr::filter(codex::not_na(updates)) |> tidyr::separate_longer_delim( cols = updates, delim = stringr::fixed("; ")) |> @@ -24,8 +90,8 @@ updates <- base |> first = stringr::str_extract_all(updates, ", \\d{1,2}")) |> tidyr::unnest(first, keep_empty = TRUE) |> dplyr::mutate( - first = str_remove(first, ", "), - multi = str_count(updates, ", \\d{1}/\\d{1}/\\d{4}")) + first = stringr::str_remove(first, ", "), + multi = stringr::str_count(updates, ", \\d{1,2}/\\d{1,2}/\\d{2,4}")) updates <- vctrs::vec_rbind( updates |> dplyr::filter(multi == 0), @@ -36,21 +102,70 @@ updates <- vctrs::vec_rbind( delim = stringr::regex(", \\d{1,2}")) |> dplyr::mutate(updates = dplyr::if_else( stringr::str_detect(updates, "^[/]"), - stringr::str_glue("{first}{updates}"), updates)) -) |> - dplyr::select(-first, -multi) |> + stringr::str_glue("{first}{updates}"), updates))) |> + dplyr::select(-multi, -first) |> dplyr::mutate( - dates = stringr::str_extract_all(updates, "\\d{1,2}[/]\\d{1,2}[/]\\d{4}"), - updates = stringr::str_remove_all(updates, "\\d{1,2}[/]\\d{1,2}[/]\\d{4}[:, ]\\s?")) |> + dates = stringr::str_extract_all(updates, "\\d{1,2}[/]\\d{1,2}[/]\\d{2,4}"), + updates = stringr::str_remove_all(updates, "\\d{1,2}[/]\\d{1,2}[/]\\d{2,4}[:]\\s?"), + updates = dplyr::if_else(updates == "New", "new", updates), + updates = stringr::str_remove_all(updates, "\\d{1}[/]\\d{1}[/]\\d{4},?\\s?"), + updates = dplyr::if_else(updates == "42 U.S.C. 1396d(1)(3)(B)] [added definition", "added definition", updates)) |> tidyr::unnest(dates, keep_empty = TRUE) |> - dplyr::mutate(dates = clock::date_parse(dates, format = "%m/%d/%Y")) - -updates |> dplyr::mutate( - date_type = dplyr::case_when( - stringr::str_detect(updates, "[Nn]ew") ~ "effective", + dates = dplyr::if_else(dates == "7/1/24", "7/1/2024", dates), + dates = clock::date_parse(dates, format = "%m/%d/%Y"), + updates = dplyr::case_when( + code == "207RX0202X" & dates == "2007-07-01" ~ "added definition, added source", + code == "207RX0202X" & dates == "2007-11-05" ~ "corrected definition", + code == "320600000X" & dates == "2003-07-01" ~ "new", + code == "320600000X" & dates == "2021-01-01" ~ "modified title and definition", + code == "2085U0001X" & dates == "2008-07-01" ~ "definition added, source added", + .default = updates)) |> + dplyr::distinct() |> + dplyr::mutate( + category = dplyr::case_when( + stringr::str_detect(updates, "new") ~ "effective", stringr::str_detect(updates, "inactive") ~ "deactivated", - .default = "modified") |> forcats::as_factor()) |> - dplyr::arrange(code, dates) |> - dplyr::count(updates, sort = TRUE) |> - print(n = 50) + .default = "modified"), + category = factor( + category, + levels = c("effective", "modified", "deactivated"), ordered = TRUE) + ) |> + dplyr::arrange(code, dates, category) |> + dplyr::reframe( + code, + date_type = category, + date = dates, + change = stringr::str_replace(updates, "^marked inactive, use value ", "marked inactive, use ")) + +pin_update( + updates, + "changelog", + "NUCC Taxonomy Changelog 2009-2024", + "Health Care Provider Taxonomy Code Set Changelog 2009-2024" +) + +#--------- Comparing raw dates to the updates +updates |> dplyr::filter(type == "modified") + +arktax::retrieve_ark(which = "wide") |> + dplyr::select(code, modified) |> + dplyr::filter(codex::not_na(modified)) |> + dplyr::distinct() |> + print(n = 200) + +updates |> dplyr::filter(type == "effective") + +arktax::retrieve_ark(which = "wide") |> + dplyr::select(code, effective) |> + dplyr::filter(codex::not_na(effective)) |> + dplyr::distinct() + +updates |> + dplyr::filter(type == "deactivated") |> + print(n = 30) + +arktax::retrieve_ark(which = "wide") |> + dplyr::select(code, deactivated) |> + dplyr::filter(codex::not_na(deactivated)) |> + dplyr::distinct() diff --git a/inst/extdata/pins/_pins.yaml b/inst/extdata/pins/_pins.yaml index 5fe81ca..c1bca94 100644 --- a/inst/extdata/pins/_pins.yaml +++ b/inst/extdata/pins/_pins.yaml @@ -2,3 +2,7 @@ ark_long: - ark_long/20241129T111715Z-13827/ ark_taxonomy: - ark_taxonomy/20241124T214441Z-05252/ +changelog: +- changelog/20241129T163133Z-a31f6/ +sources: +- sources/20241129T163125Z-e153d/ diff --git a/inst/extdata/pins/changelog/20241129T163133Z-a31f6/changelog.qs b/inst/extdata/pins/changelog/20241129T163133Z-a31f6/changelog.qs new file mode 100644 index 0000000000000000000000000000000000000000..3623fee562a4c7218a4bbc93d75369c73ff967b5 GIT binary patch literal 4175 zcmV-V5U}qH4hjqa000030S^EH000000000p5C8xuwJ-f(EniK609te)7)k)Issk3N za_i#~xy%uduG`mF0XHVl#Qj+eM(L%w3aX)5W=--tFml@6mP3{A_=T)X`hU>SM9M9t zOw#!Vo;oh$N=2M^ZNyCiPXSW_i2vNFqlr7G65G>gR&#ayYX+S7k@{)i0kSK`^h4<`fb(N>JK$xt1Tswu+>jT*lJN&5`s-k zB7Z|hHh(^SE`3hbT&mg9YJt|AEzPNw4aNLl#TpW>9-FKluO6RPk1-{As_AI;c=b3G z;%mQ#*u+}Yg%SL>{)_hi!~Sb3nrapCP31~yHJNI)l~N0)T2&!PSZ}>6RjU52I;@nQ zbS>ptx|C9pkdR6%$p5J1Q%5CFMfuWD$%RZuBr8&qr`3T-ztZZUvm(G@6I%sE<>kV{ zV9QiuCmRK2Hz@J4vSoWk0jJ}6o`!}-N5kuAXmmUc&+B-e*YP?X&+BM-8XZrg)A2f< z*I5a0f$6265PwPpYdaEVd$YZ8vmLqF)>FPYq@jHC=g%Pd>U-_il8Pi0)@wq-xm2px zerWASSL;Aj;rsC)o$23+BIQU4?mTlEKnE@_gk_UTFM@RJ{_!Vm+#sn5rR zF&1G>-{k6x@1O3);op08$kq1-y54iS+b!2~xsJQ_T<^W>Qg-JFf;FaoyKlGKrPKo0 z&}cLojb_7XG+M3aSx^F#d*p$`1jQ<;~#C` z+}wz6Qlz-KNx^Sq`%961G!_+PwE#9YHUVt*2g*RsKMyfDxH0mL7|ur-=i}b8{l)N< zz4zvOXV@`3UWgbscnm-BfB|_5=R9PC9wQ$?K7uD8A9>6-rWk+$LxladeBVb)q45;FLIu!fV}tMgeKnOzrM?0M3W!7^k?xa`k?~|?WIPN&p+qt$KoI=E z4G;vk2oWGy_a_4*+kn|HFgr!IVK(Qxf@Yu@4hS?e!{LBHpxJCTGvmx=pc#iVGsEF< zKp@ZzG@EfiAP#880dZ!t&I&*am`m)$g`(iKVfzJhSwQ0D#kF#h;I(5e*M2>C1)IeM zLxJFmxn2%dHpCF1yfmzAh$$#BV>W{$gL8tj0RjjYSOWzd+e3($h8=Ug8gQ6+*(|P> z1QI+Jfj7Yefx^ej?BE& zD@gKov(@NmXmmQ7uG8Im$K7l>)1)cOlBVotzm>h4xQ;V#y_Yn&T-kBAZsJU{G-=9i zmc5%fT#ad#WlcAGX_~hiuA4XWmcyAQ4rlh>Z{@A`UYfm|G`O;NlC*VP@7;#8b((IP zWqG@Go6TnHH8(Ps%hljktfOy5>^(+mx51FT+5ywEw^23v@KIPmE3v!zV_`z)ZxiS5g(f2a9DA5sUoiaa*D;{ktf8%s?zSCs=pbsYwX&aYg zTc7ELlrbt!QFV<$sW5(XVE_K!{lS&)F%jRFWZ0mvLtFZyFWbBTzc8+4B~|AuwdPQA z`VWs&T0F1N8|bfmU$=lFD@wqn6lb?c^qxVywkA4Wd#>}AiMbYKtn)+K&%J>T4K!g> z#)St+S#kNl1`-{?g@t#lqbzOBL`p9v#>(7h8mL5vuHTzMZ)+J9$*{1978@utPc3qm zmzVU@h@j=5^AVm^AR?>c9R$)Yo=D~V#n1vQ5&6Cdh?lS>(fmpgxmPPF*_%J7h16?>?v8rA~&26cVBNsgyT|9wD?rtYL&|@S22$vQK~++W=$z78a=sK z{6Hzf0_Xt!Ho_#kjv>O+bx!)GFAzzI^qGyb4J9FvR)m&$F?eo&+QoB&lcHmqoBiQ| z*HO$S?){N!=&1Y@EIpfh@e4cvwwyvpC(tq_$p4eeQfF)|2_MNS74WEk#k8fw{W3P!!o`8WKn%OgC+e`( zSe}=)UFlrlz>hDRg^QxGjnW))8a1hjJlSt!zq5ch`T*J-zNf$|^w>bp+IMjrFh z#ljgb>!og1;#_qr;K?$`NTlEG_h8TrQCv@jbV$`TTkhkY9u1h8H$ELfs9t&zV2_1G zIlvx-;ugO^9i$5rgc+1k0Oye|?aA`Z$QCQ1f}j-5c>*>X>XkR#{-iB&m~cn{;^(MGEZ84?Y4H-VP~z+w;uPjdnRkru}H zaN_d@#R5{|ZI3{L=+V3*6dF3mze19_Hulx7?B8IsXt+Vl(3 z?wGGhvu&%6YrKQbm!IT5jwW)-_X6vMa*=x$C5mfP$;R_xxcK&~wsQa}(L{mra|01f zB=&{*Ckb)$iKEG=)z5QLW~##Hg||$9`&Y}3Ysrm_zS;;zROEpm;29N0xDij4WCLda5Z)$yyd{gCWuBZ0jk@7 zUFbQ>g@y-CN&POMS_p?8mI8)Yl!$_+LDjjJxlpnhxm>qb=M*{IlbtrJ&q89E3NOTG zjC@oclq=s2qJ*laCyuURhBaZ2E-5YG?s4$aGR|i}Jxh28t}Ldoi~`4|uf{NrAeled_d zd;WcT94mV;t;yVI4WcLHki2nm<3B&#FUuq?hSLpEUnKcKqKV&V5Q2>T`evIJT+xtk z>}D}JuOzGIT5HhO60#6WH^;s`I#kjcC7ZOXHcY+f!v+)l`#+QFLtY1m)z#{oH-R@K z3&AiZ$&?pRL7q|P2emh@Qdw^7b5jS4CONxuMj1mZI#YtRX_J2`z`E7diyS~>V+?jA zjMAAW1TvZVY?@A+;5ODINZXRaL<&l~O6HUhbA_dG0>-blp{|$v8q4 zrsk#VOIAbd*l&zIg>%?6KhJ~Fp{i|ukTTaO_OVGEG)DTE(jV5k?`imNW!JRP@xNE+ z3X|B1M-9X9=8){{$Y(|eEDxrp&P8WW)3;dME%t+B(i?ybJi~GbPBdsF7ZNMtvCOI= zxOATFM)^}Hk-Bb->V@2B8K3T8YsE4J1`mlq<&MtiKsy#^Htzzw1Xxqgj2$c`>@0K? zMhWo&S=zOUkD%iTWg?VR(4?bT((HpR(*{JW8&+A!Z>vY!tR0oZ>$J^IxCMYhiAT3` z!xBm)ajUrS+j~ziUd)Bf#NjAhlrP`R#Gv&Rk9nXAcJjZqxz8R$F^%l;I{^W$RFS@5uF()z`A)$?X409Ku$f~$GL$Bb}(?T2mJIoU|{mWI|PCZ(1-S+D+d(npwz z8LSxGEFfzIsr7s+sG5MLra?^wMR}48|L}E)4al%ZT}#^xTGXCdtNROzhENEk#3~=Y zuwWG-FR5eQ+|%h!T2=V8n~_R^r)f)sJ``pF0$bF5BOw*%7KBAtvLxw}i1X<-<)iaI zgMpt(-zrP`9EgFd8b#%oF z6xvQ`eLC0fvA1KqUta@!&%3P#obi7df89FcnV5WQUgl2LtjxB}sBX7Ta( zalKh6Hp@0?P6Z%sdajWmEW+Kq*{AoMZ8|#7Jd#GM!EaW=kO ze>X$!Z|>*tW$F)N8tDW*<7p^b2~qO3;bsC!lSk)gsgqhhGD_ULHl`U>uYC-e~=g;Un;%Ol&|8jT zC+*CO``%}8CoN5EAEzDkd+F-kybo^u4!Y^004Y^^|A~A_sm5SO>m_=chq%c-xRTT?`QJ6(xRwlOz zvoI1HY|@x6OiULhDwf<#R4hs(D@zFy6_3i29BIi4R!I|AC8;W-Rh0^6(jalkOIj|= zCAUjnQf}8JrM#r1E=gUIx+;u{v{09c5*&wSnUHdXl$5+sl*WB{U^KEU%cx3DT$WWd zOkSHx#pALxnwGh)i!1xEGRv~EE8{GRt7I(8va$>-yI2;9i>s<^t0+yIrVW>&tSPHl z8CJQhN^+TvDVwrv%C<~imgF*+jf|{vVdAP_m87Ok37KUiunkplQp+ff1PRQC#)mac z86WaPetdj3U6s_ZY$~atxC}*Q)Ky6kl?Dc7(O8n&G#EC?&4>{rMqF&1Y1(j? zRZ-JsW4cIATBwap1g6QrxL7O^a*`K0NjXW3#OA6pSy9t0G_EScMtkV% zAm2x{_sfmJ#@?N_n0n*LYmfE*R@?PR@%%sj5{FD_`d`C$Xi^SL$0r-g!989meSAY2-oSCQv~{7C{?CO zQY6)5=cxq*PAuZE;}UpqcHD+8hnx%ZzoQ7nr|a(AIxm95P6ZWF{j{6;ZXM-rqwiS< zuYX()-PYv-ud9KrjI06)d zL}e9+ENZHtCaNP1n_$2lNfzmn9i$_gCnprUt|P2uMrmFZebdr~1kx5hzmUG?bbee* z)z1EMCR_4eq;#X{wU-HL7B*H7L5pfLwig|Z`Mr>-+1T)^ha(s{K)CwleC~r76`Rea zFB=gc?zqJb|LI1ADE6*<)icIo#Rp2KyDs7DFIpUB?<{Q`I@lui!;Sw_?`P^ALTyN$ z?OBk9pzS*HkUA@>t+@rxLk_3J)QPe&b4{4y3BPxK2uaQaV98!s!1zr8fGHi=XNo9=#SMdqv?RVE^ z^qpHnV@SRp{-vYw)>(l(K+;#6X$yR(h=JEM==WnU=S}>Y_C8PVZ`W;&fzhyREy+xy zHkgY|#CUebcX}GTNdKp|ssTu{rb&MG&(ps&-ZC;8Pe*4o9ovW(KbCrSOINh}xxR(^ z{As0JIsQ;Y7>D1ETwVqi$Ancl?COZm#O9`Ue&P=Tj|hTRVDi=En2Oowt@Uo?S&J3HQU1uNWz~%U`e8T@R}8 z*oqHrhbdsim?w1+1C*!O8|Lrx`2NSeqNO8_#^8O^(8r2czEKXco zqD4N_(Z{P}`mbC3(obhb*N(=y^Nfyk$n$#q+eA5cbmaeOnu3~mU<3xOyZz4*>;`OL;Bj!dzQ0d(i++ZD%NoGKiHXup?hXe&sKY9NX6*tok(p6 z#l{JMhQz(UkR54YNbEQa%jAZPyZa*;AfgUB+leTh4j}J2d$~F8Og> zJl^Y^jzkNN`BIP!5=qJmo)!uaogU&GAwUzPGMoDI91@~*IqWd^Ay2&`V;e#;NV2|S zo*CEK)O)NB)&QcOzYIvKwtmJV?oh-Xjd_N6*B|%5FOT1?9q$Oghq3=RhTc*7BGH{4 z_55GwI1K^x*Gs=Tkd36+Lx&IPpyT z-D|=BzRp(fuAe=&ZN^vXa!0L2QpM|Gg7(;U8%5n!3k^V0J0MVDAWa+ZVWA<1%UKH$;G>88}Fz(Jn^MN|0#{kW?RR5PlzV_;iLC6i@^psXm~q6pHLE}6cAXam113Nh zq_gASYmOknRe&fajXzXeRs{tHW72cPau6VyG@t=&X=x>!9K^Zo10Yrhq2|yCYql1@gDYC%-_siD9U2JW0b&%ATffr+7ajUKc2Kx zE`x%nh2*y}1~%J{mq0>;10KRtIW?TlV;VC}?A z3M4fLP-wkw>ez<%a+;>0fuTq~V8=mw!wjGghz%gA0W@i$MltE%Y!cQUYjeAMNQA5Q z*!wpWsmC@o0g6(9Ed;Rs@?Txgmn$*v7N0P3z=sIYE?*geW}2s_v> zEHw5z9UFio5KvCE=L8Z7f7j_c>fF!gIw?4qj*0)}P%)gTHY8Hq%^? zx&V0(hWrgXA%8gvKrw_JLe*dBa6gmwaDg4}>3$X=pK`~;pOd5~ywhnY$COvwr zM1e1uNn?A7K6L!QJbEN45<4AX7uhTTN$I&)vxDM)_k#tg7xI0C{W_x9*a8pw^+=xGivaCp7(5;hw39vD;0qr30sy=K015y)_(6LqJbXCj7-F~q ze$cB77bVfJ)#CeH_3%CmkR-1wLV}zyDbnapHCZ1UvM(Dz6G&@qs$f_YSt~h!M4}fK z%r2SEyDcEMGV5hhT1FAM;y8)}30A1Keo)b}IEFd=Cf2IQvfNa1ttOgq{4XdHK zjYmfsUC|br0l`FhY_#>r47bYzqOfe74L89v#M^oUL}nwR;4YjcGx-5jO_RLQN4%Hj zY(V%<_jtC?|IyKBufTbFzW&81VN^$=$BXcZ>KF8)nkW(ZFCdFq6hidZeB0y(wmlE!DW>bX8zg)f5(`P5P_-!l%#ar*wvl zRC_N#TVbNb%`LujPZT85B~92Qsf+jL{d>RAuX7TBq|1^{fTT)BNvYDh14yK6i)JtZ z^dILu9iipG5Mr0`h6O}MgM&st=n7=cNNlpFOvOc)(S}UMSxuVX(unY+Og) zthmc251NL9m08!*NsFRsIE;7`PZyzFPe<|V)rKDl}!83~+ z=5%Z&x@w!}MKnRLBIeY;6q6ovwVx5d6v7Fjqd#G9-n0b{C#SpnpopurT<0)Y(x3G= z7j}7U^-u;2kWfGlP(<$~5qq%ob#~`Pa)<5k?5f|4uDxd5W5Y`Z$caB_s8 z;q0n~MoXCfPP`Y6C&yn}+M2!%@dAiq<7^rFVzYR8(~HDfnkd`L2f8PdGn+N)hc?;Z?7o)BuWPfIMC(RdAaN1&53`9PVPHVDCM* zG!(-Q3LpxHbC0Fq`y7rE`u%X9c8nI|VcyFG@SPrl8+d+fa604=%E45A7Ho{b%$OBs1c4vmRBp{3CV zkS?gSu`A`7nq`V=Bmf|Q0<#hTP#`28lS<{1xu$3z6aX4%DwVtvBWptmj6u{x?*=8yi>F zo0;LoB+@N95*i++tfFPV?;OVv<>-Hk=BJ(z&BO%0r&T?yz@OAf<_XdafYxcVf+{N% zHtv9z3PV&nCvqcGO>=xW?^O_w)Mo_3&>UH$g6s)g23|2D=lrpGL?Tcbg_lK7Sz)AV zK11~t1M(0Go0>i9g0@1S@lr)t%H9L_2=kvT+g4#0Uw`QWYzLe0r5ixuGOXoj;-WL@ zS2R6Pq{!RAaj|$J9UK<&y1zCbSdyPKE!W|hmMfA!pDf+Z64l9uHEqMT_J(HWX^TP9 zrT9+5yJG4BgBcWAN5uKJvm2V_XQnZebC$VA3QO6Fb3E(sus}oI-Njql!=mI~LIKxV z2t`*05Uiq62k0+%vDHqCQVNx5*)f<}{6(FjpVh}?TcISe5UFIF!|eD869aUsX~Ay|92*++6mVf^*v+C{b)Rae)#kO=r$2qzS^gPeNZB8zF;mMrOP z#W*@u7GEuDAx@ip!1oGveU{D$MF+97iRbjaKd(siAO;W z@na90PiFLPiF?#Zou7GQ;kS3);>T*6$1wgwZ{w$=AcM8gx&WZ#YB7T$8@7YO;RCWq z&A(Sa&M5xhy*NkPP7?xVk%cO-CS9C}K>MK45xYpRFzD&41PG7`5Rm2^#%lH>R zssopBes&LffF;qO;BnaOZiOxKxqz1>eM{AIVQx@g!kd3#P;|pk!?dEn22)a8Bp40Y zh?X!f8!C%l%zMl#Eex$08=BBCg)Cm|pH-@to8_C+LKULrW@K)^*R}mz(Vf70_#o?G z@ez9s5F}kSDjvqI^;4C22+G>Zg-6v@l%mBJ!!r*lSP_-VbR2y&A<zz7K7rTIwM`i-Mof`WBk-#(k{TL`8r{4M|arq-8@A0m+}Kbp~(HwNyHM z=MP60Z}h{$5n=G#a_8eS01I~7BtUL+BGI#7rOGU<7CzO(Zg}T<{kGG@ieM;DT%~`0 zVu7mFYLuW(M$|nKArJxnMZ!j*Q+S@^6#F%o2e~8=v`W`@VMCgat9dV|<`4J?BO}gY zrnWt`>?OiGu$N=S)RIKK&0=DeB&|*pHV5pv+9Ma}G+HYCsahtU^x~JEI09GG4LEkZ zc{2EX$x|s6RNOvmHRV^$0IBxyB)wdY#zR1@&eMC_vHH~iN)ppaoyIkz2nrsAl8?bR zKlfN1^lpR5oa9q@(C9NjElD=B#2B4L(M`i?P)CIOnE>SKV4;>@kz0N)ZS&Nko3avh z4QZN`-4=p8A?5lOHr?udvDJUq&wf>K*Kt_by>umwte9%?F0Dng#tAc|lsovIC-1v; zgAF7&LQWA5C!nhT+ox&KeUAn{0&v{D{>_s%NOBghco!1-%$9u(Vsx1D-8#u6bhiPj zP<9~eWrdUYJs;@}fO+?lCTREyD@<_w3a~MF-iIpf2W|#}wYwR3Sh6oP0_-yWH9i9h z#opn7)`W$0Ci|#u!+J|F{*-9aOu9us2d!6+J_v$);9nTju^O$qBT9+N=7`XSj16#byzrF({@CR3PQcN%+?(*-1 z{x#An2$e0Tq5{?jEIfF`thHZMo06md#wA{`QjHoMAuUYKmn)lcac9F0Z)4o3jVh07 zNS1t#6$(_W9BL#zOAyC@#gO*~wuMn286bKmatM8f!OAq!wgl%U7O_AYTu*xmUFp(J z%C!`wB1(P0ymkn`uXZ-A@1j`l0w+sal*y`umg;m&-eJP&3?zUx|rlI)O zb9z_&QEb_`D-*+?{$b_SWbfc!5oo49G2c-A$Y%NjOVQh2V^!(uGtT93)2vT5#0MTgP{ij2p3-uF2)Fvfzw-4LIh{OgfN~9u|qCoKZ%qo5TgD%;mck?{+#9 zI&LMzwG~R_1n@6H#ExQ*&5wX2BEJ;F3CY8wJE7e`0Qf8p?#mI%K4EmC8mJ;^pxFt@Q+>)h&dvh59?wh{TT3z^H zI`vn_XfkaLhg;?h3t)$eo=n{l!smnmCNS@I%h5^{iLm`o7b^NovMNbua&aeZ&_D<8 zY;1bK79TzeH^+oyRK~*(zy*H37bQRgWKvNUFV4q6SWA*!z^$>WlGSs>8Ho^p- zu8Kpa@3dE3a3^Q4n&l`mduKB7clSgS}E(M zYo-mb4*+J($ZM5&w`tLJ8VoDZN49hxz>YCH?PY~`Q&Lx(hVrygxA!O;rp8UP#pL50 zqiv@AER8$x$_Y+cJfO@|UsoZejZEtKuo3{we5{#yqi(7lrxtg*`VstP95M}-HQk%p z4#`ii6Ki9;PlML8&RjVm?L#=Av=2nw8rjGzD8uJ^uesd>d_=sl=dOWr@B;0a4R9@)ZEPRm6!5&R0gGMyiC|<0;j^*yK0uQ zyuIRKlT#e^kfPTRMJG|SYDpArI00-9-2vWPznTC9yw@Xq4 z$XwMQ{UL6cG9)cQCV+cOVZ)bzU1R*#*N><}8PsYXWs1fj*~SV17UB`@L)C&fURpQu z1a;8hR!iw*3}+9p{9@y3sX*6#$(y4WMT&S8CNU)E3tpXy8 zv<_@0u4YpLT1XovaT_5OV!dWLOZCi)ql3M9r1Sr-nkXz-il_ zg;p&M+mk_dj0(?GKJxO3j0uKsv~J9U=teHz;2Eqy1Ig*eOmsfQXo16So#qWhtlrv` zgxhw_>f8=fx6(676V9q%l$?`8+vY9cS9*$^O$YJ&6gs*CED=@)x+km+D`522DF9>BDjtX`Qb9)xa>RH z9gR;wj;qx`g`Z#W){Q?6txnT}#vYc}>QV1<*x*YVD94LDvc}dG=N>?yn1Kp|01Y=j zR!>}`x^Ye;kWxFPrOutCeZ?sxEZ(~)1^MM`El&=ln|~s^^`F_W3`HkDqXCu@9ukuWZOs}0K3xU2)?LVOB*21KjasjD)%?AoOWpsYgYpKyn}u2nLE^p$&U+K z2dDEFwhtFfNmnum4BJfY|6l%1>m+|?D$9pg=*9*u)G3y-_Gk&3~cm2kf60 zMIY%5i8Bt_yvzfXAZf8xbzeXiYw^z`*CuF=z~pfCtgD48Hqf!bKU-1p>{(+72Ux`p z?4HUc^BoE@nBesVMTG_W9K=c#?nWN25L;=yfQs{x+LD4rx`QC@AUcDKf6cHzBXbpn z-je$a4;7rmH;Z-qEPt0*Dr-lRCA1{(J$9-BAPdPQ{d?i z6AkICCg(@x;WLVObwheaf@;=n`*|ksr)e7p#0`F(J<|KtfrNEixp=a{+1QmUmV>b6 zyLr>+{DmY(Hj=w^u<3lO96JwCgyOD!+`D7Xl7cb0Pv~pL+M&NM$p7+=D1z1v7|LFr4O9Nnwl%SBokcu% zua!f);B-{}+`FR`v!4+2!NCZuacej+i=^3?&GedM{3mk1+uJF(O>b8kh}B*(Sc9WX zyq=x(%kk^)oqr*Og{*gGFS`o2kbvh2``w1OiV8Wza%V=9Cb&sa0@Z(`jaU;H8Oj3* z)#UImZl#XBdu)w~ zO_v;rjimreUyLo9m|R0O!|zj&0lgp?PEPts(Y9=ZL}%y_ke0)j-1q27Z5ZK{^BtMe zG6QEXhWR`vdDeI_L#&%TrBZP4*iyQQ=}?7{Y&;UtU1@C5;2owu3FiT<;ec#`gf;)B zdpT8LwY#-XsZMRx-Brgc$bv0t84FUfs`|)ROA@)LgUKP~Mr4J%2(Zvo*EeZwRh-8^ zPNfi<&>}Y&v^3B}`9k`{M+B*wwYVe-7=k~_XA-AGDjdn4GqW*Mg^HVnz+n~aMz4$c zb_y=op~wpAr=pdv{gCY&B&I+x{|p^R8L*m(9@`#$x+!NnVpT}h3VUr zXIY`if}nhFtmKBV-5Tjy(o*1n@iA_Z1}cEoWGtJ%e%&9-S|?+f1wX)8+cieH5K5q< z2(Ss|g;j|)5dfUAdK8tC>;jJhM4{QdEV$6shLGY+esEwNPG?j+f#~Yph5D~Ei7g43 zSrZ*!yf7`&Ve00}4CBx|P~ElKH8y3t2o8^3G&~-&WAv{ni(h%>l#FL&Tp<#@4a zh`O5V$2pU(V|8j}pj&3!Yw27#jQ~rKRZMX6l*qI$;BtvQvK*}lNrhpVMat|TBU{Vf zc^&QQrWW**jAvR(1>%7tLjMV-V#Gx(j$ zM!bthM*~hZ*=GOw9)Vtz{XCPO%*6s7XlV7?7g^!!k-orYp0-*D@|7d|*x`UAZVyG#cHUWYnLRGdN z(8bE>5`qPEvm~6+YN8s76X0^H!dRLn1eTmrDQ6!*rDa%LLc|H!yDf-aYb3^*BR%_G zLw{e}j1No|^K=bSd6DV1XL;tf@@bRw_XA?`Z2DaaKkrW_fA&z|3$IyXjo9vC5QvDq zZ|FB-*T|?UY~>r%Naka|qd%T(^)P0ndnWM+uuSC$2lyNd`Jkxs^Lc~U@qHVO-h1Gq zn@(${U7m7f@ccr1bJK72ew{ zV=Z(SjOXc2;+y0^R9X_Of>`~KIrGuL3SGW*vM$1o`yk4hpvWe!@lv#`*|qR^Zwf^$i6FOr0T!V$>irZ7~Bx|ra*T?ex(o=c<3 zg)2KQYf%pSBb#m@aVyfzvT})^Yy$T5Y?w6s=td~=oiyG-t4z`5jcldM6`ybci}~Qv z&tzv_Y|yl#8NN~Djc+g|=Wt!JNxx69KhT13pOiqP{N(_QOyFvR)VU*B?qqC*I>d0101iXRV6ZM&=tQ_P$B=J9Y@J`9b1-3`k>b%bf(#v*`Cf|v!@ zy@YIHU8h=k4a#WUrK7<2W0(s%rD8gxFcS56Gb(lYqvk?^oB021CWo`TFl2=|XlI6_B-yf3zFoOhVpuk7~pSXya%XuV_j&$*T z_3w!R<71d?R`T7@gZc$E$Lc9mnrLQhf1`LjIdZl-vz}I^5Nv<`QCWO1J=C(K1r)a z%rkzpmP!ymJODiFPXp~76*}^dfWkQ17wpQrHx$fROuzy`avP3gGj))CtMo$o05Mt$2fN*d}W1_(?cUQgf4KZ57?#yi1TXx8=`x zm0ISVo98x}rJ(wjAe*DN5O)EmD7nXg1)Iw^^3ejY%lim8LFR3F za|5T{{lo-R7UFBCJjeo{?VoTR{jItKc-3K$yYY<)9*H9%!NtK!N9>Op7OUuP@IL-! zh#PTXfW~^w1JDR~vNyubAaw>~*8nr8yx|PQSjll=v=BYL7b7vv;F4(0W}_I%Lg555Y!Ow; ztho&Vo3++=k)TIeym3S)ba9FtJ+6yDP5;P?C_N5LANpy?o-iQToz=hsH$}I=-j3L9 z8v+LN6%J)-ycC-@LYsTfQi7~I{rwW-e!92N;7+_D1U|2k8N=bvvBe2_1 z_>X6snv`)6?KQ0mO3{4~NYC=vSZRbjGLoWknbHj+&@PCkS=H*NC9V%>+0o zVpCFutU!XT3ZS$x1rJI?6KZQ@)#oA!8lMW?QUZm5#j(XmvWOv;qLIC%JMit<3j$2p z4(!>YJ?SGPpH(?*GZ}RJ(@J7WB#H>EI+P|nh){DDgcB#7@d-dbajh#}4K-0IJ_($2(1UL4AOzz+&t;6G_?OIXv<(b+l8U*NG7YL( zn{asLFN+9^Fg^`8kQiB7xa>7Z2gl}q@dLaeAiF?);eQs(Q53+VEEs&3j8VL5`ewb7 zVGc&GQTuR$hyx;p$^c#eDR94|weXxlo*1rGQVcCG8$sYxu5cIA`>Nn64g$0Y8G$3C z5%Sjwm0g0b8bc4)z5*tz#F4IA?Ff#8d^IH2+6PnI2la#H9k)lJE=EQ+DePZ1x)skF z`(Z$c`Q`vIEe$DZ`Qc=ndK8y!6v_{9^V8nrv3D_h)m7bby{V9YoB$&xM+=?xIZFp- zAUqdi4k4ik4+qO7(%~@T}4iXUtul*FX{hc94xrHEU@A{{WU`AuuhU$vt$*ZvYG< zIE>l$5e$sH4HgYi;$fA%LXOigGlgj~#o@D6AxXgbzVp%^ewpizs>4(1=LVREmp%)->a3B$G|xfPPv)SI)O$P+Zawd3Ggf#sbZXoaW6<4!D$w|=i5}9# z0uQ`jf>z+9az9z5fz03@ruk>@iv(B+{Rv)fUXm64ef4Ll98qkQkC_{W*gD{n<#?=S z>>gEZAg@=RfS)<+L}(@`DvY$LKr-?jG6~e0t2p-x9yEi)O#KFRT-Q+j@I&g+V$#S~ zPd{kj-cg<7jOHAN*k*v^l?J*w;x7CjnZwmh;Th8>-v_oyD_+lLOu}O!aKmW`0hwX{ zTX3=<_tFi@gt&zDi@((VK-0g5L8i9;R;~O!wymT7_hE|hMJ zXbQMV;>24muJ2TKH@qiq7G<2YPnO7f2$yX6WILVFlDlGWtNRZ%j06>w=7#qxG94UlsnE^R6>Woz6Z^Rj<9p^kG^3qK&>sb%yAYd z`czW_2SGKHljJ}O1Fg9X%qhn4rGw+h>a;s~0KhmTB?#?w(kR0~iW%Ij1_@ene1~ff zii4GKY)888GeQECO?jX@SgeIx7MS=0f=A-6;a3Hz;w63c;TFxH)Fx!3UaWIcK8OM- znusUKg6Ug8ICg{})X?+H)kARq<)kyR@F`>^D^Ujh_LME8L5?v?6mES|_W&cZ#4P-z zR8BgkFnZ{03bvIPThdgjc_kj7yC_%r6;739Pvo*s+d*nW@{~VqBSb8$lzjjnBr&)1 zJ{soL*_B2po^wZp0eNhqOUNg{*`2;Q-p9}sJl(Xwa+mkbZxu3c(9dM%2XeP0I#_VO zayPg56?bwH`&ej}IckO5&F$du0r4Y$9WBcfEuPe)2}>U}4H6>p)whj{@`&UnhT)?oti`XhJK z2W5qCYUoLDm2X8a^;lqW5MGf$O`F)jQLQ_D!LaA~WDEAKY@$cs2@nGO`uO~^1z}}* zo-cNPU()z?z%&$gH)-!k1s*#j9r~hB6Y$^19!F*O@^mstFP)z;-QUB!(BuO%_B5z} zajMQdafHP#L3(1B!c`n(gc*amp%Z&C_~31Mq%cqH^Fe)IrYTbDesoHs5m71+-RX2% z-T}*u7>q3#3P@=P>P(s4u!BgEG{Kf-VRIbkg zqM2we6fU;-xTZ`w<69vw_t)*<5|F$DVO(xP6CSSkR)k7@JB*@XdeQD^1 z1io_FBO*Zk6{x5+mu~`qPcgSi(HbDBp_$78++T0?b@n@kPh6i1;&u z{t5qI;K=LSSprQkUa=$)Uo>Azuh^lYrN5CxpW(GqgVR>rRm)j8CW^K4V4 z&q15ieu2hr3%q>p73XGKG2YC^lP}KikT=qD9W1X&`t`W*3jmgwGR ztjiZ;ulW|*2BZLq_o#+k9?7EALsZMgmgA`)&wY15(u!7n|*2b$3Htu0~aadzSV#exGI*uC% zLmlL6`ue1}^$rWkGl@6t7zg#g{7&1Zh$$ucUD`-0+NEJJL`hm2~Ov#CLh=O6L{7m5l{k@A8cAee*u(qsvtbQ4~yxX5hxcyX;sP+?oeNvYQjW2g#& z0QPgVmt2}GhPEe~nypyl@KL*#Cg*t$Om&QLX&0!u%z7e?j_htisqiO^l`iSHCO#Cx z-isl|hmH_AP3604X`f}nhhNnFmNi8Y#wW8e_LYMYwd3;LW(nUL@KEqI6-}`M&4nse z?@W#bF^RZ09&%*Kj~3#X$?+=mU+LX`F!|7ZN0+-09yldiL7BA0#-x(b(dt^i5h$YJ zmK^q=xS;F(9^ID*3E!Jl-I(%!G|qt>+ZsS82e3eTj=lv zc=*0_ZOo>rL9QzHBa%YSjHIQWbGl;6HHDDzAiVMmh?e9fg;WW8Rk zzG&MFYzDw@l?WumQk_=fOvvcCvdDC@k?;Z0;y!d|NiB0$1)~X=3@G#pWgWva*x2R9 z){TNT9Bxe#d!kA==N_D!SA$;LWU4XF=!czUZC1Hn2qW$IT1FAb2zgn5N6 zEG*-UwI2!e(KY;yj5HIzhl*#iL9{T!7*k{Q{h@9+LIZ}y%WsoE(`8HuFeCrYCdHUIh8=N>(Fo4D#TZ^;e2Fo&E@37v^ihCLvD7c!XzK=yauD= z1#~Q(!sbUgf^VYg%#|RUI8NA8$$}Lj_3OGSQA|ojz=huEseXWyfOyBeJd5E+kJU^I V!q|x(@)R7$Y|!b>NH5_lKN4~9&@BJ} literal 0 HcmV?d00001 diff --git a/man/retrieve_ark.Rd b/man/retrieve_ark.Rd deleted file mode 100644 index 9902039..0000000 --- a/man/retrieve_ark.Rd +++ /dev/null @@ -1,34 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/arktax.R -\name{retrieve_ark} -\alias{retrieve_ark} -\title{Get Taxomony Source File} -\usage{ -retrieve_ark( - year = NULL, - version = NULL, - code = NULL, - which = c("wide", "long") -) -} -\arguments{ -\item{year}{\verb{} year of source file release; options are \code{2009:2024}} - -\item{version}{\verb{} version of source file; options are \code{0} or \code{1}} - -\item{code}{\verb{} Health Care Provider Taxonomy code, a unique alphanumeric code, ten characters in length} - -\item{which}{\verb{} \code{wide} or \code{long} version of the taxonomy} -} -\value{ -\verb{} of search results -} -\description{ -Get Taxomony Source File -} -\examples{ -retrieve_ark(year = 2024, code = "101Y00000X", which = "wide") - -retrieve_ark(code = "101Y00000X", which = "long") - -} diff --git a/man/retrieve_changelog.Rd b/man/retrieve_changelog.Rd new file mode 100644 index 0000000..60c5b1b --- /dev/null +++ b/man/retrieve_changelog.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/arktax.R +\name{retrieve_changelog} +\alias{retrieve_changelog} +\title{Retrieve Taxonomy Changelog} +\usage{ +retrieve_changelog(code = NULL) +} +\arguments{ +\item{code}{\verb{} Health Care Provider Taxonomy code, a unique +alphanumeric code, ten characters in length} +} +\value{ +\verb{} of search results +} +\description{ +Retrieve Taxonomy Changelog +} +\examples{ +retrieve_changelog(code = "103GC0700X") + +retrieve_changelog(code = "103G00000X") + +} diff --git a/man/retrieve_hierarchy.Rd b/man/retrieve_hierarchy.Rd new file mode 100644 index 0000000..2ccab13 --- /dev/null +++ b/man/retrieve_hierarchy.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/arktax.R +\name{retrieve_hierarchy} +\alias{retrieve_hierarchy} +\title{Retrieve Taxonomy Hierarchy} +\usage{ +retrieve_hierarchy(code = NULL) +} +\arguments{ +\item{code}{\verb{} Health Care Provider Taxonomy code, a unique +alphanumeric code, ten characters in length} +} +\value{ +\verb{} of search results +} +\description{ +Retrieve Taxonomy Hierarchy +} +\examples{ +retrieve_hierarchy(code = "101Y00000X") + +retrieve_hierarchy(code = "103TA0400X") + +} diff --git a/man/retrieve_raw.Rd b/man/retrieve_raw.Rd new file mode 100644 index 0000000..1ea736a --- /dev/null +++ b/man/retrieve_raw.Rd @@ -0,0 +1,28 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/arktax.R +\name{retrieve_raw} +\alias{retrieve_raw} +\title{Retrieve Taxonomy Source File} +\usage{ +retrieve_raw(year = NULL, version = NULL, code = NULL) +} +\arguments{ +\item{year}{\verb{} year of source file release; options are \code{2009:2024}} + +\item{version}{\verb{} version of source file; options are \code{0} or \code{1}} + +\item{code}{\verb{} Health Care Provider Taxonomy code, a unique +alphanumeric code, ten characters in length} +} +\value{ +\verb{} of search results +} +\description{ +Retrieve Taxonomy Source File +} +\examples{ +retrieve_raw(year = 2024, code = "101Y00000X") + +retrieve_raw(code = "101Y00000X") + +} diff --git a/man/retrieve_sources.Rd b/man/retrieve_sources.Rd new file mode 100644 index 0000000..c992a98 --- /dev/null +++ b/man/retrieve_sources.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/arktax.R +\name{retrieve_sources} +\alias{retrieve_sources} +\title{Retrieve Taxonomy Sources} +\usage{ +retrieve_sources(code = NULL) +} +\arguments{ +\item{code}{\verb{} Health Care Provider Taxonomy code, a unique +alphanumeric code, ten characters in length} +} +\value{ +\verb{} of search results +} +\description{ +Retrieve Taxonomy Sources +} +\examples{ +retrieve_sources(code = "101Y00000X") + +retrieve_sources(code = "103TA0400X") + +}