Intro

This website is a replication package for the paper “Twitter and divides in the Dutch Parliament: Social and Political Segregation in the following, @-mentions and retweets networks” by Tolsma and Spierings ((submitted)).

It contains R code to replicate all Tables/Figures/Appendix in the manuscript.

To copy the code click the button in the upper right corner of the code-chunks.

Use the top menu to navigate to the section of interest.

The source code of this website can be found on Github

Questions can be addressed to Jochem Tolsma.


Packages

# install if necessary
if (!require("tidyverse", character.only = TRUE)) {
    install.packages("tidyverse", dependencies = TRUE)
}
if (!require("dplyr", character.only = TRUE)) {
    install.packages("dplyr", dependencies = TRUE)
}
if (!require("foreign", character.only = TRUE)) {
    install.packages("foreign", dependencies = TRUE)
}
if (!require("igraph", character.only = TRUE)) {
    install.packages("igraph", dependencies = TRUE)
}
if (!require("knitr", character.only = TRUE)) {
    install.packages("knitr", dependencies = TRUE)
}
if (!require("kableExtra", character.only = TRUE)) {
    install.packages("kableExtra", dependencies = TRUE)
}
if (!require("RSiena", character.only = TRUE)) {
    install.packages("RSiena", dependencies = TRUE)
}
if (!require("haven", character.only = TRUE)) {
    install.packages("haven", dependencies = TRUE)
}

# load packages.
library(tidyverse)
library(dplyr)
library(foreign)
library(igraph)
library(knitr)
library(kableExtra)
library(RSiena)
library(haven)

Custom functions: tweaking output

fanscsv <- function(ans = ans) {
    ans1_mat <- matrix(NA, nrow = length(ans$effects[, 2]), ncol = 3)
    row.names(ans1_mat) <- ans$effects[, 2]
    ans1_mat[, 1] <- (ans$theta)
    ans1_mat[, 2] <- (ans$se)
    ans1_mat[, 3] <- (ans$tconv)
    ans1_mat <- rbind(ans1_mat, c(ans$tconv.max))
    row.names(ans1_mat)[length(row.names(ans1_mat))] <- "Overall maximum convergence ratio:"
    colnames(ans1_mat) <- c("Estimate", "Standard Error", "Convergence t-ratio")
    return(ans1_mat)
    # print(ans1_mat) write.csv(ans1_mat, filename)
}

Load data objects

Data objects:

  • key: information on all politicians on election list
  • twitter
    • keyf: information on all 147 MPs with twitter handle
    • mydata: RSiena object with all kind of goodies inside
    • seats: seating coordinates of HoP (used for plotting)
# STAP 1: read in data
key <- read.spss("data-processed\\key moederbestand 20171114.sav", use.value.labels = T, to.data.frame = T)


load("data-processed\\twitter_20190919.RData")
# str(twitter_20190919,1)
keyf <- twitter_20190919[[1]]
mydata <- twitter_20190919[[2]]
seats <- twitter_20190919[[3]]


# construct two separate datasets for each period. NOT USED IN MANUSCRIPT
deps <- mydata$depvars
covariates <- mydata$cCovars
codyadcovar <- mydata$dycCovars

fnet <- sienaNet(deps$fnet[, , 1:2])
atmnet <- sienaNet(deps$atmnet[, , 1:2])
rtnet <- sienaNet(deps$rtnet[, , 1:2])
afstand <- codyadcovar$afstand
egohandle <- covariates$egohandle
egoid <- covariates$egoid
partij <- covariates$partij
coalitie <- covariates$coalitie
cda <- covariates$cda
cu <- covariates$cu
denk <- covariates$denk
d66 <- covariates$d66
fvd <- covariates$fvd
gl <- covariates$gl
pvda <- covariates$pvda
pvdd <- covariates$pvdd
pvv <- covariates$pvv
sgp <- covariates$sgp
sp <- covariates$sp
vvd <- covariates$vvd
plus <- covariates$plus
ethminz <- covariates$ethminz
vrouw <- covariates$vrouw
lft <- covariates$lft
kamerlid2016 <- covariates$kamerlid2016
kabinet2016 <- covariates$kabinet2016
pleklijst <- covariates$pleklijst
pleklijst1 <- covariates$pleklijst1

mydata12 <- sienaDataCreate(fnet, atmnet, rtnet, afstand, egohandle, egoid, partij, coalitie, cda, cu,
    denk, d66, fvd, gl, pvda, pvdd, pvv, sgp, sp, vvd, plus, ethminz, vrouw, lft, kamerlid2016, kabinet2016,
    pleklijst, pleklijst1)

fnet <- sienaNet(deps$fnet[, , 2:3])
atmnet <- sienaNet(deps$atmnet[, , 2:3])
rtnet <- sienaNet(deps$rtnet[, , 2:3])

mydata23 <- sienaDataCreate(fnet, atmnet, rtnet, afstand, egohandle, egoid, partij, coalitie, cda, cu,
    denk, d66, fvd, gl, pvda, pvdd, pvv, sgp, sp, vvd, plus, ethminz, vrouw, lft, kamerlid2016, kabinet2016,
    pleklijst, pleklijst1)

Estimate RSiena models

Model 0

Basic structural effects only.

Included effects:

  • three dependent network variables
  • degree (once without and once with time heterogeneity)
  • reciprocity
  • indegree-popularity (sqrt)
  • outdegree-activity (sqrt)
  • outdegree-popularity (sqrt)
  • transitive triplets or GWESPP
  • shared popularity
# print01Report( mydata, modelname='Twitter') let us have a look at all possible effects
# effectsDocumentation()

# Define the model We will compare a model with *transTrip* versus *gwespFF* first.


myeff <- getEffects(mydata)
myeff_m1 <- myeff

# according to suggestion of rsiena manual
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "rtnet")

# myeff_m1 <- includeEffects( myeff_m1, cycle3, name='fnet' ) myeff_m1 <- includeEffects( myeff_m1,
# cycle3, name='atmnet' ) myeff_m1 <- includeEffects( myeff_m1, cycle3, name='rtnet' )


# estimates
myalgorithm <- sienaAlgorithmCreate(projname = "M1")
ansM1 <- siena07(myalgorithm, data = mydata, effects = myeff_m1, useCluster = TRUE, nbrNodes = 4, initC = TRUE,
    batch = TRUE)
ansM1

ansM1b <- siena07(myalgorithm, data = mydata, prevAns = ansM1, effects = myeff_m1, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)

# ansM1b ##good fit.

# save(ansM1b, file=paste('ansM1b','.RData',sep=''))
#> Estimates, standard errors and convergence t-ratios
#> 
#>                                                  Estimate   Standard   Convergence 
#>                                                               Error      t-ratio   
#>    1. rate constant fnet rate (period 1)          4.1091  ( 0.2055   )    0.0312   
#>    2. rate constant fnet rate (period 2)          2.0522  ( 0.1278   )    0.0580   
#>    3. eval fnet: outdegree (density)             -8.1540  ( 1.5015   )    0.0585   
#>    4. eval fnet: reciprocity                      1.2108  ( 0.1383   )    0.0075   
#>    5. eval fnet: transitive triplets              0.0394  ( 0.0064   )    0.0532   
#>    6. eval fnet: indegree - popularity (sqrt)     0.1312  ( 0.0309   )    0.0477   
#>    7. eval fnet: outdegree - popularity (sqrt)   -0.3065  ( 0.0490   )    0.0513   
#>    8. eval fnet: outdegree - activity (sqrt)      0.8170  ( 0.1735   )    0.0711   
#>    9. rate constant atmnet rate (period 1)       41.9518  ( 5.1850   )   -0.0297   
#>   10. rate constant atmnet rate (period 2)       12.1451  ( 0.7656   )   -0.0145   
#>   11. eval atmnet: outdegree (density)           -3.6795  ( 0.1101   )   -0.0379   
#>   12. eval atmnet: reciprocity                    1.7383  ( 0.1145   )   -0.0653   
#>   13. eval atmnet: transitive triplets            0.0791  ( 0.0196   )   -0.0223   
#>   14. eval atmnet: indegree - popularity (sqrt)   0.3999  ( 0.0291   )   -0.0347   
#>   15. eval atmnet: outdegree - popularity (sqrt) -0.2106  ( 0.0436   )   -0.0442   
#>   16. eval atmnet: outdegree - activity (sqrt)    0.2039  ( 0.0179   )   -0.0392   
#>   17. rate constant rtnet rate (period 1)        13.3184  ( 0.8971   )   -0.0399   
#>   18. rate constant rtnet rate (period 2)        11.6651  ( 0.8588   )    0.0160   
#>   19. eval rtnet: outdegree (density)            -2.4485  ( 0.1161   )   -0.0113   
#>   20. eval rtnet: reciprocity                     1.3148  ( 0.0912   )    0.0340   
#>   21. eval rtnet: transitive triplets             0.1738  ( 0.0091   )    0.0206   
#>   22. eval rtnet: indegree - popularity (sqrt)    0.3235  ( 0.0359   )   -0.0110   
#>   23. eval rtnet: outdegree - popularity (sqrt)  -0.4149  ( 0.0504   )   -0.0080   
#>   24. eval rtnet: outdegree - activity (sqrt)     0.0332  ( 0.0248   )   -0.0155   
#> 
#> Overall maximum convergence ratio:    0.2158 
#> 
#> 
#> Total of 1978 iteration steps.

Time heterogeneity in outdegree.

#> Estimates, standard errors and convergence t-ratios
#> 
#>                                                  Estimate   Standard   Convergence 
#>                                                               Error      t-ratio   
#>    1. rate constant fnet rate (period 1)          4.1017  ( 0.1980   )    0.0133   
#>    2. rate constant fnet rate (period 2)          2.0527  ( 0.1354   )   -0.0306   
#>    3. eval fnet: outdegree (density)             -9.6451  ( 1.4425   )    0.0074   
#>    4. eval fnet: reciprocity                      1.0762  ( 0.1268   )    0.0425   
#>    5. eval fnet: transitive triplets              0.0638  ( 0.0078   )    0.0146   
#>    6. eval fnet: shared popularity               -0.0016  ( 0.0003   )    0.0035   
#>    7. eval fnet: indegree - popularity (sqrt)     0.3544  ( 0.0563   )   -0.0015   
#>    8. eval fnet: outdegree - popularity (sqrt)   -0.3698  ( 0.0470   )   -0.0006   
#>    9. eval fnet: outdegree - activity (sqrt)      0.9379  ( 0.1644   )    0.0025   
#>   10. rate constant atmnet rate (period 1)       31.2759  ( 2.3023   )   -0.0080   
#>   11. rate constant atmnet rate (period 2)       12.4751  ( 0.7705   )    0.0272   
#>   12. eval atmnet: outdegree (density)           -3.6554  ( 0.1468   )    0.0005   
#>   13. eval atmnet: reciprocity                    1.7354  ( 0.1057   )   -0.0233   
#>   14. eval atmnet: transitive triplets            0.2198  ( 0.0312   )   -0.0236   
#>   15. eval atmnet: shared popularity             -0.0281  ( 0.0066   )   -0.0353   
#>   16. eval atmnet: indegree - popularity (sqrt)   0.4095  ( 0.0506   )   -0.0094   
#>   17. eval atmnet: outdegree - popularity (sqrt) -0.2971  ( 0.0449   )    0.0056   
#>   18. eval atmnet: outdegree - activity (sqrt)    0.1925  ( 0.0250   )    0.0012   
#>   19. eval Dummy2:atmnet ego                     -0.5914  ( 0.0727   )    0.0020   
#>   20. rate constant rtnet rate (period 1)        14.0408  ( 0.9530   )   -0.0255   
#>   21. rate constant rtnet rate (period 2)        11.6744  ( 0.7918   )    0.0385   
#>   22. eval rtnet: outdegree (density)            -2.7118  ( 0.1295   )   -0.0123   
#>   23. eval rtnet: reciprocity                     0.9463  ( 0.1064   )   -0.0759   
#>   24. eval rtnet: transitive triplets             0.3883  ( 0.0274   )   -0.0722   
#>   25. eval rtnet: shared popularity              -0.0435  ( 0.0056   )   -0.0555   
#>   26. eval rtnet: indegree - popularity (sqrt)    0.4149  ( 0.0406   )   -0.0161   
#>   27. eval rtnet: outdegree - popularity (sqrt)  -0.4176  ( 0.0464   )   -0.0376   
#>   28. eval rtnet: outdegree - activity (sqrt)     0.0358  ( 0.0237   )   -0.0166   
#>   29. eval Dummy2:rtnet ego                       0.2366  ( 0.0492   )   -0.0138   
#> 
#> Overall maximum convergence ratio:    0.2537 
#> 
#> 
#> Total of 1922 iteration steps.

Interpretation:

Please be aware that we are looking at period interactions:

  • atmention degrees decreased faster in period 2 than in period 1, hence negative interaction
  • retweet degrees decreased faster in period 1 than in period 2, hence positive interaction

gwespFF versus transTrip

myeff <- getEffects(mydata)
myeff_m1b <- myeff

# according to suggestion of rsiena manual
myeff_m1b <- includeEffects(myeff_m1b, inPopSqrt, name = "fnet")
myeff_m1b <- includeEffects(myeff_m1b, inPopSqrt, name = "atmnet")
myeff_m1b <- includeEffects(myeff_m1b, inPopSqrt, name = "rtnet")

myeff_m1b <- includeEffects(myeff_m1b, outActSqrt, name = "fnet")
myeff_m1b <- includeEffects(myeff_m1b, outActSqrt, name = "atmnet")
myeff_m1b <- includeEffects(myeff_m1b, outActSqrt, name = "rtnet")

myeff_m1b <- includeEffects(myeff_m1b, outPopSqrt, name = "fnet")
myeff_m1b <- includeEffects(myeff_m1b, outPopSqrt, name = "atmnet")
myeff_m1b <- includeEffects(myeff_m1b, outPopSqrt, name = "rtnet")

myeff_m1b <- includeEffects(myeff_m1b, gwespFF, name = "fnet")
myeff_m1b <- includeEffects(myeff_m1b, gwespFF, name = "atmnet")
myeff_m1b <- includeEffects(myeff_m1b, gwespFF, name = "rtnet")

myeff_m3 <- myeff_m1b

myalgorithm <- sienaAlgorithmCreate(projname = "M1")
ansM3 <- siena07(myalgorithm, data = mydata, effects = myeff_m3, useCluster = TRUE, nbrNodes = 8, initC = TRUE,
    batch = TRUE)
# ansM3 save(ansM3, file=paste('ansM3','.RData',sep=''))

ansM3b <- siena07(myalgorithm, data = mydata, prevAns = ansM3, effects = myeff_m1, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
# ansM3b save(ansM3b, file=paste('ansM3b','.RData',sep=''))
GWESP
Estimate Standard Error
Following
rate 1 4.121 0.205
rate 2 2.055 0.133
outdegree -10.872 1.727
reciprocity 1.354 0.120
GWESP 1.257 0.311
indegree - popularity (sqrt) 0.172 0.037
outdegree - popularity (sqrt) -0.191 0.032
outdegree - activity (sqrt) 0.851 0.197
Atmention
rate 1 42.900 5.246
rate 2 12.718 0.836
outdegree -3.408 0.121
reciprocity 1.700 0.119
GWESP 0.669 0.076
indegree - popularity (sqrt) 0.261 0.047
outdegree - popularity (sqrt) -0.176 0.044
outdegree - activity (sqrt) 0.147 0.020
Retweets
rate 1 16.310 1.204
rate 2 14.429 1.136
outdegree -1.964 0.165
reciprocity 1.012 0.093
GWESP 1.601 0.078
indegree - popularity (sqrt) 0.010 0.052
outdegree - popularity (sqrt) -0.276 0.054
outdegree - activity (sqrt) -0.109 0.032
Note:
Overall maximum convergence ratio: 0.217

Don’t think it will matter much whether we include gwespFF or TranTrip.


Model 0 - final

Finally, we also included sharedPop to reach Model 0

myeff <- getEffects(mydata)
myeff_m1 <- myeff

# according to suggestion of rsiena manual
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "rtnet")


load("ansM1b.RData")

ansM4 <- siena07(myalgorithm, data = mydata, prevAns = ansM1b, effects = myeff_m1, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM4
save(ansM4, file = paste("ansM4", ".RData", sep = ""))

ansM4b <- siena07(myalgorithm, data = mydata, prevAns = ansM4, effects = myeff_m1, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM4b
save(ansM4b, file = paste("ansM4b", ".RData", sep = ""))
#> Estimates, standard errors and convergence t-ratios
#> 
#>                                                  Estimate   Standard   Convergence 
#>                                                               Error      t-ratio   
#>    1. rate constant fnet rate (period 1)          4.1040  (  0.2122  )    0.0381   
#>    2. rate constant fnet rate (period 2)          2.0530  (  0.1223  )   -0.0148   
#>    3. eval fnet: outdegree (density)             -9.6493  (  1.6129  )    0.0469   
#>    4. eval fnet: reciprocity                      1.0755  (  0.1192  )    0.0231   
#>    5. eval fnet: transitive triplets              0.0639  (  0.0094  )    0.0297   
#>    6. eval fnet: shared popularity               -0.0016  (  0.0004  )    0.0241   
#>    7. eval fnet: indegree - popularity (sqrt)     0.3540  (  0.0859  )    0.0281   
#>    8. eval fnet: outdegree - popularity (sqrt)   -0.3701  (  0.0703  )    0.0244   
#>    9. eval fnet: outdegree - activity (sqrt)      0.9391  (  0.1836  )    0.0456   
#>   10. rate constant atmnet rate (period 1)       45.4579  ( 13.3411  )   -0.0582   
#>   11. rate constant atmnet rate (period 2)       12.1949  (  0.9064  )    0.0384   
#>   12. eval atmnet: outdegree (density)           -3.8225  (  0.1326  )   -0.0550   
#>   13. eval atmnet: reciprocity                    1.6955  (  0.2088  )   -0.0610   
#>   14. eval atmnet: transitive triplets            0.1733  (  0.0401  )   -0.0531   
#>   15. eval atmnet: shared popularity             -0.0209  (  0.0095  )   -0.0538   
#>   16. eval atmnet: indegree - popularity (sqrt)   0.4664  (  0.0483  )   -0.0414   
#>   17. eval atmnet: outdegree - popularity (sqrt) -0.2387  (  0.0724  )   -0.0557   
#>   18. eval atmnet: outdegree - activity (sqrt)    0.2239  (  0.0202  )   -0.0492   
#>   19. rate constant rtnet rate (period 1)        13.7901  (  1.6667  )    0.0303   
#>   20. rate constant rtnet rate (period 2)        12.2400  (  0.8101  )    0.0146   
#>   21. eval rtnet: outdegree (density)            -2.6328  (  0.1808  )   -0.0074   
#>   22. eval rtnet: reciprocity                     0.9417  (  0.1414  )    0.0012   
#>   23. eval rtnet: transitive triplets             0.3819  (  0.0273  )   -0.0130   
#>   24. eval rtnet: shared popularity              -0.0423  (  0.0059  )   -0.0094   
#>   25. eval rtnet: indegree - popularity (sqrt)    0.4013  (  0.0605  )   -0.0021   
#>   26. eval rtnet: outdegree - popularity (sqrt)  -0.4204  (  0.0484  )   -0.0057   
#>   27. eval rtnet: outdegree - activity (sqrt)     0.0255  (  0.0256  )   -0.0018   
#> 
#> Overall maximum convergence ratio:    0.1643 
#> 
#> 
#> Total of 2034 iteration steps.

Model 1

Baseline model with controls to test Hypothesis 1.

Relevant party dummies

We cannot include all party dummies as covariates for ego and alter. We will thus first check which party deviates significantly with respect to indegree and outdegree.

First the descriptives.

# check if we observe outdegree differences per partij
fnet <- mydata$depvars$fnet
atmnet <- mydata$depvars$atmnet
rtnet <- mydata$depvars$rtnet
testfnet <- fnet[, , 1]
testfnet[testfnet == 10] <- NA
testrtnet <- rtnet[, , 1]
testrtnet[testrtnet == 10] <- NA
testatmnet <- atmnet[, , 1]
testatmnet[testatmnet == 10] <- NA

keyf$outdegreesf <- rowSums(testfnet, na.rm = TRUE)
keyf$indegreesf <- colSums(testfnet, na.rm = TRUE)

keyf$outdegreesrt <- rowSums(testrtnet, na.rm = TRUE)
keyf$indegreesrt <- colSums(testrtnet, na.rm = TRUE)

keyf$outdegreesatm <- rowSums(testatmnet, na.rm = TRUE)
keyf$indegreesatm <- colSums(testatmnet, na.rm = TRUE)


degreesum <- keyf %>%
    group_by(Partij) %>%
    summarize(mean_of = mean(outdegreesf, na.rm = T), mean_if = mean(indegreesf, na.rm = T), mean_irt = mean(outdegreesrt,
        na.rm = T), mean_ort = mean(indegreesrt, na.rm = T), mean_iat = mean(outdegreesatm, na.rm = T),
        mean_oat = mean(indegreesatm, na.rm = T), count = n()) %>%
    arrange(desc(count)) %>%
    select(!("count"))


colnames(degreesum) <- c("Party", "outdegree friends", "indegree friends", "outdegree retweets", "indegree retweets",
    "outdegree atmentions", "indegree atmentions")


# write_csv(degreesum, 'degreesum.csv')
mean degree by party
Party outdegree.friends indegree.friends outdegree.retweets indegree.retweets outdegree.atmentions indegree.atmentions
VVD 42.88 42.19 5.91 5.94 6.19 5.84
CDA 39.47 38.47 6.58 6.63 6.37 8.16
D66 42.68 38.53 10.47 10.79 11.32 10.05
PVV 19.06 23.28 8.61 8.22 2.78 2.72
GroenLinks 37.71 37.64 8.07 7.43 10.64 10.07
SP 29.86 34.86 6.93 7.57 10.29 8.93
PvdA 33.22 44.89 3.56 5.00 7.22 9.78
CU 33.40 43.80 4.60 5.00 6.80 7.60
PvdDieren 53.20 28.80 5.80 4.60 8.80 5.80
50Plus 16.00 19.00 1.25 2.00 3.25 5.25
DENK 28.00 21.67 3.33 2.67 3.67 3.00
SGP 93.33 59.33 5.33 2.67 4.67 9.33
FvD 3.50 28.00 3.00 1.50 3.50 2.00

Let us use a simple OLS regression with deviation coding (grand mean is ref) to test for significance.

keyf$Partij2 <- as.factor(as.character(keyf$Partij))
levels(keyf$Partij2)
contrasts(keyf$Partij2) <- contr.sum(13)  #let us use VVD as omitted party

summary(lm(outdegreesf ~ Partij2, keyf))
print("which parties deviate significantly outdegreesf")
levels(keyf$Partij2)[c(1, 6, 9, 10, 11)]

summary(lm(indegreesf ~ Partij2, keyf))
print("which parties deviate significantly indegreesf")
levels(keyf$Partij2)[c(10, 11)]

summary(lm(outdegreesatm ~ Partij2, keyf))
print("which parties deviate significantly outdegreesatm")
levels(keyf$Partij2)[c(4, 7, 10, 12)]

summary(lm(indegreesatm ~ Partij2, keyf))
print("which parties deviate significantly indegreesatm")
levels(keyf$Partij2)[c(4, 7, 10)]

summary(lm(outdegreesrt ~ Partij2, keyf))
print("which parties deviate significantly outdegreesrt")
levels(keyf$Partij2)[c(1, 4, 7, 10)]

summary(lm(indegreesrt ~ Partij2, keyf))
print("which parties deviate significantly indegreesrt")
levels(keyf$Partij2)[c(4, 10)]
#>  [1] "50Plus"     "CDA"        "CU"         "D66"        "DENK"       "FvD"        "GroenLinks"
#>  [8] "PvdA"       "PvdDieren"  "PVV"        "SGP"        "SP"         "VVD"       
#> 
#> Call:
#> lm(formula = outdegreesf ~ Partij2, data = keyf)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -44.333 -13.594  -1.056   8.772  97.526 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)   36.332      2.738  13.267  < 2e-16 ***
#> Partij21     -20.332     11.224  -1.811  0.07231 .  
#> Partij22       3.142      5.696   0.552  0.58215    
#> Partij23      -2.932     10.114  -0.290  0.77234    
#> Partij24       6.352      5.696   1.115  0.26674    
#> Partij25      -8.332     12.864  -0.648  0.51828    
#> Partij26     -32.832     15.635  -2.100  0.03762 *  
#> Partij27       1.382      6.430   0.215  0.83012    
#> Partij28      -3.110      7.756  -0.401  0.68910    
#> Partij29      16.868     10.114   1.668  0.09768 .  
#> Partij210    -17.276      5.816  -2.970  0.00353 ** 
#> Partij211     57.001     12.864   4.431 1.93e-05 ***
#> Partij212     -6.475      6.430  -1.007  0.31580    
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 23.67 on 134 degrees of freedom
#> Multiple R-squared:  0.2393, Adjusted R-squared:  0.1712 
#> F-statistic: 3.513 on 12 and 134 DF,  p-value: 0.0001547
#> 
#> [1] "which parties deviate significantly outdegreesf"
#> [1] "50Plus"    "FvD"       "PvdDieren" "PVV"       "SGP"      
#> 
#> Call:
#> lm(formula = indegreesf ~ Partij2, data = keyf)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -44.889 -15.165  -1.187  12.308  59.474 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)  35.4196     2.4583  14.408   <2e-16 ***
#> Partij21    -16.4196    10.0757  -1.630   0.1055    
#> Partij22      3.0541     5.1131   0.597   0.5513    
#> Partij23      8.3804     9.0788   0.923   0.3576    
#> Partij24      3.1068     5.1131   0.608   0.5445    
#> Partij25    -13.7529    11.5476  -1.191   0.2358    
#> Partij26     -7.4196    14.0356  -0.529   0.5979    
#> Partij27      2.2233     5.7725   0.385   0.7007    
#> Partij28      9.4693     6.9626   1.360   0.1761    
#> Partij29     -6.6196     9.0788  -0.729   0.4672    
#> Partij210   -12.1418     5.2211  -2.326   0.0215 *  
#> Partij211    23.9138    11.5476   2.071   0.0403 *  
#> Partij212    -0.5624     5.7725  -0.097   0.9225    
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 21.24 on 134 degrees of freedom
#> Multiple R-squared:  0.1317, Adjusted R-squared:  0.05398 
#> F-statistic: 1.694 on 12 and 134 DF,  p-value: 0.07461
#> 
#> [1] "which parties deviate significantly indegreesf"
#> [1] "PVV" "SGP"
#> 
#> Call:
#> lm(formula = outdegreesatm ~ Partij2, data = keyf)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -11.316  -4.301  -1.250   2.658  33.714 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)   6.5757     0.8470   7.763  1.9e-12 ***
#> Partij21     -3.3257     3.4717  -0.958  0.33982    
#> Partij22     -0.2072     1.7618  -0.118  0.90653    
#> Partij23      0.2243     3.1282   0.072  0.94294    
#> Partij24      4.7401     1.7618   2.691  0.00804 ** 
#> Partij25     -2.9090     3.9788  -0.731  0.46598    
#> Partij26     -3.0757     4.8361  -0.636  0.52587    
#> Partij27      4.0672     1.9890   2.045  0.04283 *  
#> Partij28      0.6466     2.3990   0.270  0.78795    
#> Partij29      2.2243     3.1282   0.711  0.47828    
#> Partij210    -3.7979     1.7990  -2.111  0.03662 *  
#> Partij211    -1.9090     3.9788  -0.480  0.63216    
#> Partij212     3.7101     1.9890   1.865  0.06433 .  
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 7.32 on 134 degrees of freedom
#> Multiple R-squared:  0.141,  Adjusted R-squared:  0.0641 
#> F-statistic: 1.833 on 12 and 134 DF,  p-value: 0.04873
#> 
#> [1] "which parties deviate significantly outdegreesatm"
#> [1] "D66"        "GroenLinks" "PVV"        "SP"        
#> 
#> Call:
#> lm(formula = indegreesatm ~ Partij2, data = keyf)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -10.053  -3.204  -1.844   2.156  29.929 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)   6.8106     0.7692   8.854 4.44e-15 ***
#> Partij21     -1.5606     3.1529  -0.495   0.6214    
#> Partij22      1.3473     1.6000   0.842   0.4012    
#> Partij23      0.7894     2.8409   0.278   0.7815    
#> Partij24      3.2420     1.6000   2.026   0.0447 *  
#> Partij25     -3.8106     3.6134  -1.055   0.2935    
#> Partij26     -4.8106     4.3920  -1.095   0.2753    
#> Partij27      3.2608     1.8063   1.805   0.0733 .  
#> Partij28      2.9672     2.1787   1.362   0.1755    
#> Partij29     -1.0106     2.8409  -0.356   0.7226    
#> Partij210    -4.0884     1.6338  -2.502   0.0135 *  
#> Partij211     2.5227     3.6134   0.698   0.4863    
#> Partij212     2.1180     1.8063   1.173   0.2431    
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 6.648 on 134 degrees of freedom
#> Multiple R-squared:  0.1389, Adjusted R-squared:  0.06176 
#> F-statistic: 1.801 on 12 and 134 DF,  p-value: 0.0539
#> 
#> [1] "which parties deviate significantly indegreesatm"
#> [1] "D66"        "GroenLinks" "PVV"       
#> 
#> Call:
#> lm(formula = outdegreesrt ~ Partij2, data = keyf)
#> 
#> Residuals:
#>      Min       1Q   Median       3Q      Max 
#> -10.4737  -2.7426   0.0714   2.5965  17.0938 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)   5.6494     0.5402  10.458  < 2e-16 ***
#> Partij21     -4.3994     2.2141  -1.987   0.0490 *  
#> Partij22      0.9295     1.1236   0.827   0.4095    
#> Partij23     -1.0494     1.9950  -0.526   0.5998    
#> Partij24      4.8243     1.1236   4.294 3.35e-05 ***
#> Partij25     -2.3161     2.5375  -0.913   0.3630    
#> Partij26     -2.6494     3.0843  -0.859   0.3919    
#> Partij27      2.4220     1.2685   1.909   0.0584 .  
#> Partij28     -2.0938     1.5300  -1.369   0.1734    
#> Partij29      0.1506     1.9950   0.075   0.9399    
#> Partij210     2.9617     1.1473   2.581   0.0109 *  
#> Partij211    -0.3161     2.5375  -0.125   0.9011    
#> Partij212     1.2792     1.2685   1.008   0.3151    
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 4.669 on 134 degrees of freedom
#> Multiple R-squared:  0.1896, Adjusted R-squared:  0.117 
#> F-statistic: 2.613 on 12 and 134 DF,  p-value: 0.003683
#> 
#> [1] "which parties deviate significantly outdegreesrt"
#> [1] "50Plus"     "D66"        "GroenLinks" "PVV"       
#> 
#> Call:
#> lm(formula = indegreesrt ~ Partij2, data = keyf)
#> 
#> Residuals:
#>     Min      1Q  Median      3Q     Max 
#> -10.790  -2.938  -0.500   3.031  19.062 
#> 
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)   5.3857     0.6011   8.959 2.44e-15 ***
#> Partij21     -3.3857     2.4638  -1.374    0.172    
#> Partij22      1.2459     1.2503   0.996    0.321    
#> Partij23     -0.3857     2.2201  -0.174    0.862    
#> Partij24      5.4038     1.2503   4.322 2.99e-05 ***
#> Partij25     -2.7190     2.8237  -0.963    0.337    
#> Partij26     -3.8857     3.4321  -1.132    0.260    
#> Partij27      2.0429     1.4116   1.447    0.150    
#> Partij28     -0.3857     1.7026  -0.227    0.821    
#> Partij29     -0.7857     2.2201  -0.354    0.724    
#> Partij210     2.8365     1.2767   2.222    0.028 *  
#> Partij211    -2.7190     2.8237  -0.963    0.337    
#> Partij212     2.1857     1.4116   1.548    0.124    
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 5.195 on 134 degrees of freedom
#> Multiple R-squared:  0.1617, Adjusted R-squared:  0.0866 
#> F-statistic: 2.153 on 12 and 134 DF,  p-value: 0.01743
#> 
#> [1] "which parties deviate significantly indegreesrt"
#> [1] "D66" "PVV"

Model 1 - final

myeff <- getEffects(mydata)
myeff_m1 <- myeff

# according to suggestion of rsiena manual
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "rtnet")

myeff_m2 <- myeff_m1

#'kamerlid2016' 'pleklijst'    'pleklijst1'

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", sameX, name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", sameX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", sameX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", egoX, name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", egoX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", egoX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "rtnet")

# these need to be dropped due to collinearity myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='fnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='rtnet' )

# afstand
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "rtnet")



# myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = 'partij', name='fnnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'd66', name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "fvd", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvdd", name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "sgp", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sp', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'vvd', name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "plus", name = "fnet")

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "pvv", name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "sgp", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'sp', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'vvd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'plus', name='fnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "atmnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "d66", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sgp', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "sp", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'vvd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'plus', name='atmnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "d66", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "pvv", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'vvd', name='atmnet' ) #referentie myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'plus', name='atmnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "d66", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'fvd', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "gl", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'vvd', name='rtnet' ) #referentie
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "plus", name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "d66", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'fvd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'gl', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'pvda', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'pvdd', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "pvv", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'plus', name='rtnet' )


load("ansM4b.RData")
myalgorithm <- sienaAlgorithmCreate(projname = "M2")
ansM5 <- siena07(myalgorithm, data = mydata, prevAns = ansM4b, effects = myeff_m2, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM5
save(ansM5, file = paste("ansM5", ".RData", sep = ""))

ansM5b <- siena07(myalgorithm, data = mydata, prevAns = ansM5, effects = myeff_m2, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM5b
save(ansM5b, file = paste("ansM5b", ".RData", sep = ""))

# Lets trim


myeff <- getEffects(mydata)
myeff_m1 <- myeff

# according to suggestion of rsiena manual
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "rtnet")

myeff_m2 <- myeff_m1

#'kamerlid2016' 'pleklijst'    'pleklijst1'

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', altX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", sameX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='atmnet' )
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='rtnet' )

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", egoX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='rtnet' )

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "rtnet")

# these need to be dropped due to collinearity myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='fnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='rtnet' )

# afstand
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, X, interaction1='afstand', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "rtnet")



myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "fnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvdd", name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "sgp", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sp', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'vvd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'plus', name='fnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "pvv", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'sgp', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'sp', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'vvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'plus', name='fnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "atmnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "d66", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'vvd', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus',
# name='atmnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "d66", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='atmnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='atmnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "d66", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'fvd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvda', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'pvdd', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'vvd', name='rtnet' ) #referentie
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "plus", name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl',
# name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='rtnet' )
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='rtnet' )



load("ansM4b.RData")  #start again from ansM4b
myalgorithm <- sienaAlgorithmCreate(projname = "M3")
ansM6 <- siena07(myalgorithm, data = mydata, prevAns = ansM4b, effects = myeff_m2, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM6
save(ansM6, file = paste("ansM6", ".RData", sep = ""))

ansM6b <- siena07(myalgorithm, data = mydata, prevAns = ansM6, effects = myeff_m2, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM6b
save(ansM6b, file = paste("ansM6b", ".RData", sep = ""))

myeff <- getEffects(mydata)
myeff_m1 <- myeff

# according to suggestion of rsiena manual
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "rtnet")

myeff_m2 <- myeff_m1

#'kamerlid2016' 'pleklijst'    'pleklijst1'

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', altX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", sameX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='atmnet' )
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='rtnet' )

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", egoX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "rtnet")

# these need to be dropped due to collinearity myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='fnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='rtnet' )

# afstand
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, X, interaction1='afstand', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "rtnet")



myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "fnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "fnet")
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "sgp", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sp', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'vvd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'plus', name='fnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "pvv", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'sgp', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'sp', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'vvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'plus', name='fnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "atmnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "d66", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'vvd', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus',
# name='atmnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "d66", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='atmnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='atmnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "d66", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'fvd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvda', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'pvdd', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'vvd', name='rtnet' ) #referentie
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "plus", name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl',
# name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='rtnet' )
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='rtnet' )



load("ansM4b.RData")  #start again from ansM4b
myalgorithm <- sienaAlgorithmCreate(projname = "M4")
ansM7 <- siena07(myalgorithm, data = mydata, prevAns = ansM4b, effects = myeff_m2, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM7  # Overall maximum convergence ratio:    0.2501 
save(ansM7, file = paste("ansM7", ".RData", sep = ""))

ansM7b <- siena07(myalgorithm, data = mydata, prevAns = ansM7, effects = myeff_m2, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM7b  # Overall maximum convergence ratio:    0.2422 
save(ansM7b, file = paste("ansM7b", ".RData", sep = ""))

load("ansM7b.RData")

ansM7c <- siena07(myalgorithm, data = mydata, prevAns = ansM7, effects = myeff_m2, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM7c
save(ansM7c, file = paste("ansM7c", ".RData", sep = ""))

# third trim

myeff <- getEffects(mydata)
myeff_m1 <- myeff

# according to suggestion of rsiena manual
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "rtnet")

myeff_m2 <- myeff_m1

#'kamerlid2016' 'pleklijst'    'pleklijst1'

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', altX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet' ) myeff_m2
# <- setEffect( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet', fix=TRUE, initialValue =
# -3, test=TRUE )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", sameX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='atmnet' )
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='rtnet' )

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", egoX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "rtnet")

# these need to be dropped due to collinearity myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='fnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='rtnet' )

# afstand
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, X, interaction1='afstand', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "rtnet")



myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "fnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus', name='fnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'plus', name='fnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "atmnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# egoX, interaction1 = 'd66', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'vvd', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus',
# name='atmnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "d66", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='atmnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='atmnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "d66", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'fvd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvda', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'pvdd', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'plus', name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl',
# name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='rtnet' )
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='rtnet' )


# Estimates

