This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Cmd+Shift+Enter.

```r
plot(cars)

<!-- rnb-source-end -->

<!-- rnb-chunk-end -->


<!-- rnb-text-begin -->


Add a new chunk by clicking the *Insert Chunk* button on the toolbar or by pressing *Cmd+Option+I*.

When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the *Preview* button or press *Cmd+Shift+K* to preview the HTML file).

The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike *Knit*, *Preview* does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.


<!-- rnb-text-end -->


<!-- rnb-chunk-begin -->


<!-- rnb-source-begin eyJkYXRhIjoiYGBgclxubGlicmFyeShsYXZhYW4pXG5saWJyYXJ5KHNlbVBsb3QpXG5saWJyYXJ5KGhhdmVuKVxubGlicmFyeShkcGx5cilcbmBgYCJ9 -->

```r
library(lavaan)
library(semPlot)
library(haven)
library(dplyr)
library(caTools)  # For Linear regression 
library(car)      # To check multicollinearity 
library(quantmod) 
library(MASS)
library(haven)

@September 5, 2024 Data Analysis with the most recent version (checking cognitive learning, which is Ng_KU + Ng_EC)

#NgKU and NgEC are both in the "cognitive learning" subdomain of the literacy scale.
# Create a new variable by calculating the mean of var1 and var2
data_new$Lit_Ng_CL <- rowMeans(data_new[, c("Ng_AI_Lit_5", "Ng_AI_Lit_6", "Ng_AI_Lit_7", "Ng_AI_Lit_8", "Ng_AI_Lit_9", "Ng_AI_Lit_10")], na.rm = TRUE)
print(data_new)
#filtered_data = duration over 600 (10 minutes)
filtered_data$Lit_Ng_CL <- rowMeans(filtered_data[, c("Ng_AI_Lit_5", "Ng_AI_Lit_6", "Ng_AI_Lit_7", "Ng_AI_Lit_8", "Ng_AI_Lit_9", "Ng_AI_Lit_10")], na.rm = TRUE)
print(filtered_data)
NA
# Specify mediation model that has only credible2 as the second level mediator, and using Lit_Ng_CL (Cognitive learning composite variable)
model_6<-
'
  # Direct effects of IVs on DV
    factcheck_A ~ c1*Lit_Pin_TK + c2*Lit_Pin_SK + c3*Lit_Ng_SE + c4*Lit_Ng_CL

  # Direct effects of IVs on first-level mediators
    MH_expert ~ a3_1*Lit_Pin_TK + a3_2*Lit_Pin_SK + a3_3*Lit_Ng_SE + a3_4*Lit_Ng_CL
    MH_objective ~ a4_1*Lit_Pin_TK + a4_2*Lit_Pin_SK + a4_3*Lit_Ng_SE + a4_4*Lit_Ng_CL
    MH_accurate ~ a5_1*Lit_Pin_TK + a5_2*Lit_Pin_SK + a5_3*Lit_Ng_SE + a5_4*Lit_Ng_CL

  # Direct effects of first-level mediators on second-level mediators
    credible2 ~ b1_3*MH_expert + b1_4*MH_objective + b1_5*MH_accurate
    credible2 ~ b1_6*Lit_Pin_TK + b1_7*Lit_Pin_SK + b1_8*Lit_Ng_SE + b1_9*Lit_Ng_CL


  # Direct effects of first and second-level mediators on DV
    factcheck_A ~ d1*credible2

  # Indirect effects via first and second-level mediators
    SE_expert_credible2 := a3_3*b1_3*d1
    SE_obj_credible2 := a4_3*b1_4*d1
    SE_acc_credible2 := a5_3*b1_5*d1
    
    CL_expert_credible2 := a3_4*b1_3*d1
    CL_object_credible2 := a4_4*b1_4*d1
    CL_acc_credible2 := a5_4*b1_5*d1
    
  #Estimating covariance and residuals 
  #Estimating variances of exogenous variables (Xs)
    Lit_Pin_TK~~Lit_Pin_TK
    Lit_Pin_SK~~Lit_Pin_SK
    Lit_Ng_SE~~Lit_Ng_SE
    Lit_Ng_CL~~Lit_Ng_CL

  #Estimating co-variances of exogenous variables (Xs)
    Lit_Pin_TK~~Lit_Pin_SK
    Lit_Pin_TK~~Lit_Ng_SE
    Lit_Pin_TK~~Lit_Ng_CL
    
    Lit_Pin_SK~~Lit_Ng_SE
    Lit_Pin_SK~~Lit_Ng_CL
    
    Lit_Ng_SE~~Lit_Ng_CL

  #Estimating the residual variances (e1,…) for endogenous variables (Ms and Ys)
    MH_expert~~MH_expert
    MH_objective~~MH_objective
    MH_accurate~~MH_accurate
    credible2~~credible2
    factcheck_A~~factcheck_A

  #Estimating the covariances of residuals for Ms 
    MH_expert~~MH_objective
    MH_expert~~MH_accurate 
    MH_objective~~MH_accurate 
'
# Add bootstrapping to the lavaan function call
result.model_6 <- lavaan(model_6, data = filtered_data, se = "boot", bootstrap = 1000)

# Display the results with the specified options
summary(result.model_6, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)
lavaan 0.6-18 ended normally after 39 iterations

  Estimator                                         ML
  Optimization method                           NLMINB
  Number of model parameters                        42

                                                  Used       Total
  Number of observations                           284         287

Model Test User Model:
                                                      
  Test statistic                                 3.710
  Degrees of freedom                                 3
  P-value (Chi-square)                           0.295

Model Test Baseline Model:

  Test statistic                              1268.839
  Degrees of freedom                                36
  P-value                                        0.000

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    0.999
  Tucker-Lewis Index (TLI)                       0.993

Loglikelihood and Information Criteria:

  Loglikelihood user model (H0)              -3592.297
  Loglikelihood unrestricted model (H1)      -3590.442
                                                      
  Akaike (AIC)                                7268.593
  Bayesian (BIC)                              7421.850
  Sample-size adjusted Bayesian (SABIC)       7288.667

Root Mean Square Error of Approximation:

  RMSEA                                          0.029
  90 Percent confidence interval - lower         0.000
  90 Percent confidence interval - upper         0.108
  P-value H_0: RMSEA <= 0.050                    0.565
  P-value H_0: RMSEA >= 0.080                    0.184

Standardized Root Mean Square Residual:

  SRMR                                           0.014

Parameter Estimates:

  Standard errors                            Bootstrap
  Number of requested bootstrap draws             1000
  Number of successful bootstrap draws            1000

Regressions:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  factcheck_A ~                                                         
    Lt_P_TK   (c1)   -0.094    0.105   -0.890    0.374   -0.094   -0.097
    Lt_P_SK   (c2)    0.232    0.098    2.355    0.019    0.232    0.239
    Lt_N_SE   (c3)    0.124    0.082    1.511    0.131    0.124    0.111
    Lt_N_CL   (c4)    0.104    0.110    0.943    0.345    0.104    0.079
  MH_expert ~                                                           
    Lt_P_TK (a3_1)   -0.142    0.104   -1.367    0.172   -0.142   -0.138
    Lt_P_SK (a3_2)    0.054    0.101    0.533    0.594    0.054    0.052
    Lt_N_SE (a3_3)    0.235    0.096    2.445    0.014    0.235    0.198
    Lt_N_CL (a3_4)    0.284    0.118    2.401    0.016    0.284    0.205
  MH_objective ~                                                        
    Lt_P_TK (a4_1)   -0.108    0.131   -0.823    0.410   -0.108   -0.092
    Lt_P_SK (a4_2)    0.034    0.131    0.262    0.793    0.034    0.029
    Lt_N_SE (a4_3)    0.221    0.111    1.984    0.047    0.221    0.163
    Lt_N_CL (a4_4)    0.367    0.133    2.762    0.006    0.367    0.231
  MH_accurate ~                                                         
    Lt_P_TK (a5_1)   -0.188    0.116   -1.619    0.105   -0.188   -0.179
    Lt_P_SK (a5_2)    0.061    0.117    0.521    0.603    0.061    0.058
    Lt_N_SE (a5_3)    0.250    0.102    2.462    0.014    0.250    0.206
    Lt_N_CL (a5_4)    0.374    0.122    3.077    0.002    0.374    0.263
  credible2 ~                                                           
    MH_xprt (b1_3)    0.353    0.051    6.965    0.000    0.353    0.381
    MH_bjct (b1_4)    0.097    0.045    2.128    0.033    0.097    0.119
    MH_ccrt (b1_5)    0.285    0.052    5.452    0.000    0.285    0.315
    Lt_P_TK (b1_6)    0.020    0.066    0.307    0.759    0.020    0.021
    Lt_P_SK (b1_7)   -0.034    0.059   -0.574    0.566   -0.034   -0.036
    Lt_N_SE (b1_8)    0.088    0.060    1.460    0.144    0.088    0.080
    Lt_N_CL (b1_9)    0.017    0.086    0.201    0.841    0.017    0.013
  factcheck_A ~                                                         
    credbl2   (d1)   -0.302    0.070   -4.318    0.000   -0.302   -0.296

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  Lit_Pin_TK ~~                                                         
    Lit_Pin_SK        1.404    0.117   12.014    0.000    1.404    0.824
    Lit_Ng_SE         0.702    0.098    7.169    0.000    0.702    0.476
    Lit_Ng_CL         0.783    0.085    9.192    0.000    0.783    0.621
  Lit_Pin_SK ~~                                                         
    Lit_Ng_SE         0.615    0.093    6.613    0.000    0.615    0.418
    Lit_Ng_CL         0.714    0.075    9.483    0.000    0.714    0.567
  Lit_Ng_SE ~~                                                          
    Lit_Ng_CL         0.686    0.077    8.916    0.000    0.686    0.629
 .MH_expert ~~                                                          
   .MH_objective      0.971    0.148    6.570    0.000    0.971    0.527
   .MH_accurate       0.996    0.138    7.227    0.000    0.996    0.613
 .MH_objective ~~                                                       
   .MH_accurate       1.095    0.132    8.277    0.000    1.095    0.590

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    Lit_Pin_TK        1.707    0.133   12.841    0.000    1.707    1.000
    Lit_Pin_SK        1.701    0.120   14.181    0.000    1.701    1.000
    Lit_Ng_SE         1.276    0.125   10.171    0.000    1.276    1.000
    Lit_Ng_CL         0.931    0.066   14.109    0.000    0.931    1.000
   .MH_expert         1.614    0.183    8.817    0.000    1.614    0.898
   .MH_objective      2.105    0.162   12.989    0.000    2.105    0.897
   .MH_accurate       1.637    0.140   11.684    0.000    1.637    0.868
   .credible2         0.668    0.104    6.411    0.000    0.668    0.434
   .factcheck_A       1.402    0.112   12.485    0.000    1.402    0.877

R-Square:
                   Estimate
    MH_expert         0.102
    MH_objective      0.103
    MH_accurate       0.132
    credible2         0.566
    factcheck_A       0.123

Defined Parameters:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    SE_xprt_crdbl2   -0.025    0.013   -2.001    0.045   -0.025   -0.022
    SE_obj_credbl2   -0.006    0.005   -1.354    0.176   -0.006   -0.006
    SE_acc_credbl2   -0.022    0.010   -2.060    0.039   -0.022   -0.019
    CL_xprt_crdbl2   -0.030    0.016   -1.906    0.057   -0.030   -0.023
    CL_bjct_crdbl2   -0.011    0.007   -1.448    0.148   -0.011   -0.008
    CL_acc_credbl2   -0.032    0.015   -2.115    0.034   -0.032   -0.025

@August 27, 2024 Data Analysis with the most recent version (additional responses).

data_new <- read_sav("/Users/mj/Library/CloudStorage/Dropbox/@Chat GPT and User Adaptation/ChatGPT Survey data/ChatGPT_cleaned_08272024.sav")
data_new
colnames(data_new)
range(data_new$Duration__in_seconds_, na.rm = TRUE)
[1]    350 570640
#trying to run the model_5_new with responses with duration over 600 seconds.
filtered_data <- subset(data_new, Duration__in_seconds_ > 600)
filtered_data
#will run model_5 with "data_new", model_5 has credible2 as the sole second level mediator, and had a better model fit. 

model_5_new<-
'
  # Direct effects of IVs on DV
    factcheck_A ~ c1*Lit_Pin_TK + c2*Lit_Pin_SK + c3*Lit_Ng_SE + c4*Lit_Ng_KU + c5*Lit_Ng_EC

  # Direct effects of IVs on first-level mediators
    MH_expert ~ a3_1*Lit_Pin_TK + a3_2*Lit_Pin_SK + a3_3*Lit_Ng_SE + a3_4*Lit_Ng_KU + a3_5*Lit_Ng_EC
    MH_objective ~ a4_1*Lit_Pin_TK + a4_2*Lit_Pin_SK + a4_3*Lit_Ng_SE + a4_4*Lit_Ng_KU + a4_5*Lit_Ng_EC
    MH_accurate ~ a5_1*Lit_Pin_TK + a5_2*Lit_Pin_SK + a5_3*Lit_Ng_SE + a5_4*Lit_Ng_KU + a5_5*Lit_Ng_EC

  # Direct effects of first-level mediators on second-level mediators
    credible2 ~ b1_3*MH_expert + b1_4*MH_objective + b1_5*MH_accurate

  # Direct effects of first and second-level mediators on DV
    factcheck_A ~ d1*credible2

  # Indirect effects via first and second-level mediators
    SE_expert_credible2 := a3_3*b1_3*d1
    SE_obj_credible2 := a4_3*b1_4*d1
    SE_acc_credible2 := a5_3*b1_5*d1
    
    EC_expert_credible2 := a3_5*b1_3*d1
    EC_obj_credible2 := a4_5*b1_3*d1
    EC_acc_credible2 := a5_5*b1_3*d1
    
    KU_expert_credible2 := a3_4*b1_3*d1
    KU_object_credible2 := a4_4*b1_4*d1
    KU_acc_credible2 := a5_4*b1_5*d1
    
  #Estimating covariance and residuals 
  #Estimating variances of exogenous variables (Xs)
    Lit_Pin_TK~~Lit_Pin_TK
    Lit_Pin_SK~~Lit_Pin_SK
    Lit_Ng_SE~~Lit_Ng_SE
    Lit_Ng_KU~~Lit_Ng_KU
    Lit_Ng_EC~~Lit_Ng_EC

  #Estimating co-variances of exogenous variables (Xs)
    Lit_Pin_TK~~Lit_Pin_SK
    Lit_Pin_TK~~Lit_Ng_SE
    Lit_Pin_TK~~Lit_Ng_KU
    Lit_Pin_TK~~Lit_Ng_EC
    
    Lit_Pin_SK~~Lit_Ng_SE
    Lit_Pin_SK~~Lit_Ng_KU
    Lit_Pin_SK~~Lit_Ng_EC
    
    Lit_Ng_SE~~Lit_Ng_KU
    Lit_Ng_SE~~Lit_Ng_EC
    
    Lit_Ng_KU~~Lit_Ng_EC

  #Estimating the residual variances (e1,…) for endogenous variables (Ms and Ys)
    MH_expert~~MH_expert
    MH_objective~~MH_objective
    MH_accurate~~MH_accurate
    credible2~~credible2
    factcheck_A~~factcheck_A

  #Estimating the covariances of residuals for Ms 
    MH_expert~~MH_objective
    MH_expert~~MH_accurate 
    MH_objective~~MH_accurate 
