Introduction

In the following section, we will show the process of detecting specious cases in this survey based on the respondents’ age, military status,and their claimed serve date.

Serve Date

Overall
(N=1020)
September 2001 or later
No 623 (61.1%)
Yes 397 (38.9%)
August 1990 to August 2001
No 836 (82.0%)
Yes 184 (18.0%)
Currently in Military
No 891 (87.4%)
Yes 129 (12.6%)
May 1975 to July 1990
No 838 (82.2%)
Yes 182 (17.8%)
Prior to August 1964
No 976 (95.7%)
Yes 44 (4.3%)
Vietnam Era
No 823 (80.7%)
Yes 197 (19.3%)

These six groups will be assessed by their serve data timing and their age. Also, we assess younger group (>= 2002) by their military staus.

Born 2002 and later

In these four highlighted cases, their military status was not matched by their age, so we need to exclude those from the dataset.

Vietnam Era 1958

## # A tibble: 5 x 3
##   Q2.2                                                       Q3.2 ResponseId    
##   <chr>                                                     <dbl> <chr>         
## 1 Active-duty military,National Guard or Reserve currently~  1996 R_3kFzRKZra7Q~
## 2 Traditional retirement                                     1972 R_rdlwhtCTSXA~
## 3 Active-duty military,Separated from active duty at end o~  1990 R_3mgg9jYFh05~
## 4 Medical retirement                                         1976 R_rehgFbcCOru~
## 5 Separated from active duty at end of commitment            2003 R_28RJgvsH5PX~

Prior to August 1964 younger than 1947

## # A tibble: 6 x 3
##   Q2.2                                                      Q3.2 ResponseId     
##   <chr>                                                    <dbl> <chr>          
## 1 Traditional retirement                                    1950 R_Tjb5ffleC3lb~
## 2 Less than honorable discharge                             1961 R_3HT8GpoHsM1y~
## 3 National Guard or Reserve separated at end of commitmen~  1986 R_28LL6l5C8LYl~
## 4 National Guard or Reserve separated at end of commitment  1982 R_UXF4d4mDRzeL~
## 5 Other separation before end of service commitment         1993 R_1eraXQzUKlXL~
## 6 Medical retirement                                        1975 R_OOPUljnLSNFi~

May 1975 to July 1990 younger than 1973

## # A tibble: 29 x 3
##    Q2.2                                                      Q3.2 ResponseId    
##    <chr>                                                    <dbl> <chr>         
##  1 Traditional retirement                                    1974 R_bEeyRhxk6o2~
##  2 Active-duty military,Separated from active duty at end ~  1990 R_33lu6KR0sU9~
##  3 Separated from active duty at end of commitment           1994 R_3Myflx8U74B~
##  4 National Guard or Reserve currently serving,Medical sep~  1992 R_2CVOz1YRiHt~
##  5 Separated from active duty at end of commitment,Medical~  1995 R_BXvTHy7MWvr~
##  6 Traditional retirement                                    1974 R_R2HU358QDxZ~
##  7 Traditional retirement                                    1982 R_2rJlEab2HYn~
##  8 Separated from active duty at end of commitment,Nationa~  2000 R_2A1lotBSMVr~
##  9 Separated from active duty at end of commitment,Traditi~  1990 R_2EddOni6j70~
## 10 Separated from active duty at end of commitment,Nationa~  1980 R_p4oplNDNit5~
## # ... with 19 more rows

Currently Serving (Excluding older than 1955)

## # A tibble: 5 x 3
##   Q2.2                                         Q3.2 ResponseId       
##   <chr>                                       <dbl> <chr>            
## 1 National Guard or Reserve currently serving  1932 R_2xWROVT0NtLBwV5
## 2 National Guard or Reserve currently serving  1907 R_1DMRf79n44y1kEn
## 3 National Guard or Reserve currently serving  1940 R_42AaaijfcQWrJF7
## 4 National Guard or Reserve currently serving  1948 R_3MR3dmtvz48OEqD
## 5 National Guard or Reserve currently serving  1950 R_32PzVlrXuS40Ck5

August 1990 to August 2001 younger than 1984

## # A tibble: 38 x 3
##    Q2.2                                                      Q3.2 ResponseId    
##    <chr>                                                    <dbl> <chr>         
##  1 Active-duty military,National Guard or Reserve currentl~  1996 R_3kFzRKZra7Q~
##  2 National Guard or Reserve separated at end of commitment  1986 R_2ayl8rCEzvK~
##  3 Other separation before end of service commitment         1994 R_1Qi1mgNe20J~
##  4 Other separation before end of service commitment         2000 R_2rMcAlfzEWv~
##  5 Separated from active duty at end of commitment           1987 R_2s1DiKT9YG2~
##  6 Other separation before end of service commitment         1985 R_3dZljIVUl3J~
##  7 Active-duty military,Separated from active duty at end ~  1990 R_3mgg9jYFh05~
##  8 National Guard or Reserve currently serving,Separated f~  2001 R_UrKfwiYReAj~
##  9 Medical retirement                                        2003 R_BsoWxzD5aK3~
## 10 National Guard or Reserve separated at end of commitment  1986 R_3Pj0HRqz5NB~
## # ... with 28 more rows

