Note: no data for NWTC-091 yet; NWTC-031 has 0’s on all, per data center data (d/t starting work in December?)

All exposures data now cleaned. index_g, index_h, index_i filled in where possible from exposures interview data.

Groups now

As listed on REDCap:

Lower-exposed n = 16 (n = 4 with 3 exposures)
Resilient n = 33 (n = 2 with 3 exposures)
PTSD n = 20

Groups when 3 exposures = lower-exposed

Low-exposed n = 18
Resilient n = 31
PTSD n = 20

Groups when 3 exposures = resilient

Low-exposed n = 12
Resilient n = 37
PTSD n = 20

Exposures

3 exposures = resilient group

Warning: Removed 1 rows containing non-finite values (stat_bin).

Comparisons

index a*

library(MASS) # for chisq
library(descr) # for crosstable

# This code will generate both Pearson's Chi-square and Fisher's Chi square. It produces counts as well as proportions of each of the table entries. Based on the standardised residuals or z-values scores i.e., If it is outside the range |1.96| i.e., less than -1.96 or greater than 1.96, then it is significant p < 0.05. The sign would then indicate whether positively related or negatively.
# NB: Residuals reflect the extent to which an observed value exceeded the expected value (positive value) or fell short of the expected value (negative value)

CrossTable(data$index_a,  data$group_3resil,
       fisher = T, chisq = T, expected = T,
       prop.c = F, prop.t = F, prop.chisq = F, 
      sresid = T, missing.include=F, row.labels = T)
Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3resil
data$index_a    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        10        1           1      12
expected                2.1      3.4         6.5        
row prop.             0.833    0.083       0.083   0.176
std. res.             5.417   -1.285      -2.164        
--------------------------------------------------------
1                         2       18          36      56
expected                9.9     15.6        30.5        
row prop.             0.036    0.321       0.643   0.824
std. res.            -2.507    0.595       1.002        
--------------------------------------------------------
Total                    12       19          37      68
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 43.31797      d.f. = 2      p = 0.000000000392 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.0000000141 
  • lower-exposed ppts more 0 & fewer 1 than expected
  • resilient ppts fewer 0 than expected

index b

Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3resil
data$index_b    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        12       12          26      50
expected                8.8     14.0        27.2        
row prop.             0.240    0.240       0.520   0.735
std. res.             1.069   -0.527      -0.231        
--------------------------------------------------------
1                         0        7          11      18
expected                3.2      5.0         9.8        
row prop.             0.000    0.389       0.611   0.265
std. res.            -1.782    0.879       0.385        
--------------------------------------------------------
Total                    12       19          37      68
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 5.57198      d.f. = 2      p = 0.0617 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.0479 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

index c

Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3resil
data$index_c    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                         6        3           5      14
expected                2.5      3.9         7.6        
row prop.             0.429    0.214       0.357   0.206
std. res.             2.245   -0.461      -0.948        
--------------------------------------------------------
1                         6       16          32      54
expected                9.5     15.1        29.4        
row prop.             0.111    0.296       0.593   0.794
std. res.            -1.143    0.235       0.483        
--------------------------------------------------------
Total                    12       19          37      68
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 7.749524      d.f. = 2      p = 0.0208 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.0306 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

index d

Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3resil
data$index_d    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                         9        9          10      28
expected                4.9      7.8        15.2        
row prop.             0.321    0.321       0.357   0.412
std. res.             1.826    0.421      -1.341        
--------------------------------------------------------
1                         3       10          27      40
expected                7.1     11.2        21.8        
row prop.             0.075    0.250       0.675   0.588
std. res.            -1.528   -0.352       1.122        
--------------------------------------------------------
Total                    12       19          37      68
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 9.02691      d.f. = 2      p = 0.011 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.0101 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

index e*

   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3resil
data$index_e    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        11       10          12      33
expected                5.8      9.2        18.0        
row prop.             0.333    0.303       0.364   0.485
std. res.             2.145    0.257      -1.406        
--------------------------------------------------------
1                         1        9          25      35
expected                6.2      9.8        19.0        
row prop.             0.029    0.257       0.714   0.515
std. res.            -2.083   -0.249       1.365        
--------------------------------------------------------
Total                    12       19          37      68
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 12.90587      d.f. = 2      p = 0.00158 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.000962 
  • lower-exposed more 0, fewer 1 than expected

index f

Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3resil
data$index_f    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        12       16          30      58
expected               10.2     16.2        31.6        
row prop.             0.207    0.276       0.517   0.853
std. res.             0.552   -0.051      -0.277        
--------------------------------------------------------
1                         0        3           7      10
expected                1.8      2.8         5.4        
row prop.             0.000    0.300       0.700   0.147
std. res.            -1.328    0.123       0.668        
--------------------------------------------------------
Total                    12       19          37      68
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 2.61033      d.f. = 2      p = 0.271 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.371 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

index g

Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3resil
data$index_g    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                         6        8           9      23
expected                4.1      6.5        12.4        
row prop.             0.261    0.348       0.391   0.343
std. res.             0.927    0.579      -0.955        
--------------------------------------------------------
1                         6       11          27      44
expected                7.9     12.5        23.6        
row prop.             0.136    0.250       0.614   0.657
std. res.            -0.670   -0.418       0.691        
--------------------------------------------------------
Total                    12       19          36      67
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 3.206613      d.f. = 2      p = 0.201 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.207 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

index h*

   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3resil
data$index_h    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        11        4          16      31
expected                5.6      8.8        16.7        
row prop.             0.355    0.129       0.516   0.463
std. res.             2.312   -1.616      -0.161        
--------------------------------------------------------
1                         1       15          20      36
expected                6.4     10.2        19.3        
row prop.             0.028    0.417       0.556   0.537
std. res.            -2.145    1.499       0.149        
--------------------------------------------------------
Total                    12       19          36      67
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 14.8558      d.f. = 2      p = 0.000594 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.000429 

*lower-exposed more 0, fewer 1 than expected

index i

Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3resil
data$index_i    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        11       12          28      51
expected                8.9     15.4        26.7        
row prop.             0.216    0.235       0.549   0.810
std. res.             0.702   -0.862       0.249        
--------------------------------------------------------
1                         0        7           5      12
expected                2.1      3.6         6.3        
row prop.             0.000    0.583       0.417   0.190
std. res.            -1.447    1.777      -0.513        
--------------------------------------------------------
Total                    11       19          33      63
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 6.814804      d.f. = 2      p = 0.0331 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.0339 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

index j

Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3resil
data$index_j    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        10        7          26      43
expected                8.4     11.0        23.6        
row prop.             0.233    0.163       0.605   0.843
std. res.             0.540   -1.196       0.492        
--------------------------------------------------------
1                         0        6           2       8
expected                1.6      2.0         4.4        
row prop.             0.000    0.750       0.250   0.157
std. res.            -1.252    2.774      -1.141        
--------------------------------------------------------
Total                    10       13          28      51
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 12.53006      d.f. = 2      p = 0.0019 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.00373 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

3 exposures = lower-exposed group

Warning: Removed 1 rows containing non-finite values (stat_bin).

Comparisons

index a*

library(MASS) # for chisq
library(descr) # for crosstable

CrossTable(data$index_a,  data$group_3low,
       fisher = T, chisq = T, expected = T,
       prop.c = F, prop.t = F, prop.chisq = F, 
      sresid = T, missing.include=F, row.labels = T)
Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3low
data$index_a    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        11        1           0      12
expected                3.2      3.4         5.5        
row prop.             0.917    0.083       0.000   0.176
std. res.             4.390   -1.285      -2.339        
--------------------------------------------------------
1                         7       18          31      56
expected               14.8     15.6        25.5        
row prop.             0.125    0.321       0.554   0.824
std. res.            -2.032    0.595       1.083        
--------------------------------------------------------
Total                    18       19          31      68
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 32.04602      d.f. = 2      p = 0.00000011 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.0000000925 
  • lower-exposed more 0, fewer 1 than expected
  • resilient fewer 0 than expected

index b

Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3low
data$index_b    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        18       12          20      50
expected               13.2     14.0        22.8        
row prop.             0.360    0.240       0.400   0.735
std. res.             1.310   -0.527      -0.585        
--------------------------------------------------------
1                         0        7          11      18
expected                4.8      5.0         8.2        
row prop.             0.000    0.389       0.611   0.265
std. res.            -2.183    0.879       0.975        
--------------------------------------------------------
Total                    18       19          31      68
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 8.823965      d.f. = 2      p = 0.0121 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.0047 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