'
# Add bootstrapping to the lavaan function call
result.model_5_new <- lavaan(model_5_new, data = filtered_data, se = "boot", bootstrap = 5000)

# Display the results with the specified options
summary(result.model_5_new, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)
lavaan 0.6-18 ended normally after 40 iterations

  Estimator                                         ML
  Optimization method                           NLMINB
  Number of model parameters                        47

                                                  Used       Total
  Number of observations                           284         287

Model Test User Model:
                                                      
  Test statistic                                10.886
  Degrees of freedom                                 8
  P-value (Chi-square)                           0.208

Model Test Baseline Model:

  Test statistic                              1460.990
  Degrees of freedom                                45
  P-value                                        0.000

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    0.998
  Tucker-Lewis Index (TLI)                       0.989

Loglikelihood and Information Criteria:

  Loglikelihood user model (H0)              -3939.277
  Loglikelihood unrestricted model (H1)      -3933.834
                                                      
  Akaike (AIC)                                7972.554
  Bayesian (BIC)                              8144.056
  Sample-size adjusted Bayesian (SABIC)       7995.018

Root Mean Square Error of Approximation:

  RMSEA                                          0.036
  90 Percent confidence interval - lower         0.000
  90 Percent confidence interval - upper         0.083
  P-value H_0: RMSEA <= 0.050                    0.631
  P-value H_0: RMSEA >= 0.080                    0.065

Standardized Root Mean Square Residual:

  SRMR                                           0.020

Parameter Estimates:

  Standard errors                            Bootstrap
  Number of requested bootstrap draws             5000
  Number of successful bootstrap draws            5000

Regressions:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  factcheck_A ~                                                         
    Lt_P_TK   (c1)   -0.095    0.102   -0.928    0.353   -0.095   -0.098
    Lt_P_SK   (c2)    0.234    0.095    2.471    0.013    0.234    0.241
    Lt_N_SE   (c3)    0.125    0.084    1.481    0.139    0.125    0.111
    Lt_N_KU   (c4)    0.007    0.106    0.069    0.945    0.007    0.005
    Lt_N_EC   (c5)    0.086    0.098    0.879    0.379    0.086    0.081
  MH_expert ~                                                           
    Lt_P_TK (a3_1)   -0.145    0.104   -1.399    0.162   -0.145   -0.142
    Lt_P_SK (a3_2)    0.076    0.097    0.789    0.430    0.076    0.074
    Lt_N_SE (a3_3)    0.231    0.091    2.546    0.011    0.231    0.195
    Lt_N_KU (a3_4)   -0.274    0.113   -2.434    0.015   -0.274   -0.189
    Lt_N_EC (a3_5)    0.438    0.102    4.296    0.000    0.438    0.389
  MH_objective ~                                                        
    Lt_P_TK (a4_1)   -0.111    0.127   -0.874    0.382   -0.111   -0.095
    Lt_P_SK (a4_2)    0.057    0.127    0.449    0.654    0.057    0.049
    Lt_N_SE (a4_3)    0.218    0.107    2.036    0.042    0.218    0.160
    Lt_N_KU (a4_4)   -0.230    0.130   -1.771    0.077   -0.230   -0.139
    Lt_N_EC (a4_5)    0.477    0.116    4.103    0.000    0.477    0.370
  MH_accurate ~                                                         
    Lt_P_TK (a5_1)   -0.192    0.115   -1.672    0.094   -0.192   -0.183
    Lt_P_SK (a5_2)    0.085    0.111    0.769    0.442    0.085    0.081
    Lt_N_SE (a5_3)    0.247    0.100    2.463    0.014    0.247    0.203
    Lt_N_KU (a5_4)   -0.255    0.116   -2.191    0.028   -0.255   -0.171
    Lt_N_EC (a5_5)    0.501    0.102    4.925    0.000    0.501    0.434
  credible2 ~                                                           
    MH_xprt (b1_3)    0.361    0.052    6.940    0.000    0.361    0.390
    MH_bjct (b1_4)    0.104    0.045    2.337    0.019    0.104    0.129
    MH_ccrt (b1_5)    0.298    0.050    5.997    0.000    0.298    0.330
  factcheck_A ~                                                         
    credbl2   (d1)   -0.310    0.074   -4.196    0.000   -0.310   -0.303

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  Lit_Pin_TK ~~                                                         
    Lit_Pin_SK        1.404    0.120   11.664    0.000    1.404    0.824
    Lit_Ng_SE         0.702    0.104    6.779    0.000    0.702    0.476
    Lit_Ng_KU         0.685    0.081    8.507    0.000    0.685    0.569
    Lit_Ng_EC         0.883    0.112    7.896    0.000    0.883    0.568
  Lit_Pin_SK ~~                                                         
    Lit_Ng_SE         0.615    0.097    6.364    0.000    0.615    0.418
    Lit_Ng_KU         0.639    0.071    9.011    0.000    0.639    0.531
    Lit_Ng_EC         0.791    0.101    7.846    0.000    0.791    0.509
  Lit_Ng_SE ~~                                                          
    Lit_Ng_KU         0.579    0.063    9.215    0.000    0.579    0.556
    Lit_Ng_EC         0.791    0.111    7.146    0.000    0.791    0.589
  Lit_Ng_KU ~~                                                          
    Lit_Ng_EC         0.728    0.068   10.640    0.000    0.728    0.664
 .MH_expert ~~                                                          
   .MH_objective      0.880    0.136    6.456    0.000    0.880    0.503
   .MH_accurate       0.900    0.128    7.034    0.000    0.900    0.588
 .MH_objective ~~                                                       
   .MH_accurate       0.999    0.122    8.195    0.000    0.999    0.568

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    Lit_Pin_TK        1.707    0.135   12.614    0.000    1.707    1.000
    Lit_Pin_SK        1.701    0.126   13.507    0.000    1.701    1.000
    Lit_Ng_SE         1.276    0.127   10.027    0.000    1.276    1.000
    Lit_Ng_KU         0.850    0.060   14.206    0.000    0.850    1.000
    Lit_Ng_EC         1.416    0.119   11.889    0.000    1.416    1.000
   .MH_expert         1.523    0.169    8.989    0.000    1.523    0.848
   .MH_objective      2.015    0.157   12.863    0.000    2.015    0.859
   .MH_accurate       1.535    0.137   11.226    0.000    1.535    0.814
   .credible2         0.679    0.104    6.499    0.000    0.679    0.441
   .factcheck_A       1.401    0.112   12.459    0.000    1.401    0.868

R-Square:
                   Estimate
    MH_expert         0.152
    MH_objective      0.141
    MH_accurate       0.186
    credible2         0.559
    factcheck_A       0.132

Defined Parameters:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    SE_xprt_crdbl2   -0.026    0.013   -1.976    0.048   -0.026   -0.023
    SE_obj_credbl2   -0.007    0.005   -1.400    0.161   -0.007   -0.006
    SE_acc_credbl2   -0.023    0.011   -1.995    0.046   -0.023   -0.020
    EC_xprt_crdbl2   -0.049    0.019   -2.513    0.012   -0.049   -0.046
    EC_obj_credbl2   -0.053    0.020   -2.622    0.009   -0.053   -0.044
    EC_acc_credbl2   -0.056    0.020   -2.830    0.005   -0.056   -0.051
    KU_xprt_crdbl2    0.031    0.016    1.861    0.063    0.031    0.022
    KU_bjct_crdbl2    0.007    0.006    1.318    0.187    0.007    0.005
    KU_acc_credbl2    0.024    0.013    1.774    0.076    0.024    0.017

========== The following analysis is before data_new(without including all participants)

data <- read_sav("/Users/mj/Library/CloudStorage/Dropbox/@Chat GPT and User Adaptation/ChatGPT Survey data/ChatGPT_cleaned.sav")
data
colnames(data)

Checking whether education, STEM, and other demographic factors predict literacy levels

#checking response options in education variable (Q48 column)
unique(data$Q48)
table(data$Q48)
summary(data$Q48)
#Recoding education variable: 1 is less than high school, 2 is high school or professional degree, 3 is college/bachelor's degree, 4 is mater's degree or higher 
data <- data %>%
  mutate(Edu= case_when(
    Q48 == "Some high school, no diploma" ~ 1,
    Q48 == "Trade/technical/vocational training" ~ 1,
    Q48 == "Some college credit, no degree" ~ 2,
    Q48 == "Professional degree" ~ 2,
    Q48 == "high school graduate, diploma or the equivalent (for example: GED)" ~ 2,
    Q48 == "Associate degree" ~ 3,
    Q48 == "Bachelor’s degree" ~ 3,
    Q48 == "Master’s degree" ~ 4
  ))
unique(data$Edu)
table(data$Edu)
summary(data$Edu)
#Recoding gender string to gender numeric 
data <- data %>%
  mutate(Gen_num= case_when(
    Gender == "Male" ~ 1,
    Gender == "Female" ~ 0,
  ))
table(data$Gen_num)
summary(data$Gen_num)
unique_values <- lapply(data[, c("Q50")], unique)
print(unique_values)
#Recoding gender string to gender numeric 
data <- data %>%
  mutate(stem= case_when(
    Q50 == "Yes" ~ 1,
    Q50 == "No" ~ 0,
    Q50 == "Not sure" ~ 0, 
    Q50 == "" ~ 0
  ))
table(data$stem)
summary(data$stem)

Running linear regression where demographic factors predict the literacy variables

# Fit the multivariate linear regression model
model_reg <- lm(cbind(Lit_Pin_TK, Lit_Pin_SK, Lit_Ng_SE, Lit_Ng_KU, Lit_Ng_EC) ~ Age + Gen_num + Edu + stem, data = data)
summary(model_reg)
#Found an issue with credibility meausre ("accurate" is replicated in MH_accurate), to address this, create credible2 variable by only adding credible(1), reliable(3),expert(4), and trusworthy(5)
# Create a new variable by calculating the mean of var1 and var2
data$credible2 <- rowMeans(data[, c("Credible_1", "Credible_3","Credible_4","Credible_5")], na.rm = TRUE)
# Specify mediation model that has only credible2 as the second level mediator 
model_5<-
'
  # Direct effects of IVs on DV
    factcheck_A ~ c1*Lit_Pin_TK + c2*Lit_Pin_SK + c3*Lit_Ng_SE + c4*Lit_Ng_KU + c5*Lit_Ng_EC

  # Direct effects of IVs on first-level mediators
    MH_expert ~ a3_1*Lit_Pin_TK + a3_2*Lit_Pin_SK + a3_3*Lit_Ng_SE + a3_4*Lit_Ng_KU + a3_5*Lit_Ng_EC
    MH_objective ~ a4_1*Lit_Pin_TK + a4_2*Lit_Pin_SK + a4_3*Lit_Ng_SE + a4_4*Lit_Ng_KU + a4_5*Lit_Ng_EC
    MH_accurate ~ a5_1*Lit_Pin_TK + a5_2*Lit_Pin_SK + a5_3*Lit_Ng_SE + a5_4*Lit_Ng_KU + a5_5*Lit_Ng_EC

  # Direct effects of first-level mediators on second-level mediators
    credible2 ~ b1_3*MH_expert + b1_4*MH_objective + b1_5*MH_accurate

  # Direct effects of first and second-level mediators on DV
    factcheck_A ~ d1*credible2

  # Indirect effects via first and second-level mediators
    SE_expert_credible2 := a3_3*b1_3*d1
    SE_obj_credible2 := a4_3*b1_4*d1
    SE_acc_credible2 := a5_3*b1_5*d1
    
    EC_expert_credible2 := a3_5*b1_3*d1
    EC_obj_credible2 := a4_5*b1_3*d1
    EC_acc_credible2 := a5_5*b1_3*d1
    
    KU_expert_credible2 := a3_4*b1_3*d1
    
  #Estimating covariance and residuals 
  #Estimating variances of exogenous variables (Xs)
    Lit_Pin_TK~~Lit_Pin_TK
    Lit_Pin_SK~~Lit_Pin_SK
    Lit_Ng_SE~~Lit_Ng_SE
    Lit_Ng_KU~~Lit_Ng_KU
    Lit_Ng_EC~~Lit_Ng_EC

  #Estimating co-variances of exogenous variables (Xs)
    Lit_Pin_TK~~Lit_Pin_SK
    Lit_Pin_TK~~Lit_Ng_SE
    Lit_Pin_TK~~Lit_Ng_KU
    Lit_Pin_TK~~Lit_Ng_EC
    
    Lit_Pin_SK~~Lit_Ng_SE
    Lit_Pin_SK~~Lit_Ng_KU
    Lit_Pin_SK~~Lit_Ng_EC
    
    Lit_Ng_SE~~Lit_Ng_KU
    Lit_Ng_SE~~Lit_Ng_EC
    
    Lit_Ng_KU~~Lit_Ng_EC

  #Estimating the residual variances (e1,…) for endogenous variables (Ms and Ys)
    MH_expert~~MH_expert
    MH_objective~~MH_objective
    MH_accurate~~MH_accurate
    credible2~~credible2
    factcheck_A~~factcheck_A

  #Estimating the covariances of residuals for Ms 
    MH_expert~~MH_objective
    MH_expert~~MH_accurate 
    MH_objective~~MH_accurate 
'
# Add bootstrapping to the lavaan function call
result.model_5 <- lavaan(model_5, data = data, se = "boot", bootstrap = 5000)

# Display the results with the specified options
summary(result.model_5, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)
lavaan 0.6-18 ended normally after 41 iterations

  Estimator                                         ML
  Optimization method                           NLMINB
  Number of model parameters                        47

                                                  Used       Total
  Number of observations                           223         225

Model Test User Model:
                                                      
  Test statistic                                 8.121
  Degrees of freedom                                 8
  P-value (Chi-square)                           0.422

Model Test Baseline Model:

  Test statistic                              1165.597
  Degrees of freedom                                45
  P-value                                        0.000

User Model versus Baseline Model:

  Comparative Fit Index (CFI)                    1.000
  Tucker-Lewis Index (TLI)                       0.999

Loglikelihood and Information Criteria:

  Loglikelihood user model (H0)              -3138.692
  Loglikelihood unrestricted model (H1)      -3134.632
                                                      
  Akaike (AIC)                                6371.385
  Bayesian (BIC)                              6531.522
  Sample-size adjusted Bayesian (SABIC)       6382.573

Root Mean Square Error of Approximation:

  RMSEA                                          0.008
  90 Percent confidence interval - lower         0.000
  90 Percent confidence interval - upper         0.079
  P-value H_0: RMSEA <= 0.050                    0.755
  P-value H_0: RMSEA >= 0.080                    0.047

Standardized Root Mean Square Residual:

  SRMR                                           0.021

Parameter Estimates:

  Standard errors                            Bootstrap
  Number of requested bootstrap draws             5000
  Number of successful bootstrap draws            5000