load("ansM8c.RData")  #start again from ansM4b
ansM4b
myalgorithm <- sienaAlgorithmCreate(projname = "M5")
ansM8 <- siena07(myalgorithm, data = mydata, prevAns = ansM4b, effects = myeff_m2, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM8
save(ansM8, file = paste("ansM8", ".RData", sep = ""))

ansM8b <- siena07(myalgorithm, data = mydata, prevAns = ansM8, effects = myeff_m2, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM8b
save(ansM8b, file = paste("ansM8b", ".RData", sep = ""))

ansM8c <- siena07(myalgorithm, data = mydata, prevAns = ansM8b, effects = myeff_m2, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM8c  #Overall maximum convergence ratio:    0.2471 

save(ansM8c, file = paste("ansM8c", ".RData", sep = ""))
Model 1
Estimate Standard Error
Following
rate 1 4.626 0.293
rate 2 2.035 0.130
outdegree -13.307 1.871
reciprocity 0.848 0.114
transitive triplets 0.037 0.007
shared popularity -0.001 0.000
indegree - popularity 0.351 0.062
outdegree - popularity -0.186 0.034
outdegree - activity 1.328 0.250
seating distance (dyad) -0.022 0.007
same party (dyad) 1.083 0.146
incumbancy status (alter) -0.507 0.087
same incumbancy status (dyad) 0.165 0.083
position on election list (ego) 0.542 0.154
Atmention
rate 1 66.540 48.362
rate 2 13.365 0.943
outdegree -4.215 0.140
reciprocity 1.402 0.090
transitive triplets 0.066 0.036
shared popularity -0.008 0.010
indegree - popularity 0.395 0.051
outdegree - popularity -0.096 0.039
outdegree - activity 0.256 0.025
same party (dyad) 0.918 0.054
party Liberal Democrats (alter) -0.104 0.071
party GreenLeft (alter) -0.171 0.084
party GreenLeft (ego) 0.135 0.070
position on election list (alter) -0.012 0.003
party leader (alter) 0.129 0.092
Retweets
party leader (ego) -0.300 0.096
rate 1 18.468 1.760
rate 2 17.263 1.437
outdegree -3.923 0.164
reciprocity 0.615 0.094
transitive triplets 0.157 0.025
shared popularity -0.014 0.005
indegree - popularity 0.393 0.045
outdegree - popularity -0.271 0.059
outdegree - activity 0.162 0.027
seating distance (dyad) -0.031 0.006
same party (dyad) 1.386 0.078
party Liberal Democrats (ego) -0.427 0.074
party Freedom Party (ego) -0.180 0.084
incumbancy status (alter) -0.082 0.046
incumbancy status (ego) -0.114 0.045
position on election list (alter) -0.012 0.004
party leader (alter) 0.122 0.079
Note:
Overall maximum convergence ratio: 0.247

Model 2

To what extent do we observe social inbreeding homophily and to what extent does this explain the impact of the same-party variable (Hypotheses 2a and 2b)

myeff <- getEffects(mydata)
myeff_m1 <- myeff

# according to suggestion of rsiena manual
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "rtnet")

myeff_m2 <- myeff_m1

#'kamerlid2016' 'pleklijst'    'pleklijst1'

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', altX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet' ) myeff_m2
# <- setEffect( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet', fix=TRUE, initialValue =
# -3, test=TRUE )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", sameX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='atmnet' )
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='rtnet' )

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", egoX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "rtnet")

# these need to be dropped due to collinearity myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='fnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='rtnet' )

# afstand
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, X, interaction1='afstand', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "rtnet")



myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "fnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus', name='fnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'plus', name='fnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "atmnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# egoX, interaction1 = 'd66', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'vvd', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus',
# name='atmnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "d66", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='atmnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='atmnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "d66", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'fvd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvda', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'pvdd', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'plus', name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl',
# name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='rtnet' )
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='rtnet' )

myeff_m3 <- myeff_m2

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "vrouw", name = "fnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "vrouw", name = "fnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "vrouw", name = "fnet")

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "vrouw", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "vrouw", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "vrouw", name = "rtnet")

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "vrouw", name = "atmnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "vrouw", name = "atmnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "vrouw", name = "atmnet")

myeff_m3 <- includeEffects(myeff_m3, absDiffX, interaction1 = "lft", name = "fnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "lft", name = "fnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "lft", name = "fnet")

myeff_m3 <- includeEffects(myeff_m3, absDiffX, interaction1 = "lft", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "lft", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "lft", name = "rtnet")

myeff_m3 <- includeEffects(myeff_m3, absDiffX, interaction1 = "lft", name = "atmnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "lft", name = "atmnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "lft", name = "atmnet")

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "ethminz", name = "fnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "ethminz", name = "fnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "ethminz", name = "fnet")

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "ethminz", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "ethminz", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "ethminz", name = "rtnet")

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "ethminz", name = "atmnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "ethminz", name = "atmnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "ethminz", name = "atmnet")



# Estimates

load("ansM8c.RData")

myalgorithm <- sienaAlgorithmCreate(projname = "M9")
ansM9 <- siena07(myalgorithm, data = mydata, prevAns = ansM8c, effects = myeff_m3, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM9
save(ansM9, file = paste("ansM9", ".RData", sep = ""))

ansM9b <- siena07(myalgorithm, data = mydata, prevAns = ansM9, effects = myeff_m3, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM9b
save(ansM9b, file = paste("ansM9b", ".RData", sep = ""))

ansM9c <- siena07(myalgorithm, data = mydata, prevAns = ansM9b, effects = myeff_m3, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM9c

save(ansM9c, file = paste("ansM9c", ".RData", sep = ""))

# Trim social inbreeding homophily

# Only ego alter. we leave dyad in.  Note, we now also exclude rtnet:kamerlid2016 alter Effects

myeff <- getEffects(mydata)
myeff_m1 <- myeff

# according to suggestion of rsiena manual
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "rtnet")

myeff_m2 <- myeff_m1

#'kamerlid2016' 'pleklijst'    'pleklijst1'

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', altX, name='atmnet' ) myeff_m2
# <- includeEffects( myeff_m2, interaction1='kamerlid2016', altX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet' ) myeff_m2
# <- setEffect( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet', fix=TRUE, initialValue =
# -3, test=TRUE )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", sameX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='atmnet' )
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='rtnet' )

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", egoX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "rtnet")

# these need to be dropped due to collinearity myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='fnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='rtnet' )

# afstand
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, X, interaction1='afstand', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "rtnet")



myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "fnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus', name='fnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'plus', name='fnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "atmnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# egoX, interaction1 = 'd66', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'vvd', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus',
# name='atmnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "d66", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='atmnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='atmnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "d66", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'fvd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvda', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'pvdd', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'plus', name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl',
# name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='rtnet' )
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='rtnet' )

myeff_m3 <- myeff_m2

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "vrouw", name = "fnet")
# myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = 'vrouw', name='fnet' )
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "vrouw", name = "fnet")

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "vrouw", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "vrouw", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "vrouw", name = "rtnet")

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "vrouw", name = "atmnet")
# myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = 'vrouw', name='atmnet' ) myeff_m3 <-
# includeEffects(myeff_m3, altX, interaction1 = 'vrouw', name='atmnet' )

myeff_m3 <- includeEffects(myeff_m3, absDiffX, interaction1 = "lft", name = "fnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "lft", name = "fnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "lft", name = "fnet")

myeff_m3 <- includeEffects(myeff_m3, absDiffX, interaction1 = "lft", name = "rtnet")
# myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = 'lft', name='rtnet' )
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "lft", name = "rtnet")

myeff_m3 <- includeEffects(myeff_m3, absDiffX, interaction1 = "lft", name = "atmnet")
# myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = 'lft', name='atmnet' ) myeff_m3 <-
# includeEffects(myeff_m3, altX, interaction1 = 'lft', name='atmnet' )

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "ethminz", name = "fnet")
# myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = 'ethminz', name='fnet' ) myeff_m3 <-
# includeEffects(myeff_m3, altX, interaction1 = 'ethminz', name='fnet' )

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "ethminz", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "ethminz", name = "rtnet")
# myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = 'ethminz', name='rtnet' )

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "ethminz", name = "atmnet")
# myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = 'ethminz', name='atmnet' ) myeff_m3 <-
# includeEffects(myeff_m3, altX, interaction1 = 'ethminz', name='atmnet' )


# Estimates

load("ansM8c.RData")

myalgorithm <- sienaAlgorithmCreate(projname = "M10")
ansM10 <- siena07(myalgorithm, data = mydata, prevAns = ansM8c, effects = myeff_m3, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM10
save(ansM10, file = paste("ansM10", ".RData", sep = ""))

ansM10b <- siena07(myalgorithm, data = mydata, prevAns = ansM10, effects = myeff_m3, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)
ansM10b
save(ansM10b, file = paste("ansM10b", ".RData", sep = ""))

# switching to different computer

load("ansM10c.RData")
ansM10b
ansM10c <- siena07(myalgorithm, data = mydata, prevAns = ansM10b, effects = myeff_m3, useCluster = TRUE,
    nbrNodes = 12, initC = TRUE, batch = TRUE)
ansM10c  # Overall maximum convergence ratio:    0.2528 

save(ansM10c, file = paste("ansM10c", ".RData", sep = ""))

ansM10d <- siena07(myalgorithm, data = mydata, prevAns = ansM10c, effects = myeff_m3, useCluster = TRUE,
    nbrNodes = 10, initC = TRUE, batch = TRUE)
ansM10d

save(ansM10d, file = paste("ansM10d", ".RData", sep = ""))
SM E: Model 2
Estimate Standard Error
Following
rate 1 4.662 0.244
rate 2 2.034 0.129
outdegree -13.798 2.269
reciprocity 0.862 0.112
transitive triplets 0.038 0.007
shared popularity -0.001 0.000
indegree - popularity (sqrt) 0.350 0.063
outdegree - popularity (sqrt) -0.205 0.036
outdegree - activity (sqrt) 1.410 0.307
seating distance (dyad) -0.023 0.006
same party (dyad) 1.090 0.154
same ethnic minority status (dyad) -0.389 0.138
woman (alter) 0.241 0.082
same sex (dyad) 0.129 0.080
age (alter) -0.017 0.005
age (ego) -0.139 0.051
absolute difference age (dyad) 0.035 0.006
incumbancy status (alter) -0.401 0.097
same incumbancy status (dyad) 0.178 0.082
position on election list (ego) 0.583 0.170
Atmention
rate 1 65.642 7.638
rate 2 13.348 0.913
outdegree -4.298 0.157
reciprocity 1.406 0.109
transitive triplets 0.066 0.027
shared popularity -0.008 0.007
indegree - popularity (sqrt) 0.394 0.046
outdegree - popularity (sqrt) -0.096 0.042
outdegree - activity (sqrt) 0.254 0.023
same party (dyad) 0.921 0.057
party Liberal Democrats (alter) -0.111 0.061
party GreenLeft (alter) -0.156 0.074
party GreenLeft (ego) 0.141 0.063
same ethnic minority status (dyad) 0.074 0.052
same sex (dyad) 0.054 0.044
absolute difference age (dyad) 0.000 0.003
position on election list (alter) -0.011 0.003
party leader (alter) 0.125 0.088
party leader (ego) -0.308 0.101
Retweets
rate 1 18.709 1.543
rate 2 17.354 1.590
outdegree -4.055 0.186
reciprocity 0.615 0.087
transitive triplets 0.157 0.024
shared popularity -0.013 0.005
indegree - popularity (sqrt) 0.387 0.047
outdegree - popularity (sqrt) -0.278 0.056
outdegree - activity (sqrt) 0.156 0.027
seating distance (dyad) -0.031 0.006
same party (dyad) 1.388 0.083
party Liberal Democrats (ego) -0.413 0.078
party Freedom Party (ego) -0.146 0.081
ethnic minority status (ego) 0.169 0.092
same ethnic minority status (dyad) 0.115 0.081
woman (alter) 0.104 0.051
women (ego) 0.128 0.048
same sex (dyad) 0.127 0.050
age (alter) -0.009 0.003
absolute difference age (dyad) 0.001 0.003
incumbancy status (ego) -0.110 0.045
position on election list (alter) -0.010 0.004
party leader (alter) 0.186 0.085
Note:
Overall maximum convergence ratio: 0.208

Model 3

Cross-network effects. Hypotheses 4.

Remove the non-significant social inbreeding parameters (t-value < 1):

myeff <- getEffects(mydata)
myeff_m1 <- myeff

# according to suggestion of rsiena manual
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "rtnet")

myeff_m2 <- myeff_m1

#'kamerlid2016' 'pleklijst'    'pleklijst1'

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', altX, name='atmnet' ) myeff_m2
# <- includeEffects( myeff_m2, interaction1='kamerlid2016', altX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet' ) myeff_m2
# <- setEffect( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet', fix=TRUE, initialValue =
# -3, test=TRUE )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", sameX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='atmnet' )
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='rtnet' )

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", egoX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "rtnet")

# these need to be dropped due to collinearity myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='fnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='rtnet' )

# afstand
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, X, interaction1='afstand', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "rtnet")



myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "fnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus', name='fnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'plus', name='fnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "atmnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# egoX, interaction1 = 'd66', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'vvd', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus',
# name='atmnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "d66", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='atmnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='atmnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "d66", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'fvd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvda', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'pvdd', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'plus', name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl',
# name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='rtnet' )
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='rtnet' )

myeff_m3 <- myeff_m2

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "vrouw", name = "fnet")
# myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = 'vrouw', name='fnet' )
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "vrouw", name = "fnet")

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "vrouw", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "vrouw", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "vrouw", name = "rtnet")

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "vrouw", name = "atmnet")
# myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = 'vrouw', name='atmnet' ) myeff_m3 <-
# includeEffects(myeff_m3, altX, interaction1 = 'vrouw', name='atmnet' )

myeff_m3 <- includeEffects(myeff_m3, absDiffX, interaction1 = "lft", name = "fnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "lft", name = "fnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "lft", name = "fnet")

# myeff_m3 <- includeEffects(myeff_m3, absDiffX , interaction1 = 'lft', name='rtnet' ) myeff_m3 <-
# includeEffects(myeff_m3, egoX, interaction1 = 'lft', name='rtnet' )
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "lft", name = "rtnet")

# myeff_m3 <- includeEffects(myeff_m3, absDiffX , interaction1 = 'lft', name='atmnet' ) myeff_m3 <-
# includeEffects(myeff_m3, egoX, interaction1 = 'lft', name='atmnet' ) myeff_m3 <-
# includeEffects(myeff_m3, altX, interaction1 = 'lft', name='atmnet' )

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "ethminz", name = "fnet")
# myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = 'ethminz', name='fnet' ) myeff_m3 <-
# includeEffects(myeff_m3, altX, interaction1 = 'ethminz', name='fnet' )

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "ethminz", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "ethminz", name = "rtnet")
# myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = 'ethminz', name='rtnet' )

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "ethminz", name = "atmnet")
# myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = 'ethminz', name='atmnet' ) myeff_m3 <-
# includeEffects(myeff_m3, altX, interaction1 = 'ethminz', name='atmnet' )

myeff_m4 <- myeff_m3

myeff_m4 <- includeEffects(myeff_m4, crprod, interaction1 = "fnet", name = "rtnet")
myeff_m4 <- includeEffects(myeff_m4, crprod, interaction1 = "fnet", name = "atmnet")
myeff_m4 <- includeEffects(myeff_m4, crprod, interaction1 = "rtnet", name = "fnet")
myeff_m4 <- includeEffects(myeff_m4, crprod, interaction1 = "rtnet", name = "atmnet")
# myeff_m4 <- includeEffects( myeff_m4, crprod, interaction1='atmnet', name='fnet' ) #needs to be
# dropped due to convergence
myeff_m4 <- includeEffects(myeff_m4, crprod, interaction1 = "atmnet", name = "rtnet")

# ik doe het een, jij doet het ander terug
myeff_m4 <- includeEffects(myeff_m4, crprodRecip, interaction1 = "fnet", name = "rtnet")
myeff_m4 <- includeEffects(myeff_m4, crprodRecip, interaction1 = "fnet", name = "atmnet")
myeff_m4 <- includeEffects(myeff_m4, crprodRecip, interaction1 = "rtnet", name = "fnet")
myeff_m4 <- includeEffects(myeff_m4, crprodRecip, interaction1 = "rtnet", name = "atmnet")
# myeff_m4 <- includeEffects( myeff_m4, crprodRecip, interaction1='atmnet', name='fnet' ) #needs to
# be dropped due to convergence
myeff_m4 <- includeEffects(myeff_m4, crprodRecip, interaction1 = "atmnet", name = "rtnet")
myeff_m4


# Estimation

load("ansM10c.RData")
ansM10c

myalgorithm <- sienaAlgorithmCreate(projname = "M11")
ansM11 <- siena07(myalgorithm, data = mydata, prevAns = ansM10c, effects = myeff_m4, useCluster = TRUE,
    nbrNodes = 10, initC = TRUE, batch = TRUE)
ansM11
save(ansM11, file = paste("ansM11", ".RData", sep = ""))

ansM11b <- siena07(myalgorithm, data = mydata, prevAns = ansM11, effects = myeff_m4, useCluster = TRUE,
    nbrNodes = 10, initC = TRUE, batch = TRUE)
ansM11b
save(ansM11b, file = paste("ansM11b", ".RData", sep = ""))


ansM11c <- siena07(myalgorithm, data = mydata, prevAns = ansM11b, effects = myeff_m4, useCluster = TRUE,
    nbrNodes = 10, initC = TRUE, batch = TRUE)
ansM11c  # Overall maximum convergence ratio:    0.2839 
save(ansM11c, file = paste("ansM11c", ".RData", sep = ""))


# lets trim

# effects

myeff <- getEffects(mydata)
myeff_m1 <- myeff

# according to suggestion of rsiena manual
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "rtnet")

myeff_m2 <- myeff_m1

#'kamerlid2016' 'pleklijst'    'pleklijst1'

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', altX, name='atmnet' ) myeff_m2
# <- includeEffects( myeff_m2, interaction1='kamerlid2016', altX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet' ) myeff_m2
# <- setEffect( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet', fix=TRUE, initialValue =
# -3, test=TRUE )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", sameX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='atmnet' )
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', altX, name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, interaction1='pleklijst1', altX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='rtnet' )

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", egoX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', altX, name='rtnet' )

# these need to be dropped due to collinearity myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='fnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='rtnet' )

# afstand
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, X, interaction1='afstand', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "rtnet")



myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "fnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus', name='fnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'plus', name='fnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "atmnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# egoX, interaction1 = 'd66', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'vvd', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus',
# name='atmnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "d66", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='atmnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='atmnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "d66", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'fvd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvda', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'pvdd', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'plus', name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl',
# name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='rtnet' )
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='rtnet' )

myeff_m3 <- myeff_m2

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "vrouw", name = "fnet")
# myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = 'vrouw', name='fnet' )
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "vrouw", name = "fnet")

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "vrouw", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "vrouw", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "vrouw", name = "rtnet")

# myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = 'vrouw', name='atmnet' ) myeff_m3 <-
# includeEffects(myeff_m3, egoX, interaction1 = 'vrouw', name='atmnet' ) myeff_m3 <-
# includeEffects(myeff_m3, altX, interaction1 = 'vrouw', name='atmnet' )

myeff_m3 <- includeEffects(myeff_m3, absDiffX, interaction1 = "lft", name = "fnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "lft", name = "fnet")
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "lft", name = "fnet")

# myeff_m3 <- includeEffects(myeff_m3, absDiffX , interaction1 = 'lft', name='rtnet' ) myeff_m3 <-
# includeEffects(myeff_m3, egoX, interaction1 = 'lft', name='rtnet' )
myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = "lft", name = "rtnet")

# myeff_m3 <- includeEffects(myeff_m3, absDiffX , interaction1 = 'lft', name='atmnet' ) myeff_m3 <-
# includeEffects(myeff_m3, egoX, interaction1 = 'lft', name='atmnet' ) myeff_m3 <-
# includeEffects(myeff_m3, altX, interaction1 = 'lft', name='atmnet' )

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "ethminz", name = "fnet")
# myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = 'ethminz', name='fnet' ) myeff_m3 <-
# includeEffects(myeff_m3, altX, interaction1 = 'ethminz', name='fnet' )

myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = "ethminz", name = "rtnet")
myeff_m3 <- includeEffects(myeff_m3, egoX, interaction1 = "ethminz", name = "rtnet")
# myeff_m3 <- includeEffects(myeff_m3, altX, interaction1 = 'ethminz', name='rtnet' )

# myeff_m3 <- includeEffects(myeff_m3, sameX, interaction1 = 'ethminz', name='atmnet' ) myeff_m3 <-
# includeEffects(myeff_m3, egoX, interaction1 = 'ethminz', name='atmnet' ) myeff_m3 <-
# includeEffects(myeff_m3, altX, interaction1 = 'ethminz', name='atmnet' )

myeff_m4 <- myeff_m3

myeff_m4 <- includeEffects(myeff_m4, crprod, interaction1 = "fnet", name = "rtnet")
myeff_m4 <- includeEffects(myeff_m4, crprod, interaction1 = "fnet", name = "atmnet")
myeff_m4 <- includeEffects(myeff_m4, crprod, interaction1 = "rtnet", name = "fnet")
myeff_m4 <- includeEffects(myeff_m4, crprod, interaction1 = "rtnet", name = "atmnet")
# myeff_m4 <- includeEffects( myeff_m4, crprod, interaction1='atmnet', name='fnet' ) #needs to be
# dropped due to convergence
myeff_m4 <- includeEffects(myeff_m4, crprod, interaction1 = "atmnet", name = "rtnet")

# ik doe het een, jij doet het ander terug
myeff_m4 <- includeEffects(myeff_m4, crprodRecip, interaction1 = "fnet", name = "rtnet")
myeff_m4 <- includeEffects(myeff_m4, crprodRecip, interaction1 = "fnet", name = "atmnet")
myeff_m4 <- includeEffects(myeff_m4, crprodRecip, interaction1 = "rtnet", name = "fnet")
myeff_m4 <- includeEffects(myeff_m4, crprodRecip, interaction1 = "rtnet", name = "atmnet")
# myeff_m4 <- includeEffects( myeff_m4, crprodRecip, interaction1='atmnet', name='fnet' ) #needs to
# be dropped due to convergence
myeff_m4 <- includeEffects(myeff_m4, crprodRecip, interaction1 = "atmnet", name = "rtnet")
myeff_m4

# estimates

load("ansM11c.RData")
ansM11c

myalgorithm <- sienaAlgorithmCreate(projname = "M12")
ansM12 <- siena07(myalgorithm, data = mydata, prevAns = ansM11c, effects = myeff_m4, useCluster = TRUE,
    nbrNodes = 10, initC = TRUE, batch = TRUE)
ansM12  # Overall maximum convergence ratio:    0.2562 
save(ansM12, file = paste("ansM12", ".RData", sep = ""))

ansM12b <- siena07(myalgorithm, data = mydata, prevAns = ansM12, effects = myeff_m4, useCluster = TRUE,
    nbrNodes = 10, initC = TRUE, batch = TRUE)
ansM12b  # Overall maximum convergence ratio:    0.3631 


save(ansM12b, file = paste("ansM12b", ".RData", sep = ""))


ansM12c <- siena07(myalgorithm, data = mydata, prevAns = ansM12b, effects = myeff_m4, useCluster = TRUE,
    nbrNodes = 10, initC = TRUE, batch = TRUE)
ansM12c  #Overall maximum convergence ratio:    0.2951 

save(ansM12c, file = paste("ansM12c", ".RData", sep = ""))
#> Estimates, standard errors and convergence t-ratios
#> 
#>                                                  Estimate   Standard   Convergence 
#>                                                               Error      t-ratio   
#>    1. rate constant fnet rate (period 1)           4.6665 (  0.2813  )   -0.0190   
#>    2. rate constant fnet rate (period 2)           2.0356 (  0.1319  )    0.0134   
#>    3. eval fnet: outdegree (density)             -13.7764 (  2.2506  )   -0.0236   
#>    4. eval fnet: reciprocity                       0.8124 (  0.1193  )   -0.0369   
#>    5. eval fnet: transitive triplets               0.0368 (  0.0076  )   -0.0378   
#>    6. eval fnet: shared popularity                -0.0007 (  0.0004  )   -0.0315   
#>    7. eval fnet: indegree - popularity (sqrt)      0.3436 (  0.0629  )   -0.0259   
#>    8. eval fnet: outdegree - popularity (sqrt)    -0.1998 (  0.0382  )   -0.0271   
#>    9. eval fnet: outdegree - activity (sqrt)       1.4080 (  0.3173  )   -0.0300   
#>   10. eval fnet: afstand                          -0.0223 (  0.0067  )    0.0083   
#>   11. eval fnet: same partij                       0.7547 (  0.1885  )    0.0068   
#>   12. eval fnet: same ethminz                     -0.4099 (  0.1449  )   -0.0297   
#>   13. eval fnet: vrouw alter                       0.2355 (  0.0835  )   -0.0203   
#>   14. eval fnet: same vrouw                        0.1304 (  0.0874  )   -0.0255   
#>   15. eval fnet: lft alter                        -0.0157 (  0.0052  )   -0.0096   
#>   16. eval fnet: lft ego                          -0.1371 (  0.0605  )    0.0221   
#>   17. eval fnet: lft abs. difference               0.0340 (  0.0069  )   -0.0169   
#>   18. eval fnet: kamerlid2016 alter               -0.3924 (  0.1086  )   -0.0309   
#>   19. eval fnet: same kamerlid2016                 0.1819 (  0.0876  )   -0.0064   
#>   20. eval fnet: pleklijst ego                     0.5845 (  0.1658  )    0.0050   
#>   21. eval fnet: rtnet                             1.7184 (  0.5357  )    0.0189   
#>   22. eval fnet: reciprocity with rtnet            0.6771 (  0.4828  )    0.0346   
#>   23. rate constant atmnet rate (period 1)        91.8354 ( 51.4693  )   -0.0374   
#>   24. rate constant atmnet rate (period 2)        14.1123 (  1.0499  )    0.0476   
#>   25. eval atmnet: outdegree (density)            -4.3818 (  0.1511  )   -0.0250   
#>   26. eval atmnet: reciprocity                     1.2119 (  0.1091  )   -0.0284   
#>   27. eval atmnet: transitive triplets             0.0294 (  0.0278  )   -0.0280   
#>   28. eval atmnet: shared popularity              -0.0053 (  0.0061  )   -0.0293   
#>   29. eval atmnet: indegree - popularity (sqrt)    0.4189 (  0.0381  )   -0.0302   
#>   30. eval atmnet: outdegree - popularity (sqrt)  -0.1176 (  0.0255  )   -0.0298   
#>   31. eval atmnet: outdegree - activity (sqrt)     0.2575 (  0.0196  )   -0.0202   
#>   32. eval atmnet: same partij                     0.4064 (  0.1061  )   -0.0149   
#>   33. eval atmnet: d66 alter                      -0.1490 (  0.0625  )   -0.0090   
#>   34. eval atmnet: gl alter                       -0.1383 (  0.0720  )    0.0457   
#>   35. eval atmnet: gl ego                          0.1275 (  0.0616  )    0.0491   
#>   36. eval atmnet: pleklijst alter                -0.0062 (  0.0033  )    0.0449   
#>   37. eval atmnet: pleklijst1 ego                 -0.2757 (  0.1175  )   -0.0318   
#>   38. eval atmnet: fnet                            0.3997 (  0.0723  )   -0.0253   
#>   39. eval atmnet: reciprocity with fnet           0.1585 (  0.0658  )   -0.0291   
#>   40. eval atmnet: rtnet                           0.4539 (  0.2119  )   -0.0287   
#>   41. eval atmnet: reciprocity with rtnet          0.2453 (  0.1808  )   -0.0143   
#>   42. rate constant rtnet rate (period 1)         20.6431 (  1.6923  )   -0.0399   
#>   43. rate constant rtnet rate (period 2)         19.4538 (  2.1251  )    0.0066   
#>   44. eval rtnet: outdegree (density)             -4.1255 (  0.2076  )    0.0318   
#>   45. eval rtnet: reciprocity                      0.1759 (  0.1139  )   -0.0061   
#>   46. eval rtnet: transitive triplets              0.1408 (  0.0254  )    0.0079   
#>   47. eval rtnet: shared popularity               -0.0088 (  0.0047  )    0.0012   
#>   48. eval rtnet: indegree - popularity (sqrt)     0.3570 (  0.0466  )    0.0224   
#>   49. eval rtnet: outdegree - popularity (sqrt)   -0.3574 (  0.0695  )    0.0202   
#>   50. eval rtnet: outdegree - activity (sqrt)      0.1010 (  0.0297  )    0.0339   
#>   51. eval rtnet: afstand                         -0.0196 (  0.0061  )   -0.0325   
#>   52. eval rtnet: same partij                      1.1059 (  0.0925  )    0.0300   
#>   53. eval rtnet: d66 ego                         -0.3916 (  0.0917  )   -0.0085   
#>   54. eval rtnet: pvv ego                          0.3224 (  0.1028  )   -0.0379   
#>   55. eval rtnet: ethminz ego                      0.1760 (  0.1007  )   -0.0196   
#>   56. eval rtnet: same ethminz                     0.1339 (  0.0940  )    0.0295   
#>   57. eval rtnet: vrouw alter                      0.1160 (  0.0559  )   -0.0134   
#>   58. eval rtnet: vrouw ego                        0.1235 (  0.0534  )    0.0471   
#>   59. eval rtnet: same vrouw                       0.1146 (  0.0563  )    0.0224   
#>   60. eval rtnet: lft alter                       -0.0070 (  0.0030  )   -0.0164   
#>   61. eval rtnet: kamerlid2016 ego                -0.1297 (  0.0499  )    0.0471   
#>   62. eval rtnet: pleklijst1 alter                 0.1656 (  0.0898  )    0.0547   
#>   63. eval rtnet: fnet                             0.6467 (  0.0924  )    0.0326   
#>   64. eval rtnet: reciprocity with fnet            0.2506 (  0.0757  )    0.0341   
#>   65. eval rtnet: atmnet                           0.8007 (  0.2282  )    0.0207   
#>   66. eval rtnet: reciprocity with atmnet          0.9880 (  0.2308  )    0.0208   
#> 
#> Overall maximum convergence ratio:    0.2562 
#> 
#> 
#> Total of 2470 iteration steps.

Model 4

Here we test Hypothesis 5 on time trends in the impact of the same-party variable.

sienaTimeTest

load("ansM8c.RData")


tt <- sienaTimeTest(ansM8c, effects = c(11, 24, 41))
# tt tt$EffectTest tt$IndividualTest
plot(tt)

Model 4 - final

myeff_t <- myeff_m2

myeff_t <- includeTimeDummy(myeff_t, sameX, interaction1 = "partij", name = "fnet", timeDummy = "2")
myeff_t <- includeTimeDummy(myeff_t, sameX, interaction1 = "partij", name = "atmnet", timeDummy = "2")
myeff_t <- includeTimeDummy(myeff_t, sameX, interaction1 = "partij", name = "rtnet", timeDummy = "2")
myeff_t

myalgorithm <- sienaAlgorithmCreate(projname = "M8c_t", nsub = 5, n3 = 5000)
ansM8c_t <- siena07(myalgorithm, data = mydata, prevAns = ansM8c, effects = myeff_t, useCluster = TRUE,
    nbrNodes = 10, initC = TRUE, batch = TRUE)
ansM8c_t
save(ansM8c_t, file = paste("ansM8c_t", ".RData", sep = ""))
load("ansM8c_t.RData")
# xtable.sienaFit(ansM8c_t, file='ansM8c_t.html', type='html', digits=3)


res <- round(fanscsv(ansM8c_t)[c(11, 16, 26, 34, 45, 53), 1:2], 5)

mc <- as.character(round(fanscsv(ansM8c_t)[54, 1], 3))

row.names(res) <- c("same party (dyad)", "time*same party", "same party (dyad)", "time*same party", "same party (dyad)",
    "time*same party")

M4 <- kbl(res, booktabs = TRUE, digits = 3, caption = "Model 4", align = "c") %>%
    kable_classic(full_width = F, html_font = "Cambria") %>%
    kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
    column_spec(column = 1, width = "3in") %>%
    # row_spec(c(11, 24,41), bold = T, color = 'white', background = '#D7261E') %>%
group_rows(index = c(Following = 2, Atmention = 2, Retweets = 2)) %>%
    footnote(general = paste("Overall maximum convergence ratio: ", mc, sep = ""))


M4
Model 4
Estimate Standard Error
Following
same party (dyad) 1.215 0.157
time*same party 0.957 0.278
Atmention
same party (dyad) 0.804 0.060
time*same party -0.448 0.099
Retweets
same party (dyad) 1.386 0.079
time*same party 0.265 0.056
Note:
Overall maximum convergence ratio: 0.149

Model RR

An anonymous reviewer suggested to try to disentangle the impact of physical seating distance from ideological distance. We therefore added to the party to which each MP belongs a general left-right position according to the Chapel Hill Survey (Jolly et al. 2022).

Load data objects

Data objects:

  • key: information on all politicians on election list
  • twitter
    • keyf: information on all 147 MPs with twitter handle
    • mydata: RSiena object with all kind of goodies inside
    • seats: seating coordinates of HoP (used for plotting)
  • CHES: information on party positions see also (Jolly et al. 2022)

As the ideological position of parties was not included in our original data object we need to fix that.

# STAP 1: read in data
key <- read.spss("data-processed\\key moederbestand 20171114.sav", use.value.labels = T, to.data.frame = T)


load("data-processed\\twitter_20190919.RData")
# str(twitter_20190919,1)
keyf <- twitter_20190919[[1]]
mydata <- twitter_20190919[[2]]
seats <- twitter_20190919[[3]]

ches$Partij <- ches$party

keyf <- left_join(keyf, ches)



# deconstruct dataobject
deps <- mydata$depvars
covariates <- mydata$cCovars
codyadcovar <- mydata$dycCovars

fnet <- sienaNet(deps$fnet)
atmnet <- sienaNet(deps$atmnet)
rtnet <- sienaNet(deps$rtnet)
afstand <- codyadcovar$afstand
egohandle <- covariates$egohandle
egoid <- covariates$egoid
partij <- covariates$partij
coalitie <- covariates$coalitie
cda <- covariates$cda
cu <- covariates$cu
denk <- covariates$denk
d66 <- covariates$d66
fvd <- covariates$fvd
gl <- covariates$gl
pvda <- covariates$pvda
pvdd <- covariates$pvdd
pvv <- covariates$pvv
sgp <- covariates$sgp
sp <- covariates$sp
vvd <- covariates$vvd
plus <- covariates$plus
ethminz <- covariates$ethminz
vrouw <- covariates$vrouw
lft <- covariates$lft
kamerlid2016 <- covariates$kamerlid2016
kabinet2016 <- covariates$kabinet2016
pleklijst <- covariates$pleklijst
pleklijst1 <- covariates$pleklijst1
# add new variable
partypos <- coCovar(keyf$lrgen)

# reconstruct dataobject
mydata_RR <- sienaDataCreate(fnet, atmnet, rtnet, afstand, egohandle, egoid, partij, coalitie, cda, cu,
    denk, d66, fvd, gl, pvda, pvdd, pvv, sgp, sp, vvd, plus, ethminz, vrouw, lft, kamerlid2016, kabinet2016,
    pleklijst, pleklijst1, partypos)

Define effects

myeff <- getEffects(mydata_RR)
myeff_m1 <- myeff

# according to suggestion of rsiena manual
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "rtnet")

myeff_m2 <- myeff_m1

#'kamerlid2016' 'pleklijst'    'pleklijst1'

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', altX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet' ) myeff_m2
# <- setEffect( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet', fix=TRUE, initialValue =
# -3, test=TRUE )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", sameX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='atmnet' )
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='rtnet' )

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", egoX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "rtnet")

# these need to be dropped due to collinearity myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='fnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='rtnet' )

# afstand
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, X, interaction1='afstand', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "rtnet")



myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "fnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus', name='fnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'plus', name='fnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "atmnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# egoX, interaction1 = 'd66', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'vvd', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus',
# name='atmnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "d66", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='atmnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='atmnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "d66", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'fvd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvda', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'pvdd', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'plus', name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl',
# name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='rtnet' )
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='rtnet' )

