Algoritma & Struktur Data

~ Ujian Tengah Semester ~


Kontak : \(\downarrow\)
Email
Instagram https://www.instagram.com/cvnopp_/
RPubs https://rpubs.com/calvinriswandy/

Kasus 1

Asumsikan Anda telah mengumpulkan beberapa kumpulan data dari perusahaan ABC Property seperti yang dapat kita lihat pada tabel berikut:

Id             <- (1:10000)
Marketing_Name <- rep(c("Angel","Sherly","Vanessa","Irene","Julian",
                        "Jeffry","Nikita","Kefas","Siana","Lala",
                        "Fallen","Ardifo","Kevin","Juen","Jerrel",
                        "Imelda","Widi","Theodora","Elvani","Jonathan",
                        "Sofia","Abraham","Siti","Niko","Sefli",
                        "Bene", "Diana", "Pupe", "Andi", "Tatha",
                        "Endri", "Monika", "Hans", "Debora","Hanifa",
                        "James", "Jihan", "Friska","Ardiwan", "Bakti",
                        "Anthon","Amry", "Wiwik", "Bastian", "Budi",
                        "Leo","Simon","Matius","Arry", "Eliando"), 200)
Work_Exp       <- rep(c(1.3,2.4,2.5,3.6,3.7,4.7,5.7,6.7,7.7,7.3,
                        5.3,5.3,10,9.3,3.3,3.3,3.4,3.4,3.5,5.6,
                        3.5,4.6,4.6,5.7,6.2,4.4,6.4,6.4,3.5,7.5,
                        4.6,3.7,4.7,4.3,5.2,6.3,7.4,2.4,3.4,8.2,
                        6.4,7.2,1.5,7.5,10,4.5,6.5,7.2,7.1,7.6),200)
City           <- sample(c("Jakarta","Bogor","Depok","Tengerang","Bekasi"),10000, replace = T)
Cluster        <- sample(c("Victoria","Palmyra","Winona","Tiara", "Narada",
                           "Peronia","Lavesh","Alindra","Sweethome", "Asera",
                           "Teradamai","Albasia", "Adara","Neon","Arana",
                           "Asoka", "Primadona", "Mutiara","Permata","Alamanda" ), 10000, replace=T)
Price          <- sample(c(7000:15000),10000, replace = T)
Date_Sales     <- sample(seq(as.Date("2018/01/01"), by = "day", length.out = 1000),10000, replace = T)
Advertisement  <- sample(c(1:20), 10000, replace = T)
Data           <- data.frame(Id, 
                             Marketing_Name,
                             Work_Exp,
                             City,
                             Cluster,
                             Price,
                             Date_Sales,
                             Advertisement)
library(DT)
datatable(Data)

Soal 1

Kategorikan variabel Harga pada dataset di atas menjadi tiga kelompok sebagai berikut:

  • \(\text{High} > 12000\)
  • \(10000 \le \text{Medium} \le 12000\)
  • \(\text{Low} < 10000\)

Tetapkan ke dalam variabel baru yang disebut Kelas dengan menggunakan fungsi kontrol If, else if, dan else.

x = Data$Price

k= ifelse((x>12000),print('High'),
          ifelse((x>=10000 & x<= 12000), print("Medium"),print('Low')
                 ))
## [1] "High"
## [1] "Medium"
## [1] "Low"
Data$Class = k
datatable(Data)
Data$Class = k
Data

Soal 2

Kategorikan variabel Harga pada dataset di atas menjadi enam kelompok sebagai berikut:

  • Booking_fee nya 5 % jika \(\text{Price} < 8000\)
  • Booking_fee nya 6 % jika \(8000 \le \text{Price} < 9000\)
  • Booking_fee nya 7 % jika \(9000 \le \text{Price} < 10000\)
  • Booking_fee nya 8 % jika \(10000 \le \text{Price} < 11000\)
  • Booking_fee nya 9 % jika \(11000 \le \text{Price} < 13000\)
  • Booking_fee nya 10 % jika \(13000 \le \text{Price} \le 15000\)

Tetapkan ke dalam variabel baru yang disebut Booking_fee dengan menggunakan fungsi kontrol If, else if, dan else.

R

x = Data$Price

b= ifelse((x<8000),5/100,
          ifelse((x>=8000 & x< 9000),6/100,
          ifelse((x>=9000 & x< 10000),7/100,
          ifelse((x>=10000 & x< 11000),8/100,
          ifelse((x>=11000 & x< 13000),9/100,10/100
                    )))))
Data$Booking_Fee = b
datatable(Data)

Soal 3

Menurut kumpulan data akhir yang telah Anda buat pada soal no 2, saya berasumsi bahwa Anda telah bekerja sebagai pemasaran di perusahaan ABC Property, bagaimana Anda dapat mengumpulkan semua informasi tentang penjualan Anda dengan menggunakan pernyataan for.

R

# Contoh mengumpulkan data penjualan Lala

library(DT)

penjual = "Lala"

for (x in penjual){
  print(subset(Data, subset=(Marketing_Name == x)))
}
##        Id Marketing_Name Work_Exp      City   Cluster Price Date_Sales
## 10     10           Lala      7.3 Tengerang   Albasia 14667 2018-09-07
## 60     60           Lala      7.3     Bogor    Lavesh 12834 2018-01-26
## 110   110           Lala      7.3    Bekasi     Arana 14483 2020-02-29
## 160   160           Lala      7.3   Jakarta   Palmyra  7171 2020-02-04
## 210   210           Lala      7.3    Bekasi   Permata 10519 2019-08-01
## 260   260           Lala      7.3   Jakarta     Asera  8065 2020-07-31
## 310   310           Lala      7.3     Bogor   Peronia 14324 2018-06-04
## 360   360           Lala      7.3 Tengerang Primadona  8770 2019-10-20
## 410   410           Lala      7.3 Tengerang  Alamanda 11020 2018-12-02
## 460   460           Lala      7.3     Depok    Winona 10560 2018-12-22
## 510   510           Lala      7.3   Jakarta     Asoka 12615 2020-04-11
## 560   560           Lala      7.3   Jakarta   Mutiara 13936 2018-10-11
## 610   610           Lala      7.3     Bogor  Victoria 12689 2019-09-06
## 660   660           Lala      7.3    Bekasi   Mutiara  7727 2020-07-11
## 710   710           Lala      7.3    Bekasi   Alindra  8257 2018-03-13
## 760   760           Lala      7.3     Depok Primadona  9170 2018-09-24
## 810   810           Lala      7.3     Bogor   Palmyra 14452 2019-11-16
## 860   860           Lala      7.3     Depok    Narada  7298 2019-05-11
## 910   910           Lala      7.3   Jakarta   Permata  9318 2020-01-14
## 960   960           Lala      7.3     Depok  Victoria  7632 2018-12-06
## 1010 1010           Lala      7.3   Jakarta     Adara  8882 2018-10-01
## 1060 1060           Lala      7.3     Bogor   Peronia 12757 2018-09-20
## 1110 1110           Lala      7.3 Tengerang     Adara 11064 2020-05-19
## 1160 1160           Lala      7.3     Bogor   Permata 12819 2019-09-13
## 1210 1210           Lala      7.3     Depok     Tiara 14475 2020-03-16
## 1260 1260           Lala      7.3     Depok   Mutiara 13854 2018-01-08
## 1310 1310           Lala      7.3 Tengerang   Permata  9316 2018-09-20
## 1360 1360           Lala      7.3 Tengerang     Asoka 13901 2019-06-10
## 1410 1410           Lala      7.3 Tengerang Primadona 10574 2020-03-11
## 1460 1460           Lala      7.3   Jakarta   Palmyra  8846 2019-03-01
## 1510 1510           Lala      7.3     Depok   Palmyra  8838 2019-06-29
## 1560 1560           Lala      7.3    Bekasi  Victoria 10617 2018-06-18
## 1610 1610           Lala      7.3    Bekasi   Permata  9192 2019-01-03
## 1660 1660           Lala      7.3    Bekasi     Tiara 11817 2019-01-02
## 1710 1710           Lala      7.3   Jakarta      Neon 14608 2020-01-12
## 1760 1760           Lala      7.3     Bogor   Albasia 14146 2018-01-28
## 1810 1810           Lala      7.3    Bekasi    Winona  8678 2019-07-01
## 1860 1860           Lala      7.3     Depok   Mutiara 10003 2018-05-23
## 1910 1910           Lala      7.3 Tengerang    Lavesh  7066 2018-07-29
## 1960 1960           Lala      7.3     Depok   Palmyra  7598 2019-08-28
## 2010 2010           Lala      7.3    Bekasi   Permata  8568 2019-09-10
## 2060 2060           Lala      7.3     Depok   Permata  7613 2018-03-06
## 2110 2110           Lala      7.3 Tengerang   Alindra 12399 2018-07-30
## 2160 2160           Lala      7.3     Depok     Arana 13349 2018-05-16
## 2210 2210           Lala      7.3     Bogor     Adara 10914 2018-05-30
## 2260 2260           Lala      7.3   Jakarta  Alamanda  7218 2018-07-14
## 2310 2310           Lala      7.3 Tengerang  Alamanda  8431 2018-09-09
## 2360 2360           Lala      7.3 Tengerang   Alindra 10065 2020-01-10
## 2410 2410           Lala      7.3 Tengerang     Tiara  7283 2018-09-12
## 2460 2460           Lala      7.3     Depok     Tiara 12151 2020-04-23
## 2510 2510           Lala      7.3     Bogor   Albasia  8837 2019-05-25
## 2560 2560           Lala      7.3 Tengerang Primadona  7015 2018-07-30
## 2610 2610           Lala      7.3     Bogor    Winona 13383 2019-04-23
## 2660 2660           Lala      7.3   Jakarta   Peronia  8781 2020-02-27
## 2710 2710           Lala      7.3   Jakarta   Palmyra  9043 2020-01-12
## 2760 2760           Lala      7.3     Depok    Winona  9833 2018-05-06
## 2810 2810           Lala      7.3     Bogor     Asera  7487 2018-06-11
## 2860 2860           Lala      7.3    Bekasi    Lavesh 13315 2019-08-28
## 2910 2910           Lala      7.3    Bekasi  Victoria 11862 2018-11-29
## 2960 2960           Lala      7.3    Bekasi   Peronia 14292 2020-04-08
## 3010 3010           Lala      7.3     Depok     Asera  8696 2019-01-18
## 3060 3060           Lala      7.3 Tengerang     Tiara 13862 2020-07-06
## 3110 3110           Lala      7.3    Bekasi   Albasia 14920 2019-05-25
## 3160 3160           Lala      7.3    Bekasi     Arana 13962 2019-06-21
## 3210 3210           Lala      7.3 Tengerang Primadona 10115 2020-08-19
## 3260 3260           Lala      7.3 Tengerang     Adara  9634 2020-05-09
## 3310 3310           Lala      7.3   Jakarta     Asoka 13041 2019-04-08
## 3360 3360           Lala      7.3    Bekasi  Alamanda 14473 2018-08-08
## 3410 3410           Lala      7.3     Depok   Peronia 12881 2018-02-17
## 3460 3460           Lala      7.3     Bogor   Peronia 13122 2019-09-05
## 3510 3510           Lala      7.3     Depok     Asera 12985 2018-04-01
## 3560 3560           Lala      7.3 Tengerang Teradamai  9267 2020-02-27
## 3610 3610           Lala      7.3   Jakarta     Adara 11237 2020-08-25
## 3660 3660           Lala      7.3 Tengerang    Winona  7324 2020-03-05
## 3710 3710           Lala      7.3     Bogor     Tiara 14657 2019-06-13
## 3760 3760           Lala      7.3   Jakarta     Asera 12701 2018-08-30
## 3810 3810           Lala      7.3    Bekasi    Winona 11141 2020-07-30
## 3860 3860           Lala      7.3   Jakarta   Albasia 12348 2019-08-13
## 3910 3910           Lala      7.3    Bekasi   Permata  9343 2019-08-10
## 3960 3960           Lala      7.3     Bogor   Alindra  8577 2018-06-18
## 4010 4010           Lala      7.3    Bekasi     Arana 11562 2019-08-04
## 4060 4060           Lala      7.3    Bekasi      Neon 13368 2018-02-02
## 4110 4110           Lala      7.3    Bekasi     Arana 13116 2018-01-01
## 4160 4160           Lala      7.3     Depok Teradamai 10563 2018-05-12
## 4210 4210           Lala      7.3     Bogor      Neon  9992 2020-04-08
## 4260 4260           Lala      7.3 Tengerang     Asera 12172 2018-08-01
## 4310 4310           Lala      7.3    Bekasi      Neon 10554 2019-06-09
## 4360 4360           Lala      7.3     Depok Sweethome  9495 2019-08-07
## 4410 4410           Lala      7.3   Jakarta   Peronia  8445 2019-05-02
## 4460 4460           Lala      7.3 Tengerang Sweethome  7289 2020-05-02
## 4510 4510           Lala      7.3   Jakarta Teradamai 13575 2020-01-20
## 4560 4560           Lala      7.3     Depok  Victoria 10819 2019-06-25
## 4610 4610           Lala      7.3   Jakarta   Permata 13434 2020-06-24
## 4660 4660           Lala      7.3     Depok   Alindra  7436 2019-12-13
## 4710 4710           Lala      7.3     Depok  Alamanda  7500 2020-01-28
## 4760 4760           Lala      7.3 Tengerang    Winona 12492 2020-02-21
## 4810 4810           Lala      7.3     Bogor   Mutiara 10528 2019-05-26
## 4860 4860           Lala      7.3   Jakarta      Neon 10714 2019-01-17
## 4910 4910           Lala      7.3   Jakarta Sweethome 10126 2019-05-26
## 4960 4960           Lala      7.3   Jakarta   Albasia 11910 2018-09-03
## 5010 5010           Lala      7.3 Tengerang    Lavesh 11865 2019-01-03
## 5060 5060           Lala      7.3   Jakarta  Alamanda 10555 2018-08-18
## 5110 5110           Lala      7.3   Jakarta  Victoria 10823 2018-12-06
## 5160 5160           Lala      7.3   Jakarta   Albasia  9187 2018-05-08
## 5210 5210           Lala      7.3   Jakarta   Mutiara 14768 2019-11-14
## 5260 5260           Lala      7.3   Jakarta   Albasia 11928 2020-01-07
## 5310 5310           Lala      7.3   Jakarta     Adara  9990 2020-06-06
## 5360 5360           Lala      7.3   Jakarta    Narada  8340 2019-04-05
## 5410 5410           Lala      7.3   Jakarta     Asoka  7760 2018-04-06
## 5460 5460           Lala      7.3     Bogor Teradamai 13703 2019-03-27
## 5510 5510           Lala      7.3     Bogor     Asoka 10654 2018-06-24
## 5560 5560           Lala      7.3     Bogor    Narada  9051 2018-04-11
## 5610 5610           Lala      7.3    Bekasi   Alindra 14662 2018-03-21
## 5660 5660           Lala      7.3     Bogor   Permata  8293 2020-01-20
## 5710 5710           Lala      7.3 Tengerang   Peronia  8566 2018-09-03
## 5760 5760           Lala      7.3     Depok  Alamanda  7782 2019-05-30
## 5810 5810           Lala      7.3     Bogor     Adara 14502 2018-04-16
## 5860 5860           Lala      7.3   Jakarta     Tiara  7766 2018-08-18
## 5910 5910           Lala      7.3    Bekasi     Tiara 14108 2019-01-12
## 5960 5960           Lala      7.3   Jakarta     Tiara 12713 2018-09-11
## 6010 6010           Lala      7.3     Depok    Narada  9520 2019-10-19
## 6060 6060           Lala      7.3 Tengerang Sweethome 11188 2020-01-26
## 6110 6110           Lala      7.3    Bekasi   Peronia 12356 2020-08-22
## 6160 6160           Lala      7.3   Jakarta   Alindra  7438 2018-10-15
## 6210 6210           Lala      7.3   Jakarta      Neon 10293 2018-12-16
## 6260 6260           Lala      7.3    Bekasi    Narada 14942 2019-09-26
## 6310 6310           Lala      7.3     Bogor     Asoka  9448 2020-08-22
## 6360 6360           Lala      7.3     Bogor   Palmyra 11207 2019-11-29
## 6410 6410           Lala      7.3    Bekasi     Asera  8608 2019-07-14
## 6460 6460           Lala      7.3     Depok   Albasia 11832 2020-07-22
## 6510 6510           Lala      7.3     Depok    Narada 14956 2019-04-15
## 6560 6560           Lala      7.3     Depok   Peronia 10613 2020-05-24
## 6610 6610           Lala      7.3   Jakarta Teradamai  8343 2018-07-12
## 6660 6660           Lala      7.3     Depok      Neon 14938 2018-02-24
## 6710 6710           Lala      7.3   Jakarta Teradamai 13054 2019-05-01
## 6760 6760           Lala      7.3 Tengerang      Neon 10371 2018-02-28
## 6810 6810           Lala      7.3 Tengerang    Winona  8502 2019-06-16
## 6860 6860           Lala      7.3 Tengerang     Adara 10789 2019-04-26
## 6910 6910           Lala      7.3    Bekasi    Narada 12742 2019-03-26
## 6960 6960           Lala      7.3     Bogor  Alamanda  7308 2019-08-21
## 7010 7010           Lala      7.3   Jakarta    Lavesh 10189 2019-07-07
## 7060 7060           Lala      7.3   Jakarta   Albasia  8593 2019-04-16
## 7110 7110           Lala      7.3   Jakarta Primadona  8932 2019-10-24
## 7160 7160           Lala      7.3   Jakarta    Narada 11863 2020-04-29
## 7210 7210           Lala      7.3 Tengerang   Mutiara 11476 2018-05-26
## 7260 7260           Lala      7.3 Tengerang   Permata 11097 2020-07-16
## 7310 7310           Lala      7.3    Bekasi    Narada 14396 2018-12-21
## 7360 7360           Lala      7.3   Jakarta   Peronia  7417 2020-09-14
## 7410 7410           Lala      7.3   Jakarta   Albasia  8152 2018-02-21
## 7460 7460           Lala      7.3    Bekasi Sweethome  8794 2019-07-06
## 7510 7510           Lala      7.3     Bogor   Alindra  7047 2018-08-20
## 7560 7560           Lala      7.3   Jakarta Teradamai 12712 2018-12-22
## 7610 7610           Lala      7.3    Bekasi     Asera 10994 2020-06-27
## 7660 7660           Lala      7.3   Jakarta   Permata  9448 2019-05-21
## 7710 7710           Lala      7.3 Tengerang   Albasia 14119 2018-04-25
## 7760 7760           Lala      7.3    Bekasi  Alamanda  8977 2020-06-25
## 7810 7810           Lala      7.3 Tengerang     Arana 12157 2019-08-30
## 7860 7860           Lala      7.3   Jakarta   Palmyra  8212 2020-06-03
## 7910 7910           Lala      7.3     Depok     Tiara 14692 2020-07-12
## 7960 7960           Lala      7.3     Bogor   Permata  7490 2019-05-24
## 8010 8010           Lala      7.3   Jakarta  Victoria 11113 2019-04-16
## 8060 8060           Lala      7.3   Jakarta   Permata 11984 2019-02-03
## 8110 8110           Lala      7.3     Depok    Winona 13866 2018-08-19
## 8160 8160           Lala      7.3     Depok Primadona  8621 2018-01-30
## 8210 8210           Lala      7.3     Bogor Teradamai 12270 2018-07-03
## 8260 8260           Lala      7.3     Bogor Sweethome  9260 2018-11-24
## 8310 8310           Lala      7.3     Depok   Palmyra  9437 2019-12-14
## 8360 8360           Lala      7.3     Bogor  Alamanda 14665 2018-09-08
## 8410 8410           Lala      7.3   Jakarta     Asera 11419 2018-07-09
## 8460 8460           Lala      7.3     Depok   Peronia 14831 2018-10-01
## 8510 8510           Lala      7.3   Jakarta    Narada 13735 2020-04-30
## 8560 8560           Lala      7.3   Jakarta Sweethome 11793 2020-03-29
## 8610 8610           Lala      7.3     Depok  Victoria 12082 2019-07-25
## 8660 8660           Lala      7.3    Bekasi   Alindra  9739 2018-04-13
## 8710 8710           Lala      7.3 Tengerang   Peronia 12553 2018-05-24
## 8760 8760           Lala      7.3     Bogor   Alindra 11505 2019-08-12
## 8810 8810           Lala      7.3    Bekasi   Alindra  8785 2018-08-08
## 8860 8860           Lala      7.3    Bekasi      Neon  7896 2018-06-08
## 8910 8910           Lala      7.3     Depok   Mutiara  9219 2018-05-03
## 8960 8960           Lala      7.3 Tengerang   Peronia 12213 2018-12-11
## 9010 9010           Lala      7.3     Bogor   Permata 14582 2018-09-26
## 9060 9060           Lala      7.3   Jakarta Teradamai 11685 2018-11-20
## 9110 9110           Lala      7.3   Jakarta      Neon 14282 2019-06-18
## 9160 9160           Lala      7.3     Depok   Mutiara  8316 2019-06-08
## 9210 9210           Lala      7.3    Bekasi     Arana  7576 2019-05-22
## 9260 9260           Lala      7.3     Depok Primadona 13372 2019-06-03
## 9310 9310           Lala      7.3     Depok   Palmyra 13099 2018-04-28
## 9360 9360           Lala      7.3   Jakarta      Neon  8824 2020-02-10
## 9410 9410           Lala      7.3     Bogor   Palmyra 13166 2019-09-05
## 9460 9460           Lala      7.3   Jakarta    Narada 11265 2019-11-04
## 9510 9510           Lala      7.3 Tengerang  Victoria  8865 2018-10-25
## 9560 9560           Lala      7.3   Jakarta  Alamanda 10588 2018-05-12
## 9610 9610           Lala      7.3     Depok  Alamanda  8230 2019-09-28
## 9660 9660           Lala      7.3 Tengerang   Mutiara 12355 2019-05-20
## 9710 9710           Lala      7.3    Bekasi     Adara  8009 2019-02-19
## 9760 9760           Lala      7.3     Bogor     Tiara 14258 2020-05-03
## 9810 9810           Lala      7.3     Depok Teradamai 13860 2019-09-27
## 9860 9860           Lala      7.3     Bogor     Asera 10900 2019-11-17
## 9910 9910           Lala      7.3 Tengerang Teradamai 11355 2018-01-25
## 9960 9960           Lala      7.3 Tengerang     Asera  9298 2018-04-20
##      Advertisement  Class Booking_Fee
## 10               4   High        0.10
## 60              19   High        0.09
## 110              3   High        0.10
## 160             19    Low        0.05
## 210             19 Medium        0.08
## 260             18    Low        0.06
## 310             14   High        0.10
## 360             13    Low        0.06
## 410             10 Medium        0.09
## 460              3 Medium        0.08
## 510              1   High        0.09
## 560             11   High        0.10
## 610             11   High        0.09
## 660              9    Low        0.05
## 710              3    Low        0.06
## 760             12    Low        0.07
## 810              1   High        0.10
## 860             18    Low        0.05
## 910             10    Low        0.07
## 960              2    Low        0.05
## 1010             2    Low        0.06
## 1060            17   High        0.09
## 1110            20 Medium        0.09
## 1160            10   High        0.09
## 1210             6   High        0.10
## 1260             3   High        0.10
## 1310            14    Low        0.07
## 1360            10   High        0.10
## 1410             7 Medium        0.08
## 1460            12    Low        0.06
## 1510             8    Low        0.06
## 1560            14 Medium        0.08
## 1610            13    Low        0.07
## 1660            16 Medium        0.09
## 1710             7   High        0.10
## 1760             8   High        0.10
## 1810            19    Low        0.06
## 1860            20 Medium        0.08
## 1910            15    Low        0.05
## 1960            12    Low        0.05
## 2010            20    Low        0.06
## 2060             5    Low        0.05
## 2110            14   High        0.09
## 2160            10   High        0.10
## 2210             7 Medium        0.08
## 2260             4    Low        0.05
## 2310            11    Low        0.06
## 2360            17 Medium        0.08
## 2410             1    Low        0.05
## 2460             6   High        0.09
## 2510             5    Low        0.06
## 2560             2    Low        0.05
## 2610            15   High        0.10
## 2660             7    Low        0.06
## 2710            11    Low        0.07
## 2760             8    Low        0.07
## 2810            13    Low        0.05
## 2860             3   High        0.10
## 2910            15 Medium        0.09
## 2960             5   High        0.10
## 3010             2    Low        0.06
## 3060            20   High        0.10
## 3110             9   High        0.10
## 3160            15   High        0.10
## 3210             1 Medium        0.08
## 3260            13    Low        0.07
## 3310            20   High        0.10
## 3360             1   High        0.10
## 3410            12   High        0.09
## 3460            18   High        0.10
## 3510             5   High        0.09
## 3560            12    Low        0.07
## 3610            11 Medium        0.09
## 3660             8    Low        0.05
## 3710            12   High        0.10
## 3760             1   High        0.09
## 3810             6 Medium        0.09
## 3860            19   High        0.09
## 3910             5    Low        0.07
## 3960             6    Low        0.06
## 4010             3 Medium        0.09
## 4060            18   High        0.10
## 4110            17   High        0.10
## 4160            17 Medium        0.08
## 4210             9    Low        0.07
## 4260             6   High        0.09
## 4310             2 Medium        0.08
## 4360            20    Low        0.07
## 4410            16    Low        0.06
## 4460            16    Low        0.05
## 4510            20   High        0.10
## 4560            14 Medium        0.08
## 4610             5   High        0.10
## 4660            13    Low        0.05
## 4710             8    Low        0.05
## 4760             3   High        0.09
## 4810            20 Medium        0.08
## 4860             3 Medium        0.08
## 4910            16 Medium        0.08
## 4960             6 Medium        0.09
## 5010            19 Medium        0.09
## 5060             4 Medium        0.08
## 5110             9 Medium        0.08
## 5160             1    Low        0.07
## 5210            15   High        0.10
## 5260             7 Medium        0.09
## 5310             1    Low        0.07
## 5360            15    Low        0.06
## 5410             2    Low        0.05
## 5460             9   High        0.10
## 5510             7 Medium        0.08
## 5560             6    Low        0.07
## 5610            16   High        0.10
## 5660            13    Low        0.06
## 5710            13    Low        0.06
## 5760            12    Low        0.05
## 5810            19   High        0.10
## 5860            12    Low        0.05
## 5910            14   High        0.10
## 5960             3   High        0.09
## 6010             3    Low        0.07
## 6060            13 Medium        0.09
## 6110            14   High        0.09
## 6160             8    Low        0.05
## 6210            16 Medium        0.08
## 6260             7   High        0.10
## 6310            20    Low        0.07
## 6360             7 Medium        0.09
## 6410            13    Low        0.06
## 6460             5 Medium        0.09
## 6510            10   High        0.10
## 6560            14 Medium        0.08
## 6610            18    Low        0.06
## 6660             6   High        0.10
## 6710             6   High        0.10
## 6760            10 Medium        0.08
## 6810            11    Low        0.06
## 6860            12 Medium        0.08
## 6910             6   High        0.09
## 6960             1    Low        0.05
## 7010             8 Medium        0.08
## 7060            11    Low        0.06
## 7110             1    Low        0.06
## 7160             6 Medium        0.09
## 7210            18 Medium        0.09
## 7260             7 Medium        0.09
## 7310             7   High        0.10
## 7360            11    Low        0.05
## 7410            17    Low        0.06
## 7460            16    Low        0.06
## 7510            19    Low        0.05
## 7560             8   High        0.09
## 7610             4 Medium        0.08
## 7660             7    Low        0.07
## 7710            10   High        0.10
## 7760            19    Low        0.06
## 7810            17   High        0.09
## 7860             1    Low        0.06
## 7910             7   High        0.10
## 7960             9    Low        0.05
## 8010             9 Medium        0.09
## 8060             7 Medium        0.09
## 8110             3   High        0.10
## 8160             4    Low        0.06
## 8210            14   High        0.09
## 8260            14    Low        0.07
## 8310            17    Low        0.07
## 8360            20   High        0.10
## 8410            17 Medium        0.09
## 8460            19   High        0.10
## 8510            10   High        0.10
## 8560            12 Medium        0.09
## 8610            12   High        0.09
## 8660             8    Low        0.07
## 8710            19   High        0.09
## 8760             4 Medium        0.09
## 8810             3    Low        0.06
## 8860             3    Low        0.05
## 8910            10    Low        0.07
## 8960             3   High        0.09
## 9010            13   High        0.10
## 9060             7 Medium        0.09
## 9110            11   High        0.10
## 9160             4    Low        0.06
## 9210            10    Low        0.05
## 9260            10   High        0.10
## 9310             5   High        0.10
## 9360            18    Low        0.06
## 9410             2   High        0.10
## 9460             3 Medium        0.09
## 9510             3    Low        0.06
## 9560            14 Medium        0.08
## 9610            13    Low        0.06
## 9660            13   High        0.09
## 9710             7    Low        0.06
## 9760            20   High        0.10
## 9810            11   High        0.10
## 9860            10 Medium        0.08
## 9910             3 Medium        0.09
## 9960            14    Low        0.07
# Contoh mengumpulkan data penjualan Jeffry