Regressions:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  factcheck_A ~                                                         
    Lt_P_TK   (c1)   -0.128    0.108   -1.185    0.236   -0.128   -0.133
    Lt_P_SK   (c2)    0.266    0.098    2.716    0.007    0.266    0.273
    Lt_N_SE   (c3)    0.108    0.091    1.186    0.236    0.108    0.098
    Lt_N_KU   (c4)    0.035    0.116    0.303    0.762    0.035    0.025
    Lt_N_EC   (c5)    0.038    0.107    0.358    0.720    0.038    0.037
  MH_expert ~                                                           
    Lt_P_TK (a3_1)   -0.088    0.117   -0.751    0.453   -0.088   -0.085
    Lt_P_SK (a3_2)    0.016    0.113    0.141    0.888    0.016    0.015
    Lt_N_SE (a3_3)    0.250    0.102    2.453    0.014    0.250    0.209
    Lt_N_KU (a3_4)   -0.373    0.133   -2.810    0.005   -0.373   -0.246
    Lt_N_EC (a3_5)    0.438    0.107    4.093    0.000    0.438    0.390
  MH_objective ~                                                        
    Lt_P_TK (a4_1)   -0.072    0.145   -0.497    0.619   -0.072   -0.061
    Lt_P_SK (a4_2)   -0.084    0.146   -0.578    0.563   -0.084   -0.070
    Lt_N_SE (a4_3)    0.272    0.117    2.326    0.020    0.272    0.197
    Lt_N_KU (a4_4)   -0.209    0.159   -1.318    0.188   -0.209   -0.120
    Lt_N_EC (a4_5)    0.429    0.126    3.409    0.001    0.429    0.331
  MH_accurate ~                                                         
    Lt_P_TK (a5_1)   -0.162    0.126   -1.284    0.199   -0.162   -0.153
    Lt_P_SK (a5_2)   -0.048    0.127   -0.376    0.707   -0.048   -0.045
    Lt_N_SE (a5_3)    0.265    0.109    2.446    0.014    0.265    0.216
    Lt_N_KU (a5_4)   -0.241    0.136   -1.775    0.076   -0.241   -0.155
    Lt_N_EC (a5_5)    0.482    0.108    4.463    0.000    0.482    0.418
  credible2 ~                                                           
    MH_xprt (b1_3)    0.390    0.053    7.355    0.000    0.390    0.438
    MH_bjct (b1_4)    0.066    0.044    1.503    0.133    0.066    0.086
    MH_ccrt (b1_5)    0.326    0.053    6.168    0.000    0.326    0.375
  factcheck_A ~                                                         
    credbl2   (d1)   -0.361    0.084   -4.281    0.000   -0.361   -0.347

Covariances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
  Lit_Pin_TK ~~                                                         
    Lit_Pin_SK        1.468    0.139   10.563    0.000    1.468    0.820
    Lit_Ng_SE         0.719    0.123    5.833    0.000    0.719    0.458
    Lit_Ng_KU         0.721    0.097    7.461    0.000    0.721    0.583
    Lit_Ng_EC         0.912    0.133    6.834    0.000    0.912    0.547
  Lit_Pin_SK ~~                                                         
    Lit_Ng_SE         0.625    0.113    5.524    0.000    0.625    0.405
    Lit_Ng_KU         0.653    0.084    7.782    0.000    0.653    0.536
    Lit_Ng_EC         0.782    0.122    6.412    0.000    0.782    0.477
  Lit_Ng_SE ~~                                                          
    Lit_Ng_KU         0.565    0.075    7.560    0.000    0.565    0.529
    Lit_Ng_EC         0.816    0.133    6.139    0.000    0.816    0.567
  Lit_Ng_KU ~~                                                          
    Lit_Ng_EC         0.745    0.080    9.289    0.000    0.745    0.656
 .MH_expert ~~                                                          
   .MH_objective      0.961    0.158    6.076    0.000    0.961    0.501
   .MH_accurate       0.978    0.153    6.372    0.000    0.978    0.588
 .MH_objective ~~                                                       
   .MH_accurate       1.089    0.139    7.843    0.000    1.089    0.561

Variances:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    Lit_Pin_TK        1.818    0.158   11.515    0.000    1.818    1.000
    Lit_Pin_SK        1.761    0.139   12.679    0.000    1.761    1.000
    Lit_Ng_SE         1.354    0.151    8.978    0.000    1.354    1.000
    Lit_Ng_KU         0.843    0.071   11.899    0.000    0.843    1.000
    Lit_Ng_EC         1.529    0.136   11.230    0.000    1.529    1.000
   .MH_expert         1.644    0.188    8.765    0.000    1.644    0.851
   .MH_objective      2.242    0.183   12.263    0.000    2.242    0.873
   .MH_accurate       1.683    0.161   10.440    0.000    1.683    0.827
   .credible2         0.559    0.061    9.180    0.000    0.559    0.364
   .factcheck_A       1.398    0.125   11.217    0.000    1.398    0.840

R-Square:
                   Estimate
    MH_expert         0.149
    MH_objective      0.127
    MH_accurate       0.173
    credible2         0.636
    factcheck_A       0.160

Defined Parameters:
                   Estimate  Std.Err  z-value  P(>|z|)   Std.lv  Std.all
    SE_xprt_crdbl2   -0.035    0.018   -1.995    0.046   -0.035   -0.032
    SE_obj_credbl2   -0.007    0.006   -1.139    0.255   -0.007   -0.006
    SE_acc_credbl2   -0.031    0.015   -2.020    0.043   -0.031   -0.028
    EC_xprt_crdbl2   -0.062    0.023   -2.630    0.009   -0.062   -0.059
    EC_obj_credbl2   -0.061    0.024   -2.572    0.010   -0.061   -0.050
    EC_acc_credbl2   -0.068    0.023   -3.011    0.003   -0.068   -0.063
    KU_xprt_crdbl2    0.053    0.023    2.255    0.024    0.053    0.037
# Specify mediation model with credible2, Model3+credible2
model_4<-
'
  # Direct effects of IVs on DV
    factcheck_A ~ c1*Lit_Pin_TK + c2*Lit_Pin_SK + c3*Lit_Ng_SE + c4*Lit_Ng_KU + c5*Lit_Ng_EC

  # Direct effects of IVs on first-level mediators
    MH_expert ~ a3_1*Lit_Pin_TK + a3_2*Lit_Pin_SK + a3_3*Lit_Ng_SE + a3_4*Lit_Ng_KU + a3_5*Lit_Ng_EC
    MH_objective ~ a4_1*Lit_Pin_TK + a4_2*Lit_Pin_SK + a4_3*Lit_Ng_SE + a4_4*Lit_Ng_KU + a4_5*Lit_Ng_EC
    MH_accurate ~ a5_1*Lit_Pin_TK + a5_2*Lit_Pin_SK + a5_3*Lit_Ng_SE + a5_4*Lit_Ng_KU + a5_5*Lit_Ng_EC

  # Direct effects of first-level mediators on second-level mediators
    credible2 ~ b1_3*MH_expert + b1_4*MH_objective + b1_5*MH_accurate
    trust ~ b2_3*MH_expert + b2_4*MH_objective + b2_5*MH_accurate

  # Direct effects of first and second-level mediators on DV
    factcheck_A ~ d1*credible2 + d2*trust

  # Indirect effects via first and second-level mediators
    SE_expert_credible2 := a3_3*b1_3*d1
    SE_obj_credible2 := a4_3*b1_4*d1
    SE_acc_credible2 := a5_3*b1_5*d1
    
    EC_expert_credible2 := a3_5*b1_3*d1
    EC_obj_credible2 := a4_5*b1_3*d1
    EC_acc_credible2 := a5_5*b1_3*d1
    
    KU_expert_credible2 := a3_4*b1_3*d1
    
  #Estimating covariance and residuals 
  #Estimating variances of exogenous variables (Xs)
    Lit_Pin_TK~~Lit_Pin_TK
    Lit_Pin_SK~~Lit_Pin_SK
    Lit_Ng_SE~~Lit_Ng_SE
    Lit_Ng_KU~~Lit_Ng_KU
    Lit_Ng_EC~~Lit_Ng_EC

  #Estimating co-variances of exogenous variables (Xs)
    Lit_Pin_TK~~Lit_Pin_SK
    Lit_Pin_TK~~Lit_Ng_SE
    Lit_Pin_TK~~Lit_Ng_KU
    Lit_Pin_TK~~Lit_Ng_EC
    
    Lit_Pin_SK~~Lit_Ng_SE
    Lit_Pin_SK~~Lit_Ng_KU
    Lit_Pin_SK~~Lit_Ng_EC
    
    Lit_Ng_SE~~Lit_Ng_KU
    Lit_Ng_SE~~Lit_Ng_EC
    
    Lit_Ng_KU~~Lit_Ng_EC

  #Estimating the residual variances (e1,…) for endogenous variables (Ms and Ys)
    MH_expert~~MH_expert
    MH_objective~~MH_objective
    MH_accurate~~MH_accurate
    
    credible2~~credible2
    trust~~trust
    
    factcheck_A~~factcheck_A

  #Estimating the covariances of residuals for Ms 
    MH_expert~~MH_objective
    MH_expert~~MH_accurate 
    MH_objective~~MH_accurate 
    
    credible2~~trust
'
# Add bootstrapping to the lavaan function call
result.model_4 <- lavaan(model_4, data = data, se = "boot", bootstrap = 5000)

# Display the results with the specified options
summary(result.model_4, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)
# Specify mediation model with MH expert, objective, accurate only 
model_3<-
'
  # Direct effects of IVs on DV
    factcheck_A ~ c1*Lit_Pin_TK + c2*Lit_Pin_SK + c3*Lit_Ng_SE + c4*Lit_Ng_KU + c5*Lit_Ng_EC

  # Direct effects of IVs on first-level mediators
    MH_expert ~ a3_1*Lit_Pin_TK + a3_2*Lit_Pin_SK + a3_3*Lit_Ng_SE + a3_4*Lit_Ng_KU + a3_5*Lit_Ng_EC
    MH_objective ~ a4_1*Lit_Pin_TK + a4_2*Lit_Pin_SK + a4_3*Lit_Ng_SE + a4_4*Lit_Ng_KU + a4_5*Lit_Ng_EC
    MH_accurate ~ a5_1*Lit_Pin_TK + a5_2*Lit_Pin_SK + a5_3*Lit_Ng_SE + a5_4*Lit_Ng_KU + a5_5*Lit_Ng_EC

  # Direct effects of first-level mediators on second-level mediators
    credible ~ b1_3*MH_expert + b1_4*MH_objective + b1_5*MH_accurate
    trust ~ b2_3*MH_expert + b2_4*MH_objective + b2_5*MH_accurate

  # Direct effects of second-level mediators on DV
    factcheck_A ~ d1*credible + d2*trust

  # Indirect effects via first and second-level mediators
    SE_expert_credible := a3_3*b1_3*d1
    SE_obj_credible := a4_3*b1_4*d1
    SE_acc_credible := a5_3*b1_5*d1
    
    EC_expert_credible := a3_5*b1_3*d1
    EC_obj_credible := a4_5*b1_3*d1
    EC_acc_credible := a5_5*b1_3*d1
    
    KU_expert_credible := a3_4*b1_3*d1
    
  #Estimating covariance and residuals 
  #Estimating variances of exogenous variables (Xs)
    Lit_Pin_TK~~Lit_Pin_TK
    Lit_Pin_SK~~Lit_Pin_SK
    Lit_Ng_SE~~Lit_Ng_SE
    Lit_Ng_KU~~Lit_Ng_KU
    Lit_Ng_EC~~Lit_Ng_EC

  #Estimating co-variances of exogenous variables (Xs)
    Lit_Pin_TK~~Lit_Pin_SK
    Lit_Pin_TK~~Lit_Ng_SE
    Lit_Pin_TK~~Lit_Ng_KU
    Lit_Pin_TK~~Lit_Ng_EC
    
    Lit_Pin_SK~~Lit_Ng_SE
    Lit_Pin_SK~~Lit_Ng_KU
    Lit_Pin_SK~~Lit_Ng_EC
    
    Lit_Ng_SE~~Lit_Ng_KU
    Lit_Ng_SE~~Lit_Ng_EC
    
    Lit_Ng_KU~~Lit_Ng_EC

  #Estimating the residual variances (e1,…) for endogenous variables (Ms and Ys)
    MH_expert~~MH_expert
    MH_objective~~MH_objective
    MH_accurate~~MH_accurate
    
    credible~~credible
    trust~~trust
    
    factcheck_A~~factcheck_A

  #Estimating the covariances of residuals for Ms 
    MH_expert~~MH_objective
    MH_expert~~MH_accurate 
    MH_objective~~MH_accurate 
    
    credible~~trust
'
# Add bootstrapping to the lavaan function call
result.model_3 <- lavaan(model_3, data = data, se = "boot", bootstrap = 5000)

# Display the results with the specified options
summary(result.model_3, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)
#Correlation between the literacy variables 
# Select the five variables
selected_vars <- data[, c("Lit_Pin_TK", "Lit_Pin_SK", "Lit_Ng_SE", "Lit_Ng_KU", "Lit_Ng_EC")]
# Calculate the Pearson correlation matrix
correlation_matrix <- cor(selected_vars, use = "pairwise.complete.obs", method = "pearson")

