#In this script I will I will remove Non T cells from PBMC

1. load libraries

2. Load Seurat Object


#Load Seurat Object merged from cell lines and a control(PBMC) after filtration
load("0-imp_Robj/All_Samples_Merged_with_10x_Azitmuth_Annotated.robj")


All_samples_Merged
An object of class Seurat 
36752 features across 59355 samples within 5 assays 
Active assay: RNA (36601 features, 0 variable features)
 2 layers present: data, counts
 4 other assays present: ADT, prediction.score.celltype.l1, prediction.score.celltype.l2, prediction.score.celltype.l3
 2 dimensional reductions calculated: integrated_dr, ref.umap

3. Cell type Distribution to check clusters

# We can apply it later on R obj to get these tables to compare it to decide about resolution.

# Azimuth l1
janitor::tabyl(All_samples_Merged@meta.data, predicted.celltype.l1, cell_line)
 predicted.celltype.l1   L1   L2   L3   L4   L5   L6   L7 PBMC PBMC_10x
                     B    0    0   12  131   35   85  121 1093      957
                 CD4 T 5771 3124 6351 5967 4914 4575 4634 5448     3639
                 CD8 T   13   25    0    1    4    5    3  814     1379
                    DC    0    0    1    4   29   12   41   71      196
                  Mono    0    0    1   13    3    0    5  754     3165
                    NK   38 2784    6   25   11  259   38   92      463
                 other    0    0   57    8 1025  208  487   19       46
               other T    3    2    0    1    1    4    2   63      317
# Azimuth l2
janitor::tabyl(All_samples_Merged@meta.data, predicted.celltype.l2, cell_line)
 predicted.celltype.l2   L1   L2   L3   L4   L5   L6   L7 PBMC PBMC_10x
                  ASDC    0    0    0    0    0    0    0    0        3
        B intermediate    0    0    2   54    2    2    0  457      179
              B memory    0    0   11   34   38   82  120  164       74
               B naive    0    0    0   41    0    0    0  459      692
             CD14 Mono    0    0    1   14    5    0    6  755     3042
             CD16 Mono    0    0    0    0    0    0    0    2      124
               CD4 CTL    0    0    0    0    0    0    0   16        1
             CD4 Naive    0    0    0    7    0    0    0  524     1512
     CD4 Proliferating 2461 2852 5452 5391 4732 4002 4115    0        6
               CD4 TCM 3320  270  887  562  178  557  517 4609     1978
               CD4 TEM    1    0    0    0    0    0    0   68       25
             CD8 Naive    0    0    0    0    0    0    0  361     1012
     CD8 Proliferating    0    0    0    0    0    1    1    0        0
               CD8 TCM    1   16    0    0    0    0    0  286      174
               CD8 TEM    1    8    0    0    2    3    1  181      195
                  cDC1    0    0    0    0    2    6    0   21       13
                  cDC2    0    0    0    4   11    3   35   52      124
                   dnT    2    3    0    1    2    5    2   38       29
                   gdT    0    0    0    0    0    0    0   26       67
                  HSPC    0    0   60    7 1035  213  490   17       12
                   ILC    0    0    0    1    0    0    0    3        3
                  MAIT    0    0    0    0    0    0    0   14      228
                    NK    0    0    0    1    0    0    0   89      444
      NK Proliferating   38 2785    6   24   11  259   38    1        5
         NK_CD56bright    0    0    0    0    0    0    0    1       15
                   pDC    0    0    0    0    0    0    0    0       56
           Plasmablast    0    0    0    0    0    0    0    9       10
              Platelet    0    0    0    0    0    0    0    1       31
                  Treg    1    1    9    9    4   15    6  200      108