Total list

## # A tibble: 78 x 3
##    Q2.2                                                      Q3.2 ResponseId    
##    <chr>                                                    <dbl> <chr>         
##  1 Medical retirement                                        2003 R_BsoWxzD5aK3~
##  2 National Guard or Reserve currently serving,Traditional~  2002 R_vjf6AmGSfgv~
##  3 Medical separation                                        2002 R_3qjkOTxfsUR~
##  4 Traditional retirement,Medical separation                 2003 R_3szuqmJlVe3~
##  5 Active-duty military,National Guard or Reserve currentl~  1996 R_3kFzRKZra7Q~
##  6 Traditional retirement                                    1972 R_rdlwhtCTSXA~
##  7 Active-duty military,Separated from active duty at end ~  1990 R_3mgg9jYFh05~
##  8 Medical retirement                                        1976 R_rehgFbcCOru~
##  9 Separated from active duty at end of commitment           2003 R_28RJgvsH5PX~
## 10 Traditional retirement                                    1950 R_Tjb5ffleC3l~
## # ... with 68 more rows

Average time of completing the survey

## [1] 24.73966

List of those finished the survey in less than 8 minutes

## # A tibble: 36 x 2
##    time_min ResponseId       
##       <dbl> <chr>            
##  1     7.43 R_3RwRGMclvLbJz0s
##  2     7.77 R_3DnYgBXUWDhn5pB
##  3     5.68 R_81jJXuSAJPBqlUJ
##  4     7.58 R_rdlwhtCTSXAF2QV
##  5     7.9  R_28ZgscDCM6Ygyau
##  6     6.72 R_2TMdJbbZWUnICMg
##  7     6.55 R_3gZsGZNE0kRIfZV
##  8     7.2  R_AmKBYmUfrCmJIKB
##  9     7.42 R_ZkIuR2esJm9GAJX
## 10     7.97 R_3PnPfABhvlgjrg4
## # ... with 26 more rows

The average duration was 24.73, while 36 cases completed the survey in less than 8 minutes, and they may be bots or inaccurate responses.