library(DT)

penjual = "Jeffry"

for (x in penjual){
  print(subset(Data, subset=(Marketing_Name == x)))
}
##        Id Marketing_Name Work_Exp      City   Cluster Price Date_Sales
## 6       6         Jeffry      4.7     Depok  Alamanda  7856 2018-02-17
## 56     56         Jeffry      4.7 Tengerang   Alindra 12960 2018-01-20
## 106   106         Jeffry      4.7 Tengerang   Permata 13052 2018-11-06
## 156   156         Jeffry      4.7     Bogor Sweethome 10238 2018-08-05
## 206   206         Jeffry      4.7 Tengerang     Tiara  8553 2020-06-08
## 256   256         Jeffry      4.7   Jakarta     Asera 13589 2019-09-03
## 306   306         Jeffry      4.7     Depok Sweethome 12918 2018-04-21
## 356   356         Jeffry      4.7    Bekasi Teradamai 13269 2020-04-28
## 406   406         Jeffry      4.7    Bekasi  Victoria 10587 2020-01-19
## 456   456         Jeffry      4.7    Bekasi   Mutiara 14217 2018-04-22
## 506   506         Jeffry      4.7 Tengerang     Tiara  9274 2019-11-18
## 556   556         Jeffry      4.7     Depok    Winona  8095 2018-01-10
## 606   606         Jeffry      4.7   Jakarta   Mutiara 11740 2019-11-10
## 656   656         Jeffry      4.7    Bekasi Primadona 13816 2019-08-02
## 706   706         Jeffry      4.7     Bogor   Permata 13740 2019-03-27
## 756   756         Jeffry      4.7     Bogor     Arana  8104 2019-04-28
## 806   806         Jeffry      4.7   Jakarta  Alamanda 11770 2020-07-26
## 856   856         Jeffry      4.7     Bogor     Adara 12495 2018-10-16
## 906   906         Jeffry      4.7 Tengerang   Permata 12402 2018-05-15
## 956   956         Jeffry      4.7     Depok    Lavesh  9454 2018-09-05
## 1006 1006         Jeffry      4.7    Bekasi     Tiara 11718 2019-01-25
## 1056 1056         Jeffry      4.7   Jakarta      Neon 14104 2019-09-17
## 1106 1106         Jeffry      4.7     Depok   Alindra  7397 2018-02-03
## 1156 1156         Jeffry      4.7 Tengerang     Adara  9747 2019-12-27
## 1206 1206         Jeffry      4.7 Tengerang   Peronia 10847 2019-06-17
## 1256 1256         Jeffry      4.7     Depok Sweethome 10055 2019-12-23
## 1306 1306         Jeffry      4.7    Bekasi    Winona 11449 2019-07-07
## 1356 1356         Jeffry      4.7   Jakarta   Alindra 10516 2019-11-24
## 1406 1406         Jeffry      4.7   Jakarta     Adara  8956 2018-07-09
## 1456 1456         Jeffry      4.7     Depok   Permata 10168 2019-04-15
## 1506 1506         Jeffry      4.7 Tengerang     Tiara 13466 2019-04-04
## 1556 1556         Jeffry      4.7    Bekasi   Palmyra 13076 2019-04-30
## 1606 1606         Jeffry      4.7   Jakarta     Asera  8705 2019-08-16
## 1656 1656         Jeffry      4.7     Depok Primadona 12248 2018-06-12
## 1706 1706         Jeffry      4.7 Tengerang     Asoka 10750 2018-04-17
## 1756 1756         Jeffry      4.7     Depok Sweethome  9640 2020-01-20
## 1806 1806         Jeffry      4.7   Jakarta Teradamai  9593 2019-07-12
## 1856 1856         Jeffry      4.7 Tengerang   Peronia 12893 2019-12-08
## 1906 1906         Jeffry      4.7     Bogor   Palmyra  8614 2019-01-26
## 1956 1956         Jeffry      4.7   Jakarta   Permata 13894 2018-05-04
## 2006 2006         Jeffry      4.7    Bekasi    Lavesh 13540 2019-10-04
## 2056 2056         Jeffry      4.7   Jakarta   Mutiara  8097 2019-09-25
## 2106 2106         Jeffry      4.7     Depok     Tiara 13548 2018-09-19
## 2156 2156         Jeffry      4.7 Tengerang   Alindra 10106 2019-12-16
## 2206 2206         Jeffry      4.7   Jakarta  Alamanda 10359 2018-02-07
## 2256 2256         Jeffry      4.7     Depok  Victoria 12682 2020-09-06
## 2306 2306         Jeffry      4.7     Depok     Arana  9676 2019-12-04
## 2356 2356         Jeffry      4.7   Jakarta   Albasia  9455 2020-04-15
## 2406 2406         Jeffry      4.7     Bogor Teradamai 12724 2018-06-15
## 2456 2456         Jeffry      4.7   Jakarta    Lavesh 12479 2020-03-05
## 2506 2506         Jeffry      4.7 Tengerang     Adara 14439 2020-05-11
## 2556 2556         Jeffry      4.7    Bekasi   Permata  7227 2018-08-19
## 2606 2606         Jeffry      4.7    Bekasi  Alamanda 13070 2019-09-29
## 2656 2656         Jeffry      4.7     Bogor Sweethome  8366 2019-01-04
## 2706 2706         Jeffry      4.7    Bekasi    Lavesh  7388 2020-01-09
## 2756 2756         Jeffry      4.7    Bekasi Teradamai 11183 2018-04-07
## 2806 2806         Jeffry      4.7    Bekasi   Mutiara 10983 2019-06-19
## 2856 2856         Jeffry      4.7     Bogor Primadona 12133 2019-11-26
## 2906 2906         Jeffry      4.7 Tengerang    Narada  8779 2020-01-06
## 2956 2956         Jeffry      4.7     Bogor  Alamanda 13234 2018-10-05
## 3006 3006         Jeffry      4.7   Jakarta Teradamai 12579 2018-12-03
## 3056 3056         Jeffry      4.7 Tengerang      Neon  9745 2018-12-27
## 3106 3106         Jeffry      4.7    Bekasi  Alamanda 14293 2019-01-04
## 3156 3156         Jeffry      4.7     Bogor Teradamai  7751 2019-01-05
## 3206 3206         Jeffry      4.7 Tengerang      Neon 13012 2019-05-06
## 3256 3256         Jeffry      4.7 Tengerang    Narada  8555 2018-03-07
## 3306 3306         Jeffry      4.7    Bekasi  Alamanda 13324 2020-07-19
## 3356 3356         Jeffry      4.7    Bekasi    Winona 14760 2018-11-16
## 3406 3406         Jeffry      4.7    Bekasi Primadona  7515 2020-05-29
## 3456 3456         Jeffry      4.7   Jakarta     Asoka  8277 2019-02-01
## 3506 3506         Jeffry      4.7 Tengerang   Palmyra  8818 2019-08-18
## 3556 3556         Jeffry      4.7 Tengerang     Tiara 14636 2019-07-08
## 3606 3606         Jeffry      4.7     Depok     Adara 14665 2019-12-29
## 3656 3656         Jeffry      4.7   Jakarta Primadona  7110 2018-07-23
## 3706 3706         Jeffry      4.7    Bekasi     Adara 11376 2019-08-11
## 3756 3756         Jeffry      4.7    Bekasi      Neon 13560 2019-03-11
## 3806 3806         Jeffry      4.7     Bogor     Asoka 11773 2018-07-09
## 3856 3856         Jeffry      4.7     Depok   Palmyra 14764 2020-06-21
## 3906 3906         Jeffry      4.7     Depok     Tiara  8523 2019-06-29
## 3956 3956         Jeffry      4.7   Jakarta   Mutiara 14326 2019-05-07
## 4006 4006         Jeffry      4.7     Depok     Asoka 11348 2020-01-20
## 4056 4056         Jeffry      4.7     Bogor    Winona 13383 2018-09-21
## 4106 4106         Jeffry      4.7     Bogor Sweethome 13653 2020-04-13
## 4156 4156         Jeffry      4.7 Tengerang   Albasia 12536 2018-07-18
## 4206 4206         Jeffry      4.7   Jakarta   Albasia  9591 2018-01-10
## 4256 4256         Jeffry      4.7    Bekasi   Alindra  8844 2019-03-13
## 4306 4306         Jeffry      4.7    Bekasi    Lavesh  7793 2019-12-28
## 4356 4356         Jeffry      4.7     Depok Sweethome 11668 2020-05-08
## 4406 4406         Jeffry      4.7 Tengerang    Lavesh  8874 2020-03-11
## 4456 4456         Jeffry      4.7   Jakarta  Alamanda 14523 2019-03-28
## 4506 4506         Jeffry      4.7     Bogor Teradamai 14326 2020-03-05
## 4556 4556         Jeffry      4.7     Depok   Albasia 10314 2019-06-04
## 4606 4606         Jeffry      4.7     Bogor Teradamai 12509 2019-12-24
## 4656 4656         Jeffry      4.7 Tengerang Primadona  9597 2019-11-20
## 4706 4706         Jeffry      4.7 Tengerang   Permata 11012 2018-06-24
## 4756 4756         Jeffry      4.7   Jakarta     Arana 13527 2019-01-26
## 4806 4806         Jeffry      4.7   Jakarta     Asera  9108 2019-08-16
## 4856 4856         Jeffry      4.7   Jakarta Primadona  9911 2018-09-21
## 4906 4906         Jeffry      4.7    Bekasi     Arana  8222 2019-06-27
## 4956 4956         Jeffry      4.7     Depok   Albasia 14580 2019-10-23
## 5006 5006         Jeffry      4.7   Jakarta     Arana 12875 2018-06-16
## 5056 5056         Jeffry      4.7 Tengerang   Mutiara 10357 2019-02-06
## 5106 5106         Jeffry      4.7 Tengerang    Lavesh 13034 2018-06-02
## 5156 5156         Jeffry      4.7     Depok Teradamai 13814 2019-11-13
## 5206 5206         Jeffry      4.7     Depok Sweethome 11495 2018-04-10
## 5256 5256         Jeffry      4.7     Bogor      Neon 10621 2019-03-18
## 5306 5306         Jeffry      4.7 Tengerang      Neon 14132 2019-12-18
## 5356 5356         Jeffry      4.7    Bekasi    Lavesh 14417 2018-09-05
## 5406 5406         Jeffry      4.7     Bogor     Asoka 11941 2020-08-26
## 5456 5456         Jeffry      4.7    Bekasi   Peronia 14437 2018-07-05
## 5506 5506         Jeffry      4.7     Bogor     Asoka 10822 2020-01-18
## 5556 5556         Jeffry      4.7     Depok     Asera 10223 2018-09-18
## 5606 5606         Jeffry      4.7     Depok   Mutiara 11924 2019-10-22
## 5656 5656         Jeffry      4.7     Depok     Adara 13163 2020-07-25
## 5706 5706         Jeffry      4.7     Bogor   Alindra  9360 2019-03-03
## 5756 5756         Jeffry      4.7    Bekasi   Permata 11429 2018-08-10
## 5806 5806         Jeffry      4.7 Tengerang     Adara 14130 2019-07-15
## 5856 5856         Jeffry      4.7     Bogor     Tiara 10551 2020-06-08
## 5906 5906         Jeffry      4.7    Bekasi     Arana 13128 2019-05-07
## 5956 5956         Jeffry      4.7    Bekasi     Arana 12667 2019-08-11
## 6006 6006         Jeffry      4.7     Depok    Narada 13578 2018-01-14
## 6056 6056         Jeffry      4.7     Bogor   Mutiara  7363 2019-11-28
## 6106 6106         Jeffry      4.7     Depok   Albasia  7200 2019-12-14
## 6156 6156         Jeffry      4.7    Bekasi      Neon 11609 2019-06-01
## 6206 6206         Jeffry      4.7     Bogor   Palmyra 12108 2019-06-02
## 6256 6256         Jeffry      4.7    Bekasi Teradamai  7228 2019-12-20
## 6306 6306         Jeffry      4.7     Depok  Alamanda 10433 2018-12-28
## 6356 6356         Jeffry      4.7   Jakarta  Victoria 14514 2019-05-15
## 6406 6406         Jeffry      4.7   Jakarta     Asera 14956 2018-08-02
## 6456 6456         Jeffry      4.7    Bekasi     Tiara 14376 2020-09-18
## 6506 6506         Jeffry      4.7     Bogor     Tiara  9052 2018-01-29
## 6556 6556         Jeffry      4.7 Tengerang Sweethome  7488 2018-05-24
## 6606 6606         Jeffry      4.7     Depok Teradamai  7358 2019-01-19
## 6656 6656         Jeffry      4.7 Tengerang   Alindra  8056 2019-08-15
## 6706 6706         Jeffry      4.7   Jakarta    Narada  7449 2020-07-02
## 6756 6756         Jeffry      4.7     Bogor Teradamai 10044 2020-03-18
## 6806 6806         Jeffry      4.7    Bekasi Sweethome 11241 2020-08-05
## 6856 6856         Jeffry      4.7   Jakarta     Adara 12449 2019-08-08
## 6906 6906         Jeffry      4.7    Bekasi   Peronia  7244 2018-11-22
## 6956 6956         Jeffry      4.7   Jakarta    Lavesh 11169 2020-02-04
## 7006 7006         Jeffry      4.7     Depok  Victoria 12826 2020-06-14
## 7056 7056         Jeffry      4.7 Tengerang   Alindra 11604 2018-09-17
## 7106 7106         Jeffry      4.7 Tengerang    Narada 11800 2019-11-17
## 7156 7156         Jeffry      4.7     Bogor     Adara 10414 2018-06-28
## 7206 7206         Jeffry      4.7     Bogor     Tiara  7618 2020-04-09
## 7256 7256         Jeffry      4.7     Bogor  Alamanda 11830 2018-12-09
## 7306 7306         Jeffry      4.7 Tengerang   Permata 12145 2018-08-28
## 7356 7356         Jeffry      4.7     Bogor  Alamanda  8349 2018-11-15
## 7406 7406         Jeffry      4.7     Depok   Peronia 14714 2018-06-25
## 7456 7456         Jeffry      4.7   Jakarta Primadona 13763 2019-09-27
## 7506 7506         Jeffry      4.7   Jakarta   Palmyra  7771 2018-02-24
## 7556 7556         Jeffry      4.7     Bogor    Lavesh  7817 2020-07-15
## 7606 7606         Jeffry      4.7     Bogor     Asoka  7759 2019-01-08
## 7656 7656         Jeffry      4.7   Jakarta      Neon 13812 2019-08-01
## 7706 7706         Jeffry      4.7     Depok Teradamai 14727 2019-01-16
## 7756 7756         Jeffry      4.7   Jakarta     Adara 14396 2020-01-19
## 7806 7806         Jeffry      4.7   Jakarta  Victoria  7275 2019-01-13
## 7856 7856         Jeffry      4.7    Bekasi     Arana 11698 2018-12-14
## 7906 7906         Jeffry      4.7   Jakarta     Asoka 10012 2019-02-19
## 7956 7956         Jeffry      4.7 Tengerang Teradamai  8803 2020-07-18
## 8006 8006         Jeffry      4.7     Bogor     Asera  7212 2020-04-01
## 8056 8056         Jeffry      4.7    Bekasi Primadona  7911 2018-07-14
## 8106 8106         Jeffry      4.7     Depok    Winona 11325 2018-07-02
## 8156 8156         Jeffry      4.7   Jakarta   Mutiara 10797 2018-01-17
## 8206 8206         Jeffry      4.7     Bogor Teradamai  8887 2020-09-23
## 8256 8256         Jeffry      4.7     Depok   Palmyra 13998 2019-06-26
## 8306 8306         Jeffry      4.7     Bogor   Alindra 10856 2018-06-16
## 8356 8356         Jeffry      4.7    Bekasi    Lavesh 11962 2018-12-13
## 8406 8406         Jeffry      4.7     Depok   Mutiara 11578 2019-09-22
## 8456 8456         Jeffry      4.7     Bogor    Lavesh  7612 2019-04-23
## 8506 8506         Jeffry      4.7    Bekasi  Victoria 11769 2018-03-17
## 8556 8556         Jeffry      4.7    Bekasi  Alamanda 14512 2020-05-01
## 8606 8606         Jeffry      4.7    Bekasi  Alamanda 14323 2018-11-27
## 8656 8656         Jeffry      4.7 Tengerang     Asera 13543 2019-03-22
## 8706 8706         Jeffry      4.7    Bekasi    Winona 10802 2018-06-03
## 8756 8756         Jeffry      4.7     Depok      Neon 12754 2018-05-17
## 8806 8806         Jeffry      4.7     Depok   Mutiara  8091 2018-05-14
## 8856 8856         Jeffry      4.7 Tengerang Sweethome 11322 2019-06-09
## 8906 8906         Jeffry      4.7     Depok   Peronia 12487 2020-01-09
## 8956 8956         Jeffry      4.7 Tengerang Teradamai  7858 2019-07-26
## 9006 9006         Jeffry      4.7     Bogor   Mutiara 10753 2019-02-11
## 9056 9056         Jeffry      4.7    Bekasi Primadona  9193 2020-09-15
## 9106 9106         Jeffry      4.7 Tengerang    Winona  9555 2020-07-27
## 9156 9156         Jeffry      4.7     Depok     Asoka 12705 2019-10-24
## 9206 9206         Jeffry      4.7     Depok   Alindra  9667 2018-09-08
## 9256 9256         Jeffry      4.7 Tengerang     Asera 13717 2018-01-30
## 9306 9306         Jeffry      4.7     Depok    Lavesh 10608 2020-08-23
## 9356 9356         Jeffry      4.7    Bekasi    Narada 11169 2018-05-07
## 9406 9406         Jeffry      4.7 Tengerang      Neon 10003 2019-10-03
## 9456 9456         Jeffry      4.7   Jakarta     Arana 14217 2020-03-02
## 9506 9506         Jeffry      4.7 Tengerang      Neon 14062 2020-08-02
## 9556 9556         Jeffry      4.7     Depok   Peronia 10845 2020-07-16
## 9606 9606         Jeffry      4.7     Bogor     Asera 11142 2019-07-19
## 9656 9656         Jeffry      4.7    Bekasi   Permata 10720 2018-04-29
## 9706 9706         Jeffry      4.7     Depok     Asoka 10234 2018-02-26
## 9756 9756         Jeffry      4.7     Bogor   Peronia 14886 2020-03-13
## 9806 9806         Jeffry      4.7     Bogor  Alamanda 13385 2018-07-18
## 9856 9856         Jeffry      4.7   Jakarta Sweethome 11345 2019-11-02
## 9906 9906         Jeffry      4.7     Depok   Mutiara 14814 2018-10-12
## 9956 9956         Jeffry      4.7   Jakarta Teradamai 11948 2018-05-07
##      Advertisement  Class Booking_Fee
## 6                3    Low        0.05
## 56               9   High        0.09
## 106              2   High        0.10
## 156              9 Medium        0.08
## 206              9    Low        0.06
## 256             16   High        0.10
## 306             13   High        0.09
## 356              8   High        0.10
## 406              7 Medium        0.08
## 456              2   High        0.10
## 506              1    Low        0.07
## 556             18    Low        0.06
## 606             16 Medium        0.09
## 656              1   High        0.10
## 706             16   High        0.10
## 756              8    Low        0.06
## 806              2 Medium        0.09
## 856              5   High        0.09
## 906              4   High        0.09
## 956              9    Low        0.07
## 1006             8 Medium        0.09
## 1056             3   High        0.10
## 1106             8    Low        0.05
## 1156            11    Low        0.07
## 1206            14 Medium        0.08
## 1256             4 Medium        0.08
## 1306            18 Medium        0.09
## 1356            12 Medium        0.08
## 1406             5    Low        0.06
## 1456             9 Medium        0.08
## 1506             1   High        0.10
## 1556            16   High        0.10
## 1606            20    Low        0.06
## 1656            11   High        0.09
## 1706             7 Medium        0.08
## 1756            19    Low        0.07
## 1806            12    Low        0.07
## 1856             8   High        0.09
## 1906            19    Low        0.06
## 1956             3   High        0.10
## 2006             8   High        0.10
## 2056            10    Low        0.06
## 2106            18   High        0.10
## 2156             8 Medium        0.08
## 2206             9 Medium        0.08
## 2256            10   High        0.09
## 2306             2    Low        0.07
## 2356            11    Low        0.07
## 2406             2   High        0.09
## 2456             8   High        0.09
## 2506            12   High        0.10
## 2556            17    Low        0.05
## 2606            12   High        0.10
## 2656            16    Low        0.06
## 2706            11    Low        0.05
## 2756            10 Medium        0.09
## 2806            14 Medium        0.08
## 2856             4   High        0.09
## 2906             6    Low        0.06
## 2956            19   High        0.10
## 3006            12   High        0.09
## 3056             5    Low        0.07
## 3106             5   High        0.10
## 3156             9    Low        0.05
## 3206            20   High        0.10
## 3256             6    Low        0.06
## 3306            17   High        0.10
## 3356            13   High        0.10
## 3406             1    Low        0.05
## 3456            12    Low        0.06
## 3506            14    Low        0.06
## 3556             2   High        0.10
## 3606            17   High        0.10
## 3656             3    Low        0.05
## 3706             6 Medium        0.09
## 3756            10   High        0.10
## 3806            19 Medium        0.09
## 3856             9   High        0.10
## 3906             1    Low        0.06
## 3956             5   High        0.10
## 4006            10 Medium        0.09
## 4056             4   High        0.10
## 4106             3   High        0.10
## 4156            16   High        0.09
## 4206             1    Low        0.07
## 4256            19    Low        0.06
## 4306             2    Low        0.05
## 4356             9 Medium        0.09
## 4406             5    Low        0.06
## 4456            19   High        0.10
## 4506            12   High        0.10
## 4556             7 Medium        0.08
## 4606            13   High        0.09
## 4656            14    Low        0.07
## 4706            17 Medium        0.09
## 4756            13   High        0.10
## 4806             7    Low        0.07
## 4856             8    Low        0.07
## 4906             9    Low        0.06
## 4956            11   High        0.10
## 5006            19   High        0.09
## 5056             4 Medium        0.08
## 5106            19   High        0.10
## 5156             3   High        0.10
## 5206             9 Medium        0.09
## 5256             9 Medium        0.08
## 5306             6   High        0.10
## 5356             3   High        0.10
## 5406             5 Medium        0.09
## 5456             5   High        0.10
## 5506            19 Medium        0.08
## 5556            15 Medium        0.08
## 5606            18 Medium        0.09
## 5656            14   High        0.10
## 5706             2    Low        0.07
## 5756            13 Medium        0.09
## 5806            10   High        0.10
## 5856            13 Medium        0.08
## 5906            19   High        0.10
## 5956            10   High        0.09
## 6006             6   High        0.10
## 6056            11    Low        0.05
## 6106             6    Low        0.05
## 6156            20 Medium        0.09
## 6206             5   High        0.09
## 6256            19    Low        0.05
## 6306            17 Medium        0.08
## 6356             8   High        0.10
## 6406             7   High        0.10
## 6456             1   High        0.10
## 6506            16    Low        0.07
## 6556             6    Low        0.05
## 6606             1    Low        0.05
## 6656            14    Low        0.06
## 6706             2    Low        0.05
## 6756            16 Medium        0.08
## 6806             8 Medium        0.09
## 6856             9   High        0.09
## 6906            10    Low        0.05
## 6956            14 Medium        0.09
## 7006            13   High        0.09
## 7056             8 Medium        0.09
## 7106            15 Medium        0.09
## 7156            19 Medium        0.08
## 7206            13    Low        0.05
## 7256            10 Medium        0.09
## 7306            10   High        0.09
## 7356            14    Low        0.06
## 7406            17   High        0.10
## 7456            10   High        0.10
## 7506            17    Low        0.05
## 7556            19    Low        0.05
## 7606            11    Low        0.05
## 7656            14   High        0.10
## 7706             2   High        0.10
## 7756            16   High        0.10
## 7806             4    Low        0.05
## 7856            16 Medium        0.09
## 7906            20 Medium        0.08
## 7956            17    Low        0.06
## 8006             7    Low        0.05
## 8056            20    Low        0.05
## 8106            10 Medium        0.09
## 8156            18 Medium        0.08
## 8206            15    Low        0.06
## 8256             3   High        0.10
## 8306             2 Medium        0.08
## 8356            18 Medium        0.09
## 8406             5 Medium        0.09
## 8456            13    Low        0.05
## 8506            15 Medium        0.09
## 8556             7   High        0.10
## 8606            13   High        0.10
## 8656            14   High        0.10
## 8706            10 Medium        0.08
## 8756            20   High        0.09
## 8806             7    Low        0.06
## 8856             9 Medium        0.09
## 8906             9   High        0.09
## 8956            11    Low        0.05
## 9006             8 Medium        0.08
## 9056            14    Low        0.07
## 9106             9    Low        0.07
## 9156             1   High        0.09
## 9206             9    Low        0.07
## 9256            19   High        0.10
## 9306            15 Medium        0.08
## 9356            11 Medium        0.09
## 9406             9 Medium        0.08
## 9456            12   High        0.10
## 9506             7   High        0.10
## 9556             3 Medium        0.08
## 9606             1 Medium        0.09
## 9656             6 Medium        0.08
## 9706             7 Medium        0.08
## 9756            13   High        0.10
## 9806            16   High        0.10
## 9856            15 Medium        0.09
## 9906             4   High        0.10
## 9956             5 Medium        0.09