# Azimuth l3
janitor::tabyl(All_samples_Merged@meta.data, predicted.celltype.l3, cell_line)
 predicted.celltype.l3   L1   L2   L3   L4   L5   L6   L7 PBMC PBMC_10x
              ASDC_pDC    0    0    0    0    0    0    0    0        4
  B intermediate kappa    0    0    0    1    0    0    0   75       51
 B intermediate lambda    0    0    2   48    4    2    3  371      129
        B memory kappa    0    0    7    1    7   22   55   38       42
       B memory lambda    0    0    3   41    7   29   26  131       30
         B naive kappa    0    0    0    0    0    0    0  267      645
        B naive lambda    0    0    0   37    0    0    0  192       48
             CD14 Mono    0    0    1   15    9    0   22  755     3043
             CD16 Mono    0    0    0    0    0    0    0    2      124
               CD4 CTL    0    0    0    0    0    0    0   27        1
             CD4 Naive    0    0    0    9    0    0    0  528     1525
     CD4 Proliferating 2462 2852 5452 5391 4732 4003 4115    0        6
             CD4 TCM_1 1932    6    6   35    0    7    3 4057     1449
             CD4 TCM_2  652  250  870  516  165  536  482  265      144
             CD4 TCM_3  436   12    4    6   13    7   26  267      359
             CD4 TEM_1    1    0    0    0    0    0    0    4        8
             CD4 TEM_2    0    0    0    0    0    0    0   17       17
             CD4 TEM_3    0    0    0    0    0    0    0   50        1
             CD8 Naive    0    0    0    0    0    0    0  291      969
           CD8 Naive_2    0    0    0    0    1    1    0   63       47
     CD8 Proliferating    0    0    0    0    0    1    1    0        0
             CD8 TCM_1    0    8    0    0    0    0    0  137      115
             CD8 TCM_2  298    6    0    0    0    0    0   80       43
             CD8 TCM_3    0    1    0    0    0    0    0   77       17
             CD8 TEM_1    0    0    0    0    0    0    0   91       67
             CD8 TEM_2    0    0    0    0    0    1    0   32       62
             CD8 TEM_3    0    0    0    0    0    0    0   17       15
             CD8 TEM_4    0    0    0    0    0    0    0    2       12
             CD8 TEM_5    0    0    0    0    0    0    0   27        1
             CD8 TEM_6    1   10    0    0    1    1    1    1       36
                  cDC1    0    0    0    1   17   36   16   28       13
                cDC2_1    0    0    0    1    1    0    4    2       40
                cDC2_2    0    0    1    3   12    4   33   46       83
                 dnT_2    2    3    0    2    2    6    2   42       31
                 gdT_1    0    0    0    0    0    0    0   33       52
                 gdT_3    0    0    0    0    0    0    0    1       15
                  HSPC    0    0   62    7 1036  214  493   17       12
                   ILC    0    0    1    3    0    0    0    4        3
                  MAIT    0    0    0    0    0    0    0   16      229
      NK Proliferating   38 2785    6   24   11  259   38    1        5
                  NK_1    0    0    0    0    0    0    0   42        7
                  NK_2    0    0    0    0    0    0    0   18      386
                  NK_3    0    0    0    0    0    0    0   22       20
                  NK_4    0    0    0    0    0    0    0    3       30
         NK_CD56bright    0    0    0    0    0    0    0    1       16
                   pDC    0    0    0    0    0    0    0    0       56
                Plasma    0    0    0    0    0    0    0    9       10
              Platelet    0    0    0    0    0    0    0    1       31
           Treg Memory    3    2   13    9    4   19   11  200       89
            Treg Naive    0    0    0    0    0    0    0    4       24

4. filter cells just keep CD4 T cells

Cell type Distribution to check clusters


# We can apply it later on R obj to get these tables to compare it to decide about resolution.