LS0tDQp0aXRsZTogJ05EQUEgJw0KYXV0aG9yOiAiUXVhbHRyaWNzIEFkbWluaXN0cmF0ZWQvRGV0ZWN0IFNwZWNpb3VzIENhc2VzIg0KZGF0ZTogIjEyLzI3LzIwMjEiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgZGZfcHJpbnQ6IHRpYmJsZQ0KICAgIGZpZ19jYXB0aW9uOiB5ZXMNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDogeWVzDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogIHdvcmRfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCi0tLQ0KDQojIEludHJvZHVjdGlvbg0KDQpJbiB0aGUgZm9sbG93aW5nIHNlY3Rpb24sIHdlIHdpbGwgc2hvdyB0aGUgcHJvY2VzcyBvZiBkZXRlY3Rpbmcgc3BlY2lvdXMgIGNhc2VzIGluIHRoaXMgc3VydmV5IGJhc2VkIG9uIHRoZSByZXNwb25kZW50cycgYWdlLCBtaWxpdGFyeSBzdGF0dXMsYW5kIHRoZWlyIGNsYWltZWQgc2VydmUgZGF0ZS4gDQoNCmBgYHtyIGluY2x1ZGU9RkFMU0V9DQpsaWJyYXJ5KGZvcmVpZ24pDQpsaWJyYXJ5KGRhdGEudGFibGUpDQpsaWJyYXJ5KG1hZ3JpdHRyKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoY2FyKQ0KbGlicmFyeSh2aXNkYXQpDQpsaWJyYXJ5KG5hbmlhcikNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkoZ2dtYXApDQpsaWJyYXJ5KG1hcHMpDQpsaWJyYXJ5KGdnbWFwKQ0KbGlicmFyeShnZ3RoZW1lcykNCmxpYnJhcnkodmlyaWRpcykNCmxpYnJhcnkocmdkYWwpDQpsaWJyYXJ5KGdnZm9ydGlmeSkNCmxpYnJhcnkoYW5pbWF0aW9uKQ0KbGlicmFyeShnZ2FuaW1hdGUpDQpsaWJyYXJ5KGdhcG1pbmRlcikNCmxpYnJhcnkoY2FyKQ0KbGlicmFyeShtYXBwcm9qKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShoaXN0b3J5ZGF0YSkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGx1YnJpZGF0ZSkNCmxpYnJhcnkoYnJvb20pDQpsaWJyYXJ5KG1hcHRvb2xzKQ0KbGlicmFyeShzcCkNCmxpYnJhcnkodGliYmxlKQ0KbGlicmFyeShzZikNCg0KbGlicmFyeShtYXBzKQ0KbGlicmFyeSh0YWJsZTEpDQoNCmxpYnJhcnkoY29tcGFyZUdyb3VwcykNCg0KI2luc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpDQojbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHNjYWxlcykNCg0KI2luc3RhbGwucGFja2FnZXMoImRwbHlyIikNCg0KbGlicmFyeSh0aWR5cikNCiAgIGxpYnJhcnkoc3RyaW5ncikNCmBgYA0KDQoNCmBgYHtyIGluY2x1ZGU9RkFMU0V9DQpOREFBMTwtIHJlYWQuY3N2KCJDOi9Vc2Vycy91NjAzMjQwNC9PbmVEcml2ZS9iYWNrdXAgOS45LjE5L01KL05EQUEvQ09ERV9RL1FfVkVURVJBTl8yM18xMi5jc3YiLGhlYWRlciA9IFQpDQoNCk5EQUExIDwtIE5EQUExWy1jKDIsMSksIF0gDQoNCk5EQUExICU+JSANCiAgc2VsZWN0KFEyLjIsIFEyLjMsIFEyLjQsIFEyLjUpDQojdGFibGUxKH5RMy4zK1E2LjIrIFE2LjMrUTYuNCtRNi41KyBRNi42KyBRNi43K1E2LjgrUTYuOSAsIGRhdGE9TkRBQTEpDQoNCiMgbWFrZSBkaXNjaGFyX3VwZ3INCg0KDQpOREFBMSRRMi4zW05EQUExJFEyLjM9PSIiXSA8LSJOUSINCg0KIyBkaXNjaGFyX3VwZ3Jfc3VjYw0KTkRBQTEgPC0gd2l0aGluKE5EQUExLCBRMi40WyBRMi4zID09ICJObyJdIDwtICdOb3QgZGlzY2hhcl91cGdyX3N1Y2MnKQ0KTkRBQTEkUTIuNFtOREFBMSRRMi40PT0iIl0gPC0iTlEiDQojIHNlcnZlX2RhdGUNCnRhYmxlKE5EQUExJFEyLjUsIGV4Y2x1ZGUgPSBOVUxMKQ0KDQojIFZBX2Rpc2FiaWxpdHkNCg0KTkRBQTEkUTIuNltOREFBMSRRMi42PT0iIl0gPC0iTmF0aW9uYWwgR3VhcmQvQWN0aXZlLWR1dHkgbWlsaXRhcnkiDQoNCiMgbWFrZSBhZ2UNCg0KY2xhc3MoTkRBQTEkUTMuMikNCg0KTkRBQTEkUTMuMjwtIGFzLm51bWVyaWMoTkRBQTEkUTMuMikNCk5EQUExJGFnZTwtMjAyMS1OREFBMSRRMy4yDQoNCg0KIyBISCBzaXplDQoNCk5EQUExJFEzLjhfMV8xW05EQUExJFEzLjhfMV8xPT0iIl0gPC0wDQpOREFBMSRRMy44XzJfMVtOREFBMSRRMy44XzJfMT09IiJdIDwtMA0KTkRBQTEkUTMuOF8zXzFbTkRBQTEkUTMuOF8zXzE9PSIiXSA8LTANCk5EQUExJFEzLjhfNF8xW05EQUExJFEzLjhfNF8xPT0iIl0gPC0wDQpOREFBMSRRMy44XzVfMVtOREFBMSRRMy44XzVfMT09IiJdIDwtMA0KTkRBQTEkUTMuOF82XzFbTkRBQTEkUTMuOF82XzE9PSIiXSA8LTANCg0KDQoNCg0KDQpkYXRhLmZyYW1lKGNvbG5hbWVzKE5EQUExKSkNCg0KICBOREFBMSA8LSBOREFBMSAlPiUgDQogICAgIG11dGF0ZV9hdChjKDM4OjQzKSwgYXMubnVtZXJpYykNCg0KTkRBQTEkaGhzaXplPSByb3dTdW1zKE5EQUExWyAsIGMoIlEzLjhfMV8xIiwgIlEzLjhfMl8xIiAsIlEzLjhfM18xIiwiUTMuOF80XzEiLCAiUTMuOF81XzEiLCAiUTMuOF82XzEiKV0sIG5hLnJtID0gVCkNCg0KDQpOREFBMSAlPiUgDQogIHNlbGVjdChRMy44XzFfMSxRMy44XzJfMSxRMy44XzNfMSxRMy44XzRfMSxRMy44XzVfMSxRMy44XzZfMSwgaGhzaXplKQ0KDQojIG1ha2UgdG90YWwgd29yaw0KDQpOREFBMSA8LSB3aXRoaW4oTkRBQTEsIFE1LjNbIFE1LjIgIT0gIldvcmtpbmcgZm9yIHBheSJdIDwtICdOb3Qgd29ya2luZycpDQpOREFBMSA8LSB3aXRoaW4oTkRBQTEsIFE1LjRbIFE1LjIgIT0gIldvcmtpbmcgZm9yIHBheSJdIDwtICdOb3Qgd29ya2luZycpDQpOREFBMSA8LSB3aXRoaW4oTkRBQTEsIFE1LjVfMV8xWyBRNS4yICE9ICJXb3JraW5nIGZvciBwYXkiXSA8LSAwKQ0KTkRBQTEgPC0gd2l0aGluKE5EQUExLCBRNS41XzFfMlsgUTUuMiAhPSAiV29ya2luZyBmb3IgcGF5Il0gPC0gMCkNCk5EQUExIDwtIHdpdGhpbihOREFBMSwgUTUuNlsgUTUuMiAhPSAiV29ya2luZyBmb3IgcGF5Il0gPC0gJ05vdCB3b3JraW5nJykNCk5EQUExIDwtIHdpdGhpbihOREFBMSwgUTUuOFsgUTUuMiA9PSAiV29ya2luZyBmb3IgcGF5Il0gPC0gJ3dvcmtpbmcnKQ0KTkRBQTEgPC0gd2l0aGluKE5EQUExLCBRNS45WyBRNS4yICE9ICJOb3Qgd29ya2luZyBmb3IgcGF5IGFuZCBub3QgbG9va2luZyBmb3IgcGFpZCB3b3JrIl0gPC0gJ2xvb2tpbmcgZm9yIHBhaWQgd29yaycpDQpOREFBMSA8LSBOREFBMSAlPiUgDQogICAgIG11dGF0ZV9hdChjKDY1LDY2KSwgYXMubnVtZXJpYykgJT4lIA0KICAgIG11dGF0ZShtb250aD0gUTUuNV8xXzIvIDEyICkgJT4lIA0KICBtdXRhdGUodG90YWxfd29yaz1tb250aCtRNS41XzFfMSkNCiAgDQogIA0KTkRBQTEgJT4lIA0KICBzZWxlY3QoUTUuNV8xXzEsIFE1LjVfMV8yLCAgIHRvdGFsX3dvcmssIG1vbnRoLCBRNS4yLCBRNS4zLCBRNS40LCBRNS42LFE1LjcsUTUuOCkNCg0KIyBzZXQgYmxvY2sgNiANCg0KTkRBQV9jaGlsZDwtTkRBQTEgJT4lIA0KICBzZWxlY3Qoc3RhcnRzX3dpdGgoIlE2IiksIFJlc3BvbnNlSWQpIA0KDQoNCk5EQUExPC1OREFBMSAlPiUgDQogIHNlbGVjdCgtc3RhcnRzX3dpdGgoIlE2IikpDQogIA0KDQpOREFBX2NoaWxkJFE2LjJbTkRBQV9jaGlsZCRRNi4yPT0iIl0gPC1OQQ0KDQojQ29udmVydCBjb2x1bW5zIHRvIGNoYXJhY3RlcnMNCk5EQUFfY2hpbGRbLTFdIDwtIGxhcHBseShOREFBX2NoaWxkWy0xXSwgYXMuY2hhcmFjdGVyKQ0KI0ZpbmQgaW5kZXggb2YgYE5BYCB2YWx1ZSBpbiBgbWFpbmAgY29sdW1uDQppbmRzIDwtIGlzLm5hKE5EQUFfY2hpbGQkUTYuMikNCiNDaGFuZ2UgYWxsIHRoZSBjb2x1bW5zIHRvICJOTzEiIGluIHJvdyBpbmRzDQpOREFBX2NoaWxkW2luZHMsIC0xXSA8LSAnTlEnDQoNCg0KTkRBQV9jaGlsZCRRNi4zW05EQUFfY2hpbGQkUTYuMz09IiJdIDwtIjAiDQpOREFBX2NoaWxkJFE2LjVbTkRBQV9jaGlsZCRRNi40PT0iTm8iXSA8LSJObyBhZG9wdGVkIGEgY2hpbGQiDQpOREFBX2NoaWxkJFE2LjZbTkRBQV9jaGlsZCRRNi42PT0iIl0gPC0iTm8gY2hpbGQiDQoNCk5EQUFfY2hpbGQkUTYuMTBfMVtOREFBX2NoaWxkJFE2LjEwXzE9PSIiXSA8LSJObyBjaGlsZCINCg0KDQoNCk5EQUExPC1sZWZ0X2pvaW4oTkRBQTEsIE5EQUFfY2hpbGQsIGJ5PSJSZXNwb25zZUlkIikNCg0KI2JsZTEoflE2LjIrIFE2LjMrUTYuNCtRNi41KyBRNi42KyBRNi43K1E2LjgrUTYuOSArUTYuMTBfMSwgZGF0YT1OREFBX2NoaWxkKQ0KIyBtYWtlIGZpbmFsIGRhdGEgc2V0DQoNCg0KDQpOREFBMV9maW5hbDwtIE5EQUExICU+JSANCiAgc2VsZWN0KFJlc3BvbnNlSWQsVXNlckxhbmd1YWdlLCBTY3JlZW4xLCBzdGFydHNfd2l0aCgiUSIpLCBnYywgYWdlLCBoaHNpemUsdG90YWxfd29yaykgJT4lIA0KIGRwbHlyOjogcmVuYW1lKGRpc2NoYXJfdXBncj1RMi4zLCBkaXNjaGFyX3VwZ3Jfc3VjYz1RMi40LCBWQV9kaXNhYmlsaXR5PVEyLjYsIFZBX2Rpc2FiaWxpdHlfcGVyYz1RMi43LCB1bmVtcGxveT1RMi44LCBkaXNhYmlsX2ZhY3Rvcj1RMi45LCBkaXNhYmlsX2ZhY3Rvcl9vdGhyPVEyLjlfNl9URVhULCBnZW5kZXI9IFEzLjMsIHJhY2U9UTMuNCwgcmFjZV9vdGhyPSBRMy40XzZfVEVYVCwgaGlzcF9sYXQ9IFEzLjUsIG1hcml0YWxfc3RhdHVzPSBRMy42LCBlYXJuZXJzPVEzLjksIGVudmlyb25tZW50PVEzLjEwLCBzdGF0ZV90ZXJyPVEzLjExLCB0cmliYWw9UTMuMTIsIHRyaWJhbF9PRT0gUTMuMTMsIGVkdV9wcmlvcj1RNC4yLGVkdV9jb250PVE0LjMsZWR1X2NvbnRfd2hlbj1RNC40LGVkdV9mYWN0b3JzPVE0LjUsIGVkdV9mYWN0b3JzX290aHI9IFE0LjVfNV9URVhULCBlZHVfYWRkdGxfdHlwZT0gUTQuNiwgZWR1X292cmFsbD0gUTQuNywgR0lfZWxpZz0gUTQuOCwgR0lfY29udmVydD0gUTQuOSwgR0lfdXNlZD0gUTQuMTAsIEdJX2FjdGl2PSBRNC4xMSwgR0lfbm90X3VzZWQ9UTQuMTIsIGVtcGxveV9zdGF0dXM9UTUuMiwgd29ya19ocnM9IFE1LjMsIHdvcmtfc2l0dWF0aW9uPSBRNS40LCB3b3JrX3NpdHVhdGlvbl9vdGhyPSBRNS40XzVfVEVYVCx3b3JrX3ByZWY9UTUuNiwgdW5wYWlkX3dvcms9UTUuNyxub3Rfd29yayA9UTUuOCwgbm90X3dvcmtfb3Rocj0gUTUuOF85X1RFWFQsIG5vdF9sb29rPVE1LjkgLCBjaGlsZF9iaXJ0aD1RNi4yLCBiaXJ0aF9udW09UTYuMywgY2hpbGRfYWRvcHQ9IFE2LjQsIGFkb3B0X251bT0gUTYuNSwgY2hpbGQxX3JldHVybj0gUTYuNiwgY2hpbGQxX2NhcGFjaXR5PVE2LjcsIGNoaWxkMV9jYXJlPVE2LjgsIGNoaWxkMV9ub19yZXQ9IFE2LjksIGNoaWxkMV9ub19yZXRfb3Rocj0gUTYuOV81X1RFWFQsY2hpbGQxX3BhaWRfbWF0PSBRNi4xMF8xLCBjaGlsZDFfcGFpZF9zaWNrPSBRNi4xMF8yLCBjaGlsZDFfcGFpZF92YWNheT0gUTYuMTBfMywgY2hpbGQxX3VucGRfZm1sPVE2LjEwXzQsIGNoaWxkMV9wYWlkX2ZtbD0gUTYuMTBfNSwgY2hpbGQxX3VucGRfdGltZT1RNi4xMF82LCBjaGlsZDFfT0VfbGVuZ3RoPVE2LjExKQ0KIA0KDQoNCg0KDQoNCiN0YWJsZShOREFBMV9maW5hbCRTY3JlZW4xKQ0KdGFibGUoTkRBQTFfZmluYWwkVkFfZGlzYWJpbGl0eV9wZXJjKQ0KDQojdGFibGUxKH4gZGlzY2hhcl91cGdyK2Rpc2NoYXJfdXBncl9zdWNjK1ZBX2Rpc2FiaWxpdHkrVkFfZGlzYWJpbGl0eV9wZXJjK3VuZW1wbG95K2Rpc2FiaWxfZmFjdG9yK2Rpc2FiaWxfZmFjdG9yX290aHIsIGRhdGE9TkRBQTFfZmluYWwpDQoNCg0KI3RhYmxlMSh+IGVudmlyb25tZW50K2dlbmRlcityYWNlK1ZBX2Rpc2FiaWxpdHlfcGVyYyt1bmVtcGxveStkaXNhYmlsX2ZhY3RvciwgZGF0YT1OREFBMV9maW5hbCkNCg0KTkRBQTEgJT4lIA0KICBzZWxlY3QoIFNjcmVlbjEsUTIuMixRMi4zLFEyLjQsIFEyLjUpICU+JSANCiAgZmlsdGVyKFEyLjU9PSIiKQ0KYGBgDQoNCg0KYGBge3IgaW5jbHVkZT1GQUxTRX0NCg0KICBOREFBX3NlcnZpY2U8LU5EQUExX2ZpbmFsICU+JSBtdXRhdGUoUTIuMiA9IHN0cl9yZW1vdmUoUTIuMiwgJyBcXCguKlxcKT8nKSkgJT4lIA0KICBzZXBhcmF0ZV9yb3dzKFEyLjIsIHNlcCA9ICcsJykgJT4lIGNvdW50KFJlc3BvbnNlSWQsIFEyLjIsIG5hbWUgPSAnQ250JykgJT4lIA0KICBwaXZvdF93aWRlcihpZF9jb2xzID0gUmVzcG9uc2VJZCwgbmFtZXNfZnJvbSA9IFEyLjIsIHZhbHVlc19mcm9tID0gQ250LCB2YWx1ZXNfZmlsbCA9IGxpc3QoQ250ID0gMCkpICU+JSANCiAgICAgbXV0YXRlX2FsbCh+cmVwbGFjZSguLCAuID09IDAsICJObyIpKSAlPiUgDQogICAgIG11dGF0ZV9hbGwofnJlcGxhY2UoLiwgLiA9PSAxLCAiWWVzIikpDQoNCg0KICBOREFBX3NlcnZpY2UxPC1OREFBMV9maW5hbCAlPiUgbXV0YXRlKFEyLjUgPSBzdHJfcmVtb3ZlKFEyLjUsICcgXFwoLipcXCk/JykpICU+JSANCiAgICBtdXRhdGUoUTIuNSA9IHJlcGxhY2UoUTIuNSwgUTIuNSA9PSAnJywgJ05vIEluZm8nKSkgJT4lDQogIHNlcGFyYXRlX3Jvd3MoUTIuNSwgc2VwID0gJywnKSAlPiUgY291bnQoUmVzcG9uc2VJZCwgUTIuNSwgbmFtZSA9ICdDbnQnKSAlPiUgDQogIHBpdm90X3dpZGVyKGlkX2NvbHMgPSBSZXNwb25zZUlkLCBuYW1lc19mcm9tID0gUTIuNSwgdmFsdWVzX2Zyb20gPSBDbnQsIHZhbHVlc19maWxsID0gbGlzdChDbnQgPSAwKSkgJT4lIA0KICAgICBtdXRhdGVfYWxsKH5yZXBsYWNlKC4sIC4gPT0gMCwgIk5vIikpICU+JSANCiAgICAgbXV0YXRlX2FsbCh+cmVwbGFjZSguLCAuID09IDEsICJZZXMiKSkNCg0KDQoNCk5EQUExX2ZpbmFsPC1mdWxsX2pvaW4oTkRBQTFfZmluYWwsIE5EQUFfc2VydmljZSwgYnk9IlJlc3BvbnNlSWQiKQ0KDQpOREFBMV9maW5hbDwtZnVsbF9qb2luKE5EQUExX2ZpbmFsLCBOREFBX3NlcnZpY2UxLCBieT0iUmVzcG9uc2VJZCIpDQoNCg0KDQoNCg0KYGBgDQoNCg0KDQoNCg0KDQojIFNlcnZlIERhdGUNCg0KYGBge3IgZWNobz1GQUxTRX0NCk5EQUFfc2VydmljZTFfcmU8LU5EQUFfc2VydmljZTEgJT4lIA0KICBzZWxlY3QoLVJlc3BvbnNlSWQpICU+JSANCiAgZHBseXI6OnJlbmFtZShgQ3VycmVudGx5IGluIE1pbGl0YXJ5YD1gTm8gSW5mb2ApDQp0YWJsZTEofiAuLCBkYXRhPU5EQUFfc2VydmljZTFfcmUpDQoNCg0KYGBgDQoNCg0KDQpUaGVzZSBzaXggZ3JvdXBzIHdpbGwgYmUgYXNzZXNzZWQgYnkgdGhlaXIgc2VydmUgZGF0YSB0aW1pbmcgYW5kIHRoZWlyIGFnZS4gQWxzbywgd2UgYXNzZXNzIHlvdW5nZXIgZ3JvdXAgKD49IDIwMDIpIGJ5IHRoZWlyIG1pbGl0YXJ5IHN0YXVzLiANCg0KDQojIEJvcm4gMjAwMiBhbmQgbGF0ZXIgDQoNCg0KYGBge3IgZWNobz1GQUxTRX0NCk5EQUExX2ZpbmFsJGFnZTwtYXMubnVtZXJpYyhOREFBMV9maW5hbCRhZ2UpDQpOREFBMV9maW5hbCRRMy4yPC1hcy5udW1lcmljKE5EQUExX2ZpbmFsJFEzLjIpDQoNCnRhcmdldCA8LSBjKCJSX0Jzb1d4ekQ1YUszaVNVRiIsICJSX3ZqZjZBbUdTZmd2WERvSiIsICJSXzNxamtPVHhmc1VSaWp4ViIsICJSXzNzenVxbUpsVmUzWUtENyIpDQoNCk5EQUFfMjAwMjwtTkRBQTFfZmluYWwgJT4lIA0KICBzZWxlY3QoUTIuMiwgUTMuMiwgUmVzcG9uc2VJZCkgJT4lIA0KICBmaWx0ZXIoUTMuMj49IDIwMDIsIFJlc3BvbnNlSWQgJWluJSB0YXJnZXQpDQoNCg0KYGBgDQoNCmBgYHtyIGVjaG89RkFMU0V9DQprbml0cjo6aW5jbHVkZV9ncmFwaGljcygiYWdlMjAwMi5wbmciKQ0KYGBgDQoNCkluIHRoZXNlIGZvdXIgaGlnaGxpZ2h0ZWQgY2FzZXMsIHRoZWlyIG1pbGl0YXJ5IHN0YXR1cyB3YXMgbm90IG1hdGNoZWQgYnkgdGhlaXIgYWdlLCBzbyB3ZSBuZWVkIHRvIGV4Y2x1ZGUgdGhvc2UgZnJvbSB0aGUgZGF0YXNldC4gDQoNCg0KIyBWaWV0bmFtIEVyYSAxOTU4DQpgYGB7ciBlY2hvPUZBTFNFfQ0KDQpOREFBX1ZpZXRuYW08LU5EQUExX2ZpbmFsICU+JSANCiAgc2VsZWN0KFEyLjIsIGBWaWV0bmFtIEVyYWAsUTMuMiwgUmVzcG9uc2VJZCkgJT4lIA0KICBmaWx0ZXIoUTMuMj4xOTU4LCBgVmlldG5hbSBFcmFgPT0nWWVzJykNCg0KTkRBQV9WaWV0bmFtPC1OREFBX1ZpZXRuYW0gJT4lIA0KICBzZWxlY3QoLWBWaWV0bmFtIEVyYWApDQoNCk5EQUFfVmlldG5hbQ0KYGBgDQoNCg0KDQojIFByaW9yIHRvIEF1Z3VzdCAxOTY0IHlvdW5nZXIgdGhhbiAxOTQ3DQpgYGB7ciBlY2hvPUZBTFNFfQ0KTkRBQV8xOTY0PC1OREFBMV9maW5hbCAlPiUgDQogIHNlbGVjdChRMi4yLGBQcmlvciB0byBBdWd1c3QgMTk2NGAsUTMuMiwgUmVzcG9uc2VJZCkgJT4lIA0KICBmaWx0ZXIoUTMuMj4xOTQ3LCBgUHJpb3IgdG8gQXVndXN0IDE5NjRgPT0nWWVzJykNCg0KTkRBQV8xOTY0PC1OREFBXzE5NjQgJT4lIA0KICBzZWxlY3QoLWBQcmlvciB0byBBdWd1c3QgMTk2NGApDQoNCk5EQUFfMTk2NA0KYGBgDQojIE1heSAxOTc1IHRvIEp1bHkgMTk5MCB5b3VuZ2VyIHRoYW4gMTk3Mw0KDQpgYGB7ciBlY2hvPUZBTFNFfQ0KIA0KTkRBQTE5NzVfMTk5MDwtTkRBQTFfZmluYWwgJT4lIA0KICBzZWxlY3QoUTIuMixgTWF5IDE5NzUgdG8gSnVseSAxOTkwYCxRMy4yLCBSZXNwb25zZUlkKSAlPiUgDQogIGZpbHRlcihRMy4yPjE5NzMsIGBNYXkgMTk3NSB0byBKdWx5IDE5OTBgPT0nWWVzJykNCg0KTkRBQTE5NzVfMTk5MDwtIE5EQUExOTc1XzE5OTAgJT4lIA0KICBzZWxlY3QoLWBNYXkgMTk3NSB0byBKdWx5IDE5OTBgKQ0KDQpOREFBMTk3NV8xOTkwDQoNCmBgYA0KDQojIEN1cnJlbnRseSBTZXJ2aW5nIChFeGNsdWRpbmcgb2xkZXIgdGhhbiAxOTU1KQ0KYGBge3IgZWNobz1GQUxTRX0NCk5EQUFfY3VycmVudDwtTkRBQTFfZmluYWwgJT4lIA0KICBzZWxlY3QoUTIuMixgTm8gSW5mb2AsUTMuMiwgUmVzcG9uc2VJZCkgJT4lIA0KICBmaWx0ZXIoYE5vIEluZm9gPT0nWWVzJywgUTMuMjwxOTU1KQ0KDQpOREFBX2N1cnJlbnQ8LSBOREFBX2N1cnJlbnQgJT4lIA0KICBzZWxlY3QoLWBObyBJbmZvYCkNCg0KTkRBQV9jdXJyZW50DQoNCmBgYA0KDQoNCg0KDQojIEF1Z3VzdCAxOTkwIHRvIEF1Z3VzdCAyMDAxIHlvdW5nZXIgdGhhbiAxOTg0DQpgYGB7ciBlY2hvPUZBTFNFfQ0KTkRBQTE5OTBfMjAwMTwtTkRBQTFfZmluYWwgJT4lIA0KICBzZWxlY3QoUTIuMixgQXVndXN0IDE5OTAgdG8gQXVndXN0IDIwMDFgLFEzLjIsIFJlc3BvbnNlSWQpICU+JSANCiAgZmlsdGVyKGBBdWd1c3QgMTk5MCB0byBBdWd1c3QgMjAwMWA9PSdZZXMnLCBRMy4yPjE5ODQpDQoNCg0KTkRBQTE5OTBfMjAwMTwtTkRBQTE5OTBfMjAwMSAlPiUgDQogIHNlbGVjdCgtYEF1Z3VzdCAxOTkwIHRvIEF1Z3VzdCAyMDAxYCkNCg0KTkRBQTE5OTBfMjAwMQ0KYGBgDQoNCg0KDQoNCg0KIyBUb3RhbCBsaXN0DQoNCmBgYHtyIGVjaG89RkFMU0V9DQp0b3RhbCA8LSByYmluZChOREFBXzIwMDIsTkRBQV9WaWV0bmFtLCBOREFBXzE5NjQsIE5EQUExOTc1XzE5OTAsIE5EQUFfY3VycmVudCwgTkRBQTE5OTBfMjAwMSkNCg0KI2Rpc3RpbmN0X2RhdGEgPC0gZHBseXI6OmRpc3RpbmN0KHRvdGFsKQ0KDQojdG90YWxbIWR1cGxpY2F0ZWQodG90YWxbICwgYygiUmVzcG9uc2VJZCIpXSksXQ0KDQpleGNsdWRlPC10b3RhbCAlPiUgDQogIGRpc3RpbmN0KFJlc3BvbnNlSWQsIC5rZWVwX2FsbCA9IFRSVUUpDQoNCmV4Y2x1ZGUNCg0KDQpgYGANCg0KIyBBdmVyYWdlIHRpbWUgb2YgY29tcGxldGluZyB0aGUgc3VydmV5DQpgYGB7ciBlY2hvPUZBTFNFfQ0KTkRBQTEkdGltZV9taW48LSBhcy5udW1lcmljKE5EQUExJER1cmF0aW9uLi5pbi5zZWNvbmRzLikvNjANCm1lYW4oTkRBQTEkdGltZV9taW4pDQpgYGANCg0KIyBMaXN0IG9mIHRob3NlIGZpbmlzaGVkIHRoZSBzdXJ2ZXkgaW4gbGVzcyB0aGFuIDggbWludXRlcw0KYGBge3IgZWNobz1GQUxTRX0NCk5EQUExICU+JSANCiAgc2VsZWN0KHRpbWVfbWluLCBSZXNwb25zZUlkKSAlPiUgDQogIGZpbHRlcih0aW1lX21pbjw4KQ0KYGBgDQoNClRoZSBhdmVyYWdlIGR1cmF0aW9uIHdhcyAyNC43Mywgd2hpbGUgMzYgY2FzZXMgY29tcGxldGVkIHRoZSBzdXJ2ZXkgaW4gbGVzcyB0aGFuIDggbWludXRlcywgYW5kIHRoZXkgbWF5IGJlIGJvdHMgb3IgaW5hY2N1cmF0ZSByZXNwb25zZXMuDQoNCmBgYHtyIGluY2x1ZGU9RkFMU0V9DQpjPC1sZWZ0X2pvaW4oZXhjbHVkZSwgTkRBQTEsIGJ5ID0gIlJlc3BvbnNlSWQiKSAgDQogIA0KI3dyaXRlLmNzdihjLCBmaWxlID0gJ2V4Y2x1ZGUuY3N2JykNCmBgYA0KDQo=