Soal 4

Jika Anda akan mendapatkan bonus 2% dari Booking fee per unit sebagai pemasaran dan juga mendapatkan bonus tambahan 1% jika Anda telah bekerja di perusahaan ini selama lebih dari 3 tahun. Silakan hitung total bonus dengan menggunakan pernyataan if, for, dan break.

R

penjual= "Lala"

r <- subset(Data, subset=(Marketing_Name == penjual))

p= ifelse((r$Work_Exp <3 ),
          (r$Price * r$Booking_Fee) *(2/100),
          (r$Price * r$Booking_Fee) *(3/100))

r$Bonus =p
r
Bonus = sum(r$Bonus)
Bonus
## [1] 5404.431

Soal 5

Pada bagian ini, Anda diharapkan dapa membuat fungsi yang dapat menjawab setiap penyataan dibawah ini dengan melibatkan setiap fungsi kontrol yang dipelajari pada pertemuan 7.

  • Siapa nama marketing pemasaran terbaik?
  • Kota dan Cluster mana yang paling menguntungkan?
  • Hitung total biaya iklan Anda, jika Anda harus membayarnya $4 setiap kali iklan.
  • Hitung rata-rata biaya iklan untuk setiap marketing di Perusahaan tersebut.
  • Hitung Total Pendapatan (dalam Bulanan)