# Azimuth l1
janitor::tabyl(filtered_seurat@meta.data, predicted.celltype.l1, cell_line)
 predicted.celltype.l1   L1   L2   L3   L4   L5   L6   L7 PBMC PBMC_10x
                     B    0    0   12    4   35   85  121 1093      957
                 CD4 T 5771 3124 6351 5967 4914 4575 4634 5448     3639
                 CD8 T   13   25    0    1    4    5    3  814     1379
                    DC    0    0    1    4   29   12   41   71      196
                  Mono    0    0    1   13    3    0    5  754     3165
                    NK   38 2784    6   25   11  259   38   92      463
                 other    0    0   57    8 1025  208  487   19       46
               other T    3    2    0    1    1    4    2   63      317
janitor::tabyl(filtered_seurat@meta.data, predicted.celltype.l2, cell_line)
 predicted.celltype.l2   L1   L2   L3   L4   L5   L6   L7 PBMC PBMC_10x
                  ASDC    0    0    0    0    0    0    0    0        3
        B intermediate    0    0    2    1    2    2    0  457      179
              B memory    0    0   11    1   38   82  120  164       74
               B naive    0    0    0    0    0    0    0  459      692
             CD14 Mono    0    0    1   14    5    0    6  755     3042
             CD16 Mono    0    0    0    0    0    0    0    2      124
               CD4 CTL    0    0    0    0    0    0    0   16        1
             CD4 Naive    0    0    0    7    0    0    0  524     1512
     CD4 Proliferating 2461 2852 5452 5391 4732 4002 4115    0        6
               CD4 TCM 3320  270  887  562  178  557  517 4609     1978
               CD4 TEM    1    0    0    0    0    0    0   68       25
             CD8 Naive    0    0    0    0    0    0    0  361     1012
     CD8 Proliferating    0    0    0    0    0    1    1    0        0
               CD8 TCM    1   16    0    0    0    0    0  286      174
               CD8 TEM    1    8    0    0    2    3    1  181      195
                  cDC1    0    0    0    0    2    6    0   21       13
                  cDC2    0    0    0    4   11    3   35   52      124
                   dnT    2    3    0    1    2    5    2   38       29
                   gdT    0    0    0    0    0    0    0   26       67
                  HSPC    0    0   60    7 1035  213  490   17       12
                   ILC    0    0    0    1    0    0    0    3        3
                  MAIT    0    0    0    0    0    0    0   14      228
                    NK    0    0    0    1    0    0    0   89      444
      NK Proliferating   38 2785    6   24   11  259   38    1        5
         NK_CD56bright    0    0    0    0    0    0    0    1       15
                   pDC    0    0    0    0    0    0    0    0       56
           Plasmablast    0    0    0    0    0    0    0    9       10
              Platelet    0    0    0    0    0    0    0    1       31
                  Treg    1    1    9    9    4   15    6  200      108