index c*

Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3low
data$index_c    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        10        3           1      14
expected                3.7      3.9         6.4        
row prop.             0.714    0.214       0.071   0.206
std. res.             3.270   -0.461      -2.131        
--------------------------------------------------------
1                         8       16          30      54
expected               14.3     15.1        24.6        
row prop.             0.148    0.296       0.556   0.794
std. res.            -1.665    0.235       1.085        
--------------------------------------------------------
Total                    18       19          31      68
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 19.44493      d.f. = 2      p = 0.0000599 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.0000542 
  • lower-exposed more 0 than expected
  • resilient fewer 0 than expected

index d

   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3low
data$index_d    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        12        9           7      28
expected                7.4      7.8        12.8        
row prop.             0.429    0.321       0.250   0.412
std. res.             1.685    0.421      -1.614        
--------------------------------------------------------
1                         6       10          24      40
expected               10.6     11.2        18.2        
row prop.             0.150    0.250       0.600   0.588
std. res.            -1.410   -0.352       1.350        
--------------------------------------------------------
Total                    18       19          31      68
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 9.55513      d.f. = 2      p = 0.00842 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.00871 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

index e

   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3low
data$index_e    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        14       10           9      33
expected                8.7      9.2        15.0        
row prop.             0.424    0.303       0.273   0.485
std. res.             1.781    0.257      -1.558        
--------------------------------------------------------
1                         4        9          22      35
expected                9.3      9.8        16.0        
row prop.             0.114    0.257       0.629   0.515
std. res.            -1.730   -0.249       1.513        
--------------------------------------------------------
Total                    18       19          31      68
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 11.0105      d.f. = 2      p = 0.00407 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.00382 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

index f

Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3low
data$index_f    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        18       16          24      58
expected               15.4     16.2        26.4        
row prop.             0.310    0.276       0.414   0.853
std. res.             0.676   -0.051      -0.475        
--------------------------------------------------------
1                         0        3           7      10
expected                2.6      2.8         4.6        
row prop.             0.000    0.300       0.700   0.147
std. res.            -1.627    0.123       1.143        
--------------------------------------------------------
Total                    18       19          31      68
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 4.653826      d.f. = 2      p = 0.0976 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.0952 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

index g

   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3low
data$index_g    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                         8        8           7      23
expected                6.2      6.5        10.3        
row prop.             0.348    0.348       0.304   0.343
std. res.             0.733    0.579      -1.028        
--------------------------------------------------------
1                        10       11          23      44
expected               11.8     12.5        19.7        
row prop.             0.227    0.250       0.523   0.657
std. res.            -0.530   -0.418       0.743        
--------------------------------------------------------
Total                    18       19          30      67
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 2.935538      d.f. = 2      p = 0.23 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.231 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

index h*

   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3low
data$index_h    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        16        4          11      31
expected                8.3      8.8        13.9        
row prop.             0.516    0.129       0.355   0.463
std. res.             2.658   -1.616      -0.773        
--------------------------------------------------------
1                         2       15          19      36
expected                9.7     10.2        16.1        
row prop.             0.056    0.417       0.528   0.537
std. res.            -2.467    1.499       0.717        
--------------------------------------------------------
Total                    18       19          30      67
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 19.12401      d.f. = 2      p = 0.0000704 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.0000549 
  • lower-exposed more 0, fewer 1 than expected

index i

Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3low
data$index_i    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        17       12          22      51
expected               13.8     15.4        21.9        
row prop.             0.333    0.235       0.431   0.810
std. res.             0.873   -0.862       0.031        
--------------------------------------------------------
1                         0        7           5      12
expected                3.2      3.6         5.1        
row prop.             0.000    0.583       0.417   0.190
std. res.            -1.799    1.777      -0.063        
--------------------------------------------------------
Total                    17       19          27      63
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 7.906605      d.f. = 2      p = 0.0192 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.0166 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

index j

Warning in chisq.test(tab, correct = FALSE, ...) :
  Chi-squared approximation may be incorrect
   Cell Contents 
|-------------------------|
|                       N | 
|              Expected N | 
|           N / Row Total | 
|            Std Residual | 
|-------------------------|

========================================================
                data$group_3low
data$index_j    Low-exposed     PTSD   Resilient   Total
--------------------------------------------------------
0                        14        7          22      43
expected               11.8     11.0        20.2        
row prop.             0.326    0.163       0.512   0.843
std. res.             0.639   -1.196       0.392        
--------------------------------------------------------
1                         0        6           2       8
expected                2.2      2.0         3.8        
row prop.             0.000    0.750       0.250   0.157
std. res.            -1.482    2.774      -0.910        
--------------------------------------------------------
Total                    14       13          24      51
========================================================

Statistics for All Table Factors

Pearson's Chi-squared test 
------------------------------------------------------------
Chi^2 = 12.71008      d.f. = 2      p = 0.00174 


 
Fisher's Exact Test for Count Data
------------------------------------------------------------
Alternative hypothesis: two.sided 
p = 0.0024 

Comparisons do not survive Bonferroni correction for 3*10 comparisons (.00167)