R

sales = c("Angel","Sherly","Vanessa","Irene","Julian",
           "Jeffry","Nikita","Kefas","Siana","Lala",
           "Fallen","Ardifo","Kevin","Juen","Jerrel",
           "Imelda","Widi","Theodora","Elvani","Jonathan",
          "Sofia","Abraham","Siti","Niko","Sefli",
            "Bene", "Diana", "Pupe", "Andi", "Tatha",
          "Endri", "Monika", "Hans", "Debora","Hanifa",
            "James", "Jihan", "Friska","Ardiwan", "Bakti",
            "Anthon","Amry", "Wiwik", "Bastian", "Budi",
            "Leo","Simon","Matius","Arry", "Eliando")

Angel = subset(Data, subset=(Marketing_Name == "Angel"))
Sherly = subset(Data, subset=(Marketing_Name == "Sherly"))
Vanessa = subset(Data, subset=(Marketing_Name == "Vanessa"))
Irene = subset(Data, subset=(Marketing_Name == "Irene"))
Julian = subset(Data, subset=(Marketing_Name == "Julian"))
Jeffry = subset(Data, subset=(Marketing_Name == "Jeffry"))
Nikita = subset(Data, subset=(Marketing_Name == "Nikita"))
Kefas = subset(Data, subset=(Marketing_Name == "Kefas"))
Siana = subset(Data, subset=(Marketing_Name == "Siana"))
Lala = subset(Data, subset=(Marketing_Name == "Lala"))
Fallen = subset(Data, subset=(Marketing_Name == "Fallen"))
Ardifo = subset(Data, subset=(Marketing_Name == "Ardifo"))
Kevin = subset(Data, subset=(Marketing_Name == "Kevin"))
Juen = subset(Data, subset=(Marketing_Name == "Juen"))
Jerrel = subset(Data, subset=(Marketing_Name == "Jurrel"))
Imelda = subset(Data, subset=(Marketing_Name == "Imelda"))
Widi = subset(Data, subset=(Marketing_Name == "Widi"))
Theodora = subset(Data, subset=(Marketing_Name == "Theodora"))
Elvani = subset(Data, subset=(Marketing_Name == "Elvani"))
Jonathan = subset(Data, subset=(Marketing_Name == "Jonathan"))
Sofia = subset(Data, subset=(Marketing_Name == "Sofial"))
Abraham = subset(Data, subset=(Marketing_Name == "Abraham"))
Siti = subset(Data, subset=(Marketing_Name == "Siti"))
Niko = subset(Data, subset=(Marketing_Name == "Niko"))
Sefli = subset(Data, subset=(Marketing_Name == "Sefli"))
Bene = subset(Data, subset=(Marketing_Name == "Bene"))
Diana = subset(Data, subset=(Marketing_Name == "Diana"))
Pupe = subset(Data, subset=(Marketing_Name == "Pupe"))
Andi = subset(Data, subset=(Marketing_Name == "Andi"))
Tatha = subset(Data, subset=(Marketing_Name == "Tatha"))
Endri = subset(Data, subset=(Marketing_Name == "Endri"))
Monika = subset(Data, subset=(Marketing_Name == "Monika"))
Hans = subset(Data, subset=(Marketing_Name == "Hans"))
Debora = subset(Data, subset=(Marketing_Name == "Debora"))
Hanifa = subset(Data, subset=(Marketing_Name == "hanifa"))
James = subset(Data, subset=(Marketing_Name == "James"))
Jihan = subset(Data, subset=(Marketing_Name == "Jihan"))
Friska = subset(Data, subset=(Marketing_Name == "Friska"))
Ardiwan = subset(Data, subset=(Marketing_Name == "Ardiwan"))
Bakti = subset(Data, subset=(Marketing_Name == "Bakti"))
Anthon = subset(Data, subset=(Marketing_Name == "Anthon"))
Amry = subset(Data, subset=(Marketing_Name == "Amry"))
Wiwik = subset(Data, subset=(Marketing_Name == "Wiwik"))
Bastian = subset(Data, subset=(Marketing_Name == "Bastian"))
Budi = subset(Data, subset=(Marketing_Name == "Budi"))
Leo = subset(Data, subset=(Marketing_Name == "Leo"))
Simon = subset(Data, subset=(Marketing_Name == "Simon"))
Matius = subset(Data, subset=(Marketing_Name == "Matius"))
Arry = subset(Data, subset=(Marketing_Name == "Arry"))
Eliando = subset(Data, subset=(Marketing_Name == "Eliando"))

total = 
  c(sum(Angel$Price),sum(Sherly$Price),sum(Vanessa$Price),sum(Irene$Price),
    sum(Julian$Price),sum(Jeffry$Price),sum(Nikita$Price),sum(Kefas$Price),sum(Siana$Price),
    sum(Lala$Price),sum(Fallen$Price),sum(Ardifo$Price),sum(Kevin$Price),sum(Juen$Price),
    sum(Jerrel$Price),sum(Imelda$Price),sum(Widi$Price),sum(Theodora$Price),sum(Elvani$Price),
    sum(Jonathan$Price),sum(Sofia$Price),sum(Abraham$Price),sum(Siti$Price),sum(Niko$Price),
    sum(Sefli$Price),sum(Bene$Price),sum(Diana$Price),sum(Pupe$Price),sum(Andi$Price),
    sum(Tatha$Price),sum(Endri$Price),sum(Monika$Price),sum(Hans$Price),sum(Debora$Price),
    sum(Hanifa),sum(James$Price),sum(Jihan$Price),sum(Friska$Price),sum(Ardiwan$Price),
    sum(Bakti$Price),sum(Anthon$Price),sum(Amry$Price),sum(Wiwik$Price),sum(Bastian$Price),
    sum(Budi$Price),sum(Leo$Price),sum(Simon$Price),sum(Matius$Price),sum(Arry$Price),
    sum(Eliando$Price))

marketing = data.frame(sales,total)

marketing
# Siapa nama marketing pemasaran terbaik?

terbaik = which.max(marketing$total)
paling_terbaik = marketing[terbaik,]

paling_terbaik
city = c("Jakarta","Bogor","Tangerang","Depok","Bekasi")

Jakarta = subset(Data, subset=(City == "Jakarta"))
Bogor = subset(Data, subset=(City == "Bogor"))
Tangerang = subset(Data, subset=(City == "Tangerang"))
Depok = subset(Data, subset=(City == "Depok"))
Bekasi = subset(Data, subset=(City == "Bekasi"))

rata_city = c(sum(Jakarta$Price)/length(Jakarta$Id),sum(Bogor$Price)/length(Bogor$Id),
              sum(Tangerang$Price)/length(Tangerang$Id),sum(Depok$Price)/length(Depok$Id),
              sum(Bekasi$Price)/length(Bekasi$Id))

kota= data.frame(city,rata_city)
kota
# Kota dan Cluster mana yang paling menguntungkan?

menguntungkan = which.max(kota$rata_city)
kota_menguntungkan = kota[menguntungkan,]
kota_menguntungkan
cluster = c("Victoria","Palmyra","Winona","Tiara", "Narada",
            "Peronia","Lavesh","Alindra","Sweethome", "Asera",
            "Teradamai","Albasia", "Adara","Neon","Arana",
            "Asoka", "Primadona", "Mutiara","Permata","Alamanda")

Victoria = subset(Data, subset=(Marketing_Name == "Victoria"))
Palmyra = subset(Data, subset=(Marketing_Name == "Palmyra"))
Winona = subset(Data, subset=(Marketing_Name == "Winora"))
Tiara = subset(Data, subset=(Marketing_Name == "Tiara"))
Narada = subset(Data, subset=(Marketing_Name == "Narada"))
Peronia = subset(Data, subset=(Marketing_Name == "Peronia"))
Lavesh = subset(Data, subset=(Marketing_Name == "Lavesh"))
Alinda = subset(Data, subset=(Marketing_Name == "Alinda"))
Sweethome = subset(Data, subset=(Marketing_Name == "Sweethome"))
Asera = subset(Data, subset=(Marketing_Name == "Asera"))
Teradamai = subset(Data, subset=(Marketing_Name == "Terdamai"))
Albastia = subset(Data, subset=(Marketing_Name == "Albastia"))
Adara = subset(Data, subset=(Marketing_Name == "Adara"))
Neon = subset(Data, subset=(Marketing_Name == "Neon"))
Arana = subset(Data, subset=(Marketing_Name == "Arana"))
Asoka = subset(Data, subset=(Marketing_Name == "Asoka"))
Primadona = subset(Data, subset=(Marketing_Name == "Primadona"))
Mutiara = subset(Data, subset=(Marketing_Name == "Mutiara"))
Permata = subset(Data, subset=(Marketing_Name == "Permata"))
Alamanda = subset(Data, subset=(Marketing_Name == "Alamanda"))

rata = c(sum(Victoria$Price) / length(Victoria$Id),sum(Palmyra$Price) / length(Palmyra$Id),
         sum(Winona$Price)/length(Winona$Id),sum(Tiara$Price)/length(Tiara$Id),
         sum(Narada$Price)/length(Narada$Id),sum(Peronia$Price)/length(Peronia$Id),
         sum(Lavesh$Price)/length(Lavesh$Id),sum(Alinda$Price)/length(Alinda$Id),
         sum(Sweethome$Price)/length(Sweethome$Id),sum(Asera$Price)/length(Asera$Id),
         sum(Teradamai$Price)/length(Teradamai$Id),sum(Albastia$Price)/length(Albastia$Id),
         sum(Adara$Price)/length(Adara$Id),sum(Neon$Price)/length(Neon$Id),
         sum(Arana$Price)/length(Arana$Id),sum(Asoka$Price)/length(Asoka$Id),
         sum(Primadona$Price)/length(Primadona$Id),sum(Mutiara$Price)/length(Mutiara$Id),
         sum(Permata$Price)/length(Permata$Id),sum(Alamanda$Price)/length(Alamanda$Id)
         )

clus_ter = data.frame(cluster,rata)

cluster_terbaik = clus_ter[which.max(clus_ter$rata),]
# biaya iklan
sales="Lala"

table_sales = subset(Data, subset = (Marketing_Name == sales))

iklan = (table_sales$Advertisement * 4)

total_iklan = print(sum(iklan))
## [1] 8156

Kasus 2

Misalkan Anda memiliki proyek riset pasar untuk mempertahankan beberapa pelanggan potensial di perusahaan Anda. Mari kita asumsikan Anda bekerja di perusahaan asuransi ABC. Untuk melakukannya, Anda ingin mengumpulkan kumpulan data berikut:

  • Marital_Status : menetapkan status perkawinan acak (“Ya”, “Tidak”)
  • Address : berikan alamat acak (JABODETABEK)
  • Work_Location : menetapkan lokasi kerja secara acak (JABODETABEK)
  • Age : menetapkan urutan angka acak (dari 19 hingga 60)
  • Academic : menetapkan tingkat akademik acak (“J.School”, “H.School”, “Sarjana”, “Magister”, “Phd”)
  • Job : 10 pekerjaan acak untuk setiap tingkat akademik
  • Grade : 5 nilai acak untuk setiap Pekerjaan
  • Income : tetapkan pendapatan yang mungkin untuk setiap Pekerjaan
  • Spending : tetapkan kemungkinan pengeluaran untuk setiap Pekerjaan
  • Number_of_children: menetapkan nomor acak di antara 0 dan 10 (sesuai dengan status perkawinan)
  • Private_vehicle : menetapkan kemungkinan kendaraan pribadi untuk setiap orang (“Mobil”, “sepeda motor”, “Umum”)
  • Home : “Sewa”, “Milik”, “Kredit”

Soal 1

Tolong berikan saya kumpulan data tentang informasi 50000 pelanggan yang mengacu pada setiap variabel di atas!

R

ID                  <- (1:50000)
Marital_Status      <- sample(c("Yes","No"), 50000, replace= T)
Address             <- sample(c("Jakarta","Bogor","Depok","Tengerang","Bekasi"),50000, replace = T)
Work_Location       <- sample(c("Jakarta","Bogor","Depok","Tengerang","Bekasi"),50000, replace = T)
Age                 <- sample(c(19:60),50000, replace = T)
Academic            <- sample(c("J.School","H.School","Sarjana","Magister","Phd"),50000, replace = T)
Grade               = sample(c("A","B","C","D","E"),50000, replace = T)
Private_vehicle     = sample(c("Mobil", "Sepeda motor", "Umum"),50000, replace = T)
Home                = sample(c("Sewa", "Milik", "Kredit"),50000, replace = T)

Case <- data.frame(Id,
                   Marital_Status,
                   Address,
                   Work_Location,
                   Age,
                   Academic,
                   Grade,
                   Private_vehicle,
                   Home)
Case
Kuliah =c("Wirausaha","Guru","Programmer","Dokter","Chef","Polisi","Lawyer","Aktuaris")
Job = ifelse(Academic == "J.School","Student",
      ifelse(Academic == "H.School","Student",
             sample(Kuliah, replace = T)))

Case <- data.frame(Id,
                   Marital_Status,
                   Address,
                   Work_Location,
                   Age,
                   Academic,
                   Grade,
                   Private_vehicle,
                   Home,
                   Job)

Income = ifelse(Case$Job == "Wirausaha", 20000:25000,
         ifelse(Case$Job == "Guru", 5000,
         ifelse(Case$Job == "Programer", 15000,
         ifelse(Case$Job == "Dokter", 20000,
         ifelse(Case$Job == "Chef", 9000,
         ifelse(Case$Job == "Polisi", 14000,
         ifelse(Case$Job == "Lawyer", 16000,
         ifelse(Case$Job == "Aktuaris", 19000,5000
))))))))

Spending = ifelse(Case$Job == "Wirausaha", 10000,
         ifelse(Case$Job == "Guru", 3000,
         ifelse(Case$Job == "Programer", 10000,
         ifelse(Case$Job == "Dokter", 10000,
         ifelse(Case$Job == "Chef", 5000,
         ifelse(Case$Job == "Polisi", 4000,
         ifelse(Case$Job == "Lawyer", 6000,
         ifelse(Case$Job == "Aktuaris", 9000,1000
))))))))

Case$Income = Income
Case$Spending = Spending

Number_of_children = ifelse(Case$Marital_Status == "Yes", sample(c(0:10),50000,replace= T),0)
Case$Number_of_children = Number_of_children

Case

Soal 2

Ringkasan Statistik penting seperti apa yang bisa Anda dapatkan dari kumpulan data Anda?

CaseNumber = function(x)
{ min = min(x)
  max = max(x)
  median = x[median.default(x)]
  modus = x[which.max(x)]
  rata = round(sum(x)/length(x), digits=2)
  varians = sum((x-rata)^2) / (length(x)-1)
  sd = sqrt(sum((x-rata)^2) / (length(x)-1))
                
  return(cat(c("Minimum :", min,"\n",
                "Maksimum :", max,"\n",
                "Median :", median,"\n",
                "Modus :", modus,"\n",
                "rata :", rata,"\n",
                "varians :", varians,"\n",
                "Standard Deviasi :", sd,"\n"
  )))
}
# summary
CaseNumber(Case$Age)
## Minimum : 19 
##  Maksimum : 60 
##  Median : 47 
##  Modus : 60 
##  rata : 39.47 
##  varians : 147.333075061501 
##  Standard Deviasi : 12.138083665122
CaseNumber(Case$Income)
## Minimum : 5000 
##  Maksimum : 25000 
##  Median : 5000 
##  Modus : 25000 
##  rata : 10104.7 
##  varians : 52965396.300606 
##  Standard Deviasi : 7277.7329094029
CaseNumber(Case$Spending)
## Minimum : 1000 
##  Maksimum : 10000 
##  Median : 5000 
##  Modus : 10000 
##  rata : 4379.98 
##  varians : 13722029.6401928 
##  Standard Deviasi : 3704.32580103219
CaseNumber(Case$Number_of_children)
## Minimum : 0 
##  Maksimum : 10 
##  Median : 
##  Modus : 10 
##  rata : 2.54 
##  varians : 11.332607452149 
##  Standard Deviasi : 3.36639383497372
typeof(Case$Marital_Status)
## [1] "character"
typeof(Case$Address)
## [1] "character"
typeof(Case$Work_Location)
## [1] "character"
typeof(Case$Grade)
## [1] "character"
typeof(Case$Private_vehicle)
## [1] "character"
typeof(Case$Home)
## [1] "character"
typeof(Case$Academic)
## [1] "character"
typeof(Case$Job)
## [1] "character"

Soal 3

Menurut perhitungan dan analisis Anda, pelanggan mana yang potensial untuk Anda pertahankan?

R

yes = subset(Case, subset=(Marital_Status == "Yes"))
no  = subset(Case, subset=(Marital_Status == "No"))

a = subset(Case, subset=(Grade == "A"))
b = subset(Case, subset=(Grade == "B"))
c = subset(Case, subset=(Grade == "C"))
d = subset(Case, subset=(Grade == "D"))
e = subset(Case, subset=(Grade == "E"))