janitor::tabyl(filtered_seurat@meta.data, predicted.celltype.l3, cell_line)
 predicted.celltype.l3   L1   L2   L3   L4   L5   L6   L7 PBMC PBMC_10x
              ASDC_pDC    0    0    0    0    0    0    0    0        4
  B intermediate kappa    0    0    0    0    0    0    0   75       51
 B intermediate lambda    0    0    2    0    4    2    3  371      129
        B memory kappa    0    0    7    0    7   22   55   38       42
       B memory lambda    0    0    3    1    7   29   26  131       30
         B naive kappa    0    0    0    0    0    0    0  267      645
        B naive lambda    0    0    0    0    0    0    0  192       48
             CD14 Mono    0    0    1   15    9    0   22  755     3043
             CD16 Mono    0    0    0    0    0    0    0    2      124
               CD4 CTL    0    0    0    0    0    0    0   27        1
             CD4 Naive    0    0    0    9    0    0    0  528     1525
     CD4 Proliferating 2462 2852 5452 5391 4732 4003 4115    0        6
             CD4 TCM_1 1932    6    6   35    0    7    3 4057     1449
             CD4 TCM_2  652  250  870  516  165  536  482  265      144
             CD4 TCM_3  436   12    4    6   13    7   26  267      359
             CD4 TEM_1    1    0    0    0    0    0    0    4        8
             CD4 TEM_2    0    0    0    0    0    0    0   17       17
             CD4 TEM_3    0    0    0    0    0    0    0   50        1
             CD8 Naive    0    0    0    0    0    0    0  291      969
           CD8 Naive_2    0    0    0    0    1    1    0   63       47
     CD8 Proliferating    0    0    0    0    0    1    1    0        0
             CD8 TCM_1    0    8    0    0    0    0    0  137      115
             CD8 TCM_2  298    6    0    0    0    0    0   80       43
             CD8 TCM_3    0    1    0    0    0    0    0   77       17
             CD8 TEM_1    0    0    0    0    0    0    0   91       67
             CD8 TEM_2    0    0    0    0    0    1    0   32       62
             CD8 TEM_3    0    0    0    0    0    0    0   17       15
             CD8 TEM_4    0    0    0    0    0    0    0    2       12
             CD8 TEM_5    0    0    0    0    0    0    0   27        1
             CD8 TEM_6    1   10    0    0    1    1    1    1       36
                  cDC1    0    0    0    1   17   36   16   28       13
                cDC2_1    0    0    0    1    1    0    4    2       40
                cDC2_2    0    0    1    3   12    4   33   46       83
                 dnT_2    2    3    0    2    2    6    2   42       31
                 gdT_1    0    0    0    0    0    0    0   33       52
                 gdT_3    0    0    0    0    0    0    0    1       15
                  HSPC    0    0   62    7 1036  214  493   17       12
                   ILC    0    0    1    3    0    0    0    4        3
                  MAIT    0    0    0    0    0    0    0   16      229
      NK Proliferating   38 2785    6   24   11  259   38    1        5
                  NK_1    0    0    0    0    0    0    0   42        7
                  NK_2    0    0    0    0    0    0    0   18      386
                  NK_3    0    0    0    0    0    0    0   22       20
                  NK_4    0    0    0    0    0    0    0    3       30
         NK_CD56bright    0    0    0    0    0    0    0    1       16
                   pDC    0    0    0    0    0    0    0    0       56
                Plasma    0    0    0    0    0    0    0    9       10
              Platelet    0    0    0    0    0    0    0    1       31
           Treg Memory    3    2   13    9    4   19   11  200       89
            Treg Naive    0    0    0    0    0    0    0    4       24

3.Save the Seurat object as an Robj file