myeff_RR <- myeff_m2
myeff_RR <- includeEffects(myeff_RR, interaction1 = "partypos", absDiffX, name = "fnet")
myeff_RR <- includeEffects(myeff_RR, interaction1 = "partypos", absDiffX, name = "rtnet")
myeff_RR
#>    name   effectName                            include fix   test  initialValue parm
#> 1  fnet   constant fnet rate (period 1)         TRUE    FALSE FALSE    7.22021   0   
#> 2  fnet   constant fnet rate (period 2)         TRUE    FALSE FALSE    3.79571   0   
#> 3  fnet   fnet: outdegree (density)             TRUE    FALSE FALSE    0.00000   0   
#> 4  fnet   fnet: reciprocity                     TRUE    FALSE FALSE    0.00000   0   
#> 5  fnet   fnet: transitive triplets             TRUE    FALSE FALSE    0.00000   0   
#> 6  fnet   fnet: shared popularity               TRUE    FALSE FALSE    0.00000   1   
#> 7  fnet   fnet: indegree - popularity (sqrt)    TRUE    FALSE FALSE    0.00000   0   
#> 8  fnet   fnet: outdegree - popularity (sqrt)   TRUE    FALSE FALSE    0.00000   0   
#> 9  fnet   fnet: outdegree - activity (sqrt)     TRUE    FALSE FALSE    0.00000   1   
#> 10 fnet   fnet: afstand                         TRUE    FALSE FALSE    0.00000   0   
#> 11 fnet   fnet: same partij                     TRUE    FALSE FALSE    0.00000   0   
#> 12 fnet   fnet: kamerlid2016 alter              TRUE    FALSE FALSE    0.00000   0   
#> 13 fnet   fnet: same kamerlid2016               TRUE    FALSE FALSE    0.00000   0   
#> 14 fnet   fnet: pleklijst ego                   TRUE    FALSE FALSE    0.00000   0   
#> 15 fnet   fnet: partypos abs. difference        TRUE    FALSE FALSE    0.00000   0   
#> 16 atmnet constant atmnet rate (period 1)       TRUE    FALSE FALSE   16.26089   0   
#> 17 atmnet constant atmnet rate (period 2)       TRUE    FALSE FALSE    9.17902   0   
#> 18 atmnet atmnet: outdegree (density)           TRUE    FALSE FALSE   -1.76137   0   
#> 19 atmnet atmnet: reciprocity                   TRUE    FALSE FALSE    0.00000   0   
#> 20 atmnet atmnet: transitive triplets           TRUE    FALSE FALSE    0.00000   0   
#> 21 atmnet atmnet: shared popularity             TRUE    FALSE FALSE    0.00000   1   
#> 22 atmnet atmnet: indegree - popularity (sqrt)  TRUE    FALSE FALSE    0.00000   0   
#> 23 atmnet atmnet: outdegree - popularity (sqrt) TRUE    FALSE FALSE    0.00000   0   
#> 24 atmnet atmnet: outdegree - activity (sqrt)   TRUE    FALSE FALSE    0.00000   1   
#> 25 atmnet atmnet: same partij                   TRUE    FALSE FALSE    0.00000   0   
#> 26 atmnet atmnet: d66 alter                     TRUE    FALSE FALSE    0.00000   0   
#> 27 atmnet atmnet: gl alter                      TRUE    FALSE FALSE    0.00000   0   
#> 28 atmnet atmnet: gl ego                        TRUE    FALSE FALSE    0.00000   0   
#> 29 atmnet atmnet: pleklijst alter               TRUE    FALSE FALSE    0.00000   0   
#> 30 atmnet atmnet: pleklijst1 alter              TRUE    FALSE FALSE    0.00000   0   
#> 31 atmnet atmnet: pleklijst1 ego                TRUE    FALSE FALSE    0.00000   0   
#> 32 rtnet  constant rtnet rate (period 1)        TRUE    FALSE FALSE   10.98716   0   
#> 33 rtnet  constant rtnet rate (period 2)        TRUE    FALSE FALSE    9.39819   0   
#> 34 rtnet  rtnet: outdegree (density)            TRUE    FALSE FALSE   -1.61392   0   
#> 35 rtnet  rtnet: reciprocity                    TRUE    FALSE FALSE    0.00000   0   
#> 36 rtnet  rtnet: transitive triplets            TRUE    FALSE FALSE    0.00000   0   
#> 37 rtnet  rtnet: shared popularity              TRUE    FALSE FALSE    0.00000   1   
#> 38 rtnet  rtnet: indegree - popularity (sqrt)   TRUE    FALSE FALSE    0.00000   0   
#> 39 rtnet  rtnet: outdegree - popularity (sqrt)  TRUE    FALSE FALSE    0.00000   0   
#> 40 rtnet  rtnet: outdegree - activity (sqrt)    TRUE    FALSE FALSE    0.00000   1   
#> 41 rtnet  rtnet: afstand                        TRUE    FALSE FALSE    0.00000   0   
#> 42 rtnet  rtnet: same partij                    TRUE    FALSE FALSE    0.00000   0   
#> 43 rtnet  rtnet: d66 ego                        TRUE    FALSE FALSE    0.00000   0   
#> 44 rtnet  rtnet: pvv ego                        TRUE    FALSE FALSE    0.00000   0   
#> 45 rtnet  rtnet: kamerlid2016 alter             TRUE    FALSE FALSE    0.00000   0   
#> 46 rtnet  rtnet: kamerlid2016 ego               TRUE    FALSE FALSE    0.00000   0   
#> 47 rtnet  rtnet: pleklijst alter                TRUE    FALSE FALSE    0.00000   0   
#> 48 rtnet  rtnet: pleklijst1 alter               TRUE    FALSE FALSE    0.00000   0   
#> 49 rtnet  rtnet: partypos abs. difference       TRUE    FALSE FALSE    0.00000   0

estimate model

myalgorithmRR <- sienaAlgorithmCreate(projname = "RR")

ansRR1 <- siena07(myalgorithmRR, data = mydata_RR, prevAns = ansM8c, effects = myeff_RR, useCluster = TRUE,
    nbrNodes = 8, initC = TRUE, batch = TRUE)

# save(ansRR1, file=paste('ansRR1','.RData',sep=''))

Model RR - final

The parameters of interest are in red.

load("ansRR1.RData")


res <- round(fanscsv(ansRR1)[, 1:2], 5)
mcpos <- length(res[, 1])
res <- res[-mcpos, ]
mc <- as.character(round(fanscsv(ansRR1)[mcpos, 1], 3))
row.names(res) <- c("rate 1", "rate 2", "outdegree", "reciprocity", "transitive triplets", "shared popularity",
    "indegree - popularity", " outdegree - popularity", "outdegree - activity", "seating distance (dyad)",
    "same party (dyad)", "incumbancy status (alter)", "same incumbancy status (dyad)", "position on election list (ego)",
    "ideological distance (dyad)", "rate 1", "rate 2", "outdegree", "reciprocity", "transitive triplets",
    "shared popularity", "indegree - popularity", "outdegree - popularity", "outdegree - activity ",
    "same party (dyad)", "party Liberal Democrats (alter)", "party GreenLeft (alter)", "party GreenLeft (ego)",
    "position on election list (alter)", "party leader (alter)", "party leader (ego)", "rate 1", "rate 2",
    "outdegree", "reciprocity", "transitive triplets", "shared popularity", "indegree - popularity ",
    "outdegree - popularity", "outdegree - activity ", "seating distance (dyad)", "same party (dyad)",
    "party Liberal Democrats (ego)", "party Freedom Party (ego)", "incumbancy status (alter)", "incumbancy status (ego)",
    "position on election list (alter)", "party leader (alter)", "ideological distance (dyad)")

RR1 <- kbl(res, booktabs = TRUE, digits = 3, caption = "Model RR: including ideological distance", align = "c") %>%
    kable_classic(full_width = F, html_font = "Cambria") %>%
    kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
    column_spec(column = 1, width = "3in") %>%
    row_spec(c(10, 15, 41, 49), bold = T, color = "white", background = "#D7261E") %>%
    group_rows(index = c(Following = 15, Atmention = 16, Retweets = 18)) %>%
    footnote(general = paste("Overall maximum convergence ratio: ", mc, sep = ""))


RR1
Model RR: including ideological distance
Estimate Standard Error
Following
rate 1 4.625 0.239
rate 2 2.033 0.129
outdegree -13.152 2.155
reciprocity 0.842 0.119
transitive triplets 0.037 0.007
shared popularity -0.001 0.000
indegree - popularity 0.362 0.061
outdegree - popularity -0.189 0.035
outdegree - activity 1.329 0.279
seating distance (dyad) -0.014 0.007
same party (dyad) 0.943 0.165
incumbancy status (alter) -0.506 0.090
same incumbancy status (dyad) 0.169 0.080
position on election list (ego) 0.535 0.138
ideological distance (dyad) -0.092 0.047
Atmention
rate 1 66.540 NA
rate 2 13.352 1.185
outdegree -4.213 0.122
reciprocity 1.406 0.112
transitive triplets 0.065 0.027
shared popularity -0.008 0.007
indegree - popularity 0.397 0.046
outdegree - popularity -0.098 0.042
outdegree - activity 0.255 0.018
same party (dyad) 0.918 0.062
party Liberal Democrats (alter) -0.104 0.062
party GreenLeft (alter) -0.171 0.074
party GreenLeft (ego) 0.136 0.062
position on election list (alter) -0.012 0.003
party leader (alter) 0.124 0.087
party leader (ego) -0.305 0.109
Retweets
rate 1 18.399 1.465
rate 2 17.266 1.486
outdegree -3.844 0.161
reciprocity 0.616 0.102
transitive triplets 0.158 0.024
shared popularity -0.014 0.005
indegree - popularity 0.394 0.046
outdegree - popularity -0.270 0.061
outdegree - activity 0.163 0.025
seating distance (dyad) -0.029 0.007
same party (dyad) 1.318 0.103
party Liberal Democrats (ego) -0.427 0.084
party Freedom Party (ego) -0.179 0.084
incumbancy status (alter) -0.084 0.048
incumbancy status (ego) -0.114 0.045
position on election list (alter) -0.012 0.004
party leader (alter) 0.119 0.084
ideological distance (dyad) -0.035 0.038
Note:
Overall maximum convergence ratio: 0.217


Model RR2

An anonymous reviewer argued that the last candidate elected from each party election list may posses “a heightened interest in active social network engagement to promote themselves or, conversely, aim to develop an individual discourse to bolster their political careers beyond the current legislative term” and suggested to assess the extent to which the same-party effect (party based similarity preferences) would be different for these specific MPs.

Load data objects

Data objects:

  • key: information on all politicians on election list
  • twitter
    • keyf: information on all 147 MPs with twitter handle
    • mydata: RSiena object with all kind of goodies inside
    • seats: seating coordinates of HoP (used for plotting)
  • CHES: information on party positions see also (Jolly et al. 2022)
#STAP 1: read in data
library(haven)
ches <- read_dta("./data-raw/CHES_means_2017.dta")
ches <- as.data.frame(ches)
ches <- ches[ches$country==10,]


key <- read.spss('data-processed\\key moederbestand 20171114.sav', use.value.labels=T, to.data.frame=T)


load("data-processed\\twitter_20190919.RData")
#str(twitter_20190919,1)
keyf <- twitter_20190919[[1]]
mydata <- twitter_20190919[[2]]
seats <- twitter_20190919[[3]]

keyf %>% group_by(Partij) %>%
  summarise(maxlist = max(PlekLijst), #note there are MPs with preference votes. 
            nseats = n()) -> keyf_temp

#correct for three missing MPs. 
keyf_temp$nseats[keyf_temp$Partij=="VVD"] <-  keyf_temp$nseats[keyf_temp$Partij=="VVD"] + 1
keyf_temp$nseats[keyf_temp$Partij=="PVV"] <-  keyf_temp$nseats[keyf_temp$Partij=="PVV"] + 2

keyf <- left_join(keyf, keyf_temp)

keyf$lastlist <- ifelse(keyf$PlekLijst>=keyf$nseats, 1, 0) 

ches$Partij <- ches$party

keyf <- left_join(keyf, ches)



#deconstruct dataobject
deps <- mydata$depvars
covariates <- mydata$cCovars
codyadcovar <- mydata$dycCovars

fnet <- sienaNet(deps$fnet) 
atmnet <- sienaNet(deps$atmnet)
rtnet <- sienaNet(deps$rtnet)
afstand <- codyadcovar$afstand
egohandle <- covariates$egohandle
egoid <- covariates$egoid
partij <- covariates$partij
coalitie <- covariates$coalitie
cda <- covariates$cda
cu <- covariates$cu
denk <- covariates$denk
d66 <- covariates$d66
fvd <- covariates$fvd
gl <- covariates$gl
pvda <- covariates$pvda
pvdd <- covariates$pvdd
pvv <- covariates$pvv
sgp <- covariates$sgp
sp <- covariates$sp
vvd <- covariates$vvd
plus <- covariates$plus
ethminz <- covariates$ethminz
vrouw <- covariates$vrouw
lft <- covariates$lft
kamerlid2016 <- covariates$kamerlid2016
kabinet2016 <- covariates$kabinet2016
pleklijst <- covariates$pleklijst
pleklijst1 <- covariates$pleklijst1
#add new variables
partypos <- coCovar(keyf$lrgen)  
lastlist <- coCovar(keyf$lastlist)
nseats <- coCovar(keyf$nseats)

table(coalitie, partij)
#>                     partij
#> coalitie             -7.93197278911565 -6.93197278911565 -5.93197278911565 -4.93197278911565
#>   -0.510204081632653                 0                 0                 3                 0
#>   0.489795918367347                 19                 5                 0                19
#>                     partij
#> coalitie             -3.93197278911565 -1.93197278911565 0.0680272108843543 1.06802721088435
#>   -0.510204081632653                 2                14                  9                5
#>   0.489795918367347                  0                 0                  0                0
#>                     partij
#> coalitie             2.06802721088435 3.06802721088435 4.06802721088435 6.06802721088435
#>   -0.510204081632653               18                3               14                0
#>   0.489795918367347                 0                0                0               32
#>                     partij
#> coalitie             7.06802721088435
#>   -0.510204081632653                4
#>   0.489795918367347                 0
#reconstruct dataobject
mydata_RR2 <- sienaDataCreate(fnet,
                          atmnet, 
                          rtnet, 
                          afstand, 
                          egohandle, 
                          egoid, 
                          partij, 
                          coalitie, 
                          cda,
                          cu,
                          denk,
                          d66,
                          fvd,
                          gl,
                          pvda,
                          pvdd,
                          pvv,
                          sgp,
                          sp,
                          vvd,
                          plus, 
                          ethminz,
                          vrouw,
                          lft,
                          kamerlid2016,
                          kabinet2016,
                          pleklijst,
                          pleklijst1,
                          partypos, 
                          lastlist,
                          nseats)

Define effects

Interaction ‘same party’ with ‘last on list’.

myeff <- getEffects(mydata_RR2)
myeff_m1 <- myeff

# according to suggestion of rsiena manual
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, inPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outActSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, outPopSqrt, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, transTrip, name = "rtnet")

myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "fnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "atmnet")
myeff_m1 <- includeEffects(myeff_m1, sharedPop, name = "rtnet")

myeff_m2 <- myeff_m1

#'kamerlid2016' 'pleklijst'    'pleklijst1'

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', altX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", altX, name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet' ) myeff_m2
# <- setEffect( myeff_m2, interaction1='kamerlid2016', egoX, name='fnet', fix=TRUE, initialValue =
# -3, test=TRUE )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', egoX, name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", egoX, name = "rtnet")

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "kamerlid2016", sameX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='atmnet' )
# myeff_m2 <- includeEffects( myeff_m2, interaction1='kamerlid2016', sameX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", altX, name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst1", egoX, name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst1', egoX, name='rtnet' )

myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", egoX, name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, interaction1='pleklijst', egoX, name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, interaction1='pleklijst', altX, name='fnet' )
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "atmnet")
myeff_m2 <- includeEffects(myeff_m2, interaction1 = "pleklijst", altX, name = "rtnet")

# these need to be dropped due to collinearity myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='fnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# interaction1='pleklijst', diffX, name='rtnet' )

# afstand
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "fnet")
# myeff_m2 <- includeEffects( myeff_m2, X, interaction1='afstand', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, X, interaction1 = "afstand", name = "rtnet")



myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "fnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus', name='fnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='fnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='fnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'pvv', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sgp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'sp', name='fnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'vvd', name='fnet'
# ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'plus', name='fnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "atmnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2,
# egoX, interaction1 = 'd66', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 =
# 'vvd', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'plus',
# name='atmnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "d66", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'fvd', name='atmnet' )
myeff_m2 <- includeEffects(myeff_m2, altX, interaction1 = "gl", name = "atmnet")
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='atmnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='atmnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='atmnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='atmnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='atmnet' )

myeff_m2 <- includeEffects(myeff_m2, sameX, interaction1 = "partij", name = "rtnet")

# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'denk', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "d66", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'fvd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'gl', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'pvda', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, egoX,
# interaction1 = 'pvdd', name='rtnet' )
myeff_m2 <- includeEffects(myeff_m2, egoX, interaction1 = "pvv", name = "rtnet")
# myeff_m2 <- includeEffects( myeff_m2, egoX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, egoX, interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects(
# myeff_m2, egoX, interaction1 = 'plus', name='rtnet' )

# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'cda', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'cu', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'denk', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'd66', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'fvd', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'gl',
# name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvda', name='rtnet' )
# myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 = 'pvdd', name='rtnet' ) myeff_m2 <-
# includeEffects( myeff_m2, altX, interaction1 = 'pvv', name='rtnet' ) myeff_m2 <- includeEffects(
# myeff_m2, altX, interaction1 = 'sgp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX,
# interaction1 = 'sp', name='rtnet' ) myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'vvd', name='rtnet' ) #referentie myeff_m2 <- includeEffects( myeff_m2, altX, interaction1 =
# 'plus', name='rtnet' )

myeff_RR <- myeff_m2
myeff_RR <- includeEffects(myeff_RR, interaction1 = "partypos", absDiffX, name = "fnet")
myeff_RR <- includeEffects(myeff_RR, interaction1 = "partypos", absDiffX, name = "rtnet")

# Interaction same party with last on list.

myeff_RR2_I1 <- myeff_RR
myeff_RR2_I1 <- includeEffects(myeff_RR2_I1, egoX, interaction1 = c("lastlist"), name = "fnet")
myeff_RR2_I1 <- includeInteraction(myeff_RR2_I1, egoX, sameX, interaction1 = c("lastlist", "partij"),
    name = "fnet")

myeff_RR2_I1 <- includeEffects(myeff_RR2_I1, egoX, interaction1 = c("lastlist"), name = "rtnet")
myeff_RR2_I1 <- includeInteraction(myeff_RR2_I1, egoX, sameX, interaction1 = c("lastlist", "partij"),
    name = "rtnet")

myeff_RR2_I1 <- includeEffects(myeff_RR2_I1, egoX, interaction1 = c("lastlist"), name = "atmnet")
myeff_RR2_I1 <- includeInteraction(myeff_RR2_I1, egoX, sameX, interaction1 = c("lastlist", "partij"),
    name = "atmnet")
myeff_RR2_I1
#>    name   effectName                            include fix   test  initialValue parm effect1
#> 1  fnet   constant fnet rate (period 1)         TRUE    FALSE FALSE    7.22021   0        0  
#> 2  fnet   constant fnet rate (period 2)         TRUE    FALSE FALSE    3.79571   0        0  
#> 3  fnet   fnet: outdegree (density)             TRUE    FALSE FALSE    0.00000   0        0  
#> 4  fnet   fnet: reciprocity                     TRUE    FALSE FALSE    0.00000   0        0  
#> 5  fnet   fnet: transitive triplets             TRUE    FALSE FALSE    0.00000   0        0  
#> 6  fnet   fnet: shared popularity               TRUE    FALSE FALSE    0.00000   1        0  
#> 7  fnet   fnet: indegree - popularity (sqrt)    TRUE    FALSE FALSE    0.00000   0        0  
#> 8  fnet   fnet: outdegree - popularity (sqrt)   TRUE    FALSE FALSE    0.00000   0        0  
#> 9  fnet   fnet: outdegree - activity (sqrt)     TRUE    FALSE FALSE    0.00000   1        0  
#> 10 fnet   fnet: afstand                         TRUE    FALSE FALSE    0.00000   0        0  
#> 11 fnet   fnet: same partij                     TRUE    FALSE FALSE    0.00000   0        0  
#> 12 fnet   fnet: kamerlid2016 alter              TRUE    FALSE FALSE    0.00000   0        0  
#> 13 fnet   fnet: same kamerlid2016               TRUE    FALSE FALSE    0.00000   0        0  
#> 14 fnet   fnet: pleklijst ego                   TRUE    FALSE FALSE    0.00000   0        0  
#> 15 fnet   fnet: partypos abs. difference        TRUE    FALSE FALSE    0.00000   0        0  
#> 16 fnet   fnet: lastlist ego                    TRUE    FALSE FALSE    0.00000   0        0  
#> 17 fnet   fnet: lastlist ego x same partij      TRUE    FALSE FALSE    0.00000   0     4269  
#> 18 atmnet constant atmnet rate (period 1)       TRUE    FALSE FALSE   16.26089   0        0  
#> 19 atmnet constant atmnet rate (period 2)       TRUE    FALSE FALSE    9.17902   0        0  
#> 20 atmnet atmnet: outdegree (density)           TRUE    FALSE FALSE   -1.76137   0        0  
#> 21 atmnet atmnet: reciprocity                   TRUE    FALSE FALSE    0.00000   0        0  
#> 22 atmnet atmnet: transitive triplets           TRUE    FALSE FALSE    0.00000   0        0  
#> 23 atmnet atmnet: shared popularity             TRUE    FALSE FALSE    0.00000   1        0  
#> 24 atmnet atmnet: indegree - popularity (sqrt)  TRUE    FALSE FALSE    0.00000   0        0  
#> 25 atmnet atmnet: outdegree - popularity (sqrt) TRUE    FALSE FALSE    0.00000   0        0  
#> 26 atmnet atmnet: outdegree - activity (sqrt)   TRUE    FALSE FALSE    0.00000   1        0  
#> 27 atmnet atmnet: same partij                   TRUE    FALSE FALSE    0.00000   0        0  
#> 28 atmnet atmnet: d66 alter                     TRUE    FALSE FALSE    0.00000   0        0  
#> 29 atmnet atmnet: gl alter                      TRUE    FALSE FALSE    0.00000   0        0  
#> 30 atmnet atmnet: gl ego                        TRUE    FALSE FALSE    0.00000   0        0  
#> 31 atmnet atmnet: pleklijst alter               TRUE    FALSE FALSE    0.00000   0        0  
#> 32 atmnet atmnet: pleklijst1 alter              TRUE    FALSE FALSE    0.00000   0        0  
#> 33 atmnet atmnet: pleklijst1 ego                TRUE    FALSE FALSE    0.00000   0        0  
#> 34 atmnet atmnet: lastlist ego                  TRUE    FALSE FALSE    0.00000   0        0  
#> 35 atmnet atmnet: lastlist ego x same partij    TRUE    FALSE FALSE    0.00000   0    13850  
#> 36 rtnet  constant rtnet rate (period 1)        TRUE    FALSE FALSE   10.98716   0        0  
#> 37 rtnet  constant rtnet rate (period 2)        TRUE    FALSE FALSE    9.39819   0        0  
#> 38 rtnet  rtnet: outdegree (density)            TRUE    FALSE FALSE   -1.61392   0        0  
#> 39 rtnet  rtnet: reciprocity                    TRUE    FALSE FALSE    0.00000   0        0  
#> 40 rtnet  rtnet: transitive triplets            TRUE    FALSE FALSE    0.00000   0        0  
#> 41 rtnet  rtnet: shared popularity              TRUE    FALSE FALSE    0.00000   1        0  
#> 42 rtnet  rtnet: indegree - popularity (sqrt)   TRUE    FALSE FALSE    0.00000   0        0  
#> 43 rtnet  rtnet: outdegree - popularity (sqrt)  TRUE    FALSE FALSE    0.00000   0        0  
#> 44 rtnet  rtnet: outdegree - activity (sqrt)    TRUE    FALSE FALSE    0.00000   1        0  
#> 45 rtnet  rtnet: afstand                        TRUE    FALSE FALSE    0.00000   0        0  
#> 46 rtnet  rtnet: same partij                    TRUE    FALSE FALSE    0.00000   0        0  
#> 47 rtnet  rtnet: d66 ego                        TRUE    FALSE FALSE    0.00000   0        0  
#> 48 rtnet  rtnet: pvv ego                        TRUE    FALSE FALSE    0.00000   0        0  
#> 49 rtnet  rtnet: kamerlid2016 alter             TRUE    FALSE FALSE    0.00000   0        0  
#> 50 rtnet  rtnet: kamerlid2016 ego               TRUE    FALSE FALSE    0.00000   0        0  
#> 51 rtnet  rtnet: pleklijst alter                TRUE    FALSE FALSE    0.00000   0        0  
#> 52 rtnet  rtnet: pleklijst1 alter               TRUE    FALSE FALSE    0.00000   0        0  
#> 53 rtnet  rtnet: partypos abs. difference       TRUE    FALSE FALSE    0.00000   0        0  
#> 54 rtnet  rtnet: lastlist ego                   TRUE    FALSE FALSE    0.00000   0        0  
#> 55 rtnet  rtnet: lastlist ego x same partij     TRUE    FALSE FALSE    0.00000   0    23431  
#>    effect2
#> 1      0  
#> 2      0  
#> 3      0  
#> 4      0  
#> 5      0  
#> 6      0  
#> 7      0  
#> 8      0  
#> 9      0  
#> 10     0  
#> 11     0  
#> 12     0  
#> 13     0  
#> 14     0  
#> 15     0  
#> 16     0  
#> 17   662  
#> 18     0  
#> 19     0  
#> 20     0  
#> 21     0  
#> 22     0  
#> 23     0  
#> 24     0  
#> 25     0  
#> 26     0  
#> 27     0  
#> 28     0  
#> 29     0  
#> 30     0  
#> 31     0  
#> 32     0  
#> 33     0  
#> 34     0  
#> 35 10243  
#> 36     0  
#> 37     0  
#> 38     0  
#> 39     0  
#> 40     0  
#> 41     0  
#> 42     0  
#> 43     0  
#> 44     0  
#> 45     0  
#> 46     0  
#> 47     0  
#> 48     0  
#> 49     0  
#> 50     0  
#> 51     0  
#> 52     0  
#> 53     0  
#> 54     0  
#> 55 19824

estimate model

myalgorithmRR2 <- sienaAlgorithmCreate(projname = "RR2")

ansRR2_I1 <- siena07(myalgorithmRR2, data = mydata_RR2, effects = myeff_RR2_I1, useCluster = TRUE, nbrNodes = 12,
    initC = TRUE, batch = TRUE)

save(ansRR2_I1, file = paste("ansRR2_I1", ".RData", sep = ""))

Model RR2 - final

The parameters of interest are in red.

Please note, SE are large and that the overall convergence ratio is unsatisfactory. But these results do not provide clear corroborative evidence that the impact of the same-party effect is conditional on whether an MP holds the highest position on the specific election list.

load("ansRR2_I1.RData")


res <- round(fanscsv(ansRR2_I1)[, 1:2], 5)
mcpos <- length(res[, 1])
res <- res[-mcpos, ]
mc <- as.character(round(fanscsv(ansRR2_I1)[mcpos, 1], 3))
row.names(res) <- c("rate 1", "rate 2", "outdegree", "reciprocity", "transitive triplets", "shared popularity",
    "indegree - popularity", " outdegree - popularity", "outdegree - activity", "seating distance (dyad)",
    "same party (dyad)", "incumbancy status (alter)", "same incumbancy status (dyad)", "position on election list (ego)",
    "ideological distance (dyad)", "last on election list", "last on election list * same party", "rate 1",
    "rate 2", "outdegree", "reciprocity", "transitive triplets", "shared popularity", "indegree - popularity",
    "outdegree - popularity", "outdegree - activity ", "same party (dyad)", "party Liberal Democrats (alter)",
    "party GreenLeft (alter)", "party GreenLeft (ego)", "position on election list (alter)", "party leader (alter)",
    "party leader (ego)", "last on election list", "last on election list * same party", "rate 1", "rate 2",
    "outdegree", "reciprocity", "transitive triplets", "shared popularity", "indegree - popularity ",
    "outdegree - popularity", "outdegree - activity ", "seating distance (dyad)", "same party (dyad)",
    "party Liberal Democrats (ego)", "party Freedom Party (ego)", "incumbancy status (alter)", "incumbancy status (ego)",
    "position on election list (alter)", "party leader (alter)", "ideological distance (dyad)", "last on election list",
    "last on election list * same party")

RR2 <- kbl(res, booktabs = TRUE, digits = 3, caption = "Model RR2: including 'last on election list * same party'",
    align = "c") %>%
    kable_classic(full_width = F, html_font = "Cambria") %>%
    kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
    column_spec(column = 1, width = "3in") %>%
    row_spec(c(16, 17, 34, 35, 54, 55), bold = T, color = "white", background = "#D7261E") %>%
    group_rows(index = c(Following = 17, Atmention = 18, Retweets = 20)) %>%
    footnote(general = paste("Overall maximum convergence ratio: ", mc, sep = ""))


RR2
Model RR2: including ‘last on election list * same party’
Estimate Standard Error
Following
rate 1 4.647 0.235
rate 2 2.037 0.131
outdegree -12.784 1.928
reciprocity 0.840 0.122
transitive triplets 0.037 0.007
shared popularity -0.001 0.000
indegree - popularity 0.352 0.062
outdegree - popularity -0.189 0.033
outdegree - activity 1.282 0.266
seating distance (dyad) -0.013 0.008
same party (dyad) 0.920 0.171
incumbancy status (alter) -0.509 0.093
same incumbancy status (dyad) 0.172 0.085
position on election list (ego) 0.533 0.150
ideological distance (dyad) -0.095 0.042
last on election list -1.644 1.706
last on election list * same party -0.197 0.490
Atmention
rate 1 65.434 33.698
rate 2 13.250 0.974
outdegree -4.256 0.165
reciprocity 1.428 0.099
transitive triplets 0.074 0.031
shared popularity -0.014 0.011
indegree - popularity 0.403 0.059
outdegree - popularity -0.099 0.042
outdegree - activity 0.270 0.028
same party (dyad) 0.927 0.056
party Liberal Democrats (alter) -0.081 0.063
party GreenLeft (alter) -0.155 0.087
party GreenLeft (ego) 0.120 0.064
position on election list (alter) -0.012 0.004
party leader (alter) 0.148 0.092
party leader (ego) -0.301 0.104
last on election list 0.154 0.103
last on election list * same party -0.047 0.198
Retweets
rate 1 17.806 1.168
rate 2 16.978 1.217
outdegree -3.980 0.181
reciprocity 0.596 0.085
transitive triplets 0.176 0.025
shared popularity -0.021 0.005
indegree - popularity 0.413 0.045
outdegree - popularity -0.255 0.053
outdegree - activity 0.177 0.026
seating distance (dyad) -0.032 0.007
same party (dyad) 1.341 0.105
party Liberal Democrats (ego) -0.376 0.076
party Freedom Party (ego) -0.104 0.083
incumbancy status (alter) -0.080 0.046
incumbancy status (ego) -0.090 0.048
position on election list (alter) -0.012 0.004
party leader (alter) 0.119 0.082
ideological distance (dyad) -0.032 0.039
last on election list 0.267 0.134
last on election list * same party 0.029 0.177
Note:
Overall maximum convergence ratio: 2.853

Hypothesis 3

Based on Model 1

Test for significance of the difference in party-based segregation in the three Twitter layers based on Model 1.

Hypothesis 3a: Segregation in atmention is larger than in follow. No because…

load("ansM8c.RData")
ans <- ansM8c
p <- ans$pp

## segregation in atmention is larger than in follow
mat <- matrix(0, 1, p)
mat[1, 24] <- -1
mat[1, 11] <- 1
Wald.RSiena(mat, ans)

dif <- sum(mat * ans$theta)
se <- sqrt(mat %*% ans$covtheta %*% t(mat))

print(paste("difference is", round(dif, 3), "with s.e.", round(se, 3), ", t-ratio", round(dif/se, 3)))
#> chi-squared = 1.16, d.f. = 1; one-sided Z = 1.08; two-sided p = 0.281. 
#> [1] "difference is 0.165 with s.e. 0.154 , t-ratio 1.078"

Hypothesis 3b: Segregation in follow is larger than in retweet. No because…

ans <- ansM8c
p <- ans$pp

## segregation in atmention is larger than in follow
mat <- matrix(0, 1, p)
mat[1, 11] <- -1
mat[1, 41] <- 1
Wald.RSiena(mat, ans)

dif <- sum(mat * ans$theta)
se <- sqrt(mat %*% ans$covtheta %*% t(mat))

print(paste("difference is", round(dif, 3), "with s.e.", round(se, 3), ", t-ratio", round(dif/se, 3)))
#> chi-squared = 3.31, d.f. = 1; one-sided Z = 1.82; two-sided p = 0.069. 
#> [1] "difference is 0.302 with s.e. 0.166 , t-ratio 1.818"

Segregation in atmention is larger than in retweet. Yes, because…

ans <- ansM8c
p <- ans$pp

## segregation in atmention is larger than in follow
mat <- matrix(0, 1, p)
mat[1, 24] <- -1
mat[1, 41] <- 1
Wald.RSiena(mat, ans)

dif <- sum(mat * ans$theta)
se <- sqrt(mat %*% ans$covtheta %*% t(mat))

print(paste("difference is", round(dif, 3), "with s.e.", round(se, 3), ", t-ratio", round(dif/se, 3)))
#> chi-squared = 23.89, d.f. = 1; one-sided Z = 4.89; two-sided p < 0.001. 
#> [1] "difference is 0.468 with s.e. 0.096 , t-ratio 4.887"

Based on Model 2

Hypothesis 3a: Segregation in atmention is larger than in follow. No because…

load("ansM10c.RData")
ans <- ansM10c
p <- ans$pp

## segregation in atmention is larger than in follow
mat <- matrix(0, 1, p)
mat[1, 30] <- -1
mat[1, 11] <- 1
Wald.RSiena(mat, ans)

dif <- sum(mat * ans$theta)
se <- sqrt(mat %*% ans$covtheta %*% t(mat))

print(paste("difference is", round(dif, 3), "with s.e.", round(se, 3), ", t-ratio", round(dif/se, 3)))
#> chi-squared = 0.99, d.f. = 1; one-sided Z = 1.00; two-sided p = 0.319. 
#> [1] "difference is 0.165 with s.e. 0.166 , t-ratio 0.997"

Hypothesis 3b: Segregation in follow is larger than in retweet. No because…

ans <- ansM10c
p <- ans$pp

## segregation in atmention is larger than in follow
mat <- matrix(0, 1, p)
mat[1, 11] <- -1
mat[1, 50] <- 1
Wald.RSiena(mat, ans)

dif <- sum(mat * ans$theta)
se <- sqrt(mat %*% ans$covtheta %*% t(mat))

print(paste("difference is", round(dif, 3), "with s.e.", round(se, 3), ", t-ratio", round(dif/se, 3)))
#> chi-squared = 3.14, d.f. = 1; one-sided Z = 1.77; two-sided p = 0.076. 
#> [1] "difference is 0.3 with s.e. 0.17 , t-ratio 1.772"

Segregation in atmention is larger than in retweet. Yes, because…

ans <- ansM10c
p <- ans$pp

## segregation in atmention is larger than in follow
mat <- matrix(0, 1, p)
mat[1, 30] <- -1
mat[1, 50] <- 1
Wald.RSiena(mat, ans)

dif <- sum(mat * ans$theta)
se <- sqrt(mat %*% ans$covtheta %*% t(mat))

print(paste("difference is", round(dif, 3), "with s.e.", round(se, 3), ", t-ratio", round(dif/se, 3)))
#> chi-squared = 19.95, d.f. = 1; one-sided Z = 4.47; two-sided p < 0.001. 
#> [1] "difference is 0.466 with s.e. 0.104 , t-ratio 4.466"

Based on Model 3

Hypothesis 3a: Segregation in atmention is larger than in follow. No/YES because…

load("ansM12.RData")
ans <- ansM12
p <- ans$pp

## segregation in atmention is larger than in follow
mat <- matrix(0, 1, p)
mat[1, 32] <- -1
mat[1, 11] <- 1
Wald.RSiena(mat, ans)

dif <- sum(mat * ans$theta)
se <- sqrt(mat %*% ans$covtheta %*% t(mat))

print(paste("difference is", round(dif, 3), "with s.e.", round(se, 3), ", t-ratio", round(dif/se, 3)))
#> chi-squared = 2.80, d.f. = 1; one-sided Z = 1.67; two-sided p = 0.094. 
#> [1] "difference is 0.348 with s.e. 0.208 , t-ratio 1.675"

Hypothesis 3b: Segregation in follow is larger than in retweet. No because…

ans <- ansM12
p <- ans$pp

## segregation in atmention is larger than in follow
mat <- matrix(0, 1, p)
mat[1, 11] <- -1
mat[1, 52] <- 1
Wald.RSiena(mat, ans)

dif <- sum(mat * ans$theta)
se <- sqrt(mat %*% ans$covtheta %*% t(mat))

print(paste("difference is", round(dif, 3), "with s.e.", round(se, 3), ", t-ratio", round(dif/se, 3)))
#> chi-squared = 2.64, d.f. = 1; one-sided Z = 1.62; two-sided p = 0.104. 
#> [1] "difference is 0.351 with s.e. 0.216 , t-ratio 1.623"

Segregation in atmention is larger than in retweet. Yes, because…

ans <- ansM12
p <- ans$pp

## segregation in atmention is larger than in follow
mat <- matrix(0, 1, p)
mat[1, 30] <- -1
mat[1, 50] <- 1
Wald.RSiena(mat, ans)

dif <- sum(mat * ans$theta)
se <- sqrt(mat %*% ans$covtheta %*% t(mat))

print(paste("difference is", round(dif, 3), "with s.e.", round(se, 3), ", t-ratio", round(dif/se, 3)))
#> chi-squared = 33.36, d.f. = 1; one-sided Z = 5.78; two-sided p < 0.001. 
#> [1] "difference is 0.219 with s.e. 0.038 , t-ratio 5.776"

Time heterogeneity in same party effect

Empty model

myeff <- getEffects(mydata)
myeff_m0 <- myeff

myeff_m0 <- includeEffects(myeff_m0, sameX, interaction1 = "partij", name = "fnet")
myeff_m0 <- includeEffects(myeff_m0, sameX, interaction1 = "partij", name = "rtnet")
myeff_m0 <- includeEffects(myeff_m0, sameX, interaction1 = "partij", name = "atmnet")

# remove reciprocity
myeff_m0 <- includeEffects(myeff_m0, recip, name = "fnet", include = FALSE)
myeff_m0 <- includeEffects(myeff_m0, recip, name = "rtnet", include = FALSE)
myeff_m0 <- includeEffects(myeff_m0, recip, name = "atmnet", include = FALSE)
myeff_m0

# include the time interactions
myeff_m0 <- includeTimeDummy(myeff_m0, sameX, interaction1 = "partij", name = "fnet", timeDummy = "2")
myeff_m0 <- includeTimeDummy(myeff_m0, sameX, interaction1 = "partij", name = "atmnet", timeDummy = "2")
myeff_m0 <- includeTimeDummy(myeff_m0, sameX, interaction1 = "partij", name = "rtnet", timeDummy = "2")
myeff_m0

# estimates
myalgorithm <- sienaAlgorithmCreate(projname = "M0")
ansM0 <- siena07(myalgorithm, data = mydata, effects = myeff_m0, useCluster = TRUE, nbrNodes = 4, initC = TRUE,
    batch = TRUE)
ansM0