aJa =subset(Case, subset=(Address == "Jakarta"))
aBo =subset(Case, subset=(Address == "Bogor"))
aDe =subset(Case, subset=(Address == "Depok"))
aTg =subset(Case, subset=(Address == "tangerang"))
aBe =subset(Case, subset=(Address == "Bekasi"))

kJa =subset(Case, subset=(Work_Location == "Jakarta"))
kBo =subset(Case, subset=(Work_Location == "Bogor"))
kDe =subset(Case, subset=(Work_Location == "Depok"))
kTg =subset(Case, subset=(Work_Location == "Tangerang"))
kBe =subset(Case, subset=(Work_Location == "Bekasi"))

J =subset(Case, subset=(Academic == "J.School"))
H =subset(Case, subset=(Academic == "H.School"))
S =subset(Case, subset=(Academic == "Sarjana"))
M =subset(Case, subset=(Academic == "Magister"))
P =subset(Case, subset=(Academic == "Phd"))

mobil = subset(Case, subset=(Private_vehicle == "Mobil"))
motor = subset(Case, subset=(Private_vehicle == "Sepeda motor"))
umum = subset(Case, subset=(Private_vehicle == "Umum"))

sewa = subset(Case, subset=(Home == "Sewa"))
milik = subset(Case, subset=(Home == "Milik"))
kredit = subset(Case, subset=(Home == "Kredit"))