LS0tCnRpdGxlOiAiV1RDIG5ldXJvaW1hZ2luZyBtZWV0aW5nIDAzLTMwLTIyIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpfTm90ZTogbm8gZGF0YSBmb3IgTldUQy0wOTEgeWV0OyBOV1RDLTAzMSBoYXMgMCdzIG9uIGFsbCwgcGVyIGRhdGEgY2VudGVyIGRhdGEgKGQvdCBzdGFydGluZyB3b3JrIGluIERlY2VtYmVyPylfCgpfQWxsIGV4cG9zdXJlcyBkYXRhIG5vdyBjbGVhbmVkLiBgaW5kZXhfZ2AsIGBpbmRleF9oYCwgYGluZGV4X2lgIGZpbGxlZCBpbiB3aGVyZSBwb3NzaWJsZSBmcm9tIGV4cG9zdXJlcyBpbnRlcnZpZXcgZGF0YS5fCgoKIyMgR3JvdXBzIG5vdyAKCkFzIGxpc3RlZCBvbiBSRURDYXA6Cgo+TG93ZXItZXhwb3NlZCBuID0gMTYgXyhuID0gNCB3aXRoIDMgZXhwb3N1cmVzKV88YnI+ClJlc2lsaWVudCBuID0gMzMgXyhuID0gMiB3aXRoIDMgZXhwb3N1cmVzKV88YnI+ClBUU0QgbiA9IDIwPGJyPgoKIyMgR3JvdXBzIHdoZW4gMyBleHBvc3VyZXMgPSBsb3dlci1leHBvc2VkCgo+TG93LWV4cG9zZWQgbiA9IDE4PGJyPgpSZXNpbGllbnQgbiA9IDMxPGJyPgpQVFNEIG4gPSAyMDxicj4KCiMjIEdyb3VwcyB3aGVuIDMgZXhwb3N1cmVzID0gcmVzaWxpZW50Cgo+TG93LWV4cG9zZWQgbiA9IDEyPGJyPgpSZXNpbGllbnQgbiA9IDM3PGJyPgpQVFNEIG4gPSAyMDxicj4KCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGQUxTRSkKa25pdHI6Om9wdHNfa25pdCRzZXQocm9vdC5kaXIgPSAiL1VzZXJzL3NhcmVuc2VlbGV5L0Ryb3Bib3gvUG9zdGRvYy9ud3RjX3N0dWR5L21lZXRpbmdzIikKb3B0aW9ucyhzY2lwZW49OTk5KQoKbGlicmFyeShkcGx5cikKbGlicmFyeShtaWNlKQpsaWJyYXJ5KGdsbW5ldCkKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KGdnY29ycnBsb3QpCmxpYnJhcnkoc3RyaW5ncikKbGlicmFyeShmb3JlaWduKQpsaWJyYXJ5KHN0YXJnYXplcikKbGlicmFyeShjb3dwbG90KQoKcm0obGlzdCA9IGxzKCkpCgojbG9hZCBkYXRhIGZvciBOV1RDIHBhcnRpY2lwYW50cyBzbyBmYXIgCmRhdGE8LXJlYWQuY3N2KCJud3RjX2RhdGFfY2xlYW5lZF9mb3JNZWV0aW5nXzAzLTMwLTIyLmNzdiIsIHN0cmlwLndoaXRlPUZBTFNFLCBuYS5zdHJpbmdzPSJOQSIpCgpkYXRhJHRvdF9leHBvc3VyZXNfcG9zdF9jbGVhbltkYXRhJHJlY29yZF9pZD09Ik5XVEMtMDkxIl0gPC0gTkEgIyBkb24ndCBoYXZlIHRoaXMgcGVyc29uJ3MgZGF0YSB5ZXQKCiMgbWFrZSBuZXcgZ3JvdXBzCiMgd2hlbiAzIGV4cG9zdXJlcyA9IFJlc2lsaWVudCBncm91cApkYXRhIDwtIGRhdGEgJT4lIG11dGF0ZShncm91cF8zcmVzaWwgPSBncm91cCkKZGF0YSRncm91cF8zcmVzaWxbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTAzMiJdIDwtICJSZXNpbGllbnQiICMgZm9ybWVybHkgbG93ZXItZXhwb3NlZApkYXRhJGdyb3VwXzNyZXNpbFtkYXRhJHJlY29yZF9pZD09Ik5XVEMtMDY5Il0gPC0gIlJlc2lsaWVudCIgIyBmb3JtZXJseSBsb3dlci1leHBvc2VkCmRhdGEkZ3JvdXBfM3Jlc2lsW2RhdGEkcmVjb3JkX2lkPT0iTldUQy0wNzIiXSA8LSAiUmVzaWxpZW50IiAjIGZvcm1lcmx5IGxvd2VyLWV4cG9zZWQKZGF0YSRncm91cF8zcmVzaWxbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA4MyJdIDwtICJSZXNpbGllbnQiICMgZm9ybWVybHkgbG93ZXItZXhwb3NlZAoKIyB3aGVuIDMgZXhwb3N1cmVzID0gTG93ZXItZXhwb3NlZCBncm91cApkYXRhIDwtIGRhdGEgJT4lIG11dGF0ZShncm91cF8zbG93ID0gZ3JvdXApCmRhdGEkZ3JvdXBfM2xvd1tkYXRhJHJlY29yZF9pZD09Ik5XVEMtMDU5Il0gPC0gIkxvdy1leHBvc2VkIiAjIGZvcm1lcmx5IHJlc2lsaWVudApkYXRhJGdyb3VwXzNsb3dbZGF0YSRyZWNvcmRfaWQ9PSJOV1RDLTA3OSJdIDwtICJMb3ctZXhwb3NlZCIgIyBmb3JtZXJseSByZXNpbGllbnQKCmBgYAoKYGBge3J9CmRhdGEgJT4lIGdyb3VwX2J5KGdyb3VwKSAlPiUgY291bnQoKQpkYXRhICU+JSBncm91cF9ieShncm91cF8zcmVzaWwpICU+JSBjb3VudCgpCmRhdGEgJT4lIGdyb3VwX2J5KGdyb3VwXzNsb3cpICU+JSBjb3VudCgpCmBgYAoKIyBFeHBvc3VyZXMKCgoKIyMgMyBleHBvc3VyZXMgPSByZXNpbGllbnQgZ3JvdXAKCmBgYHtyfQpnZ3Bsb3QoZGF0YSwgYWVzKHRvdF9leHBvc3VyZXNfcG9zdF9jbGVhbikpICsgCiAgICAgICBnZW9tX2hpc3RvZ3JhbShiaW5zPTIwLCBjb2xvdXI9J2JsYWNrJyxzaXplPS41KSArCiAgICB4bGFiKCJXVEMgZXhwb3N1cmVzIikgKyB0aGVtZV9idygpICsgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAxMCwgYnkgPSAxKSkgKyBmYWNldF93cmFwKH5ncm91cF8zcmVzaWwpCgpgYGAKCmBgYHtyfQoKIyMgbXV0YXRlIGJhY2sgdG8gZmFjdG9ycyBmb3IgaW5kZXgqIHZhcnMKCmRhdGFfdG1wIDwtIGRhdGEgJT4lIG11dGF0ZV9lYWNoKGZ1bnMoZmFjdG9yKSwgc3RhcnRzX3dpdGgoImluZGV4IikpCgppbmRleF9hIDwtIGRhdGFfdG1wICU+JSBjb3VudChncm91cF8zcmVzaWwsaW5kZXhfYSwgbmFtZT0ibiIpICU+JQogICAgZ3JvdXBfYnkoZ3JvdXBfM3Jlc2lsKSAlPiUKICAgIG11dGF0ZShwY3Q9IHJvdW5kKG4gLyBzdW0obiksMikpICAlPiUKICAgIHVuZ3JvdXAoKQoKcF9hPC1nZ3Bsb3QoaW5kZXhfYSwgYWVzKGdyb3VwXzNyZXNpbCxwY3QsIGZpbGw9aW5kZXhfYSkpICsKICAgZ2VvbV9iYXIocG9zaXRpb249InN0YWNrIiwgc3RhdD0iaWRlbnRpdHkiLCBjb2xvcj0iYmxhY2siKSArIHNjYWxlX2ZpbGxfZGlzY3JldGUobGFiZWxzID0gYygiTm8iLCAiWWVzIiwgIk1pc3NpbmciKSkgKwogIHRoZW1lKGF4aXMudGl0bGUueD1lbGVtZW50X2JsYW5rKCkpCgoKaW5kZXhfYiA8LSBkYXRhX3RtcCAlPiUgY291bnQoZ3JvdXBfM3Jlc2lsLGluZGV4X2IsIG5hbWU9Im4iKSAlPiUKICAgIGdyb3VwX2J5KGdyb3VwXzNyZXNpbCkgJT4lCiAgICBtdXRhdGUocGN0PSByb3VuZChuIC8gc3VtKG4pLDIpKSAgJT4lCiAgICB1bmdyb3VwKCkKCnBfYjwtZ2dwbG90KGluZGV4X2IsIGFlcyhncm91cF8zcmVzaWwscGN0LCBmaWxsPWluZGV4X2IpKSArCiAgIGdlb21fYmFyKHBvc2l0aW9uPSJzdGFjayIsIHN0YXQ9ImlkZW50aXR5IiwgY29sb3I9ImJsYWNrIikgKyBzY2FsZV9maWxsX2Rpc2NyZXRlKGxhYmVscyA9IGMoIk5vIiwgIlllcyIsICJNaXNzaW5nIikpICsKICB0aGVtZShheGlzLnRpdGxlLng9ZWxlbWVudF9ibGFuaygpKQoKCmluZGV4X2MgPC0gZGF0YV90bXAgJT4lIGNvdW50KGdyb3VwXzNyZXNpbCxpbmRleF9jLCBuYW1lPSJuIikgJT4lCiAgICBncm91cF9ieShncm91cF8zcmVzaWwpICU+JQogICAgbXV0YXRlKHBjdD0gcm91bmQobiAvIHN1bShuKSwyKSkgICU+JQogICAgdW5ncm91cCgpCgpwX2M8LWdncGxvdChpbmRleF9jLCBhZXMoZ3JvdXBfM3Jlc2lsLHBjdCwgZmlsbD1pbmRleF9jKSkgKwogICBnZW9tX2Jhcihwb3NpdGlvbj0ic3RhY2siLCBzdGF0PSJpZGVudGl0eSIsIGNvbG9yPSJibGFjayIpICsgc2NhbGVfZmlsbF9kaXNjcmV0ZShsYWJlbHMgPSBjKCJObyIsICJZZXMiLCAiTWlzc2luZyIpKSArCiAgdGhlbWUoYXhpcy50aXRsZS54PWVsZW1lbnRfYmxhbmsoKSkKCgppbmRleF9kIDwtIGRhdGFfdG1wICU+JSBjb3VudChncm91cF8zcmVzaWwsaW5kZXhfZCwgbmFtZT0ibiIpICU+JQogICAgZ3JvdXBfYnkoZ3JvdXBfM3Jlc2lsKSAlPiUKICAgIG11dGF0ZShwY3Q9IHJvdW5kKG4gLyBzdW0obiksMikpICAlPiUKICAgIHVuZ3JvdXAoKQoKcF9kPC1nZ3Bsb3QoaW5kZXhfZCwgYWVzKGdyb3VwXzNyZXNpbCxwY3QsIGZpbGw9aW5kZXhfZCkpICsKICAgZ2VvbV9iYXIocG9zaXRpb249InN0YWNrIiwgc3RhdD0iaWRlbnRpdHkiLCBjb2xvcj0iYmxhY2siKSArIHNjYWxlX2ZpbGxfZGlzY3JldGUobGFiZWxzID0gYygiTm8iLCAiWWVzIiwgIk1pc3NpbmciKSkgKwogIHRoZW1lKGF4aXMudGl0bGUueD1lbGVtZW50X2JsYW5rKCkpCgoKaW5kZXhfZSA8LSBkYXRhX3RtcCAlPiUgY291bnQoZ3JvdXBfM3Jlc2lsLGluZGV4X2UsIG5hbWU9Im4iKSAlPiUKICAgIGdyb3VwX2J5KGdyb3VwXzNyZXNpbCkgJT4lCiAgICBtdXRhdGUocGN0PSByb3VuZChuIC8gc3VtKG4pLDIpKSAgJT4lCiAgICB1bmdyb3VwKCkKCnBfZTwtZ2dwbG90KGluZGV4X2UsIGFlcyhncm91cF8zcmVzaWwscGN0LCBmaWxsPWluZGV4X2UpKSArCiAgIGdlb21fYmFyKHBvc2l0aW9uPSJzdGFjayIsIHN0YXQ9ImlkZW50aXR5IiwgY29sb3I9ImJsYWNrIikgKyBzY2FsZV9maWxsX2Rpc2NyZXRlKGxhYmVscyA9IGMoIk5vIiwgIlllcyIsICJNaXNzaW5nIikpICsKICB0aGVtZShheGlzLnRpdGxlLng9ZWxlbWVudF9ibGFuaygpKQoKCmluZGV4X2YgPC0gZGF0YV90bXAgJT4lIGNvdW50KGdyb3VwXzNyZXNpbCxpbmRleF9mLCBuYW1lPSJuIikgJT4lCiAgICBncm91cF9ieShncm91cF8zcmVzaWwpICU+JQogICAgbXV0YXRlKHBjdD0gcm91bmQobiAvIHN1bShuKSwyKSkgICU+JQogICAgdW5ncm91cCgpCgpwX2Y8LWdncGxvdChpbmRleF9mLCBhZXMoZ3JvdXBfM3Jlc2lsLHBjdCwgZmlsbD1pbmRleF9mKSkgKwogICBnZW9tX2Jhcihwb3NpdGlvbj0ic3RhY2siLCBzdGF0PSJpZGVudGl0eSIsIGNvbG9yPSJibGFjayIpICsgc2NhbGVfZmlsbF9kaXNjcmV0ZShsYWJlbHMgPSBjKCJObyIsICJZZXMiLCAiTWlzc2luZyIpKSArCiAgdGhlbWUoYXhpcy50aXRsZS54PWVsZW1lbnRfYmxhbmsoKSkKCgppbmRleF9nIDwtIGRhdGFfdG1wICU+JSBjb3VudChncm91cF8zcmVzaWwsaW5kZXhfZywgbmFtZT0ibiIpICU+JQogICAgZ3JvdXBfYnkoZ3JvdXBfM3Jlc2lsKSAlPiUKICAgIG11dGF0ZShwY3Q9IHJvdW5kKG4gLyBzdW0obiksMikpICAlPiUKICAgIHVuZ3JvdXAoKQoKcF9nPC1nZ3Bsb3QoaW5kZXhfZywgYWVzKGdyb3VwXzNyZXNpbCxwY3QsIGZpbGw9aW5kZXhfZykpICsKICAgZ2VvbV9iYXIocG9zaXRpb249InN0YWNrIiwgc3RhdD0iaWRlbnRpdHkiLCBjb2xvcj0iYmxhY2siKSArIHNjYWxlX2ZpbGxfZGlzY3JldGUobGFiZWxzID0gYygiTm8iLCAiWWVzIiwgIk1pc3NpbmciKSkgKwogIHRoZW1lKGF4aXMudGl0bGUueD1lbGVtZW50X2JsYW5rKCkpCgoKaW5kZXhfaCA8LSBkYXRhX3RtcCAlPiUgY291bnQoZ3JvdXBfM3Jlc2lsLGluZGV4X2gsIG5hbWU9Im4iKSAlPiUKICAgIGdyb3VwX2J5KGdyb3VwXzNyZXNpbCkgJT4lCiAgICBtdXRhdGUocGN0PSByb3VuZChuIC8gc3VtKG4pLDIpKSAgJT4lCiAgICB1bmdyb3VwKCkKCnBfaDwtZ2dwbG90KGluZGV4X2gsIGFlcyhncm91cF8zcmVzaWwscGN0LCBmaWxsPWluZGV4X2gpKSArCiAgIGdlb21fYmFyKHBvc2l0aW9uPSJzdGFjayIsIHN0YXQ9ImlkZW50aXR5IiwgY29sb3I9ImJsYWNrIikgKyBzY2FsZV9maWxsX2Rpc2NyZXRlKGxhYmVscyA9IGMoIk5vIiwgIlllcyIsICJNaXNzaW5nIikpICsKICB0aGVtZShheGlzLnRpdGxlLng9ZWxlbWVudF9ibGFuaygpKQoKCmluZGV4X2kgPC0gZGF0YV90bXAgJT4lIGNvdW50KGdyb3VwXzNyZXNpbCxpbmRleF9pLCBuYW1lPSJuIikgJT4lCiAgICBncm91cF9ieShncm91cF8zcmVzaWwpICU+JQogICAgbXV0YXRlKHBjdD0gcm91bmQobiAvIHN1bShuKSwyKSkgICU+JQogICAgdW5ncm91cCgpCgpwX2k8LWdncGxvdChpbmRleF9pLCBhZXMoZ3JvdXBfM3Jlc2lsLHBjdCwgZmlsbD1pbmRleF9pKSkgKwogICBnZW9tX2Jhcihwb3NpdGlvbj0ic3RhY2siLCBzdGF0PSJpZGVudGl0eSIsIGNvbG9yPSJibGFjayIpICsgc2NhbGVfZmlsbF9kaXNjcmV0ZShsYWJlbHMgPSBjKCJObyIsICJZZXMiLCAiTWlzc2luZyIpKSArCiAgdGhlbWUoYXhpcy50aXRsZS54PWVsZW1lbnRfYmxhbmsoKSkKCmluZGV4X2ogPC0gZGF0YV90bXAgJT4lIGNvdW50KGdyb3VwXzNyZXNpbCxpbmRleF9qLCBuYW1lPSJuIikgJT4lCiAgICBncm91cF9ieShncm91cF8zcmVzaWwpICU+JQogICAgbXV0YXRlKHBjdD0gcm91bmQobiAvIHN1bShuKSwyKSkgICU+JQogICAgdW5ncm91cCgpCgpwX2o8LWdncGxvdChpbmRleF9qLCBhZXMoZ3JvdXBfM3Jlc2lsLHBjdCwgZmlsbD1pbmRleF9qKSkgKwogICBnZW9tX2Jhcihwb3NpdGlvbj0ic3RhY2siLCBzdGF0PSJpZGVudGl0eSIsIGNvbG9yPSJibGFjayIpICsgc2NhbGVfZmlsbF9kaXNjcmV0ZShsYWJlbHMgPSBjKCJObyIsICJZZXMiLCAiTWlzc2luZyIpKSArCiAgdGhlbWUoYXhpcy50aXRsZS54PWVsZW1lbnRfYmxhbmsoKSkgCgpgYGAKCmBgYHtyIGZpZy5oZWlnaHQ9NH0KbGFiZWxzIDwtIGMoImFycml2ZWQiLCJkdXN0IiwicGlsZSIsImhvdXJzIiwicmVtYWlucyIsInNlYXJjaCIsImtub3cgZGllZCIsImtub3cgaW5qIiwiaW5qdXJlZCIsInNsZXB0IikKIHBsb3RfZ3JpZChwX2EsIHBfYiwgcF9jLCBwX2QsIHBfZSwgcF9mLCBwX2csIHBfaCwgcF9pLCBwX2osIGxhYmVscyA9IGxhYmVscywgI2dyZWVkeT1UUlVFLCAKICAgICAgICAgICBzY2FsZT0xLCBuY29sPTIsIG5yb3c9NSxoanVzdD0tLjUsdmp1c3Q9MSkKYGBgCgojIyMgQ29tcGFyaXNvbnMKCiMjIyMgaW5kZXggYSoKYGBge3IsIGVjaG89VFJVRX0KbGlicmFyeShNQVNTKSAjIGZvciBjaGlzcQpsaWJyYXJ5KGRlc2NyKSAjIGZvciBjcm9zc3RhYmxlCgojIFRoaXMgY29kZSB3aWxsIGdlbmVyYXRlIGJvdGggUGVhcnNvbidzIENoaS1zcXVhcmUgYW5kIEZpc2hlcidzIENoaSBzcXVhcmUuIEl0IHByb2R1Y2VzIGNvdW50cyBhcyB3ZWxsIGFzIHByb3BvcnRpb25zIG9mIGVhY2ggb2YgdGhlIHRhYmxlIGVudHJpZXMuIEJhc2VkIG9uIHRoZSBzdGFuZGFyZGlzZWQgcmVzaWR1YWxzIG9yIHotdmFsdWVzIHNjb3JlcyBpLmUuLCBJZiBpdCBpcyBvdXRzaWRlIHRoZSByYW5nZSB8MS45NnwgaS5lLiwgbGVzcyB0aGFuIC0xLjk2IG9yIGdyZWF0ZXIgdGhhbiAxLjk2LCB0aGVuIGl0IGlzIHNpZ25pZmljYW50IHAgPCAwLjA1LiBUaGUgc2lnbiB3b3VsZCB0aGVuIGluZGljYXRlIHdoZXRoZXIgcG9zaXRpdmVseSByZWxhdGVkIG9yIG5lZ2F0aXZlbHkuCiMgTkI6IFJlc2lkdWFscyByZWZsZWN0IHRoZSBleHRlbnQgdG8gd2hpY2ggYW4gb2JzZXJ2ZWQgdmFsdWUgZXhjZWVkZWQgdGhlIGV4cGVjdGVkIHZhbHVlIChwb3NpdGl2ZSB2YWx1ZSkgb3IgZmVsbCBzaG9ydCBvZiB0aGUgZXhwZWN0ZWQgdmFsdWUgKG5lZ2F0aXZlIHZhbHVlKQoKQ3Jvc3NUYWJsZShkYXRhJGluZGV4X2EsICBkYXRhJGdyb3VwXzNyZXNpbCwKICAgICAgIGZpc2hlciA9IFQsIGNoaXNxID0gVCwgZXhwZWN0ZWQgPSBULAogICAgICAgcHJvcC5jID0gRiwgcHJvcC50ID0gRiwgcHJvcC5jaGlzcSA9IEYsIAogICAgICBzcmVzaWQgPSBULCBtaXNzaW5nLmluY2x1ZGU9Riwgcm93LmxhYmVscyA9IFQpCgpgYGAKCiogbG93ZXItZXhwb3NlZCBwcHRzIG1vcmUgMCAmIGZld2VyIDEgdGhhbiBleHBlY3RlZAoqIHJlc2lsaWVudCBwcHRzIGZld2VyIDAgdGhhbiBleHBlY3RlZAoKIyMjIyBpbmRleCBiCmBgYHtyfQpDcm9zc1RhYmxlKGRhdGEkaW5kZXhfYiwgIGRhdGEkZ3JvdXBfM3Jlc2lsLAogICAgICAgZmlzaGVyID0gVCwgY2hpc3EgPSBULCBleHBlY3RlZCA9IFQsCiAgICAgICBwcm9wLmMgPSBGLCBwcm9wLnQgPSBGLCBwcm9wLmNoaXNxID0gRiwgCiAgICAgIHNyZXNpZCA9IFQsIG1pc3NpbmcuaW5jbHVkZT1GLCByb3cubGFiZWxzID0gVCkKYGBgCgpDb21wYXJpc29ucyBkbyBub3Qgc3Vydml2ZSBCb25mZXJyb25pIGNvcnJlY3Rpb24gZm9yIDMqMTAgY29tcGFyaXNvbnMgKC4wMDE2NykKCgojIyMjIGluZGV4IGMKYGBge3J9CkNyb3NzVGFibGUoZGF0YSRpbmRleF9jLCAgZGF0YSRncm91cF8zcmVzaWwsCiAgICAgICBmaXNoZXIgPSBULCBjaGlzcSA9IFQsIGV4cGVjdGVkID0gVCwKICAgICAgIHByb3AuYyA9IEYsIHByb3AudCA9IEYsIHByb3AuY2hpc3EgPSBGLCAKICAgICAgc3Jlc2lkID0gVCwgbWlzc2luZy5pbmNsdWRlPUYsIHJvdy5sYWJlbHMgPSBUKQpgYGAKCkNvbXBhcmlzb25zIGRvIG5vdCBzdXJ2aXZlIEJvbmZlcnJvbmkgY29ycmVjdGlvbiBmb3IgMyoxMCBjb21wYXJpc29ucyAoLjAwMTY3KQoKCiMjIyMgaW5kZXggZApgYGB7cn0KQ3Jvc3NUYWJsZShkYXRhJGluZGV4X2QsICBkYXRhJGdyb3VwXzNyZXNpbCwKICAgICAgIGZpc2hlciA9IFQsIGNoaXNxID0gVCwgZXhwZWN0ZWQgPSBULAogICAgICAgcHJvcC5jID0gRiwgcHJvcC50ID0gRiwgcHJvcC5jaGlzcSA9IEYsIAogICAgICBzcmVzaWQgPSBULCBtaXNzaW5nLmluY2x1ZGU9Riwgcm93LmxhYmVscyA9IFQpCmBgYAoKQ29tcGFyaXNvbnMgZG8gbm90IHN1cnZpdmUgQm9uZmVycm9uaSBjb3JyZWN0aW9uIGZvciAzKjEwIGNvbXBhcmlzb25zICguMDAxNjcpCgoKIyMjIyBpbmRleCBlKgpgYGB7cn0KQ3Jvc3NUYWJsZShkYXRhJGluZGV4X2UsICBkYXRhJGdyb3VwXzNyZXNpbCwKICAgICAgIGZpc2hlciA9IFQsIGNoaXNxID0gVCwgZXhwZWN0ZWQgPSBULAogICAgICAgcHJvcC5jID0gRiwgcHJvcC50ID0gRiwgcHJvcC5jaGlzcSA9IEYsIAogICAgICBzcmVzaWQgPSBULCBtaXNzaW5nLmluY2x1ZGU9Riwgcm93LmxhYmVscyA9IFQpCmBgYAoKKiBsb3dlci1leHBvc2VkIG1vcmUgMCwgZmV3ZXIgMSB0aGFuIGV4cGVjdGVkCgoKIyMjIyBpbmRleCBmCmBgYHtyfQpDcm9zc1RhYmxlKGRhdGEkaW5kZXhfZiwgIGRhdGEkZ3JvdXBfM3Jlc2lsLAogICAgICAgZmlzaGVyID0gVCwgY2hpc3EgPSBULCBleHBlY3RlZCA9IFQsCiAgICAgICBwcm9wLmMgPSBGLCBwcm9wLnQgPSBGLCBwcm9wLmNoaXNxID0gRiwgCiAgICAgIHNyZXNpZCA9IFQsIG1pc3NpbmcuaW5jbHVkZT1GLCByb3cubGFiZWxzID0gVCkKYGBgCgpDb21wYXJpc29ucyBkbyBub3Qgc3Vydml2ZSBCb25mZXJyb25pIGNvcnJlY3Rpb24gZm9yIDMqMTAgY29tcGFyaXNvbnMgKC4wMDE2NykKCgojIyMjIGluZGV4IGcKYGBge3J9CkNyb3NzVGFibGUoZGF0YSRpbmRleF9nLCAgZGF0YSRncm91cF8zcmVzaWwsCiAgICAgICBmaXNoZXIgPSBULCBjaGlzcSA9IFQsIGV4cGVjdGVkID0gVCwKICAgICAgIHByb3AuYyA9IEYsIHByb3AudCA9IEYsIHByb3AuY2hpc3EgPSBGLCAKICAgICAgc3Jlc2lkID0gVCwgbWlzc2luZy5pbmNsdWRlPUYsIHJvdy5sYWJlbHMgPSBUKQpgYGAKQ29tcGFyaXNvbnMgZG8gbm90IHN1cnZpdmUgQm9uZmVycm9uaSBjb3JyZWN0aW9uIGZvciAzKjEwIGNvbXBhcmlzb25zICguMDAxNjcpCgojIyMjIGluZGV4IGgqCmBgYHtyfQpDcm9zc1RhYmxlKGRhdGEkaW5kZXhfaCwgIGRhdGEkZ3JvdXBfM3Jlc2lsLAogICAgICAgZmlzaGVyID0gVCwgY2hpc3EgPSBULCBleHBlY3RlZCA9IFQsCiAgICAgICBwcm9wLmMgPSBGLCBwcm9wLnQgPSBGLCBwcm9wLmNoaXNxID0gRiwgCiAgICAgIHNyZXNpZCA9IFQsIG1pc3NpbmcuaW5jbHVkZT1GLCByb3cubGFiZWxzID0gVCkKYGBgCgoqbG93ZXItZXhwb3NlZCBtb3JlIDAsIGZld2VyIDEgdGhhbiBleHBlY3RlZAoKIyMjIyBpbmRleCBpCgpgYGB7cn0KQ3Jvc3NUYWJsZShkYXRhJGluZGV4X2ksICBkYXRhJGdyb3VwXzNyZXNpbCwKICAgICAgIGZpc2hlciA9IFQsIGNoaXNxID0gVCwgZXhwZWN0ZWQgPSBULAogICAgICAgcHJvcC5jID0gRiwgcHJvcC50ID0gRiwgcHJvcC5jaGlzcSA9IEYsIAogICAgICBzcmVzaWQgPSBULCBtaXNzaW5nLmluY2x1ZGU9Riwgcm93LmxhYmVscyA9IFQpCmBgYAoKQ29tcGFyaXNvbnMgZG8gbm90IHN1cnZpdmUgQm9uZmVycm9uaSBjb3JyZWN0aW9uIGZvciAzKjEwIGNvbXBhcmlzb25zICguMDAxNjcpCgoKIyMjIyBpbmRleCBqCmBgYHtyfQpDcm9zc1RhYmxlKGRhdGEkaW5kZXhfaiwgIGRhdGEkZ3JvdXBfM3Jlc2lsLAogICAgICAgZmlzaGVyID0gVCwgY2hpc3EgPSBULCBleHBlY3RlZCA9IFQsCiAgICAgICBwcm9wLmMgPSBGLCBwcm9wLnQgPSBGLCBwcm9wLmNoaXNxID0gRiwgCiAgICAgIHNyZXNpZCA9IFQsIG1pc3NpbmcuaW5jbHVkZT1GLCByb3cubGFiZWxzID0gVCkKYGBgCgpDb21wYXJpc29ucyBkbyBub3Qgc3Vydml2ZSBCb25mZXJyb25pIGNvcnJlY3Rpb24gZm9yIDMqMTAgY29tcGFyaXNvbnMgKC4wMDE2NykKCgojIyAzIGV4cG9zdXJlcyA9IGxvd2VyLWV4cG9zZWQgZ3JvdXAKCmBgYHtyfQpnZ3Bsb3QoZGF0YSwgYWVzKHRvdF9leHBvc3VyZXNfcG9zdF9jbGVhbikpICsgCiAgICAgICBnZW9tX2hpc3RvZ3JhbShiaW5zPTIwLCBjb2xvdXI9J2JsYWNrJyxzaXplPS41KSArCiAgICB4bGFiKCJXVEMgZXhwb3N1cmVzIikgKyB0aGVtZV9idygpICsgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IHNlcSgwLCAxMCwgYnkgPSAxKSkgKyBmYWNldF93cmFwKH5ncm91cF8zbG93KQoKYGBgCgpgYGB7cn0KCiMjIG11dGF0ZSBiYWNrIHRvIGZhY3RvcnMgZm9yIGluZGV4KiB2YXJzCgpkYXRhX3RtcCA8LSBkYXRhICU+JSBtdXRhdGVfZWFjaChmdW5zKGZhY3RvciksIHN0YXJ0c193aXRoKCJpbmRleCIpKQoKaW5kZXhfYSA8LSBkYXRhX3RtcCAlPiUgY291bnQoZ3JvdXBfM2xvdyxpbmRleF9hLCBuYW1lPSJuIikgJT4lCiAgICBncm91cF9ieShncm91cF8zbG93KSAlPiUKICAgIG11dGF0ZShwY3Q9IHJvdW5kKG4gLyBzdW0obiksMikpICAlPiUKICAgIHVuZ3JvdXAoKQoKcF9hPC1nZ3Bsb3QoaW5kZXhfYSwgYWVzKGdyb3VwXzNsb3cscGN0LCBmaWxsPWluZGV4X2EpKSArCiAgIGdlb21fYmFyKHBvc2l0aW9uPSJzdGFjayIsIHN0YXQ9ImlkZW50aXR5IiwgY29sb3I9ImJsYWNrIikgKyBzY2FsZV9maWxsX2Rpc2NyZXRlKGxhYmVscyA9IGMoIk5vIiwgIlllcyIsICJNaXNzaW5nIikpICsKICB0aGVtZShheGlzLnRpdGxlLng9ZWxlbWVudF9ibGFuaygpKQoKCmluZGV4X2IgPC0gZGF0YV90bXAgJT4lIGNvdW50KGdyb3VwXzNsb3csaW5kZXhfYiwgbmFtZT0ibiIpICU+JQogICAgZ3JvdXBfYnkoZ3JvdXBfM2xvdykgJT4lCiAgICBtdXRhdGUocGN0PSByb3VuZChuIC8gc3VtKG4pLDIpKSAgJT4lCiAgICB1bmdyb3VwKCkKCnBfYjwtZ2dwbG90KGluZGV4X2IsIGFlcyhncm91cF8zbG93LHBjdCwgZmlsbD1pbmRleF9iKSkgKwogICBnZW9tX2Jhcihwb3NpdGlvbj0ic3RhY2siLCBzdGF0PSJpZGVudGl0eSIsIGNvbG9yPSJibGFjayIpICsgc2NhbGVfZmlsbF9kaXNjcmV0ZShsYWJlbHMgPSBjKCJObyIsICJZZXMiLCAiTWlzc2luZyIpKSArCiAgdGhlbWUoYXhpcy50aXRsZS54PWVsZW1lbnRfYmxhbmsoKSkKCgppbmRleF9jIDwtIGRhdGFfdG1wICU+JSBjb3VudChncm91cF8zbG93LGluZGV4X2MsIG5hbWU9Im4iKSAlPiUKICAgIGdyb3VwX2J5KGdyb3VwXzNsb3cpICU+JQogICAgbXV0YXRlKHBjdD0gcm91bmQobiAvIHN1bShuKSwyKSkgICU+JQogICAgdW5ncm91cCgpCgpwX2M8LWdncGxvdChpbmRleF9jLCBhZXMoZ3JvdXBfM2xvdyxwY3QsIGZpbGw9aW5kZXhfYykpICsKICAgZ2VvbV9iYXIocG9zaXRpb249InN0YWNrIiwgc3RhdD0iaWRlbnRpdHkiLCBjb2xvcj0iYmxhY2siKSArIHNjYWxlX2ZpbGxfZGlzY3JldGUobGFiZWxzID0gYygiTm8iLCAiWWVzIiwgIk1pc3NpbmciKSkgKwogIHRoZW1lKGF4aXMudGl0bGUueD1lbGVtZW50X2JsYW5rKCkpCgoKaW5kZXhfZCA8LSBkYXRhX3RtcCAlPiUgY291bnQoZ3JvdXBfM2xvdyxpbmRleF9kLCBuYW1lPSJuIikgJT4lCiAgICBncm91cF9ieShncm91cF8zbG93KSAlPiUKICAgIG11dGF0ZShwY3Q9IHJvdW5kKG4gLyBzdW0obiksMikpICAlPiUKICAgIHVuZ3JvdXAoKQoKcF9kPC1nZ3Bsb3QoaW5kZXhfZCwgYWVzKGdyb3VwXzNsb3cscGN0LCBmaWxsPWluZGV4X2QpKSArCiAgIGdlb21fYmFyKHBvc2l0aW9uPSJzdGFjayIsIHN0YXQ9ImlkZW50aXR5IiwgY29sb3I9ImJsYWNrIikgKyBzY2FsZV9maWxsX2Rpc2NyZXRlKGxhYmVscyA9IGMoIk5vIiwgIlllcyIsICJNaXNzaW5nIikpICsKICB0aGVtZShheGlzLnRpdGxlLng9ZWxlbWVudF9ibGFuaygpKQoKCmluZGV4X2UgPC0gZGF0YV90bXAgJT4lIGNvdW50KGdyb3VwXzNsb3csaW5kZXhfZSwgbmFtZT0ibiIpICU+JQogICAgZ3JvdXBfYnkoZ3JvdXBfM2xvdykgJT4lCiAgICBtdXRhdGUocGN0PSByb3VuZChuIC8gc3VtKG4pLDIpKSAgJT4lCiAgICB1bmdyb3VwKCkKCnBfZTwtZ2dwbG90KGluZGV4X2UsIGFlcyhncm91cF8zbG93LHBjdCwgZmlsbD1pbmRleF9lKSkgKwogICBnZW9tX2Jhcihwb3NpdGlvbj0ic3RhY2siLCBzdGF0PSJpZGVudGl0eSIsIGNvbG9yPSJibGFjayIpICsgc2NhbGVfZmlsbF9kaXNjcmV0ZShsYWJlbHMgPSBjKCJObyIsICJZZXMiLCAiTWlzc2luZyIpKSArCiAgdGhlbWUoYXhpcy50aXRsZS54PWVsZW1lbnRfYmxhbmsoKSkKCgppbmRleF9mIDwtIGRhdGFfdG1wICU+JSBjb3VudChncm91cF8zbG93LGluZGV4X2YsIG5hbWU9Im4iKSAlPiUKICAgIGdyb3VwX2J5KGdyb3VwXzNsb3cpICU+JQogICAgbXV0YXRlKHBjdD0gcm91bmQobiAvIHN1bShuKSwyKSkgICU+JQogICAgdW5ncm91cCgpCgpwX2Y8LWdncGxvdChpbmRleF9mLCBhZXMoZ3JvdXBfM2xvdyxwY3QsIGZpbGw9aW5kZXhfZikpICsKICAgZ2VvbV9iYXIocG9zaXRpb249InN0YWNrIiwgc3RhdD0iaWRlbnRpdHkiLCBjb2xvcj0iYmxhY2siKSArIHNjYWxlX2ZpbGxfZGlzY3JldGUobGFiZWxzID0gYygiTm8iLCAiWWVzIiwgIk1pc3NpbmciKSkgKwogIHRoZW1lKGF4aXMudGl0bGUueD1lbGVtZW50X2JsYW5rKCkpCgoKaW5kZXhfZyA8LSBkYXRhX3RtcCAlPiUgY291bnQoZ3JvdXBfM2xvdyxpbmRleF9nLCBuYW1lPSJuIikgJT4lCiAgICBncm91cF9ieShncm91cF8zbG93KSAlPiUKICAgIG11dGF0ZShwY3Q9IHJvdW5kKG4gLyBzdW0obiksMikpICAlPiUKICAgIHVuZ3JvdXAoKQoKcF9nPC1nZ3Bsb3QoaW5kZXhfZywgYWVzKGdyb3VwXzNsb3cscGN0LCBmaWxsPWluZGV4X2cpKSArCiAgIGdlb21fYmFyKHBvc2l0aW9uPSJzdGFjayIsIHN0YXQ9ImlkZW50aXR5IiwgY29sb3I9ImJsYWNrIikgKyBzY2FsZV9maWxsX2Rpc2NyZXRlKGxhYmVscyA9IGMoIk5vIiwgIlllcyIsICJNaXNzaW5nIikpICsKICB0aGVtZShheGlzLnRpdGxlLng9ZWxlbWVudF9ibGFuaygpKQoKCmluZGV4X2ggPC0gZGF0YV90bXAgJT4lIGNvdW50KGdyb3VwXzNsb3csaW5kZXhfaCwgbmFtZT0ibiIpICU+JQogICAgZ3JvdXBfYnkoZ3JvdXBfM2xvdykgJT4lCiAgICBtdXRhdGUocGN0PSByb3VuZChuIC8gc3VtKG4pLDIpKSAgJT4lCiAgICB1bmdyb3VwKCkKCnBfaDwtZ2dwbG90KGluZGV4X2gsIGFlcyhncm91cF8zbG93LHBjdCwgZmlsbD1pbmRleF9oKSkgKwogICBnZW9tX2Jhcihwb3NpdGlvbj0ic3RhY2siLCBzdGF0PSJpZGVudGl0eSIsIGNvbG9yPSJibGFjayIpICsgc2NhbGVfZmlsbF9kaXNjcmV0ZShsYWJlbHMgPSBjKCJObyIsICJZZXMiLCAiTWlzc2luZyIpKSArCiAgdGhlbWUoYXhpcy50aXRsZS54PWVsZW1lbnRfYmxhbmsoKSkKCgppbmRleF9pIDwtIGRhdGFfdG1wICU+JSBjb3VudChncm91cF8zbG93LGluZGV4X2ksIG5hbWU9Im4iKSAlPiUKICAgIGdyb3VwX2J5KGdyb3VwXzNsb3cpICU+JQogICAgbXV0YXRlKHBjdD0gcm91bmQobiAvIHN1bShuKSwyKSkgICU+JQogICAgdW5ncm91cCgpCgpwX2k8LWdncGxvdChpbmRleF9pLCBhZXMoZ3JvdXBfM2xvdyxwY3QsIGZpbGw9aW5kZXhfaSkpICsKICAgZ2VvbV9iYXIocG9zaXRpb249InN0YWNrIiwgc3RhdD0iaWRlbnRpdHkiLCBjb2xvcj0iYmxhY2siKSArIHNjYWxlX2ZpbGxfZGlzY3JldGUobGFiZWxzID0gYygiTm8iLCAiWWVzIiwgIk1pc3NpbmciKSkgKwogIHRoZW1lKGF4aXMudGl0bGUueD1lbGVtZW50X2JsYW5rKCkpCgppbmRleF9qIDwtIGRhdGFfdG1wICU+JSBjb3VudChncm91cF8zbG93LGluZGV4X2osIG5hbWU9Im4iKSAlPiUKICAgIGdyb3VwX2J5KGdyb3VwXzNsb3cpICU+JQogICAgbXV0YXRlKHBjdD0gcm91bmQobiAvIHN1bShuKSwyKSkgICU+JQogICAgdW5ncm91cCgpCgpwX2o8LWdncGxvdChpbmRleF9qLCBhZXMoZ3JvdXBfM2xvdyxwY3QsIGZpbGw9aW5kZXhfaikpICsKICAgZ2VvbV9iYXIocG9zaXRpb249InN0YWNrIiwgc3RhdD0iaWRlbnRpdHkiLCBjb2xvcj0iYmxhY2siKSArIHNjYWxlX2ZpbGxfZGlzY3JldGUobGFiZWxzID0gYygiTm8iLCAiWWVzIiwgIk1pc3NpbmciKSkgKwogIHRoZW1lKGF4aXMudGl0bGUueD1lbGVtZW50X2JsYW5rKCkpIAoKYGBgCgpgYGB7ciBmaWcuaGVpZ2h0PTR9CmxhYmVscyA8LSBjKCJhcnJpdmVkIiwiZHVzdCIsInBpbGUiLCJob3VycyIsInJlbWFpbnMiLCJzZWFyY2giLCJrbm93IGRpZWQiLCJrbm93IGluaiIsImluanVyZWQiLCJzbGVwdCIpCiBwbG90X2dyaWQocF9hLCBwX2IsIHBfYywgcF9kLCBwX2UsIHBfZiwgcF9nLCBwX2gsIHBfaSwgcF9qLCBsYWJlbHMgPSBsYWJlbHMsICNncmVlZHk9VFJVRSwgCiAgICAgICAgICAgc2NhbGU9MSwgbmNvbD0yLCBucm93PTUsaGp1c3Q9LS41LHZqdXN0PTEpCmBgYAoKIyMjIENvbXBhcmlzb25zCgojIyMjIGluZGV4IGEqCgpgYGB7ciwgZWNobz1UUlVFfQpsaWJyYXJ5KE1BU1MpICMgZm9yIGNoaXNxCmxpYnJhcnkoZGVzY3IpICMgZm9yIGNyb3NzdGFibGUKCkNyb3NzVGFibGUoZGF0YSRpbmRleF9hLCAgZGF0YSRncm91cF8zbG93LAogICAgICAgZmlzaGVyID0gVCwgY2hpc3EgPSBULCBleHBlY3RlZCA9IFQsCiAgICAgICBwcm9wLmMgPSBGLCBwcm9wLnQgPSBGLCBwcm9wLmNoaXNxID0gRiwgCiAgICAgIHNyZXNpZCA9IFQsIG1pc3NpbmcuaW5jbHVkZT1GLCByb3cubGFiZWxzID0gVCkKYGBgCgoqIGxvd2VyLWV4cG9zZWQgbW9yZSAwLCBmZXdlciAxIHRoYW4gZXhwZWN0ZWQKKiByZXNpbGllbnQgZmV3ZXIgMCB0aGFuIGV4cGVjdGVkCgojIyMjIGluZGV4IGIKCmBgYHtyfQpDcm9zc1RhYmxlKGRhdGEkaW5kZXhfYiwgIGRhdGEkZ3JvdXBfM2xvdywKICAgICAgIGZpc2hlciA9IFQsIGNoaXNxID0gVCwgZXhwZWN0ZWQgPSBULAogICAgICAgcHJvcC5jID0gRiwgcHJvcC50ID0gRiwgcHJvcC5jaGlzcSA9IEYsIAogICAgICBzcmVzaWQgPSBULCBtaXNzaW5nLmluY2x1ZGU9Riwgcm93LmxhYmVscyA9IFQpCmBgYAoKQ29tcGFyaXNvbnMgZG8gbm90IHN1cnZpdmUgQm9uZmVycm9uaSBjb3JyZWN0aW9uIGZvciAzKjEwIGNvbXBhcmlzb25zICguMDAxNjcpCgoKIyMjIyBpbmRleCBjKgoKYGBge3J9CkNyb3NzVGFibGUoZGF0YSRpbmRleF9jLCAgZGF0YSRncm91cF8zbG93LAogICAgICAgZmlzaGVyID0gVCwgY2hpc3EgPSBULCBleHBlY3RlZCA9IFQsCiAgICAgICBwcm9wLmMgPSBGLCBwcm9wLnQgPSBGLCBwcm9wLmNoaXNxID0gRiwgCiAgICAgIHNyZXNpZCA9IFQsIG1pc3NpbmcuaW5jbHVkZT1GLCByb3cubGFiZWxzID0gVCkKYGBgCgoqIGxvd2VyLWV4cG9zZWQgbW9yZSAwIHRoYW4gZXhwZWN0ZWQKKiByZXNpbGllbnQgZmV3ZXIgMCB0aGFuIGV4cGVjdGVkCgojIyMjIGluZGV4IGQKCmBgYHtyfQpDcm9zc1RhYmxlKGRhdGEkaW5kZXhfZCwgIGRhdGEkZ3JvdXBfM2xvdywKICAgICAgIGZpc2hlciA9IFQsIGNoaXNxID0gVCwgZXhwZWN0ZWQgPSBULAogICAgICAgcHJvcC5jID0gRiwgcHJvcC50ID0gRiwgcHJvcC5jaGlzcSA9IEYsIAogICAgICBzcmVzaWQgPSBULCBtaXNzaW5nLmluY2x1ZGU9Riwgcm93LmxhYmVscyA9IFQpCmBgYAoKQ29tcGFyaXNvbnMgZG8gbm90IHN1cnZpdmUgQm9uZmVycm9uaSBjb3JyZWN0aW9uIGZvciAzKjEwIGNvbXBhcmlzb25zICguMDAxNjcpCgoKIyMjIyBpbmRleCBlCgpgYGB7cn0KQ3Jvc3NUYWJsZShkYXRhJGluZGV4X2UsICBkYXRhJGdyb3VwXzNsb3csCiAgICAgICBmaXNoZXIgPSBULCBjaGlzcSA9IFQsIGV4cGVjdGVkID0gVCwKICAgICAgIHByb3AuYyA9IEYsIHByb3AudCA9IEYsIHByb3AuY2hpc3EgPSBGLCAKICAgICAgc3Jlc2lkID0gVCwgbWlzc2luZy5pbmNsdWRlPUYsIHJvdy5sYWJlbHMgPSBUKQpgYGAKCkNvbXBhcmlzb25zIGRvIG5vdCBzdXJ2aXZlIEJvbmZlcnJvbmkgY29ycmVjdGlvbiBmb3IgMyoxMCBjb21wYXJpc29ucyAoLjAwMTY3KQoKIyMjIyBpbmRleCBmCgpgYGB7cn0KQ3Jvc3NUYWJsZShkYXRhJGluZGV4X2YsICBkYXRhJGdyb3VwXzNsb3csCiAgICAgICBmaXNoZXIgPSBULCBjaGlzcSA9IFQsIGV4cGVjdGVkID0gVCwKICAgICAgIHByb3AuYyA9IEYsIHByb3AudCA9IEYsIHByb3AuY2hpc3EgPSBGLCAKICAgICAgc3Jlc2lkID0gVCwgbWlzc2luZy5pbmNsdWRlPUYsIHJvdy5sYWJlbHMgPSBUKQpgYGAKCkNvbXBhcmlzb25zIGRvIG5vdCBzdXJ2aXZlIEJvbmZlcnJvbmkgY29ycmVjdGlvbiBmb3IgMyoxMCBjb21wYXJpc29ucyAoLjAwMTY3KQoKCiMjIyMgaW5kZXggZwoKYGBge3J9CkNyb3NzVGFibGUoZGF0YSRpbmRleF9nLCAgZGF0YSRncm91cF8zbG93LAogICAgICAgZmlzaGVyID0gVCwgY2hpc3EgPSBULCBleHBlY3RlZCA9IFQsCiAgICAgICBwcm9wLmMgPSBGLCBwcm9wLnQgPSBGLCBwcm9wLmNoaXNxID0gRiwgCiAgICAgIHNyZXNpZCA9IFQsIG1pc3NpbmcuaW5jbHVkZT1GLCByb3cubGFiZWxzID0gVCkKYGBgCkNvbXBhcmlzb25zIGRvIG5vdCBzdXJ2aXZlIEJvbmZlcnJvbmkgY29ycmVjdGlvbiBmb3IgMyoxMCBjb21wYXJpc29ucyAoLjAwMTY3KQoKCiMjIyMgaW5kZXggaCoKCmBgYHtyfQpDcm9zc1RhYmxlKGRhdGEkaW5kZXhfaCwgIGRhdGEkZ3JvdXBfM2xvdywKICAgICAgIGZpc2hlciA9IFQsIGNoaXNxID0gVCwgZXhwZWN0ZWQgPSBULAogICAgICAgcHJvcC5jID0gRiwgcHJvcC50ID0gRiwgcHJvcC5jaGlzcSA9IEYsIAogICAgICBzcmVzaWQgPSBULCBtaXNzaW5nLmluY2x1ZGU9Riwgcm93LmxhYmVscyA9IFQpCmBgYAoKKiBsb3dlci1leHBvc2VkIG1vcmUgMCwgZmV3ZXIgMSB0aGFuIGV4cGVjdGVkCgoKIyMjIyBpbmRleCBpCgpgYGB7cn0KQ3Jvc3NUYWJsZShkYXRhJGluZGV4X2ksICBkYXRhJGdyb3VwXzNsb3csCiAgICAgICBmaXNoZXIgPSBULCBjaGlzcSA9IFQsIGV4cGVjdGVkID0gVCwKICAgICAgIHByb3AuYyA9IEYsIHByb3AudCA9IEYsIHByb3AuY2hpc3EgPSBGLCAKICAgICAgc3Jlc2lkID0gVCwgbWlzc2luZy5pbmNsdWRlPUYsIHJvdy5sYWJlbHMgPSBUKQpgYGAKQ29tcGFyaXNvbnMgZG8gbm90IHN1cnZpdmUgQm9uZmVycm9uaSBjb3JyZWN0aW9uIGZvciAzKjEwIGNvbXBhcmlzb25zICguMDAxNjcpCgojIyMjIGluZGV4IGoKCmBgYHtyfQpDcm9zc1RhYmxlKGRhdGEkaW5kZXhfaiwgIGRhdGEkZ3JvdXBfM2xvdywKICAgICAgIGZpc2hlciA9IFQsIGNoaXNxID0gVCwgZXhwZWN0ZWQgPSBULAogICAgICAgcHJvcC5jID0gRiwgcHJvcC50ID0gRiwgcHJvcC5jaGlzcSA9IEYsIAogICAgICBzcmVzaWQgPSBULCBtaXNzaW5nLmluY2x1ZGU9Riwgcm93LmxhYmVscyA9IFQpCmBgYAoKQ29tcGFyaXNvbnMgZG8gbm90IHN1cnZpdmUgQm9uZmVycm9uaSBjb3JyZWN0aW9uIGZvciAzKjEwIGNvbXBhcmlzb25zICguMDAxNjcpCgo=