save(ansM0, file = paste("ansM0", ".RData", sep = ""))
#> Estimates, standard errors and convergence t-ratios
#> 
#>                                                  Estimate   Standard   Convergence 
#>                                                               Error      t-ratio   
#>    1. rate constant fnet rate (period 1)          3.7021  ( 0.1556   )   -0.0746   
#>    2. rate constant fnet rate (period 2)          1.9633  ( 0.1134   )    0.0065   
#>    3. eval fnet: outdegree (density)             -0.5750  ( 0.0811   )   -0.0140   
#>    4. eval fnet: same partij                      1.4204  ( 0.1244   )    0.0277   
#>    5. eval Dummy2:fnet ego                        0.0000  (     NA   )    0.1094   
#>    6. eval int.  Dummy2:fnet ego x same partij    0.4735  ( 0.2401   )   -0.0357   
#>    7. rate constant atmnet rate (period 1)       22.8623  ( 1.3444   )   -0.0011   
#>    8. rate constant atmnet rate (period 2)        9.3531  ( 0.4912   )   -0.0429   
#>    9. eval atmnet: outdegree (density)           -2.4375  ( 0.0342   )   -0.0181   
#>   10. eval atmnet: same partij                    0.8555  ( 0.0530   )   -0.0228   
#>   11. eval Dummy2:atmnet ego                      0.0000  (     NA   )   11.4569   
#>   12. eval int.  Dummy2:atmnet ego x same partij -1.0104  ( 0.0913   )    0.0150   
#>   13. rate constant rtnet rate (period 1)        12.2384  ( 0.6003   )   -0.0244   
#>   14. rate constant rtnet rate (period 2)        10.8618  ( 0.7101   )    0.0648   
#>   15. eval rtnet: outdegree (density)            -2.8112  ( 0.0458   )   -0.0345   
#>   16. eval rtnet: same partij                     2.1228  ( 0.0558   )   -0.0668   
#>   17. eval Dummy2:rtnet ego                       0.0000  (     NA   )    0.0827   
#>   18. eval int.  Dummy2:rtnet ego x same partij   0.1850  ( 0.0660   )    0.0464   
#> 
#> Overall maximum convergence ratio:    0.1941 
#> 
#> 
#> Total of 2243 iteration steps.

Model 1

load("ansM8c.RData")


tt <- sienaTimeTest(ansM8c, effects = c(11, 24, 41))
# tt tt$EffectTest tt$IndividualTest
plot(tt)

myeff_t <- myeff_m2

myeff_t <- includeTimeDummy(myeff_t, sameX, interaction1 = "partij", name = "fnet", timeDummy = "2")
myeff_t <- includeTimeDummy(myeff_t, sameX, interaction1 = "partij", name = "atmnet", timeDummy = "2")
myeff_t <- includeTimeDummy(myeff_t, sameX, interaction1 = "partij", name = "rtnet", timeDummy = "2")
myeff_t

myalgorithm <- sienaAlgorithmCreate(projname = "M8c_t", nsub = 5, n3 = 5000)
ansM8c_t <- siena07(myalgorithm, data = mydata, prevAns = ansM8c, effects = myeff_t, useCluster = TRUE,
    nbrNodes = 10, initC = TRUE, batch = TRUE)
ansM8c_t
save(ansM8c_t, file = paste("ansM8c_t", ".RData", sep = ""))
load("ansM8c_t.RData")
# xtable.sienaFit(ansM8c_t, file='ansM8c_t.html', type='html', digits=3)


res <- round(fanscsv(ansM8c_t)[c(11, 16, 26, 34, 45, 53), 1:2], 5)

mc <- as.character(round(fanscsv(ansM8c_t)[54, 1], 3))

row.names(res) <- c("same party (dyad)", "time*same party", "same party (dyad)", "time*same party", "same party (dyad)",
    "time*same party")

M4 <- kbl(res, booktabs = TRUE, digits = 3, caption = "Model 4", align = "c") %>%
    kable_classic(full_width = F, html_font = "Cambria") %>%
    kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
    column_spec(column = 1, width = "3in") %>%
    # row_spec(c(11, 24,41), bold = T, color = 'white', background = '#D7261E') %>%
group_rows(index = c(Following = 2, Atmention = 2, Retweets = 2)) %>%
    footnote(general = paste("Overall maximum convergence ratio: ", mc, sep = ""))


M4
Model 4
Estimate Standard Error
Following
same party (dyad) 1.215 0.157
time*same party 0.957 0.278
Atmention
same party (dyad) 0.804 0.060
time*same party -0.448 0.099
Retweets
same party (dyad) 1.386 0.079
time*same party 0.265 0.056
Note:
Overall maximum convergence ratio: 0.149

Model 2


Model 3


References