wirausaha = subset(Case, subset=(Job == "Wirausaha"))
guru = subset(Case, subset=(Job == "Guru"))
programer = subset(Case, subset=(Job == "Programer"))
dokter = subset(Case, subset=(Job == "Dokter"))
chef = subset(Case, subset=(Job == "Chef"))
polisi = subset(Case, subset=(Job == "Polisi"))
lawyer = subset(Case, subset=(Job == "Lawyer"))
aktuaris = subset(Case, subset=(Job == "Aktuaris"))
Case_Word = function(x){
  mertial = function(x,y){
        if(x>y){
          print("Yes")}
        else{print("No")} }
marrige = mertial(length(yes$No), length(no$No))

alamat=
  function(a,b,c,d,e){
    if(a > max(c(b,c,d,e))){
      print("Jakarta")}
    else if(b > max(c(a,c,d,e))){ 
      print("Bogor")}
    else if(c > max(c(a,b,d,e))){ 
      print("Depok")}
    else if(c > max(c(a,b,c,e))){ 
      print("Tangerang")}
    else{print("Bekasi")}
  }
address = alamat(length(aJa$No), length(aBo$No), length(aDe$No), length(aTg$No), length(aBe$No))

Kerja=
  function(a,b,c,d,e){
    if(a > max(c(b,c,d,e))){
      print("Jakarta")}
    else if(b > max(c(a,c,d,e))){ 
      print("Bogor")}
    else if(c > max(c(a,b,d,e))){ 
      print("Depok")}
    else if(c > max(c(a,b,c,e))){ 
      print("Tangerang")}
    else{print("Bekasi")}
  }
work = Kerja(length(kJa$No), length(kBo$No), length(kDe$No), length(kTg$No), length(kBe$No))

akademis=
  function(a,b,c,d,e){
    if(a > max(c(b,c,d,e))){
      print("J.School")}
    else if(b > max(c(a,c,d,e))){ 
      print("H.School")}
    else if(c > max(c(a,b,d,e))){ 
      print("Sarjana")}
    else if(c > max(c(a,b,c,e))){ 
      print("Magister")}
    else{print("Phd")}
  }
academic = akademis(length(J$No), length(H$No), length(S$No), length(M$No), length(P$No))

nilai=
  function(a,b,c,d,e){
    if(a > max(c(b,c,d,e))){
      print("A")}
    else if(b > max(c(a,c,d,e))){ 
      print("B")}
    else if(c > max(c(a,b,d,e))){ 
      print("C")}
    else if(c > max(c(a,b,c,e))){ 
      print("D")}
    else{print("E")}
  }
ga = length(a$Address)
gb = length(b$No)
gc = length(c$No)
gd = length(d$No)
ge = length(e$No)
grade = nilai(ga,gb,gc,gd,ge)

vehicle=
  function(a,b,c){ 
    if(a > max(c(b,c))){ 
      print("mobil")}
    else if(b > max(c(a,c))){ 
      print("motor")}
    else{print("umum")}}
kendaraan = vehicle(length(mobil$No), length(motor$No), length(umum$No))

rumah=
  function(a,b,c){ 
    if(a > max(c(b,c))){ 
      print("sewa")}
    else if(b > max(c(a,c))){ 
      print("milik")}
    else{print("kredit")}}
home = rumah(length(sewa$No), length(milik$No), length(kredit$No))

pekerjaan = function(a,b,c,d,e,f,g,h){ 
  if(a > max(c(b,c,d,e,f,g,h,i))){ 
    print("wirausaha")}
  else if(a > max(c(a,c,d,e,f,g,h))){ 
    print("guru")}
  else if(a > max(c(a,b,d,e,f,g,h))){ 
    print("programer")}
  else if(a > max(c(a,b,c,e,f,g,h))){ 
    print("dokter")}
  else if(a > max(c(a,b,c,d,f,g,h))){ 
    print("chef")}
  else if(a > max(c(a,b,c,d,e,g,h))){ 
    print("polisi")}
  else if(a > max(c(a,b,c,d,e,f,h))){ 
    print("lawyer")}
  else{print("aktuaris")}}
 job = pekerjaan(length(wirausaha$No), length(guru$No), length(programer$No),
                length(dokter$No), length(chef$No), length(polisi$No),
                length(lawyer$No), length(aktuaris$No))
 
 return(cat(c("marrige", marrige,"\n",
              "alamat", address,"\n",
              "kerja", work,"\n",
              "akademis", academic,"\n",
              "grade", grade,"\n",
              "kendaraan", kendaraan,"\n",
              "home", home,"\n",
              "pekerjaan", job
              )))
}
CaseNumber(Case$Age)
## Minimum : 19 
##  Maksimum : 60 
##  Median : 47 
##  Modus : 60 
##  rata : 39.47 
##  varians : 147.333075061501 
##  Standard Deviasi : 12.138083665122
CaseNumber(Case$Income)
## Minimum : 5000 
##  Maksimum : 25000 
##  Median : 5000 
##  Modus : 25000 
##  rata : 10104.7 
##  varians : 52965396.300606 
##  Standard Deviasi : 7277.7329094029
CaseNumber(Case$Spending)
## Minimum : 1000 
##  Maksimum : 10000 
##  Median : 5000 
##  Modus : 10000 
##  rata : 4379.98 
##  varians : 13722029.6401928 
##  Standard Deviasi : 3704.32580103219
CaseNumber(Case$Number_of_children)
## Minimum : 0 
##  Maksimum : 10 
##  Median : 
##  Modus : 10 
##  rata : 2.54 
##  varians : 11.332607452149 
##  Standard Deviasi : 3.36639383497372
LS0tDQp0aXRsZTogIkFsZ29yaXRtYSAmIFN0cnVrdHVyIERhdGEiDQpzdWJ0aXRsZTogIn4gVWppYW4gVGVuZ2FoIFNlbWVzdGVyIH4iDQphdXRob3I6ICJCYWt0aSBTaXJlZ2FyLCBTLlNpLiwgTS5TYyINCmRhdGU6ICAiYHIgZm9ybWF0KFN5cy5EYXRlKCksICclQiAlZCwgJVknKWAiDQpvdXRwdXQ6DQogIHJtZGZvcm1hdHM6OnJvYm9ib29rOiAgICMgaHR0cHM6Ly9naXRodWIuY29tL2p1YmEvcm1kZm9ybWF0cw0KICAgIHNlbGZfY29udGFpbmVkOiB0cnVlDQogICAgdGh1bWJuYWlsczogdHJ1ZQ0KICAgIGxpZ2h0Ym94OiB0cnVlDQogICAgZ2FsbGVyeTogdHJ1ZQ0KICAgIGxpYl9kaXI6IGxpYnMNCiAgICBkZl9wcmludDogInBhZ2VkIg0KICAgIGNvZGVfZm9sZGluZzogInNob3ciDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgY3NzOiAic3R5bGUuY3NzIg0KDQotLS0NCjxicj4NCg0KPGltZyBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyBtYXJnaW46IC01MHB4IDUwcHggMHB4IDUwcHg7IHdpZHRoOjMwJSIgc3JjPSJmb3RvLnBuZyIvPiANCg0KfA0KOi0tLS0gfDotLS0tDQoqKktvbnRhayoqfCAqKjogJFxkb3duYXJyb3ckKioNCkVtYWlsfCBkc2NpZW5jZWxhYnNAb3V0bG9vay5jb20NCkluc3RhZ3JhbSB8IGh0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20vY3Zub3BwXy8gDQpSUHVicyAgfCBodHRwczovL3JwdWJzLmNvbS9jYWx2aW5yaXN3YW5keS8gDQoNCioqKg0KDQojIEthc3VzIDEgDQoNCkFzdW1zaWthbiBBbmRhIHRlbGFoIG1lbmd1bXB1bGthbiBiZWJlcmFwYSBrdW1wdWxhbiBkYXRhIGRhcmkgcGVydXNhaGFhbiBgQUJDIFByb3BlcnR5YCBzZXBlcnRpIHlhbmcgZGFwYXQga2l0YSBsaWhhdCBwYWRhIHRhYmVsIGJlcmlrdXQ6IA0KDQpgYGB7ciwgbWVzc2FnZT1GfQ0KSWQgICAgICAgICAgICAgPC0gKDE6MTAwMDApDQpNYXJrZXRpbmdfTmFtZSA8LSByZXAoYygiQW5nZWwiLCJTaGVybHkiLCJWYW5lc3NhIiwiSXJlbmUiLCJKdWxpYW4iLA0KICAgICAgICAgICAgICAgICAgICAgICAgIkplZmZyeSIsIk5pa2l0YSIsIktlZmFzIiwiU2lhbmEiLCJMYWxhIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJGYWxsZW4iLCJBcmRpZm8iLCJLZXZpbiIsIkp1ZW4iLCJKZXJyZWwiLA0KICAgICAgICAgICAgICAgICAgICAgICAgIkltZWxkYSIsIldpZGkiLCJUaGVvZG9yYSIsIkVsdmFuaSIsIkpvbmF0aGFuIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJTb2ZpYSIsIkFicmFoYW0iLCJTaXRpIiwiTmlrbyIsIlNlZmxpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJCZW5lIiwgIkRpYW5hIiwgIlB1cGUiLCAiQW5kaSIsICJUYXRoYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAiRW5kcmkiLCAiTW9uaWthIiwgIkhhbnMiLCAiRGVib3JhIiwiSGFuaWZhIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJKYW1lcyIsICJKaWhhbiIsICJGcmlza2EiLCJBcmRpd2FuIiwgIkJha3RpIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICJBbnRob24iLCJBbXJ5IiwgIldpd2lrIiwgIkJhc3RpYW4iLCAiQnVkaSIsDQogICAgICAgICAgICAgICAgICAgICAgICAiTGVvIiwiU2ltb24iLCJNYXRpdXMiLCJBcnJ5IiwgIkVsaWFuZG8iKSwgMjAwKQ0KV29ya19FeHAgICAgICAgPC0gcmVwKGMoMS4zLDIuNCwyLjUsMy42LDMuNyw0LjcsNS43LDYuNyw3LjcsNy4zLA0KICAgICAgICAgICAgICAgICAgICAgICAgNS4zLDUuMywxMCw5LjMsMy4zLDMuMywzLjQsMy40LDMuNSw1LjYsDQogICAgICAgICAgICAgICAgICAgICAgICAzLjUsNC42LDQuNiw1LjcsNi4yLDQuNCw2LjQsNi40LDMuNSw3LjUsDQogICAgICAgICAgICAgICAgICAgICAgICA0LjYsMy43LDQuNyw0LjMsNS4yLDYuMyw3LjQsMi40LDMuNCw4LjIsDQogICAgICAgICAgICAgICAgICAgICAgICA2LjQsNy4yLDEuNSw3LjUsMTAsNC41LDYuNSw3LjIsNy4xLDcuNiksMjAwKQ0KQ2l0eSAgICAgICAgICAgPC0gc2FtcGxlKGMoIkpha2FydGEiLCJCb2dvciIsIkRlcG9rIiwiVGVuZ2VyYW5nIiwiQmVrYXNpIiksMTAwMDAsIHJlcGxhY2UgPSBUKQ0KQ2x1c3RlciAgICAgICAgPC0gc2FtcGxlKGMoIlZpY3RvcmlhIiwiUGFsbXlyYSIsIldpbm9uYSIsIlRpYXJhIiwgIk5hcmFkYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAiUGVyb25pYSIsIkxhdmVzaCIsIkFsaW5kcmEiLCJTd2VldGhvbWUiLCAiQXNlcmEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlcmFkYW1haSIsIkFsYmFzaWEiLCAiQWRhcmEiLCJOZW9uIiwiQXJhbmEiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFzb2thIiwgIlByaW1hZG9uYSIsICJNdXRpYXJhIiwiUGVybWF0YSIsIkFsYW1hbmRhIiApLCAxMDAwMCwgcmVwbGFjZT1UKQ0KUHJpY2UgICAgICAgICAgPC0gc2FtcGxlKGMoNzAwMDoxNTAwMCksMTAwMDAsIHJlcGxhY2UgPSBUKQ0KRGF0ZV9TYWxlcyAgICAgPC0gc2FtcGxlKHNlcShhcy5EYXRlKCIyMDE4LzAxLzAxIiksIGJ5ID0gImRheSIsIGxlbmd0aC5vdXQgPSAxMDAwKSwxMDAwMCwgcmVwbGFjZSA9IFQpDQpBZHZlcnRpc2VtZW50ICA8LSBzYW1wbGUoYygxOjIwKSwgMTAwMDAsIHJlcGxhY2UgPSBUKQ0KRGF0YSAgICAgICAgICAgPC0gZGF0YS5mcmFtZShJZCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcmtldGluZ19OYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXb3JrX0V4cCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2l0eSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2x1c3RlciwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJpY2UsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGVfU2FsZXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkdmVydGlzZW1lbnQpDQpsaWJyYXJ5KERUKQ0KZGF0YXRhYmxlKERhdGEpDQpgYGANCg0KIyMgU29hbCAxIHsudGFic2V0IC50YWJzZXQtcGlsbHN9DQoNCkthdGVnb3Jpa2FuIHZhcmlhYmVsIGBIYXJnYWAgcGFkYSBkYXRhc2V0IGRpIGF0YXMgbWVuamFkaSB0aWdhIGtlbG9tcG9rIHNlYmFnYWkgYmVyaWt1dDoNCg0KKiAkXHRleHR7SGlnaH0gPiAxMjAwMCQNCiogJDEwMDAwIFxsZSBcdGV4dHtNZWRpdW19IFxsZSAxMjAwMCQNCiogJFx0ZXh0e0xvd30gPCAxMDAwMCQNCg0KVGV0YXBrYW4ga2UgZGFsYW0gdmFyaWFiZWwgYmFydSB5YW5nIGRpc2VidXQgYEtlbGFzYCBkZW5nYW4gbWVuZ2d1bmFrYW4gZnVuZ3NpIGtvbnRyb2wgYElmYCwgYGVsc2UgaWZgLCBkYW4gYGVsc2VgLg0KDQpgYGB7cn0NCnggPSBEYXRhJFByaWNlDQoNCms9IGlmZWxzZSgoeD4xMjAwMCkscHJpbnQoJ0hpZ2gnKSwNCiAgICAgICAgICBpZmVsc2UoKHg+PTEwMDAwICYgeDw9IDEyMDAwKSwgcHJpbnQoIk1lZGl1bSIpLHByaW50KCdMb3cnKQ0KICAgICAgICAgICAgICAgICApKQ0KDQpEYXRhJENsYXNzID0gaw0KZGF0YXRhYmxlKERhdGEpDQpgYGANCg0KYGBge3J9DQpEYXRhJENsYXNzID0gaw0KRGF0YQ0KYGBgDQoNCiMjIFNvYWwgMiB7LnRhYnNldCAudGFic2V0LXBpbGxzfQ0KDQpLYXRlZ29yaWthbiB2YXJpYWJlbCBgSGFyZ2FgIHBhZGEgZGF0YXNldCBkaSBhdGFzIG1lbmphZGkgZW5hbSBrZWxvbXBvayBzZWJhZ2FpIGJlcmlrdXQ6DQoNCiogQm9va2luZ19mZWUgbnlhIDUgJSBqaWthICRcdGV4dHtQcmljZX0gPCA4MDAwJA0KKiBCb29raW5nX2ZlZSBueWEgNiAlIGppa2EgJDgwMDAgXGxlIFx0ZXh0e1ByaWNlfSA8IDkwMDAkDQoqIEJvb2tpbmdfZmVlIG55YSA3ICUgamlrYSAkOTAwMCBcbGUgXHRleHR7UHJpY2V9IDwgMTAwMDAkDQoqIEJvb2tpbmdfZmVlIG55YSA4ICUgamlrYSAkMTAwMDAgXGxlIFx0ZXh0e1ByaWNlfSA8IDExMDAwJA0KKiBCb29raW5nX2ZlZSBueWEgOSAlIGppa2EgJDExMDAwIFxsZSBcdGV4dHtQcmljZX0gPCAxMzAwMCQNCiogQm9va2luZ19mZWUgbnlhIDEwICUgamlrYSAkMTMwMDAgXGxlIFx0ZXh0e1ByaWNlfSBcbGUgMTUwMDAkDQoNClRldGFwa2FuIGtlIGRhbGFtIHZhcmlhYmVsIGJhcnUgeWFuZyBkaXNlYnV0IGBCb29raW5nX2ZlZWAgZGVuZ2FuIG1lbmdndW5ha2FuIGZ1bmdzaSBrb250cm9sIGBJZmAsIGBlbHNlIGlmYCwgZGFuIGBlbHNlYC4NCg0KIyMjIFINCg0KYGBge3J9DQp4ID0gRGF0YSRQcmljZQ0KDQpiPSBpZmVsc2UoKHg8ODAwMCksNS8xMDAsDQogICAgICAgICAgaWZlbHNlKCh4Pj04MDAwICYgeDwgOTAwMCksNi8xMDAsDQogICAgICAgICAgaWZlbHNlKCh4Pj05MDAwICYgeDwgMTAwMDApLDcvMTAwLA0KICAgICAgICAgIGlmZWxzZSgoeD49MTAwMDAgJiB4PCAxMTAwMCksOC8xMDAsDQogICAgICAgICAgaWZlbHNlKCh4Pj0xMTAwMCAmIHg8IDEzMDAwKSw5LzEwMCwxMC8xMDANCiAgICAgICAgICAgICAgICAgICAgKSkpKSkNCkRhdGEkQm9va2luZ19GZWUgPSBiDQpkYXRhdGFibGUoRGF0YSkNCmBgYA0KDQoNCiMjIFNvYWwgMyB7LnRhYnNldCAudGFic2V0LXBpbGxzfQ0KDQpNZW51cnV0IGt1bXB1bGFuIGRhdGEgYWtoaXIgeWFuZyB0ZWxhaCBBbmRhIGJ1YXQgcGFkYSBzb2FsIG5vIDIsIHNheWEgYmVyYXN1bXNpIGJhaHdhIEFuZGEgdGVsYWggYmVrZXJqYSBzZWJhZ2FpIHBlbWFzYXJhbiBkaSBwZXJ1c2FoYWFuIGBBQkMgUHJvcGVydHlgLCBiYWdhaW1hbmEgQW5kYSBkYXBhdCBtZW5ndW1wdWxrYW4gc2VtdWEgaW5mb3JtYXNpIHRlbnRhbmcgcGVuanVhbGFuIEFuZGEgZGVuZ2FuIG1lbmdndW5ha2FuIHBlcm55YXRhYW4gYGZvcmAuIA0KDQojIyMgUg0KDQpgYGB7cn0NCiMgQ29udG9oIG1lbmd1bXB1bGthbiBkYXRhIHBlbmp1YWxhbiBMYWxhDQoNCmxpYnJhcnkoRFQpDQoNCnBlbmp1YWwgPSAiTGFsYSINCg0KZm9yICh4IGluIHBlbmp1YWwpew0KICBwcmludChzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSB4KSkpDQp9DQpgYGANCg0KYGBge3J9DQojIENvbnRvaCBtZW5ndW1wdWxrYW4gZGF0YSBwZW5qdWFsYW4gSmVmZnJ5DQoNCmxpYnJhcnkoRFQpDQoNCnBlbmp1YWwgPSAiSmVmZnJ5Ig0KDQpmb3IgKHggaW4gcGVuanVhbCl7DQogIHByaW50KHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09IHgpKSkNCn0NCmBgYA0KDQojIyBTb2FsIDQgey50YWJzZXQgLnRhYnNldC1waWxsc30NCg0KSmlrYSBBbmRhIGFrYW4gbWVuZGFwYXRrYW4gYm9udXMgMiUgZGFyaSBgQm9va2luZyBmZWVgIHBlciB1bml0IHNlYmFnYWkgcGVtYXNhcmFuIGRhbiBqdWdhIG1lbmRhcGF0a2FuIGJvbnVzIHRhbWJhaGFuIDElIGppa2EgQW5kYSB0ZWxhaCBiZWtlcmphIGRpIHBlcnVzYWhhYW4gaW5pIHNlbGFtYSBsZWJpaCBkYXJpIDMgdGFodW4uIFNpbGFrYW4gaGl0dW5nIHRvdGFsIGJvbnVzIGRlbmdhbiBtZW5nZ3VuYWthbiBwZXJueWF0YWFuIGBpZiwgZm9yLCBkYW4gYnJlYWtgLiAgDQoNCiMjIyBSDQoNCmBgYHtyfQ0KcGVuanVhbD0gIkxhbGEiDQoNCnIgPC0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gcGVuanVhbCkpDQoNCnA9IGlmZWxzZSgociRXb3JrX0V4cCA8MyApLA0KICAgICAgICAgIChyJFByaWNlICogciRCb29raW5nX0ZlZSkgKigyLzEwMCksDQogICAgICAgICAgKHIkUHJpY2UgKiByJEJvb2tpbmdfRmVlKSAqKDMvMTAwKSkNCg0KciRCb251cyA9cA0Kcg0KYGBgDQoNCmBgYHtyfQ0KQm9udXMgPSBzdW0ociRCb251cykNCkJvbnVzDQpgYGANCg0KIyMgU29hbCA1IHsudGFic2V0IC50YWJzZXQtcGlsbHN9DQoNClBhZGEgYmFnaWFuIGluaSwgQW5kYSBkaWhhcmFwa2FuIGRhcGEgbWVtYnVhdCBmdW5nc2kgeWFuZyBkYXBhdCBtZW5qYXdhYiBzZXRpYXAgcGVueWF0YWFuIGRpYmF3YWggaW5pIGRlbmdhbiBtZWxpYmF0a2FuIHNldGlhcCBmdW5nc2kga29udHJvbCB5YW5nIGRpcGVsYWphcmkgcGFkYSBwZXJ0ZW11YW4gNy4NCg0KKiBTaWFwYSBuYW1hIG1hcmtldGluZyBwZW1hc2FyYW4gdGVyYmFpaz8NCiogS290YSBkYW4gQ2x1c3RlciBtYW5hIHlhbmcgcGFsaW5nIG1lbmd1bnR1bmdrYW4/DQoqIEhpdHVuZyB0b3RhbCBiaWF5YSBpa2xhbiBBbmRhLCBqaWthIEFuZGEgaGFydXMgbWVtYmF5YXJueWEgJDQgc2V0aWFwIGthbGkgaWtsYW4uDQoqIEhpdHVuZyByYXRhLXJhdGEgYmlheWEgaWtsYW4gdW50dWsgc2V0aWFwIG1hcmtldGluZyBkaSBQZXJ1c2FoYWFuIHRlcnNlYnV0Lg0KKiBIaXR1bmcgVG90YWwgUGVuZGFwYXRhbiAoZGFsYW0gQnVsYW5hbikgDQoNCiMjIyBSDQoNCmBgYHtyfQ0Kc2FsZXMgPSBjKCJBbmdlbCIsIlNoZXJseSIsIlZhbmVzc2EiLCJJcmVuZSIsIkp1bGlhbiIsDQogICAgICAgICAgICJKZWZmcnkiLCJOaWtpdGEiLCJLZWZhcyIsIlNpYW5hIiwiTGFsYSIsDQogICAgICAgICAgICJGYWxsZW4iLCJBcmRpZm8iLCJLZXZpbiIsIkp1ZW4iLCJKZXJyZWwiLA0KICAgICAgICAgICAiSW1lbGRhIiwiV2lkaSIsIlRoZW9kb3JhIiwiRWx2YW5pIiwiSm9uYXRoYW4iLA0KICAgICAgICAgICJTb2ZpYSIsIkFicmFoYW0iLCJTaXRpIiwiTmlrbyIsIlNlZmxpIiwNCiAgICAgICAgICAgICJCZW5lIiwgIkRpYW5hIiwgIlB1cGUiLCAiQW5kaSIsICJUYXRoYSIsDQogICAgICAgICAgIkVuZHJpIiwgIk1vbmlrYSIsICJIYW5zIiwgIkRlYm9yYSIsIkhhbmlmYSIsDQogICAgICAgICAgICAiSmFtZXMiLCAiSmloYW4iLCAiRnJpc2thIiwiQXJkaXdhbiIsICJCYWt0aSIsDQogICAgICAgICAgICAiQW50aG9uIiwiQW1yeSIsICJXaXdpayIsICJCYXN0aWFuIiwgIkJ1ZGkiLA0KICAgICAgICAgICAgIkxlbyIsIlNpbW9uIiwiTWF0aXVzIiwiQXJyeSIsICJFbGlhbmRvIikNCg0KQW5nZWwgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiQW5nZWwiKSkNClNoZXJseSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJTaGVybHkiKSkNClZhbmVzc2EgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiVmFuZXNzYSIpKQ0KSXJlbmUgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiSXJlbmUiKSkNCkp1bGlhbiA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJKdWxpYW4iKSkNCkplZmZyeSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJKZWZmcnkiKSkNCk5pa2l0YSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJOaWtpdGEiKSkNCktlZmFzID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIktlZmFzIikpDQpTaWFuYSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJTaWFuYSIpKQ0KTGFsYSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJMYWxhIikpDQpGYWxsZW4gPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiRmFsbGVuIikpDQpBcmRpZm8gPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiQXJkaWZvIikpDQpLZXZpbiA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJLZXZpbiIpKQ0KSnVlbiA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJKdWVuIikpDQpKZXJyZWwgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiSnVycmVsIikpDQpJbWVsZGEgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiSW1lbGRhIikpDQpXaWRpID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIldpZGkiKSkNClRoZW9kb3JhID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIlRoZW9kb3JhIikpDQpFbHZhbmkgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiRWx2YW5pIikpDQpKb25hdGhhbiA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJKb25hdGhhbiIpKQ0KU29maWEgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiU29maWFsIikpDQpBYnJhaGFtID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIkFicmFoYW0iKSkNClNpdGkgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiU2l0aSIpKQ0KTmlrbyA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJOaWtvIikpDQpTZWZsaSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJTZWZsaSIpKQ0KQmVuZSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJCZW5lIikpDQpEaWFuYSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJEaWFuYSIpKQ0KUHVwZSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJQdXBlIikpDQpBbmRpID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIkFuZGkiKSkNClRhdGhhID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIlRhdGhhIikpDQpFbmRyaSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJFbmRyaSIpKQ0KTW9uaWthID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIk1vbmlrYSIpKQ0KSGFucyA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJIYW5zIikpDQpEZWJvcmEgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiRGVib3JhIikpDQpIYW5pZmEgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiaGFuaWZhIikpDQpKYW1lcyA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJKYW1lcyIpKQ0KSmloYW4gPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiSmloYW4iKSkNCkZyaXNrYSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJGcmlza2EiKSkNCkFyZGl3YW4gPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiQXJkaXdhbiIpKQ0KQmFrdGkgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiQmFrdGkiKSkNCkFudGhvbiA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJBbnRob24iKSkNCkFtcnkgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiQW1yeSIpKQ0KV2l3aWsgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiV2l3aWsiKSkNCkJhc3RpYW4gPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiQmFzdGlhbiIpKQ0KQnVkaSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJCdWRpIikpDQpMZW8gPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiTGVvIikpDQpTaW1vbiA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJTaW1vbiIpKQ0KTWF0aXVzID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIk1hdGl1cyIpKQ0KQXJyeSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJBcnJ5IikpDQpFbGlhbmRvID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIkVsaWFuZG8iKSkNCg0KdG90YWwgPSANCiAgYyhzdW0oQW5nZWwkUHJpY2UpLHN1bShTaGVybHkkUHJpY2UpLHN1bShWYW5lc3NhJFByaWNlKSxzdW0oSXJlbmUkUHJpY2UpLA0KICAgIHN1bShKdWxpYW4kUHJpY2UpLHN1bShKZWZmcnkkUHJpY2UpLHN1bShOaWtpdGEkUHJpY2UpLHN1bShLZWZhcyRQcmljZSksc3VtKFNpYW5hJFByaWNlKSwNCiAgICBzdW0oTGFsYSRQcmljZSksc3VtKEZhbGxlbiRQcmljZSksc3VtKEFyZGlmbyRQcmljZSksc3VtKEtldmluJFByaWNlKSxzdW0oSnVlbiRQcmljZSksDQogICAgc3VtKEplcnJlbCRQcmljZSksc3VtKEltZWxkYSRQcmljZSksc3VtKFdpZGkkUHJpY2UpLHN1bShUaGVvZG9yYSRQcmljZSksc3VtKEVsdmFuaSRQcmljZSksDQogICAgc3VtKEpvbmF0aGFuJFByaWNlKSxzdW0oU29maWEkUHJpY2UpLHN1bShBYnJhaGFtJFByaWNlKSxzdW0oU2l0aSRQcmljZSksc3VtKE5pa28kUHJpY2UpLA0KICAgIHN1bShTZWZsaSRQcmljZSksc3VtKEJlbmUkUHJpY2UpLHN1bShEaWFuYSRQcmljZSksc3VtKFB1cGUkUHJpY2UpLHN1bShBbmRpJFByaWNlKSwNCiAgICBzdW0oVGF0aGEkUHJpY2UpLHN1bShFbmRyaSRQcmljZSksc3VtKE1vbmlrYSRQcmljZSksc3VtKEhhbnMkUHJpY2UpLHN1bShEZWJvcmEkUHJpY2UpLA0KICAgIHN1bShIYW5pZmEpLHN1bShKYW1lcyRQcmljZSksc3VtKEppaGFuJFByaWNlKSxzdW0oRnJpc2thJFByaWNlKSxzdW0oQXJkaXdhbiRQcmljZSksDQogICAgc3VtKEJha3RpJFByaWNlKSxzdW0oQW50aG9uJFByaWNlKSxzdW0oQW1yeSRQcmljZSksc3VtKFdpd2lrJFByaWNlKSxzdW0oQmFzdGlhbiRQcmljZSksDQogICAgc3VtKEJ1ZGkkUHJpY2UpLHN1bShMZW8kUHJpY2UpLHN1bShTaW1vbiRQcmljZSksc3VtKE1hdGl1cyRQcmljZSksc3VtKEFycnkkUHJpY2UpLA0KICAgIHN1bShFbGlhbmRvJFByaWNlKSkNCg0KbWFya2V0aW5nID0gZGF0YS5mcmFtZShzYWxlcyx0b3RhbCkNCg0KbWFya2V0aW5nDQpgYGANCg0KYGBge3J9DQojIFNpYXBhIG5hbWEgbWFya2V0aW5nIHBlbWFzYXJhbiB0ZXJiYWlrPw0KDQp0ZXJiYWlrID0gd2hpY2gubWF4KG1hcmtldGluZyR0b3RhbCkNCnBhbGluZ190ZXJiYWlrID0gbWFya2V0aW5nW3RlcmJhaWssXQ0KDQpwYWxpbmdfdGVyYmFpaw0KYGBgDQoNCmBgYHtyfQ0KY2l0eSA9IGMoIkpha2FydGEiLCJCb2dvciIsIlRhbmdlcmFuZyIsIkRlcG9rIiwiQmVrYXNpIikNCg0KSmFrYXJ0YSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KENpdHkgPT0gIkpha2FydGEiKSkNCkJvZ29yID0gc3Vic2V0KERhdGEsIHN1YnNldD0oQ2l0eSA9PSAiQm9nb3IiKSkNClRhbmdlcmFuZyA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KENpdHkgPT0gIlRhbmdlcmFuZyIpKQ0KRGVwb2sgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShDaXR5ID09ICJEZXBvayIpKQ0KQmVrYXNpID0gc3Vic2V0KERhdGEsIHN1YnNldD0oQ2l0eSA9PSAiQmVrYXNpIikpDQoNCnJhdGFfY2l0eSA9IGMoc3VtKEpha2FydGEkUHJpY2UpL2xlbmd0aChKYWthcnRhJElkKSxzdW0oQm9nb3IkUHJpY2UpL2xlbmd0aChCb2dvciRJZCksDQogICAgICAgICAgICAgIHN1bShUYW5nZXJhbmckUHJpY2UpL2xlbmd0aChUYW5nZXJhbmckSWQpLHN1bShEZXBvayRQcmljZSkvbGVuZ3RoKERlcG9rJElkKSwNCiAgICAgICAgICAgICAgc3VtKEJla2FzaSRQcmljZSkvbGVuZ3RoKEJla2FzaSRJZCkpDQoNCmtvdGE9IGRhdGEuZnJhbWUoY2l0eSxyYXRhX2NpdHkpDQprb3RhDQpgYGANCg0KYGBge3J9DQojIEtvdGEgZGFuIENsdXN0ZXIgbWFuYSB5YW5nIHBhbGluZyBtZW5ndW50dW5na2FuPw0KDQptZW5ndW50dW5na2FuID0gd2hpY2gubWF4KGtvdGEkcmF0YV9jaXR5KQ0Ka290YV9tZW5ndW50dW5na2FuID0ga290YVttZW5ndW50dW5na2FuLF0NCmtvdGFfbWVuZ3VudHVuZ2thbg0KYGBgDQoNCmBgYHtyfQ0KY2x1c3RlciA9IGMoIlZpY3RvcmlhIiwiUGFsbXlyYSIsIldpbm9uYSIsIlRpYXJhIiwgIk5hcmFkYSIsDQogICAgICAgICAgICAiUGVyb25pYSIsIkxhdmVzaCIsIkFsaW5kcmEiLCJTd2VldGhvbWUiLCAiQXNlcmEiLA0KICAgICAgICAgICAgIlRlcmFkYW1haSIsIkFsYmFzaWEiLCAiQWRhcmEiLCJOZW9uIiwiQXJhbmEiLA0KICAgICAgICAgICAgIkFzb2thIiwgIlByaW1hZG9uYSIsICJNdXRpYXJhIiwiUGVybWF0YSIsIkFsYW1hbmRhIikNCg0KVmljdG9yaWEgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiVmljdG9yaWEiKSkNClBhbG15cmEgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiUGFsbXlyYSIpKQ0KV2lub25hID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIldpbm9yYSIpKQ0KVGlhcmEgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiVGlhcmEiKSkNCk5hcmFkYSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJOYXJhZGEiKSkNClBlcm9uaWEgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiUGVyb25pYSIpKQ0KTGF2ZXNoID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIkxhdmVzaCIpKQ0KQWxpbmRhID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIkFsaW5kYSIpKQ0KU3dlZXRob21lID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIlN3ZWV0aG9tZSIpKQ0KQXNlcmEgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiQXNlcmEiKSkNClRlcmFkYW1haSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJUZXJkYW1haSIpKQ0KQWxiYXN0aWEgPSBzdWJzZXQoRGF0YSwgc3Vic2V0PShNYXJrZXRpbmdfTmFtZSA9PSAiQWxiYXN0aWEiKSkNCkFkYXJhID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIkFkYXJhIikpDQpOZW9uID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIk5lb24iKSkNCkFyYW5hID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIkFyYW5hIikpDQpBc29rYSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJBc29rYSIpKQ0KUHJpbWFkb25hID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIlByaW1hZG9uYSIpKQ0KTXV0aWFyYSA9IHN1YnNldChEYXRhLCBzdWJzZXQ9KE1hcmtldGluZ19OYW1lID09ICJNdXRpYXJhIikpDQpQZXJtYXRhID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIlBlcm1hdGEiKSkNCkFsYW1hbmRhID0gc3Vic2V0KERhdGEsIHN1YnNldD0oTWFya2V0aW5nX05hbWUgPT0gIkFsYW1hbmRhIikpDQoNCnJhdGEgPSBjKHN1bShWaWN0b3JpYSRQcmljZSkgLyBsZW5ndGgoVmljdG9yaWEkSWQpLHN1bShQYWxteXJhJFByaWNlKSAvIGxlbmd0aChQYWxteXJhJElkKSwNCiAgICAgICAgIHN1bShXaW5vbmEkUHJpY2UpL2xlbmd0aChXaW5vbmEkSWQpLHN1bShUaWFyYSRQcmljZSkvbGVuZ3RoKFRpYXJhJElkKSwNCiAgICAgICAgIHN1bShOYXJhZGEkUHJpY2UpL2xlbmd0aChOYXJhZGEkSWQpLHN1bShQZXJvbmlhJFByaWNlKS9sZW5ndGgoUGVyb25pYSRJZCksDQogICAgICAgICBzdW0oTGF2ZXNoJFByaWNlKS9sZW5ndGgoTGF2ZXNoJElkKSxzdW0oQWxpbmRhJFByaWNlKS9sZW5ndGgoQWxpbmRhJElkKSwNCiAgICAgICAgIHN1bShTd2VldGhvbWUkUHJpY2UpL2xlbmd0aChTd2VldGhvbWUkSWQpLHN1bShBc2VyYSRQcmljZSkvbGVuZ3RoKEFzZXJhJElkKSwNCiAgICAgICAgIHN1bShUZXJhZGFtYWkkUHJpY2UpL2xlbmd0aChUZXJhZGFtYWkkSWQpLHN1bShBbGJhc3RpYSRQcmljZSkvbGVuZ3RoKEFsYmFzdGlhJElkKSwNCiAgICAgICAgIHN1bShBZGFyYSRQcmljZSkvbGVuZ3RoKEFkYXJhJElkKSxzdW0oTmVvbiRQcmljZSkvbGVuZ3RoKE5lb24kSWQpLA0KICAgICAgICAgc3VtKEFyYW5hJFByaWNlKS9sZW5ndGgoQXJhbmEkSWQpLHN1bShBc29rYSRQcmljZSkvbGVuZ3RoKEFzb2thJElkKSwNCiAgICAgICAgIHN1bShQcmltYWRvbmEkUHJpY2UpL2xlbmd0aChQcmltYWRvbmEkSWQpLHN1bShNdXRpYXJhJFByaWNlKS9sZW5ndGgoTXV0aWFyYSRJZCksDQogICAgICAgICBzdW0oUGVybWF0YSRQcmljZSkvbGVuZ3RoKFBlcm1hdGEkSWQpLHN1bShBbGFtYW5kYSRQcmljZSkvbGVuZ3RoKEFsYW1hbmRhJElkKQ0KICAgICAgICAgKQ0KDQpjbHVzX3RlciA9IGRhdGEuZnJhbWUoY2x1c3RlcixyYXRhKQ0KDQpjbHVzdGVyX3RlcmJhaWsgPSBjbHVzX3Rlclt3aGljaC5tYXgoY2x1c190ZXIkcmF0YSksXQ0KDQpgYGANCg0KYGBge3J9DQojIGJpYXlhIGlrbGFuDQpzYWxlcz0iTGFsYSINCg0KdGFibGVfc2FsZXMgPSBzdWJzZXQoRGF0YSwgc3Vic2V0ID0gKE1hcmtldGluZ19OYW1lID09IHNhbGVzKSkNCg0KaWtsYW4gPSAodGFibGVfc2FsZXMkQWR2ZXJ0aXNlbWVudCAqIDQpDQoNCnRvdGFsX2lrbGFuID0gcHJpbnQoc3VtKGlrbGFuKSkNCmBgYA0KDQoNCiMgS2FzdXMgMg0KDQpNaXNhbGthbiBBbmRhIG1lbWlsaWtpIHByb3llayByaXNldCBwYXNhciB1bnR1ayBtZW1wZXJ0YWhhbmthbiBiZWJlcmFwYSBwZWxhbmdnYW4gcG90ZW5zaWFsIGRpIHBlcnVzYWhhYW4gQW5kYS4gTWFyaSBraXRhIGFzdW1zaWthbiBBbmRhIGJla2VyamEgZGkgcGVydXNhaGFhbiBhc3VyYW5zaSBBQkMuIFVudHVrIG1lbGFrdWthbm55YSwgQW5kYSBpbmdpbiBtZW5ndW1wdWxrYW4ga3VtcHVsYW4gZGF0YSBiZXJpa3V0Og0KDQoqICoqTWFyaXRhbF9TdGF0dXMqKiAgICA6IG1lbmV0YXBrYW4gc3RhdHVzIHBlcmthd2luYW4gYWNhayAoIllhIiwgIlRpZGFrIikNCiogKipBZGRyZXNzKiogICAgICAgICAgIDogYmVyaWthbiBhbGFtYXQgYWNhayAoSkFCT0RFVEFCRUspIA0KKiAqKldvcmtfTG9jYXRpb24qKiAgICAgOiBtZW5ldGFwa2FuIGxva2FzaSBrZXJqYSBzZWNhcmEgYWNhayAoSkFCT0RFVEFCRUspIA0KKiAqKkFnZSoqICAgICAgICAgICAgICAgOiBtZW5ldGFwa2FuIHVydXRhbiBhbmdrYSBhY2FrIChkYXJpIDE5IGhpbmdnYSA2MCkgDQoqICoqQWNhZGVtaWMqKiAgICAgICAgICA6IG1lbmV0YXBrYW4gdGluZ2thdCBha2FkZW1payBhY2FrICgiSi5TY2hvb2wiLCAiSC5TY2hvb2wiLCAiU2FyamFuYSIsICJNYWdpc3RlciIsICJQaGQiKSANCiogKipKb2IqKiAgICAgICAgICAgICAgIDogMTAgcGVrZXJqYWFuIGFjYWsgdW50dWsgc2V0aWFwIHRpbmdrYXQgYWthZGVtaWsgIA0KKiAqKkdyYWRlKiogICAgICAgICAgICAgOiA1IG5pbGFpIGFjYWsgdW50dWsgc2V0aWFwIFBla2VyamFhbiANCiogKipJbmNvbWUqKiAgICAgICAgICAgIDogdGV0YXBrYW4gcGVuZGFwYXRhbiB5YW5nIG11bmdraW4gdW50dWsgc2V0aWFwIFBla2VyamFhbiAgDQoqICoqU3BlbmRpbmcqKiAgICAgICAgICA6IHRldGFwa2FuIGtlbXVuZ2tpbmFuIHBlbmdlbHVhcmFuIHVudHVrIHNldGlhcCBQZWtlcmphYW4gDQoqICoqTnVtYmVyX29mX2NoaWxkcmVuKio6IG1lbmV0YXBrYW4gbm9tb3IgYWNhayBkaSBhbnRhcmEgMCBkYW4gMTAgKHNlc3VhaSBkZW5nYW4gc3RhdHVzIHBlcmthd2luYW4pDQoqICoqUHJpdmF0ZV92ZWhpY2xlKiogICA6IG1lbmV0YXBrYW4ga2VtdW5na2luYW4ga2VuZGFyYWFuIHByaWJhZGkgdW50dWsgc2V0aWFwIG9yYW5nICgiTW9iaWwiLCAic2VwZWRhIG1vdG9yIiwgIlVtdW0iKSANCiogKipIb21lKiogICAgICAgICAgICAgIDogIlNld2EiLCAiTWlsaWsiLCAiS3JlZGl0IiANCg0KIyMgU29hbCAxIHsudGFic2V0IC50YWJzZXQtcGlsbHN9DQoNClRvbG9uZyBiZXJpa2FuIHNheWEga3VtcHVsYW4gZGF0YSB0ZW50YW5nIGluZm9ybWFzaSA1MDAwMCBwZWxhbmdnYW4geWFuZyBtZW5nYWN1IHBhZGEgc2V0aWFwIHZhcmlhYmVsIGRpIGF0YXMhIA0KDQojIyMgUiANCg0KYGBge3J9DQpJRCAgICAgICAgICAgICAgICAgIDwtICgxOjUwMDAwKQ0KTWFyaXRhbF9TdGF0dXMgICAgICA8LSBzYW1wbGUoYygiWWVzIiwiTm8iKSwgNTAwMDAsIHJlcGxhY2U9IFQpDQpBZGRyZXNzICAgICAgICAgICAgIDwtIHNhbXBsZShjKCJKYWthcnRhIiwiQm9nb3IiLCJEZXBvayIsIlRlbmdlcmFuZyIsIkJla2FzaSIpLDUwMDAwLCByZXBsYWNlID0gVCkNCldvcmtfTG9jYXRpb24gICAgICAgPC0gc2FtcGxlKGMoIkpha2FydGEiLCJCb2dvciIsIkRlcG9rIiwiVGVuZ2VyYW5nIiwiQmVrYXNpIiksNTAwMDAsIHJlcGxhY2UgPSBUKQ0KQWdlICAgICAgICAgICAgICAgICA8LSBzYW1wbGUoYygxOTo2MCksNTAwMDAsIHJlcGxhY2UgPSBUKQ0KQWNhZGVtaWMgICAgICAgICAgICA8LSBzYW1wbGUoYygiSi5TY2hvb2wiLCJILlNjaG9vbCIsIlNhcmphbmEiLCJNYWdpc3RlciIsIlBoZCIpLDUwMDAwLCByZXBsYWNlID0gVCkNCkdyYWRlICAgICAgICAgICAgICAgPSBzYW1wbGUoYygiQSIsIkIiLCJDIiwiRCIsIkUiKSw1MDAwMCwgcmVwbGFjZSA9IFQpDQpQcml2YXRlX3ZlaGljbGUgICAgID0gc2FtcGxlKGMoIk1vYmlsIiwgIlNlcGVkYSBtb3RvciIsICJVbXVtIiksNTAwMDAsIHJlcGxhY2UgPSBUKQ0KSG9tZSAgICAgICAgICAgICAgICA9IHNhbXBsZShjKCJTZXdhIiwgIk1pbGlrIiwgIktyZWRpdCIpLDUwMDAwLCByZXBsYWNlID0gVCkNCg0KQ2FzZSA8LSBkYXRhLmZyYW1lKElkLA0KICAgICAgICAgICAgICAgICAgIE1hcml0YWxfU3RhdHVzLA0KICAgICAgICAgICAgICAgICAgIEFkZHJlc3MsDQogICAgICAgICAgICAgICAgICAgV29ya19Mb2NhdGlvbiwNCiAgICAgICAgICAgICAgICAgICBBZ2UsDQogICAgICAgICAgICAgICAgICAgQWNhZGVtaWMsDQogICAgICAgICAgICAgICAgICAgR3JhZGUsDQogICAgICAgICAgICAgICAgICAgUHJpdmF0ZV92ZWhpY2xlLA0KICAgICAgICAgICAgICAgICAgIEhvbWUpDQpDYXNlDQpgYGANCg0KYGBge3J9DQpLdWxpYWggPWMoIldpcmF1c2FoYSIsIkd1cnUiLCJQcm9ncmFtbWVyIiwiRG9rdGVyIiwiQ2hlZiIsIlBvbGlzaSIsIkxhd3llciIsIkFrdHVhcmlzIikNCmBgYA0KDQpgYGB7cn0NCkpvYiA9IGlmZWxzZShBY2FkZW1pYyA9PSAiSi5TY2hvb2wiLCJTdHVkZW50IiwNCiAgICAgIGlmZWxzZShBY2FkZW1pYyA9PSAiSC5TY2hvb2wiLCJTdHVkZW50IiwNCiAgICAgICAgICAgICBzYW1wbGUoS3VsaWFoLCByZXBsYWNlID0gVCkpKQ0KDQpDYXNlIDwtIGRhdGEuZnJhbWUoSWQsDQogICAgICAgICAgICAgICAgICAgTWFyaXRhbF9TdGF0dXMsDQogICAgICAgICAgICAgICAgICAgQWRkcmVzcywNCiAgICAgICAgICAgICAgICAgICBXb3JrX0xvY2F0aW9uLA0KICAgICAgICAgICAgICAgICAgIEFnZSwNCiAgICAgICAgICAgICAgICAgICBBY2FkZW1pYywNCiAgICAgICAgICAgICAgICAgICBHcmFkZSwNCiAgICAgICAgICAgICAgICAgICBQcml2YXRlX3ZlaGljbGUsDQogICAgICAgICAgICAgICAgICAgSG9tZSwNCiAgICAgICAgICAgICAgICAgICBKb2IpDQoNCkluY29tZSA9IGlmZWxzZShDYXNlJEpvYiA9PSAiV2lyYXVzYWhhIiwgMjAwMDA6MjUwMDAsDQogICAgICAgICBpZmVsc2UoQ2FzZSRKb2IgPT0gIkd1cnUiLCA1MDAwLA0KICAgICAgICAgaWZlbHNlKENhc2UkSm9iID09ICJQcm9ncmFtZXIiLCAxNTAwMCwNCiAgICAgICAgIGlmZWxzZShDYXNlJEpvYiA9PSAiRG9rdGVyIiwgMjAwMDAsDQogICAgICAgICBpZmVsc2UoQ2FzZSRKb2IgPT0gIkNoZWYiLCA5MDAwLA0KICAgICAgICAgaWZlbHNlKENhc2UkSm9iID09ICJQb2xpc2kiLCAxNDAwMCwNCiAgICAgICAgIGlmZWxzZShDYXNlJEpvYiA9PSAiTGF3eWVyIiwgMTYwMDAsDQogICAgICAgICBpZmVsc2UoQ2FzZSRKb2IgPT0gIkFrdHVhcmlzIiwgMTkwMDAsNTAwMA0KKSkpKSkpKSkNCg0KU3BlbmRpbmcgPSBpZmVsc2UoQ2FzZSRKb2IgPT0gIldpcmF1c2FoYSIsIDEwMDAwLA0KICAgICAgICAgaWZlbHNlKENhc2UkSm9iID09ICJHdXJ1IiwgMzAwMCwNCiAgICAgICAgIGlmZWxzZShDYXNlJEpvYiA9PSAiUHJvZ3JhbWVyIiwgMTAwMDAsDQogICAgICAgICBpZmVsc2UoQ2FzZSRKb2IgPT0gIkRva3RlciIsIDEwMDAwLA0KICAgICAgICAgaWZlbHNlKENhc2UkSm9iID09ICJDaGVmIiwgNTAwMCwNCiAgICAgICAgIGlmZWxzZShDYXNlJEpvYiA9PSAiUG9saXNpIiwgNDAwMCwNCiAgICAgICAgIGlmZWxzZShDYXNlJEpvYiA9PSAiTGF3eWVyIiwgNjAwMCwNCiAgICAgICAgIGlmZWxzZShDYXNlJEpvYiA9PSAiQWt0dWFyaXMiLCA5MDAwLDEwMDANCikpKSkpKSkpDQoNCkNhc2UkSW5jb21lID0gSW5jb21lDQpDYXNlJFNwZW5kaW5nID0gU3BlbmRpbmcNCg0KTnVtYmVyX29mX2NoaWxkcmVuID0gaWZlbHNlKENhc2UkTWFyaXRhbF9TdGF0dXMgPT0gIlllcyIsIHNhbXBsZShjKDA6MTApLDUwMDAwLHJlcGxhY2U9IFQpLDApDQpDYXNlJE51bWJlcl9vZl9jaGlsZHJlbiA9IE51bWJlcl9vZl9jaGlsZHJlbg0KDQpDYXNlDQpgYGANCg0KDQojIyBTb2FsIDIgey50YWJzZXQgLnRhYnNldC1waWxsc30NCg0KUmluZ2thc2FuIFN0YXRpc3RpayBwZW50aW5nIHNlcGVydGkgYXBhIHlhbmcgYmlzYSBBbmRhIGRhcGF0a2FuIGRhcmkga3VtcHVsYW4gZGF0YSBBbmRhPw0KDQoNCmBgYHtyfQ0KQ2FzZU51bWJlciA9IGZ1bmN0aW9uKHgpDQp7IG1pbiA9IG1pbih4KQ0KICBtYXggPSBtYXgoeCkNCiAgbWVkaWFuID0geFttZWRpYW4uZGVmYXVsdCh4KV0NCiAgbW9kdXMgPSB4W3doaWNoLm1heCh4KV0NCiAgcmF0YSA9IHJvdW5kKHN1bSh4KS9sZW5ndGgoeCksIGRpZ2l0cz0yKQ0KICB2YXJpYW5zID0gc3VtKCh4LXJhdGEpXjIpIC8gKGxlbmd0aCh4KS0xKQ0KICBzZCA9IHNxcnQoc3VtKCh4LXJhdGEpXjIpIC8gKGxlbmd0aCh4KS0xKSkNCiAgICAgICAgICAgICAgICANCiAgcmV0dXJuKGNhdChjKCJNaW5pbXVtIDoiLCBtaW4sIlxuIiwNCiAgICAgICAgICAgICAgICAiTWFrc2ltdW0gOiIsIG1heCwiXG4iLA0KICAgICAgICAgICAgICAgICJNZWRpYW4gOiIsIG1lZGlhbiwiXG4iLA0KICAgICAgICAgICAgICAgICJNb2R1cyA6IiwgbW9kdXMsIlxuIiwNCiAgICAgICAgICAgICAgICAicmF0YSA6IiwgcmF0YSwiXG4iLA0KICAgICAgICAgICAgICAgICJ2YXJpYW5zIDoiLCB2YXJpYW5zLCJcbiIsDQogICAgICAgICAgICAgICAgIlN0YW5kYXJkIERldmlhc2kgOiIsIHNkLCJcbiINCiAgKSkpDQp9DQoNCmBgYA0KDQpgYGB7cn0NCiMgc3VtbWFyeQ0KQ2FzZU51bWJlcihDYXNlJEFnZSkNCg0KYGBgDQoNCmBgYHtyfQ0KQ2FzZU51bWJlcihDYXNlJEluY29tZSkNCg0KYGBgDQoNCmBgYHtyfQ0KQ2FzZU51bWJlcihDYXNlJFNwZW5kaW5nKQ0KDQpgYGANCg0KYGBge3J9DQpDYXNlTnVtYmVyKENhc2UkTnVtYmVyX29mX2NoaWxkcmVuKQ0KDQpgYGANCg0KYGBge3J9DQp0eXBlb2YoQ2FzZSRNYXJpdGFsX1N0YXR1cykNCnR5cGVvZihDYXNlJEFkZHJlc3MpDQp0eXBlb2YoQ2FzZSRXb3JrX0xvY2F0aW9uKQ0KdHlwZW9mKENhc2UkR3JhZGUpDQp0eXBlb2YoQ2FzZSRQcml2YXRlX3ZlaGljbGUpDQp0eXBlb2YoQ2FzZSRIb21lKQ0KdHlwZW9mKENhc2UkQWNhZGVtaWMpDQp0eXBlb2YoQ2FzZSRKb2IpDQpgYGANCg0KDQojIyBTb2FsIDMgey50YWJzZXQgLnRhYnNldC1waWxsc30NCg0KTWVudXJ1dCBwZXJoaXR1bmdhbiBkYW4gYW5hbGlzaXMgQW5kYSwgcGVsYW5nZ2FuIG1hbmEgeWFuZyBwb3RlbnNpYWwgdW50dWsgQW5kYSBwZXJ0YWhhbmthbj8gDQoNCiMjIyBSDQoNCmBgYHtyfQ0KeWVzID0gc3Vic2V0KENhc2UsIHN1YnNldD0oTWFyaXRhbF9TdGF0dXMgPT0gIlllcyIpKQ0Kbm8gID0gc3Vic2V0KENhc2UsIHN1YnNldD0oTWFyaXRhbF9TdGF0dXMgPT0gIk5vIikpDQoNCmEgPSBzdWJzZXQoQ2FzZSwgc3Vic2V0PShHcmFkZSA9PSAiQSIpKQ0KYiA9IHN1YnNldChDYXNlLCBzdWJzZXQ9KEdyYWRlID09ICJCIikpDQpjID0gc3Vic2V0KENhc2UsIHN1YnNldD0oR3JhZGUgPT0gIkMiKSkNCmQgPSBzdWJzZXQoQ2FzZSwgc3Vic2V0PShHcmFkZSA9PSAiRCIpKQ0KZSA9IHN1YnNldChDYXNlLCBzdWJzZXQ9KEdyYWRlID09ICJFIikpDQoNCmFKYSA9c3Vic2V0KENhc2UsIHN1YnNldD0oQWRkcmVzcyA9PSAiSmFrYXJ0YSIpKQ0KYUJvID1zdWJzZXQoQ2FzZSwgc3Vic2V0PShBZGRyZXNzID09ICJCb2dvciIpKQ0KYURlID1zdWJzZXQoQ2FzZSwgc3Vic2V0PShBZGRyZXNzID09ICJEZXBvayIpKQ0KYVRnID1zdWJzZXQoQ2FzZSwgc3Vic2V0PShBZGRyZXNzID09ICJ0YW5nZXJhbmciKSkNCmFCZSA9c3Vic2V0KENhc2UsIHN1YnNldD0oQWRkcmVzcyA9PSAiQmVrYXNpIikpDQoNCmtKYSA9c3Vic2V0KENhc2UsIHN1YnNldD0oV29ya19Mb2NhdGlvbiA9PSAiSmFrYXJ0YSIpKQ0Ka0JvID1zdWJzZXQoQ2FzZSwgc3Vic2V0PShXb3JrX0xvY2F0aW9uID09ICJCb2dvciIpKQ0Ka0RlID1zdWJzZXQoQ2FzZSwgc3Vic2V0PShXb3JrX0xvY2F0aW9uID09ICJEZXBvayIpKQ0Ka1RnID1zdWJzZXQoQ2FzZSwgc3Vic2V0PShXb3JrX0xvY2F0aW9uID09ICJUYW5nZXJhbmciKSkNCmtCZSA9c3Vic2V0KENhc2UsIHN1YnNldD0oV29ya19Mb2NhdGlvbiA9PSAiQmVrYXNpIikpDQoNCkogPXN1YnNldChDYXNlLCBzdWJzZXQ9KEFjYWRlbWljID09ICJKLlNjaG9vbCIpKQ0KSCA9c3Vic2V0KENhc2UsIHN1YnNldD0oQWNhZGVtaWMgPT0gIkguU2Nob29sIikpDQpTID1zdWJzZXQoQ2FzZSwgc3Vic2V0PShBY2FkZW1pYyA9PSAiU2FyamFuYSIpKQ0KTSA9c3Vic2V0KENhc2UsIHN1YnNldD0oQWNhZGVtaWMgPT0gIk1hZ2lzdGVyIikpDQpQID1zdWJzZXQoQ2FzZSwgc3Vic2V0PShBY2FkZW1pYyA9PSAiUGhkIikpDQoNCm1vYmlsID0gc3Vic2V0KENhc2UsIHN1YnNldD0oUHJpdmF0ZV92ZWhpY2xlID09ICJNb2JpbCIpKQ0KbW90b3IgPSBzdWJzZXQoQ2FzZSwgc3Vic2V0PShQcml2YXRlX3ZlaGljbGUgPT0gIlNlcGVkYSBtb3RvciIpKQ0KdW11bSA9IHN1YnNldChDYXNlLCBzdWJzZXQ9KFByaXZhdGVfdmVoaWNsZSA9PSAiVW11bSIpKQ0KDQpzZXdhID0gc3Vic2V0KENhc2UsIHN1YnNldD0oSG9tZSA9PSAiU2V3YSIpKQ0KbWlsaWsgPSBzdWJzZXQoQ2FzZSwgc3Vic2V0PShIb21lID09ICJNaWxpayIpKQ0Ka3JlZGl0ID0gc3Vic2V0KENhc2UsIHN1YnNldD0oSG9tZSA9PSAiS3JlZGl0IikpDQoNCndpcmF1c2FoYSA9IHN1YnNldChDYXNlLCBzdWJzZXQ9KEpvYiA9PSAiV2lyYXVzYWhhIikpDQpndXJ1ID0gc3Vic2V0KENhc2UsIHN1YnNldD0oSm9iID09ICJHdXJ1IikpDQpwcm9ncmFtZXIgPSBzdWJzZXQoQ2FzZSwgc3Vic2V0PShKb2IgPT0gIlByb2dyYW1lciIpKQ0KZG9rdGVyID0gc3Vic2V0KENhc2UsIHN1YnNldD0oSm9iID09ICJEb2t0ZXIiKSkNCmNoZWYgPSBzdWJzZXQoQ2FzZSwgc3Vic2V0PShKb2IgPT0gIkNoZWYiKSkNCnBvbGlzaSA9IHN1YnNldChDYXNlLCBzdWJzZXQ9KEpvYiA9PSAiUG9saXNpIikpDQpsYXd5ZXIgPSBzdWJzZXQoQ2FzZSwgc3Vic2V0PShKb2IgPT0gIkxhd3llciIpKQ0KYWt0dWFyaXMgPSBzdWJzZXQoQ2FzZSwgc3Vic2V0PShKb2IgPT0gIkFrdHVhcmlzIikpDQoNCmBgYA0KDQpgYGB7cn0NCkNhc2VfV29yZCA9IGZ1bmN0aW9uKHgpew0KICBtZXJ0aWFsID0gZnVuY3Rpb24oeCx5KXsNCiAgICAgICAgaWYoeD55KXsNCiAgICAgICAgICBwcmludCgiWWVzIil9DQogICAgICAgIGVsc2V7cHJpbnQoIk5vIil9IH0NCm1hcnJpZ2UgPSBtZXJ0aWFsKGxlbmd0aCh5ZXMkTm8pLCBsZW5ndGgobm8kTm8pKQ0KDQphbGFtYXQ9DQogIGZ1bmN0aW9uKGEsYixjLGQsZSl7DQogICAgaWYoYSA+IG1heChjKGIsYyxkLGUpKSl7DQogICAgICBwcmludCgiSmFrYXJ0YSIpfQ0KICAgIGVsc2UgaWYoYiA+IG1heChjKGEsYyxkLGUpKSl7IA0KICAgICAgcHJpbnQoIkJvZ29yIil9DQogICAgZWxzZSBpZihjID4gbWF4KGMoYSxiLGQsZSkpKXsgDQogICAgICBwcmludCgiRGVwb2siKX0NCiAgICBlbHNlIGlmKGMgPiBtYXgoYyhhLGIsYyxlKSkpeyANCiAgICAgIHByaW50KCJUYW5nZXJhbmciKX0NCiAgICBlbHNle3ByaW50KCJCZWthc2kiKX0NCiAgfQ0KYWRkcmVzcyA9IGFsYW1hdChsZW5ndGgoYUphJE5vKSwgbGVuZ3RoKGFCbyRObyksIGxlbmd0aChhRGUkTm8pLCBsZW5ndGgoYVRnJE5vKSwgbGVuZ3RoKGFCZSRObykpDQoNCktlcmphPQ0KICBmdW5jdGlvbihhLGIsYyxkLGUpew0KICAgIGlmKGEgPiBtYXgoYyhiLGMsZCxlKSkpew0KICAgICAgcHJpbnQoIkpha2FydGEiKX0NCiAgICBlbHNlIGlmKGIgPiBtYXgoYyhhLGMsZCxlKSkpeyANCiAgICAgIHByaW50KCJCb2dvciIpfQ0KICAgIGVsc2UgaWYoYyA+IG1heChjKGEsYixkLGUpKSl7IA0KICAgICAgcHJpbnQoIkRlcG9rIil9DQogICAgZWxzZSBpZihjID4gbWF4KGMoYSxiLGMsZSkpKXsgDQogICAgICBwcmludCgiVGFuZ2VyYW5nIil9DQogICAgZWxzZXtwcmludCgiQmVrYXNpIil9DQogIH0NCndvcmsgPSBLZXJqYShsZW5ndGgoa0phJE5vKSwgbGVuZ3RoKGtCbyRObyksIGxlbmd0aChrRGUkTm8pLCBsZW5ndGgoa1RnJE5vKSwgbGVuZ3RoKGtCZSRObykpDQoNCmFrYWRlbWlzPQ0KICBmdW5jdGlvbihhLGIsYyxkLGUpew0KICAgIGlmKGEgPiBtYXgoYyhiLGMsZCxlKSkpew0KICAgICAgcHJpbnQoIkouU2Nob29sIil9DQogICAgZWxzZSBpZihiID4gbWF4KGMoYSxjLGQsZSkpKXsgDQogICAgICBwcmludCgiSC5TY2hvb2wiKX0NCiAgICBlbHNlIGlmKGMgPiBtYXgoYyhhLGIsZCxlKSkpeyANCiAgICAgIHByaW50KCJTYXJqYW5hIil9DQogICAgZWxzZSBpZihjID4gbWF4KGMoYSxiLGMsZSkpKXsgDQogICAgICBwcmludCgiTWFnaXN0ZXIiKX0NCiAgICBlbHNle3ByaW50KCJQaGQiKX0NCiAgfQ0KYWNhZGVtaWMgPSBha2FkZW1pcyhsZW5ndGgoSiRObyksIGxlbmd0aChIJE5vKSwgbGVuZ3RoKFMkTm8pLCBsZW5ndGgoTSRObyksIGxlbmd0aChQJE5vKSkNCg0KbmlsYWk9DQogIGZ1bmN0aW9uKGEsYixjLGQsZSl7DQogICAgaWYoYSA+IG1heChjKGIsYyxkLGUpKSl7DQogICAgICBwcmludCgiQSIpfQ0KICAgIGVsc2UgaWYoYiA+IG1heChjKGEsYyxkLGUpKSl7IA0KICAgICAgcHJpbnQoIkIiKX0NCiAgICBlbHNlIGlmKGMgPiBtYXgoYyhhLGIsZCxlKSkpeyANCiAgICAgIHByaW50KCJDIil9DQogICAgZWxzZSBpZihjID4gbWF4KGMoYSxiLGMsZSkpKXsgDQogICAgICBwcmludCgiRCIpfQ0KICAgIGVsc2V7cHJpbnQoIkUiKX0NCiAgfQ0KZ2EgPSBsZW5ndGgoYSRBZGRyZXNzKQ0KZ2IgPSBsZW5ndGgoYiRObykNCmdjID0gbGVuZ3RoKGMkTm8pDQpnZCA9IGxlbmd0aChkJE5vKQ0KZ2UgPSBsZW5ndGgoZSRObykNCmdyYWRlID0gbmlsYWkoZ2EsZ2IsZ2MsZ2QsZ2UpDQoNCnZlaGljbGU9DQogIGZ1bmN0aW9uKGEsYixjKXsgDQogICAgaWYoYSA+IG1heChjKGIsYykpKXsgDQogICAgICBwcmludCgibW9iaWwiKX0NCiAgICBlbHNlIGlmKGIgPiBtYXgoYyhhLGMpKSl7IA0KICAgICAgcHJpbnQoIm1vdG9yIil9DQogICAgZWxzZXtwcmludCgidW11bSIpfX0NCmtlbmRhcmFhbiA9IHZlaGljbGUobGVuZ3RoKG1vYmlsJE5vKSwgbGVuZ3RoKG1vdG9yJE5vKSwgbGVuZ3RoKHVtdW0kTm8pKQ0KDQpydW1haD0NCiAgZnVuY3Rpb24oYSxiLGMpeyANCiAgICBpZihhID4gbWF4KGMoYixjKSkpeyANCiAgICAgIHByaW50KCJzZXdhIil9DQogICAgZWxzZSBpZihiID4gbWF4KGMoYSxjKSkpeyANCiAgICAgIHByaW50KCJtaWxpayIpfQ0KICAgIGVsc2V7cHJpbnQoImtyZWRpdCIpfX0NCmhvbWUgPSBydW1haChsZW5ndGgoc2V3YSRObyksIGxlbmd0aChtaWxpayRObyksIGxlbmd0aChrcmVkaXQkTm8pKQ0KDQpwZWtlcmphYW4gPSBmdW5jdGlvbihhLGIsYyxkLGUsZixnLGgpeyANCiAgaWYoYSA+IG1heChjKGIsYyxkLGUsZixnLGgsaSkpKXsgDQogICAgcHJpbnQoIndpcmF1c2FoYSIpfQ0KICBlbHNlIGlmKGEgPiBtYXgoYyhhLGMsZCxlLGYsZyxoKSkpeyANCiAgICBwcmludCgiZ3VydSIpfQ0KICBlbHNlIGlmKGEgPiBtYXgoYyhhLGIsZCxlLGYsZyxoKSkpeyANCiAgICBwcmludCgicHJvZ3JhbWVyIil9DQogIGVsc2UgaWYoYSA+IG1heChjKGEsYixjLGUsZixnLGgpKSl7IA0KICAgIHByaW50KCJkb2t0ZXIiKX0NCiAgZWxzZSBpZihhID4gbWF4KGMoYSxiLGMsZCxmLGcsaCkpKXsgDQogICAgcHJpbnQoImNoZWYiKX0NCiAgZWxzZSBpZihhID4gbWF4KGMoYSxiLGMsZCxlLGcsaCkpKXsgDQogICAgcHJpbnQoInBvbGlzaSIpfQ0KICBlbHNlIGlmKGEgPiBtYXgoYyhhLGIsYyxkLGUsZixoKSkpeyANCiAgICBwcmludCgibGF3eWVyIil9DQogIGVsc2V7cHJpbnQoImFrdHVhcmlzIil9fQ0KIGpvYiA9IHBla2VyamFhbihsZW5ndGgod2lyYXVzYWhhJE5vKSwgbGVuZ3RoKGd1cnUkTm8pLCBsZW5ndGgocHJvZ3JhbWVyJE5vKSwNCiAgICAgICAgICAgICAgICBsZW5ndGgoZG9rdGVyJE5vKSwgbGVuZ3RoKGNoZWYkTm8pLCBsZW5ndGgocG9saXNpJE5vKSwNCiAgICAgICAgICAgICAgICBsZW5ndGgobGF3eWVyJE5vKSwgbGVuZ3RoKGFrdHVhcmlzJE5vKSkNCiANCiByZXR1cm4oY2F0KGMoIm1hcnJpZ2UiLCBtYXJyaWdlLCJcbiIsDQogICAgICAgICAgICAgICJhbGFtYXQiLCBhZGRyZXNzLCJcbiIsDQogICAgICAgICAgICAgICJrZXJqYSIsIHdvcmssIlxuIiwNCiAgICAgICAgICAgICAgImFrYWRlbWlzIiwgYWNhZGVtaWMsIlxuIiwNCiAgICAgICAgICAgICAgImdyYWRlIiwgZ3JhZGUsIlxuIiwNCiAgICAgICAgICAgICAgImtlbmRhcmFhbiIsIGtlbmRhcmFhbiwiXG4iLA0KICAgICAgICAgICAgICAiaG9tZSIsIGhvbWUsIlxuIiwNCiAgICAgICAgICAgICAgInBla2VyamFhbiIsIGpvYg0KICAgICAgICAgICAgICApKSkNCn0NCmBgYA0KDQpgYGB7cn0NCkNhc2VOdW1iZXIoQ2FzZSRBZ2UpDQpgYGANCg0KYGBge3J9DQpDYXNlTnVtYmVyKENhc2UkSW5jb21lKQ0KYGBgDQoNCmBgYHtyfQ0KQ2FzZU51bWJlcihDYXNlJFNwZW5kaW5nKQ0KYGBgDQoNCmBgYHtyfQ0KQ2FzZU51bWJlcihDYXNlJE51bWJlcl9vZl9jaGlsZHJlbikNCmBgYA0KDQojIFJlZmVyZW5zaQ0KDQojIyBodHRwczovL3d3dy5kYXRhc2NpZW5jZW1hZGVzaW1wbGUuY29tL2lmLWVsc2UtY29uZGl0aW9uLXIvDQojIyBodHRwczovL3d3dy5kYXRhbWVudG9yLmlvL3ItcHJvZ3JhbW1pbmcvaWYtZWxzZS1zdGF0ZW1lbnQvDQoNCg0KDQo=