Extracting parameter values for a list of xml files and parameters
get_param_xml(
file,
param = NULL,
select = NULL,
select_value = NULL,
value_id = NULL,
xml_file = lifecycle::deprecated(),
param_name = lifecycle::deprecated(),
value = lifecycle::deprecated(),
...
)
Vector of the xml file paths from which parameters values must be extracted
Vector of parameter names. Optional, if not provided, the function returns information for all parameters.
node name or attribute name to use for selection (optional, default to no selection)
Vector of values used for select (see examples). Optional, should be provided only if select is provided.
Vector of ids of the parameters values to be retrieved from the parameter values vector
Pass further arguments to get_param_value()
A list of parameter values for each xml_file (a list of list)
# Soil file
file <- file.path(get_examples_path(file_type = "xml"), "sols.xml")
# For all soils
get_param_xml(file)
#> $sols.xml
#> $sols.xml$argi
#> [1] 30.2 21.0 27.0 39.0 1.0 12.2 70.0 22.0 9.9 10.2 10.2 17.0 23.1 22.0 27.0
#> [16] 30.7 0.1 27.3 25.0 10.2 25.0 28.6 36.0 29.0 10.2 21.2 22.2 13.0 17.0 15.0
#> [31] 26.0 28.2 20.0
#>
#> $sols.xml$norg
#> [1] 0.270 0.100 0.210 0.150 0.700 0.110 0.200 0.120 0.070 0.160 0.180 0.210
#> [13] 0.140 0.120 0.140 0.140 0.070 0.080 0.200 0.180 0.100 0.120 0.150 0.120
#> [25] 0.140 0.070 0.110 0.100 0.150 0.080 0.088 0.088 0.100
#>
#> $sols.xml$profhum
#> [1] 40.0 31.0 27.0 27.0 40.0 30.0 50.0 35.0 50.0 30.0 30.0 27.0 22.0 35.0 30.0
#> [16] 30.0 30.0 30.0 30.0 28.0 30.0 40.0 40.0 30.0 31.5 30.0 30.0 30.0 15.0 35.0
#> [31] 25.0 25.0 20.0
#>
#> $sols.xml$calc
#> [1] 0.00 0.70 3.70 0.00 0.82 0.60 0.00 1.00 9.00 65.30 64.10 3.00
#> [13] 0.60 1.00 5.50 0.00 0.00 0.10 6.50 64.10 6.50 0.00 0.95 1.00
#> [25] 64.10 13.00 0.10 7.60 1.00 0.00 1.67 11.10 32.50
#>
#> $sols.xml$pH
#> [1] 7.00 7.00 7.00 7.00 5.36 8.10 7.00 7.00 6.10 8.40 8.30 7.00 7.00 7.00 7.00
#> [16] 7.00 7.00 7.00 7.00 8.30 7.00 7.00 7.00 7.00 7.00 7.95 7.00 7.00 6.50 7.00
#> [31] 7.86 7.84 5.00
#>
#> $sols.xml$concseuil
#> [1] 2e-01 0e+00 0e+00 0e+00 0e+00 0e+00 2e-01 0e+00 0e+00 5e-02 1e-02 0e+00
#> [13] 0e+00 0e+00 0e+00 0e+00 0e+00 0e+00 0e+00 0e+00 0e+00 0e+00 0e+00 0e+00
#> [25] 0e+00 0e+00 0e+00 0e+00 1e-02 0e+00 1e-03 1e-04 0e+00
#>
#> $sols.xml$albedo
#> [1] 0.17 0.20 0.28 0.28 0.05 0.22 0.17 0.20 0.25 0.28 0.28 0.28 0.15 0.20 0.25
#> [16] 0.20 0.20 0.12 0.22 0.28 0.22 0.18 0.28 0.20 0.30 0.30 0.20 0.20 0.20 0.20
#> [31] 0.23 0.23 0.25
#>
#> $sols.xml$q0
#> [1] 12.0 9.0 12.0 12.0 7.5 21.0 25.0 0.0 3.6 11.5 9.0 9.0 6.0 0.0 22.0
#> [16] 0.0 6.0 9.0 9.0 9.0 9.0 12.0 0.0 12.0 10.0 9.0 12.0 9.0 4.0 9.0
#> [31] 5.0 6.0 11.0
#>
#> $sols.xml$ruisolnu
#> [1] 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
#> [20] 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.0 0.0 0.0
#>
#> $sols.xml$obstarac
#> [1] 200 155 120 60 200 150 200 200 200 90 60 200 200 200 200 200 200 50 200
#> [20] 200 200 200 200 200 200 115 200 200 200 120 120 120 50
#>
#> $sols.xml$pluiebat
#> [1] 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50
#> [26] 50 50 50 50 50 50 50 50
#>
#> $sols.xml$mulchbat
#> [1] 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5
#> [20] 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5
#>
#> $sols.xml$zesx
#> [1] 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60 60
#> [26] 60 60 60 60 60 79 79 60
#>
#> $sols.xml$cfes
#> [1] 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0
#> [20] 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 3.6 3.6 5.0
#>
#> $sols.xml$z0solnu
#> [1] 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01
#> [16] 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01
#> [31] 0.01 0.01 0.01
#>
#> $sols.xml$CsurNsol
#> [1] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [16] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [31] 8.67 8.90 0.00
#>
#> $sols.xml$finert
#> [1] 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65
#> [16] 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65 0.65
#> [31] 0.65 0.65 0.65
#>
#> $sols.xml$penterui
#> [1] 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33
#> [16] 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33 0.33
#> [31] 0.33 0.33 0.33
#>
#> $sols.xml$codecailloux
#> [1] 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2
#>
#> $sols.xml$codemacropor
#> [1] 1 2 2 2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1
#>
#> $sols.xml$codefente
#> [1] 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>
#> $sols.xml$codrainage
#> [1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>
#> $sols.xml$profimper
#> [1] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 0 10 10 10 10 10 10 10 10
#> [26] 0 10 10 10 10 10 10 10
#>
#> $sols.xml$ecartdrain
#> [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#>
#> $sols.xml$ksol
#> [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#>
#> $sols.xml$profdrain
#> [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#>
#> $sols.xml$coderemontcap
#> [1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
#>
#> $sols.xml$capiljour
#> [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1
#>
#> $sols.xml$humcapil
#> [1] 10 10 10 10 10 10 10 10 15 10 10 10 10 10 10 10 10 10 10 10 10 10 10 0 10
#> [26] 0 10 10 1 10 10 10 10
#>
#> $sols.xml$codenitrif
#> [1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 1 2
#>
#> $sols.xml$codedenit
#> [1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 1 2
#>
#> $sols.xml$profdenit
#> [1] 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
#> [26] 20 20 20 10 20 20 20 20
#>
#> $sols.xml$vpotdenit
#> [1] 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0
#> [20] 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 8.0 1.0 1.6 1.6 1.0
#>
#> $sols.xml$epc
#> [1] 20 20 20 20 20 30 30 30 30 30 30 30 30 30 0 20 20 20
#> [19] 0 0 5 10 15 15 15 30 30 30 30 30 10 10 10 10 40 25
#> [37] 30 35 30 0 10 20 20 20 0 30 30 30 30 0 30 30 30 30
#> [55] 0 10 30 20 40 80 15 15 30 30 30 25 30 35 30 0 5 15
#> [73] 20 50 80 20 20 20 0 0 50 0 0 0 0 22 33 7 0 0
#> [91] 25 20 40 35 0 30 30 30 30 0 25 20 40 35 0 30 20 20
#> [109] 20 110 10 20 40 60 70 10 50 50 0 0 30 30 30 30 0 10
#> [127] 30 30 30 15 25 25 25 45 0 10 40 70 40 40 20 20 60 0
#> [145] 0 20 30 30 20 20 10 20 30 30 30 10 20 30 30 30 20 5
#> [163] 0 0 0
#>
#> $sols.xml$HCCF
#> [1] 46.8 46.4 48.5 50.1 50.1 22.4 22.0 21.0 22.0 21.0 27.0 27.0
#> [13] 27.0 27.0 0.0 32.0 33.0 34.0 0.0 0.0 184.0 184.0 184.0 184.0
#> [25] 184.0 26.0 22.0 22.0 22.0 22.0 41.0 41.0 41.0 42.0 42.0 22.5
#> [37] 25.4 25.8 28.7 0.0 20.3 20.3 21.0 21.0 0.0 24.0 19.4 20.5
#> [49] 25.4 0.0 24.5 20.9 18.2 16.7 0.0 23.3 23.8 20.0 22.7 20.0
#> [61] 24.5 24.5 21.5 19.5 19.5 22.5 25.4 25.8 28.7 0.0 23.0 25.0
#> [73] 25.0 25.0 25.0 23.0 22.0 21.0 0.0 0.0 12.1 0.0 0.0 0.0
#> [85] 0.0 31.6 32.0 39.0 0.0 0.0 20.0 20.0 22.0 22.0 0.0 24.7
#> [97] 22.2 18.9 21.2 0.0 20.0 20.0 22.0 22.0 0.0 37.1 30.1 34.6
#> [109] 34.6 22.9 20.0 30.0 30.0 30.0 40.0 32.0 34.0 36.0 0.0 0.0
#> [121] 23.8 22.2 22.6 19.2 0.0 20.0 20.0 18.4 15.8 15.8 23.0 25.0
#> [133] 26.5 26.5 0.0 20.5 19.5 19.5 20.5 20.5 16.0 15.3 15.3 0.0
#> [145] 0.0 22.0 18.0 30.0 30.0 25.0 20.0 20.0 17.0 17.0 17.0 21.5
#> [157] 21.5 19.5 19.5 21.5 15.0 15.0 0.0 0.0 0.0
#>
#> $sols.xml$HMINF
#> [1] 26.2 27.4 29.1 25.5 25.5 13.3 11.8 11.0 9.0 9.0 13.0 13.0
#> [13] 13.0 13.0 0.0 17.0 18.0 19.0 0.0 0.0 164.0 164.0 164.0 164.0
#> [25] 164.0 6.5 6.5 6.5 6.5 6.5 30.0 30.0 30.0 35.0 35.0 8.5
#> [37] 11.6 15.3 19.0 0.0 5.0 5.0 5.0 5.0 0.0 11.5 10.0 10.0
#> [49] 10.0 0.0 13.0 12.7 10.0 10.0 0.0 7.5 6.9 10.0 12.3 13.1
#> [61] 13.0 13.0 12.0 12.0 12.0 8.5 11.6 15.3 19.0 0.0 13.7 13.6
#> [73] 13.6 13.6 13.6 11.0 11.0 11.0 0.0 0.0 5.0 0.0 0.0 0.0
#> [85] 0.0 18.1 18.8 26.3 0.0 0.0 11.3 11.3 11.3 11.3 0.0 13.0
#> [97] 13.0 10.0 10.0 0.0 11.3 11.3 11.3 11.3 0.0 17.9 13.8 17.3
#> [109] 17.3 12.4 10.0 20.0 13.0 13.0 13.0 14.0 16.0 18.0 0.0 0.0
#> [121] 13.0 13.0 12.0 12.0 0.0 9.4 9.4 5.9 3.7 3.7 11.0 17.0
#> [133] 21.0 21.0 0.0 9.0 9.0 9.0 9.0 10.0 4.0 9.3 9.3 0.0
#> [145] 0.0 12.0 10.0 25.0 25.0 15.0 10.0 10.0 10.0 10.0 10.0 10.0
#> [157] 10.0 10.0 10.0 12.0 7.0 7.0 0.0 0.0 0.0
#>
#> $sols.xml$DAF
#> [1] 1.08 1.09 1.02 0.99 0.99 1.44 1.65 1.65 1.65 1.49 1.40 1.40 1.40 1.40 0.00
#> [16] 1.30 1.25 1.20 0.00 0.00 1.00 1.00 1.00 1.00 1.00 1.30 1.60 1.60 1.60 1.60
#> [31] 1.20 1.20 1.20 1.14 1.14 1.16 1.29 1.15 0.91 0.00 1.20 1.40 1.40 1.40 0.00
#> [46] 1.32 1.54 1.51 1.40 0.00 1.29 1.53 1.58 1.48 0.00 1.20 1.30 1.40 1.50 1.60
#> [61] 1.20 1.40 1.50 1.73 1.73 1.16 1.29 1.15 0.91 0.00 1.35 1.40 1.40 1.40 1.40
#> [76] 1.30 1.30 1.30 0.00 0.00 1.40 0.00 0.00 0.00 0.00 1.37 1.42 1.30 0.00 0.00
#> [91] 1.30 1.40 1.50 1.50 0.00 1.30 1.50 1.58 1.45 0.00 1.30 1.40 1.50 1.50 0.00
#> [106] 0.89 1.23 1.04 1.04 1.53 1.56 1.48 1.59 1.60 1.61 1.40 1.40 1.40 0.00 0.00
#> [121] 1.29 1.44 1.49 1.50 0.00 1.50 1.40 1.40 1.50 1.50 1.45 1.48 1.52 1.56 0.00
#> [136] 1.40 1.50 1.50 1.50 1.50 1.20 1.30 1.30 0.00 0.00 1.45 1.50 1.60 1.60 1.60
#> [151] 1.45 1.45 1.55 1.55 1.55 1.45 1.45 1.55 1.55 1.55 1.40 1.60 0.00 0.00 0.00
#>
#> $sols.xml$cailloux
#> [1] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [13] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.73 0.73 0.73 0.73
#> [25] 0.73 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [37] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [49] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [61] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [73] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [85] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [97] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [109] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [121] 0.00 0.00 0.00 0.00 0.00 40.00 60.00 85.00 65.00 65.00 0.00 0.00
#> [133] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [145] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [157] 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#>
#> $sols.xml$typecailloux
#> [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 10 10 10 10
#> [26] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [51] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [76] 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
#> [101] 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#> [126] 10 10 10 10 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
#> [151] 6 6 6 6 6 1 1 1 1 1 7 7 1 1 1
#>
#> $sols.xml$infil
#> [1] 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00
#> [13] 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 0.00 0.00 0.00 0.00
#> [25] 0.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00
#> [37] 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00
#> [49] 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00
#> [61] 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 10.00 20.00
#> [73] 2.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 0.00 0.00 0.00 0.00
#> [85] 0.00 0.00 0.00 0.00 0.00 0.00 50.00 50.00 50.00 50.00 50.00 50.00
#> [97] 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 0.00 0.00 0.00
#> [109] 0.00 0.00 50.00 50.00 50.00 50.00 20.00 50.00 50.00 50.00 50.00 50.00
#> [121] 50.00 50.00 50.00 50.00 50.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
#> [133] 0.00 0.00 0.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00 50.00
#> [145] 50.00 0.00 0.00 0.00 0.00 0.00 30.00 30.00 30.00 30.00 30.00 15.00
#> [157] 15.00 15.00 15.00 15.00 10.00 0.01 50.00 50.00 50.00
#>
#> $sols.xml$epd
#> [1] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
#> [26] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 20 20 20 20 20 10 10 10 10 1
#> [51] 10 10 10 10 1 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
#> [76] 10 10 10 10 10 10 0 0 0 0 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
#> [101] 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 1 1 1 1 10 10 10 10 10
#> [126] 10 10 10 10 10 5 5 5 5 1 1 1 1 1 1 5 2 1 1 1 10 10 10 10 10
#> [151] 15 15 15 15 15 15 15 15 15 15 1 1 1 1 1
#>
#>
get_param_xml(file, c("argi", "norg"))
#> $sols.xml
#> $sols.xml$argi
#> [1] 30.2 21.0 27.0 39.0 1.0 12.2 70.0 22.0 9.9 10.2 10.2 17.0 23.1 22.0 27.0
#> [16] 30.7 0.1 27.3 25.0 10.2 25.0 28.6 36.0 29.0 10.2 21.2 22.2 13.0 17.0 15.0
#> [31] 26.0 28.2 20.0
#>
#> $sols.xml$norg
#> [1] 0.270 0.100 0.210 0.150 0.700 0.110 0.200 0.120 0.070 0.160 0.180 0.210
#> [13] 0.140 0.120 0.140 0.140 0.070 0.080 0.200 0.180 0.100 0.120 0.150 0.120
#> [25] 0.140 0.070 0.110 0.100 0.150 0.080 0.088 0.088 0.100
#>
#>
# With soil selection
# scalar parameters per soil
get_param_xml(file, c("argi", "norg"),
select = "sol", select_value = c("solcanne", "solbanane")
)
#> $sols.xml
#> $sols.xml$argi
#> [1] 30.2 70.0
#>
#> $sols.xml$norg
#> [1] 0.27 0.20
#>
#>
# Crop management file
file <- file.path(get_examples_path(file_type = "xml"), "file_tec.xml")
# Getting parameters for irrigation (date and quantity)
get_param_xml(file, c("julapI_or_sum_upvt", "amount"))
#> $file_tec.xml
#> $file_tec.xml$julapI_or_sum_upvt
#> [1] 178 185 193 198 200 204 207 211 214 218 221 232 239 249 257 264
#>
#> $file_tec.xml$amount
#> [1] 20 24 29 29 28 31 21 21 23 18 22 16 16 30 29 20
#>
#>