Jolly, Seth, Ryan Bakker, Liesbet Hooghe, Gary Marks, Jonathan Polk, Jan Rovny, Marco Steenbergen, and Milada Anna Vachudova. 2022. “Chapel Hill Expert Survey Trend File, 1999–2019.” Electoral Studies 75: 102420.
Tolsma, Jochem, and Niels Spierings. (submitted). “Twitter and Divides in the Dutch Parliament: Social and Political Segregation in the Following, @-Mentions and Retweets Networks.” - - (-): –. -.
LS0tDQp0aXRsZTogIlJlcGxpY2F0aW9uIHBhY2thZ2UtUlNpZW5hIg0KYXV0aG9yOiAnW0pvY2hlbSBUb2xzbWFdKGh0dHBzOi8vd3d3LmpvY2hlbXRvbHNtYS5ubCkgLSBSYWRib3VkIFVuaXZlcnNpdHkgLyBVbml2ZXJzaXR5IG9mIEdyb25pbmdlbiwgdGhlIE5ldGhlcmxhbmRzJw0KYmlibGlvZ3JhcGh5OiByZWZlcmVuY2VzLmJpYg0KZGF0ZTogIkxhc3QgY29tcGlsZWQgb24gYHIgZm9ybWF0KFN5cy50aW1lKCksICclQiwgJVknKWAiDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogIHRydWUNCiAgICB0b2NfZmxvYXQ6IHRydWUNCiAgICBudW1iZXJfc2VjdGlvbnM6IGZhbHNlDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgY29kZV9kb3dubG9hZDogeWVzDQotLS0NCg0KDQpgYGB7ciBnbG9iYWxzZXR0aW5ncywgZWNobz1GQUxTRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgcmVzdWx0cz0naGlkZSd9DQpsaWJyYXJ5KGtuaXRyKQ0Kb3B0c19jaHVuayRzZXQodGlkeS5vcHRzPWxpc3Qod2lkdGguY3V0b2ZmPTEwMCksdGlkeT1UUlVFLCB3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSxjb21tZW50ID0gIiM+IiwgY2FjaGU9VFJVRSwgZWNobz1GQUxTRSwgZXZhbD1GQUxTRSwgY2xhc3Muc291cmNlPWMoInRlc3QiKSwgY2xhc3Mub3V0cHV0PWMoInRlc3QyIikpDQpvcHRpb25zKHdpZHRoID0gMTAwKQ0KcmdsOjpzZXR1cEtuaXRyKCkNCmBgYA0KDQpgYGB7ciBjb2xvcml6ZSwgZWNobz1GQUxTRSwgZXZhbD1UUlVFfQ0KY29sb3JpemUgPC0gZnVuY3Rpb24oeCwgY29sb3IpIHsNCiAgaWYgKGtuaXRyOjppc19sYXRleF9vdXRwdXQoKSkgew0KICAgIHNwcmludGYoIlxcdGV4dGNvbG9yeyVzfXslc30iLCBjb2xvciwgeCkNCiAgfSBlbHNlIGlmIChrbml0cjo6aXNfaHRtbF9vdXRwdXQoKSkgew0KICAgIHNwcmludGYoIjxzcGFuIHN0eWxlPSdjb2xvcjogJXM7Jz4lczwvc3Bhbj4iLCBjb2xvciwgDQogICAgICAgICAgICB4KQ0KICB9IGVsc2UgeA0KfQ0KDQpgYGANCg0KYGBge3Iga2xpcHB5LCBlY2hvPUZBTFNFLCBpbmNsdWRlPVRSVUUsIGV2YWw9VFJVRX0NCmtsaXBweTo6a2xpcHB5KHBvc2l0aW9uID0gYygndG9wJywgJ3JpZ2h0JykpDQoja2xpcHB5OjprbGlwcHkoY29sb3IgPSAnZGFya3JlZCcpDQoja2xpcHB5OjprbGlwcHkodG9vbHRpcF9tZXNzYWdlID0gJ0NsaWNrIHRvIGNvcHknLCB0b29sdGlwX3N1Y2Nlc3MgPSAnRG9uZScpDQpgYGANCg0KYGBge2NzcywgZWNobz1GQUxTRX0NCnByZS50ZXN0IHsNCiAgbWF4LWhlaWdodDogMzAwcHg7DQogIG92ZXJmbG93LXk6IGF1dG87DQogIG92ZXJmbG93LXg6IGF1dG87DQogIG1hcmdpbjogMHB4Ow0KfQ0KDQpwcmUudGVzdDIgew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCiAgb3ZlcmZsb3cteTogYXV0bzsNCiAgb3ZlcmZsb3cteDogYXV0bzsNCiAgbWFyZ2luOiAwcHg7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBjb2xvcjogcmdiKDIwMSwgNzYsIDc2KTsNCn0NCg0KDQpoMSwgLmgxLCBoMiwgLmgyLCBoMywgLmgzIHsNCiAgbWFyZ2luLXRvcDogMjRweDsNCn0NCg0KDQpgYGANCg0KDQotLS0gIA0KDQojIEludHJvICANCg0KDQpUaGlzIFt3ZWJzaXRlXShodHRwczovL2pvY2hlbXRvbHNtYS5naXRodWIuaW8vVHdpdHRlci8pIGlzIGEgcmVwbGljYXRpb24gcGFja2FnZSBmb3IgdGhlIHBhcGVyICIqKlR3aXR0ZXIgYW5kIGRpdmlkZXMgaW4gdGhlIER1dGNoIFBhcmxpYW1lbnQ6IFNvY2lhbCBhbmQgUG9saXRpY2FsIFNlZ3JlZ2F0aW9uIGluIHRoZSBmb2xsb3dpbmcsIEAtbWVudGlvbnMgYW5kIHJldHdlZXRzIG5ldHdvcmtzKioiIGJ5IEBUb2xzbWEyMDIxLg0KDQpJdCBjb250YWlucyBSIGNvZGUgdG8gcmVwbGljYXRlIGFsbCBUYWJsZXMvRmlndXJlcy9BcHBlbmRpeCBpbiB0aGUgbWFudXNjcmlwdC4NCg0KVG8gY29weSB0aGUgY29kZSBjbGljayB0aGUgYnV0dG9uIGluIHRoZSB1cHBlciByaWdodCBjb3JuZXIgb2YgdGhlIGNvZGUtY2h1bmtzLg0KDQpVc2UgdGhlIHRvcCBtZW51IHRvIG5hdmlnYXRlIHRvIHRoZSBzZWN0aW9uIG9mIGludGVyZXN0LiANCg0KVGhlIHNvdXJjZSBjb2RlIG9mIHRoaXMgd2Vic2l0ZSBjYW4gYmUgZm91bmQgb24gW0dpdGh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL0pvY2hlbVRvbHNtYS9Ud2l0dGVyKQ0KDQpRdWVzdGlvbnMgY2FuIGJlIGFkZHJlc3NlZCB0byBbSm9jaGVtIFRvbHNtYV0obWFpbHRvOmpvY2hlbS50b2xzbWFAcnUubmwpLg0KDQotLS0gIA0KDQojIyBQYWNrYWdlcyAgDQoNCmBgYHtyIHBhY2thZ2VzLCBlY2hvPVRSVUUsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGV2YWw9VFJVRX0NCiNpbnN0YWxsIGlmIG5lY2Vzc2FyeSANCmlmICghcmVxdWlyZSgidGlkeXZlcnNlIiwgY2hhcmFjdGVyLm9ubHkgPSBUUlVFKSkge2luc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIsIGRlcGVuZGVuY2llcz1UUlVFKX0NCmlmICghcmVxdWlyZSgiZHBseXIiLCBjaGFyYWN0ZXIub25seSA9IFRSVUUpKSB7aW5zdGFsbC5wYWNrYWdlcygiZHBseXIiLCBkZXBlbmRlbmNpZXM9VFJVRSl9DQppZiAoIXJlcXVpcmUoImZvcmVpZ24iLCBjaGFyYWN0ZXIub25seSA9IFRSVUUpKSB7aW5zdGFsbC5wYWNrYWdlcygiZm9yZWlnbiIsIGRlcGVuZGVuY2llcz1UUlVFKX0NCmlmICghcmVxdWlyZSgiaWdyYXBoIiwgY2hhcmFjdGVyLm9ubHkgPSBUUlVFKSkge2luc3RhbGwucGFja2FnZXMoImlncmFwaCIsIGRlcGVuZGVuY2llcz1UUlVFKX0NCmlmICghcmVxdWlyZSgia25pdHIiLCBjaGFyYWN0ZXIub25seSA9IFRSVUUpKSB7aW5zdGFsbC5wYWNrYWdlcygia25pdHIiLCBkZXBlbmRlbmNpZXM9VFJVRSl9DQppZiAoIXJlcXVpcmUoImthYmxlRXh0cmEiLCBjaGFyYWN0ZXIub25seSA9IFRSVUUpKSB7aW5zdGFsbC5wYWNrYWdlcygia2FibGVFeHRyYSIsIGRlcGVuZGVuY2llcz1UUlVFKX0NCmlmICghcmVxdWlyZSgiUlNpZW5hIiwgY2hhcmFjdGVyLm9ubHkgPSBUUlVFKSkge2luc3RhbGwucGFja2FnZXMoIlJTaWVuYSIsIGRlcGVuZGVuY2llcz1UUlVFKX0NCmlmICghcmVxdWlyZSgiaGF2ZW4iLCBjaGFyYWN0ZXIub25seSA9IFRSVUUpKSB7aW5zdGFsbC5wYWNrYWdlcygiaGF2ZW4iLCBkZXBlbmRlbmNpZXM9VFJVRSl9DQoNCiNsb2FkIHBhY2thZ2VzLg0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShmb3JlaWduKQ0KbGlicmFyeShpZ3JhcGgpDQpsaWJyYXJ5KGtuaXRyKQ0KbGlicmFyeShrYWJsZUV4dHJhKQ0KbGlicmFyeShSU2llbmEpDQpsaWJyYXJ5KGhhdmVuKQ0KDQpgYGANCg0KDQotLS0gICANCg0KDQoNCiMjIEN1c3RvbSBmdW5jdGlvbnM6IHR3ZWFraW5nIG91dHB1dA0KDQoNCmBgYHtyLCBlY2hvPVRSVUUsIGV2YWw9VFJVRX0NCmZhbnNjc3YgPC0gZnVuY3Rpb24oYW5zID0gYW5zKSB7DQogIGFuczFfbWF0IDwtIG1hdHJpeChOQSwgbnJvdyA9IGxlbmd0aChhbnMkZWZmZWN0c1ssIDJdKSwgbmNvbCA9IDMpDQogIHJvdy5uYW1lcyhhbnMxX21hdCkgPC0gYW5zJGVmZmVjdHNbLCAyXQ0KICBhbnMxX21hdFssIDFdIDwtIChhbnMkdGhldGEpDQogIGFuczFfbWF0WywgMl0gPC0gKGFucyRzZSkNCiAgYW5zMV9tYXRbLCAzXSA8LSAoYW5zJHRjb252KQ0KICBhbnMxX21hdCA8LSByYmluZChhbnMxX21hdCwgYyhhbnMkdGNvbnYubWF4KSkNCiAgcm93Lm5hbWVzKGFuczFfbWF0KVtsZW5ndGgocm93Lm5hbWVzKGFuczFfbWF0KSldIDwtICJPdmVyYWxsIG1heGltdW0gY29udmVyZ2VuY2UgcmF0aW86Ig0KICBjb2xuYW1lcyhhbnMxX21hdCkgPC0gYygiRXN0aW1hdGUiLCAiU3RhbmRhcmQgRXJyb3IiLCAiQ29udmVyZ2VuY2UgdC1yYXRpbyIpDQogIHJldHVybihhbnMxX21hdCkNCiAgIyBwcmludChhbnMxX21hdCkNCiAgIyB3cml0ZS5jc3YoYW5zMV9tYXQsIGZpbGVuYW1lKQ0KfQ0KDQpgYGANCg0KLS0tICANCg0KIyMgTG9hZCBkYXRhIG9iamVjdHMgey50YWJzZXQgLnRhYnNldC1mYWRlfSAgDQoNCg0KRGF0YSBvYmplY3RzOiAgDQoNCi0gW2tleV0oLi9kYXRhLXByb2Nlc3NlZC9rZXkgbW9lZGVyYmVzdGFuZCAyMDE3MTExNC5zYXYpOiBpbmZvcm1hdGlvbiBvbiBhbGwgcG9saXRpY2lhbnMgb24gZWxlY3Rpb24gbGlzdCAgDQotIFt0d2l0dGVyXSguL2RhdGEtcHJvY2Vzc2VkL3R3aXR0ZXJfMjAxOTA5MTkuUkRhdGEpICANCiAgICAtIGtleWY6IGluZm9ybWF0aW9uIG9uIGFsbCAxNDcgTVBzIHdpdGggdHdpdHRlciBoYW5kbGUgIA0KICAgIC0gbXlkYXRhOiBSU2llbmEgb2JqZWN0IHdpdGggYWxsIGtpbmQgb2YgZ29vZGllcyBpbnNpZGUgIA0KICAgIC0gc2VhdHM6IHNlYXRpbmcgY29vcmRpbmF0ZXMgb2YgSG9QICh1c2VkIGZvciBwbG90dGluZykgIA0KICAgIA0KDQpgYGB7ciBkYXRhLCBlY2hvPVRSVUUsIGV2YWw9VFJVRSwgd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRX0NCiNTVEFQIDE6IHJlYWQgaW4gZGF0YQ0Ka2V5IDwtIHJlYWQuc3BzcygnZGF0YS1wcm9jZXNzZWRcXGtleSBtb2VkZXJiZXN0YW5kIDIwMTcxMTE0LnNhdicsIHVzZS52YWx1ZS5sYWJlbHM9VCwgdG8uZGF0YS5mcmFtZT1UKQ0KDQoNCmxvYWQoImRhdGEtcHJvY2Vzc2VkXFx0d2l0dGVyXzIwMTkwOTE5LlJEYXRhIikNCiNzdHIodHdpdHRlcl8yMDE5MDkxOSwxKQ0Ka2V5ZiA8LSB0d2l0dGVyXzIwMTkwOTE5W1sxXV0NCm15ZGF0YSA8LSB0d2l0dGVyXzIwMTkwOTE5W1syXV0NCnNlYXRzIDwtIHR3aXR0ZXJfMjAxOTA5MTlbWzNdXQ0KDQoNCiNjb25zdHJ1Y3QgdHdvIHNlcGFyYXRlIGRhdGFzZXRzIGZvciBlYWNoIHBlcmlvZC4gTk9UIFVTRUQgSU4gTUFOVVNDUklQVA0KZGVwcyA8LSBteWRhdGEkZGVwdmFycw0KY292YXJpYXRlcyA8LSBteWRhdGEkY0NvdmFycw0KY29keWFkY292YXIgPC0gbXlkYXRhJGR5Y0NvdmFycw0KDQpmbmV0IDwtIHNpZW5hTmV0KGRlcHMkZm5ldFssLDE6Ml0pIA0KYXRtbmV0IDwtIHNpZW5hTmV0KGRlcHMkYXRtbmV0WywsMToyXSkNCnJ0bmV0IDwtIHNpZW5hTmV0KGRlcHMkcnRuZXRbLCwxOjJdKQ0KYWZzdGFuZCA8LSBjb2R5YWRjb3ZhciRhZnN0YW5kDQplZ29oYW5kbGUgPC0gY292YXJpYXRlcyRlZ29oYW5kbGUNCmVnb2lkIDwtIGNvdmFyaWF0ZXMkZWdvaWQNCnBhcnRpaiA8LSBjb3ZhcmlhdGVzJHBhcnRpag0KY29hbGl0aWUgPC0gY292YXJpYXRlcyRjb2FsaXRpZQ0KY2RhIDwtIGNvdmFyaWF0ZXMkY2RhDQpjdSA8LSBjb3ZhcmlhdGVzJGN1DQpkZW5rIDwtIGNvdmFyaWF0ZXMkZGVuaw0KZDY2IDwtIGNvdmFyaWF0ZXMkZDY2DQpmdmQgPC0gY292YXJpYXRlcyRmdmQNCmdsIDwtIGNvdmFyaWF0ZXMkZ2wNCnB2ZGEgPC0gY292YXJpYXRlcyRwdmRhDQpwdmRkIDwtIGNvdmFyaWF0ZXMkcHZkZA0KcHZ2IDwtIGNvdmFyaWF0ZXMkcHZ2DQpzZ3AgPC0gY292YXJpYXRlcyRzZ3ANCnNwIDwtIGNvdmFyaWF0ZXMkc3ANCnZ2ZCA8LSBjb3ZhcmlhdGVzJHZ2ZA0KcGx1cyA8LSBjb3ZhcmlhdGVzJHBsdXMNCmV0aG1pbnogPC0gY292YXJpYXRlcyRldGhtaW56DQp2cm91dyA8LSBjb3ZhcmlhdGVzJHZyb3V3DQpsZnQgPC0gY292YXJpYXRlcyRsZnQNCmthbWVybGlkMjAxNiA8LSBjb3ZhcmlhdGVzJGthbWVybGlkMjAxNg0Ka2FiaW5ldDIwMTYgPC0gY292YXJpYXRlcyRrYWJpbmV0MjAxNg0KcGxla2xpanN0IDwtIGNvdmFyaWF0ZXMkcGxla2xpanN0DQpwbGVrbGlqc3QxIDwtIGNvdmFyaWF0ZXMkcGxla2xpanN0MQ0KDQpteWRhdGExMiA8LSBzaWVuYURhdGFDcmVhdGUoZm5ldCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgYXRtbmV0LCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgcnRuZXQsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBhZnN0YW5kLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgZWdvaGFuZGxlLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgZWdvaWQsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWosIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBjb2FsaXRpZSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgIGNkYSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY3UsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGRlbmssDQogICAgICAgICAgICAgICAgICAgICAgICAgIGQ2NiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZnZkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBnbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHZkYSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHZkZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHZ2LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBzZ3AsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHNwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICB2dmQsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHBsdXMsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBldGhtaW56LA0KICAgICAgICAgICAgICAgICAgICAgICAgICB2cm91dywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGZ0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBrYW1lcmxpZDIwMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGthYmluZXQyMDE2LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBwbGVrbGlqc3QsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHBsZWtsaWpzdDEpDQoNCmZuZXQgPC0gc2llbmFOZXQoZGVwcyRmbmV0WywsMjozXSkgDQphdG1uZXQgPC0gc2llbmFOZXQoZGVwcyRhdG1uZXRbLCwyOjNdKQ0KcnRuZXQgPC0gc2llbmFOZXQoZGVwcyRydG5ldFssLDI6M10pDQoNCm15ZGF0YTIzIDwtIHNpZW5hRGF0YUNyZWF0ZShmbmV0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBhdG1uZXQsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBydG5ldCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgIGFmc3RhbmQsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBlZ29oYW5kbGUsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBlZ29pZCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpaiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgIGNvYWxpdGllLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2RhLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBjdSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuaywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZDY2LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBmdmQsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGdsLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBwdmRhLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBwdmRkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBwdnYsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHNncCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3AsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHZ2ZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1cywgDQogICAgICAgICAgICAgICAgICAgICAgICAgIGV0aG1pbnosDQogICAgICAgICAgICAgICAgICAgICAgICAgIHZyb3V3LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsZnQsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGthbWVybGlkMjAxNiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAga2FiaW5ldDIwMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHBsZWtsaWpzdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcGxla2xpanN0MSkNCg0KDQpgYGANCg0KLS0tICANCg0KIyBFc3RpbWF0ZSBSU2llbmEgbW9kZWxzICB7LnRhYnNldCAudGFic2V0LWZhZGV9IA0KDQojIyBNb2RlbCAwIHsudGFic2V0IC50YWJzZXQtZmFkZX0gDQoNCiMjIyBCYXNpYyBzdHJ1Y3R1cmFsIGVmZmVjdHMgb25seS4gIA0KDQoNCkluY2x1ZGVkIGVmZmVjdHM6ICANCg0KLSB0aHJlZSBkZXBlbmRlbnQgbmV0d29yayB2YXJpYWJsZXMgIA0KLSBkZWdyZWUgKG9uY2Ugd2l0aG91dCBhbmQgb25jZSB3aXRoIHRpbWUgaGV0ZXJvZ2VuZWl0eSkgIA0KLSByZWNpcHJvY2l0eSAgDQotIGluZGVncmVlLXBvcHVsYXJpdHkgKHNxcnQpICANCi0gb3V0ZGVncmVlLWFjdGl2aXR5IChzcXJ0KSAgDQotIG91dGRlZ3JlZS1wb3B1bGFyaXR5IChzcXJ0KSAgDQotIHRyYW5zaXRpdmUgdHJpcGxldHMgb3IgR1dFU1BQICANCi0gc2hhcmVkIHBvcHVsYXJpdHkNCg0KYGBge3Igc3RydWN0dXJhbCBtb2RlbCwgZWNobz1UUlVFfQ0KI3ByaW50MDFSZXBvcnQoIG15ZGF0YSwgbW9kZWxuYW1lPSJUd2l0dGVyIikNCiNsZXQgdXMgaGF2ZSBhIGxvb2sgYXQgYWxsIHBvc3NpYmxlIGVmZmVjdHMNCiNlZmZlY3RzRG9jdW1lbnRhdGlvbigpDQoNCiMgRGVmaW5lIHRoZSBtb2RlbA0KIyANCiMgV2Ugd2lsbCBjb21wYXJlIGEgbW9kZWwgd2l0aCAqdHJhbnNUcmlwKiB2ZXJzdXMgKmd3ZXNwRkYqIGZpcnN0LiANCg0KDQpteWVmZiA8LSBnZXRFZmZlY3RzKCBteWRhdGEgKQ0KbXllZmZfbTEgPC0gbXllZmYNCg0KI2FjY29yZGluZyB0byBzdWdnZXN0aW9uIG9mIHJzaWVuYSBtYW51YWwNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgaW5Qb3BTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dEFjdFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0UG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgdHJhbnNUcmlwLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgY3ljbGUzLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBjeWNsZTMsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgY3ljbGUzLCBuYW1lPSJydG5ldCIgKQ0KDQoNCiNlc3RpbWF0ZXMNCm15YWxnb3JpdGhtIDwtIHNpZW5hQWxnb3JpdGhtQ3JlYXRlKCBwcm9qbmFtZSA9ICdNMScpDQphbnNNMSA8LSBzaWVuYTA3KCBteWFsZ29yaXRobSwgZGF0YSA9IG15ZGF0YSwgZWZmZWN0cyA9IG15ZWZmX20xLCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTQsIGluaXRDPVRSVUUsIGJhdGNoPVRSVUUpDQphbnNNMQ0KDQphbnNNMWIgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTTEsIGVmZmVjdHMgPSBteWVmZl9tMSwgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz04LCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KDQojYW5zTTFiICMjZ29vZCBmaXQuIA0KDQojc2F2ZShhbnNNMWIsIGZpbGU9cGFzdGUoImFuc00xYiIsIi5SRGF0YSIsc2VwPSIiKSkNCg0KYGBgDQoNCmBgYHtyLCBldmFsPVRSVUV9DQpsb2FkKCJhbnNNMWIuUkRhdGEiKQ0KYW5zTTFiDQpgYGANCg0KLS0tICANCg0KIyMjIFRpbWUgaGV0ZXJvZ2VuZWl0eSBpbiBvdXRkZWdyZWUuIA0KDQoNCg0KYGBge3J9DQojIyMgdGltZSBoZXRlcm9nZW5laXR5IGluIG91dGRlZ3JlZSAgDQoNCg0KI2xvYWQoImFuc00xYi5SRGF0YSIpDQojbXllZmZfbTEgPC0gYW5zTTFiJGVmZmVjdHMgI3RoaXMgZG9lcyBub3Qgd29yayB3aXRoIHRpbWUgZHVtbWllcw0KDQpteWVmZl9tMQ0KbXllZmZfbTFfdGQgPC0gaW5jbHVkZVRpbWVEdW1teShteWVmZl9tMSwgZGVuc2l0eSwgbmFtZT0iYXRtbmV0IiwgdGltZUR1bW15PSIyIikNCm15ZWZmX20xX3RkIDwtIGluY2x1ZGVUaW1lRHVtbXkobXllZmZfbTFfdGQsIGRlbnNpdHksIG5hbWU9InJ0bmV0IiwgdGltZUR1bW15PSIyIikNCg0KDQphbnNNMiA8LSBzaWVuYTA3KCBteWFsZ29yaXRobSwgZGF0YSA9IG15ZGF0YSwgcHJldkFucz1hbnNNMWIsIGVmZmVjdHMgPSBteWVmZl9tMV90ZCwgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz04LCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KI2Fuc00yIA0KI3NhdmUoYW5zTTIsIGZpbGU9cGFzdGUoImFuc00yIiwiLlJEYXRhIixzZXA9IiIpKQ0KDQphbnNNMmIgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTTIsIGVmZmVjdHMgPSBteWVmZl9tMV90ZCwgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz04LCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KI2Fuc00yYiANCiNzYXZlKGFuc00yYiwgZmlsZT1wYXN0ZSgiYW5zTTJiIiwiLlJEYXRhIixzZXA9IiIpKQ0KDQpgYGANCg0KYGBge3IsIGV2YWw9VFJVRX0NCmxvYWQoImFuc00yYi5SRGF0YSIpDQphbnNNMmINCmBgYA0KDQpgciBjb2xvcml6ZSgiSW50ZXJwcmV0YXRpb246IiwgInJlZCIpYA0KDQpQbGVhc2UgYmUgYXdhcmUgdGhhdCB3ZSBhcmUgbG9va2luZyBhdCBwZXJpb2QgaW50ZXJhY3Rpb25zOiANCg0KLSBhdG1lbnRpb24gZGVncmVlcyBkZWNyZWFzZWQgZmFzdGVyIGluIHBlcmlvZCAyIHRoYW4gaW4gcGVyaW9kIDEsIGhlbmNlIG5lZ2F0aXZlIGludGVyYWN0aW9uICANCi0gcmV0d2VldCBkZWdyZWVzIGRlY3JlYXNlZCBmYXN0ZXIgaW4gcGVyaW9kIDEgdGhhbiBpbiBwZXJpb2QgMiwgaGVuY2UgcG9zaXRpdmUgaW50ZXJhY3Rpb24gIA0KDQoNCi0tLSAgDQoNCiMjIyBnd2VzcEZGIHZlcnN1cyB0cmFuc1RyaXAgDQoNCg0KYGBge3IsIGV2YWw9RkFMU0UsIGVjaG89VFJVRX0NCm15ZWZmIDwtIGdldEVmZmVjdHMoIG15ZGF0YSApDQpteWVmZl9tMWIgPC0gbXllZmYNCg0KI2FjY29yZGluZyB0byBzdWdnZXN0aW9uIG9mIHJzaWVuYSBtYW51YWwNCm15ZWZmX20xYiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTFiLCBpblBvcFNxcnQsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xYiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTFiLCBpblBvcFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTFiIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMWIsIGluUG9wU3FydCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTFiIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMWIsIG91dEFjdFNxcnQsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xYiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTFiLCBvdXRBY3RTcXJ0LCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xYiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTFiLCBvdXRBY3RTcXJ0LCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMWIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xYiwgb3V0UG9wU3FydCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTFiIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMWIsIG91dFBvcFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTFiIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMWIsIG91dFBvcFNxcnQsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xYiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTFiLCBnd2VzcEZGLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMWIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xYiwgZ3dlc3BGRiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMWIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xYiwgZ3dlc3BGRiwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTMgPC0gbXllZmZfbTFiDQoNCm15YWxnb3JpdGhtIDwtIHNpZW5hQWxnb3JpdGhtQ3JlYXRlKCBwcm9qbmFtZSA9ICdNMScpDQphbnNNMyA8LSBzaWVuYTA3KCBteWFsZ29yaXRobSwgZGF0YSA9IG15ZGF0YSwgZWZmZWN0cyA9IG15ZWZmX20zLCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTgsIGluaXRDPVRSVUUsIGJhdGNoPVRSVUUpDQojYW5zTTMNCiNzYXZlKGFuc00zLCBmaWxlPXBhc3RlKCJhbnNNMyIsIi5SRGF0YSIsc2VwPSIiKSkNCg0KYW5zTTNiIDwtIHNpZW5hMDcoIG15YWxnb3JpdGhtLCBkYXRhID0gbXlkYXRhLCBwcmV2QW5zPWFuc00zLCBlZmZlY3RzID0gbXllZmZfbTEsIHVzZUNsdXN0ZXI9VFJVRSwgbmJyTm9kZXM9OCwgaW5pdEM9VFJVRSwgYmF0Y2g9VFJVRSkNCiNhbnNNM2IgIA0KI3NhdmUoYW5zTTNiLCBmaWxlPXBhc3RlKCJhbnNNM2IiLCIuUkRhdGEiLHNlcD0iIikpDQoNCmBgYA0KDQpgYGB7ciwgZXZhbD1UUlVFfQ0KbG9hZCgiYW5zTTMuUkRhdGEiKQ0KI2Fuc00zDQoNCnJlcyA8LSByb3VuZChmYW5zY3N2KGFuc00zKVstMjUsMToyXSw1KQ0KbWMgPC0gYXMuY2hhcmFjdGVyKHJvdW5kKGZhbnNjc3YoYW5zTTMpWzI1LDFdLDMpKQ0Kcm93Lm5hbWVzKHJlcykgPC0gYygNCiAicmF0ZSAxIiAgLCAgICAgIA0KICJyYXRlIDIiICAgLCAgICAgDQogIm91dGRlZ3JlZSIgICAgICAgICAgLCAgDQogInJlY2lwcm9jaXR5IiAgICAgICAgICwgICAgICAgICAgIA0KICJHV0VTUCIgICwgICAgICAgICAgDQogImluZGVncmVlIC0gcG9wdWxhcml0eSAoc3FydCkiICAgLA0KICAib3V0ZGVncmVlIC0gcG9wdWxhcml0eSAoc3FydCkiICwgDQogIm91dGRlZ3JlZSAtIGFjdGl2aXR5IChzcXJ0KSIgICAgLA0KICJyYXRlIDEiICAsICAgICAgDQogInJhdGUgMiIgICAsICAgICANCiAib3V0ZGVncmVlIiAgICAgICAgICAsICANCiAicmVjaXByb2NpdHkiICAgICAgICAgLCAgICAgICAgICAgDQogIkdXRVNQIiAgLCAgICAgICAgICANCiAiaW5kZWdyZWUgLSBwb3B1bGFyaXR5IChzcXJ0KSIgICAsDQogICJvdXRkZWdyZWUgLSBwb3B1bGFyaXR5IChzcXJ0KSIgLCANCiAib3V0ZGVncmVlIC0gYWN0aXZpdHkgKHNxcnQpIiAgICAsDQogInJhdGUgMSIgICwgICAgICANCiAicmF0ZSAyIiAgICwgICAgIA0KICJvdXRkZWdyZWUiICAgICAgICAgICwgIA0KICJyZWNpcHJvY2l0eSIgICAgICAgICAsICAgICAgICAgICANCiAiR1dFU1AiICAsICAgICAgICAgIA0KICJpbmRlZ3JlZSAtIHBvcHVsYXJpdHkgKHNxcnQpIiAgICwNCiAgIm91dGRlZ3JlZSAtIHBvcHVsYXJpdHkgKHNxcnQpIiAsIA0KICJvdXRkZWdyZWUgLSBhY3Rpdml0eSAoc3FydCkiICAgIA0KKQ0KICANClJSMl9nd2VzcCA8LSBrYmwocmVzLCBib29rdGFicz1UUlVFLCBkaWdpdHM9MywgY2FwdGlvbj0iR1dFU1AiLCBhbGlnbiA9ICJjIikgJT4lDQogIGthYmxlX2NsYXNzaWMoZnVsbF93aWR0aCA9IEYsIGh0bWxfZm9udCA9ICJDYW1icmlhIikgJT4lDQogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJzdHJpcGVkIiwgImhvdmVyIiwgImNvbmRlbnNlZCIsICJyZXNwb25zaXZlIikpICU+JQ0KICBjb2x1bW5fc3BlYyhjb2x1bW4gPSAxLCB3aWR0aCA9ICIzaW4iKSAgICU+JQ0KICBncm91cF9yb3dzKGluZGV4ID0gYygiRm9sbG93aW5nIiA9IDgsICJBdG1lbnRpb24iID0gOCwgIlJldHdlZXRzIiA9IDgpKSAlPiUNCiAgZm9vdG5vdGUoZ2VuZXJhbCA9IHBhc3RlKCJPdmVyYWxsIG1heGltdW0gY29udmVyZ2VuY2UgcmF0aW86ICIsIG1jLCBzZXA9IiIgKSkNCg0KDQpSUjJfZ3dlc3ANCg0KYGBgDQoNCg0KRG9uJ3QgdGhpbmsgaXQgd2lsbCBtYXR0ZXIgbXVjaCB3aGV0aGVyIHdlIGluY2x1ZGUgZ3dlc3BGRiBvciBUcmFuVHJpcC4gDQoNCi0tLSAgDQoNCg0KIyMjIE1vZGVsIDAgLSBmaW5hbCB7LmFjdGl2ZX0NCg0KRmluYWxseSwgd2UgYWxzbyBpbmNsdWRlZCBzaGFyZWRQb3AgdG8gcmVhY2ggTW9kZWwgMA0KDQoNCmBgYHtyLCBlY2hvPVRSVUV9DQpteWVmZiA8LSBnZXRFZmZlY3RzKCBteWRhdGEgKQ0KbXllZmZfbTEgPC0gbXllZmYNCg0KI2FjY29yZGluZyB0byBzdWdnZXN0aW9uIG9mIHJzaWVuYSBtYW51YWwNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgaW5Qb3BTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dEFjdFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0UG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgdHJhbnNUcmlwLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBzaGFyZWRQb3AsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJydG5ldCIgKQ0KDQoNCmxvYWQoImFuc00xYi5SRGF0YSIpDQoNCmFuc000IDwtIHNpZW5hMDcoIG15YWxnb3JpdGhtLCBkYXRhID0gbXlkYXRhLCBwcmV2QW5zPWFuc00xYiwgZWZmZWN0cyA9IG15ZWZmX20xLCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTgsIGluaXRDPVRSVUUsIGJhdGNoPVRSVUUpDQphbnNNNCANCnNhdmUoYW5zTTQsIGZpbGU9cGFzdGUoImFuc000IiwiLlJEYXRhIixzZXA9IiIpKQ0KDQphbnNNNGIgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTTQsIGVmZmVjdHMgPSBteWVmZl9tMSwgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz04LCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KYW5zTTRiDQpzYXZlKGFuc000YiwgZmlsZT1wYXN0ZSgiYW5zTTRiIiwiLlJEYXRhIixzZXA9IiIpKQ0KDQpgYGANCg0KYGBge3IsIGV2YWw9VFJVRX0NCmxvYWQoImFuc000Yi5SRGF0YSIpDQphbnNNNGINCmBgYA0KDQotLS0tICANCg0KIyMgTW9kZWwgMSB7LnRhYnNldCAudGFic2V0LWZhZGV9DQoNCkJhc2VsaW5lIG1vZGVsIHdpdGggY29udHJvbHMgdG8gdGVzdCBIeXBvdGhlc2lzIDEuICANCg0KIyMjIFJlbGV2YW50IHBhcnR5IGR1bW1pZXMgIA0KDQpXZSBjYW5ub3QgaW5jbHVkZSBhbGwgcGFydHkgZHVtbWllcyBhcyBjb3ZhcmlhdGVzIGZvciBlZ28gYW5kIGFsdGVyLiBXZSB3aWxsIHRodXMgZmlyc3QgY2hlY2sgd2hpY2ggcGFydHkgZGV2aWF0ZXMgc2lnbmlmaWNhbnRseSB3aXRoIHJlc3BlY3QgdG8gaW5kZWdyZWUgYW5kIG91dGRlZ3JlZS4gDQoNCkZpcnN0IHRoZSBkZXNjcmlwdGl2ZXMuIA0KDQpgYGB7ciwgZWNobz1UUlVFLCBldmFsPVRSVUV9DQojY2hlY2sgaWYgd2Ugb2JzZXJ2ZSBvdXRkZWdyZWUgZGlmZmVyZW5jZXMgcGVyIHBhcnRpag0KZm5ldCA8LSBteWRhdGEkZGVwdmFycyRmbmV0DQphdG1uZXQgPC0gbXlkYXRhJGRlcHZhcnMkYXRtbmV0DQpydG5ldCA8LSBteWRhdGEkZGVwdmFycyRydG5ldA0KdGVzdGZuZXQgPC0gZm5ldFssLDFdDQp0ZXN0Zm5ldFt0ZXN0Zm5ldD09MTBdIDwtIE5BDQp0ZXN0cnRuZXQgPC0gcnRuZXRbLCwxXQ0KdGVzdHJ0bmV0W3Rlc3RydG5ldD09MTBdIDwtIE5BDQp0ZXN0YXRtbmV0IDwtIGF0bW5ldFssLDFdDQp0ZXN0YXRtbmV0W3Rlc3RhdG1uZXQ9PTEwXSA8LSBOQQ0KDQprZXlmJG91dGRlZ3JlZXNmIDwtIHJvd1N1bXModGVzdGZuZXQsIG5hLnJtPVRSVUUpDQprZXlmJGluZGVncmVlc2YgPC0gY29sU3Vtcyh0ZXN0Zm5ldCwgbmEucm09VFJVRSkNCg0Ka2V5ZiRvdXRkZWdyZWVzcnQgPC0gcm93U3Vtcyh0ZXN0cnRuZXQsIG5hLnJtPVRSVUUpDQprZXlmJGluZGVncmVlc3J0IDwtIGNvbFN1bXModGVzdHJ0bmV0LCBuYS5ybT1UUlVFKQ0KDQprZXlmJG91dGRlZ3JlZXNhdG0gPC0gcm93U3Vtcyh0ZXN0YXRtbmV0LCBuYS5ybT1UUlVFKQ0Ka2V5ZiRpbmRlZ3JlZXNhdG0gPC0gY29sU3Vtcyh0ZXN0YXRtbmV0LCBuYS5ybT1UUlVFKQ0KDQoNCmRlZ3JlZXN1bSA8LSBrZXlmICU+JSANCiAgZ3JvdXBfYnkoUGFydGlqKSAlPiUNCiAgc3VtbWFyaXplKG1lYW5fb2Y9IG1lYW4ob3V0ZGVncmVlc2YsIG5hLnJtPVQpLA0KICAgICAgICAgICAgbWVhbl9pZj0gbWVhbihpbmRlZ3JlZXNmLCBuYS5ybT1UKSwNCiAgICAgICAgICAgIG1lYW5faXJ0PSBtZWFuKG91dGRlZ3JlZXNydCwgbmEucm09VCksDQogICAgICAgICAgICBtZWFuX29ydD0gbWVhbihpbmRlZ3JlZXNydCwgbmEucm09VCksDQogICAgICAgICAgICBtZWFuX2lhdD0gbWVhbihvdXRkZWdyZWVzYXRtLCBuYS5ybT1UKSwNCiAgICAgICAgICAgIG1lYW5fb2F0PSBtZWFuKGluZGVncmVlc2F0bSwgbmEucm09VCksDQogICAgICAgICAgICBjb3VudD0gbigpKSAlPiUNCiAgYXJyYW5nZShkZXNjKGNvdW50KSkgJT4lDQogIHNlbGVjdCghKCJjb3VudCIpKQ0KDQoNCmNvbG5hbWVzKGRlZ3JlZXN1bSkgPC0gYygiUGFydHkiLCAib3V0ZGVncmVlIGZyaWVuZHMiLCAiaW5kZWdyZWUgZnJpZW5kcyIsICJvdXRkZWdyZWUgcmV0d2VldHMiLCAiaW5kZWdyZWUgcmV0d2VldHMiLCAib3V0ZGVncmVlIGF0bWVudGlvbnMiLCAiaW5kZWdyZWUgYXRtZW50aW9ucyIpDQoNCg0KI3dyaXRlX2NzdihkZWdyZWVzdW0sICJkZWdyZWVzdW0uY3N2IikNCmBgYA0KDQpgYGB7ciwgZXZhbD1UUlVFfQ0KDQpkZWdyZWVzdW0gPC0gcmVhZC5jc3YoImRlZ3JlZXN1bS5jc3YiKQ0KZGVncmVlc3VtIDwtIGtibChkZWdyZWVzdW0sIGJvb2t0YWJzPVRSVUUsIGRpZ2l0cz0yLCBjYXB0aW9uPSJtZWFuIGRlZ3JlZSBieSBwYXJ0eSIsIGFsaWduID0gImMiKSAlPiUNCiAga2FibGVfY2xhc3NpYyhmdWxsX3dpZHRoID0gRiwgaHRtbF9mb250ID0gIkNhbWJyaWEiKSAlPiUNCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiLCAiY29uZGVuc2VkIiwgInJlc3BvbnNpdmUiKSkgDQoNCnNjcm9sbF9ib3goZGVncmVlc3VtLCB3aWR0aD0iMTAwJSIsIGhlaWdodD0iNTAwcHgiKQ0KDQpgYGANCg0KTGV0IHVzIHVzZSBhIHNpbXBsZSBPTFMgcmVncmVzc2lvbiB3aXRoIGRldmlhdGlvbiBjb2RpbmcgKGdyYW5kIG1lYW4gaXMgcmVmKSB0byB0ZXN0IGZvciBzaWduaWZpY2FuY2UuDQoNCmBgYHtyLCBlY2hvPVRSVUUsIGV2YWw9VFJVRSwgcmVzdWx0cz0iaG9sZCJ9DQoNCmtleWYkUGFydGlqMiA8LSBhcy5mYWN0b3IoYXMuY2hhcmFjdGVyKGtleWYkUGFydGlqKSkNCmxldmVscyhrZXlmJFBhcnRpajIpDQpjb250cmFzdHMoa2V5ZiRQYXJ0aWoyKSA8LSBjb250ci5zdW0oMTMpICNsZXQgdXMgdXNlIFZWRCBhcyBvbWl0dGVkIHBhcnR5DQoNCnN1bW1hcnkobG0ob3V0ZGVncmVlc2Z+UGFydGlqMiwga2V5ZikpDQpwcmludCgid2hpY2ggcGFydGllcyBkZXZpYXRlIHNpZ25pZmljYW50bHkgb3V0ZGVncmVlc2YiKQ0KbGV2ZWxzKGtleWYkUGFydGlqMilbYygxLCA2LCA5LCAxMCwgMTEpXQ0KDQpzdW1tYXJ5KGxtKGluZGVncmVlc2Z+UGFydGlqMiwga2V5ZikpDQpwcmludCgid2hpY2ggcGFydGllcyBkZXZpYXRlIHNpZ25pZmljYW50bHkgaW5kZWdyZWVzZiIpDQpsZXZlbHMoa2V5ZiRQYXJ0aWoyKVtjKDEwLCAxMSldDQoNCnN1bW1hcnkobG0ob3V0ZGVncmVlc2F0bX5QYXJ0aWoyLCBrZXlmKSkNCnByaW50KCJ3aGljaCBwYXJ0aWVzIGRldmlhdGUgc2lnbmlmaWNhbnRseSBvdXRkZWdyZWVzYXRtIikNCmxldmVscyhrZXlmJFBhcnRpajIpW2MoNCwgNywgMTAsIDEyKV0NCg0Kc3VtbWFyeShsbShpbmRlZ3JlZXNhdG1+UGFydGlqMiwga2V5ZikpDQpwcmludCgid2hpY2ggcGFydGllcyBkZXZpYXRlIHNpZ25pZmljYW50bHkgaW5kZWdyZWVzYXRtIikNCmxldmVscyhrZXlmJFBhcnRpajIpW2MoNCwgNywgMTApXQ0KDQpzdW1tYXJ5KGxtKG91dGRlZ3JlZXNydH5QYXJ0aWoyLCBrZXlmKSkNCnByaW50KCJ3aGljaCBwYXJ0aWVzIGRldmlhdGUgc2lnbmlmaWNhbnRseSBvdXRkZWdyZWVzcnQiKQ0KbGV2ZWxzKGtleWYkUGFydGlqMilbYygxLCA0LCA3LCAxMCldDQoNCnN1bW1hcnkobG0oaW5kZWdyZWVzcnR+UGFydGlqMiwga2V5ZikpDQpwcmludCgid2hpY2ggcGFydGllcyBkZXZpYXRlIHNpZ25pZmljYW50bHkgaW5kZWdyZWVzcnQiKQ0KbGV2ZWxzKGtleWYkUGFydGlqMilbYyg0LCAxMCldDQoNCmBgYA0KDQotLS0gIA0KDQojIyMgTW9kZWwgMSAtIGZpbmFsIHsuYWN0aXZlfQ0KDQoNCmBgYHtyLCBlY2hvPVRSVUV9DQpteWVmZiA8LSBnZXRFZmZlY3RzKCBteWRhdGEgKQ0KbXllZmZfbTEgPC0gbXllZmYNCg0KI2FjY29yZGluZyB0byBzdWdnZXN0aW9uIG9mIHJzaWVuYSBtYW51YWwNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgaW5Qb3BTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dEFjdFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0UG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgdHJhbnNUcmlwLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBzaGFyZWRQb3AsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBteWVmZl9tMQ0KDQojImthbWVybGlkMjAxNiIgInBsZWtsaWpzdCIgICAgInBsZWtsaWpzdDEiDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgYWx0WCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgYWx0WCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGVnb1gsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBlZ29YLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBlZ29YLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBzYW1lWCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgYWx0WCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBhbHRYLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgYWx0WCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBlZ29YLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGVnb1gsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBlZ29YLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZWdvWCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGVnb1gsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGVnb1gsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBhbHRYLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgYWx0WCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgYWx0WCwgbmFtZT0icnRuZXQiICkNCg0KI3RoZXNlIG5lZWQgdG8gYmUgZHJvcHBlZCBkdWUgdG8gY29sbGluZWFyaXR5DQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGRpZmZYLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGRpZmZYLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9InJ0bmV0IiApDQoNCiNhZnN0YW5kDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIFgsIGludGVyYWN0aW9uMT0iYWZzdGFuZCIsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgWCwgaW50ZXJhY3Rpb24xPSJhZnN0YW5kIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIFgsIGludGVyYWN0aW9uMT0iYWZzdGFuZCIsIG5hbWU9InJ0bmV0IiApDQoNCg0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0iZm5uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdnYiLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic3AiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9ImZuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJkZW5rIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iZm5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMiwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJhdG1uZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdnYiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9ImF0bW5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJkZW5rIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNncCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iYXRtbmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImF0bW5ldCIgKSAjcmVmZXJlbnRpZQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJhdG1uZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0icnRuZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0icnRuZXQiICkgI3JlZmVyZW50aWUNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0icnRuZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0icnRuZXQiICkgI3JlZmVyZW50aWUNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0icnRuZXQiICkNCg0KDQpsb2FkKCJhbnNNNGIuUkRhdGEiKQ0KbXlhbGdvcml0aG0gPC0gc2llbmFBbGdvcml0aG1DcmVhdGUoIHByb2puYW1lID0gJ00yJykNCmFuc001IDwtIHNpZW5hMDcoIG15YWxnb3JpdGhtLCBkYXRhID0gbXlkYXRhLCBwcmV2QW5zPWFuc000YiwgZWZmZWN0cyA9IG15ZWZmX20yLCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTgsIGluaXRDPVRSVUUsIGJhdGNoPVRSVUUpDQphbnNNNSANCnNhdmUoYW5zTTUsIGZpbGU9cGFzdGUoImFuc001IiwiLlJEYXRhIixzZXA9IiIpKQ0KDQphbnNNNWIgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTTUsIGVmZmVjdHMgPSBteWVmZl9tMiwgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz04LCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KYW5zTTViIA0Kc2F2ZShhbnNNNWIsIGZpbGU9cGFzdGUoImFuc001YiIsIi5SRGF0YSIsc2VwPSIiKSkNCg0KIyBMZXRzIHRyaW0NCg0KDQpteWVmZiA8LSBnZXRFZmZlY3RzKCBteWRhdGEgKQ0KbXllZmZfbTEgPC0gbXllZmYNCg0KI2FjY29yZGluZyB0byBzdWdnZXN0aW9uIG9mIHJzaWVuYSBtYW51YWwNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgaW5Qb3BTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dEFjdFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0UG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgdHJhbnNUcmlwLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBzaGFyZWRQb3AsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBteWVmZl9tMQ0KDQojImthbWVybGlkMjAxNiIgInBsZWtsaWpzdCIgICAgInBsZWtsaWpzdDEiDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGFsdFgsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGFsdFgsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBlZ29YLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGVnb1gsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGVnb1gsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBzYW1lWCwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBzYW1lWCwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIHNhbWVYLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBhbHRYLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGFsdFgsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBhbHRYLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGVnb1gsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgZWdvWCwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBlZ29YLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZWdvWCwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBlZ29YLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZWdvWCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGFsdFgsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBhbHRYLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBhbHRYLCBuYW1lPSJydG5ldCIgKQ0KDQojdGhlc2UgbmVlZCB0byBiZSBkcm9wcGVkIGR1ZSB0byBjb2xsaW5lYXJpdHkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBkaWZmWCwgbmFtZT0icnRuZXQiICkNCg0KI2Fmc3RhbmQNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgWCwgaW50ZXJhY3Rpb24xPSJhZnN0YW5kIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgWCwgaW50ZXJhY3Rpb24xPSJhZnN0YW5kIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIFgsIGludGVyYWN0aW9uMT0iYWZzdGFuZCIsIG5hbWU9InJ0bmV0IiApDQoNCg0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMiwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJmbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iZm5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdnYiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iZm5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMiwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJhdG1uZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic3AiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJ2dmQiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iYXRtbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNncCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iYXRtbmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImF0bW5ldCIgKSAjcmVmZXJlbnRpZQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJhdG1uZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0icnRuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9InJ0bmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9InJ0bmV0IiApICNyZWZlcmVudGllDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0icnRuZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0icnRuZXQiICkgI3JlZmVyZW50aWUNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0icnRuZXQiICkNCg0KDQoNCmxvYWQoImFuc000Yi5SRGF0YSIpICNzdGFydCBhZ2FpbiBmcm9tIGFuc000Yg0KbXlhbGdvcml0aG0gPC0gc2llbmFBbGdvcml0aG1DcmVhdGUoIHByb2puYW1lID0gJ00zJykNCmFuc002IDwtIHNpZW5hMDcoIG15YWxnb3JpdGhtLCBkYXRhID0gbXlkYXRhLCBwcmV2QW5zPWFuc000YiwgZWZmZWN0cyA9IG15ZWZmX20yLCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTgsIGluaXRDPVRSVUUsIGJhdGNoPVRSVUUpDQphbnNNNiANCnNhdmUoYW5zTTYsIGZpbGU9cGFzdGUoImFuc002IiwiLlJEYXRhIixzZXA9IiIpKQ0KDQphbnNNNmIgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTTYsIGVmZmVjdHMgPSBteWVmZl9tMiwgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz04LCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KYW5zTTZiIA0Kc2F2ZShhbnNNNmIsIGZpbGU9cGFzdGUoImFuc002YiIsIi5SRGF0YSIsc2VwPSIiKSkNCg0KbXllZmYgPC0gZ2V0RWZmZWN0cyggbXlkYXRhICkNCm15ZWZmX20xIDwtIG15ZWZmDQoNCiNhY2NvcmRpbmcgdG8gc3VnZ2VzdGlvbiBvZiByc2llbmEgbWFudWFsDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBpblBvcFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBpblBvcFNxcnQsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0QWN0U3FydCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0QWN0U3FydCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRQb3BTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRQb3BTcXJ0LCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCB0cmFuc1RyaXAsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCB0cmFuc1RyaXAsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHNoYXJlZFBvcCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHNoYXJlZFBvcCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTIgPC0gbXllZmZfbTENCg0KIyJrYW1lcmxpZDIwMTYiICJwbGVrbGlqc3QiICAgICJwbGVrbGlqc3QxIg0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgYWx0WCwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBlZ29YLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBlZ29YLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBzYW1lWCwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgYWx0WCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBhbHRYLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgYWx0WCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBlZ29YLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGVnb1gsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgZWdvWCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGVnb1gsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZWdvWCwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGVnb1gsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgYWx0WCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGFsdFgsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGFsdFgsIG5hbWU9InJ0bmV0IiApDQoNCiN0aGVzZSBuZWVkIHRvIGJlIGRyb3BwZWQgZHVlIHRvIGNvbGxpbmVhcml0eQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBkaWZmWCwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBkaWZmWCwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGRpZmZYLCBuYW1lPSJydG5ldCIgKQ0KDQojYWZzdGFuZA0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBYLCBpbnRlcmFjdGlvbjE9ImFmc3RhbmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBYLCBpbnRlcmFjdGlvbjE9ImFmc3RhbmQiLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgWCwgaW50ZXJhY3Rpb24xPSJhZnN0YW5kIiwgbmFtZT0icnRuZXQiICkNCg0KDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20yLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInBhcnRpaiIsIG5hbWU9ImZuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkZW5rIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iZm5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdnYiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iZm5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMiwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJhdG1uZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic3AiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJ2dmQiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iYXRtbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNncCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iYXRtbmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImF0bW5ldCIgKSAjcmVmZXJlbnRpZQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJhdG1uZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0icnRuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9InJ0bmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9InJ0bmV0IiApICNyZWZlcmVudGllDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0icnRuZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0icnRuZXQiICkgI3JlZmVyZW50aWUNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0icnRuZXQiICkNCg0KDQoNCmxvYWQoImFuc000Yi5SRGF0YSIpICNzdGFydCBhZ2FpbiBmcm9tIGFuc000Yg0KbXlhbGdvcml0aG0gPC0gc2llbmFBbGdvcml0aG1DcmVhdGUoIHByb2puYW1lID0gJ000JykNCmFuc003IDwtIHNpZW5hMDcoIG15YWxnb3JpdGhtLCBkYXRhID0gbXlkYXRhLCBwcmV2QW5zPWFuc000YiwgZWZmZWN0cyA9IG15ZWZmX20yLCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTgsIGluaXRDPVRSVUUsIGJhdGNoPVRSVUUpDQphbnNNNyAjIE92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbzogICAgMC4yNTAxIA0Kc2F2ZShhbnNNNywgZmlsZT1wYXN0ZSgiYW5zTTciLCIuUkRhdGEiLHNlcD0iIikpDQoNCmFuc003YiA8LSBzaWVuYTA3KCBteWFsZ29yaXRobSwgZGF0YSA9IG15ZGF0YSwgcHJldkFucz1hbnNNNywgZWZmZWN0cyA9IG15ZWZmX20yLCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTgsIGluaXRDPVRSVUUsIGJhdGNoPVRSVUUpDQphbnNNN2IgIyBPdmVyYWxsIG1heGltdW0gY29udmVyZ2VuY2UgcmF0aW86ICAgIDAuMjQyMiANCnNhdmUoYW5zTTdiLCBmaWxlPXBhc3RlKCJhbnNNN2IiLCIuUkRhdGEiLHNlcD0iIikpDQoNCmxvYWQoImFuc003Yi5SRGF0YSIpDQoNCmFuc003YyA8LSBzaWVuYTA3KCBteWFsZ29yaXRobSwgZGF0YSA9IG15ZGF0YSwgcHJldkFucz1hbnNNNywgZWZmZWN0cyA9IG15ZWZmX20yLCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTgsIGluaXRDPVRSVUUsIGJhdGNoPVRSVUUpDQphbnNNN2MgDQpzYXZlKGFuc003YywgZmlsZT1wYXN0ZSgiYW5zTTdjIiwiLlJEYXRhIixzZXA9IiIpKQ0KDQojdGhpcmQgdHJpbQ0KDQpteWVmZiA8LSBnZXRFZmZlY3RzKCBteWRhdGEgKQ0KbXllZmZfbTEgPC0gbXllZmYNCg0KI2FjY29yZGluZyB0byBzdWdnZXN0aW9uIG9mIHJzaWVuYSBtYW51YWwNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgaW5Qb3BTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dEFjdFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0UG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgdHJhbnNUcmlwLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBzaGFyZWRQb3AsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBteWVmZl9tMQ0KDQojImthbWVybGlkMjAxNiIgInBsZWtsaWpzdCIgICAgInBsZWtsaWpzdDEiDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGFsdFgsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGFsdFgsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIHNldEVmZmVjdCggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0iZm5ldCIsIGZpeD1UUlVFLCBpbml0aWFsVmFsdWUgPSAtMywgdGVzdD1UUlVFICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBlZ29YLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBlZ29YLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBzYW1lWCwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgYWx0WCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBhbHRYLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgYWx0WCwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgZWdvWCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBlZ29YLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGVnb1gsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBlZ29YLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGVnb1gsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBlZ29YLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGFsdFgsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBhbHRYLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBhbHRYLCBuYW1lPSJydG5ldCIgKQ0KDQojdGhlc2UgbmVlZCB0byBiZSBkcm9wcGVkIGR1ZSB0byBjb2xsaW5lYXJpdHkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBkaWZmWCwgbmFtZT0icnRuZXQiICkNCg0KI2Fmc3RhbmQNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgWCwgaW50ZXJhY3Rpb24xPSJhZnN0YW5kIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgWCwgaW50ZXJhY3Rpb24xPSJhZnN0YW5kIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIFgsIGludGVyYWN0aW9uMT0iYWZzdGFuZCIsIG5hbWU9InJ0bmV0IiApDQoNCg0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMiwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJmbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdnYiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iZm5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNncCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJ2dmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9ImZuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0iYXRtbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdnYiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJhdG1uZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic3AiLCBuYW1lPSJhdG1uZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0iYXRtbmV0IiApICNyZWZlcmVudGllDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9ImF0bW5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMiwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0icnRuZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0icnRuZXQiICkgI3JlZmVyZW50aWUNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0icnRuZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0icnRuZXQiICkgI3JlZmVyZW50aWUNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0icnRuZXQiICkNCg0KDQojIEVzdGltYXRlcw0KDQpsb2FkKCJhbnNNOGMuUkRhdGEiKSAjc3RhcnQgYWdhaW4gZnJvbSBhbnNNNGINCmFuc000Yg0KbXlhbGdvcml0aG0gPC0gc2llbmFBbGdvcml0aG1DcmVhdGUoIHByb2puYW1lID0gJ001JykNCmFuc004IDwtIHNpZW5hMDcoIG15YWxnb3JpdGhtLCBkYXRhID0gbXlkYXRhLCBwcmV2QW5zPWFuc000YiwgZWZmZWN0cyA9IG15ZWZmX20yLCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTgsIGluaXRDPVRSVUUsIGJhdGNoPVRSVUUpDQphbnNNOCANCnNhdmUoYW5zTTgsIGZpbGU9cGFzdGUoImFuc004IiwiLlJEYXRhIixzZXA9IiIpKQ0KDQphbnNNOGIgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTTgsIGVmZmVjdHMgPSBteWVmZl9tMiwgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz04LCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KYW5zTThiIA0Kc2F2ZShhbnNNOGIsIGZpbGU9cGFzdGUoImFuc004YiIsIi5SRGF0YSIsc2VwPSIiKSkNCg0KYW5zTThjIDwtIHNpZW5hMDcoIG15YWxnb3JpdGhtLCBkYXRhID0gbXlkYXRhLCBwcmV2QW5zPWFuc004YiwgZWZmZWN0cyA9IG15ZWZmX20yLCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTgsIGluaXRDPVRSVUUsIGJhdGNoPVRSVUUpDQphbnNNOGMgI092ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbzogICAgMC4yNDcxIA0KDQpzYXZlKGFuc004YywgZmlsZT1wYXN0ZSgiYW5zTThjIiwiLlJEYXRhIixzZXA9IiIpKQ0KYGBgDQoNCmBgYHtyLCBldmFsPVRSVUV9DQpsb2FkKCJhbnNNOGMuUkRhdGEiKQ0KI2Fuc004Yw0KDQojeHRhYmxlLnNpZW5hRml0KGFuc004YywgZmlsZT0iYW5zTThjLmh0bWwiLCB0eXBlPSJodG1sIiwgZGlnaXRzPTMpDQoNCnJlcyA8LSByb3VuZChmYW5zY3N2KGFuc004YylbLTQ4LDE6Ml0sNSkNCm1jIDwtIGFzLmNoYXJhY3Rlcihyb3VuZChmYW5zY3N2KGFuc004YylbNDgsMV0sMykpDQpyb3cubmFtZXMocmVzKSA8LSBjKA0KICJyYXRlIDEiICAsICAgICAgDQogInJhdGUgMiIgICAsICAgICANCiAib3V0ZGVncmVlIiAgICAgICAgICAsICANCiAicmVjaXByb2NpdHkiICAgICAgICAgLCAgICAgICAgICAgDQogInRyYW5zaXRpdmUgdHJpcGxldHMiICAsICAgICAgICAgIA0KICJzaGFyZWQgcG9wdWxhcml0eSIgICAgICwgICAgICAgICANCiAiaW5kZWdyZWUgLSBwb3B1bGFyaXR5IiAgICwNCiAgIiBvdXRkZWdyZWUgLSBwb3B1bGFyaXR5IiAsIA0KICJvdXRkZWdyZWUgLSBhY3Rpdml0eSIgICAgLA0KICJzZWF0aW5nIGRpc3RhbmNlIChkeWFkKSIgICAgICAgICAsICAgICAgICAgICAgICAgDQogInNhbWUgcGFydHkgKGR5YWQpIiAgICAgICAgICAgICAgICAsICAgIA0KImluY3VtYmFuY3kgc3RhdHVzIChhbHRlcikiICAgICAgICAgICwgICANCiJzYW1lIGluY3VtYmFuY3kgc3RhdHVzIChkeWFkKSIgICAgICAgLCAgICAgICANCiJwb3NpdGlvbiBvbiBlbGVjdGlvbiBsaXN0IChlZ28pIiAgICAgICwgICAgICAgICAgICANCiAicmF0ZSAxIiAgICAgICwNCiAicmF0ZSAyIiAgICAgICwNCiJvdXRkZWdyZWUiICAgICAgICAgICwNCiAicmVjaXByb2NpdHkiICAgICAgICAsICAgICAgICAgIA0KICJ0cmFuc2l0aXZlIHRyaXBsZXRzIiAsICAgICAgICAgDQogInNoYXJlZCBwb3B1bGFyaXR5IiAgICAsICAgICAgICANCiAiaW5kZWdyZWUgLSBwb3B1bGFyaXR5IiAsDQogIm91dGRlZ3JlZSAtIHBvcHVsYXJpdHkiLA0KIm91dGRlZ3JlZSAtIGFjdGl2aXR5ICIgICwNCiAic2FtZSBwYXJ0eSAoZHlhZCkiICAgICAgICAgICAgLCAgICAgIA0KInBhcnR5IExpYmVyYWwgRGVtb2NyYXRzIChhbHRlcikiLCAgICAgICAgICAgICAgICAgICAgDQoicGFydHkgR3JlZW5MZWZ0IChhbHRlcikiICAgICAgICAgLCAgICAgICAgICAgIA0KICJwYXJ0eSBHcmVlbkxlZnQgKGVnbykiICAgICAgICAgICAsICAgICAgICAgICAgDQogInBvc2l0aW9uIG9uIGVsZWN0aW9uIGxpc3QgKGFsdGVyKSIsICAgICAgICAgICAgICANCiJwYXJ0eSBsZWFkZXIgKGFsdGVyKSIgICAgICAgICAgICAgLA0KICJwYXJ0eSBsZWFkZXIgKGVnbykiICAgICAgICAgICAgICAgLA0KICJyYXRlIDEiICAgICAgICwNCiAicmF0ZSAyIiAgICAgICAsDQoib3V0ZGVncmVlIiAgICAgICAgICAgLA0KInJlY2lwcm9jaXR5IiAgICAgICAgICAsICAgICAgICAgDQoidHJhbnNpdGl2ZSB0cmlwbGV0cyIgICAsICAgICAgICANCiJzaGFyZWQgcG9wdWxhcml0eSIgICAgICAsICAgICAgIA0KImluZGVncmVlIC0gcG9wdWxhcml0eSAiLCAgDQoib3V0ZGVncmVlIC0gcG9wdWxhcml0eSIsIA0KIm91dGRlZ3JlZSAtIGFjdGl2aXR5ICIgICAsDQoic2VhdGluZyBkaXN0YW5jZSAoZHlhZCkiICAgICAgICAsICAgICAgICAgICAgICAgDQogInNhbWUgcGFydHkgKGR5YWQpIiAgICAgICAgICAgICAgLCAgICAgDQogInBhcnR5IExpYmVyYWwgRGVtb2NyYXRzIChlZ28pIiAgICwgICAgICAgICAgICAgICAgICAgIA0KICJwYXJ0eSBGcmVlZG9tIFBhcnR5IChlZ28pIiAgICAgICAgLCAgICAgICAgICAgICAgIA0KICJpbmN1bWJhbmN5IHN0YXR1cyAoYWx0ZXIpIiAgICAgICAgICwgICANCiAiaW5jdW1iYW5jeSBzdGF0dXMgKGVnbykiICAgICAgICAgICAgLCAgDQogInBvc2l0aW9uIG9uIGVsZWN0aW9uIGxpc3QgKGFsdGVyKSIgICAsICAgICAgICAgICAgDQoicGFydHkgbGVhZGVyIChhbHRlcikiDQopDQogIA0KYXNtYXRrYWJsZSA8LSBrYmwocmVzLCBib29rdGFicz1UUlVFLCBkaWdpdHM9MywgY2FwdGlvbj0iTW9kZWwgMSIsIGFsaWduID0gImMiKSAlPiUNCiAga2FibGVfY2xhc3NpYyhmdWxsX3dpZHRoID0gRiwgaHRtbF9mb250ID0gIkNhbWJyaWEiKSAlPiUNCiAga2FibGVfc3R5bGluZyhib290c3RyYXBfb3B0aW9ucyA9IGMoInN0cmlwZWQiLCAiaG92ZXIiLCAiY29uZGVuc2VkIiwgInJlc3BvbnNpdmUiKSkgJT4lDQogIGNvbHVtbl9zcGVjKGNvbHVtbiA9IDEsIHdpZHRoID0gIjNpbiIpICAgJT4lDQogIHJvd19zcGVjKGMoMTEsIDI0LDQxKSwgYm9sZCA9IFQsIGNvbG9yID0gIndoaXRlIiwgYmFja2dyb3VuZCA9ICIjRDcyNjFFIikgJT4lDQogIGdyb3VwX3Jvd3MoaW5kZXggPSBjKCJGb2xsb3dpbmciID0gMTQsICJBdG1lbnRpb24iID0gMTUsICJSZXR3ZWV0cyIgPSAxOCkpICU+JQ0KICBmb290bm90ZShnZW5lcmFsID0gcGFzdGUoIk92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbzogIiwgbWMsIHNlcD0iIiApKQ0KDQoNCmFzbWF0a2FibGUNCg0KDQoNCg0KYGBgDQoNCi0tLSAgDQoNCg0KIyMgTW9kZWwgMiAgey5hY3RpdmV9DQoNClRvIHdoYXQgZXh0ZW50IGRvIHdlIG9ic2VydmUgc29jaWFsIGluYnJlZWRpbmcgaG9tb3BoaWx5IGFuZCB0byB3aGF0IGV4dGVudCBkb2VzIHRoaXMgZXhwbGFpbiB0aGUgaW1wYWN0IG9mIHRoZSBzYW1lLXBhcnR5IHZhcmlhYmxlIChIeXBvdGhlc2VzIDJhIGFuZCAyYikgDQoNCmBgYHtyLCBlY2hvPVRSVUV9DQpteWVmZiA8LSBnZXRFZmZlY3RzKCBteWRhdGEgKQ0KbXllZmZfbTEgPC0gbXllZmYNCg0KI2FjY29yZGluZyB0byBzdWdnZXN0aW9uIG9mIHJzaWVuYSBtYW51YWwNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgaW5Qb3BTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dEFjdFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0UG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgdHJhbnNUcmlwLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBzaGFyZWRQb3AsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBteWVmZl9tMQ0KDQojImthbWVybGlkMjAxNiIgInBsZWtsaWpzdCIgICAgInBsZWtsaWpzdDEiDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGFsdFgsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGFsdFgsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIHNldEVmZmVjdCggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0iZm5ldCIsIGZpeD1UUlVFLCBpbml0aWFsVmFsdWUgPSAtMywgdGVzdD1UUlVFICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBlZ29YLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBlZ29YLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBzYW1lWCwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgYWx0WCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBhbHRYLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgYWx0WCwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgZWdvWCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBlZ29YLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGVnb1gsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBlZ29YLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGVnb1gsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBlZ29YLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGFsdFgsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBhbHRYLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBhbHRYLCBuYW1lPSJydG5ldCIgKQ0KDQojdGhlc2UgbmVlZCB0byBiZSBkcm9wcGVkIGR1ZSB0byBjb2xsaW5lYXJpdHkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBkaWZmWCwgbmFtZT0icnRuZXQiICkNCg0KI2Fmc3RhbmQNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgWCwgaW50ZXJhY3Rpb24xPSJhZnN0YW5kIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgWCwgaW50ZXJhY3Rpb24xPSJhZnN0YW5kIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIFgsIGludGVyYWN0aW9uMT0iYWZzdGFuZCIsIG5hbWU9InJ0bmV0IiApDQoNCg0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMiwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJmbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdnYiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iZm5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNncCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJ2dmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9ImZuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0iYXRtbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdnYiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJhdG1uZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic3AiLCBuYW1lPSJhdG1uZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0iYXRtbmV0IiApICNyZWZlcmVudGllDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9ImF0bW5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMiwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0icnRuZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0icnRuZXQiICkgI3JlZmVyZW50aWUNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0icnRuZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0icnRuZXQiICkgI3JlZmVyZW50aWUNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTMgPC0gbXllZmZfbTINCg0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZyb3V3IiwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJ2cm91dyIsIG5hbWU9ImZuZXQiICkNCg0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJ2cm91dyIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZyb3V3IiwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJhdG1uZXQiICkNCg0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFic0RpZmZYICwgaW50ZXJhY3Rpb24xID0gImxmdCIsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAibGZ0IiwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJsZnQiLCBuYW1lPSJmbmV0IiApDQoNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhYnNEaWZmWCAsIGludGVyYWN0aW9uMSA9ICJsZnQiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJsZnQiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJsZnQiLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWJzRGlmZlggLCBpbnRlcmFjdGlvbjEgPSAibGZ0IiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgZWdvWCwgaW50ZXJhY3Rpb24xID0gImxmdCIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJsZnQiLCBuYW1lPSJhdG1uZXQiICkNCg0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAiZXRobWlueiIsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZXRobWlueiIsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZXRobWlueiIsIG5hbWU9ImZuZXQiICkNCg0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAiZXRobWlueiIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgZWdvWCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJldGhtaW56IiwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAiZXRobWlueiIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJldGhtaW56IiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWx0WCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJhdG1uZXQiICkNCg0KDQoNCiMgRXN0aW1hdGVzDQoNCmxvYWQoImFuc004Yy5SRGF0YSIpIA0KDQpteWFsZ29yaXRobSA8LSBzaWVuYUFsZ29yaXRobUNyZWF0ZSggcHJvam5hbWUgPSAnTTknKQ0KYW5zTTkgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTThjLCBlZmZlY3RzID0gbXllZmZfbTMsIHVzZUNsdXN0ZXI9VFJVRSwgbmJyTm9kZXM9OCwgaW5pdEM9VFJVRSwgYmF0Y2g9VFJVRSkNCmFuc005IA0Kc2F2ZShhbnNNOSwgZmlsZT1wYXN0ZSgiYW5zTTkiLCIuUkRhdGEiLHNlcD0iIikpDQoNCmFuc005YiA8LSBzaWVuYTA3KCBteWFsZ29yaXRobSwgZGF0YSA9IG15ZGF0YSwgcHJldkFucz1hbnNNOSwgZWZmZWN0cyA9IG15ZWZmX20zLCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTgsIGluaXRDPVRSVUUsIGJhdGNoPVRSVUUpDQphbnNNOWIgDQpzYXZlKGFuc005YiwgZmlsZT1wYXN0ZSgiYW5zTTliIiwiLlJEYXRhIixzZXA9IiIpKQ0KDQphbnNNOWMgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTTliLCBlZmZlY3RzID0gbXllZmZfbTMsIHVzZUNsdXN0ZXI9VFJVRSwgbmJyTm9kZXM9OCwgaW5pdEM9VFJVRSwgYmF0Y2g9VFJVRSkNCmFuc005YyANCg0Kc2F2ZShhbnNNOWMsIGZpbGU9cGFzdGUoImFuc005YyIsIi5SRGF0YSIsc2VwPSIiKSkNCg0KIyBUcmltIHNvY2lhbCBpbmJyZWVkaW5nIGhvbW9waGlseSANCg0KIyBPbmx5IGVnbyBhbHRlci4gd2UgbGVhdmUgZHlhZCBpbi4gDQojIE5vdGUsIHdlIG5vdyBhbHNvIGV4Y2x1ZGUgcnRuZXQ6a2FtZXJsaWQyMDE2IGFsdGVyDQojIA0KIyBFZmZlY3RzIA0KDQpteWVmZiA8LSBnZXRFZmZlY3RzKCBteWRhdGEgKQ0KbXllZmZfbTEgPC0gbXllZmYNCg0KI2FjY29yZGluZyB0byBzdWdnZXN0aW9uIG9mIHJzaWVuYSBtYW51YWwNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgaW5Qb3BTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dEFjdFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0UG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgdHJhbnNUcmlwLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBzaGFyZWRQb3AsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBteWVmZl9tMQ0KDQojImthbWVybGlkMjAxNiIgInBsZWtsaWpzdCIgICAgInBsZWtsaWpzdDEiDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGFsdFgsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGVnb1gsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBzZXRFZmZlY3QoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGVnb1gsIG5hbWU9ImZuZXQiLCBmaXg9VFJVRSwgaW5pdGlhbFZhbHVlID0gLTMsIHRlc3Q9VFJVRSApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIHNhbWVYLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIHNhbWVYLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGFsdFgsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgYWx0WCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGFsdFgsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGVnb1gsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgZWdvWCwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBlZ29YLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZWdvWCwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBlZ29YLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZWdvWCwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBhbHRYLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgYWx0WCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgYWx0WCwgbmFtZT0icnRuZXQiICkNCg0KI3RoZXNlIG5lZWQgdG8gYmUgZHJvcHBlZCBkdWUgdG8gY29sbGluZWFyaXR5DQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGRpZmZYLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGRpZmZYLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9InJ0bmV0IiApDQoNCiNhZnN0YW5kDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIFgsIGludGVyYWN0aW9uMT0iYWZzdGFuZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIFgsIGludGVyYWN0aW9uMT0iYWZzdGFuZCIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBYLCBpbnRlcmFjdGlvbjE9ImFmc3RhbmQiLCBuYW1lPSJydG5ldCIgKQ0KDQoNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0iZm5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNncCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJ2dmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9ImZuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJkZW5rIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic3AiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJmbmV0IiApDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20yLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInBhcnRpaiIsIG5hbWU9ImF0bW5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkZW5rIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic3AiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJ2dmQiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iYXRtbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNncCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iYXRtbmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImF0bW5ldCIgKSAjcmVmZXJlbnRpZQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJhdG1uZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0icnRuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9InJ0bmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9InJ0bmV0IiApICNyZWZlcmVudGllDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJkZW5rIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9InJ0bmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9InJ0bmV0IiApICNyZWZlcmVudGllDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20zIDwtIG15ZWZmX20yDQoNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInZyb3V3IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZyb3V3IiwgbmFtZT0iZm5ldCIgKQ0KDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJ2cm91dyIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZyb3V3IiwgbmFtZT0icnRuZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJ2cm91dyIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZyb3V3IiwgbmFtZT0iYXRtbmV0IiApDQoNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhYnNEaWZmWCAsIGludGVyYWN0aW9uMSA9ICJsZnQiLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgZWdvWCwgaW50ZXJhY3Rpb24xID0gImxmdCIsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAibGZ0IiwgbmFtZT0iZm5ldCIgKQ0KDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWJzRGlmZlggLCBpbnRlcmFjdGlvbjEgPSAibGZ0IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgZWdvWCwgaW50ZXJhY3Rpb24xID0gImxmdCIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWx0WCwgaW50ZXJhY3Rpb24xID0gImxmdCIsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhYnNEaWZmWCAsIGludGVyYWN0aW9uMSA9ICJsZnQiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgZWdvWCwgaW50ZXJhY3Rpb24xID0gImxmdCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAibGZ0IiwgbmFtZT0iYXRtbmV0IiApDQoNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJldGhtaW56IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZXRobWlueiIsIG5hbWU9ImZuZXQiICkNCg0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAiZXRobWlueiIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgZWdvWCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZXRobWlueiIsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgZWdvWCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWx0WCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJhdG1uZXQiICkNCg0KDQojIEVzdGltYXRlcw0KDQpsb2FkKCJhbnNNOGMuUkRhdGEiKSANCg0KbXlhbGdvcml0aG0gPC0gc2llbmFBbGdvcml0aG1DcmVhdGUoIHByb2puYW1lID0gJ00xMCcpDQphbnNNMTAgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTThjLCBlZmZlY3RzID0gbXllZmZfbTMsIHVzZUNsdXN0ZXI9VFJVRSwgbmJyTm9kZXM9OCwgaW5pdEM9VFJVRSwgYmF0Y2g9VFJVRSkNCmFuc00xMCANCnNhdmUoYW5zTTEwLCBmaWxlPXBhc3RlKCJhbnNNMTAiLCIuUkRhdGEiLHNlcD0iIikpDQoNCmFuc00xMGIgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTTEwLCBlZmZlY3RzID0gbXllZmZfbTMsIHVzZUNsdXN0ZXI9VFJVRSwgbmJyTm9kZXM9OCwgaW5pdEM9VFJVRSwgYmF0Y2g9VFJVRSkNCmFuc00xMGIgDQpzYXZlKGFuc00xMGIsIGZpbGU9cGFzdGUoImFuc00xMGIiLCIuUkRhdGEiLHNlcD0iIikpDQoNCiNzd2l0Y2hpbmcgdG8gZGlmZmVyZW50IGNvbXB1dGVyDQoNCmxvYWQoImFuc00xMGMuUkRhdGEiKSANCmFuc00xMGINCmFuc00xMGMgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTTEwYiwgZWZmZWN0cyA9IG15ZWZmX20zLCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTEyLCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KYW5zTTEwYyAjIE92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbzogICAgMC4yNTI4IA0KDQpzYXZlKGFuc00xMGMsIGZpbGU9cGFzdGUoImFuc00xMGMiLCIuUkRhdGEiLHNlcD0iIikpDQoNCmFuc00xMGQgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTTEwYywgZWZmZWN0cyA9IG15ZWZmX20zLCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTEwLCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KYW5zTTEwZCANCg0Kc2F2ZShhbnNNMTBkLCBmaWxlPXBhc3RlKCJhbnNNMTBkIiwiLlJEYXRhIixzZXA9IiIpKQ0KDQpgYGANCg0KYGBge3IsIGVjaG89RkFMU0V9DQpteWFsZ29yaXRobSA8LSBzaWVuYUFsZ29yaXRobUNyZWF0ZSggcHJvam5hbWUgPSAnUlIyJywgbjMgPSAzMDAwKQ0KYW5zUlIyIDwtIHNpZW5hMDcoIG15YWxnb3JpdGhtLCBkYXRhID0gbXlkYXRhLCBwcmV2QW5zPWFuc00xMGMsIGVmZmVjdHMgPSBteWVmZl9tMywgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz0xMCwgaW5pdEM9VFJVRSwgYmF0Y2g9VFJVRSkNCmFuc1JSMg0KI3NhdmUoYW5zUlIyLCBmaWxlPXBhc3RlKCJhbnNSUjIiLCIuUkRhdGEiLHNlcD0iIikpDQpgYGANCg0KDQpgYGB7ciwgZXZhbD1UUlVFfQ0KbG9hZCgiYW5zUlIyLlJEYXRhIikNCiNhbnNSUjINCg0KcmVzIDwtIHJvdW5kKGZhbnNjc3YoYW5zUlIyKVstNjMsMToyXSw1KQ0KbWMgPC0gYXMuY2hhcmFjdGVyKHJvdW5kKGZhbnNjc3YoYW5zUlIyKVs2MywxXSwzKSkNCnJvdy5uYW1lcyhyZXMpIDwtIGMoDQogInJhdGUgMSIgICwgICAgICANCiAicmF0ZSAyIiAgICwgICAgIA0KICJvdXRkZWdyZWUiICAgICAgICAgICwgIA0KICJyZWNpcHJvY2l0eSIgICAgICAgICAsICAgICAgICAgICANCiAidHJhbnNpdGl2ZSB0cmlwbGV0cyIgICwgICAgICAgICAgDQogInNoYXJlZCBwb3B1bGFyaXR5IiAgICAgLCAgICAgICAgIA0KICJpbmRlZ3JlZSAtIHBvcHVsYXJpdHkgKHNxcnQpIiAgICwNCiAgIm91dGRlZ3JlZSAtIHBvcHVsYXJpdHkgKHNxcnQpIiAsIA0KICJvdXRkZWdyZWUgLSBhY3Rpdml0eSAoc3FydCkiICAgICwNCiAic2VhdGluZyBkaXN0YW5jZSAoZHlhZCkiICAgICAgICAgLCAgICAgICAgICAgICAgIA0KICJzYW1lIHBhcnR5IChkeWFkKSIgICAgICAgICAgICAgICAgLA0KICJzYW1lIGV0aG5pYyBtaW5vcml0eSBzdGF0dXMgKGR5YWQpIiAsIA0KICJ3b21hbiAoYWx0ZXIpIiwgDQogInNhbWUgc2V4IChkeWFkKSIsDQogImFnZSAoYWx0ZXIpIiwgDQogImFnZSAoZWdvKSIsDQogImFic29sdXRlIGRpZmZlcmVuY2UgYWdlIChkeWFkKSIsDQoiaW5jdW1iYW5jeSBzdGF0dXMgKGFsdGVyKSIgICAgICAgICAgLCAgIA0KInNhbWUgaW5jdW1iYW5jeSBzdGF0dXMgKGR5YWQpIiAgICAgICAsICAgICAgIA0KInBvc2l0aW9uIG9uIGVsZWN0aW9uIGxpc3QgKGVnbykiICAgICAgLCAgICAgICAgICAgIA0KICJyYXRlIDEiICAgICAgLA0KICJyYXRlIDIiICAgICAgLA0KIm91dGRlZ3JlZSIgICAgICAgICAgLA0KICJyZWNpcHJvY2l0eSIgICAgICAgICwgICAgICAgICAgDQogInRyYW5zaXRpdmUgdHJpcGxldHMiICwgICAgICAgICANCiAic2hhcmVkIHBvcHVsYXJpdHkiICAgICwgICAgICAgIA0KICJpbmRlZ3JlZSAtIHBvcHVsYXJpdHkgKHNxcnQpIiAsDQogIm91dGRlZ3JlZSAtIHBvcHVsYXJpdHkgKHNxcnQpIiwNCiJvdXRkZWdyZWUgLSBhY3Rpdml0eSAoc3FydCkiICAsDQogInNhbWUgcGFydHkgKGR5YWQpIiAgICAgICAgICAgICwgICAgICANCiJwYXJ0eSBMaWJlcmFsIERlbW9jcmF0cyAoYWx0ZXIpIiwgICAgICAgICAgICAgICAgICAgIA0KInBhcnR5IEdyZWVuTGVmdCAoYWx0ZXIpIiAgICAgICAgICwgICAgICAgICAgICANCiAicGFydHkgR3JlZW5MZWZ0IChlZ28pIiAgICAgICAgICAgLA0KInNhbWUgZXRobmljIG1pbm9yaXR5IHN0YXR1cyAoZHlhZCkiLA0KInNhbWUgc2V4IChkeWFkKSIsDQoiYWJzb2x1dGUgZGlmZmVyZW5jZSBhZ2UgKGR5YWQpIiwNCiAicG9zaXRpb24gb24gZWxlY3Rpb24gbGlzdCAoYWx0ZXIpIiwgICAgICAgICAgICAgIA0KInBhcnR5IGxlYWRlciAoYWx0ZXIpIiAgICAgICAgICAgICAsDQogInBhcnR5IGxlYWRlciAoZWdvKSIgICAgICAgICAgICAgICAsDQogInJhdGUgMSIgICAgICAgLA0KICJyYXRlIDIiICAgICAgICwNCiJvdXRkZWdyZWUiICAgICAgICAgICAsDQoicmVjaXByb2NpdHkiICAgICAgICAgICwgICAgICAgICANCiJ0cmFuc2l0aXZlIHRyaXBsZXRzIiAgICwgICAgICAgIA0KInNoYXJlZCBwb3B1bGFyaXR5IiAgICAgICwgICAgICAgDQoiaW5kZWdyZWUgLSBwb3B1bGFyaXR5IChzcXJ0KSIsICANCiJvdXRkZWdyZWUgLSBwb3B1bGFyaXR5IChzcXJ0KSIsIA0KIm91dGRlZ3JlZSAtIGFjdGl2aXR5IChzcXJ0KSIgICAsDQoic2VhdGluZyBkaXN0YW5jZSAoZHlhZCkiICAgICAgICAsICAgICAgICAgICAgICAgDQogInNhbWUgcGFydHkgKGR5YWQpIiAgICAgICAgICAgICAgLCAgICAgDQogInBhcnR5IExpYmVyYWwgRGVtb2NyYXRzIChlZ28pIiAgICwgICAgICAgICAgICAgICAgICAgIA0KICJwYXJ0eSBGcmVlZG9tIFBhcnR5IChlZ28pIiAgICAgICAgLA0KImV0aG5pYyBtaW5vcml0eSBzdGF0dXMgKGVnbykiLCANCiJzYW1lIGV0aG5pYyBtaW5vcml0eSBzdGF0dXMgKGR5YWQpIiwgDQoid29tYW4gKGFsdGVyKSIsDQoid29tZW4gKGVnbykiLCANCiJzYW1lIHNleCAoZHlhZCkiLCANCiJhZ2UgKGFsdGVyKSIsDQoiYWJzb2x1dGUgZGlmZmVyZW5jZSBhZ2UgKGR5YWQpIiwNCiAiaW5jdW1iYW5jeSBzdGF0dXMgKGVnbykiICAgICAgICAgICAgLCAgDQogInBvc2l0aW9uIG9uIGVsZWN0aW9uIGxpc3QgKGFsdGVyKSIgICAsICAgICAgICAgICAgDQoicGFydHkgbGVhZGVyIChhbHRlcikiDQopDQogIA0KU01FIDwtIGtibChyZXMsIGJvb2t0YWJzPVRSVUUsIGRpZ2l0cz0zLCBjYXB0aW9uPSJTTSBFOiBNb2RlbCAyIiwgYWxpZ24gPSAiYyIpICU+JQ0KICBrYWJsZV9jbGFzc2ljKGZ1bGxfd2lkdGggPSBGLCBodG1sX2ZvbnQgPSAiQ2FtYnJpYSIpICU+JQ0KICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygic3RyaXBlZCIsICJob3ZlciIsICJjb25kZW5zZWQiLCAicmVzcG9uc2l2ZSIpKSAlPiUNCiAgY29sdW1uX3NwZWMoY29sdW1uID0gMSwgd2lkdGggPSAiM2luIikgICAlPiUNCiAgcm93X3NwZWMoYygxMSwgMzAsNTApLCBib2xkID0gVCwgY29sb3IgPSAid2hpdGUiLCBiYWNrZ3JvdW5kID0gIiNENzI2MUUiKSAlPiUNCiAgZ3JvdXBfcm93cyhpbmRleCA9IGMoIkZvbGxvd2luZyIgPSAyMCwgIkF0bWVudGlvbiIgPSAxOSwgIlJldHdlZXRzIiA9IDIzKSkgJT4lDQogIGZvb3Rub3RlKGdlbmVyYWwgPSBwYXN0ZSgiT3ZlcmFsbCBtYXhpbXVtIGNvbnZlcmdlbmNlIHJhdGlvOiAiLCBtYywgc2VwPSIiICkpDQoNCg0KU01FDQoNCmBgYA0KICANCiAgDQotLS0gIA0KDQoNCg0KIyMgTW9kZWwgMyAgDQoNCkNyb3NzLW5ldHdvcmsgZWZmZWN0cy4gSHlwb3RoZXNlcyA0LiANCg0KUmVtb3ZlIHRoZSBub24tc2lnbmlmaWNhbnQgc29jaWFsIGluYnJlZWRpbmcgcGFyYW1ldGVycyAodC12YWx1ZSA8IDEpOiANCg0KDQpgYGB7ciwgZWNobz1UUlVFfQ0KDQoNCm15ZWZmIDwtIGdldEVmZmVjdHMoIG15ZGF0YSApDQpteWVmZl9tMSA8LSBteWVmZg0KDQojYWNjb3JkaW5nIHRvIHN1Z2dlc3Rpb24gb2YgcnNpZW5hIG1hbnVhbA0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBpblBvcFNxcnQsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgaW5Qb3BTcXJ0LCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgaW5Qb3BTcXJ0LCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dEFjdFNxcnQsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0QWN0U3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dEFjdFNxcnQsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0UG9wU3FydCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRQb3BTcXJ0LCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0UG9wU3FydCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCB0cmFuc1RyaXAsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgdHJhbnNUcmlwLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgdHJhbnNUcmlwLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHNoYXJlZFBvcCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBzaGFyZWRQb3AsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBzaGFyZWRQb3AsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20yIDwtIG15ZWZmX20xDQoNCiMia2FtZXJsaWQyMDE2IiAicGxla2xpanN0IiAgICAicGxla2xpanN0MSINCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGFsdFgsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgYWx0WCwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGFsdFgsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIHNldEVmZmVjdCggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0iZm5ldCIsIGZpeD1UUlVFLCBpbml0aWFsVmFsdWUgPSAtMywgdGVzdD1UUlVFICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBlZ29YLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBlZ29YLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBzYW1lWCwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgYWx0WCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBhbHRYLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgYWx0WCwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgZWdvWCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBlZ29YLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGVnb1gsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBlZ29YLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGVnb1gsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBlZ29YLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGFsdFgsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBhbHRYLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBhbHRYLCBuYW1lPSJydG5ldCIgKQ0KDQojdGhlc2UgbmVlZCB0byBiZSBkcm9wcGVkIGR1ZSB0byBjb2xsaW5lYXJpdHkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBkaWZmWCwgbmFtZT0icnRuZXQiICkNCg0KI2Fmc3RhbmQNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgWCwgaW50ZXJhY3Rpb24xPSJhZnN0YW5kIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgWCwgaW50ZXJhY3Rpb24xPSJhZnN0YW5kIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIFgsIGludGVyYWN0aW9uMT0iYWZzdGFuZCIsIG5hbWU9InJ0bmV0IiApDQoNCg0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMiwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJmbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdnYiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iZm5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNncCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJ2dmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9ImZuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0iYXRtbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdnYiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJhdG1uZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic3AiLCBuYW1lPSJhdG1uZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0iYXRtbmV0IiApICNyZWZlcmVudGllDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9ImF0bW5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMiwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0icnRuZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0icnRuZXQiICkgI3JlZmVyZW50aWUNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0icnRuZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0icnRuZXQiICkgI3JlZmVyZW50aWUNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTMgPC0gbXllZmZfbTINCg0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJ2cm91dyIsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJmbmV0IiApDQoNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInZyb3V3IiwgbmFtZT0icnRuZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJ2cm91dyIsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInZyb3V3IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJ2cm91dyIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJhdG1uZXQiICkNCg0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFic0RpZmZYICwgaW50ZXJhY3Rpb24xID0gImxmdCIsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAibGZ0IiwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJsZnQiLCBuYW1lPSJmbmV0IiApDQoNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWJzRGlmZlggLCBpbnRlcmFjdGlvbjEgPSAibGZ0IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgZWdvWCwgaW50ZXJhY3Rpb24xID0gImxmdCIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWx0WCwgaW50ZXJhY3Rpb24xID0gImxmdCIsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWJzRGlmZlggLCBpbnRlcmFjdGlvbjEgPSAibGZ0IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJsZnQiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWx0WCwgaW50ZXJhY3Rpb24xID0gImxmdCIsIG5hbWU9ImF0bW5ldCIgKQ0KDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJldGhtaW56IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZXRobWlueiIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWx0WCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJmbmV0IiApDQoNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJldGhtaW56IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWx0WCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJldGhtaW56IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJldGhtaW56IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJldGhtaW56IiwgbmFtZT0iYXRtbmV0IiApDQoNCm15ZWZmX200IDwtIG15ZWZmX20zDQoNCm15ZWZmX200IDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tNCwgY3Jwcm9kLCBpbnRlcmFjdGlvbjE9ImZuZXQiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTQgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX200LCBjcnByb2QsIGludGVyYWN0aW9uMT0iZm5ldCIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTQgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX200LCBjcnByb2QsIGludGVyYWN0aW9uMT0icnRuZXQiLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tNCA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTQsIGNycHJvZCwgaW50ZXJhY3Rpb24xPSJydG5ldCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX200IDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tNCwgY3Jwcm9kLCBpbnRlcmFjdGlvbjE9ImF0bW5ldCIsIG5hbWU9ImZuZXQiICkgI25lZWRzIHRvIGJlIGRyb3BwZWQgZHVlIHRvIGNvbnZlcmdlbmNlDQpteWVmZl9tNCA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTQsIGNycHJvZCwgaW50ZXJhY3Rpb24xPSJhdG1uZXQiLCBuYW1lPSJydG5ldCIgKQ0KDQojaWsgZG9lIGhldCBlZW4sIGppaiBkb2V0IGhldCBhbmRlciB0ZXJ1Zw0KbXllZmZfbTQgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX200LCBjcnByb2RSZWNpcCwgaW50ZXJhY3Rpb24xPSJmbmV0IiwgbmFtZT0icnRuZXQiICkNCm15ZWZmX200IDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tNCwgY3Jwcm9kUmVjaXAsIGludGVyYWN0aW9uMT0iZm5ldCIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTQgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX200LCBjcnByb2RSZWNpcCwgaW50ZXJhY3Rpb24xPSJydG5ldCIsIG5hbWU9ImZuZXQiICkNCm15ZWZmX200IDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tNCwgY3Jwcm9kUmVjaXAsIGludGVyYWN0aW9uMT0icnRuZXQiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tNCA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTQsIGNycHJvZFJlY2lwLCBpbnRlcmFjdGlvbjE9ImF0bW5ldCIsIG5hbWU9ImZuZXQiICkgI25lZWRzIHRvIGJlIGRyb3BwZWQgZHVlIHRvIGNvbnZlcmdlbmNlDQpteWVmZl9tNCA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTQsIGNycHJvZFJlY2lwLCBpbnRlcmFjdGlvbjE9ImF0bW5ldCIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tNA0KDQoNCiMgRXN0aW1hdGlvbg0KDQpsb2FkKCJhbnNNMTBjLlJEYXRhIikgDQphbnNNMTBjDQoNCm15YWxnb3JpdGhtIDwtIHNpZW5hQWxnb3JpdGhtQ3JlYXRlKCBwcm9qbmFtZSA9ICdNMTEnKQ0KYW5zTTExIDwtIHNpZW5hMDcoIG15YWxnb3JpdGhtLCBkYXRhID0gbXlkYXRhLCBwcmV2QW5zPWFuc00xMGMsIGVmZmVjdHMgPSBteWVmZl9tNCwgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz0xMCwgaW5pdEM9VFJVRSwgYmF0Y2g9VFJVRSkNCmFuc00xMSANCnNhdmUoYW5zTTExLCBmaWxlPXBhc3RlKCJhbnNNMTEiLCIuUkRhdGEiLHNlcD0iIikpDQoNCmFuc00xMWIgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTTExLCBlZmZlY3RzID0gbXllZmZfbTQsIHVzZUNsdXN0ZXI9VFJVRSwgbmJyTm9kZXM9MTAsIGluaXRDPVRSVUUsIGJhdGNoPVRSVUUpDQphbnNNMTFiIA0Kc2F2ZShhbnNNMTFiLCBmaWxlPXBhc3RlKCJhbnNNMTFiIiwiLlJEYXRhIixzZXA9IiIpKQ0KDQoNCmFuc00xMWMgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTTExYiwgZWZmZWN0cyA9IG15ZWZmX200LCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTEwLCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KYW5zTTExYyAjIE92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbzogICAgMC4yODM5IA0Kc2F2ZShhbnNNMTFjLCBmaWxlPXBhc3RlKCJhbnNNMTFjIiwiLlJEYXRhIixzZXA9IiIpKQ0KDQoNCiMgbGV0cyB0cmltDQoNCiMgZWZmZWN0cw0KDQpteWVmZiA8LSBnZXRFZmZlY3RzKCBteWRhdGEgKQ0KbXllZmZfbTEgPC0gbXllZmYNCg0KI2FjY29yZGluZyB0byBzdWdnZXN0aW9uIG9mIHJzaWVuYSBtYW51YWwNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgaW5Qb3BTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dEFjdFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0UG9wU3FydCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgdHJhbnNUcmlwLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBzaGFyZWRQb3AsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBteWVmZl9tMQ0KDQojImthbWVybGlkMjAxNiIgInBsZWtsaWpzdCIgICAgInBsZWtsaWpzdDEiDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGFsdFgsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGVnb1gsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBzZXRFZmZlY3QoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGVnb1gsIG5hbWU9ImZuZXQiLCBmaXg9VFJVRSwgaW5pdGlhbFZhbHVlID0gLTMsIHRlc3Q9VFJVRSApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIHNhbWVYLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIHNhbWVYLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGFsdFgsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGFsdFgsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBhbHRYLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBlZ29YLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGVnb1gsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgZWdvWCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGVnb1gsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZWdvWCwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGVnb1gsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgYWx0WCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGFsdFgsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBhbHRYLCBuYW1lPSJydG5ldCIgKQ0KDQojdGhlc2UgbmVlZCB0byBiZSBkcm9wcGVkIGR1ZSB0byBjb2xsaW5lYXJpdHkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBkaWZmWCwgbmFtZT0icnRuZXQiICkNCg0KI2Fmc3RhbmQNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgWCwgaW50ZXJhY3Rpb24xPSJhZnN0YW5kIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgWCwgaW50ZXJhY3Rpb24xPSJhZnN0YW5kIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIFgsIGludGVyYWN0aW9uMT0iYWZzdGFuZCIsIG5hbWU9InJ0bmV0IiApDQoNCg0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMiwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJmbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdnYiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iZm5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNncCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJ2dmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9ImZuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0iYXRtbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdnYiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJhdG1uZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic3AiLCBuYW1lPSJhdG1uZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0iYXRtbmV0IiApICNyZWZlcmVudGllDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9ImF0bW5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMiwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZGVuayIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0icnRuZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0icnRuZXQiICkgI3JlZmVyZW50aWUNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0icnRuZXQiICkNCiMgbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0icnRuZXQiICkgI3JlZmVyZW50aWUNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTMgPC0gbXllZmZfbTINCg0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJ2cm91dyIsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJmbmV0IiApDQoNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInZyb3V3IiwgbmFtZT0icnRuZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJ2cm91dyIsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJ2cm91dyIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAidnJvdXciLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZyb3V3IiwgbmFtZT0iYXRtbmV0IiApDQoNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhYnNEaWZmWCAsIGludGVyYWN0aW9uMSA9ICJsZnQiLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgZWdvWCwgaW50ZXJhY3Rpb24xID0gImxmdCIsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAibGZ0IiwgbmFtZT0iZm5ldCIgKQ0KDQojbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFic0RpZmZYICwgaW50ZXJhY3Rpb24xID0gImxmdCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJsZnQiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJsZnQiLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFic0RpZmZYICwgaW50ZXJhY3Rpb24xID0gImxmdCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAibGZ0IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJsZnQiLCBuYW1lPSJhdG1uZXQiICkNCg0KbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAiZXRobWlueiIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgZWdvWCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJldGhtaW56IiwgbmFtZT0iZm5ldCIgKQ0KDQpteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJldGhtaW56IiwgbmFtZT0icnRuZXQiICkNCm15ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZXRobWlueiIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTMgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTMsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJldGhtaW56IiwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20zIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20zLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgZWdvWCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMyA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMywgYWx0WCwgaW50ZXJhY3Rpb24xID0gImV0aG1pbnoiLCBuYW1lPSJhdG1uZXQiICkNCg0KbXllZmZfbTQgPC0gbXllZmZfbTMNCg0KbXllZmZfbTQgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX200LCBjcnByb2QsIGludGVyYWN0aW9uMT0iZm5ldCIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tNCA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTQsIGNycHJvZCwgaW50ZXJhY3Rpb24xPSJmbmV0IiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tNCA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTQsIGNycHJvZCwgaW50ZXJhY3Rpb24xPSJydG5ldCIsIG5hbWU9ImZuZXQiICkNCm15ZWZmX200IDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tNCwgY3Jwcm9kLCBpbnRlcmFjdGlvbjE9InJ0bmV0IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTQgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX200LCBjcnByb2QsIGludGVyYWN0aW9uMT0iYXRtbmV0IiwgbmFtZT0iZm5ldCIgKSAjbmVlZHMgdG8gYmUgZHJvcHBlZCBkdWUgdG8gY29udmVyZ2VuY2UNCm15ZWZmX200IDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tNCwgY3Jwcm9kLCBpbnRlcmFjdGlvbjE9ImF0bW5ldCIsIG5hbWU9InJ0bmV0IiApDQoNCiNpayBkb2UgaGV0IGVlbiwgamlqIGRvZXQgaGV0IGFuZGVyIHRlcnVnDQpteWVmZl9tNCA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTQsIGNycHJvZFJlY2lwLCBpbnRlcmFjdGlvbjE9ImZuZXQiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTQgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX200LCBjcnByb2RSZWNpcCwgaW50ZXJhY3Rpb24xPSJmbmV0IiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tNCA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTQsIGNycHJvZFJlY2lwLCBpbnRlcmFjdGlvbjE9InJ0bmV0IiwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTQgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX200LCBjcnByb2RSZWNpcCwgaW50ZXJhY3Rpb24xPSJydG5ldCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX200IDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tNCwgY3Jwcm9kUmVjaXAsIGludGVyYWN0aW9uMT0iYXRtbmV0IiwgbmFtZT0iZm5ldCIgKSAjbmVlZHMgdG8gYmUgZHJvcHBlZCBkdWUgdG8gY29udmVyZ2VuY2UNCm15ZWZmX200IDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tNCwgY3Jwcm9kUmVjaXAsIGludGVyYWN0aW9uMT0iYXRtbmV0IiwgbmFtZT0icnRuZXQiICkNCm15ZWZmX200DQoNCiMgZXN0aW1hdGVzDQoNCmxvYWQoImFuc00xMWMuUkRhdGEiKSANCmFuc00xMWMNCg0KbXlhbGdvcml0aG0gPC0gc2llbmFBbGdvcml0aG1DcmVhdGUoIHByb2puYW1lID0gJ00xMicpDQphbnNNMTIgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIHByZXZBbnM9YW5zTTExYywgZWZmZWN0cyA9IG15ZWZmX200LCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTEwLCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KYW5zTTEyICMgT3ZlcmFsbCBtYXhpbXVtIGNvbnZlcmdlbmNlIHJhdGlvOiAgICAwLjI1NjIgDQpzYXZlKGFuc00xMiwgZmlsZT1wYXN0ZSgiYW5zTTEyIiwiLlJEYXRhIixzZXA9IiIpKQ0KDQphbnNNMTJiIDwtIHNpZW5hMDcoIG15YWxnb3JpdGhtLCBkYXRhID0gbXlkYXRhLCBwcmV2QW5zPWFuc00xMiwgZWZmZWN0cyA9IG15ZWZmX200LCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTEwLCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KYW5zTTEyYiAjIE92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbzogICAgMC4zNjMxIA0KDQoNCnNhdmUoYW5zTTEyYiwgZmlsZT1wYXN0ZSgiYW5zTTEyYiIsIi5SRGF0YSIsc2VwPSIiKSkNCg0KDQphbnNNMTJjIDwtIHNpZW5hMDcoIG15YWxnb3JpdGhtLCBkYXRhID0gbXlkYXRhLCBwcmV2QW5zPWFuc00xMmIsIGVmZmVjdHMgPSBteWVmZl9tNCwgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz0xMCwgaW5pdEM9VFJVRSwgYmF0Y2g9VFJVRSkNCmFuc00xMmMgI092ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbzogICAgMC4yOTUxIA0KDQpzYXZlKGFuc00xMmMsIGZpbGU9cGFzdGUoImFuc00xMmMiLCIuUkRhdGEiLHNlcD0iIikpDQoNCg0KDQoNCmBgYA0KDQpgYGB7ciwgZXZhbD1UUlVFfQ0KbG9hZCgiYW5zTTEyLlJEYXRhIikNCg0KYW5zTTEyDQoNCiN4dGFibGUuc2llbmFGaXQoYW5zTTEyLCBmaWxlPSJhbnNNMTIuaHRtbCIsIHR5cGU9Imh0bWwiLCBkaWdpdHM9MykNCg0KYGBgDQoNCi0tLSAgDQoNCiMjIE1vZGVsIDQgey50YWJzZXQgLnRhYnNldC1mYWRlfQ0KDQpIZXJlIHdlIHRlc3QgSHlwb3RoZXNpcyA1IG9uIHRpbWUgdHJlbmRzIGluIHRoZSBpbXBhY3Qgb2YgdGhlIHNhbWUtcGFydHkgdmFyaWFibGUuIA0KDQojIyMgc2llbmFUaW1lVGVzdCANCg0KYGBge3IsIGVjaG89VFJVRSwgZXZhbD1UUlVFfQ0KbG9hZCgiYW5zTThjLlJEYXRhIikNCg0KDQp0dCA8LSBzaWVuYVRpbWVUZXN0KGFuc004YywgIGVmZmVjdHM9YygxMSwyNCw0MSkpDQojdHQNCiN0dCRFZmZlY3RUZXN0DQojdHQkSW5kaXZpZHVhbFRlc3QNCnBsb3QodHQpDQoNCmBgYA0KDQojIyMgTW9kZWwgNCAtIGZpbmFsIHsuYWN0aXZlfQ0KYGBge3IsIGVjaG89VFJVRX0NCg0KbXllZmZfdCA8LSBteWVmZl9tMg0KDQpteWVmZl90IDwtIGluY2x1ZGVUaW1lRHVtbXkobXllZmZfdCwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJmbmV0IiwgdGltZUR1bW15PSIyIikNCm15ZWZmX3QgPC0gaW5jbHVkZVRpbWVEdW1teShteWVmZl90LCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInBhcnRpaiIsIG5hbWU9ImF0bW5ldCIsIHRpbWVEdW1teT0iMiIpDQpteWVmZl90IDwtIGluY2x1ZGVUaW1lRHVtbXkobXllZmZfdCwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJydG5ldCIsIHRpbWVEdW1teT0iMiIpDQpteWVmZl90DQoNCm15YWxnb3JpdGhtIDwtIHNpZW5hQWxnb3JpdGhtQ3JlYXRlKCBwcm9qbmFtZSA9ICdNOGNfdCcsIG5zdWI9NSwgbjM9NTAwMCApDQphbnNNOGNfdCA8LSBzaWVuYTA3KCBteWFsZ29yaXRobSwgZGF0YSA9IG15ZGF0YSwgcHJldkFucz1hbnNNOGMsIGVmZmVjdHMgPSBteWVmZl90LCB1c2VDbHVzdGVyPVRSVUUsIG5ick5vZGVzPTEwLCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KYW5zTThjX3QgDQpzYXZlKGFuc004Y190LCBmaWxlPXBhc3RlKCJhbnNNOGNfdCIsIi5SRGF0YSIsc2VwPSIiKSkNCmBgYCANCg0KYGBge3IsIGVjaG89VFJVRSwgZXZhbD1UUlVFfQ0KDQpsb2FkKCJhbnNNOGNfdC5SRGF0YSIpCQ0KI3h0YWJsZS5zaWVuYUZpdChhbnNNOGNfdCwgZmlsZT0iYW5zTThjX3QuaHRtbCIsIHR5cGU9Imh0bWwiLCBkaWdpdHM9MykNCg0KDQpyZXMgPC0gcm91bmQoZmFuc2NzdihhbnNNOGNfdClbYygxMSwxNiwyNiwzNCw0NSw1MyksIDE6Ml0sNSkNCg0KbWMgPC0gYXMuY2hhcmFjdGVyKHJvdW5kKGZhbnNjc3YoYW5zTThjX3QpWzU0LDFdLDMpKQ0KDQpyb3cubmFtZXMocmVzKSA8LSBjKA0KICJzYW1lIHBhcnR5IChkeWFkKSIgICwgICAgICANCiAidGltZSpzYW1lIHBhcnR5IiAgICwgICAgIA0KICJzYW1lIHBhcnR5IChkeWFkKSIgICwgICAgICANCiAidGltZSpzYW1lIHBhcnR5IiAgICwgICAgIA0KICJzYW1lIHBhcnR5IChkeWFkKSIgICwgICAgICANCiAidGltZSpzYW1lIHBhcnR5IiAgIA0KKQ0KICANCk00IDwtIGtibChyZXMsIGJvb2t0YWJzPVRSVUUsIGRpZ2l0cz0zLCBjYXB0aW9uPSJNb2RlbCA0IiwgYWxpZ24gPSAiYyIpICU+JQ0KICBrYWJsZV9jbGFzc2ljKGZ1bGxfd2lkdGggPSBGLCBodG1sX2ZvbnQgPSAiQ2FtYnJpYSIpICU+JQ0KICBrYWJsZV9zdHlsaW5nKGJvb3RzdHJhcF9vcHRpb25zID0gYygic3RyaXBlZCIsICJob3ZlciIsICJjb25kZW5zZWQiLCAicmVzcG9uc2l2ZSIpKSAlPiUNCiAgY29sdW1uX3NwZWMoY29sdW1uID0gMSwgd2lkdGggPSAiM2luIikgICAlPiUNCiAgI3Jvd19zcGVjKGMoMTEsIDI0LDQxKSwgYm9sZCA9IFQsIGNvbG9yID0gIndoaXRlIiwgYmFja2dyb3VuZCA9ICIjRDcyNjFFIikgJT4lDQogIGdyb3VwX3Jvd3MoaW5kZXggPSBjKCJGb2xsb3dpbmciID0gMiwgIkF0bWVudGlvbiIgPSAyLCAiUmV0d2VldHMiID0gMikpICU+JQ0KICBmb290bm90ZShnZW5lcmFsID0gcGFzdGUoIk92ZXJhbGwgbWF4aW11bSBjb252ZXJnZW5jZSByYXRpbzogIiwgbWMsIHNlcD0iIiApKQ0KDQoNCk00DQoNCg0KYGBgDQoNCi0tLSAgDQoNCiMjIE1vZGVsIFJSIHsudGFic2V0IC50YWJzZXQtZmFkZX0NCg0KQW4gYW5vbnltb3VzIHJldmlld2VyIHN1Z2dlc3RlZCB0byB0cnkgdG8gZGlzZW50YW5nbGUgdGhlIGltcGFjdCBvZiBwaHlzaWNhbCBzZWF0aW5nIGRpc3RhbmNlIGZyb20gaWRlb2xvZ2ljYWwgZGlzdGFuY2UuIFdlIHRoZXJlZm9yZSBhZGRlZCB0byB0aGUgcGFydHkgdG8gd2hpY2ggZWFjaCBNUCBiZWxvbmdzIGEgZ2VuZXJhbCBsZWZ0LXJpZ2h0IHBvc2l0aW9uIGFjY29yZGluZyB0byB0aGUgQ2hhcGVsIEhpbGwgU3VydmV5IFtAam9sbHkyMDIyY2hhcGVsXS4gDQoNCiMjIyBMb2FkIGRhdGEgb2JqZWN0cyANCg0KDQpEYXRhIG9iamVjdHM6ICANCg0KLSBba2V5XSguL2RhdGEtcHJvY2Vzc2VkL2tleSBtb2VkZXJiZXN0YW5kIDIwMTcxMTE0LnNhdik6IGluZm9ybWF0aW9uIG9uIGFsbCBwb2xpdGljaWFucyBvbiBlbGVjdGlvbiBsaXN0ICANCi0gW3R3aXR0ZXJdKC4vZGF0YS1wcm9jZXNzZWQvdHdpdHRlcl8yMDE5MDkxOS5SRGF0YSkgIA0KICAgIC0ga2V5ZjogaW5mb3JtYXRpb24gb24gYWxsIDE0NyBNUHMgd2l0aCB0d2l0dGVyIGhhbmRsZSAgDQogICAgLSBteWRhdGE6IFJTaWVuYSBvYmplY3Qgd2l0aCBhbGwga2luZCBvZiBnb29kaWVzIGluc2lkZSAgDQogICAgLSBzZWF0czogc2VhdGluZyBjb29yZGluYXRlcyBvZiBIb1AgKHVzZWQgZm9yIHBsb3R0aW5nKSAgDQotIFtDSEVTXShodHRwczovL3d3dy5jaGVzZGF0YS5ldS9jaGVzLWV1cm9wZSk6IGluZm9ybWF0aW9uIG9uIHBhcnR5IHBvc2l0aW9ucyBzZWUgYWxzbyBbQGpvbGx5MjAyMmNoYXBlbF0NCg0KDQpgYGB7ciwgZXZhbD1UUlVFfQ0KbGlicmFyeShoYXZlbikNCmNoZXMgPC0gcmVhZF9kdGEoIi4vZGF0YS1yYXcvQ0hFU19tZWFuc18yMDE3LmR0YSIpDQpjaGVzIDwtIGFzLmRhdGEuZnJhbWUoY2hlcykNCmNoZXMgPC0gY2hlc1tjaGVzJGNvdW50cnk9PTEwLF0NCmBgYA0KDQoNCkFzIHRoZSBpZGVvbG9naWNhbCBwb3NpdGlvbiBvZiBwYXJ0aWVzIHdhcyBub3QgaW5jbHVkZWQgaW4gb3VyIG9yaWdpbmFsIGRhdGEgb2JqZWN0IHdlIG5lZWQgdG8gZml4IHRoYXQuIA0KDQpgYGB7ciBkYXRhMiwgZWNobz1UUlVFLCBldmFsPVRSVUUsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQojU1RBUCAxOiByZWFkIGluIGRhdGENCmtleSA8LSByZWFkLnNwc3MoJ2RhdGEtcHJvY2Vzc2VkXFxrZXkgbW9lZGVyYmVzdGFuZCAyMDE3MTExNC5zYXYnLCB1c2UudmFsdWUubGFiZWxzPVQsIHRvLmRhdGEuZnJhbWU9VCkNCg0KDQpsb2FkKCJkYXRhLXByb2Nlc3NlZFxcdHdpdHRlcl8yMDE5MDkxOS5SRGF0YSIpDQojc3RyKHR3aXR0ZXJfMjAxOTA5MTksMSkNCmtleWYgPC0gdHdpdHRlcl8yMDE5MDkxOVtbMV1dDQpteWRhdGEgPC0gdHdpdHRlcl8yMDE5MDkxOVtbMl1dDQpzZWF0cyA8LSB0d2l0dGVyXzIwMTkwOTE5W1szXV0NCg0KY2hlcyRQYXJ0aWogPC0gY2hlcyRwYXJ0eQ0KDQprZXlmIDwtIGxlZnRfam9pbihrZXlmLCBjaGVzKQ0KDQoNCg0KI2RlY29uc3RydWN0IGRhdGFvYmplY3QNCmRlcHMgPC0gbXlkYXRhJGRlcHZhcnMNCmNvdmFyaWF0ZXMgPC0gbXlkYXRhJGNDb3ZhcnMNCmNvZHlhZGNvdmFyIDwtIG15ZGF0YSRkeWNDb3ZhcnMNCg0KZm5ldCA8LSBzaWVuYU5ldChkZXBzJGZuZXQpIA0KYXRtbmV0IDwtIHNpZW5hTmV0KGRlcHMkYXRtbmV0KQ0KcnRuZXQgPC0gc2llbmFOZXQoZGVwcyRydG5ldCkNCmFmc3RhbmQgPC0gY29keWFkY292YXIkYWZzdGFuZA0KZWdvaGFuZGxlIDwtIGNvdmFyaWF0ZXMkZWdvaGFuZGxlDQplZ29pZCA8LSBjb3ZhcmlhdGVzJGVnb2lkDQpwYXJ0aWogPC0gY292YXJpYXRlcyRwYXJ0aWoNCmNvYWxpdGllIDwtIGNvdmFyaWF0ZXMkY29hbGl0aWUNCmNkYSA8LSBjb3ZhcmlhdGVzJGNkYQ0KY3UgPC0gY292YXJpYXRlcyRjdQ0KZGVuayA8LSBjb3ZhcmlhdGVzJGRlbmsNCmQ2NiA8LSBjb3ZhcmlhdGVzJGQ2Ng0KZnZkIDwtIGNvdmFyaWF0ZXMkZnZkDQpnbCA8LSBjb3ZhcmlhdGVzJGdsDQpwdmRhIDwtIGNvdmFyaWF0ZXMkcHZkYQ0KcHZkZCA8LSBjb3ZhcmlhdGVzJHB2ZGQNCnB2diA8LSBjb3ZhcmlhdGVzJHB2dg0Kc2dwIDwtIGNvdmFyaWF0ZXMkc2dwDQpzcCA8LSBjb3ZhcmlhdGVzJHNwDQp2dmQgPC0gY292YXJpYXRlcyR2dmQNCnBsdXMgPC0gY292YXJpYXRlcyRwbHVzDQpldGhtaW56IDwtIGNvdmFyaWF0ZXMkZXRobWlueg0KdnJvdXcgPC0gY292YXJpYXRlcyR2cm91dw0KbGZ0IDwtIGNvdmFyaWF0ZXMkbGZ0DQprYW1lcmxpZDIwMTYgPC0gY292YXJpYXRlcyRrYW1lcmxpZDIwMTYNCmthYmluZXQyMDE2IDwtIGNvdmFyaWF0ZXMka2FiaW5ldDIwMTYNCnBsZWtsaWpzdCA8LSBjb3ZhcmlhdGVzJHBsZWtsaWpzdA0KcGxla2xpanN0MSA8LSBjb3ZhcmlhdGVzJHBsZWtsaWpzdDENCiNhZGQgbmV3IHZhcmlhYmxlDQpwYXJ0eXBvcyA8LSBjb0NvdmFyKGtleWYkbHJnZW4pICANCg0KI3JlY29uc3RydWN0IGRhdGFvYmplY3QNCm15ZGF0YV9SUiA8LSBzaWVuYURhdGFDcmVhdGUoZm5ldCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgYXRtbmV0LCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgcnRuZXQsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBhZnN0YW5kLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgZWdvaGFuZGxlLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgZWdvaWQsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWosIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBjb2FsaXRpZSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgIGNkYSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgY3UsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGRlbmssDQogICAgICAgICAgICAgICAgICAgICAgICAgIGQ2NiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZnZkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBnbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHZkYSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHZkZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHZ2LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBzZ3AsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHNwLA0KICAgICAgICAgICAgICAgICAgICAgICAgICB2dmQsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHBsdXMsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBldGhtaW56LA0KICAgICAgICAgICAgICAgICAgICAgICAgICB2cm91dywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGZ0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBrYW1lcmxpZDIwMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGthYmluZXQyMDE2LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBwbGVrbGlqc3QsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHBsZWtsaWpzdDEsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnR5cG9zKQ0KDQoNCmBgYA0KDQoNCg0KIyMjIERlZmluZSBlZmZlY3RzICANCg0KYGBge3IgZWNobz1UUlVFLCBldmFsPVRSVUUsIHJlc3VsdHM9J2hpZGUnfQ0KbXllZmYgPC0gZ2V0RWZmZWN0cyggbXlkYXRhX1JSICkNCm15ZWZmX20xIDwtIG15ZWZmDQoNCiNhY2NvcmRpbmcgdG8gc3VnZ2VzdGlvbiBvZiByc2llbmEgbWFudWFsDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBpblBvcFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBpblBvcFNxcnQsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0QWN0U3FydCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0QWN0U3FydCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRQb3BTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRQb3BTcXJ0LCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCB0cmFuc1RyaXAsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCB0cmFuc1RyaXAsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHNoYXJlZFBvcCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHNoYXJlZFBvcCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTIgPC0gbXllZmZfbTENCg0KIyJrYW1lcmxpZDIwMTYiICJwbGVrbGlqc3QiICAgICJwbGVrbGlqc3QxIg0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgYWx0WCwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGVnb1gsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBzZXRFZmZlY3QoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGVnb1gsIG5hbWU9ImZuZXQiLCBmaXg9VFJVRSwgaW5pdGlhbFZhbHVlID0gLTMsIHRlc3Q9VFJVRSApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIHNhbWVYLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIHNhbWVYLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGFsdFgsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgYWx0WCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGFsdFgsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGVnb1gsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgZWdvWCwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBlZ29YLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZWdvWCwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBlZ29YLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZWdvWCwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBhbHRYLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgYWx0WCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgYWx0WCwgbmFtZT0icnRuZXQiICkNCg0KI3RoZXNlIG5lZWQgdG8gYmUgZHJvcHBlZCBkdWUgdG8gY29sbGluZWFyaXR5DQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGRpZmZYLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGRpZmZYLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9InJ0bmV0IiApDQoNCiNhZnN0YW5kDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIFgsIGludGVyYWN0aW9uMT0iYWZzdGFuZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIFgsIGludGVyYWN0aW9uMT0iYWZzdGFuZCIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBYLCBpbnRlcmFjdGlvbjE9ImFmc3RhbmQiLCBuYW1lPSJydG5ldCIgKQ0KDQoNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0iZm5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNncCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJ2dmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9ImZuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJkZW5rIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic3AiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJmbmV0IiApDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20yLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInBhcnRpaiIsIG5hbWU9ImF0bW5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkZW5rIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic3AiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJ2dmQiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iYXRtbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNncCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iYXRtbmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImF0bW5ldCIgKSAjcmVmZXJlbnRpZQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJhdG1uZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0icnRuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9InJ0bmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9InJ0bmV0IiApICNyZWZlcmVudGllDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJkZW5rIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9InJ0bmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9InJ0bmV0IiApICNyZWZlcmVudGllDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX1JSIDwtIG15ZWZmX20yDQpteWVmZl9SUiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9SUiwgaW50ZXJhY3Rpb24xPSJwYXJ0eXBvcyIsIGFic0RpZmZYLCBuYW1lPSJmbmV0IiApDQpteWVmZl9SUiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9SUiwgaW50ZXJhY3Rpb24xPSJwYXJ0eXBvcyIsIGFic0RpZmZYLCBuYW1lPSJydG5ldCIgKQ0KYGBgDQoNCg0KYGBge3IgZWNobz1UUlVFLCBldmFsPVRSVUV9DQpteWVmZl9SUg0KYGBgDQoNCiMjIyBlc3RpbWF0ZSBtb2RlbA0KDQpgYGB7ciwgZWNobz1UUlVFLCBldmFsPUZBTFNFfQ0KbXlhbGdvcml0aG1SUiA8LSBzaWVuYUFsZ29yaXRobUNyZWF0ZSggcHJvam5hbWUgPSAnUlInKQ0KDQphbnNSUjEgPC0gc2llbmEwNyggbXlhbGdvcml0aG1SUiwgZGF0YSA9IG15ZGF0YV9SUiwgcHJldkFucz1hbnNNOGMsIGVmZmVjdHMgPSBteWVmZl9SUiwgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz04LCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KDQojc2F2ZShhbnNSUjEsIGZpbGU9cGFzdGUoImFuc1JSMSIsIi5SRGF0YSIsc2VwPSIiKSkNCmBgYA0KDQojIyMgTW9kZWwgUlIgLSBmaW5hbCAgey5hY3RpdmV9DQoNClRoZSBwYXJhbWV0ZXJzIG9mIGludGVyZXN0IGFyZSBpbiByZWQuIA0KDQoNCmBgYHtyLCBlY2hvPVRSVUUsIGV2YWw9VFJVRX0NCmxvYWQoImFuc1JSMS5SRGF0YSIpDQoNCg0KcmVzIDwtIHJvdW5kKGZhbnNjc3YoYW5zUlIxKVssMToyXSw1KQ0KbWNwb3MgPC0gbGVuZ3RoKHJlc1ssMV0pDQpyZXMgPC0gcmVzWy1tY3BvcyxdDQptYyA8LSBhcy5jaGFyYWN0ZXIocm91bmQoZmFuc2NzdihhbnNSUjEpW21jcG9zLDFdLDMpKQ0Kcm93Lm5hbWVzKHJlcykgPC0gYygNCiAicmF0ZSAxIiAgLCAgICAgIA0KICJyYXRlIDIiICAgLCAgICAgDQogIm91dGRlZ3JlZSIgICAgICAgICAgLCAgDQogInJlY2lwcm9jaXR5IiAgICAgICAgICwgICAgICAgICAgIA0KICJ0cmFuc2l0aXZlIHRyaXBsZXRzIiAgLCAgICAgICAgICANCiAic2hhcmVkIHBvcHVsYXJpdHkiICAgICAsICAgICAgICAgDQogImluZGVncmVlIC0gcG9wdWxhcml0eSIgICAsDQogICIgb3V0ZGVncmVlIC0gcG9wdWxhcml0eSIgLCANCiAib3V0ZGVncmVlIC0gYWN0aXZpdHkiICAgICwNCiAic2VhdGluZyBkaXN0YW5jZSAoZHlhZCkiICAgICAgICAgLCAgICAgICAgICAgICAgIA0KICJzYW1lIHBhcnR5IChkeWFkKSIgICAgICAgICAgICAgICAgLCAgICANCiJpbmN1bWJhbmN5IHN0YXR1cyAoYWx0ZXIpIiAgICAgICAgICAsICAgDQoic2FtZSBpbmN1bWJhbmN5IHN0YXR1cyAoZHlhZCkiICAgICAgICwgICAgICAgDQoicG9zaXRpb24gb24gZWxlY3Rpb24gbGlzdCAoZWdvKSIgICAgICAsDQoiaWRlb2xvZ2ljYWwgZGlzdGFuY2UgKGR5YWQpIiAsDQogInJhdGUgMSIgICAgICAsDQogInJhdGUgMiIgICAgICAsDQoib3V0ZGVncmVlIiAgICAgICAgICAsDQogInJlY2lwcm9jaXR5IiAgICAgICAgLCAgICAgICAgICANCiAidHJhbnNpdGl2ZSB0cmlwbGV0cyIgLCAgICAgICAgIA0KICJzaGFyZWQgcG9wdWxhcml0eSIgICAgLCAgICAgICAgDQogImluZGVncmVlIC0gcG9wdWxhcml0eSIgLA0KICJvdXRkZWdyZWUgLSBwb3B1bGFyaXR5IiwNCiJvdXRkZWdyZWUgLSBhY3Rpdml0eSAiICAsDQogInNhbWUgcGFydHkgKGR5YWQpIiAgICAgICAgICAgICwgICAgICANCiJwYXJ0eSBMaWJlcmFsIERlbW9jcmF0cyAoYWx0ZXIpIiwgICAgICAgICAgICAgICAgICAgIA0KInBhcnR5IEdyZWVuTGVmdCAoYWx0ZXIpIiAgICAgICAgICwgICAgICAgICAgICANCiAicGFydHkgR3JlZW5MZWZ0IChlZ28pIiAgICAgICAgICAgLCAgICAgICAgICAgIA0KICJwb3NpdGlvbiBvbiBlbGVjdGlvbiBsaXN0IChhbHRlcikiLCAgICAgICAgICAgICAgDQoicGFydHkgbGVhZGVyIChhbHRlcikiICAgICAgICAgICAgICwNCiAicGFydHkgbGVhZGVyIChlZ28pIiAgICAgICAgICAgICAgICwNCiAicmF0ZSAxIiAgICAgICAsDQogInJhdGUgMiIgICAgICAgLA0KIm91dGRlZ3JlZSIgICAgICAgICAgICwNCiJyZWNpcHJvY2l0eSIgICAgICAgICAgLCAgICAgICAgIA0KInRyYW5zaXRpdmUgdHJpcGxldHMiICAgLCAgICAgICAgDQoic2hhcmVkIHBvcHVsYXJpdHkiICAgICAgLCAgICAgICANCiJpbmRlZ3JlZSAtIHBvcHVsYXJpdHkgIiwgIA0KIm91dGRlZ3JlZSAtIHBvcHVsYXJpdHkiLCANCiJvdXRkZWdyZWUgLSBhY3Rpdml0eSAiICAgLA0KInNlYXRpbmcgZGlzdGFuY2UgKGR5YWQpIiAgICAgICAgLCAgICAgICAgICAgICAgIA0KICJzYW1lIHBhcnR5IChkeWFkKSIgICAgICAgICAgICAgICwgICAgIA0KICJwYXJ0eSBMaWJlcmFsIERlbW9jcmF0cyAoZWdvKSIgICAsICAgICAgICAgICAgICAgICAgICANCiAicGFydHkgRnJlZWRvbSBQYXJ0eSAoZWdvKSIgICAgICAgICwgICAgICAgICAgICAgICANCiAiaW5jdW1iYW5jeSBzdGF0dXMgKGFsdGVyKSIgICAgICAgICAsICAgDQogImluY3VtYmFuY3kgc3RhdHVzIChlZ28pIiAgICAgICAgICAgICwgIA0KICJwb3NpdGlvbiBvbiBlbGVjdGlvbiBsaXN0IChhbHRlcikiICAgLCAgICAgICAgICAgIA0KInBhcnR5IGxlYWRlciAoYWx0ZXIpIiwgDQogImlkZW9sb2dpY2FsIGRpc3RhbmNlIChkeWFkKSINCikNCiAgDQpSUjEgPC0ga2JsKHJlcywgYm9va3RhYnM9VFJVRSwgZGlnaXRzPTMsIGNhcHRpb249Ik1vZGVsIFJSOiBpbmNsdWRpbmcgaWRlb2xvZ2ljYWwgZGlzdGFuY2UiLCBhbGlnbiA9ICJjIikgJT4lDQogIGthYmxlX2NsYXNzaWMoZnVsbF93aWR0aCA9IEYsIGh0bWxfZm9udCA9ICJDYW1icmlhIikgJT4lDQogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJzdHJpcGVkIiwgImhvdmVyIiwgImNvbmRlbnNlZCIsICJyZXNwb25zaXZlIikpICU+JQ0KICBjb2x1bW5fc3BlYyhjb2x1bW4gPSAxLCB3aWR0aCA9ICIzaW4iKSAgICU+JQ0KICByb3dfc3BlYyhjKDEwLCAxNSw0MSw0OSksIGJvbGQgPSBULCBjb2xvciA9ICJ3aGl0ZSIsIGJhY2tncm91bmQgPSAiI0Q3MjYxRSIpICU+JQ0KICBncm91cF9yb3dzKGluZGV4ID0gYygiRm9sbG93aW5nIiA9IDE1LCAiQXRtZW50aW9uIiA9IDE2LCAiUmV0d2VldHMiID0gMTgpKSAlPiUNCiAgZm9vdG5vdGUoZ2VuZXJhbCA9IHBhc3RlKCJPdmVyYWxsIG1heGltdW0gY29udmVyZ2VuY2UgcmF0aW86ICIsIG1jLCBzZXA9IiIgKSkNCg0KDQpSUjENCg0KYGBgDQoNCi0tLSAgDQoNCg0KDQotLS0gIA0KDQoNCiMjIE1vZGVsIFJSMiB7LnRhYnNldCAudGFic2V0LWZhZGV9DQoNCkFuIGFub255bW91cyByZXZpZXdlciBhcmd1ZWQgdGhhdCB0aGUgbGFzdCBjYW5kaWRhdGUgZWxlY3RlZCBmcm9tIGVhY2ggcGFydHkgZWxlY3Rpb24gbGlzdCBtYXkgcG9zc2VzIOKAnGEgaGVpZ2h0ZW5lZCBpbnRlcmVzdCBpbiBhY3RpdmUgc29jaWFsIG5ldHdvcmsgZW5nYWdlbWVudCB0byBwcm9tb3RlIHRoZW1zZWx2ZXMgb3IsIGNvbnZlcnNlbHksIGFpbSB0byBkZXZlbG9wIGFuIGluZGl2aWR1YWwgZGlzY291cnNlIHRvIGJvbHN0ZXIgdGhlaXIgcG9saXRpY2FsIGNhcmVlcnMgYmV5b25kIHRoZSBjdXJyZW50IGxlZ2lzbGF0aXZlIHRlcm3igJ0gYW5kIHN1Z2dlc3RlZCB0byBhc3Nlc3MgdGhlIGV4dGVudCB0byB3aGljaCB0aGUgc2FtZS1wYXJ0eSBlZmZlY3QgKHBhcnR5IGJhc2VkIHNpbWlsYXJpdHkgcHJlZmVyZW5jZXMpIHdvdWxkIGJlIGRpZmZlcmVudCBmb3IgdGhlc2Ugc3BlY2lmaWMgTVBzLiAgDQoNCiMjIyBMb2FkIGRhdGEgb2JqZWN0cyANCg0KDQpEYXRhIG9iamVjdHM6ICANCg0KLSBba2V5XSguL2RhdGEtcHJvY2Vzc2VkL2tleSBtb2VkZXJiZXN0YW5kIDIwMTcxMTE0LnNhdik6IGluZm9ybWF0aW9uIG9uIGFsbCBwb2xpdGljaWFucyBvbiBlbGVjdGlvbiBsaXN0ICANCi0gW3R3aXR0ZXJdKC4vZGF0YS1wcm9jZXNzZWQvdHdpdHRlcl8yMDE5MDkxOS5SRGF0YSkgIA0KICAgIC0ga2V5ZjogaW5mb3JtYXRpb24gb24gYWxsIDE0NyBNUHMgd2l0aCB0d2l0dGVyIGhhbmRsZSAgDQogICAgLSBteWRhdGE6IFJTaWVuYSBvYmplY3Qgd2l0aCBhbGwga2luZCBvZiBnb29kaWVzIGluc2lkZSAgDQogICAgLSBzZWF0czogc2VhdGluZyBjb29yZGluYXRlcyBvZiBIb1AgKHVzZWQgZm9yIHBsb3R0aW5nKSAgDQotIFtDSEVTXShodHRwczovL3d3dy5jaGVzZGF0YS5ldS9jaGVzLWV1cm9wZSk6IGluZm9ybWF0aW9uIG9uIHBhcnR5IHBvc2l0aW9ucyBzZWUgYWxzbyBbQGpvbGx5MjAyMmNoYXBlbF0NCg0KDQpgYGB7ciBkYXRhMywgZWNobz1UUlVFLCBldmFsPVRSVUUsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQojU1RBUCAxOiByZWFkIGluIGRhdGENCmxpYnJhcnkoaGF2ZW4pDQpjaGVzIDwtIHJlYWRfZHRhKCIuL2RhdGEtcmF3L0NIRVNfbWVhbnNfMjAxNy5kdGEiKQ0KY2hlcyA8LSBhcy5kYXRhLmZyYW1lKGNoZXMpDQpjaGVzIDwtIGNoZXNbY2hlcyRjb3VudHJ5PT0xMCxdDQoNCg0Ka2V5IDwtIHJlYWQuc3BzcygnZGF0YS1wcm9jZXNzZWRcXGtleSBtb2VkZXJiZXN0YW5kIDIwMTcxMTE0LnNhdicsIHVzZS52YWx1ZS5sYWJlbHM9VCwgdG8uZGF0YS5mcmFtZT1UKQ0KDQoNCmxvYWQoImRhdGEtcHJvY2Vzc2VkXFx0d2l0dGVyXzIwMTkwOTE5LlJEYXRhIikNCiNzdHIodHdpdHRlcl8yMDE5MDkxOSwxKQ0Ka2V5ZiA8LSB0d2l0dGVyXzIwMTkwOTE5W1sxXV0NCm15ZGF0YSA8LSB0d2l0dGVyXzIwMTkwOTE5W1syXV0NCnNlYXRzIDwtIHR3aXR0ZXJfMjAxOTA5MTlbWzNdXQ0KDQprZXlmICU+JSBncm91cF9ieShQYXJ0aWopICU+JQ0KICBzdW1tYXJpc2UobWF4bGlzdCA9IG1heChQbGVrTGlqc3QpLCAjbm90ZSB0aGVyZSBhcmUgTVBzIHdpdGggcHJlZmVyZW5jZSB2b3Rlcy4gDQogICAgICAgICAgICBuc2VhdHMgPSBuKCkpIC0+IGtleWZfdGVtcA0KDQojY29ycmVjdCBmb3IgdGhyZWUgbWlzc2luZyBNUHMuIA0Ka2V5Zl90ZW1wJG5zZWF0c1trZXlmX3RlbXAkUGFydGlqPT0iVlZEIl0gPC0gIGtleWZfdGVtcCRuc2VhdHNba2V5Zl90ZW1wJFBhcnRpaj09IlZWRCJdICsgMQ0Ka2V5Zl90ZW1wJG5zZWF0c1trZXlmX3RlbXAkUGFydGlqPT0iUFZWIl0gPC0gIGtleWZfdGVtcCRuc2VhdHNba2V5Zl90ZW1wJFBhcnRpaj09IlBWViJdICsgMg0KDQprZXlmIDwtIGxlZnRfam9pbihrZXlmLCBrZXlmX3RlbXApDQoNCmtleWYkbGFzdGxpc3QgPC0gaWZlbHNlKGtleWYkUGxla0xpanN0Pj1rZXlmJG5zZWF0cywgMSwgMCkgDQoNCmNoZXMkUGFydGlqIDwtIGNoZXMkcGFydHkNCg0Ka2V5ZiA8LSBsZWZ0X2pvaW4oa2V5ZiwgY2hlcykNCg0KDQoNCiNkZWNvbnN0cnVjdCBkYXRhb2JqZWN0DQpkZXBzIDwtIG15ZGF0YSRkZXB2YXJzDQpjb3ZhcmlhdGVzIDwtIG15ZGF0YSRjQ292YXJzDQpjb2R5YWRjb3ZhciA8LSBteWRhdGEkZHljQ292YXJzDQoNCmZuZXQgPC0gc2llbmFOZXQoZGVwcyRmbmV0KSANCmF0bW5ldCA8LSBzaWVuYU5ldChkZXBzJGF0bW5ldCkNCnJ0bmV0IDwtIHNpZW5hTmV0KGRlcHMkcnRuZXQpDQphZnN0YW5kIDwtIGNvZHlhZGNvdmFyJGFmc3RhbmQNCmVnb2hhbmRsZSA8LSBjb3ZhcmlhdGVzJGVnb2hhbmRsZQ0KZWdvaWQgPC0gY292YXJpYXRlcyRlZ29pZA0KcGFydGlqIDwtIGNvdmFyaWF0ZXMkcGFydGlqDQpjb2FsaXRpZSA8LSBjb3ZhcmlhdGVzJGNvYWxpdGllDQpjZGEgPC0gY292YXJpYXRlcyRjZGENCmN1IDwtIGNvdmFyaWF0ZXMkY3UNCmRlbmsgPC0gY292YXJpYXRlcyRkZW5rDQpkNjYgPC0gY292YXJpYXRlcyRkNjYNCmZ2ZCA8LSBjb3ZhcmlhdGVzJGZ2ZA0KZ2wgPC0gY292YXJpYXRlcyRnbA0KcHZkYSA8LSBjb3ZhcmlhdGVzJHB2ZGENCnB2ZGQgPC0gY292YXJpYXRlcyRwdmRkDQpwdnYgPC0gY292YXJpYXRlcyRwdnYNCnNncCA8LSBjb3ZhcmlhdGVzJHNncA0Kc3AgPC0gY292YXJpYXRlcyRzcA0KdnZkIDwtIGNvdmFyaWF0ZXMkdnZkDQpwbHVzIDwtIGNvdmFyaWF0ZXMkcGx1cw0KZXRobWlueiA8LSBjb3ZhcmlhdGVzJGV0aG1pbnoNCnZyb3V3IDwtIGNvdmFyaWF0ZXMkdnJvdXcNCmxmdCA8LSBjb3ZhcmlhdGVzJGxmdA0Ka2FtZXJsaWQyMDE2IDwtIGNvdmFyaWF0ZXMka2FtZXJsaWQyMDE2DQprYWJpbmV0MjAxNiA8LSBjb3ZhcmlhdGVzJGthYmluZXQyMDE2DQpwbGVrbGlqc3QgPC0gY292YXJpYXRlcyRwbGVrbGlqc3QNCnBsZWtsaWpzdDEgPC0gY292YXJpYXRlcyRwbGVrbGlqc3QxDQojYWRkIG5ldyB2YXJpYWJsZXMNCnBhcnR5cG9zIDwtIGNvQ292YXIoa2V5ZiRscmdlbikgIA0KbGFzdGxpc3QgPC0gY29Db3ZhcihrZXlmJGxhc3RsaXN0KQ0KbnNlYXRzIDwtIGNvQ292YXIoa2V5ZiRuc2VhdHMpDQoNCnRhYmxlKGNvYWxpdGllLCBwYXJ0aWopDQoNCiNyZWNvbnN0cnVjdCBkYXRhb2JqZWN0DQpteWRhdGFfUlIyIDwtIHNpZW5hRGF0YUNyZWF0ZShmbmV0LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBhdG1uZXQsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBydG5ldCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgIGFmc3RhbmQsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBlZ29oYW5kbGUsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBlZ29pZCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpaiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgIGNvYWxpdGllLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2RhLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBjdSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVuaywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZDY2LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBmdmQsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGdsLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBwdmRhLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBwdmRkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBwdnYsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHNncCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3AsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHZ2ZCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1cywgDQogICAgICAgICAgICAgICAgICAgICAgICAgIGV0aG1pbnosDQogICAgICAgICAgICAgICAgICAgICAgICAgIHZyb3V3LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsZnQsDQogICAgICAgICAgICAgICAgICAgICAgICAgIGthbWVybGlkMjAxNiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAga2FiaW5ldDIwMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgIHBsZWtsaWpzdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcGxla2xpanN0MSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydHlwb3MsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0bGlzdCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgbnNlYXRzKQ0KDQpgYGANCg0KDQoNCiMjIyBEZWZpbmUgZWZmZWN0cyAgDQoNCiMjIyMgSW50ZXJhY3Rpb24gJ3NhbWUgcGFydHknIHdpdGggJ2xhc3Qgb24gbGlzdCcuIA0KDQpgYGB7ciBlY2hvPVRSVUUsIGV2YWw9VFJVRSwgcmVzdWx0cz0naGlkZSd9DQpteWVmZiA8LSBnZXRFZmZlY3RzKCBteWRhdGFfUlIyICkNCm15ZWZmX20xIDwtIG15ZWZmDQoNCiNhY2NvcmRpbmcgdG8gc3VnZ2VzdGlvbiBvZiByc2llbmEgbWFudWFsDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIGluUG9wU3FydCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBpblBvcFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBpblBvcFNxcnQsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0QWN0U3FydCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRBY3RTcXJ0LCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgb3V0QWN0U3FydCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRQb3BTcXJ0LCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIG91dFBvcFNxcnQsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCBvdXRQb3BTcXJ0LCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHRyYW5zVHJpcCwgbmFtZT0iZm5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCB0cmFuc1RyaXAsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTEgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20xLCB0cmFuc1RyaXAsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX20xIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMSwgc2hhcmVkUG9wLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHNoYXJlZFBvcCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMSA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTEsIHNoYXJlZFBvcCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTIgPC0gbXllZmZfbTENCg0KIyJrYW1lcmxpZDIwMTYiICJwbGVrbGlqc3QiICAgICJwbGVrbGlqc3QxIg0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgYWx0WCwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJrYW1lcmxpZDIwMTYiLCBhbHRYLCBuYW1lPSJydG5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGVnb1gsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBzZXRFZmZlY3QoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIGVnb1gsIG5hbWU9ImZuZXQiLCBmaXg9VFJVRSwgaW5pdGlhbFZhbHVlID0gLTMsIHRlc3Q9VFJVRSApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2IiwgZWdvWCwgbmFtZT0icnRuZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIHNhbWVYLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9ImthbWVybGlkMjAxNiIsIHNhbWVYLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0ia2FtZXJsaWQyMDE2Iiwgc2FtZVgsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGFsdFgsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgYWx0WCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGFsdFgsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0MSIsIGVnb1gsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QxIiwgZWdvWCwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdDEiLCBlZ29YLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZWdvWCwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBlZ29YLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZWdvWCwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgaW50ZXJhY3Rpb24xPSJwbGVrbGlqc3QiLCBhbHRYLCBuYW1lPSJmbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgYWx0WCwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgYWx0WCwgbmFtZT0icnRuZXQiICkNCg0KI3RoZXNlIG5lZWQgdG8gYmUgZHJvcHBlZCBkdWUgdG8gY29sbGluZWFyaXR5DQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGRpZmZYLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBpbnRlcmFjdGlvbjE9InBsZWtsaWpzdCIsIGRpZmZYLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGludGVyYWN0aW9uMT0icGxla2xpanN0IiwgZGlmZlgsIG5hbWU9InJ0bmV0IiApDQoNCiNhZnN0YW5kDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIFgsIGludGVyYWN0aW9uMT0iYWZzdGFuZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIFgsIGludGVyYWN0aW9uMT0iYWZzdGFuZCIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBYLCBpbnRlcmFjdGlvbjE9ImFmc3RhbmQiLCBuYW1lPSJydG5ldCIgKQ0KDQoNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0iZm5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInNncCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJ2dmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9ImZuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJkZW5rIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkYSIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9ImZuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzZ3AiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic3AiLCBuYW1lPSJmbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAidnZkIiwgbmFtZT0iZm5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJmbmV0IiApDQoNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20yLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInBhcnRpaiIsIG5hbWU9ImF0bW5ldCIgKQ0KDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY2RhIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJkZW5rIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZnZkIiwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJnbCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicHZ2IiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic3AiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJ2dmQiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwbHVzIiwgbmFtZT0iYXRtbmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjdSIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJhdG1uZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImQ2NiIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9ImF0bW5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJhdG1uZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0iYXRtbmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicHZkZCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNncCIsIG5hbWU9ImF0bW5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInNwIiwgbmFtZT0iYXRtbmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9ImF0bW5ldCIgKSAjcmVmZXJlbnRpZQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInBsdXMiLCBuYW1lPSJhdG1uZXQiICkNCg0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTIsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0icnRuZXQiICkNCg0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImNkYSIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiY3UiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImRlbmsiLCBuYW1lPSJydG5ldCIgKQ0KbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAiZDY2IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJmdmQiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gImdsIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRhIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJwdmRkIiwgbmFtZT0icnRuZXQiICkNCm15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGVnb1gsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9InJ0bmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgZWdvWCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9InJ0bmV0IiApICNyZWZlcmVudGllDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBlZ29YLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9InJ0bmV0IiApDQoNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJjZGEiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImN1IiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJkZW5rIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJkNjYiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gImZ2ZCIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAiZ2wiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGEiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2ZGQiLCBuYW1lPSJydG5ldCIgKQ0KI215ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInB2diIsIG5hbWU9InJ0bmV0IiApDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAic2dwIiwgbmFtZT0icnRuZXQiICkNCiNteWVmZl9tMiA8LSBpbmNsdWRlRWZmZWN0cyggbXllZmZfbTIsIGFsdFgsIGludGVyYWN0aW9uMSA9ICJzcCIsIG5hbWU9InJ0bmV0IiApDQojIG15ZWZmX20yIDwtIGluY2x1ZGVFZmZlY3RzKCBteWVmZl9tMiwgYWx0WCwgaW50ZXJhY3Rpb24xID0gInZ2ZCIsIG5hbWU9InJ0bmV0IiApICNyZWZlcmVudGllDQojbXllZmZfbTIgPC0gaW5jbHVkZUVmZmVjdHMoIG15ZWZmX20yLCBhbHRYLCBpbnRlcmFjdGlvbjEgPSAicGx1cyIsIG5hbWU9InJ0bmV0IiApDQoNCm15ZWZmX1JSIDwtIG15ZWZmX20yDQpteWVmZl9SUiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9SUiwgaW50ZXJhY3Rpb24xPSJwYXJ0eXBvcyIsIGFic0RpZmZYLCBuYW1lPSJmbmV0IiApDQpteWVmZl9SUiA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9SUiwgaW50ZXJhY3Rpb24xPSJwYXJ0eXBvcyIsIGFic0RpZmZYLCBuYW1lPSJydG5ldCIgKQ0KDQojIEludGVyYWN0aW9uIHNhbWUgcGFydHkgd2l0aCBsYXN0IG9uIGxpc3QuIA0KDQpteWVmZl9SUjJfSTEgPC0gbXllZmZfUlINCm15ZWZmX1JSMl9JMSA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9SUjJfSTEsIGVnb1gsIGludGVyYWN0aW9uMT1jKCJsYXN0bGlzdCIpLCBuYW1lPSJmbmV0IiApDQpteWVmZl9SUjJfSTEgPC0gaW5jbHVkZUludGVyYWN0aW9uKG15ZWZmX1JSMl9JMSwgZWdvWCwgc2FtZVgsIGludGVyYWN0aW9uMT1jKCJsYXN0bGlzdCIsICJwYXJ0aWoiKSwgbmFtZT0iZm5ldCIgKQ0KDQpteWVmZl9SUjJfSTEgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfUlIyX0kxLCBlZ29YLCBpbnRlcmFjdGlvbjE9YygibGFzdGxpc3QiKSwgbmFtZT0icnRuZXQiICkNCm15ZWZmX1JSMl9JMSA8LSBpbmNsdWRlSW50ZXJhY3Rpb24obXllZmZfUlIyX0kxLCBlZ29YLCBzYW1lWCwgaW50ZXJhY3Rpb24xPWMoImxhc3RsaXN0IiwgInBhcnRpaiIpLCBuYW1lPSJydG5ldCIgKQ0KDQpteWVmZl9SUjJfSTEgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfUlIyX0kxLCBlZ29YLCBpbnRlcmFjdGlvbjE9YygibGFzdGxpc3QiKSwgbmFtZT0iYXRtbmV0IiApDQpteWVmZl9SUjJfSTEgPC0gaW5jbHVkZUludGVyYWN0aW9uKG15ZWZmX1JSMl9JMSwgZWdvWCwgc2FtZVgsIGludGVyYWN0aW9uMT1jKCJsYXN0bGlzdCIsICJwYXJ0aWoiKSwgbmFtZT0iYXRtbmV0IiApDQoNCmBgYA0KDQoNCmBgYHtyIGVjaG89VFJVRSwgZXZhbD1UUlVFfQ0KbXllZmZfUlIyX0kxDQpgYGANCg0KIyMjIGVzdGltYXRlIG1vZGVsDQoNCmBgYHtyLCBlY2hvPVRSVUUsIGV2YWw9RkFMU0V9DQpteWFsZ29yaXRobVJSMiA8LSBzaWVuYUFsZ29yaXRobUNyZWF0ZSggcHJvam5hbWUgPSAnUlIyJykNCg0KYW5zUlIyX0kxIDwtIHNpZW5hMDcoIG15YWxnb3JpdGhtUlIyLCBkYXRhID0gbXlkYXRhX1JSMiwgZWZmZWN0cyA9IG15ZWZmX1JSMl9JMSwgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz0xMiwgaW5pdEM9VFJVRSwgYmF0Y2g9VFJVRSkNCg0Kc2F2ZShhbnNSUjJfSTEsIGZpbGU9cGFzdGUoImFuc1JSMl9JMSIsIi5SRGF0YSIsc2VwPSIiKSkNCmBgYA0KDQojIyMgTW9kZWwgUlIyIC0gZmluYWwgIHsuYWN0aXZlfQ0KDQpUaGUgcGFyYW1ldGVycyBvZiBpbnRlcmVzdCBhcmUgaW4gcmVkLiANCg0KUGxlYXNlIG5vdGUsIFNFIGFyZSBsYXJnZSBhbmQgdGhhdCB0aGUgb3ZlcmFsbCBjb252ZXJnZW5jZSByYXRpbyBpcyB1bnNhdGlzZmFjdG9yeS4gQnV0IHRoZXNlIHJlc3VsdHMgZG8gbm90IHByb3ZpZGUgY2xlYXIgY29ycm9ib3JhdGl2ZSBldmlkZW5jZSB0aGF0IHRoZSBpbXBhY3Qgb2YgdGhlIHNhbWUtcGFydHkgZWZmZWN0IGlzIGNvbmRpdGlvbmFsIG9uIHdoZXRoZXIgYW4gTVAgaG9sZHMgdGhlIGhpZ2hlc3QgcG9zaXRpb24gb24gdGhlIHNwZWNpZmljIGVsZWN0aW9uIGxpc3QuIA0KDQpgYGB7ciwgZWNobz1UUlVFLCBldmFsPVRSVUV9DQpsb2FkKCJhbnNSUjJfSTEuUkRhdGEiKQ0KDQoNCnJlcyA8LSByb3VuZChmYW5zY3N2KGFuc1JSMl9JMSlbLDE6Ml0sNSkNCm1jcG9zIDwtIGxlbmd0aChyZXNbLDFdKQ0KcmVzIDwtIHJlc1stbWNwb3MsXQ0KbWMgPC0gYXMuY2hhcmFjdGVyKHJvdW5kKGZhbnNjc3YoYW5zUlIyX0kxKVttY3BvcywxXSwzKSkNCnJvdy5uYW1lcyhyZXMpIDwtIGMoDQogInJhdGUgMSIgICwgICAgICANCiAicmF0ZSAyIiAgICwgICAgIA0KICJvdXRkZWdyZWUiICAgICAgICAgICwgIA0KICJyZWNpcHJvY2l0eSIgICAgICAgICAsICAgICAgICAgICANCiAidHJhbnNpdGl2ZSB0cmlwbGV0cyIgICwgICAgICAgICAgDQogInNoYXJlZCBwb3B1bGFyaXR5IiAgICAgLCAgICAgICAgIA0KICJpbmRlZ3JlZSAtIHBvcHVsYXJpdHkiICAgLA0KICAiIG91dGRlZ3JlZSAtIHBvcHVsYXJpdHkiICwgDQogIm91dGRlZ3JlZSAtIGFjdGl2aXR5IiAgICAsDQogInNlYXRpbmcgZGlzdGFuY2UgKGR5YWQpIiAgICAgICAgICwgICAgICAgICAgICAgICANCiAic2FtZSBwYXJ0eSAoZHlhZCkiICAgICAgICAgICAgICAgICwgICAgDQoiaW5jdW1iYW5jeSBzdGF0dXMgKGFsdGVyKSIgICAgICAgICAgLCAgIA0KInNhbWUgaW5jdW1iYW5jeSBzdGF0dXMgKGR5YWQpIiAgICAgICAsICAgICAgIA0KInBvc2l0aW9uIG9uIGVsZWN0aW9uIGxpc3QgKGVnbykiICAgICAgLA0KImlkZW9sb2dpY2FsIGRpc3RhbmNlIChkeWFkKSIgLA0KImxhc3Qgb24gZWxlY3Rpb24gbGlzdCIsDQoibGFzdCBvbiBlbGVjdGlvbiBsaXN0ICogc2FtZSBwYXJ0eSIsDQogInJhdGUgMSIgICAgICAsDQogInJhdGUgMiIgICAgICAsDQoib3V0ZGVncmVlIiAgICAgICAgICAsDQogInJlY2lwcm9jaXR5IiAgICAgICAgLCAgICAgICAgICANCiAidHJhbnNpdGl2ZSB0cmlwbGV0cyIgLCAgICAgICAgIA0KICJzaGFyZWQgcG9wdWxhcml0eSIgICAgLCAgICAgICAgDQogImluZGVncmVlIC0gcG9wdWxhcml0eSIgLA0KICJvdXRkZWdyZWUgLSBwb3B1bGFyaXR5IiwNCiJvdXRkZWdyZWUgLSBhY3Rpdml0eSAiICAsDQogInNhbWUgcGFydHkgKGR5YWQpIiAgICAgICAgICAgICwgICAgICANCiJwYXJ0eSBMaWJlcmFsIERlbW9jcmF0cyAoYWx0ZXIpIiwgICAgICAgICAgICAgICAgICAgIA0KInBhcnR5IEdyZWVuTGVmdCAoYWx0ZXIpIiAgICAgICAgICwgICAgICAgICAgICANCiAicGFydHkgR3JlZW5MZWZ0IChlZ28pIiAgICAgICAgICAgLCAgICAgICAgICAgIA0KICJwb3NpdGlvbiBvbiBlbGVjdGlvbiBsaXN0IChhbHRlcikiLCAgICAgICAgICAgICAgDQoicGFydHkgbGVhZGVyIChhbHRlcikiICAgICAgICAgICAgICwNCiAicGFydHkgbGVhZGVyIChlZ28pIiAgICAgICAgICAgICAgICwNCiJsYXN0IG9uIGVsZWN0aW9uIGxpc3QiLA0KImxhc3Qgb24gZWxlY3Rpb24gbGlzdCAqIHNhbWUgcGFydHkiLA0KICJyYXRlIDEiICAgICAgICwNCiAicmF0ZSAyIiAgICAgICAsDQoib3V0ZGVncmVlIiAgICAgICAgICAgLA0KInJlY2lwcm9jaXR5IiAgICAgICAgICAsICAgICAgICAgDQoidHJhbnNpdGl2ZSB0cmlwbGV0cyIgICAsICAgICAgICANCiJzaGFyZWQgcG9wdWxhcml0eSIgICAgICAsICAgICAgIA0KImluZGVncmVlIC0gcG9wdWxhcml0eSAiLCAgDQoib3V0ZGVncmVlIC0gcG9wdWxhcml0eSIsIA0KIm91dGRlZ3JlZSAtIGFjdGl2aXR5ICIgICAsDQoic2VhdGluZyBkaXN0YW5jZSAoZHlhZCkiICAgICAgICAsICAgICAgICAgICAgICAgDQogInNhbWUgcGFydHkgKGR5YWQpIiAgICAgICAgICAgICAgLCAgICAgDQogInBhcnR5IExpYmVyYWwgRGVtb2NyYXRzIChlZ28pIiAgICwgICAgICAgICAgICAgICAgICAgIA0KICJwYXJ0eSBGcmVlZG9tIFBhcnR5IChlZ28pIiAgICAgICAgLCAgICAgICAgICAgICAgIA0KICJpbmN1bWJhbmN5IHN0YXR1cyAoYWx0ZXIpIiAgICAgICAgICwgICANCiAiaW5jdW1iYW5jeSBzdGF0dXMgKGVnbykiICAgICAgICAgICAgLCAgDQogInBvc2l0aW9uIG9uIGVsZWN0aW9uIGxpc3QgKGFsdGVyKSIgICAsICAgICAgICAgICAgDQoicGFydHkgbGVhZGVyIChhbHRlcikiLCANCiAiaWRlb2xvZ2ljYWwgZGlzdGFuY2UgKGR5YWQpIiwNCiJsYXN0IG9uIGVsZWN0aW9uIGxpc3QiLA0KImxhc3Qgb24gZWxlY3Rpb24gbGlzdCAqIHNhbWUgcGFydHkiDQopDQogIA0KUlIyIDwtIGtibChyZXMsIGJvb2t0YWJzPVRSVUUsIGRpZ2l0cz0zLCBjYXB0aW9uPSJNb2RlbCBSUjI6IGluY2x1ZGluZyAnbGFzdCBvbiBlbGVjdGlvbiBsaXN0ICogc2FtZSBwYXJ0eSciLCBhbGlnbiA9ICJjIikgJT4lDQogIGthYmxlX2NsYXNzaWMoZnVsbF93aWR0aCA9IEYsIGh0bWxfZm9udCA9ICJDYW1icmlhIikgJT4lDQogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJzdHJpcGVkIiwgImhvdmVyIiwgImNvbmRlbnNlZCIsICJyZXNwb25zaXZlIikpICU+JQ0KICBjb2x1bW5fc3BlYyhjb2x1bW4gPSAxLCB3aWR0aCA9ICIzaW4iKSAgICU+JQ0KICByb3dfc3BlYyhjKDE2LDE3LCAzNCwzNSw1NCw1NSksIGJvbGQgPSBULCBjb2xvciA9ICJ3aGl0ZSIsIGJhY2tncm91bmQgPSAiI0Q3MjYxRSIpICU+JQ0KICBncm91cF9yb3dzKGluZGV4ID0gYygiRm9sbG93aW5nIiA9IDE3LCAiQXRtZW50aW9uIiA9IDE4LCAiUmV0d2VldHMiID0gMjApKSAlPiUNCiAgZm9vdG5vdGUoZ2VuZXJhbCA9IHBhc3RlKCJPdmVyYWxsIG1heGltdW0gY29udmVyZ2VuY2UgcmF0aW86ICIsIG1jLCBzZXA9IiIgKSkNCg0KDQpSUjINCg0KYGBgDQoNCi0tLSAgDQoNCiAgDQoNCg0KDQoNCiMgSHlwb3RoZXNpcyAzIHsudGFic2V0IC50YWJzZXQtZmFkZX0gDQoNCiMjIEJhc2VkIG9uIE1vZGVsIDEgDQoNClRlc3QgZm9yIHNpZ25pZmljYW5jZSBvZiB0aGUgZGlmZmVyZW5jZSBpbiBwYXJ0eS1iYXNlZCBzZWdyZWdhdGlvbiBpbiB0aGUgdGhyZWUgVHdpdHRlciBsYXllcnMgYmFzZWQgb24gTW9kZWwgMS4gDQoNCkh5cG90aGVzaXMgM2E6IFNlZ3JlZ2F0aW9uIGluIGF0bWVudGlvbiBpcyBsYXJnZXIgdGhhbiBpbiBmb2xsb3cuIE5vIGJlY2F1c2UuLi4NCg0KYGBge3IsIGVjaG89VFJVRSwgZXZhbD1UUlVFLCByZXN1bHRzPSdob2xkJ30NCmxvYWQoImFuc004Yy5SRGF0YSIpDQphbnMgPC0gYW5zTThjDQpwIDwtIGFucyRwcA0KDQojIyBzZWdyZWdhdGlvbiBpbiBhdG1lbnRpb24gaXMgbGFyZ2VyIHRoYW4gaW4gZm9sbG93DQptYXQgPC0gbWF0cml4KDAsMSxwKQ0KbWF0WzEsMjRdIDwtIC0xDQptYXRbMSwxMV0gPC0gMQ0KV2FsZC5SU2llbmEobWF0LCBhbnMpDQoNCmRpZiA8LSBzdW0obWF0ICogYW5zJHRoZXRhKQ0Kc2UgPC0gc3FydChtYXQgJSolIGFucyRjb3Z0aGV0YSAlKiUgdChtYXQpKQ0KDQpwcmludChwYXN0ZSgiZGlmZmVyZW5jZSBpcyIsIHJvdW5kKGRpZiwzKSwgIndpdGggcy5lLiIsIHJvdW5kKHNlLCAzKSwgIiwgdC1yYXRpbyIsIHJvdW5kKGRpZi9zZSwgMykpKQ0KDQoNCmBgYA0KDQpIeXBvdGhlc2lzIDNiOiBTZWdyZWdhdGlvbiBpbiBmb2xsb3cgaXMgbGFyZ2VyIHRoYW4gaW4gcmV0d2VldC4gTm8gYmVjYXVzZS4uLg0KDQpgYGB7ciwgZWNobz1UUlVFLCBldmFsPVRSVUUsIHJlc3VsdHM9J2hvbGQnfQ0KYW5zIDwtIGFuc004Yw0KcCA8LSBhbnMkcHANCg0KIyMgc2VncmVnYXRpb24gaW4gYXRtZW50aW9uIGlzIGxhcmdlciB0aGFuIGluIGZvbGxvdw0KbWF0IDwtIG1hdHJpeCgwLDEscCkNCm1hdFsxLDExXSA8LSAtMQ0KbWF0WzEsNDFdIDwtIDENCldhbGQuUlNpZW5hKG1hdCwgYW5zKQ0KDQpkaWYgPC0gc3VtKG1hdCAqIGFucyR0aGV0YSkNCnNlIDwtIHNxcnQobWF0ICUqJSBhbnMkY292dGhldGEgJSolIHQobWF0KSkNCg0KcHJpbnQocGFzdGUoImRpZmZlcmVuY2UgaXMiLCByb3VuZChkaWYsMyksICJ3aXRoIHMuZS4iLCByb3VuZChzZSwgMyksICIsIHQtcmF0aW8iLCByb3VuZChkaWYvc2UsIDMpKSkNCg0KYGBgDQoNClNlZ3JlZ2F0aW9uIGluIGF0bWVudGlvbiBpcyBsYXJnZXIgdGhhbiBpbiByZXR3ZWV0LiBZZXMsIGJlY2F1c2UuLi4NCg0KYGBge3IsIGVjaG89VFJVRSwgZXZhbD1UUlVFLCByZXN1bHRzPSdob2xkJ30NCmFucyA8LSBhbnNNOGMNCnAgPC0gYW5zJHBwDQoNCiMjIHNlZ3JlZ2F0aW9uIGluIGF0bWVudGlvbiBpcyBsYXJnZXIgdGhhbiBpbiBmb2xsb3cNCm1hdCA8LSBtYXRyaXgoMCwxLHApDQptYXRbMSwyNF0gPC0gLTENCm1hdFsxLDQxXSA8LSAxDQpXYWxkLlJTaWVuYShtYXQsIGFucykNCg0KZGlmIDwtIHN1bShtYXQgKiBhbnMkdGhldGEpDQpzZSA8LSBzcXJ0KG1hdCAlKiUgYW5zJGNvdnRoZXRhICUqJSB0KG1hdCkpDQoNCnByaW50KHBhc3RlKCJkaWZmZXJlbmNlIGlzIiwgcm91bmQoZGlmLDMpLCAid2l0aCBzLmUuIiwgcm91bmQoc2UsIDMpLCAiLCB0LXJhdGlvIiwgcm91bmQoZGlmL3NlLCAzKSkpDQoNCmBgYA0KDQotLS0gIA0KDQojIyBCYXNlZCBvbiBNb2RlbCAyIA0KDQpIeXBvdGhlc2lzIDNhOiBTZWdyZWdhdGlvbiBpbiBhdG1lbnRpb24gaXMgbGFyZ2VyIHRoYW4gaW4gZm9sbG93LiBObyBiZWNhdXNlLi4uDQoNCmBgYHtyLCBlY2hvPVRSVUUsIGV2YWw9VFJVRSwgcmVzdWx0cz0naG9sZCd9DQpsb2FkKCJhbnNNMTBjLlJEYXRhIikNCmFucyA8LSBhbnNNMTBjDQpwIDwtIGFucyRwcA0KDQojIyBzZWdyZWdhdGlvbiBpbiBhdG1lbnRpb24gaXMgbGFyZ2VyIHRoYW4gaW4gZm9sbG93DQptYXQgPC0gbWF0cml4KDAsMSxwKQ0KbWF0WzEsMzBdIDwtIC0xDQptYXRbMSwxMV0gPC0gMQ0KV2FsZC5SU2llbmEobWF0LCBhbnMpDQoNCmRpZiA8LSBzdW0obWF0ICogYW5zJHRoZXRhKQ0Kc2UgPC0gc3FydChtYXQgJSolIGFucyRjb3Z0aGV0YSAlKiUgdChtYXQpKQ0KDQpwcmludChwYXN0ZSgiZGlmZmVyZW5jZSBpcyIsIHJvdW5kKGRpZiwzKSwgIndpdGggcy5lLiIsIHJvdW5kKHNlLCAzKSwgIiwgdC1yYXRpbyIsIHJvdW5kKGRpZi9zZSwgMykpKQ0KDQoNCmBgYA0KDQpIeXBvdGhlc2lzIDNiOiBTZWdyZWdhdGlvbiBpbiBmb2xsb3cgaXMgbGFyZ2VyIHRoYW4gaW4gcmV0d2VldC4gTm8gYmVjYXVzZS4uLg0KDQpgYGB7ciwgZWNobz1UUlVFLCBldmFsPVRSVUUsIHJlc3VsdHM9J2hvbGQnfQ0KYW5zIDwtIGFuc00xMGMNCnAgPC0gYW5zJHBwDQoNCiMjIHNlZ3JlZ2F0aW9uIGluIGF0bWVudGlvbiBpcyBsYXJnZXIgdGhhbiBpbiBmb2xsb3cNCm1hdCA8LSBtYXRyaXgoMCwxLHApDQptYXRbMSwxMV0gPC0gLTENCm1hdFsxLDUwXSA8LSAxDQpXYWxkLlJTaWVuYShtYXQsIGFucykNCg0KZGlmIDwtIHN1bShtYXQgKiBhbnMkdGhldGEpDQpzZSA8LSBzcXJ0KG1hdCAlKiUgYW5zJGNvdnRoZXRhICUqJSB0KG1hdCkpDQoNCnByaW50KHBhc3RlKCJkaWZmZXJlbmNlIGlzIiwgcm91bmQoZGlmLDMpLCAid2l0aCBzLmUuIiwgcm91bmQoc2UsIDMpLCAiLCB0LXJhdGlvIiwgcm91bmQoZGlmL3NlLCAzKSkpDQoNCmBgYA0KDQpTZWdyZWdhdGlvbiBpbiBhdG1lbnRpb24gaXMgbGFyZ2VyIHRoYW4gaW4gcmV0d2VldC4gWWVzLCBiZWNhdXNlLi4uDQoNCmBgYHtyLCBlY2hvPVRSVUUsIGV2YWw9VFJVRSwgcmVzdWx0cz0naG9sZCd9DQphbnMgPC0gYW5zTTEwYw0KcCA8LSBhbnMkcHANCg0KIyMgc2VncmVnYXRpb24gaW4gYXRtZW50aW9uIGlzIGxhcmdlciB0aGFuIGluIGZvbGxvdw0KbWF0IDwtIG1hdHJpeCgwLDEscCkNCm1hdFsxLDMwXSA8LSAtMQ0KbWF0WzEsNTBdIDwtIDENCldhbGQuUlNpZW5hKG1hdCwgYW5zKQ0KDQpkaWYgPC0gc3VtKG1hdCAqIGFucyR0aGV0YSkNCnNlIDwtIHNxcnQobWF0ICUqJSBhbnMkY292dGhldGEgJSolIHQobWF0KSkNCg0KcHJpbnQocGFzdGUoImRpZmZlcmVuY2UgaXMiLCByb3VuZChkaWYsMyksICJ3aXRoIHMuZS4iLCByb3VuZChzZSwgMyksICIsIHQtcmF0aW8iLCByb3VuZChkaWYvc2UsIDMpKSkNCg0KYGBgDQoNCi0tLSAgDQoNCg0KIyMgQmFzZWQgb24gTW9kZWwgMyANCg0KDQpIeXBvdGhlc2lzIDNhOiBTZWdyZWdhdGlvbiBpbiBhdG1lbnRpb24gaXMgbGFyZ2VyIHRoYW4gaW4gZm9sbG93LiBOby9ZRVMgYmVjYXVzZS4uLg0KDQpgYGB7ciwgZWNobz1UUlVFLCBldmFsPVRSVUUsIHJlc3VsdHM9J2hvbGQnfQ0KbG9hZCgiYW5zTTEyLlJEYXRhIikNCmFucyA8LSBhbnNNMTINCnAgPC0gYW5zJHBwDQoNCiMjIHNlZ3JlZ2F0aW9uIGluIGF0bWVudGlvbiBpcyBsYXJnZXIgdGhhbiBpbiBmb2xsb3cNCm1hdCA8LSBtYXRyaXgoMCwxLHApDQptYXRbMSwzMl0gPC0gLTENCm1hdFsxLDExXSA8LSAxDQpXYWxkLlJTaWVuYShtYXQsIGFucykNCg0KZGlmIDwtIHN1bShtYXQgKiBhbnMkdGhldGEpDQpzZSA8LSBzcXJ0KG1hdCAlKiUgYW5zJGNvdnRoZXRhICUqJSB0KG1hdCkpDQoNCnByaW50KHBhc3RlKCJkaWZmZXJlbmNlIGlzIiwgcm91bmQoZGlmLDMpLCAid2l0aCBzLmUuIiwgcm91bmQoc2UsIDMpLCAiLCB0LXJhdGlvIiwgcm91bmQoZGlmL3NlLCAzKSkpDQoNCg0KYGBgDQoNCkh5cG90aGVzaXMgM2I6IFNlZ3JlZ2F0aW9uIGluIGZvbGxvdyBpcyBsYXJnZXIgdGhhbiBpbiByZXR3ZWV0LiBObyBiZWNhdXNlLi4uDQoNCmBgYHtyLCBlY2hvPVRSVUUsIGV2YWw9VFJVRSwgcmVzdWx0cz0naG9sZCd9DQphbnMgPC0gYW5zTTEyDQpwIDwtIGFucyRwcA0KDQojIyBzZWdyZWdhdGlvbiBpbiBhdG1lbnRpb24gaXMgbGFyZ2VyIHRoYW4gaW4gZm9sbG93DQptYXQgPC0gbWF0cml4KDAsMSxwKQ0KbWF0WzEsMTFdIDwtIC0xDQptYXRbMSw1Ml0gPC0gMQ0KV2FsZC5SU2llbmEobWF0LCBhbnMpDQoNCmRpZiA8LSBzdW0obWF0ICogYW5zJHRoZXRhKQ0Kc2UgPC0gc3FydChtYXQgJSolIGFucyRjb3Z0aGV0YSAlKiUgdChtYXQpKQ0KDQpwcmludChwYXN0ZSgiZGlmZmVyZW5jZSBpcyIsIHJvdW5kKGRpZiwzKSwgIndpdGggcy5lLiIsIHJvdW5kKHNlLCAzKSwgIiwgdC1yYXRpbyIsIHJvdW5kKGRpZi9zZSwgMykpKQ0KDQpgYGANCg0KU2VncmVnYXRpb24gaW4gYXRtZW50aW9uIGlzIGxhcmdlciB0aGFuIGluIHJldHdlZXQuIFllcywgYmVjYXVzZS4uLg0KDQpgYGB7ciwgZWNobz1UUlVFLCBldmFsPVRSVUUsIHJlc3VsdHM9J2hvbGQnfQ0KYW5zIDwtIGFuc00xMg0KcCA8LSBhbnMkcHANCg0KIyMgc2VncmVnYXRpb24gaW4gYXRtZW50aW9uIGlzIGxhcmdlciB0aGFuIGluIGZvbGxvdw0KbWF0IDwtIG1hdHJpeCgwLDEscCkNCm1hdFsxLDMwXSA8LSAtMQ0KbWF0WzEsNTBdIDwtIDENCldhbGQuUlNpZW5hKG1hdCwgYW5zKQ0KDQpkaWYgPC0gc3VtKG1hdCAqIGFucyR0aGV0YSkNCnNlIDwtIHNxcnQobWF0ICUqJSBhbnMkY292dGhldGEgJSolIHQobWF0KSkNCg0KcHJpbnQocGFzdGUoImRpZmZlcmVuY2UgaXMiLCByb3VuZChkaWYsMyksICJ3aXRoIHMuZS4iLCByb3VuZChzZSwgMyksICIsIHQtcmF0aW8iLCByb3VuZChkaWYvc2UsIDMpKSkNCg0KYGBgDQoNCg0KLS0tICANCg0KIyBUaW1lIGhldGVyb2dlbmVpdHkgIGluIHNhbWUgcGFydHkgZWZmZWN0IHsudGFic2V0IC50YWJzZXQtZmFkZX0NCg0KIyMgRW1wdHkgbW9kZWwgDQoNCg0KYGBge3IsIGVjaG89VFJVRX0NCg0KbXllZmYgPC0gZ2V0RWZmZWN0cyggbXlkYXRhICkNCm15ZWZmX20wIDwtIG15ZWZmDQoNCm15ZWZmX20wIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20wLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInBhcnRpaiIsIG5hbWU9ImZuZXQiICkNCm15ZWZmX20wIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20wLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInBhcnRpaiIsIG5hbWU9InJ0bmV0IiApDQpteWVmZl9tMCA8LSBpbmNsdWRlRWZmZWN0cyhteWVmZl9tMCwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJhdG1uZXQiICkNCg0KI3JlbW92ZSByZWNpcHJvY2l0eQ0KbXllZmZfbTAgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTAsIHJlY2lwLCBuYW1lPSJmbmV0IiwgaW5jbHVkZSA9IEZBTFNFKQ0KbXllZmZfbTAgPC0gaW5jbHVkZUVmZmVjdHMobXllZmZfbTAsIHJlY2lwLCBuYW1lPSJydG5ldCIsIGluY2x1ZGUgPSBGQUxTRSkNCm15ZWZmX20wIDwtIGluY2x1ZGVFZmZlY3RzKG15ZWZmX20wLCByZWNpcCwgbmFtZT0iYXRtbmV0IiwgaW5jbHVkZSA9IEZBTFNFKQ0KbXllZmZfbTANCg0KI2luY2x1ZGUgdGhlIHRpbWUgaW50ZXJhY3Rpb25zDQpteWVmZl9tMCA8LSBpbmNsdWRlVGltZUR1bW15KG15ZWZmX20wLCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInBhcnRpaiIsIG5hbWU9ImZuZXQiLCB0aW1lRHVtbXk9IjIiKQ0KbXllZmZfbTAgPC0gaW5jbHVkZVRpbWVEdW1teShteWVmZl9tMCwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJhdG1uZXQiLCB0aW1lRHVtbXk9IjIiKQ0KbXllZmZfbTAgPC0gaW5jbHVkZVRpbWVEdW1teShteWVmZl9tMCwgc2FtZVgsIGludGVyYWN0aW9uMSA9ICJwYXJ0aWoiLCBuYW1lPSJydG5ldCIsIHRpbWVEdW1teT0iMiIpDQpteWVmZl9tMA0KDQojZXN0aW1hdGVzDQpteWFsZ29yaXRobSA8LSBzaWVuYUFsZ29yaXRobUNyZWF0ZSggcHJvam5hbWUgPSAnTTAnKQ0KYW5zTTAgPC0gc2llbmEwNyggbXlhbGdvcml0aG0sIGRhdGEgPSBteWRhdGEsIGVmZmVjdHMgPSBteWVmZl9tMCwgdXNlQ2x1c3Rlcj1UUlVFLCBuYnJOb2Rlcz00LCBpbml0Qz1UUlVFLCBiYXRjaD1UUlVFKQ0KYW5zTTANCg0Kc2F2ZShhbnNNMCwgZmlsZT1wYXN0ZSgiYW5zTTAiLCIuUkRhdGEiLHNlcD0iIikpDQoNCmBgYCAgDQoNCmBgYHtyLCBldmFsPVRSVUV9DQoNCmxvYWQoImFuc00wLlJEYXRhIikNCmFuc00wDQoNCmBgYA0KDQoNCiMjIE1vZGVsIDEgey5hY3RpdmV9DQoNCmBgYHtyLCBlY2hvPVRSVUUsIGV2YWw9VFJVRX0NCmxvYWQoImFuc004Yy5SRGF0YSIpDQoNCg0KdHQgPC0gc2llbmFUaW1lVGVzdChhbnNNOGMsICBlZmZlY3RzPWMoMTEsMjQsNDEpKQ0KI3R0DQojdHQkRWZmZWN0VGVzdA0KI3R0JEluZGl2aWR1YWxUZXN0DQpwbG90KHR0KQ0KDQpgYGANCg0KDQpgYGB7ciwgZWNobz1UUlVFfQ0KDQpteWVmZl90IDwtIG15ZWZmX20yDQoNCm15ZWZmX3QgPC0gaW5jbHVkZVRpbWVEdW1teShteWVmZl90LCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInBhcnRpaiIsIG5hbWU9ImZuZXQiLCB0aW1lRHVtbXk9IjIiKQ0KbXllZmZfdCA8LSBpbmNsdWRlVGltZUR1bW15KG15ZWZmX3QsIHNhbWVYLCBpbnRlcmFjdGlvbjEgPSAicGFydGlqIiwgbmFtZT0iYXRtbmV0IiwgdGltZUR1bW15PSIyIikNCm15ZWZmX3QgPC0gaW5jbHVkZVRpbWVEdW1teShteWVmZl90LCBzYW1lWCwgaW50ZXJhY3Rpb24xID0gInBhcnRpaiIsIG5hbWU9InJ0bmV0IiwgdGltZUR1bW15PSIyIikNCm15ZWZmX3QNCg0KbXlhbGdvcml0aG0gPC0gc2llbmFBbGdvcml0aG1DcmVhdGUoIHByb2puYW1lID0gJ004Y190JywgbnN1Yj01LCBuMz01MDAwICkNCmFuc004Y190IDwtIHNpZW5hMDcoIG15YWxnb3JpdGhtLCBkYXRhID0gbXlkYXRhLCBwcmV2QW5zPWFuc004YywgZWZmZWN0cyA9IG15ZWZmX3QsIHVzZUNsdXN0ZXI9VFJVRSwgbmJyTm9kZXM9MTAsIGluaXRDPVRSVUUsIGJhdGNoPVRSVUUpDQphbnNNOGNfdCANCnNhdmUoYW5zTThjX3QsIGZpbGU9cGFzdGUoImFuc004Y190IiwiLlJEYXRhIixzZXA9IiIpKQ0KYGBgIA0KDQpgYGB7ciwgZWNobz1UUlVFLCBldmFsPVRSVUV9DQoNCmxvYWQoImFuc004Y190LlJEYXRhIikJDQojeHRhYmxlLnNpZW5hRml0KGFuc004Y190LCBmaWxlPSJhbnNNOGNfdC5odG1sIiwgdHlwZT0iaHRtbCIsIGRpZ2l0cz0zKQ0KDQoNCnJlcyA8LSByb3VuZChmYW5zY3N2KGFuc004Y190KVtjKDExLDE2LDI2LDM0LDQ1LDUzKSwgMToyXSw1KQ0KDQptYyA8LSBhcy5jaGFyYWN0ZXIocm91bmQoZmFuc2NzdihhbnNNOGNfdClbNTQsMV0sMykpDQoNCnJvdy5uYW1lcyhyZXMpIDwtIGMoDQogInNhbWUgcGFydHkgKGR5YWQpIiAgLCAgICAgIA0KICJ0aW1lKnNhbWUgcGFydHkiICAgLCAgICAgDQogInNhbWUgcGFydHkgKGR5YWQpIiAgLCAgICAgIA0KICJ0aW1lKnNhbWUgcGFydHkiICAgLCAgICAgDQogInNhbWUgcGFydHkgKGR5YWQpIiAgLCAgICAgIA0KICJ0aW1lKnNhbWUgcGFydHkiICAgDQopDQogIA0KTTQgPC0ga2JsKHJlcywgYm9va3RhYnM9VFJVRSwgZGlnaXRzPTMsIGNhcHRpb249Ik1vZGVsIDQiLCBhbGlnbiA9ICJjIikgJT4lDQogIGthYmxlX2NsYXNzaWMoZnVsbF93aWR0aCA9IEYsIGh0bWxfZm9udCA9ICJDYW1icmlhIikgJT4lDQogIGthYmxlX3N0eWxpbmcoYm9vdHN0cmFwX29wdGlvbnMgPSBjKCJzdHJpcGVkIiwgImhvdmVyIiwgImNvbmRlbnNlZCIsICJyZXNwb25zaXZlIikpICU+JQ0KICBjb2x1bW5fc3BlYyhjb2x1bW4gPSAxLCB3aWR0aCA9ICIzaW4iKSAgICU+JQ0KICAjcm93X3NwZWMoYygxMSwgMjQsNDEpLCBib2xkID0gVCwgY29sb3IgPSAid2hpdGUiLCBiYWNrZ3JvdW5kID0gIiNENzI2MUUiKSAlPiUNCiAgZ3JvdXBfcm93cyhpbmRleCA9IGMoIkZvbGxvd2luZyIgPSAyLCAiQXRtZW50aW9uIiA9IDIsICJSZXR3ZWV0cyIgPSAyKSkgJT4lDQogIGZvb3Rub3RlKGdlbmVyYWwgPSBwYXN0ZSgiT3ZlcmFsbCBtYXhpbXVtIGNvbnZlcmdlbmNlIHJhdGlvOiAiLCBtYywgc2VwPSIiICkpDQoNCg0KTTQNCg0KYGBgDQoNCi0tLSAgDQoNCiMjIE1vZGVsIDIgIA0KDQpgYGB7ciwgZXZhbD1UUlVFfQ0KbG9hZCgiYW5zTTEwYy5SRGF0YSIpDQoNCnR0IDwtIHNpZW5hVGltZVRlc3QoYW5zTTEwYywgIGVmZmVjdHM9YygxMSwzMCw1MCkpDQoNCnBsb3QodHQpDQpgYGANCg0KLS0tICANCg0KDQojIyBNb2RlbCAzDQoNCg0KYGBge3IsIGV2YWw9VFJVRX0NCmxvYWQoImFuc00xMi5SRGF0YSIpDQoNCnR0IDwtIHNpZW5hVGltZVRlc3QoYW5zTTEyLCAgZWZmZWN0cz1jKDExLDMyLDUyKSkNCg0KcGxvdCh0dCkNCg0KYGBgDQoNCg0KLS0tICANCg0KDQoNCg0KDQojIFJlZmVyZW5jZXMgIA0KDQo=


Copyright © 2021 Jochem Tolsma