# View the correlation matrix
print(correlation_matrix)
# Specify mediation model with all five MH (efficient, useful, expert, objective, and accurate)
model_2<-
'
  # Direct effects of IVs on DV
    factcheck_A ~ c1*Lit_Pin_TK + c2*Lit_Pin_SK + c3*Lit_Ng_SE + c4*Lit_Ng_KU + c5*Lit_Ng_EC

  # Direct effects of IVs on first-level mediators
    MH_efficient ~ a1_1*Lit_Pin_TK + a1_2*Lit_Pin_SK + a1_3*Lit_Ng_SE + a1_4*Lit_Ng_KU + a1_5*Lit_Ng_EC
    MH_useful ~ a2_1*Lit_Pin_TK + a2_2*Lit_Pin_SK + a2_3*Lit_Ng_SE + a2_4*Lit_Ng_KU + a2_5*Lit_Ng_EC
    MH_expert ~ a3_1*Lit_Pin_TK + a3_2*Lit_Pin_SK + a3_3*Lit_Ng_SE + a3_4*Lit_Ng_KU + a3_5*Lit_Ng_EC
    MH_objective ~ a4_1*Lit_Pin_TK + a4_2*Lit_Pin_SK + a4_3*Lit_Ng_SE + a4_4*Lit_Ng_KU + a4_5*Lit_Ng_EC
    MH_accurate ~ a5_1*Lit_Pin_TK + a5_2*Lit_Pin_SK + a5_3*Lit_Ng_SE + a5_4*Lit_Ng_KU + a5_5*Lit_Ng_EC

  # Direct effects of first-level mediators on second-level mediators
    credible ~ b1_1*MH_efficient + b1_2*MH_useful + b1_3*MH_expert + b1_4*MH_objective + b1_5*MH_accurate
    trust ~ b2_1*MH_efficient + b2_2*MH_useful + b2_3*MH_expert + b2_4*MH_objective + b2_5*MH_accurate

  # Direct effects of second-level mediators on DV
    factcheck_A ~ d1*credible + d2*trust

  # Indirect effects via first and second-level mediators
    SE_expert_credible := a3_3*b1_3*d1
    SE_obj_credible := a4_3*b1_4*d1
    SE_acc_credible := a5_3*b1_5*d1
    
    EC_expert_credible := a3_5*b1_3*d1
    EC_obj_credible := a4_5*b1_3*d1
    EC_acc_credible := a5_5*b1_3*d1
    
    KU_expert_credible := a3_4*b1_3*d1
    
  #Estimating covariance and residuals 
  #Estimating variances of exogenous variables (Xs)
    Lit_Pin_TK~~Lit_Pin_TK
    Lit_Pin_SK~~Lit_Pin_SK
    Lit_Ng_SE~~Lit_Ng_SE
    Lit_Ng_KU~~Lit_Ng_KU
    Lit_Ng_EC~~Lit_Ng_EC

  #Estimating co-variances of exogenous variables (Xs)
    Lit_Pin_TK~~Lit_Pin_SK
    Lit_Pin_TK~~Lit_Ng_SE
    Lit_Pin_TK~~Lit_Ng_KU
    Lit_Pin_TK~~Lit_Ng_EC
    
    Lit_Pin_SK~~Lit_Ng_SE
    Lit_Pin_SK~~Lit_Ng_KU
    Lit_Pin_SK~~Lit_Ng_EC
    
    Lit_Ng_SE~~Lit_Ng_KU
    Lit_Ng_SE~~Lit_Ng_EC
    
    Lit_Ng_KU~~Lit_Ng_EC

  #Estimating the residual variances (e1,…) for endogenous variables (Ms and Ys)
    MH_efficient~~MH_efficient
    MH_useful~~MH_useful
    MH_expert~~MH_expert
    MH_objective~~MH_objective
    MH_accurate~~MH_accurate
    
    credible~~credible
    trust~~trust
    
    factcheck_A~~factcheck_A

  #Estimating the covariances of residuals for Ms 
    MH_efficient~~MH_useful
    MH_efficient~~MH_expert
    MH_efficient~~MH_objective
    MH_efficient~~MH_accurate
    
    MH_useful~~MH_expert
    MH_useful~~MH_objective
    MH_useful~~MH_accurate
    
    MH_expert~~MH_objective
    MH_expert~~MH_accurate 
    
    MH_objective~~MH_accurate 
    
    credible~~trust
'
# Add bootstrapping to the lavaan function call
result.model_2 <- lavaan(model_2, data = data, se = "boot", bootstrap = 5000)

# Display the results with the specified options
summary(result.model_2, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)
# Specify mediation model 
model <-
'
#direct effect

factcheck_A ~ Lit_Pin_TK + Lit_Pin_SK + Lit_Ng_SE + Lit_Ng_KU + Lit_Ng_EC

#indirect effects a-> b

MH_efficient ~ a1*Lit_Pin_TK + a2*Lit_Pin_SK + a3*Lit_Ng_SE + a4*Lit_Ng_KU + a5*Lit_Ng_EC
MH_useful ~ a6*Lit_Pin_TK + a7*Lit_Pin_SK + a8*Lit_Ng_SE + a9*Lit_Ng_KU + a10*Lit_Ng_EC
MH_expert  ~ a11*Lit_Pin_TK + a12*Lit_Pin_SK + a13*Lit_Ng_SE + a14*Lit_Ng_KU + a15*Lit_Ng_EC
MH_objective  ~ a16*Lit_Pin_TK + Lit_Pin_SK + Lit_Ng_SE + Lit_Ng_KU + Lit_Ng_EC
MH_accurate  ~ a21*Lit_Pin_TK + Lit_Pin_SK + Lit_Ng_SE + Lit_Ng_KU + Lit_Ng_EC

# indirect effects a -> c

credible ~ Lit_Pin_TK + Lit_Pin_SK + Lit_Ng_SE + Lit_Ng_KU + Lit_Ng_EC
trust ~ Lit_Pin_TK + Lit_Pin_SK + Lit_Ng_SE + Lit_Ng_KU + Lit_Ng_EC

# indirect effects b -> c 

credible ~ MH_efficient + MH_useful + MH_expert + MH_objective + MH_accurate
trust ~ MH_efficient + MH_useful + MH_expert + MH_objective + MH_accurate

# indirect effects c -> d

factcheck_A ~ credible + trust 

#Estimating covariance and residuals 
#Estimating variances of exogenous variables (Xs)

Lit_Pin_TK~~Lit_Pin_TK
Lit_Pin_SK~~Lit_Pin_SK
Lit_Ng_SE~~Lit_Ng_SE
Lit_Ng_KU~~Lit_Ng_KU
Lit_Ng_EC~~Lit_Ng_EC

#Estimating co-variances of exogenous variables (Xs)
Lit_Pin_TK~~Lit_Pin_SK
Lit_Pin_TK~~Lit_Ng_SE
Lit_Pin_TK~~Lit_Ng_KU
Lit_Pin_TK~~Lit_Ng_EC

Lit_Pin_SK~~Lit_Ng_SE
Lit_Pin_SK~~Lit_Ng_KU
Lit_Pin_SK~~Lit_Ng_EC

Lit_Ng_SE~~Lit_Ng_KU
Lit_Ng_SE~~Lit_Ng_EC

Lit_Ng_KU~~Lit_Ng_EC

#Estimating the residual variances (e1,…) for endogenous variables (Ms and Ys)

MH_efficient~~MH_efficient
MH_useful~~MH_useful
MH_expert~~MH_expert
MH_objective~~MH_objective
MH_accurate~~MH_accurate

credible~~credible
trust~~trust

factcheck_A~~factcheck_A

#Estimating the covariances of residuals for Ms 

MH_efficient~~MH_useful
MH_efficient~~MH_expert
MH_efficient~~MH_objective
MH_efficient~~MH_accurate

MH_useful~~MH_expert
MH_useful~~MH_objective
MH_useful~~MH_accurate

MH_expert~~MH_objective
MH_expert~~MH_accurate 

MH_objective~~MH_accurate 