LS0tCnRpdGxlOiAidXNlIEFubm90YXRlZCBSb2JqIGluY2x1ZGluZyBQQk1DMTB4IHRvIHJlbW92ZSBOb25DRDRUY2VsbHMgZnJvbSBDb250cm9sICBhbmQgQiBjZWxscyBmcm9tIEw0IgphdXRob3I6IE5hc2lyIE1haG1vb2QgQWJiYXNpCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCIKb3V0cHV0OgogICMgcGRmX2RvY3VtZW50OiBkZWZhdWx0CiAgIyB3b3JkX2RvY3VtZW50OiBkZWZhdWx0CiAgIyBodG1sX2RvY3VtZW50OiBkZWZhdWx0CiAgI3JtZGZvcm1hdHM6OnJlYWR0aGVkb3duCiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCiAgICB0b2NfY29sbGFwc2VkOiB0cnVlCi0tLQoKCgojSW4gdGhpcyBzY3JpcHQgSSB3aWxsIEkgd2lsbCByZW1vdmUgTm9uIFQgY2VsbHMgZnJvbSBQQk1DIAoKIyAxLiBsb2FkIGxpYnJhcmllcwpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0KCmxpYnJhcnkoU2V1cmF0KQpsaWJyYXJ5KFNldXJhdE9iamVjdCkKbGlicmFyeShTZXVyYXREYXRhKQpsaWJyYXJ5KHBhdGNod29yaykKCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoUkNvbG9yQnJld2VyKQpsaWJyYXJ5KG1hZ3JpdHRyKQpsaWJyYXJ5KGRicGx5cikKbGlicmFyeShybWFya2Rvd24pCmxpYnJhcnkoa25pdHIpCmxpYnJhcnkodGlueXRleCkKI0F6aW11dGggQW5ub3RhdGlvbiBsaWJyYXJpZXMKbGlicmFyeShBemltdXRoKQojUHJvamVjVGlscyBBbm5vdGF0aW9uIGxpYnJhcmllcwpsaWJyYXJ5KFNUQUNBUykKbGlicmFyeShQcm9qZWNUSUxzKQojc2luZ2xlUiBBbm5vdGF0aW9uIGxpYnJhcmllcwpsaWJyYXJ5KFNpbmdsZVIpCmxpYnJhcnkoY2VsbGRleCkKbGlicmFyeShTaW5nbGVDZWxsRXhwZXJpbWVudCkKCmxpYnJhcnkoY2x1c3RyZWUpCgpgYGAKCgojIDIuIExvYWQgU2V1cmF0IE9iamVjdCAKYGBge3IgbG9hZF9zZXVyYXR9CgojTG9hZCBTZXVyYXQgT2JqZWN0IG1lcmdlZCBmcm9tIGNlbGwgbGluZXMgYW5kIGEgY29udHJvbChQQk1DKSBhZnRlciBmaWx0cmF0aW9uCmxvYWQoIjAtaW1wX1JvYmovQWxsX1NhbXBsZXNfTWVyZ2VkX3dpdGhfMTB4X0F6aXRtdXRoX0Fubm90YXRlZC5yb2JqIikKCgpBbGxfc2FtcGxlc19NZXJnZWQKCgpgYGAKCiMgMy4gQ2VsbCB0eXBlIERpc3RyaWJ1dGlvbiB0byBjaGVjayBjbHVzdGVycwpgYGB7ciBEaXN0cmlidXRpb24xLCBmaWcuaGVpZ2h0PTEwLCBmaWcud2lkdGg9MTB9CiMgV2UgY2FuIGFwcGx5IGl0IGxhdGVyIG9uIFIgb2JqIHRvIGdldCB0aGVzZSB0YWJsZXMgdG8gY29tcGFyZSBpdCB0byBkZWNpZGUgYWJvdXQgcmVzb2x1dGlvbi4KCiMgQXppbXV0aCBsMQpqYW5pdG9yOjp0YWJ5bChBbGxfc2FtcGxlc19NZXJnZWRAbWV0YS5kYXRhLCBwcmVkaWN0ZWQuY2VsbHR5cGUubDEsIGNlbGxfbGluZSkKCgojIEF6aW11dGggbDIKamFuaXRvcjo6dGFieWwoQWxsX3NhbXBsZXNfTWVyZ2VkQG1ldGEuZGF0YSwgcHJlZGljdGVkLmNlbGx0eXBlLmwyLCBjZWxsX2xpbmUpCgojIEF6aW11dGggbDMKamFuaXRvcjo6dGFieWwoQWxsX3NhbXBsZXNfTWVyZ2VkQG1ldGEuZGF0YSwgcHJlZGljdGVkLmNlbGx0eXBlLmwzLCBjZWxsX2xpbmUpCgpgYGAKCiMgNC4gZmlsdGVyIGNlbGxzIGp1c3Qga2VlcCBDRDQgVCBjZWxscwpgYGB7ciBEaXN0cmlidXRpb24sIGZpZy5oZWlnaHQ9NiwgZmlnLndpZHRoPTEwfQoKIyBTZXQgaWRlbnRpdHkgdG8gY2VsbF9saW5lIApJZGVudHMoQWxsX3NhbXBsZXNfTWVyZ2VkKSA8LSAiY2VsbF9saW5lIgoKIyBJZGVudGlmeSBDRDQgVCBjZWxscyBpbiBQQk1DIGFuZCBQQk1DMTB4CmNkNF9jZWxsc19wYm1jIDwtIFdoaWNoQ2VsbHMoQWxsX3NhbXBsZXNfTWVyZ2VkLCBleHByZXNzaW9uID0gCiAgZ3JlcGwoIl5DRDQiLCBBbGxfc2FtcGxlc19NZXJnZWQkcHJlZGljdGVkLmNlbGx0eXBlLmwxKSAmCiAgZ3JlcGwoIl5DRDQiLCBBbGxfc2FtcGxlc19NZXJnZWQkcHJlZGljdGVkLmNlbGx0eXBlLmwyKSAmCiAgZ3JlcGwoIl5DRDQiLCBBbGxfc2FtcGxlc19NZXJnZWQkcHJlZGljdGVkLmNlbGx0eXBlLmwzKSAmCiAgKGNlbGxfbGluZSAlaW4lIGMoIlBCTUMiLCAiUEJNQ18xMHgiKSkKKQoKIyBJZGVudGlmeSBCIGNlbGxzIGluIEw0IHRvIGV4Y2x1ZGUKYl9jZWxsc19sNCA8LSBXaGljaENlbGxzKEFsbF9zYW1wbGVzX01lcmdlZCwgZXhwcmVzc2lvbiA9IAogIGdyZXBsKCJeQiIsIEFsbF9zYW1wbGVzX01lcmdlZCRwcmVkaWN0ZWQuY2VsbHR5cGUubDEpICYKICBncmVwbCgiXkIiLCBBbGxfc2FtcGxlc19NZXJnZWQkcHJlZGljdGVkLmNlbGx0eXBlLmwyKSAmCiAgZ3JlcGwoIl5CIiwgQWxsX3NhbXBsZXNfTWVyZ2VkJHByZWRpY3RlZC5jZWxsdHlwZS5sMykgJgogIGNlbGxfbGluZSA9PSAiTDQiCikKCiMgU2VsZWN0IGFsbCBjZWxscyBleGNlcHQgQiBjZWxscyBmcm9tIEw0CmFsbF9jZWxsc19leGNlcHRfYl9pbl9sNCA8LSBXaGljaENlbGxzKEFsbF9zYW1wbGVzX01lcmdlZCwgY2VsbHMgPSBiX2NlbGxzX2w0LCBpbnZlcnQgPSBUUlVFKQoKIyBDb21iaW5lIHRoZSBjZWxsIGxpc3RzCmNlbGxzX3RvX2tlZXAgPC0gaW50ZXJzZWN0KGMoY2Q0X2NlbGxzX3BibWMsIGFsbF9jZWxsc19leGNlcHRfYl9pbl9sNCksIGNvbG5hbWVzKEFsbF9zYW1wbGVzX01lcmdlZCkpCgojIENyZWF0ZSB0aGUgZmluYWwgZmlsdGVyZWQgU2V1cmF0IG9iamVjdApmaWx0ZXJlZF9zZXVyYXQgPC0gc3Vic2V0KEFsbF9zYW1wbGVzX01lcmdlZCwgY2VsbHMgPSBjZWxsc190b19rZWVwKQoKCgpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoUkNvbG9yQnJld2VyKSAgCgojIEFzc3VtaW5nIHlvdSBoYXZlIDEwIGRpZmZlcmVudCBjZWxsIGxpbmVzLCBnZW5lcmF0aW5nIGEgY29sb3IgcGFsZXR0ZSB3aXRoIDEwIGNvbG9ycwpjZWxsX2xpbmVfY29sb3JzIDwtIGJyZXdlci5wYWwoMTAsICJTZXQzIikKCiMgQXNzdW1pbmcgQWxsX3NhbXBsZXNfTWVyZ2VkJGNlbGxfbGluZSBpcyBhIGZhY3RvciBvciBjaGFyYWN0ZXIgdmVjdG9yIGNvbnRhaW5pbmcgY2VsbCBsaW5lIG5hbWVzCmRhdGEgPC0gYXMuZGF0YS5mcmFtZSh0YWJsZShmaWx0ZXJlZF9zZXVyYXQkY2VsbF9saW5lKSkKY29sbmFtZXMoZGF0YSkgPC0gYygiY2VsbF9saW5lIiwgIm5VTUkiKSAgIyBDaGFuZ2UgY29sdW1uIG5hbWUgdG8gblVNSQoKbmNlbGxzIDwtIGdncGxvdChkYXRhLCBhZXMoeCA9IGNlbGxfbGluZSwgeSA9IG5VTUksIGZpbGwgPSBjZWxsX2xpbmUpKSArIAogIGdlb21fY29sKCkgKwogIHRoZW1lX2NsYXNzaWMoKSArCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IG5VTUkpLCAKICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuOSksIAogICAgICAgICAgICB2anVzdCA9IC0wLjI1KSArCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gY2VsbF9saW5lX2NvbG9ycykgKyAKICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDQ1LCBoanVzdCA9IDEpLAogICAgICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpKSArICAjIEFkanVzdCB0aGUgdGl0bGUgcG9zaXRpb24KICBnZ3RpdGxlKCJGaWx0ZXJlZCBjZWxscyBwZXIgc2FtcGxlIikgKwogIHhsYWIoIkNlbGwgbGluZXMiKSArICAjIEFkanVzdCB4LWF4aXMgbGFiZWwKICB5bGFiKCJGcmVxdWVuY3kiKSAgICAjIEFkanVzdCB5LWF4aXMgbGFiZWwKCnByaW50KG5jZWxscykKCgpgYGAKCgoKCiMgQ2VsbCB0eXBlIERpc3RyaWJ1dGlvbiB0byBjaGVjayBjbHVzdGVycwpgYGB7ciBEaXN0cmlidXRpb24yLCBmaWcuaGVpZ2h0PTYsIGZpZy53aWR0aD0xMH0KCiMgV2UgY2FuIGFwcGx5IGl0IGxhdGVyIG9uIFIgb2JqIHRvIGdldCB0aGVzZSB0YWJsZXMgdG8gY29tcGFyZSBpdCB0byBkZWNpZGUgYWJvdXQgcmVzb2x1dGlvbi4KCiMgQXppbXV0aCBsMQpqYW5pdG9yOjp0YWJ5bChmaWx0ZXJlZF9zZXVyYXRAbWV0YS5kYXRhLCBwcmVkaWN0ZWQuY2VsbHR5cGUubDEsIGNlbGxfbGluZSkKCgpqYW5pdG9yOjp0YWJ5bChmaWx0ZXJlZF9zZXVyYXRAbWV0YS5kYXRhLCBwcmVkaWN0ZWQuY2VsbHR5cGUubDIsIGNlbGxfbGluZSkKCgpqYW5pdG9yOjp0YWJ5bChmaWx0ZXJlZF9zZXVyYXRAbWV0YS5kYXRhLCBwcmVkaWN0ZWQuY2VsbHR5cGUubDMsIGNlbGxfbGluZSkKCmBgYAoKCiMgMy5TYXZlIHRoZSBTZXVyYXQgb2JqZWN0IGFzIGFuIFJvYmogZmlsZQpgYGB7ciBzYXZlUk9CSiwgZWNobz1GQUxTRX0KCnNhdmUoZmlsdGVyZWRfc2V1cmF0LCBmaWxlID0gIjAtaW1wX1JvYmovU1NfQ0Q0X1RjZWxsc19BemltdXRoX0Fubm90YXRlZF9QQk1DMTB4X2V4Y2x1ZGluZ19ub25DRDRfY2VsbHNfZnJvbV9Db250cm9sX0JjZWxsc19mcm9tX0w0LnJvYmoiKQoKCmBgYAoKCgoKCgoK