credible~~trust'
result.model <- lavaan(model, data=data)
result.model
summary (result.model, fit.measure=TRUE, standardized = TRUE, rsquare = TRUE, modindices = TRUE)
colnames(data)
library(psych)
tbl_df(data)
data %>%
  dplyr::select(Expectancyviolation_1:Expectancyviolation_4) %>%
  psych::alpha(,title = "EV")
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKVGhpcyBpcyBhbiBbUiBNYXJrZG93bl0oaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbSkgTm90ZWJvb2suIFdoZW4geW91IGV4ZWN1dGUgY29kZSB3aXRoaW4gdGhlIG5vdGVib29rLCB0aGUgcmVzdWx0cyBhcHBlYXIgYmVuZWF0aCB0aGUgY29kZS4KClRyeSBleGVjdXRpbmcgdGhpcyBjaHVuayBieSBjbGlja2luZyB0aGUgKlJ1biogYnV0dG9uIHdpdGhpbiB0aGUgY2h1bmsgb3IgYnkgcGxhY2luZyB5b3VyIGN1cnNvciBpbnNpZGUgaXQgYW5kIHByZXNzaW5nICpDbWQrU2hpZnQrRW50ZXIqLgoKYGBge3J9CnBsb3QoY2FycykKYGBgCgpBZGQgYSBuZXcgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpJbnNlcnQgQ2h1bmsqIGJ1dHRvbiBvbiB0aGUgdG9vbGJhciBvciBieSBwcmVzc2luZyAqQ21kK09wdGlvbitJKi4KCldoZW4geW91IHNhdmUgdGhlIG5vdGVib29rLCBhbiBIVE1MIGZpbGUgY29udGFpbmluZyB0aGUgY29kZSBhbmQgb3V0cHV0IHdpbGwgYmUgc2F2ZWQgYWxvbmdzaWRlIGl0IChjbGljayB0aGUgKlByZXZpZXcqIGJ1dHRvbiBvciBwcmVzcyAqQ21kK1NoaWZ0K0sqIHRvIHByZXZpZXcgdGhlIEhUTUwgZmlsZSkuCgpUaGUgcHJldmlldyBzaG93cyB5b3UgYSByZW5kZXJlZCBIVE1MIGNvcHkgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBlZGl0b3IuIENvbnNlcXVlbnRseSwgdW5saWtlICpLbml0KiwgKlByZXZpZXcqIGRvZXMgbm90IHJ1biBhbnkgUiBjb2RlIGNodW5rcy4gSW5zdGVhZCwgdGhlIG91dHB1dCBvZiB0aGUgY2h1bmsgd2hlbiBpdCB3YXMgbGFzdCBydW4gaW4gdGhlIGVkaXRvciBpcyBkaXNwbGF5ZWQuCgpgYGB7cn0KbGlicmFyeShsYXZhYW4pCmxpYnJhcnkoc2VtUGxvdCkKbGlicmFyeShoYXZlbikKbGlicmFyeShkcGx5cikKYGBgCgpgYGB7cn0KbGlicmFyeShjYVRvb2xzKSAgIyBGb3IgTGluZWFyIHJlZ3Jlc3Npb24gCmxpYnJhcnkoY2FyKSAgICAgICMgVG8gY2hlY2sgbXVsdGljb2xsaW5lYXJpdHkgCmxpYnJhcnkocXVhbnRtb2QpIApsaWJyYXJ5KE1BU1MpCmxpYnJhcnkoaGF2ZW4pCmBgYAoKQFNlcHRlbWJlciA1LCAyMDI0IERhdGEgQW5hbHlzaXMgd2l0aCB0aGUgbW9zdCByZWNlbnQgdmVyc2lvbiAoY2hlY2tpbmcgY29nbml0aXZlIGxlYXJuaW5nLCB3aGljaCBpcyBOZ19LVSArIE5nX0VDKQpgYGB7cn0KI05nS1UgYW5kIE5nRUMgYXJlIGJvdGggaW4gdGhlICJjb2duaXRpdmUgbGVhcm5pbmciIHN1YmRvbWFpbiBvZiB0aGUgbGl0ZXJhY3kgc2NhbGUuCiMgQ3JlYXRlIGEgbmV3IHZhcmlhYmxlIGJ5IGNhbGN1bGF0aW5nIHRoZSBtZWFuIG9mIHZhcjEgYW5kIHZhcjIKZGF0YV9uZXckTGl0X05nX0NMIDwtIHJvd01lYW5zKGRhdGFfbmV3WywgYygiTmdfQUlfTGl0XzUiLCAiTmdfQUlfTGl0XzYiLCAiTmdfQUlfTGl0XzciLCAiTmdfQUlfTGl0XzgiLCAiTmdfQUlfTGl0XzkiLCAiTmdfQUlfTGl0XzEwIildLCBuYS5ybSA9IFRSVUUpCmBgYAoKYGBge3J9CnByaW50KGRhdGFfbmV3KQpgYGAKCmBgYHtyfQojZmlsdGVyZWRfZGF0YSA9IGR1cmF0aW9uIG92ZXIgNjAwICgxMCBtaW51dGVzKQpmaWx0ZXJlZF9kYXRhJExpdF9OZ19DTCA8LSByb3dNZWFucyhmaWx0ZXJlZF9kYXRhWywgYygiTmdfQUlfTGl0XzUiLCAiTmdfQUlfTGl0XzYiLCAiTmdfQUlfTGl0XzciLCAiTmdfQUlfTGl0XzgiLCAiTmdfQUlfTGl0XzkiLCAiTmdfQUlfTGl0XzEwIildLCBuYS5ybSA9IFRSVUUpCnByaW50KGZpbHRlcmVkX2RhdGEpCgpgYGAKCgpgYGB7cn0KIyBTcGVjaWZ5IG1lZGlhdGlvbiBtb2RlbCB0aGF0IGhhcyBvbmx5IGNyZWRpYmxlMiBhcyB0aGUgc2Vjb25kIGxldmVsIG1lZGlhdG9yLCBhbmQgdXNpbmcgTGl0X05nX0NMIChDb2duaXRpdmUgbGVhcm5pbmcgY29tcG9zaXRlIHZhcmlhYmxlKQptb2RlbF82PC0KJwogICMgRGlyZWN0IGVmZmVjdHMgb2YgSVZzIG9uIERWCiAgICBmYWN0Y2hlY2tfQSB+IGMxKkxpdF9QaW5fVEsgKyBjMipMaXRfUGluX1NLICsgYzMqTGl0X05nX1NFICsgYzQqTGl0X05nX0NMCgogICMgRGlyZWN0IGVmZmVjdHMgb2YgSVZzIG9uIGZpcnN0LWxldmVsIG1lZGlhdG9ycwogICAgTUhfZXhwZXJ0IH4gYTNfMSpMaXRfUGluX1RLICsgYTNfMipMaXRfUGluX1NLICsgYTNfMypMaXRfTmdfU0UgKyBhM180KkxpdF9OZ19DTAogICAgTUhfb2JqZWN0aXZlIH4gYTRfMSpMaXRfUGluX1RLICsgYTRfMipMaXRfUGluX1NLICsgYTRfMypMaXRfTmdfU0UgKyBhNF80KkxpdF9OZ19DTAogICAgTUhfYWNjdXJhdGUgfiBhNV8xKkxpdF9QaW5fVEsgKyBhNV8yKkxpdF9QaW5fU0sgKyBhNV8zKkxpdF9OZ19TRSArIGE1XzQqTGl0X05nX0NMCgogICMgRGlyZWN0IGVmZmVjdHMgb2YgZmlyc3QtbGV2ZWwgbWVkaWF0b3JzIG9uIHNlY29uZC1sZXZlbCBtZWRpYXRvcnMKICAgIGNyZWRpYmxlMiB+IGIxXzMqTUhfZXhwZXJ0ICsgYjFfNCpNSF9vYmplY3RpdmUgKyBiMV81Kk1IX2FjY3VyYXRlCiAgICBjcmVkaWJsZTIgfiBiMV82KkxpdF9QaW5fVEsgKyBiMV83KkxpdF9QaW5fU0sgKyBiMV84KkxpdF9OZ19TRSArIGIxXzkqTGl0X05nX0NMCgoKICAjIERpcmVjdCBlZmZlY3RzIG9mIGZpcnN0IGFuZCBzZWNvbmQtbGV2ZWwgbWVkaWF0b3JzIG9uIERWCiAgICBmYWN0Y2hlY2tfQSB+IGQxKmNyZWRpYmxlMgoKICAjIEluZGlyZWN0IGVmZmVjdHMgdmlhIGZpcnN0IGFuZCBzZWNvbmQtbGV2ZWwgbWVkaWF0b3JzCiAgICBTRV9leHBlcnRfY3JlZGlibGUyIDo9IGEzXzMqYjFfMypkMQogICAgU0Vfb2JqX2NyZWRpYmxlMiA6PSBhNF8zKmIxXzQqZDEKICAgIFNFX2FjY19jcmVkaWJsZTIgOj0gYTVfMypiMV81KmQxCiAgICAKICAgIENMX2V4cGVydF9jcmVkaWJsZTIgOj0gYTNfNCpiMV8zKmQxCiAgICBDTF9vYmplY3RfY3JlZGlibGUyIDo9IGE0XzQqYjFfNCpkMQogICAgQ0xfYWNjX2NyZWRpYmxlMiA6PSBhNV80KmIxXzUqZDEKICAgIAogICNFc3RpbWF0aW5nIGNvdmFyaWFuY2UgYW5kIHJlc2lkdWFscyAKICAjRXN0aW1hdGluZyB2YXJpYW5jZXMgb2YgZXhvZ2Vub3VzIHZhcmlhYmxlcyAoWHMpCiAgICBMaXRfUGluX1RLfn5MaXRfUGluX1RLCiAgICBMaXRfUGluX1NLfn5MaXRfUGluX1NLCiAgICBMaXRfTmdfU0V+fkxpdF9OZ19TRQogICAgTGl0X05nX0NMfn5MaXRfTmdfQ0wKCiAgI0VzdGltYXRpbmcgY28tdmFyaWFuY2VzIG9mIGV4b2dlbm91cyB2YXJpYWJsZXMgKFhzKQogICAgTGl0X1Bpbl9US35+TGl0X1Bpbl9TSwogICAgTGl0X1Bpbl9US35+TGl0X05nX1NFCiAgICBMaXRfUGluX1RLfn5MaXRfTmdfQ0wKICAgIAogICAgTGl0X1Bpbl9TS35+TGl0X05nX1NFCiAgICBMaXRfUGluX1NLfn5MaXRfTmdfQ0wKICAgIAogICAgTGl0X05nX1NFfn5MaXRfTmdfQ0wKCiAgI0VzdGltYXRpbmcgdGhlIHJlc2lkdWFsIHZhcmlhbmNlcyAoZTEs4oCmKSBmb3IgZW5kb2dlbm91cyB2YXJpYWJsZXMgKE1zIGFuZCBZcykKICAgIE1IX2V4cGVydH5+TUhfZXhwZXJ0CiAgICBNSF9vYmplY3RpdmV+fk1IX29iamVjdGl2ZQogICAgTUhfYWNjdXJhdGV+fk1IX2FjY3VyYXRlCiAgICBjcmVkaWJsZTJ+fmNyZWRpYmxlMgogICAgZmFjdGNoZWNrX0F+fmZhY3RjaGVja19BCgogICNFc3RpbWF0aW5nIHRoZSBjb3ZhcmlhbmNlcyBvZiByZXNpZHVhbHMgZm9yIE1zIAogICAgTUhfZXhwZXJ0fn5NSF9vYmplY3RpdmUKICAgIE1IX2V4cGVydH5+TUhfYWNjdXJhdGUgCiAgICBNSF9vYmplY3RpdmV+fk1IX2FjY3VyYXRlIAonCmBgYAoKYGBge3J9CiMgQWRkIGJvb3RzdHJhcHBpbmcgdG8gdGhlIGxhdmFhbiBmdW5jdGlvbiBjYWxsCnJlc3VsdC5tb2RlbF82IDwtIGxhdmFhbihtb2RlbF82LCBkYXRhID0gZmlsdGVyZWRfZGF0YSwgc2UgPSAiYm9vdCIsIGJvb3RzdHJhcCA9IDEwMDApCgojIERpc3BsYXkgdGhlIHJlc3VsdHMgd2l0aCB0aGUgc3BlY2lmaWVkIG9wdGlvbnMKc3VtbWFyeShyZXN1bHQubW9kZWxfNiwgZml0Lm1lYXN1cmVzID0gVFJVRSwgc3RhbmRhcmRpemVkID0gVFJVRSwgcnNxdWFyZSA9IFRSVUUpCmBgYAoKCkBBdWd1c3QgMjcsIDIwMjQgRGF0YSBBbmFseXNpcyB3aXRoIHRoZSBtb3N0IHJlY2VudCB2ZXJzaW9uIChhZGRpdGlvbmFsIHJlc3BvbnNlcykuCmBgYHtyfQpkYXRhX25ldyA8LSByZWFkX3NhdigiL1VzZXJzL21qL0xpYnJhcnkvQ2xvdWRTdG9yYWdlL0Ryb3Bib3gvQENoYXQgR1BUIGFuZCBVc2VyIEFkYXB0YXRpb24vQ2hhdEdQVCBTdXJ2ZXkgZGF0YS9DaGF0R1BUX2NsZWFuZWRfMDgyNzIwMjQuc2F2IikKZGF0YV9uZXcKYGBgCgpgYGB7cn0KY29sbmFtZXMoZGF0YV9uZXcpCmBgYAoKYGBge3J9CnJhbmdlKGRhdGFfbmV3JER1cmF0aW9uX19pbl9zZWNvbmRzXywgbmEucm0gPSBUUlVFKQpgYGAKYGBge3J9CiN0cnlpbmcgdG8gcnVuIHRoZSBtb2RlbF81X25ldyB3aXRoIHJlc3BvbnNlcyB3aXRoIGR1cmF0aW9uIG92ZXIgNjAwIHNlY29uZHMuCmZpbHRlcmVkX2RhdGEgPC0gc3Vic2V0KGRhdGFfbmV3LCBEdXJhdGlvbl9faW5fc2Vjb25kc18gPiA2MDApCmZpbHRlcmVkX2RhdGEKYGBgCgoKYGBge3J9CiN3aWxsIHJ1biBtb2RlbF81IHdpdGggImRhdGFfbmV3IiwgbW9kZWxfNSBoYXMgY3JlZGlibGUyIGFzIHRoZSBzb2xlIHNlY29uZCBsZXZlbCBtZWRpYXRvciwgYW5kIGhhZCBhIGJldHRlciBtb2RlbCBmaXQuIAoKbW9kZWxfNV9uZXc8LQonCiAgIyBEaXJlY3QgZWZmZWN0cyBvZiBJVnMgb24gRFYKICAgIGZhY3RjaGVja19BIH4gYzEqTGl0X1Bpbl9USyArIGMyKkxpdF9QaW5fU0sgKyBjMypMaXRfTmdfU0UgKyBjNCpMaXRfTmdfS1UgKyBjNSpMaXRfTmdfRUMKCiAgIyBEaXJlY3QgZWZmZWN0cyBvZiBJVnMgb24gZmlyc3QtbGV2ZWwgbWVkaWF0b3JzCiAgICBNSF9leHBlcnQgfiBhM18xKkxpdF9QaW5fVEsgKyBhM18yKkxpdF9QaW5fU0sgKyBhM18zKkxpdF9OZ19TRSArIGEzXzQqTGl0X05nX0tVICsgYTNfNSpMaXRfTmdfRUMKICAgIE1IX29iamVjdGl2ZSB+IGE0XzEqTGl0X1Bpbl9USyArIGE0XzIqTGl0X1Bpbl9TSyArIGE0XzMqTGl0X05nX1NFICsgYTRfNCpMaXRfTmdfS1UgKyBhNF81KkxpdF9OZ19FQwogICAgTUhfYWNjdXJhdGUgfiBhNV8xKkxpdF9QaW5fVEsgKyBhNV8yKkxpdF9QaW5fU0sgKyBhNV8zKkxpdF9OZ19TRSArIGE1XzQqTGl0X05nX0tVICsgYTVfNSpMaXRfTmdfRUMKCiAgIyBEaXJlY3QgZWZmZWN0cyBvZiBmaXJzdC1sZXZlbCBtZWRpYXRvcnMgb24gc2Vjb25kLWxldmVsIG1lZGlhdG9ycwogICAgY3JlZGlibGUyIH4gYjFfMypNSF9leHBlcnQgKyBiMV80Kk1IX29iamVjdGl2ZSArIGIxXzUqTUhfYWNjdXJhdGUKCiAgIyBEaXJlY3QgZWZmZWN0cyBvZiBmaXJzdCBhbmQgc2Vjb25kLWxldmVsIG1lZGlhdG9ycyBvbiBEVgogICAgZmFjdGNoZWNrX0EgfiBkMSpjcmVkaWJsZTIKCiAgIyBJbmRpcmVjdCBlZmZlY3RzIHZpYSBmaXJzdCBhbmQgc2Vjb25kLWxldmVsIG1lZGlhdG9ycwogICAgU0VfZXhwZXJ0X2NyZWRpYmxlMiA6PSBhM18zKmIxXzMqZDEKICAgIFNFX29ial9jcmVkaWJsZTIgOj0gYTRfMypiMV80KmQxCiAgICBTRV9hY2NfY3JlZGlibGUyIDo9IGE1XzMqYjFfNSpkMQogICAgCiAgICBFQ19leHBlcnRfY3JlZGlibGUyIDo9IGEzXzUqYjFfMypkMQogICAgRUNfb2JqX2NyZWRpYmxlMiA6PSBhNF81KmIxXzMqZDEKICAgIEVDX2FjY19jcmVkaWJsZTIgOj0gYTVfNSpiMV8zKmQxCiAgICAKICAgIEtVX2V4cGVydF9jcmVkaWJsZTIgOj0gYTNfNCpiMV8zKmQxCiAgICBLVV9vYmplY3RfY3JlZGlibGUyIDo9IGE0XzQqYjFfNCpkMQogICAgS1VfYWNjX2NyZWRpYmxlMiA6PSBhNV80KmIxXzUqZDEKICAgIAogICNFc3RpbWF0aW5nIGNvdmFyaWFuY2UgYW5kIHJlc2lkdWFscyAKICAjRXN0aW1hdGluZyB2YXJpYW5jZXMgb2YgZXhvZ2Vub3VzIHZhcmlhYmxlcyAoWHMpCiAgICBMaXRfUGluX1RLfn5MaXRfUGluX1RLCiAgICBMaXRfUGluX1NLfn5MaXRfUGluX1NLCiAgICBMaXRfTmdfU0V+fkxpdF9OZ19TRQogICAgTGl0X05nX0tVfn5MaXRfTmdfS1UKICAgIExpdF9OZ19FQ35+TGl0X05nX0VDCgogICNFc3RpbWF0aW5nIGNvLXZhcmlhbmNlcyBvZiBleG9nZW5vdXMgdmFyaWFibGVzIChYcykKICAgIExpdF9QaW5fVEt+fkxpdF9QaW5fU0sKICAgIExpdF9QaW5fVEt+fkxpdF9OZ19TRQogICAgTGl0X1Bpbl9US35+TGl0X05nX0tVCiAgICBMaXRfUGluX1RLfn5MaXRfTmdfRUMKICAgIAogICAgTGl0X1Bpbl9TS35+TGl0X05nX1NFCiAgICBMaXRfUGluX1NLfn5MaXRfTmdfS1UKICAgIExpdF9QaW5fU0t+fkxpdF9OZ19FQwogICAgCiAgICBMaXRfTmdfU0V+fkxpdF9OZ19LVQogICAgTGl0X05nX1NFfn5MaXRfTmdfRUMKICAgIAogICAgTGl0X05nX0tVfn5MaXRfTmdfRUMKCiAgI0VzdGltYXRpbmcgdGhlIHJlc2lkdWFsIHZhcmlhbmNlcyAoZTEs4oCmKSBmb3IgZW5kb2dlbm91cyB2YXJpYWJsZXMgKE1zIGFuZCBZcykKICAgIE1IX2V4cGVydH5+TUhfZXhwZXJ0CiAgICBNSF9vYmplY3RpdmV+fk1IX29iamVjdGl2ZQogICAgTUhfYWNjdXJhdGV+fk1IX2FjY3VyYXRlCiAgICBjcmVkaWJsZTJ+fmNyZWRpYmxlMgogICAgZmFjdGNoZWNrX0F+fmZhY3RjaGVja19BCgogICNFc3RpbWF0aW5nIHRoZSBjb3ZhcmlhbmNlcyBvZiByZXNpZHVhbHMgZm9yIE1zIAogICAgTUhfZXhwZXJ0fn5NSF9vYmplY3RpdmUKICAgIE1IX2V4cGVydH5+TUhfYWNjdXJhdGUgCiAgICBNSF9vYmplY3RpdmV+fk1IX2FjY3VyYXRlIAonCmBgYAoKYGBge3J9CiMgQWRkIGJvb3RzdHJhcHBpbmcgdG8gdGhlIGxhdmFhbiBmdW5jdGlvbiBjYWxsCnJlc3VsdC5tb2RlbF81X25ldyA8LSBsYXZhYW4obW9kZWxfNV9uZXcsIGRhdGEgPSBmaWx0ZXJlZF9kYXRhLCBzZSA9ICJib290IiwgYm9vdHN0cmFwID0gNTAwMCkKCiMgRGlzcGxheSB0aGUgcmVzdWx0cyB3aXRoIHRoZSBzcGVjaWZpZWQgb3B0aW9ucwpzdW1tYXJ5KHJlc3VsdC5tb2RlbF81X25ldywgZml0Lm1lYXN1cmVzID0gVFJVRSwgc3RhbmRhcmRpemVkID0gVFJVRSwgcnNxdWFyZSA9IFRSVUUpCmBgYAoKCgoKCj09PT09PT09PT0gVGhlIGZvbGxvd2luZyBhbmFseXNpcyBpcyBiZWZvcmUgZGF0YV9uZXcod2l0aG91dCBpbmNsdWRpbmcgYWxsIHBhcnRpY2lwYW50cykKCmBgYHtyfQpkYXRhIDwtIHJlYWRfc2F2KCIvVXNlcnMvbWovTGlicmFyeS9DbG91ZFN0b3JhZ2UvRHJvcGJveC9AQ2hhdCBHUFQgYW5kIFVzZXIgQWRhcHRhdGlvbi9DaGF0R1BUIFN1cnZleSBkYXRhL0NoYXRHUFRfY2xlYW5lZC5zYXYiKQpkYXRhCmBgYApgYGB7cn0KY29sbmFtZXMoZGF0YSkKYGBgCgoKCkNoZWNraW5nIHdoZXRoZXIgZWR1Y2F0aW9uLCBTVEVNLCBhbmQgb3RoZXIgZGVtb2dyYXBoaWMgZmFjdG9ycyBwcmVkaWN0IGxpdGVyYWN5IGxldmVscwpgYGB7cn0KI2NoZWNraW5nIHJlc3BvbnNlIG9wdGlvbnMgaW4gZWR1Y2F0aW9uIHZhcmlhYmxlIChRNDggY29sdW1uKQp1bmlxdWUoZGF0YSRRNDgpCnRhYmxlKGRhdGEkUTQ4KQpzdW1tYXJ5KGRhdGEkUTQ4KQpgYGAKCmBgYHtyfQojUmVjb2RpbmcgZWR1Y2F0aW9uIHZhcmlhYmxlOiAxIGlzIGxlc3MgdGhhbiBoaWdoIHNjaG9vbCwgMiBpcyBoaWdoIHNjaG9vbCBvciBwcm9mZXNzaW9uYWwgZGVncmVlLCAzIGlzIGNvbGxlZ2UvYmFjaGVsb3IncyBkZWdyZWUsIDQgaXMgbWF0ZXIncyBkZWdyZWUgb3IgaGlnaGVyIApkYXRhIDwtIGRhdGEgJT4lCiAgbXV0YXRlKEVkdT0gY2FzZV93aGVuKAogICAgUTQ4ID09ICJTb21lIGhpZ2ggc2Nob29sLCBubyBkaXBsb21hIiB+IDEsCiAgICBRNDggPT0gIlRyYWRlL3RlY2huaWNhbC92b2NhdGlvbmFsIHRyYWluaW5nIiB+IDEsCiAgICBRNDggPT0gIlNvbWUgY29sbGVnZSBjcmVkaXQsIG5vIGRlZ3JlZSIgfiAyLAogICAgUTQ4ID09ICJQcm9mZXNzaW9uYWwgZGVncmVlIiB+IDIsCiAgICBRNDggPT0gImhpZ2ggc2Nob29sIGdyYWR1YXRlLCBkaXBsb21hIG9yIHRoZSBlcXVpdmFsZW50IChmb3IgZXhhbXBsZTogR0VEKSIgfiAyLAogICAgUTQ4ID09ICJBc3NvY2lhdGUgZGVncmVlIiB+IDMsCiAgICBRNDggPT0gIkJhY2hlbG9y4oCaw4TDtHMgZGVncmVlIiB+IDMsCiAgICBRNDggPT0gIk1hc3RlcuKAmsOEw7RzIGRlZ3JlZSIgfiA0CiAgKSkKCmBgYAoKYGBge3J9CnVuaXF1ZShkYXRhJEVkdSkKdGFibGUoZGF0YSRFZHUpCnN1bW1hcnkoZGF0YSRFZHUpCmBgYAoKYGBge3J9CiNSZWNvZGluZyBnZW5kZXIgc3RyaW5nIHRvIGdlbmRlciBudW1lcmljIApkYXRhIDwtIGRhdGEgJT4lCiAgbXV0YXRlKEdlbl9udW09IGNhc2Vfd2hlbigKICAgIEdlbmRlciA9PSAiTWFsZSIgfiAxLAogICAgR2VuZGVyID09ICJGZW1hbGUiIH4gMCwKICApKQp0YWJsZShkYXRhJEdlbl9udW0pCnN1bW1hcnkoZGF0YSRHZW5fbnVtKQpgYGAKYGBge3J9CnVuaXF1ZV92YWx1ZXMgPC0gbGFwcGx5KGRhdGFbLCBjKCJRNTAiKV0sIHVuaXF1ZSkKcHJpbnQodW5pcXVlX3ZhbHVlcykKYGBgCgpgYGB7cn0KI1JlY29kaW5nIGdlbmRlciBzdHJpbmcgdG8gZ2VuZGVyIG51bWVyaWMgCmRhdGEgPC0gZGF0YSAlPiUKICBtdXRhdGUoc3RlbT0gY2FzZV93aGVuKAogICAgUTUwID09ICJZZXMiIH4gMSwKICAgIFE1MCA9PSAiTm8iIH4gMCwKICAgIFE1MCA9PSAiTm90IHN1cmUiIH4gMCwgCiAgICBRNTAgPT0gIiIgfiAwCiAgKSkKdGFibGUoZGF0YSRzdGVtKQpzdW1tYXJ5KGRhdGEkc3RlbSkKYGBgCgoKCgpSdW5uaW5nIGxpbmVhciByZWdyZXNzaW9uIHdoZXJlIGRlbW9ncmFwaGljIGZhY3RvcnMgcHJlZGljdCB0aGUgbGl0ZXJhY3kgdmFyaWFibGVzIAoKYGBge3J9CiMgRml0IHRoZSBtdWx0aXZhcmlhdGUgbGluZWFyIHJlZ3Jlc3Npb24gbW9kZWwKbW9kZWxfcmVnIDwtIGxtKGNiaW5kKExpdF9QaW5fVEssIExpdF9QaW5fU0ssIExpdF9OZ19TRSwgTGl0X05nX0tVLCBMaXRfTmdfRUMpIH4gQWdlICsgR2VuX251bSArIEVkdSArIHN0ZW0sIGRhdGEgPSBkYXRhKQpzdW1tYXJ5KG1vZGVsX3JlZykKYGBgCgpgYGB7cn0KI0ZvdW5kIGFuIGlzc3VlIHdpdGggY3JlZGliaWxpdHkgbWVhdXNyZSAoImFjY3VyYXRlIiBpcyByZXBsaWNhdGVkIGluIE1IX2FjY3VyYXRlKSwgdG8gYWRkcmVzcyB0aGlzLCBjcmVhdGUgY3JlZGlibGUyIHZhcmlhYmxlIGJ5IG9ubHkgYWRkaW5nIGNyZWRpYmxlKDEpLCByZWxpYWJsZSgzKSxleHBlcnQoNCksIGFuZCB0cnVzd29ydGh5KDUpCiMgQ3JlYXRlIGEgbmV3IHZhcmlhYmxlIGJ5IGNhbGN1bGF0aW5nIHRoZSBtZWFuIG9mIHZhcjEgYW5kIHZhcjIKZGF0YSRjcmVkaWJsZTIgPC0gcm93TWVhbnMoZGF0YVssIGMoIkNyZWRpYmxlXzEiLCAiQ3JlZGlibGVfMyIsIkNyZWRpYmxlXzQiLCJDcmVkaWJsZV81IildLCBuYS5ybSA9IFRSVUUpCgpgYGAKCmBgYHtyfQojIFNwZWNpZnkgbWVkaWF0aW9uIG1vZGVsIHRoYXQgaGFzIG9ubHkgY3JlZGlibGUyIGFzIHRoZSBzZWNvbmQgbGV2ZWwgbWVkaWF0b3IgCm1vZGVsXzU8LQonCiAgIyBEaXJlY3QgZWZmZWN0cyBvZiBJVnMgb24gRFYKICAgIGZhY3RjaGVja19BIH4gYzEqTGl0X1Bpbl9USyArIGMyKkxpdF9QaW5fU0sgKyBjMypMaXRfTmdfU0UgKyBjNCpMaXRfTmdfS1UgKyBjNSpMaXRfTmdfRUMKCiAgIyBEaXJlY3QgZWZmZWN0cyBvZiBJVnMgb24gZmlyc3QtbGV2ZWwgbWVkaWF0b3JzCiAgICBNSF9leHBlcnQgfiBhM18xKkxpdF9QaW5fVEsgKyBhM18yKkxpdF9QaW5fU0sgKyBhM18zKkxpdF9OZ19TRSArIGEzXzQqTGl0X05nX0tVICsgYTNfNSpMaXRfTmdfRUMKICAgIE1IX29iamVjdGl2ZSB+IGE0XzEqTGl0X1Bpbl9USyArIGE0XzIqTGl0X1Bpbl9TSyArIGE0XzMqTGl0X05nX1NFICsgYTRfNCpMaXRfTmdfS1UgKyBhNF81KkxpdF9OZ19FQwogICAgTUhfYWNjdXJhdGUgfiBhNV8xKkxpdF9QaW5fVEsgKyBhNV8yKkxpdF9QaW5fU0sgKyBhNV8zKkxpdF9OZ19TRSArIGE1XzQqTGl0X05nX0tVICsgYTVfNSpMaXRfTmdfRUMKCiAgIyBEaXJlY3QgZWZmZWN0cyBvZiBmaXJzdC1sZXZlbCBtZWRpYXRvcnMgb24gc2Vjb25kLWxldmVsIG1lZGlhdG9ycwogICAgY3JlZGlibGUyIH4gYjFfMypNSF9leHBlcnQgKyBiMV80Kk1IX29iamVjdGl2ZSArIGIxXzUqTUhfYWNjdXJhdGUKCiAgIyBEaXJlY3QgZWZmZWN0cyBvZiBmaXJzdCBhbmQgc2Vjb25kLWxldmVsIG1lZGlhdG9ycyBvbiBEVgogICAgZmFjdGNoZWNrX0EgfiBkMSpjcmVkaWJsZTIKCiAgIyBJbmRpcmVjdCBlZmZlY3RzIHZpYSBmaXJzdCBhbmQgc2Vjb25kLWxldmVsIG1lZGlhdG9ycwogICAgU0VfZXhwZXJ0X2NyZWRpYmxlMiA6PSBhM18zKmIxXzMqZDEKICAgIFNFX29ial9jcmVkaWJsZTIgOj0gYTRfMypiMV80KmQxCiAgICBTRV9hY2NfY3JlZGlibGUyIDo9IGE1XzMqYjFfNSpkMQogICAgCiAgICBFQ19leHBlcnRfY3JlZGlibGUyIDo9IGEzXzUqYjFfMypkMQogICAgRUNfb2JqX2NyZWRpYmxlMiA6PSBhNF81KmIxXzMqZDEKICAgIEVDX2FjY19jcmVkaWJsZTIgOj0gYTVfNSpiMV8zKmQxCiAgICAKICAgIEtVX2V4cGVydF9jcmVkaWJsZTIgOj0gYTNfNCpiMV8zKmQxCiAgICBLVV9vYmplY3RfY3JlZGlibGUyIDo9IGE0XzQqYjFfNCpkMQogICAgS1VfYWNjX2NyZWRpYmxlMiA6PSBhNV80KmIxXzUqZDEKICAgIAogICNFc3RpbWF0aW5nIGNvdmFyaWFuY2UgYW5kIHJlc2lkdWFscyAKICAjRXN0aW1hdGluZyB2YXJpYW5jZXMgb2YgZXhvZ2Vub3VzIHZhcmlhYmxlcyAoWHMpCiAgICBMaXRfUGluX1RLfn5MaXRfUGluX1RLCiAgICBMaXRfUGluX1NLfn5MaXRfUGluX1NLCiAgICBMaXRfTmdfU0V+fkxpdF9OZ19TRQogICAgTGl0X05nX0tVfn5MaXRfTmdfS1UKICAgIExpdF9OZ19FQ35+TGl0X05nX0VDCgogICNFc3RpbWF0aW5nIGNvLXZhcmlhbmNlcyBvZiBleG9nZW5vdXMgdmFyaWFibGVzIChYcykKICAgIExpdF9QaW5fVEt+fkxpdF9QaW5fU0sKICAgIExpdF9QaW5fVEt+fkxpdF9OZ19TRQogICAgTGl0X1Bpbl9US35+TGl0X05nX0tVCiAgICBMaXRfUGluX1RLfn5MaXRfTmdfRUMKICAgIAogICAgTGl0X1Bpbl9TS35+TGl0X05nX1NFCiAgICBMaXRfUGluX1NLfn5MaXRfTmdfS1UKICAgIExpdF9QaW5fU0t+fkxpdF9OZ19FQwogICAgCiAgICBMaXRfTmdfU0V+fkxpdF9OZ19LVQogICAgTGl0X05nX1NFfn5MaXRfTmdfRUMKICAgIAogICAgTGl0X05nX0tVfn5MaXRfTmdfRUMKCiAgI0VzdGltYXRpbmcgdGhlIHJlc2lkdWFsIHZhcmlhbmNlcyAoZTEs4oCmKSBmb3IgZW5kb2dlbm91cyB2YXJpYWJsZXMgKE1zIGFuZCBZcykKICAgIE1IX2V4cGVydH5+TUhfZXhwZXJ0CiAgICBNSF9vYmplY3RpdmV+fk1IX29iamVjdGl2ZQogICAgTUhfYWNjdXJhdGV+fk1IX2FjY3VyYXRlCiAgICBjcmVkaWJsZTJ+fmNyZWRpYmxlMgogICAgZmFjdGNoZWNrX0F+fmZhY3RjaGVja19BCgogICNFc3RpbWF0aW5nIHRoZSBjb3ZhcmlhbmNlcyBvZiByZXNpZHVhbHMgZm9yIE1zIAogICAgTUhfZXhwZXJ0fn5NSF9vYmplY3RpdmUKICAgIE1IX2V4cGVydH5+TUhfYWNjdXJhdGUgCiAgICBNSF9vYmplY3RpdmV+fk1IX2FjY3VyYXRlIAonCmBgYAoKYGBge3J9CiMgQWRkIGJvb3RzdHJhcHBpbmcgdG8gdGhlIGxhdmFhbiBmdW5jdGlvbiBjYWxsCnJlc3VsdC5tb2RlbF81IDwtIGxhdmFhbihtb2RlbF81LCBkYXRhID0gZGF0YSwgc2UgPSAiYm9vdCIsIGJvb3RzdHJhcCA9IDUwMDApCgojIERpc3BsYXkgdGhlIHJlc3VsdHMgd2l0aCB0aGUgc3BlY2lmaWVkIG9wdGlvbnMKc3VtbWFyeShyZXN1bHQubW9kZWxfNSwgZml0Lm1lYXN1cmVzID0gVFJVRSwgc3RhbmRhcmRpemVkID0gVFJVRSwgcnNxdWFyZSA9IFRSVUUpCmBgYAoKCmBgYHtyfQojIFNwZWNpZnkgbWVkaWF0aW9uIG1vZGVsIHdpdGggY3JlZGlibGUyLCBNb2RlbDMrY3JlZGlibGUyCm1vZGVsXzQ8LQonCiAgIyBEaXJlY3QgZWZmZWN0cyBvZiBJVnMgb24gRFYKICAgIGZhY3RjaGVja19BIH4gYzEqTGl0X1Bpbl9USyArIGMyKkxpdF9QaW5fU0sgKyBjMypMaXRfTmdfU0UgKyBjNCpMaXRfTmdfS1UgKyBjNSpMaXRfTmdfRUMKCiAgIyBEaXJlY3QgZWZmZWN0cyBvZiBJVnMgb24gZmlyc3QtbGV2ZWwgbWVkaWF0b3JzCiAgICBNSF9leHBlcnQgfiBhM18xKkxpdF9QaW5fVEsgKyBhM18yKkxpdF9QaW5fU0sgKyBhM18zKkxpdF9OZ19TRSArIGEzXzQqTGl0X05nX0tVICsgYTNfNSpMaXRfTmdfRUMKICAgIE1IX29iamVjdGl2ZSB+IGE0XzEqTGl0X1Bpbl9USyArIGE0XzIqTGl0X1Bpbl9TSyArIGE0XzMqTGl0X05nX1NFICsgYTRfNCpMaXRfTmdfS1UgKyBhNF81KkxpdF9OZ19FQwogICAgTUhfYWNjdXJhdGUgfiBhNV8xKkxpdF9QaW5fVEsgKyBhNV8yKkxpdF9QaW5fU0sgKyBhNV8zKkxpdF9OZ19TRSArIGE1XzQqTGl0X05nX0tVICsgYTVfNSpMaXRfTmdfRUMKCiAgIyBEaXJlY3QgZWZmZWN0cyBvZiBmaXJzdC1sZXZlbCBtZWRpYXRvcnMgb24gc2Vjb25kLWxldmVsIG1lZGlhdG9ycwogICAgY3JlZGlibGUyIH4gYjFfMypNSF9leHBlcnQgKyBiMV80Kk1IX29iamVjdGl2ZSArIGIxXzUqTUhfYWNjdXJhdGUKICAgIHRydXN0IH4gYjJfMypNSF9leHBlcnQgKyBiMl80Kk1IX29iamVjdGl2ZSArIGIyXzUqTUhfYWNjdXJhdGUKCiAgIyBEaXJlY3QgZWZmZWN0cyBvZiBmaXJzdCBhbmQgc2Vjb25kLWxldmVsIG1lZGlhdG9ycyBvbiBEVgogICAgZmFjdGNoZWNrX0EgfiBkMSpjcmVkaWJsZTIgKyBkMip0cnVzdAoKICAjIEluZGlyZWN0IGVmZmVjdHMgdmlhIGZpcnN0IGFuZCBzZWNvbmQtbGV2ZWwgbWVkaWF0b3JzCiAgICBTRV9leHBlcnRfY3JlZGlibGUyIDo9IGEzXzMqYjFfMypkMQogICAgU0Vfb2JqX2NyZWRpYmxlMiA6PSBhNF8zKmIxXzQqZDEKICAgIFNFX2FjY19jcmVkaWJsZTIgOj0gYTVfMypiMV81KmQxCiAgICAKICAgIEVDX2V4cGVydF9jcmVkaWJsZTIgOj0gYTNfNSpiMV8zKmQxCiAgICBFQ19vYmpfY3JlZGlibGUyIDo9IGE0XzUqYjFfMypkMQogICAgRUNfYWNjX2NyZWRpYmxlMiA6PSBhNV81KmIxXzMqZDEKICAgIAogICAgS1VfZXhwZXJ0X2NyZWRpYmxlMiA6PSBhM180KmIxXzMqZDEKICAgIAogICNFc3RpbWF0aW5nIGNvdmFyaWFuY2UgYW5kIHJlc2lkdWFscyAKICAjRXN0aW1hdGluZyB2YXJpYW5jZXMgb2YgZXhvZ2Vub3VzIHZhcmlhYmxlcyAoWHMpCiAgICBMaXRfUGluX1RLfn5MaXRfUGluX1RLCiAgICBMaXRfUGluX1NLfn5MaXRfUGluX1NLCiAgICBMaXRfTmdfU0V+fkxpdF9OZ19TRQogICAgTGl0X05nX0tVfn5MaXRfTmdfS1UKICAgIExpdF9OZ19FQ35+TGl0X05nX0VDCgogICNFc3RpbWF0aW5nIGNvLXZhcmlhbmNlcyBvZiBleG9nZW5vdXMgdmFyaWFibGVzIChYcykKICAgIExpdF9QaW5fVEt+fkxpdF9QaW5fU0sKICAgIExpdF9QaW5fVEt+fkxpdF9OZ19TRQogICAgTGl0X1Bpbl9US35+TGl0X05nX0tVCiAgICBMaXRfUGluX1RLfn5MaXRfTmdfRUMKICAgIAogICAgTGl0X1Bpbl9TS35+TGl0X05nX1NFCiAgICBMaXRfUGluX1NLfn5MaXRfTmdfS1UKICAgIExpdF9QaW5fU0t+fkxpdF9OZ19FQwogICAgCiAgICBMaXRfTmdfU0V+fkxpdF9OZ19LVQogICAgTGl0X05nX1NFfn5MaXRfTmdfRUMKICAgIAogICAgTGl0X05nX0tVfn5MaXRfTmdfRUMKCiAgI0VzdGltYXRpbmcgdGhlIHJlc2lkdWFsIHZhcmlhbmNlcyAoZTEs4oCmKSBmb3IgZW5kb2dlbm91cyB2YXJpYWJsZXMgKE1zIGFuZCBZcykKICAgIE1IX2V4cGVydH5+TUhfZXhwZXJ0CiAgICBNSF9vYmplY3RpdmV+fk1IX29iamVjdGl2ZQogICAgTUhfYWNjdXJhdGV+fk1IX2FjY3VyYXRlCiAgICAKICAgIGNyZWRpYmxlMn5+Y3JlZGlibGUyCiAgICB0cnVzdH5+dHJ1c3QKICAgIAogICAgZmFjdGNoZWNrX0F+fmZhY3RjaGVja19BCgogICNFc3RpbWF0aW5nIHRoZSBjb3ZhcmlhbmNlcyBvZiByZXNpZHVhbHMgZm9yIE1zIAogICAgTUhfZXhwZXJ0fn5NSF9vYmplY3RpdmUKICAgIE1IX2V4cGVydH5+TUhfYWNjdXJhdGUgCiAgICBNSF9vYmplY3RpdmV+fk1IX2FjY3VyYXRlIAogICAgCiAgICBjcmVkaWJsZTJ+fnRydXN0CicKYGBgCgpgYGB7cn0KIyBBZGQgYm9vdHN0cmFwcGluZyB0byB0aGUgbGF2YWFuIGZ1bmN0aW9uIGNhbGwKcmVzdWx0Lm1vZGVsXzQgPC0gbGF2YWFuKG1vZGVsXzQsIGRhdGEgPSBkYXRhLCBzZSA9ICJib290IiwgYm9vdHN0cmFwID0gNTAwMCkKCiMgRGlzcGxheSB0aGUgcmVzdWx0cyB3aXRoIHRoZSBzcGVjaWZpZWQgb3B0aW9ucwpzdW1tYXJ5KHJlc3VsdC5tb2RlbF80LCBmaXQubWVhc3VyZXMgPSBUUlVFLCBzdGFuZGFyZGl6ZWQgPSBUUlVFLCByc3F1YXJlID0gVFJVRSkKCmBgYAoKCgoKYGBge3J9CiMgU3BlY2lmeSBtZWRpYXRpb24gbW9kZWwgd2l0aCBNSCBleHBlcnQsIG9iamVjdGl2ZSwgYWNjdXJhdGUgb25seSAKbW9kZWxfMzwtCicKICAjIERpcmVjdCBlZmZlY3RzIG9mIElWcyBvbiBEVgogICAgZmFjdGNoZWNrX0EgfiBjMSpMaXRfUGluX1RLICsgYzIqTGl0X1Bpbl9TSyArIGMzKkxpdF9OZ19TRSArIGM0KkxpdF9OZ19LVSArIGM1KkxpdF9OZ19FQwoKICAjIERpcmVjdCBlZmZlY3RzIG9mIElWcyBvbiBmaXJzdC1sZXZlbCBtZWRpYXRvcnMKICAgIE1IX2V4cGVydCB+IGEzXzEqTGl0X1Bpbl9USyArIGEzXzIqTGl0X1Bpbl9TSyArIGEzXzMqTGl0X05nX1NFICsgYTNfNCpMaXRfTmdfS1UgKyBhM181KkxpdF9OZ19FQwogICAgTUhfb2JqZWN0aXZlIH4gYTRfMSpMaXRfUGluX1RLICsgYTRfMipMaXRfUGluX1NLICsgYTRfMypMaXRfTmdfU0UgKyBhNF80KkxpdF9OZ19LVSArIGE0XzUqTGl0X05nX0VDCiAgICBNSF9hY2N1cmF0ZSB+IGE1XzEqTGl0X1Bpbl9USyArIGE1XzIqTGl0X1Bpbl9TSyArIGE1XzMqTGl0X05nX1NFICsgYTVfNCpMaXRfTmdfS1UgKyBhNV81KkxpdF9OZ19FQwoKICAjIERpcmVjdCBlZmZlY3RzIG9mIGZpcnN0LWxldmVsIG1lZGlhdG9ycyBvbiBzZWNvbmQtbGV2ZWwgbWVkaWF0b3JzCiAgICBjcmVkaWJsZSB+IGIxXzMqTUhfZXhwZXJ0ICsgYjFfNCpNSF9vYmplY3RpdmUgKyBiMV81Kk1IX2FjY3VyYXRlCiAgICB0cnVzdCB+IGIyXzMqTUhfZXhwZXJ0ICsgYjJfNCpNSF9vYmplY3RpdmUgKyBiMl81Kk1IX2FjY3VyYXRlCgogICMgRGlyZWN0IGVmZmVjdHMgb2Ygc2Vjb25kLWxldmVsIG1lZGlhdG9ycyBvbiBEVgogICAgZmFjdGNoZWNrX0EgfiBkMSpjcmVkaWJsZSArIGQyKnRydXN0CgogICMgSW5kaXJlY3QgZWZmZWN0cyB2aWEgZmlyc3QgYW5kIHNlY29uZC1sZXZlbCBtZWRpYXRvcnMKICAgIFNFX2V4cGVydF9jcmVkaWJsZSA6PSBhM18zKmIxXzMqZDEKICAgIFNFX29ial9jcmVkaWJsZSA6PSBhNF8zKmIxXzQqZDEKICAgIFNFX2FjY19jcmVkaWJsZSA6PSBhNV8zKmIxXzUqZDEKICAgIAogICAgRUNfZXhwZXJ0X2NyZWRpYmxlIDo9IGEzXzUqYjFfMypkMQogICAgRUNfb2JqX2NyZWRpYmxlIDo9IGE0XzUqYjFfMypkMQogICAgRUNfYWNjX2NyZWRpYmxlIDo9IGE1XzUqYjFfMypkMQogICAgCiAgICBLVV9leHBlcnRfY3JlZGlibGUgOj0gYTNfNCpiMV8zKmQxCiAgICAKICAjRXN0aW1hdGluZyBjb3ZhcmlhbmNlIGFuZCByZXNpZHVhbHMgCiAgI0VzdGltYXRpbmcgdmFyaWFuY2VzIG9mIGV4b2dlbm91cyB2YXJpYWJsZXMgKFhzKQogICAgTGl0X1Bpbl9US35+TGl0X1Bpbl9USwogICAgTGl0X1Bpbl9TS35+TGl0X1Bpbl9TSwogICAgTGl0X05nX1NFfn5MaXRfTmdfU0UKICAgIExpdF9OZ19LVX5+TGl0X05nX0tVCiAgICBMaXRfTmdfRUN+fkxpdF9OZ19FQwoKICAjRXN0aW1hdGluZyBjby12YXJpYW5jZXMgb2YgZXhvZ2Vub3VzIHZhcmlhYmxlcyAoWHMpCiAgICBMaXRfUGluX1RLfn5MaXRfUGluX1NLCiAgICBMaXRfUGluX1RLfn5MaXRfTmdfU0UKICAgIExpdF9QaW5fVEt+fkxpdF9OZ19LVQogICAgTGl0X1Bpbl9US35+TGl0X05nX0VDCiAgICAKICAgIExpdF9QaW5fU0t+fkxpdF9OZ19TRQogICAgTGl0X1Bpbl9TS35+TGl0X05nX0tVCiAgICBMaXRfUGluX1NLfn5MaXRfTmdfRUMKICAgIAogICAgTGl0X05nX1NFfn5MaXRfTmdfS1UKICAgIExpdF9OZ19TRX5+TGl0X05nX0VDCiAgICAKICAgIExpdF9OZ19LVX5+TGl0X05nX0VDCgogICNFc3RpbWF0aW5nIHRoZSByZXNpZHVhbCB2YXJpYW5jZXMgKGUxLOKApikgZm9yIGVuZG9nZW5vdXMgdmFyaWFibGVzIChNcyBhbmQgWXMpCiAgICBNSF9leHBlcnR+fk1IX2V4cGVydAogICAgTUhfb2JqZWN0aXZlfn5NSF9vYmplY3RpdmUKICAgIE1IX2FjY3VyYXRlfn5NSF9hY2N1cmF0ZQogICAgCiAgICBjcmVkaWJsZX5+Y3JlZGlibGUKICAgIHRydXN0fn50cnVzdAogICAgCiAgICBmYWN0Y2hlY2tfQX5+ZmFjdGNoZWNrX0EKCiAgI0VzdGltYXRpbmcgdGhlIGNvdmFyaWFuY2VzIG9mIHJlc2lkdWFscyBmb3IgTXMgCiAgICBNSF9leHBlcnR+fk1IX29iamVjdGl2ZQogICAgTUhfZXhwZXJ0fn5NSF9hY2N1cmF0ZSAKICAgIE1IX29iamVjdGl2ZX5+TUhfYWNjdXJhdGUgCiAgICAKICAgIGNyZWRpYmxlfn50cnVzdAonCmBgYAoKYGBge3J9CiMgQWRkIGJvb3RzdHJhcHBpbmcgdG8gdGhlIGxhdmFhbiBmdW5jdGlvbiBjYWxsCnJlc3VsdC5tb2RlbF8zIDwtIGxhdmFhbihtb2RlbF8zLCBkYXRhID0gZGF0YSwgc2UgPSAiYm9vdCIsIGJvb3RzdHJhcCA9IDUwMDApCgojIERpc3BsYXkgdGhlIHJlc3VsdHMgd2l0aCB0aGUgc3BlY2lmaWVkIG9wdGlvbnMKc3VtbWFyeShyZXN1bHQubW9kZWxfMywgZml0Lm1lYXN1cmVzID0gVFJVRSwgc3RhbmRhcmRpemVkID0gVFJVRSwgcnNxdWFyZSA9IFRSVUUpCgpgYGAKCmBgYHtyfQojQ29ycmVsYXRpb24gYmV0d2VlbiB0aGUgbGl0ZXJhY3kgdmFyaWFibGVzIAojIFNlbGVjdCB0aGUgZml2ZSB2YXJpYWJsZXMKc2VsZWN0ZWRfdmFycyA8LSBkYXRhWywgYygiTGl0X1Bpbl9USyIsICJMaXRfUGluX1NLIiwgIkxpdF9OZ19TRSIsICJMaXRfTmdfS1UiLCAiTGl0X05nX0VDIildCiMgQ2FsY3VsYXRlIHRoZSBQZWFyc29uIGNvcnJlbGF0aW9uIG1hdHJpeApjb3JyZWxhdGlvbl9tYXRyaXggPC0gY29yKHNlbGVjdGVkX3ZhcnMsIHVzZSA9ICJwYWlyd2lzZS5jb21wbGV0ZS5vYnMiLCBtZXRob2QgPSAicGVhcnNvbiIpCgojIFZpZXcgdGhlIGNvcnJlbGF0aW9uIG1hdHJpeApwcmludChjb3JyZWxhdGlvbl9tYXRyaXgpCgoKYGBgCgoKCmBgYHtyfQojIFNwZWNpZnkgbWVkaWF0aW9uIG1vZGVsIHdpdGggYWxsIGZpdmUgTUggKGVmZmljaWVudCwgdXNlZnVsLCBleHBlcnQsIG9iamVjdGl2ZSwgYW5kIGFjY3VyYXRlKQptb2RlbF8yPC0KJwogICMgRGlyZWN0IGVmZmVjdHMgb2YgSVZzIG9uIERWCiAgICBmYWN0Y2hlY2tfQSB+IGMxKkxpdF9QaW5fVEsgKyBjMipMaXRfUGluX1NLICsgYzMqTGl0X05nX1NFICsgYzQqTGl0X05nX0tVICsgYzUqTGl0X05nX0VDCgogICMgRGlyZWN0IGVmZmVjdHMgb2YgSVZzIG9uIGZpcnN0LWxldmVsIG1lZGlhdG9ycwogICAgTUhfZWZmaWNpZW50IH4gYTFfMSpMaXRfUGluX1RLICsgYTFfMipMaXRfUGluX1NLICsgYTFfMypMaXRfTmdfU0UgKyBhMV80KkxpdF9OZ19LVSArIGExXzUqTGl0X05nX0VDCiAgICBNSF91c2VmdWwgfiBhMl8xKkxpdF9QaW5fVEsgKyBhMl8yKkxpdF9QaW5fU0sgKyBhMl8zKkxpdF9OZ19TRSArIGEyXzQqTGl0X05nX0tVICsgYTJfNSpMaXRfTmdfRUMKICAgIE1IX2V4cGVydCB+IGEzXzEqTGl0X1Bpbl9USyArIGEzXzIqTGl0X1Bpbl9TSyArIGEzXzMqTGl0X05nX1NFICsgYTNfNCpMaXRfTmdfS1UgKyBhM181KkxpdF9OZ19FQwogICAgTUhfb2JqZWN0aXZlIH4gYTRfMSpMaXRfUGluX1RLICsgYTRfMipMaXRfUGluX1NLICsgYTRfMypMaXRfTmdfU0UgKyBhNF80KkxpdF9OZ19LVSArIGE0XzUqTGl0X05nX0VDCiAgICBNSF9hY2N1cmF0ZSB+IGE1XzEqTGl0X1Bpbl9USyArIGE1XzIqTGl0X1Bpbl9TSyArIGE1XzMqTGl0X05nX1NFICsgYTVfNCpMaXRfTmdfS1UgKyBhNV81KkxpdF9OZ19FQwoKICAjIERpcmVjdCBlZmZlY3RzIG9mIGZpcnN0LWxldmVsIG1lZGlhdG9ycyBvbiBzZWNvbmQtbGV2ZWwgbWVkaWF0b3JzCiAgICBjcmVkaWJsZSB+IGIxXzEqTUhfZWZmaWNpZW50ICsgYjFfMipNSF91c2VmdWwgKyBiMV8zKk1IX2V4cGVydCArIGIxXzQqTUhfb2JqZWN0aXZlICsgYjFfNSpNSF9hY2N1cmF0ZQogICAgdHJ1c3QgfiBiMl8xKk1IX2VmZmljaWVudCArIGIyXzIqTUhfdXNlZnVsICsgYjJfMypNSF9leHBlcnQgKyBiMl80Kk1IX29iamVjdGl2ZSArIGIyXzUqTUhfYWNjdXJhdGUKCiAgIyBEaXJlY3QgZWZmZWN0cyBvZiBzZWNvbmQtbGV2ZWwgbWVkaWF0b3JzIG9uIERWCiAgICBmYWN0Y2hlY2tfQSB+IGQxKmNyZWRpYmxlICsgZDIqdHJ1c3QKCiAgIyBJbmRpcmVjdCBlZmZlY3RzIHZpYSBmaXJzdCBhbmQgc2Vjb25kLWxldmVsIG1lZGlhdG9ycwogICAgU0VfZXhwZXJ0X2NyZWRpYmxlIDo9IGEzXzMqYjFfMypkMQogICAgU0Vfb2JqX2NyZWRpYmxlIDo9IGE0XzMqYjFfNCpkMQogICAgU0VfYWNjX2NyZWRpYmxlIDo9IGE1XzMqYjFfNSpkMQogICAgCiAgICBFQ19leHBlcnRfY3JlZGlibGUgOj0gYTNfNSpiMV8zKmQxCiAgICBFQ19vYmpfY3JlZGlibGUgOj0gYTRfNSpiMV8zKmQxCiAgICBFQ19hY2NfY3JlZGlibGUgOj0gYTVfNSpiMV8zKmQxCiAgICAKICAgIEtVX2V4cGVydF9jcmVkaWJsZSA6PSBhM180KmIxXzMqZDEKICAgIAogICNFc3RpbWF0aW5nIGNvdmFyaWFuY2UgYW5kIHJlc2lkdWFscyAKICAjRXN0aW1hdGluZyB2YXJpYW5jZXMgb2YgZXhvZ2Vub3VzIHZhcmlhYmxlcyAoWHMpCiAgICBMaXRfUGluX1RLfn5MaXRfUGluX1RLCiAgICBMaXRfUGluX1NLfn5MaXRfUGluX1NLCiAgICBMaXRfTmdfU0V+fkxpdF9OZ19TRQogICAgTGl0X05nX0tVfn5MaXRfTmdfS1UKICAgIExpdF9OZ19FQ35+TGl0X05nX0VDCgogICNFc3RpbWF0aW5nIGNvLXZhcmlhbmNlcyBvZiBleG9nZW5vdXMgdmFyaWFibGVzIChYcykKICAgIExpdF9QaW5fVEt+fkxpdF9QaW5fU0sKICAgIExpdF9QaW5fVEt+fkxpdF9OZ19TRQogICAgTGl0X1Bpbl9US35+TGl0X05nX0tVCiAgICBMaXRfUGluX1RLfn5MaXRfTmdfRUMKICAgIAogICAgTGl0X1Bpbl9TS35+TGl0X05nX1NFCiAgICBMaXRfUGluX1NLfn5MaXRfTmdfS1UKICAgIExpdF9QaW5fU0t+fkxpdF9OZ19FQwogICAgCiAgICBMaXRfTmdfU0V+fkxpdF9OZ19LVQogICAgTGl0X05nX1NFfn5MaXRfTmdfRUMKICAgIAogICAgTGl0X05nX0tVfn5MaXRfTmdfRUMKCiAgI0VzdGltYXRpbmcgdGhlIHJlc2lkdWFsIHZhcmlhbmNlcyAoZTEs4oCmKSBmb3IgZW5kb2dlbm91cyB2YXJpYWJsZXMgKE1zIGFuZCBZcykKICAgIE1IX2VmZmljaWVudH5+TUhfZWZmaWNpZW50CiAgICBNSF91c2VmdWx+fk1IX3VzZWZ1bAogICAgTUhfZXhwZXJ0fn5NSF9leHBlcnQKICAgIE1IX29iamVjdGl2ZX5+TUhfb2JqZWN0aXZlCiAgICBNSF9hY2N1cmF0ZX5+TUhfYWNjdXJhdGUKICAgIAogICAgY3JlZGlibGV+fmNyZWRpYmxlCiAgICB0cnVzdH5+dHJ1c3QKICAgIAogICAgZmFjdGNoZWNrX0F+fmZhY3RjaGVja19BCgogICNFc3RpbWF0aW5nIHRoZSBjb3ZhcmlhbmNlcyBvZiByZXNpZHVhbHMgZm9yIE1zIAogICAgTUhfZWZmaWNpZW50fn5NSF91c2VmdWwKICAgIE1IX2VmZmljaWVudH5+TUhfZXhwZXJ0CiAgICBNSF9lZmZpY2llbnR+fk1IX29iamVjdGl2ZQogICAgTUhfZWZmaWNpZW50fn5NSF9hY2N1cmF0ZQogICAgCiAgICBNSF91c2VmdWx+fk1IX2V4cGVydAogICAgTUhfdXNlZnVsfn5NSF9vYmplY3RpdmUKICAgIE1IX3VzZWZ1bH5+TUhfYWNjdXJhdGUKICAgIAogICAgTUhfZXhwZXJ0fn5NSF9vYmplY3RpdmUKICAgIE1IX2V4cGVydH5+TUhfYWNjdXJhdGUgCiAgICAKICAgIE1IX29iamVjdGl2ZX5+TUhfYWNjdXJhdGUgCiAgICAKICAgIGNyZWRpYmxlfn50cnVzdAonCmBgYAoKYGBge3J9CiMgQWRkIGJvb3RzdHJhcHBpbmcgdG8gdGhlIGxhdmFhbiBmdW5jdGlvbiBjYWxsCnJlc3VsdC5tb2RlbF8yIDwtIGxhdmFhbihtb2RlbF8yLCBkYXRhID0gZGF0YSwgc2UgPSAiYm9vdCIsIGJvb3RzdHJhcCA9IDUwMDApCgojIERpc3BsYXkgdGhlIHJlc3VsdHMgd2l0aCB0aGUgc3BlY2lmaWVkIG9wdGlvbnMKc3VtbWFyeShyZXN1bHQubW9kZWxfMiwgZml0Lm1lYXN1cmVzID0gVFJVRSwgc3RhbmRhcmRpemVkID0gVFJVRSwgcnNxdWFyZSA9IFRSVUUpCgpgYGAKCgoKCmBgYHtyfQojIFNwZWNpZnkgbWVkaWF0aW9uIG1vZGVsIAptb2RlbCA8LQonCiNkaXJlY3QgZWZmZWN0CgpmYWN0Y2hlY2tfQSB+IExpdF9QaW5fVEsgKyBMaXRfUGluX1NLICsgTGl0X05nX1NFICsgTGl0X05nX0tVICsgTGl0X05nX0VDCgojaW5kaXJlY3QgZWZmZWN0cyBhLT4gYgoKTUhfZWZmaWNpZW50IH4gYTEqTGl0X1Bpbl9USyArIGEyKkxpdF9QaW5fU0sgKyBhMypMaXRfTmdfU0UgKyBhNCpMaXRfTmdfS1UgKyBhNSpMaXRfTmdfRUMKTUhfdXNlZnVsIH4gYTYqTGl0X1Bpbl9USyArIGE3KkxpdF9QaW5fU0sgKyBhOCpMaXRfTmdfU0UgKyBhOSpMaXRfTmdfS1UgKyBhMTAqTGl0X05nX0VDCk1IX2V4cGVydCAgfiBhMTEqTGl0X1Bpbl9USyArIGExMipMaXRfUGluX1NLICsgYTEzKkxpdF9OZ19TRSArIGExNCpMaXRfTmdfS1UgKyBhMTUqTGl0X05nX0VDCk1IX29iamVjdGl2ZSAgfiBhMTYqTGl0X1Bpbl9USyArIExpdF9QaW5fU0sgKyBMaXRfTmdfU0UgKyBMaXRfTmdfS1UgKyBMaXRfTmdfRUMKTUhfYWNjdXJhdGUgIH4gYTIxKkxpdF9QaW5fVEsgKyBMaXRfUGluX1NLICsgTGl0X05nX1NFICsgTGl0X05nX0tVICsgTGl0X05nX0VDCgojIGluZGlyZWN0IGVmZmVjdHMgYSAtPiBjCgpjcmVkaWJsZSB+IExpdF9QaW5fVEsgKyBMaXRfUGluX1NLICsgTGl0X05nX1NFICsgTGl0X05nX0tVICsgTGl0X05nX0VDCnRydXN0IH4gTGl0X1Bpbl9USyArIExpdF9QaW5fU0sgKyBMaXRfTmdfU0UgKyBMaXRfTmdfS1UgKyBMaXRfTmdfRUMKCiMgaW5kaXJlY3QgZWZmZWN0cyBiIC0+IGMgCgpjcmVkaWJsZSB+IE1IX2VmZmljaWVudCArIE1IX3VzZWZ1bCArIE1IX2V4cGVydCArIE1IX29iamVjdGl2ZSArIE1IX2FjY3VyYXRlCnRydXN0IH4gTUhfZWZmaWNpZW50ICsgTUhfdXNlZnVsICsgTUhfZXhwZXJ0ICsgTUhfb2JqZWN0aXZlICsgTUhfYWNjdXJhdGUKCiMgaW5kaXJlY3QgZWZmZWN0cyBjIC0+IGQKCmZhY3RjaGVja19BIH4gY3JlZGlibGUgKyB0cnVzdCAKCiNFc3RpbWF0aW5nIGNvdmFyaWFuY2UgYW5kIHJlc2lkdWFscyAKI0VzdGltYXRpbmcgdmFyaWFuY2VzIG9mIGV4b2dlbm91cyB2YXJpYWJsZXMgKFhzKQoKTGl0X1Bpbl9US35+TGl0X1Bpbl9USwpMaXRfUGluX1NLfn5MaXRfUGluX1NLCkxpdF9OZ19TRX5+TGl0X05nX1NFCkxpdF9OZ19LVX5+TGl0X05nX0tVCkxpdF9OZ19FQ35+TGl0X05nX0VDCgojRXN0aW1hdGluZyBjby12YXJpYW5jZXMgb2YgZXhvZ2Vub3VzIHZhcmlhYmxlcyAoWHMpCkxpdF9QaW5fVEt+fkxpdF9QaW5fU0sKTGl0X1Bpbl9US35+TGl0X05nX1NFCkxpdF9QaW5fVEt+fkxpdF9OZ19LVQpMaXRfUGluX1RLfn5MaXRfTmdfRUMKCkxpdF9QaW5fU0t+fkxpdF9OZ19TRQpMaXRfUGluX1NLfn5MaXRfTmdfS1UKTGl0X1Bpbl9TS35+TGl0X05nX0VDCgpMaXRfTmdfU0V+fkxpdF9OZ19LVQpMaXRfTmdfU0V+fkxpdF9OZ19FQwoKTGl0X05nX0tVfn5MaXRfTmdfRUMKCiNFc3RpbWF0aW5nIHRoZSByZXNpZHVhbCB2YXJpYW5jZXMgKGUxLOKApikgZm9yIGVuZG9nZW5vdXMgdmFyaWFibGVzIChNcyBhbmQgWXMpCgpNSF9lZmZpY2llbnR+fk1IX2VmZmljaWVudApNSF91c2VmdWx+fk1IX3VzZWZ1bApNSF9leHBlcnR+fk1IX2V4cGVydApNSF9vYmplY3RpdmV+fk1IX29iamVjdGl2ZQpNSF9hY2N1cmF0ZX5+TUhfYWNjdXJhdGUKCmNyZWRpYmxlfn5jcmVkaWJsZQp0cnVzdH5+dHJ1c3QKCmZhY3RjaGVja19Bfn5mYWN0Y2hlY2tfQQoKI0VzdGltYXRpbmcgdGhlIGNvdmFyaWFuY2VzIG9mIHJlc2lkdWFscyBmb3IgTXMgCgpNSF9lZmZpY2llbnR+fk1IX3VzZWZ1bApNSF9lZmZpY2llbnR+fk1IX2V4cGVydApNSF9lZmZpY2llbnR+fk1IX29iamVjdGl2ZQpNSF9lZmZpY2llbnR+fk1IX2FjY3VyYXRlCgpNSF91c2VmdWx+fk1IX2V4cGVydApNSF91c2VmdWx+fk1IX29iamVjdGl2ZQpNSF91c2VmdWx+fk1IX2FjY3VyYXRlCgpNSF9leHBlcnR+fk1IX29iamVjdGl2ZQpNSF9leHBlcnR+fk1IX2FjY3VyYXRlIAoKTUhfb2JqZWN0aXZlfn5NSF9hY2N1cmF0ZSAKCmNyZWRpYmxlfn50cnVzdCcKCgpgYGAKCmBgYHtyfQpyZXN1bHQubW9kZWwgPC0gbGF2YWFuKG1vZGVsLCBkYXRhPWRhdGEpCnJlc3VsdC5tb2RlbApzdW1tYXJ5IChyZXN1bHQubW9kZWwsIGZpdC5tZWFzdXJlPVRSVUUsIHN0YW5kYXJkaXplZCA9IFRSVUUsIHJzcXVhcmUgPSBUUlVFLCBtb2RpbmRpY2VzID0gVFJVRSkKYGBgCgpgYGB7cn0KY29sbmFtZXMoZGF0YSkKYGBgCgoKCgoKCgoKYGBge3J9CmxpYnJhcnkocHN5Y2gpCmBgYAoKYGBge3J9CnRibF9kZihkYXRhKQpgYGAKCmBgYHtyfQpkYXRhICU+JQogIGRwbHlyOjpzZWxlY3QoRXhwZWN0YW5jeXZpb2xhdGlvbl8xOkV4cGVjdGFuY3l2aW9sYXRpb25fNCkgJT4lCiAgcHN5Y2g6OmFscGhhKCx0aXRsZSA9ICJFViIpCmBgYAo=