diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4032ec7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea + +.DS_Store + +__pycache__/ \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4d87cdb --- /dev/null +++ b/Makefile @@ -0,0 +1,17 @@ +convert_xml_to_csv: + python src/convert_xml_to_csv.py "resources/data-devclub-1.xml" "resources" + +create_table: + python src/create_table.py "./sql_lite.db" "dev_club" + +clean_table: + python src/clean_table.py "./sql_lite.db" "dev_club" + +csv_to_db: + python src/csv_to_db.py "./sql_lite.db" "dev_club" "resources/dev_club.csv" + +generate_json: + python src/generate_json.py "resources/dev_club.csv" "resources/dev_club.json" + +generate_csv_by_nationality: + python src/generate_csv_by_nationality.py "resources/data-devclub-1.xml" "resources/by_nationality" \ No newline at end of file diff --git a/README.md b/README.md index b98bf2a..0b8a8c2 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,23 @@ # hackathon-season2 +## How to use + +``` +cd hackathon-season2 + +make convert_xml_to_csv (**แปลงไฟล์ xml เป็น csv ชื่อ dev_club.csv กับ dev_mountain.csv**) + +make create_table (**สร้าง database และ table**) + +make clean_table (**ลบ data ออกจาก table**) + +make csv_to_db (**import dev_club.csv to database**) + +make generate_json (**สร้างไฟล์ dev_club.json**) + +make generate_csv_by_nationality (**สร้างไฟล์ csv แยกตาม nationality**) +``` + ## เลข Status จะมีตามนี้ครับ - 1 = Active - 2 = Resigned diff --git a/resources/by_nationality/Australia.csv b/resources/by_nationality/Australia.csv new file mode 100644 index 0000000..daba0b7 --- /dev/null +++ b/resources/by_nationality/Australia.csv @@ -0,0 +1,3 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +61,KGM73NWG1JP,Desirae,Melton,1,1993-11-07,Australia,2013-04-12,Aircraft Maintenance,Airhostess,0,Europe +76,YWT45VVP7KK,Nathan,Floyd,0,1988-01-04,Australia,2008-10-09,Flight Planning,Steward,3,USA diff --git a/resources/by_nationality/Austria.csv b/resources/by_nationality/Austria.csv new file mode 100644 index 0000000..d988e30 --- /dev/null +++ b/resources/by_nationality/Austria.csv @@ -0,0 +1,6 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +4,CYB72WYU6UR,Winter,Blair,0,1993-02-14,Austria,2022-03-24,Pilot,Steward,4,Ocenia +40,JHJ72ODJ7RA,Gregory,Bryant,0,1968-09-14,Austria,2017-01-10,Flight Planning,Pilot,0,Middle East +47,CQW50GAD3DS,Martin,Payne,1,1961-05-12,Austria,2015-10-07,Pilot,Pilot,4,Ocenia +48,MKI89CUF6PR,Fuller,Alvarez,0,1988-01-06,Austria,2016-12-30,Flight Attendance,Pilot,4,APAC +100,WIN16ELU8GN,Orlando,Mayer,0,1961-01-11,Austria,2003-04-07,Pilot,Pilot,0,APAC diff --git a/resources/by_nationality/Belgium.csv b/resources/by_nationality/Belgium.csv new file mode 100644 index 0000000..e9c53ea --- /dev/null +++ b/resources/by_nationality/Belgium.csv @@ -0,0 +1,2 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +72,AUY27DLM5FK,Leilani,Moran,0,1996-08-25,Belgium,2005-04-08,Aircraft Maintenance,Airhostess,2,Ocenia diff --git a/resources/by_nationality/Brazil.csv b/resources/by_nationality/Brazil.csv new file mode 100644 index 0000000..78732fd --- /dev/null +++ b/resources/by_nationality/Brazil.csv @@ -0,0 +1,4 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +55,JJG71FLY1XR,Paula,Delaney,0,1986-09-18,Brazil,2003-01-29,Aircraft Maintenance,Steward,2,Middle East +68,GDJ74WSM7LG,Autumn,Page,0,1969-11-01,Brazil,2001-04-24,Aircraft Maintenance,Airhostess,3,Middle East +98,DOB31QXV4GZ,Moana,Walsh,1,1995-05-03,Brazil,2002-04-21,Pilot,Airhostess,3,Ocenia diff --git a/resources/by_nationality/China.csv b/resources/by_nationality/China.csv new file mode 100644 index 0000000..f641d81 --- /dev/null +++ b/resources/by_nationality/China.csv @@ -0,0 +1,3 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +31,JBK92QBQ9CF,Kyra,Noel,1,1972-08-25,China,2005-11-27,Flight Attendance,Airhostess,3,Canada +59,VDF94IVV1UX,Nomlanga,Stout,0,1975-04-03,China,2009-08-06,Flight Planning,Airhostess,0,Canada diff --git a/resources/by_nationality/Colombia.csv b/resources/by_nationality/Colombia.csv new file mode 100644 index 0000000..11378ee --- /dev/null +++ b/resources/by_nationality/Colombia.csv @@ -0,0 +1,3 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +22,SOM23XJR5NC,Igor,Ochoa,1,1972-10-11,Colombia,2005-11-02,Flight Planning,Airhostess,4,APAC +49,PRX53TYM5LT,Macon,Trevino,1,1997-10-01,Colombia,2019-12-17,Flight Planning,Steward,0,Ocenia diff --git a/resources/by_nationality/Costa Rica.csv b/resources/by_nationality/Costa Rica.csv new file mode 100644 index 0000000..e5e931d --- /dev/null +++ b/resources/by_nationality/Costa Rica.csv @@ -0,0 +1,6 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +15,MOJ66TSD0LH,Jade,Simmons,1,1961-03-04,Costa Rica,2000-12-24,Aircraft Maintenance,Steward,0,Canada +19,SYT22ZIA2ZU,Thaddeus,Martinez,1,1975-04-02,Costa Rica,2015-07-11,Flight Attendance,Steward,0,Middle East +42,QSP69GYO0YK,Rajah,Roach,0,1992-12-13,Costa Rica,2011-05-26,Flight Attendance,Pilot,0,Europe +44,VTF75CUM7PC,Rhea,Keith,0,2000-06-28,Costa Rica,2010-10-30,Flight Attendance,Airhostess,4,Canada +62,LYL50VBA1GL,Armando,Moody,1,1989-04-24,Costa Rica,2020-04-15,Flight Planning,Steward,3,USA diff --git a/resources/by_nationality/France.csv b/resources/by_nationality/France.csv new file mode 100644 index 0000000..443e2d2 --- /dev/null +++ b/resources/by_nationality/France.csv @@ -0,0 +1,2 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +93,UXL43IOW6OV,Honorato,Maxwell,1,1982-03-09,France,2017-02-04,Aircraft Maintenance,Airhostess,1,Europe diff --git a/resources/by_nationality/Germany.csv b/resources/by_nationality/Germany.csv new file mode 100644 index 0000000..b69c47e --- /dev/null +++ b/resources/by_nationality/Germany.csv @@ -0,0 +1,5 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +2,CDC87ETW8EQ,Burton,Gallegos,0,1960-09-22,Germany,2021-10-29,Aircraft Maintenance,Pilot,1,APAC +18,DFE84WHT0ED,Joelle,Boyle,0,1962-07-19,Germany,2013-03-28,Flight Planning,Airhostess,0,Ocenia +29,CMK62UAD3VK,Rowan,Leonard,1,1974-07-15,Germany,2004-03-27,Aircraft Maintenance,Pilot,1,Ocenia +69,OOR56TFJ3XV,Nehru,Vargas,1,1976-09-25,Germany,2007-08-27,Flight Attendance,Pilot,2,USA diff --git a/resources/by_nationality/India.csv b/resources/by_nationality/India.csv new file mode 100644 index 0000000..b62d91e --- /dev/null +++ b/resources/by_nationality/India.csv @@ -0,0 +1,4 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +20,JDS74VWV5XG,Lester,Edwards,1,1973-10-11,India,2000-09-03,Flight Planning,Airhostess,0,Canada +21,SMN51EPH5FE,Aline,Riley,0,1989-06-04,India,2001-04-05,Flight Attendance,Pilot,3,APAC +88,TRJ51LBJ6II,Shaeleigh,Roth,1,1986-02-04,India,2004-03-15,Aircraft Maintenance,Steward,4,Europe diff --git a/resources/by_nationality/Indonesia.csv b/resources/by_nationality/Indonesia.csv new file mode 100644 index 0000000..3fdb153 --- /dev/null +++ b/resources/by_nationality/Indonesia.csv @@ -0,0 +1,4 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +33,EWD45RJW5YK,Carter,Velasquez,0,1967-11-23,Indonesia,2005-02-27,Flight Planning,Pilot,1,APAC +84,KMS88HTI5IR,Chanda,Wynn,1,1993-07-10,Indonesia,2014-11-20,Flight Planning,Steward,2,USA +92,HET44XPQ0RR,Lucy,Finch,1,1975-02-21,Indonesia,2002-05-19,Pilot,Steward,4,Middle East diff --git a/resources/by_nationality/Ireland.csv b/resources/by_nationality/Ireland.csv new file mode 100644 index 0000000..64c3f30 --- /dev/null +++ b/resources/by_nationality/Ireland.csv @@ -0,0 +1,3 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +37,GWY17TOL2UG,Matthew,Vasquez,1,1995-03-17,Ireland,2007-07-01,Flight Planning,Steward,4,Ocenia +67,BVY21SKG6CE,Kitra,Green,0,1967-07-10,Ireland,2006-09-12,Flight Planning,Airhostess,0,Middle East diff --git a/resources/by_nationality/Italy.csv b/resources/by_nationality/Italy.csv new file mode 100644 index 0000000..9a68d7f --- /dev/null +++ b/resources/by_nationality/Italy.csv @@ -0,0 +1,5 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +34,BFS82MEY3CX,Selma,Bush,0,1972-03-26,Italy,2008-10-10,Flight Attendance,Airhostess,1,USA +52,THN13DDU7PZ,Kieran,Hancock,1,1976-07-01,Italy,2023-04-14,Flight Planning,Airhostess,0,USA +78,YHV05IUP6ER,Willa,Ferguson,0,1969-12-10,Italy,2017-07-08,Flight Planning,Steward,3,Ocenia +80,EUC74ENE9ZK,Ryan,Rush,0,1998-06-13,Italy,2019-07-31,Aircraft Maintenance,Pilot,1,Middle East diff --git a/resources/by_nationality/Mexico.csv b/resources/by_nationality/Mexico.csv new file mode 100644 index 0000000..c1b8eb1 --- /dev/null +++ b/resources/by_nationality/Mexico.csv @@ -0,0 +1,6 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +7,SBJ34IXU7TC,Madeson,Mcintosh,1,1997-11-03,Mexico,2007-08-22,Flight Attendance,Steward,0,Ocenia +41,ITS61SWZ4PW,Duncan,Morrison,1,1975-04-24,Mexico,2012-03-01,Flight Planning,Steward,0,Europe +50,MRC33GHJ2KW,Calvin,Roach,1,1999-04-16,Mexico,2011-03-18,Flight Attendance,Steward,1,Europe +63,UVV50TVB3TS,Maggy,Miles,0,1972-01-16,Mexico,2015-08-02,Flight Planning,Pilot,3,Ocenia +74,HJL93JJY5GH,September,Morin,1,1997-09-15,Mexico,2014-08-26,Aircraft Maintenance,Steward,4,APAC diff --git a/resources/by_nationality/Netherlands.csv b/resources/by_nationality/Netherlands.csv new file mode 100644 index 0000000..4635ca4 --- /dev/null +++ b/resources/by_nationality/Netherlands.csv @@ -0,0 +1,5 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +14,TAP82QBU5PN,Lunea,Sweet,1,1992-10-27,Netherlands,2004-03-15,Pilot,Airhostess,3,Middle East +23,NFH65BYM0VB,Armand,Horn,0,1987-05-24,Netherlands,2007-06-19,Aircraft Maintenance,Airhostess,1,Ocenia +32,KUO96QIG4VK,Stephen,Dickson,0,1962-05-02,Netherlands,2013-03-15,Aircraft Maintenance,Airhostess,4,APAC +71,FSQ47TYA9DJ,Pascale,Silva,0,1968-10-13,Netherlands,2007-09-27,Pilot,Steward,4,Canada diff --git a/resources/by_nationality/New Zealand.csv b/resources/by_nationality/New Zealand.csv new file mode 100644 index 0000000..bbe912c --- /dev/null +++ b/resources/by_nationality/New Zealand.csv @@ -0,0 +1,2 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +83,LJK19GHE1TM,Dalton,Roberson,0,1994-05-02,New Zealand,2012-06-21,Aircraft Maintenance,Airhostess,0,Europe diff --git a/resources/by_nationality/Nigeria.csv b/resources/by_nationality/Nigeria.csv new file mode 100644 index 0000000..d1b87f8 --- /dev/null +++ b/resources/by_nationality/Nigeria.csv @@ -0,0 +1,2 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +85,MUE55VMY6MX,Solomon,Booker,0,1961-03-28,Nigeria,2007-09-18,Aircraft Maintenance,Steward,3,APAC diff --git a/resources/by_nationality/Norway.csv b/resources/by_nationality/Norway.csv new file mode 100644 index 0000000..8fd5f58 --- /dev/null +++ b/resources/by_nationality/Norway.csv @@ -0,0 +1,3 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +6,KXU40SKR1YO,Simone,Mosley,0,1994-11-20,Norway,2023-03-10,Flight Planning,Steward,2,Canada +90,MCJ12FYX5KN,Maxine,Branch,1,1979-05-29,Norway,2018-10-17,Pilot,Steward,0,Europe diff --git a/resources/by_nationality/Pakistan.csv b/resources/by_nationality/Pakistan.csv new file mode 100644 index 0000000..861e544 --- /dev/null +++ b/resources/by_nationality/Pakistan.csv @@ -0,0 +1,5 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +3,JUI65YBK7AF,Jada,Bender,0,1963-05-28,Pakistan,2001-02-11,Pilot,Pilot,1,Canada +28,VSN53SUD8EA,Lana,Aguirre,1,1979-10-30,Pakistan,2020-09-16,Flight Attendance,Pilot,2,Middle East +30,WJE55UKG3YU,Clarke,Norman,1,1987-06-15,Pakistan,2022-01-13,Aircraft Maintenance,Steward,3,USA +99,OUB92IKA7AU,Jonah,Solomon,1,1985-05-25,Pakistan,2023-04-30,Flight Attendance,Pilot,3,Europe diff --git a/resources/by_nationality/Peru.csv b/resources/by_nationality/Peru.csv new file mode 100644 index 0000000..f190152 --- /dev/null +++ b/resources/by_nationality/Peru.csv @@ -0,0 +1,7 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +36,TLM36YPP3NE,Vera,Ashley,1,1982-06-02,Peru,2022-03-12,Flight Attendance,Pilot,3,Canada +43,JWF56EYP2AN,Sophia,Fuller,1,1986-01-03,Peru,2012-02-15,Pilot,Steward,0,Europe +58,TZT98UWC8BW,Donna,Clay,1,1977-12-25,Peru,2003-05-16,Aircraft Maintenance,Steward,4,APAC +82,ISX87UNW0AD,Herrod,Oliver,0,1965-01-07,Peru,2023-01-16,Flight Attendance,Airhostess,0,Europe +87,RVO63HMC4NL,Ferris,Gilbert,0,1969-07-24,Peru,2002-12-25,Flight Planning,Steward,4,Europe +97,SUF73DKV4QE,Dante,Hart,0,1999-12-21,Peru,2016-02-22,Pilot,Pilot,1,Europe diff --git a/resources/by_nationality/Philippines.csv b/resources/by_nationality/Philippines.csv new file mode 100644 index 0000000..48011c3 --- /dev/null +++ b/resources/by_nationality/Philippines.csv @@ -0,0 +1,6 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +10,YHF52IXT9VG,Lamar,Reeves,1,1988-09-13,Philippines,2003-09-26,Flight Attendance,Pilot,2,Canada +25,BJQ37WBQ4UL,Leandra,Mayer,0,1974-09-07,Philippines,2019-09-17,Pilot,Steward,0,Europe +45,MIF51GHC3PF,Walker,Jarvis,0,1988-06-26,Philippines,2004-04-22,Aircraft Maintenance,Pilot,3,Ocenia +65,UCZ18XLY9OA,Solomon,Estes,0,1968-07-16,Philippines,2014-02-08,Aircraft Maintenance,Airhostess,0,USA +66,WKV12UQC6QF,Zachery,Valentine,0,1971-06-04,Philippines,2011-08-25,Flight Attendance,Steward,1,Middle East diff --git a/resources/by_nationality/Russian Federation.csv b/resources/by_nationality/Russian Federation.csv new file mode 100644 index 0000000..d1de78f --- /dev/null +++ b/resources/by_nationality/Russian Federation.csv @@ -0,0 +1,4 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +26,CCE27MGJ8KI,Chloe,Blanchard,1,1998-12-29,Russian Federation,2001-05-20,Pilot,Steward,2,Middle East +81,DCD61JXD7UO,Brady,Hernandez,1,1961-11-26,Russian Federation,2022-09-01,Pilot,Airhostess,2,Europe +96,LJB26BQM6PS,Laith,Whitfield,0,1987-01-14,Russian Federation,2001-02-09,Pilot,Airhostess,0,APAC diff --git a/resources/by_nationality/Singapore.csv b/resources/by_nationality/Singapore.csv new file mode 100644 index 0000000..dce68ef --- /dev/null +++ b/resources/by_nationality/Singapore.csv @@ -0,0 +1,4 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +70,RAX87DEX6CC,Ferris,Houston,0,1981-05-01,Singapore,2016-02-23,Pilot,Pilot,3,Canada +86,WND47SBT6OF,Yardley,Buckley,1,1989-06-24,Singapore,2002-06-04,Flight Attendance,Pilot,3,USA +95,OUP31WOE2IE,Dara,Wilcox,1,1996-06-29,Singapore,2011-05-18,Flight Attendance,Airhostess,1,Canada diff --git a/resources/by_nationality/South Africa.csv b/resources/by_nationality/South Africa.csv new file mode 100644 index 0000000..3401b80 --- /dev/null +++ b/resources/by_nationality/South Africa.csv @@ -0,0 +1,4 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +24,EQI56KFP6NU,Chaney,Ramsey,1,1972-06-13,South Africa,2002-12-19,Aircraft Maintenance,Steward,2,USA +51,BPO49TXH0XX,Charles,Kim,0,1968-12-30,South Africa,2015-09-12,Flight Planning,Pilot,2,Ocenia +75,KVI04NMS2QH,Shay,Mcdonald,1,1999-12-29,South Africa,2007-03-07,Aircraft Maintenance,Airhostess,4,Ocenia diff --git a/resources/by_nationality/South Korea.csv b/resources/by_nationality/South Korea.csv new file mode 100644 index 0000000..5d6edc9 --- /dev/null +++ b/resources/by_nationality/South Korea.csv @@ -0,0 +1,3 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +1,OQI75XIE4UX,Christopher,Kennedy,1,1978-02-05,South Korea,2005-02-20,Flight Planning,Steward,2,Europe +35,XPI62OGX6QX,Roary,Frank,1,1979-12-30,South Korea,2008-11-12,Flight Attendance,Airhostess,2,Middle East diff --git a/resources/by_nationality/Spain.csv b/resources/by_nationality/Spain.csv new file mode 100644 index 0000000..8c731f3 --- /dev/null +++ b/resources/by_nationality/Spain.csv @@ -0,0 +1,2 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +57,GRE66NCT2EF,Aimee,Stone,0,1990-09-08,Spain,2007-07-25,Flight Attendance,Pilot,3,Middle East diff --git a/resources/by_nationality/Sweden.csv b/resources/by_nationality/Sweden.csv new file mode 100644 index 0000000..31d2d21 --- /dev/null +++ b/resources/by_nationality/Sweden.csv @@ -0,0 +1,6 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +9,WOW94MLI6CM,Prescott,Dudley,0,1990-04-07,Sweden,2012-11-16,Pilot,Steward,2,Canada +12,KGM77GAL2UW,Levi,Atkinson,0,1969-10-08,Sweden,2002-09-13,Aircraft Maintenance,Steward,4,Europe +13,UOM66JXI0ZD,Levi,Myers,0,1998-12-29,Sweden,2004-09-13,Aircraft Maintenance,Steward,0,Europe +16,WRS57BWI1RG,Serina,Tran,1,1980-11-28,Sweden,2010-07-18,Flight Planning,Steward,2,Canada +91,WEA16MFX7OE,Drew,Gordon,0,1981-10-31,Sweden,2015-04-19,Aircraft Maintenance,Steward,2,Ocenia diff --git a/resources/by_nationality/Turkey.csv b/resources/by_nationality/Turkey.csv new file mode 100644 index 0000000..d32c11a --- /dev/null +++ b/resources/by_nationality/Turkey.csv @@ -0,0 +1,4 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +39,DDI37UIV8QD,Trevor,Wyatt,0,1998-02-14,Turkey,2010-03-15,Pilot,Airhostess,2,USA +46,ZGJ51FDM2LC,Reese,Christensen,0,1993-09-15,Turkey,2011-08-10,Aircraft Maintenance,Pilot,3,Ocenia +64,GSW02GPL6OY,Wyoming,Joyner,0,1991-11-20,Turkey,2022-04-17,Flight Attendance,Steward,0,Europe diff --git a/resources/by_nationality/Ukraine.csv b/resources/by_nationality/Ukraine.csv new file mode 100644 index 0000000..832d100 --- /dev/null +++ b/resources/by_nationality/Ukraine.csv @@ -0,0 +1,3 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +5,AZE20CSG4MU,Lillian,Reese,0,1982-12-03,Ukraine,2002-05-19,Flight Planning,Steward,1,Canada +94,BVQ96KDP3EL,Darryl,Nichols,1,1988-05-29,Ukraine,2001-02-19,Aircraft Maintenance,Steward,0,USA diff --git a/resources/by_nationality/United Kingdom.csv b/resources/by_nationality/United Kingdom.csv new file mode 100644 index 0000000..9e9bf96 --- /dev/null +++ b/resources/by_nationality/United Kingdom.csv @@ -0,0 +1,4 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +27,EDF66USR7HP,Anjolie,Dudley,1,1975-12-27,United Kingdom,2004-07-28,Aircraft Maintenance,Steward,0,USA +53,EKI78MBL1DM,Irene,Moon,0,1973-10-02,United Kingdom,2015-04-21,Flight Attendance,Airhostess,2,USA +54,ZCM30CQE2UN,Noelani,Watkins,0,1969-08-31,United Kingdom,2016-07-18,Aircraft Maintenance,Airhostess,4,Europe diff --git a/resources/by_nationality/United States.csv b/resources/by_nationality/United States.csv new file mode 100644 index 0000000..ecff0bb --- /dev/null +++ b/resources/by_nationality/United States.csv @@ -0,0 +1,5 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +8,UCT91SOT6EN,Josephine,Hansen,1,1982-10-12,United States,2021-12-24,Flight Planning,Pilot,4,Middle East +17,TZU74JZT1GC,Talon,Santiago,1,1969-04-17,United States,2015-09-02,Aircraft Maintenance,Steward,0,Canada +73,XIJ68PKR7QT,Darius,Serrano,0,1990-04-29,United States,2005-11-03,Pilot,Steward,4,Middle East +79,RCQ71JXX4NH,Teagan,Daniel,1,1983-09-02,United States,2005-05-22,Pilot,Steward,0,APAC diff --git a/resources/by_nationality/Vietnam.csv b/resources/by_nationality/Vietnam.csv new file mode 100644 index 0000000..eaf996d --- /dev/null +++ b/resources/by_nationality/Vietnam.csv @@ -0,0 +1,7 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +11,LBI65YUK1BG,Hamilton,Duffy,1,1987-11-09,Vietnam,2021-12-31,Aircraft Maintenance,Steward,4,APAC +38,KMG07QVW7MP,Kylynn,Mullins,0,1979-04-19,Vietnam,2020-11-07,Aircraft Maintenance,Steward,0,Middle East +56,UWS82URG4LM,Keelie,Crosby,0,1985-07-17,Vietnam,2002-04-01,Flight Planning,Steward,0,USA +60,IUE46AKB9OH,Yuri,Evans,1,1973-10-05,Vietnam,2022-04-18,Aircraft Maintenance,Airhostess,0,Ocenia +77,EOP89YXA3YW,Wayne,Bowman,0,1991-03-02,Vietnam,2007-03-28,Aircraft Maintenance,Steward,2,APAC +89,PHE40UOS0GY,Amanda,Schwartz,1,1983-04-03,Vietnam,2019-08-06,Aircraft Maintenance,Steward,4,APAC diff --git a/data-devclub-1.xml b/resources/data-devclub-1.xml similarity index 100% rename from data-devclub-1.xml rename to resources/data-devclub-1.xml diff --git a/resources/dev_club.csv b/resources/dev_club.csv new file mode 100644 index 0000000..2643c33 --- /dev/null +++ b/resources/dev_club.csv @@ -0,0 +1,13 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +3,JUI65YBK7AF,Jada,Bender,0,1963-05-28,Pakistan,2001-02-11,Pilot,Pilot,1,Canada +5,AZE20CSG4MU,Lillian,Reese,0,1982-12-03,Ukraine,2002-05-19,Flight Planning,Steward,1,Canada +23,NFH65BYM0VB,Armand,Horn,0,1987-05-24,Netherlands,2007-06-19,Aircraft Maintenance,Airhostess,1,Ocenia +29,CMK62UAD3VK,Rowan,Leonard,1,1974-07-15,Germany,2004-03-27,Aircraft Maintenance,Pilot,1,Ocenia +33,EWD45RJW5YK,Carter,Velasquez,0,1967-11-23,Indonesia,2005-02-27,Flight Planning,Pilot,1,APAC +34,BFS82MEY3CX,Selma,Bush,0,1972-03-26,Italy,2008-10-10,Flight Attendance,Airhostess,1,USA +50,MRC33GHJ2KW,Calvin,Roach,1,1999-04-16,Mexico,2011-03-18,Flight Attendance,Steward,1,Europe +66,WKV12UQC6QF,Zachery,Valentine,0,1971-06-04,Philippines,2011-08-25,Flight Attendance,Steward,1,Middle East +80,EUC74ENE9ZK,Ryan,Rush,0,1998-06-13,Italy,2019-07-31,Aircraft Maintenance,Pilot,1,Middle East +93,UXL43IOW6OV,Honorato,Maxwell,1,1982-03-09,France,2017-02-04,Aircraft Maintenance,Airhostess,1,Europe +95,OUP31WOE2IE,Dara,Wilcox,1,1996-06-29,Singapore,2011-05-18,Flight Attendance,Airhostess,1,Canada +97,SUF73DKV4QE,Dante,Hart,0,1999-12-21,Peru,2016-02-22,Pilot,Pilot,1,Europe diff --git a/resources/dev_club.json b/resources/dev_club.json new file mode 100644 index 0000000..94577f5 --- /dev/null +++ b/resources/dev_club.json @@ -0,0 +1 @@ +[{"EMPID": "3", "PASSPORT": "JUI65YBK7AF", "FIRSTNAME": "Jada", "LASTNAME": "Bender", "GENDER": "0", "BIRTHDAY": "1963-05-28", "NATIONALITY": "Pakistan", "HIRED": "2001-02-11", "DEPT": "Pilot", "POSITION": "Pilot", "STATUS": "1", "REGION": "Canada"}, {"EMPID": "5", "PASSPORT": "AZE20CSG4MU", "FIRSTNAME": "Lillian", "LASTNAME": "Reese", "GENDER": "0", "BIRTHDAY": "1982-12-03", "NATIONALITY": "Ukraine", "HIRED": "2002-05-19", "DEPT": "Flight Planning", "POSITION": "Steward", "STATUS": "1", "REGION": "Canada"}, {"EMPID": "23", "PASSPORT": "NFH65BYM0VB", "FIRSTNAME": "Armand", "LASTNAME": "Horn", "GENDER": "0", "BIRTHDAY": "1987-05-24", "NATIONALITY": "Netherlands", "HIRED": "2007-06-19", "DEPT": "Aircraft Maintenance", "POSITION": "Airhostess", "STATUS": "1", "REGION": "Ocenia"}, {"EMPID": "29", "PASSPORT": "CMK62UAD3VK", "FIRSTNAME": "Rowan", "LASTNAME": "Leonard", "GENDER": "1", "BIRTHDAY": "1974-07-15", "NATIONALITY": "Germany", "HIRED": "2004-03-27", "DEPT": "Aircraft Maintenance", "POSITION": "Pilot", "STATUS": "1", "REGION": "Ocenia"}, {"EMPID": "33", "PASSPORT": "EWD45RJW5YK", "FIRSTNAME": "Carter", "LASTNAME": "Velasquez", "GENDER": "0", "BIRTHDAY": "1967-11-23", "NATIONALITY": "Indonesia", "HIRED": "2005-02-27", "DEPT": "Flight Planning", "POSITION": "Pilot", "STATUS": "1", "REGION": "APAC"}, {"EMPID": "34", "PASSPORT": "BFS82MEY3CX", "FIRSTNAME": "Selma", "LASTNAME": "Bush", "GENDER": "0", "BIRTHDAY": "1972-03-26", "NATIONALITY": "Italy", "HIRED": "2008-10-10", "DEPT": "Flight Attendance", "POSITION": "Airhostess", "STATUS": "1", "REGION": "USA"}, {"EMPID": "50", "PASSPORT": "MRC33GHJ2KW", "FIRSTNAME": "Calvin", "LASTNAME": "Roach", "GENDER": "1", "BIRTHDAY": "1999-04-16", "NATIONALITY": "Mexico", "HIRED": "2011-03-18", "DEPT": "Flight Attendance", "POSITION": "Steward", "STATUS": "1", "REGION": "Europe"}, {"EMPID": "66", "PASSPORT": "WKV12UQC6QF", "FIRSTNAME": "Zachery", "LASTNAME": "Valentine", "GENDER": "0", "BIRTHDAY": "1971-06-04", "NATIONALITY": "Philippines", "HIRED": "2011-08-25", "DEPT": "Flight Attendance", "POSITION": "Steward", "STATUS": "1", "REGION": "Middle East"}, {"EMPID": "80", "PASSPORT": "EUC74ENE9ZK", "FIRSTNAME": "Ryan", "LASTNAME": "Rush", "GENDER": "0", "BIRTHDAY": "1998-06-13", "NATIONALITY": "Italy", "HIRED": "2019-07-31", "DEPT": "Aircraft Maintenance", "POSITION": "Pilot", "STATUS": "1", "REGION": "Middle East"}, {"EMPID": "93", "PASSPORT": "UXL43IOW6OV", "FIRSTNAME": "Honorato", "LASTNAME": "Maxwell", "GENDER": "1", "BIRTHDAY": "1982-03-09", "NATIONALITY": "France", "HIRED": "2017-02-04", "DEPT": "Aircraft Maintenance", "POSITION": "Airhostess", "STATUS": "1", "REGION": "Europe"}, {"EMPID": "95", "PASSPORT": "OUP31WOE2IE", "FIRSTNAME": "Dara", "LASTNAME": "Wilcox", "GENDER": "1", "BIRTHDAY": "1996-06-29", "NATIONALITY": "Singapore", "HIRED": "2011-05-18", "DEPT": "Flight Attendance", "POSITION": "Airhostess", "STATUS": "1", "REGION": "Canada"}, {"EMPID": "97", "PASSPORT": "SUF73DKV4QE", "FIRSTNAME": "Dante", "LASTNAME": "Hart", "GENDER": "0", "BIRTHDAY": "1999-12-21", "NATIONALITY": "Peru", "HIRED": "2016-02-22", "DEPT": "Pilot", "POSITION": "Pilot", "STATUS": "1", "REGION": "Europe"}] \ No newline at end of file diff --git a/resources/dev_mountain.csv b/resources/dev_mountain.csv new file mode 100644 index 0000000..0ebd382 --- /dev/null +++ b/resources/dev_mountain.csv @@ -0,0 +1,89 @@ +EMPID,PASSPORT,FIRSTNAME,LASTNAME,GENDER,BIRTHDAY,NATIONALITY,HIRED,DEPT,POSITION,STATUS,REGION +1,OQI75XIE4UX,Christopher,Kennedy,1,1978-02-05,South Korea,2005-02-20,Flight Planning,Steward,2,Europe +2,CDC87ETW8EQ,Burton,Gallegos,0,1960-09-22,Germany,2021-10-29,Aircraft Maintenance,Pilot,1,APAC +4,CYB72WYU6UR,Winter,Blair,0,1993-02-14,Austria,2022-03-24,Pilot,Steward,4,Ocenia +6,KXU40SKR1YO,Simone,Mosley,0,1994-11-20,Norway,2023-03-10,Flight Planning,Steward,2,Canada +7,SBJ34IXU7TC,Madeson,Mcintosh,1,1997-11-03,Mexico,2007-08-22,Flight Attendance,Steward,0,Ocenia +8,UCT91SOT6EN,Josephine,Hansen,1,1982-10-12,United States,2021-12-24,Flight Planning,Pilot,4,Middle East +9,WOW94MLI6CM,Prescott,Dudley,0,1990-04-07,Sweden,2012-11-16,Pilot,Steward,2,Canada +10,YHF52IXT9VG,Lamar,Reeves,1,1988-09-13,Philippines,2003-09-26,Flight Attendance,Pilot,2,Canada +11,LBI65YUK1BG,Hamilton,Duffy,1,1987-11-09,Vietnam,2021-12-31,Aircraft Maintenance,Steward,4,APAC +12,KGM77GAL2UW,Levi,Atkinson,0,1969-10-08,Sweden,2002-09-13,Aircraft Maintenance,Steward,4,Europe +13,UOM66JXI0ZD,Levi,Myers,0,1998-12-29,Sweden,2004-09-13,Aircraft Maintenance,Steward,0,Europe +14,TAP82QBU5PN,Lunea,Sweet,1,1992-10-27,Netherlands,2004-03-15,Pilot,Airhostess,3,Middle East +15,MOJ66TSD0LH,Jade,Simmons,1,1961-03-04,Costa Rica,2000-12-24,Aircraft Maintenance,Steward,0,Canada +16,WRS57BWI1RG,Serina,Tran,1,1980-11-28,Sweden,2010-07-18,Flight Planning,Steward,2,Canada +17,TZU74JZT1GC,Talon,Santiago,1,1969-04-17,United States,2015-09-02,Aircraft Maintenance,Steward,0,Canada +18,DFE84WHT0ED,Joelle,Boyle,0,1962-07-19,Germany,2013-03-28,Flight Planning,Airhostess,0,Ocenia +19,SYT22ZIA2ZU,Thaddeus,Martinez,1,1975-04-02,Costa Rica,2015-07-11,Flight Attendance,Steward,0,Middle East +20,JDS74VWV5XG,Lester,Edwards,1,1973-10-11,India,2000-09-03,Flight Planning,Airhostess,0,Canada +21,SMN51EPH5FE,Aline,Riley,0,1989-06-04,India,2001-04-05,Flight Attendance,Pilot,3,APAC +22,SOM23XJR5NC,Igor,Ochoa,1,1972-10-11,Colombia,2005-11-02,Flight Planning,Airhostess,4,APAC +24,EQI56KFP6NU,Chaney,Ramsey,1,1972-06-13,South Africa,2002-12-19,Aircraft Maintenance,Steward,2,USA +25,BJQ37WBQ4UL,Leandra,Mayer,0,1974-09-07,Philippines,2019-09-17,Pilot,Steward,0,Europe +26,CCE27MGJ8KI,Chloe,Blanchard,1,1998-12-29,Russian Federation,2001-05-20,Pilot,Steward,2,Middle East +27,EDF66USR7HP,Anjolie,Dudley,1,1975-12-27,United Kingdom,2004-07-28,Aircraft Maintenance,Steward,0,USA +28,VSN53SUD8EA,Lana,Aguirre,1,1979-10-30,Pakistan,2020-09-16,Flight Attendance,Pilot,2,Middle East +30,WJE55UKG3YU,Clarke,Norman,1,1987-06-15,Pakistan,2022-01-13,Aircraft Maintenance,Steward,3,USA +31,JBK92QBQ9CF,Kyra,Noel,1,1972-08-25,China,2005-11-27,Flight Attendance,Airhostess,3,Canada +32,KUO96QIG4VK,Stephen,Dickson,0,1962-05-02,Netherlands,2013-03-15,Aircraft Maintenance,Airhostess,4,APAC +35,XPI62OGX6QX,Roary,Frank,1,1979-12-30,South Korea,2008-11-12,Flight Attendance,Airhostess,2,Middle East +36,TLM36YPP3NE,Vera,Ashley,1,1982-06-02,Peru,2022-03-12,Flight Attendance,Pilot,3,Canada +37,GWY17TOL2UG,Matthew,Vasquez,1,1995-03-17,Ireland,2007-07-01,Flight Planning,Steward,4,Ocenia +38,KMG07QVW7MP,Kylynn,Mullins,0,1979-04-19,Vietnam,2020-11-07,Aircraft Maintenance,Steward,0,Middle East +39,DDI37UIV8QD,Trevor,Wyatt,0,1998-02-14,Turkey,2010-03-15,Pilot,Airhostess,2,USA +40,JHJ72ODJ7RA,Gregory,Bryant,0,1968-09-14,Austria,2017-01-10,Flight Planning,Pilot,0,Middle East +41,ITS61SWZ4PW,Duncan,Morrison,1,1975-04-24,Mexico,2012-03-01,Flight Planning,Steward,0,Europe +42,QSP69GYO0YK,Rajah,Roach,0,1992-12-13,Costa Rica,2011-05-26,Flight Attendance,Pilot,0,Europe +43,JWF56EYP2AN,Sophia,Fuller,1,1986-01-03,Peru,2012-02-15,Pilot,Steward,0,Europe +44,VTF75CUM7PC,Rhea,Keith,0,2000-06-28,Costa Rica,2010-10-30,Flight Attendance,Airhostess,4,Canada +45,MIF51GHC3PF,Walker,Jarvis,0,1988-06-26,Philippines,2004-04-22,Aircraft Maintenance,Pilot,3,Ocenia +46,ZGJ51FDM2LC,Reese,Christensen,0,1993-09-15,Turkey,2011-08-10,Aircraft Maintenance,Pilot,3,Ocenia +47,CQW50GAD3DS,Martin,Payne,1,1961-05-12,Austria,2015-10-07,Pilot,Pilot,4,Ocenia +48,MKI89CUF6PR,Fuller,Alvarez,0,1988-01-06,Austria,2016-12-30,Flight Attendance,Pilot,4,APAC +49,PRX53TYM5LT,Macon,Trevino,1,1997-10-01,Colombia,2019-12-17,Flight Planning,Steward,0,Ocenia +51,BPO49TXH0XX,Charles,Kim,0,1968-12-30,South Africa,2015-09-12,Flight Planning,Pilot,2,Ocenia +52,THN13DDU7PZ,Kieran,Hancock,1,1976-07-01,Italy,2023-04-14,Flight Planning,Airhostess,0,USA +53,EKI78MBL1DM,Irene,Moon,0,1973-10-02,United Kingdom,2015-04-21,Flight Attendance,Airhostess,2,USA +54,ZCM30CQE2UN,Noelani,Watkins,0,1969-08-31,United Kingdom,2016-07-18,Aircraft Maintenance,Airhostess,4,Europe +55,JJG71FLY1XR,Paula,Delaney,0,1986-09-18,Brazil,2003-01-29,Aircraft Maintenance,Steward,2,Middle East +56,UWS82URG4LM,Keelie,Crosby,0,1985-07-17,Vietnam,2002-04-01,Flight Planning,Steward,0,USA +57,GRE66NCT2EF,Aimee,Stone,0,1990-09-08,Spain,2007-07-25,Flight Attendance,Pilot,3,Middle East +58,TZT98UWC8BW,Donna,Clay,1,1977-12-25,Peru,2003-05-16,Aircraft Maintenance,Steward,4,APAC +59,VDF94IVV1UX,Nomlanga,Stout,0,1975-04-03,China,2009-08-06,Flight Planning,Airhostess,0,Canada +60,IUE46AKB9OH,Yuri,Evans,1,1973-10-05,Vietnam,2022-04-18,Aircraft Maintenance,Airhostess,0,Ocenia +61,KGM73NWG1JP,Desirae,Melton,1,1993-11-07,Australia,2013-04-12,Aircraft Maintenance,Airhostess,0,Europe +62,LYL50VBA1GL,Armando,Moody,1,1989-04-24,Costa Rica,2020-04-15,Flight Planning,Steward,3,USA +63,UVV50TVB3TS,Maggy,Miles,0,1972-01-16,Mexico,2015-08-02,Flight Planning,Pilot,3,Ocenia +64,GSW02GPL6OY,Wyoming,Joyner,0,1991-11-20,Turkey,2022-04-17,Flight Attendance,Steward,0,Europe +65,UCZ18XLY9OA,Solomon,Estes,0,1968-07-16,Philippines,2014-02-08,Aircraft Maintenance,Airhostess,0,USA +67,BVY21SKG6CE,Kitra,Green,0,1967-07-10,Ireland,2006-09-12,Flight Planning,Airhostess,0,Middle East +68,GDJ74WSM7LG,Autumn,Page,0,1969-11-01,Brazil,2001-04-24,Aircraft Maintenance,Airhostess,3,Middle East +69,OOR56TFJ3XV,Nehru,Vargas,1,1976-09-25,Germany,2007-08-27,Flight Attendance,Pilot,2,USA +70,RAX87DEX6CC,Ferris,Houston,0,1981-05-01,Singapore,2016-02-23,Pilot,Pilot,3,Canada +71,FSQ47TYA9DJ,Pascale,Silva,0,1968-10-13,Netherlands,2007-09-27,Pilot,Steward,4,Canada +72,AUY27DLM5FK,Leilani,Moran,0,1996-08-25,Belgium,2005-04-08,Aircraft Maintenance,Airhostess,2,Ocenia +73,XIJ68PKR7QT,Darius,Serrano,0,1990-04-29,United States,2005-11-03,Pilot,Steward,4,Middle East +74,HJL93JJY5GH,September,Morin,1,1997-09-15,Mexico,2014-08-26,Aircraft Maintenance,Steward,4,APAC +75,KVI04NMS2QH,Shay,Mcdonald,1,1999-12-29,South Africa,2007-03-07,Aircraft Maintenance,Airhostess,4,Ocenia +76,YWT45VVP7KK,Nathan,Floyd,0,1988-01-04,Australia,2008-10-09,Flight Planning,Steward,3,USA +77,EOP89YXA3YW,Wayne,Bowman,0,1991-03-02,Vietnam,2007-03-28,Aircraft Maintenance,Steward,2,APAC +78,YHV05IUP6ER,Willa,Ferguson,0,1969-12-10,Italy,2017-07-08,Flight Planning,Steward,3,Ocenia +79,RCQ71JXX4NH,Teagan,Daniel,1,1983-09-02,United States,2005-05-22,Pilot,Steward,0,APAC +81,DCD61JXD7UO,Brady,Hernandez,1,1961-11-26,Russian Federation,2022-09-01,Pilot,Airhostess,2,Europe +82,ISX87UNW0AD,Herrod,Oliver,0,1965-01-07,Peru,2023-01-16,Flight Attendance,Airhostess,0,Europe +83,LJK19GHE1TM,Dalton,Roberson,0,1994-05-02,New Zealand,2012-06-21,Aircraft Maintenance,Airhostess,0,Europe +84,KMS88HTI5IR,Chanda,Wynn,1,1993-07-10,Indonesia,2014-11-20,Flight Planning,Steward,2,USA +85,MUE55VMY6MX,Solomon,Booker,0,1961-03-28,Nigeria,2007-09-18,Aircraft Maintenance,Steward,3,APAC +86,WND47SBT6OF,Yardley,Buckley,1,1989-06-24,Singapore,2002-06-04,Flight Attendance,Pilot,3,USA +87,RVO63HMC4NL,Ferris,Gilbert,0,1969-07-24,Peru,2002-12-25,Flight Planning,Steward,4,Europe +88,TRJ51LBJ6II,Shaeleigh,Roth,1,1986-02-04,India,2004-03-15,Aircraft Maintenance,Steward,4,Europe +89,PHE40UOS0GY,Amanda,Schwartz,1,1983-04-03,Vietnam,2019-08-06,Aircraft Maintenance,Steward,4,APAC +90,MCJ12FYX5KN,Maxine,Branch,1,1979-05-29,Norway,2018-10-17,Pilot,Steward,0,Europe +91,WEA16MFX7OE,Drew,Gordon,0,1981-10-31,Sweden,2015-04-19,Aircraft Maintenance,Steward,2,Ocenia +92,HET44XPQ0RR,Lucy,Finch,1,1975-02-21,Indonesia,2002-05-19,Pilot,Steward,4,Middle East +94,BVQ96KDP3EL,Darryl,Nichols,1,1988-05-29,Ukraine,2001-02-19,Aircraft Maintenance,Steward,0,USA +96,LJB26BQM6PS,Laith,Whitfield,0,1987-01-14,Russian Federation,2001-02-09,Pilot,Airhostess,0,APAC +98,DOB31QXV4GZ,Moana,Walsh,1,1995-05-03,Brazil,2002-04-21,Pilot,Airhostess,3,Ocenia +99,OUB92IKA7AU,Jonah,Solomon,1,1985-05-25,Pakistan,2023-04-30,Flight Attendance,Pilot,3,Europe +100,WIN16ELU8GN,Orlando,Mayer,0,1961-01-11,Austria,2003-04-07,Pilot,Pilot,0,APAC diff --git a/scripts/query_by_department.sql b/scripts/query_by_department.sql new file mode 100644 index 0000000..4c90c88 --- /dev/null +++ b/scripts/query_by_department.sql @@ -0,0 +1 @@ +SELECT * FROM dev_club WHERE DEPT = 'Flight Attendance'; \ No newline at end of file diff --git a/scripts/query_by_nationality.sql b/scripts/query_by_nationality.sql new file mode 100644 index 0000000..446485a --- /dev/null +++ b/scripts/query_by_nationality.sql @@ -0,0 +1 @@ +SELECT * FROM dev_club WHERE NATIONALITY = 'Italy'; \ No newline at end of file diff --git a/scripts/query_by_region.sql b/scripts/query_by_region.sql new file mode 100644 index 0000000..49f4ce9 --- /dev/null +++ b/scripts/query_by_region.sql @@ -0,0 +1 @@ +SELECT * FROM dev_club WHERE REGION = 'Italy'; \ No newline at end of file diff --git a/sql_lite.db b/sql_lite.db new file mode 100644 index 0000000..0a5986e Binary files /dev/null and b/sql_lite.db differ diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/clean_table.py b/src/clean_table.py new file mode 100644 index 0000000..e645f13 --- /dev/null +++ b/src/clean_table.py @@ -0,0 +1,27 @@ +import sqlite3 +import sys + + +def clean_table(database_name: str, table_name: str): + try: + sqlite_connection = sqlite3.connect(database_name) + cursor = sqlite_connection.cursor() + print("connect success") + cursor.execute(f'''DELETE FROM {table_name}''') + sqlite_connection.commit() + cursor.close() + + except sqlite3.Error as error: + print("delete data failed", error) + + finally: + if sqlite_connection: + sqlite_connection.close() + print("database.close") + + +if __name__ == "__main__": + if len(sys.argv) == 3: + clean_table(database_name=sys.argv[1], table_name=sys.argv[2]) + else: + print("Please insert param") diff --git a/src/convert_xml_to_csv.py b/src/convert_xml_to_csv.py new file mode 100644 index 0000000..7f8039b --- /dev/null +++ b/src/convert_xml_to_csv.py @@ -0,0 +1,80 @@ +import csv +import sys +import xml.etree.ElementTree as ET +from datetime import datetime +from typing import List + + +def check_leap_year(year: int): + if year % 400 == 0 or year % 100 != 0 and year % 4 == 0: + return True + else: + return False + + +def check_hired_greater_than_3year(hired_str: str): + hired = datetime.strptime(hired_str, "%Y-%m-%d") + current = datetime.now() + diff_year = current.year - hired.year + if diff_year >= 3: + return True + + days_per_month = 366 / 12 if check_leap_year(hired.year) else 365 / 12 + current_days = (days_per_month * current.month) + current.day + hired_days = (days_per_month * hired.month) + hired.day + if current_days - hired_days == 0: + return True + + return False + + +def read_xml_to_list_of_dict(path: str) -> tuple[List[dict], List[dict]]: + tree = ET.parse(path) + root = tree.getroot() + dev_mountain = [] + dev_club = [] + for child in root.iter('record'): + row = {} + for elem in child.iter(): + if elem.tag == "record": + continue + + if elem.tag == "BIRTHDAY" or elem.tag == "HIRED": + row[elem.tag] = datetime.strptime(elem.text, "%d-%m-%Y").strftime("%Y-%m-%d") + continue + + row[elem.tag] = elem.text + if check_hired_greater_than_3year(row["HIRED"]) \ + and row["POSITION"] in ["Airhostess", "Pilot", "Steward"] \ + and row["STATUS"] == "1" \ + and row["GENDER"] in ["0", "1"]: + dev_club.append(row) + continue + + if row["STATUS"] not in ["1", "2", "3"] and row["GENDER"] not in ["0", "1"]: + continue + + dev_mountain.append(row) + return dev_mountain, dev_club + + +def convert_xml_to_csv(input_file_path: str, output_folder: str): + dev_mountain, dev_club = read_xml_to_list_of_dict(input_file_path) + columns = dev_mountain[0].keys() + with open(f'{output_folder}/dev_mountain.csv', 'w', newline='') as output_file: + dict_writer = csv.DictWriter(output_file, columns) + dict_writer.writeheader() + dict_writer.writerows(dev_mountain) + + columns = dev_club[0].keys() + with open(f'{output_folder}/dev_club.csv', 'w', newline='') as output_file: + dict_writer = csv.DictWriter(output_file, columns) + dict_writer.writeheader() + dict_writer.writerows(dev_club) + + +if __name__ == "__main__": + if len(sys.argv) == 3: + convert_xml_to_csv(input_file_path=sys.argv[1], output_folder=sys.argv[2]) + else: + print("Please insert param") diff --git a/src/create_table.py b/src/create_table.py new file mode 100644 index 0000000..cae1e33 --- /dev/null +++ b/src/create_table.py @@ -0,0 +1,31 @@ +import sqlite3 +import sys + + +def create_table(database_name: str, table_name: str): + try: + sqlite_connection = sqlite3.connect(database_name) + cursor = sqlite_connection.cursor() + print("connect success") + cursor.execute(f'''CREATE TABLE IF NOT EXISTS {table_name} + (EMPID INT, PASSPORT TEXT, FIRSTNAME TEXT, LASTNAME TEXT, + GENDER INT, BIRTHDAY TEXT, NATIONALITY TEXT, HIRED TEXT, + DEPT TEXT, POSITION TEXT, STATUS INT, REGION TEXT)''') + sqlite_connection.commit() + cursor.close() + + except sqlite3.Error as error: + print("create table failed", error) + + finally: + if sqlite_connection: + sqlite_connection.close() + print("database.close") + + +if __name__ == "__main__": + if len(sys.argv) == 3: + create_table(database_name=sys.argv[1], table_name=sys.argv[2]) + else: + print("Please insert param") + diff --git a/src/csv_to_db.py b/src/csv_to_db.py new file mode 100644 index 0000000..2e6f615 --- /dev/null +++ b/src/csv_to_db.py @@ -0,0 +1,39 @@ +import csv +import sqlite3 +import sys +from typing import List + + +def insert_data(database_name: str, table_name: str, data: List[dict]): + try: + sqlite_connection = sqlite3.connect(database_name) + cursor = sqlite_connection.cursor() + print("connect success") + for val in data: + sqlite_insert_query = f"""INSERT INTO {table_name} + (EMPID, PASSPORT, FIRSTNAME, LASTNAME, GENDER, BIRTHDAY, + NATIONALITY, HIRED, DEPT, POSITION, STATUS, REGION) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);""" + count = cursor.execute(sqlite_insert_query, tuple(val.values())) + sqlite_connection.commit() + print("insert success", count) + cursor.close() + except sqlite3.Error as error: + print("insert failed", error) + finally: + if sqlite_connection: + sqlite_connection.close() + print("database.close") + + +def csv_to_sqlite(database_name: str, table_name: str, path: str): + with open(path) as f: + data = [{k: v for k, v in row.items()} for row in csv.DictReader(f, skipinitialspace=True)] + insert_data(database_name, table_name, data) + + +if __name__ == "__main__": + if len(sys.argv) == 4: + csv_to_sqlite(database_name=sys.argv[1], table_name=sys.argv[2], path=sys.argv[3]) + else: + print("Please insert param") diff --git a/src/generate_csv_by_nationality.py b/src/generate_csv_by_nationality.py new file mode 100644 index 0000000..e2f88e9 --- /dev/null +++ b/src/generate_csv_by_nationality.py @@ -0,0 +1,50 @@ +import csv +import sys +import xml.etree.ElementTree as ET +from datetime import datetime +from itertools import groupby +from typing import List + + +def read_xml_to_list_of_dict(path: str) -> List[dict]: + tree = ET.parse(path) + root = tree.getroot() + data = [] + for child in root.iter('record'): + row = {} + for elem in child.iter(): + if elem.tag == "record": + continue + + if elem.tag == "BIRTHDAY" or elem.tag == "HIRED": + row[elem.tag] = datetime.strptime(elem.text, "%d-%m-%Y").strftime("%Y-%m-%d") + continue + + row[elem.tag] = elem.text + + if row["STATUS"] not in ["1", "2", "3"] and row["GENDER"] not in ["0", "1"]: + continue + + data.append(row) + return data + + +def generate_csv_by_nationality(input_file_path: str, output_folder: str): + obj = read_xml_to_list_of_dict(input_file_path) + obj.sort(key=lambda x: x['NATIONALITY']) + + for key, val in groupby(obj, key=lambda x: x['NATIONALITY']): + contents = list(val) + + columns = contents[0].keys() + with open(f'{output_folder}/{key}.csv', 'w', newline='') as output_file: + dict_writer = csv.DictWriter(output_file, columns) + dict_writer.writeheader() + dict_writer.writerows(contents) + + +if __name__ == "__main__": + if len(sys.argv) == 3: + generate_csv_by_nationality(input_file_path=sys.argv[1], output_folder=sys.argv[2]) + else: + print("Please insert param") diff --git a/src/generate_json.py b/src/generate_json.py new file mode 100644 index 0000000..2a230e3 --- /dev/null +++ b/src/generate_json.py @@ -0,0 +1,17 @@ +import csv +import json +import sys + + +def generate_json(path: str, json_file_name: str): + with open(path) as csv_file: + data = [{key: val for key, val in row.items()} for row in csv.DictReader(csv_file, skipinitialspace=True)] + with open(json_file_name, "w") as json_file: + json.dump(data, json_file) + + +if __name__ == "__main__": + if len(sys.argv) == 3: + generate_json(path=sys.argv[1], json_file_name=sys.argv[2]) + else: + print("Please insert param") diff --git a/visualize_dev_club.ipynb b/visualize_dev_club.ipynb new file mode 100644 index 0000000..eb7c16f --- /dev/null +++ b/visualize_dev_club.ipynb @@ -0,0 +1,490 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "from datetime import datetime\n", + "from time import strptime" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv(\"/Users/isky/Documents/GitHub/hackathon-season2/playground/dev_club.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "df.columns = df.columns.str.lower()\n", + "df['position'] = df['position'].str.lower()\n", + "df['dept'] = df['dept'].str.lower()\n", + "df['gender'] = df['gender'].replace(0, 'male').replace(1, \"female\")\n", + "df['hired_year'] = df['hired'].map(lambda x: datetime.strptime(x,'%Y-%m-%d').year)\n", + "df['hired_dt'] = df['hired'].map(lambda x: datetime.strptime(x,'%Y-%m-%d'))" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
empidpassportfirstnamelastnamegenderbirthdaynationalityhireddeptpositionstatusregionagehired_agehired_yearhired_dt
03JUI65YBK7AFJadaBendermale1963-05-28Pakistan2001-02-11pilotpilot1Canada592120012001-02-11
15AZE20CSG4MULillianReesemale1982-12-03Ukraine2002-05-19flight planningsteward1Canada392020022002-05-19
223NFH65BYM0VBArmandHornmale1987-05-24Netherlands2007-06-19aircraft maintenanceairhostess1Ocenia351520072007-06-19
329CMK62UAD3VKRowanLeonardfemale1974-07-15Germany2004-03-27aircraft maintenancepilot1Ocenia481820042004-03-27
433EWD45RJW5YKCarterVelasquezmale1967-11-23Indonesia2005-02-27flight planningpilot1APAC541720052005-02-27
534BFS82MEY3CXSelmaBushmale1972-03-26Italy2008-10-10flight attendanceairhostess1USA501320082008-10-10
650MRC33GHJ2KWCalvinRoachfemale1999-04-16Mexico2011-03-18flight attendancesteward1Europe231120112011-03-18
766WKV12UQC6QFZacheryValentinemale1971-06-04Philippines2011-08-25flight attendancesteward1Middle East511120112011-08-25
880EUC74ENE9ZKRyanRushmale1998-06-13Italy2019-07-31aircraft maintenancepilot1Middle East24320192019-07-31
993UXL43IOW6OVHonoratoMaxwellfemale1982-03-09France2017-02-04aircraft maintenanceairhostess1Europe40520172017-02-04
1095OUP31WOE2IEDaraWilcoxfemale1996-06-29Singapore2011-05-18flight attendanceairhostess1Canada261120112011-05-18
1197SUF73DKV4QEDanteHartmale1999-12-21Peru2016-02-22pilotpilot1Europe22620162016-02-22
\n", + "
" + ], + "text/plain": [ + " empid passport firstname lastname gender birthday nationality \\\n", + "0 3 JUI65YBK7AF Jada Bender male 1963-05-28 Pakistan \n", + "1 5 AZE20CSG4MU Lillian Reese male 1982-12-03 Ukraine \n", + "2 23 NFH65BYM0VB Armand Horn male 1987-05-24 Netherlands \n", + "3 29 CMK62UAD3VK Rowan Leonard female 1974-07-15 Germany \n", + "4 33 EWD45RJW5YK Carter Velasquez male 1967-11-23 Indonesia \n", + "5 34 BFS82MEY3CX Selma Bush male 1972-03-26 Italy \n", + "6 50 MRC33GHJ2KW Calvin Roach female 1999-04-16 Mexico \n", + "7 66 WKV12UQC6QF Zachery Valentine male 1971-06-04 Philippines \n", + "8 80 EUC74ENE9ZK Ryan Rush male 1998-06-13 Italy \n", + "9 93 UXL43IOW6OV Honorato Maxwell female 1982-03-09 France \n", + "10 95 OUP31WOE2IE Dara Wilcox female 1996-06-29 Singapore \n", + "11 97 SUF73DKV4QE Dante Hart male 1999-12-21 Peru \n", + "\n", + " hired dept position status region age \\\n", + "0 2001-02-11 pilot pilot 1 Canada 59 \n", + "1 2002-05-19 flight planning steward 1 Canada 39 \n", + "2 2007-06-19 aircraft maintenance airhostess 1 Ocenia 35 \n", + "3 2004-03-27 aircraft maintenance pilot 1 Ocenia 48 \n", + "4 2005-02-27 flight planning pilot 1 APAC 54 \n", + "5 2008-10-10 flight attendance airhostess 1 USA 50 \n", + "6 2011-03-18 flight attendance steward 1 Europe 23 \n", + "7 2011-08-25 flight attendance steward 1 Middle East 51 \n", + "8 2019-07-31 aircraft maintenance pilot 1 Middle East 24 \n", + "9 2017-02-04 aircraft maintenance airhostess 1 Europe 40 \n", + "10 2011-05-18 flight attendance airhostess 1 Canada 26 \n", + "11 2016-02-22 pilot pilot 1 Europe 22 \n", + "\n", + " hired_age hired_year hired_dt \n", + "0 21 2001 2001-02-11 \n", + "1 20 2002 2002-05-19 \n", + "2 15 2007 2007-06-19 \n", + "3 18 2004 2004-03-27 \n", + "4 17 2005 2005-02-27 \n", + "5 13 2008 2008-10-10 \n", + "6 11 2011 2011-03-18 \n", + "7 11 2011 2011-08-25 \n", + "8 3 2019 2019-07-31 \n", + "9 5 2017 2017-02-04 \n", + "10 11 2011 2011-05-18 \n", + "11 6 2016 2016-02-22 " + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "def calculate_year(str_date):\n", + " date = datetime.strptime(str_date,'%Y-%m-%d')\n", + " today = datetime.today()\n", + " return today.year - date.year - ((today.month, today.day) < (date.month, date.day))" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "df['age'] = df['birthday'].map(calculate_year)\n", + "df['hired_age'] = df['hired'].map(calculate_year)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df.groupby(['gender']).sum().plot(\n", + "\tkind='pie', y='status', autopct='%1.0f%%')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "df_sum_hired_year = df.groupby(['hired_year'])['hired_year'].count().reset_index(name=\"count\")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGxCAYAAACKvAkXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/av/WaAAAACXBIWXMAAA9hAAAPYQGoP6dpAABMWElEQVR4nO3de1yUZf4//tc9MzAcBOR8EFTQ1PJYZoaVWVForSv1qcza1FL75uKma0fa0tzaZWvtuB/TDiq1aVZb2iczzTXRLLWfBqUdTDkIKiAiMDDAcJjr9wfcN4yAcpiZ+56Z1/PxmMejueeamevS0JfX/b6uSxJCCBARERF5EJ3aHSAiIiJyNgYgIiIi8jgMQERERORxGICIiIjI4zAAERERkcdhACIiIiKPwwBEREREHocBiIiIiDyOQe0OaJHVasWpU6cQEBAASZLU7g4RERF1gRACVVVViImJgU53/jkeBqAOnDp1CnFxcWp3g4iIiHqgsLAQsbGx523DANSBgIAAAM2/gIGBgSr3hoiIiLrCZDIhLi5O+Xv8fBiAOiDf9goMDGQAIiIicjFdKV9hETQRERF5HAYgIiIi8jgMQERERORxGICIiIjI4zAAERERkcdhACIiIiKPwwBEREREHocBiIiIiDwOAxARERF5HFUD0MqVKzFq1Chlx+XExER88cUX533PRx99hGHDhsHHxwcjR47Eli1bbF4XQmDJkiWIjo6Gr68vkpKScPToUUcOg4iIiFyMqgEoNjYW//jHP3Dw4EEcOHAA119/PaZNm4affvqpw/bffvstZsyYgTlz5iArKwspKSlISUnB4cOHlTYvvPACXnvtNaxatQr79++Hv78/kpOTUVdX56xhERERkcZJQgihdifaCgkJwT//+U/MmTOn3WvTp0+H2WzG5s2blWtXXnklxowZg1WrVkEIgZiYGDz88MN45JFHAACVlZWIjIxERkYG7rrrri71wWQyISgoCJWVlTwLjIiIyEV05+9vzdQANTU1YcOGDTCbzUhMTOywzd69e5GUlGRzLTk5GXv37gUA5OXlobi42KZNUFAQxo8fr7QhIqKuqaprQEFZjdrdIHII1U+DP3ToEBITE1FXV4c+ffpg48aNuOSSSzpsW1xcjMjISJtrkZGRKC4uVl6Xr3XWpiMWiwUWi0V5bjKZejQWIiJ3MifjAA4WlCPzkUmIC/FTuztEdqX6DNDQoUORnZ2N/fv3Y/78+Zg1axZ+/vlnp/YhPT0dQUFByiMuLs6p309EpDVNVoGswnI0WQWyCyvU7g6R3akegLy9vTF48GCMHTsW6enpGD16NF599dUO20ZFRaGkpMTmWklJCaKiopTX5WudtelIWloaKisrlUdhYWFvhkRE5PJOlteioam5RDTvjFnl3hDZn+oB6FxWq9XmdlRbiYmJ2LFjh8217du3KzVD8fHxiIqKsmljMpmwf//+TuuKAMBoNCpL8eUHEZEnyz1Trfw3AxC5I1VrgNLS0jBlyhT0798fVVVVWL9+PTIzM7Ft2zYAwMyZM9GvXz+kp6cDABYuXIhrr70WL774Im655RZs2LABBw4cwJtvvgkAkCQJixYtwnPPPYeLLroI8fHxePrppxETE4OUlBS1hklE5HLahp5cBiByQ6oGoNOnT2PmzJkoKipCUFAQRo0ahW3btuHGG28EABQUFECna52kmjBhAtavX4+nnnoKTz75JC666CJs2rQJI0aMUNo89thjMJvNeOCBB1BRUYGrr74aW7duhY+Pj9PHR0TkqnJL2wSg0moIISBJkoo9IrIvze0DpAXcB4iIPN0f3t6PPcfOKM8PPJWEsD5GFXtEdGEuuQ8QERFpx7l1P6wDInfDAERERDbqGppwsqIWADA8pvlf0XmlDEDkXhiAiIjIRn5Zc9gJ8vXC2AHBAFgITe6HAYiIiGzIsz3xYf5ICPNvvtZmWTyRO2AAIiIiG/JsT0KYP+LD+zRf4y0wcjMMQEREZCO3gxmg42U1aLJy0TC5DwYgIiKyId/uig/3R0xfX3jrdahvsuJUS2E0kTtgACIiIhvykvf4MH/odRIGhDafBM9CaHInDEBERKQoN9ejvKYBQHMAAoCE8JZC6FIWQpP7YAAiIiJFXssS+OggH/h5N5+WFB/WXAjNzRDJnTAAERGRom0BtEwuhOYtMHInDEBERKRQCqDbBKD4lltgXApP7oQBiIiIFG0LoGXyf5+qrEVdQ5Mq/SKyNwYgIiJSyLM8g1o2QASAUH9vBPoYIETzfkBE7oABiIiIAABWq1DOAWs7AyRJkrIjNI/EIHfBAERERACAYlMd6hqsMOgkxAb72rzGQmhyNwxAREQEoPX2V/9QPxj0tn89yDNCLIQmd8EAREREAFpvbyW0uf0li1dOhWcAIvfAAERERABab2/FMwCRB2AAIiIiAK3hJqHNCjCZHIDOmutRUVPv1H4ROQIDEBERAeh4DyCZv9GAqEAfm3ZErowBiIiIUN9oReHZ5j1+OqoBAngbjNwLAxAREaHgrBlWAfh76xEeYOywDY/EIHfCAERERK2HoIb7Q5KkDtskcAaI3AgDEBERtan/aV8ALYvnZojkRhiAiIiodQVYJ/U/QOvqsPwzZlitwin9InIUBiAiIlJmdRLCOw9AscG+MOgk1DY0oaSqzlldI3IIBiAiImqtATrPDJCXXof+IX427YlcFQMQEZGHM9U14Ey1BQAw8DwBCGAdELkPBiAiIg+X3xJmwvoYEejjdd62yl5AnAEiF8cARETk4bpSAC2T9wKSD04lclWqBqD09HSMGzcOAQEBiIiIQEpKCo4cOXLe90yaNAmSJLV73HLLLUqb2bNnt3t98uTJjh4OEZFLkut5zlcALUtoWSbPvYDI1RnU/PJdu3YhNTUV48aNQ2NjI5588kncdNNN+Pnnn+Hv3/EP4ieffIL6+taD+MrKyjB69GjccccdNu0mT56MtWvXKs+Nxo53NiUi8nTnOwPsXHJIKiyvRX2jFd4G3kgg16RqANq6davN84yMDERERODgwYOYOHFih+8JCQmxeb5hwwb4+fm1C0BGoxFRUVH27TARkRvKbbmd1ZUAFBFghJ+3HjX1TSg4W4PBEZ1vnEikZZqK7pWVlQDah5zzWb16Ne666652M0aZmZmIiIjA0KFDMX/+fJSVldm1r0RE7kAIoRQ0d+UWmCRJPBSV3IKqM0BtWa1WLFq0CFdddRVGjBjRpfd89913OHz4MFavXm1zffLkybjtttsQHx+PnJwcPPnkk5gyZQr27t0LvV7f7nMsFgssFovy3GQy9W4wREQuorTKAnN9E3QSENeyx8+FxIf546dTppZC6EjHdpDIQTQTgFJTU3H48GHs2bOny+9ZvXo1Ro4ciSuuuMLm+l133aX898iRIzFq1CgMGjQImZmZuOGGG9p9Tnp6OpYtW9bzzhMRuSh5P5/YYD8YDe3/gdgRHopK7kATt8AWLFiAzZs3Y+fOnYiNje3Se8xmMzZs2IA5c+ZcsG1CQgLCwsJw7NixDl9PS0tDZWWl8igsLOxW/4mIXFVeF47AOJd8Jhh3gyZXpuoMkBACf/rTn7Bx40ZkZmYiPj6+y+/96KOPYLFY8Ic//OGCbU+cOIGysjJER0d3+LrRaOQqMSLySN1ZASZjDRC5A1VngFJTU/Hee+9h/fr1CAgIQHFxMYqLi1FbW6u0mTlzJtLS0tq9d/Xq1UhJSUFoaKjN9erqajz66KPYt28f8vPzsWPHDkybNg2DBw9GcnKyw8dERORKckubV4B1ZRNEmXxcxukqC6rqGhzSLyJHUzUArVy5EpWVlZg0aRKio6OVxwcffKC0KSgoQFFRkc37jhw5gj179nR4+0uv1+PHH3/E73//ewwZMgRz5szB2LFj8fXXX3OWh4joHLnKDFDXl7MH+XohrI83ACD/TI1D+kXkaKrfAruQzMzMdteGDh3a6Xt9fX2xbdu23naNiMjtNTZZUVDWHGDiu1EDBDTfBjtTXY/cM9UYGRvkiO4ROZQmiqCJiMj5TpTXotEq4OOlQ3SgT7feyyMxyNUxABEReSg5vAwM9YdOJ3Xrva2HojIAkWtiACIi8lC5PVgCL+NKMHJ1DEBERB5KXgHWnSXwMnnVWG6puUv1nERawwBEROSh8nqwAkzWP9QPkgRUWxpRWm258BuINIYBiIjIQ/VkE0SZ0aBHbLBv8+dwR2hyQQxAREQeqKa+EUWVdQCAQT2oAQK4EoxcGwMQEZEHkjcwDPbzQl8/7x59BguhyZUxABEReaDcMz0vgJbJq8dyeAuMXBADEBGRB5LrdnpSAC1rnQGqtkufiJyJAYiIyAPl9WIPIJkcgArO1qCxyWqXfhE5CwMQEZEHyu3FCjBZTJAvjAYdGpoETlbU2qtrRE7BAERE5GGEEMomiL2ZAdLpJCVA5bIQmlwMAxARkYcpr2mAqa4RQPM5YL2h1AGxEJpcDAMQEZGHkWd/+vX1hY+Xvlef1ToDxEJoci0MQEREHsYe9T8y7gVErooBiIjIw/TmCIxzyTVEvAVGroYBiIjIw7TuAWSPGaDmfYROVdahtr6p159H5CwMQEREHsYeewDJQvy90dfPCwCQX8ZZIHIdDEBERB7EahXIawkqCb3YBbot1gGRK2IAIiLyICcralHfaIWXXkK/YF+7fKayEqyUK8HIdTAAERF5EHmWZkCoP/Q6yS6fmcDNEMkFMQAREXkQe64Ak8mF0LwFRq6EAYiIyIMoBdB2DUCsASLXwwBERORBcu24AkwmB6CKmgaUm+vt9rlEjsQARETkQfJajqyIt9MKMADw9dYjJsgHAOuAyHUwABEReYi6hiacKK8FYN8aIACID+dKMHItDEBERB6i4GwNhAACjAaE9fG262ezDohcDQMQEZGHyJWPwAj3hyTZZwm8jCvByNUwABEReQhHrACTKYeiMgCRi2AAIiLyEI4ogJYltLkFZrUKu38+kb2pGoDS09Mxbtw4BAQEICIiAikpKThy5Mh535ORkQFJkmwePj4+Nm2EEFiyZAmio6Ph6+uLpKQkHD161JFDISLSPGUTRDsugZf16+sLL70ES6MVRaY6u38+kb2pGoB27dqF1NRU7Nu3D9u3b0dDQwNuuukmmM3nn0INDAxEUVGR8jh+/LjN6y+88AJee+01rFq1Cvv374e/vz+Sk5NRV8cfSiLyXHINkCNugRn0OvQP8Wv5Hq4EI+0zqPnlW7dutXmekZGBiIgIHDx4EBMnTuz0fZIkISoqqsPXhBB45ZVX8NRTT2HatGkAgHfffReRkZHYtGkT7rrrLvsNgIjIRVTWNKCsZZPCgQ4IQEDzrbWcUjPyzphxzUXhDvkOInvRVA1QZWUlACAkJOS87aqrqzFgwADExcVh2rRp+Omnn5TX8vLyUFxcjKSkJOVaUFAQxo8fj7179zqm40REGpdX1jz7ExFgRB+jY/7tm6DsBcRCaNI+zQQgq9WKRYsW4aqrrsKIESM6bTd06FCsWbMGn376Kd577z1YrVZMmDABJ06cAAAUFxcDACIjI23eFxkZqbx2LovFApPJZPMgInIncgG0PY/AOFcC9wIiF6LqLbC2UlNTcfjwYezZs+e87RITE5GYmKg8nzBhAi6++GK88cYbePbZZ3v03enp6Vi2bFmP3ktE5Ary5D2AHLACTMbNEMmVaGIGaMGCBdi8eTN27tyJ2NjYbr3Xy8sLl156KY4dOwYASm1QSUmJTbuSkpJO64bS0tJQWVmpPAoLC3swCiIi7cpx4B5AMnl12YnyGlgamxz2PUT2oGoAEkJgwYIF2LhxI7766ivEx8d3+zOamppw6NAhREdHAwDi4+MRFRWFHTt2KG1MJhP2799vM3PUltFoRGBgoM2DiMidtM4AOS4Ahfdpri+yCqCgrMZh30NkD6oGoNTUVLz33ntYv349AgICUFxcjOLiYtTW1iptZs6cibS0NOX5X//6V3z55ZfIzc3F999/jz/84Q84fvw45s6dC6B5hdiiRYvw3HPP4f/+7/9w6NAhzJw5EzExMUhJSXH2EImIVCeEcOgeQDJJkpSAxVPhSetUrQFauXIlAGDSpEk219euXYvZs2cDAAoKCqDTtea08vJyzJs3D8XFxQgODsbYsWPx7bff4pJLLlHaPPbYYzCbzXjggQdQUVGBq6++Glu3bm23YSIRkScoMVlQ29AEvU5CXLCfQ78rPswfh05Wsg6INE8SQnDP8nOYTCYEBQWhsrKSt8OIyOV9m3MGd7+1H/Fh/tj5yCSHftcr//0Nr/z3KKZfHofnbx/l0O8iOld3/v7WRBE0ERE5jnL7y4H1PzKuBCNXwQBEROTmcp1QAC1LaFlmn3uGx2GQtjEAERG5OWfOAA0Ma64xOlNdj8raBod/H1FPMQAREbm5PCfsASQL8PFCeIARAJDP22CkYQxARERurKHJioKzzXvyOHIJfFusAyJXwABEROTGCs/WoMkq4OulR1Sgc7YCGRTOvYBI+xiAiIjcWNv6H0mSnPKdnAEiV8AARETkxpQVYE66/QW0HriaW8qVYKRdDEBERG4s14kF0LK2M0Dca5e0igGIiMiN5bXsx+OMJfCy/iF+0ElATX0TTldZnPa9RN3BAERE5MacuQeQzNugQ1xI835A8i04Iq1hACIiclNmSyNKTM0zMPIOzc6SwEJo0jgGICIiNyWHj1B/bwT5eTn1u+VC6DweiUEaxQBEROSmclW4/SWTV53xFhhpFQMQEZGbynPiIajn4i0w0joGICIiN6WsAHPiHkAyOXQVnK1BQ5PV6d9PdCEMQEREbsqZh6CeKyrQBz5eOjRaBU6U1zr9+4kuhAGIiMgNCSFaN0EMd+4KMADQ6SQWQpOmMQAREbmhMnM9quoaIUnNGxOqQZ55YiE0aREDEBGRG5JDR7++vvDx0qvSB7kOiKfCkxYxABERuSE1jsA4l3ImGGeASIMYgIiI3JAah6CeS159xqXwpEUMQEREbkiedVGjAFomh69iUx3MlkbV+kHUEQYgIiI3pMYhqOfq6+eNEH9vAEB+GWeBSFsYgIiI3EyTVeB4WQ0AdQNQ2+/nSjDSGgYgIiI3c7K8FvVNVngbdIjp66tqX+J5JAZpFAMQEZGbyW1ZATYw1A96naRqXxiASKsYgIiI3IwW6n9kCdwLiDSKAYiIyM3kqXgExrnkPuSVVkMIoXJviFoxABERuRktzQANCPWDJAGmukacNder3R0iBQMQEZGbkVdcqbkJoszHS4+YoOZCbN4GIy1RNQClp6dj3LhxCAgIQEREBFJSUnDkyJHzvuett97CNddcg+DgYAQHByMpKQnfffedTZvZs2dDkiSbx+TJkx05FCIiTahraMLJiloA2pgBAoCEcB6JQdqjagDatWsXUlNTsW/fPmzfvh0NDQ246aabYDZ3/kOSmZmJGTNmYOfOndi7dy/i4uJw00034eTJkzbtJk+ejKKiIuXx/vvvO3o4RESqkzccDPQxKJsQqo2HopIWGdT88q1bt9o8z8jIQEREBA4ePIiJEyd2+J5169bZPH/77bfx8ccfY8eOHZg5c6Zy3Wg0Iioqyv6dJiLSMHmWJT68DyRJ3SXwstal8NUq94SolaZqgCorKwEAISEhXX5PTU0NGhoa2r0nMzMTERERGDp0KObPn4+ysjK79pWISIvkWZZBGrn9BbRZCcYZINIQVWeA2rJarVi0aBGuuuoqjBgxosvve/zxxxETE4OkpCTl2uTJk3HbbbchPj4eOTk5ePLJJzFlyhTs3bsXer2+3WdYLBZYLBbluclk6t1giIhUoqUVYDK5GDu/rAZNVqH65oxEgIYCUGpqKg4fPow9e/Z0+T3/+Mc/sGHDBmRmZsLHx0e5ftdddyn/PXLkSIwaNQqDBg1CZmYmbrjhhnafk56ejmXLlvVuAEREGpBb2nybKT5cOwEopq8vvPU61DdacaqiFnEhfmp3iUgbt8AWLFiAzZs3Y+fOnYiNje3Se5YvX45//OMf+PLLLzFq1Kjztk1ISEBYWBiOHTvW4etpaWmorKxUHoWFhd0eAxGRFmhxBkivkzAgtDn0sBCatELVACSEwIIFC7Bx40Z89dVXiI+P79L7XnjhBTz77LPYunUrLr/88gu2P3HiBMrKyhAdHd3h60ajEYGBgTYPIiJXU26uR3lNAwBgYKh2AhDQphC6lIXQpA2qBqDU1FS89957WL9+PQICAlBcXIzi4mLU1tYqbWbOnIm0tDTl+fPPP4+nn34aa9aswcCBA5X3VFc3/1BVV1fj0Ucfxb59+5Cfn48dO3Zg2rRpGDx4MJKTk50+RiIiZ8lrWQIfFegDf6NmKhwAtN6SYyE0aYWqAWjlypWorKzEpEmTEB0drTw++OADpU1BQQGKiops3lNfX4/bb7/d5j3Lly8HAOj1evz444/4/e9/jyFDhmDOnDkYO3Ysvv76axiNRqePkYjIWeQl8Akaqv+RDQprXgnGW2CkFar+E6ErB+NlZmbaPM/Pzz9ve19fX2zbtq0XvSIick1arP+RcQaItEYTRdBERNR7uS0bDWoyALX06WRFLeoamlTuDREDEBGR28jV8C2wUH9vBPgYIARwvKxG7e4QMQAREbkDq1Uo54DFt9TbaIkkScqGiDwSg7SAAYiIyA0Um+pQ12CFQSchNthX7e50iIeikpYwABERuQG5uLh/qB+89Nr8o105E6yUAYjUp82fEiIi6hZ5ViVBgwXQstZT4RmASH0MQEREbkA5A8wFAhBvgZEWMAAREbmB1j2AtFcALZMD0FlzPSpq6lXuDXk6BiAiIjeg5U0QZf5GAyIDm3fk520wUhsDEBGRi6tvtKLwbPPeOoM0uAdQWwktM1QMQKQ2BiAiIhdXcLYGVgH4e+sRHqDtMw95JAZpBQMQEZGLUwqgw/0hSZLKvTk/eZVaLpfCk8oYgIiIXJwrFEDLuBKMtIIBiIjIxblCAbRM7mP+GTOsVqFyb8iTMQAREbk4V9gEURYX4geDTkJtQxNKqurU7g55MAYgIiIXJ88AafEU+HN56XXoH+IHgEdikLoYgIiIXFhVXQNKqywAgIEuMAMEsA6ItIEBiIjIhcmzP2F9jAj08VK5N10Tz5VgpAE9CkDXX389Kioq2l03mUy4/vrre9snIiLqojwXqv+Rte4FVK1yT8iT9SgAZWZmor6+/TkudXV1+Prrr3vdKSIi6hp5FsUVVoDJeCo8aYGhO41//PFH5b9//vlnFBcXK8+bmpqwdetW9OvXz369IyKi81KWwLtAAbRMPg6jsLwW9Y1WeBtYjUHO160ANGbMGEiSBEmSOrzV5evri3/961926xwREZ2fK94Ciww0ws9bj5r6JhSW12BQuPY3cCT3060AlJeXByEEEhIS8N133yE8PFx5zdvbGxEREdDr9XbvJBERtSeEcKkl8DJJkhAf5o+fTpmQV2pmACJVdCsADRgwAABgtVod0hkiIuq60ioLqi2N0EnNGwy6EjkA5Z6pBhCpdnfIA3UrALV19OhR7Ny5E6dPn24XiJYsWdLrjhER0fnJ++jEBvvBaHCt2fcEFkKTynoUgN566y3Mnz8fYWFhiIqKsjl9WJIkBiAiIidwpTPAziUXbXMvIFJLjwLQc889h7/97W94/PHH7d0fIiLqIpcOQC0rwTgDRGrp0drD8vJy3HHHHfbuCxERdYM8ezLIhQqgZXJoO91Sx0TkbD0KQHfccQe+/PJLe/eFiIi6Qd5JWZ5NcSVBvl4I6+MNAMjnLBCpoEe3wAYPHoynn34a+/btw8iRI+HlZXv+zEMPPWSXzhERUccam6woOFsDwLU2QWwrPswfZ6rrkVNajRH9gtTuDnmYHgWgN998E3369MGuXbuwa9cum9ckSWIAIiJysBPltWhoEjAadIgO9FG7Oz0SH+aP/y+/nHVApIoe3QLLy8vr9JGbm9vlz0lPT8e4ceMQEBCAiIgIpKSk4MiRIxd830cffYRhw4bBx8cHI0eOxJYtW2xeF0JgyZIliI6Ohq+vL5KSknD06NFuj5OISKvaFkDrdNIFWmsTC6FJTaoewLJr1y6kpqZi37592L59OxoaGnDTTTfBbO78h+Hbb7/FjBkzMGfOHGRlZSElJQUpKSk4fPiw0uaFF17Aa6+9hlWrVmH//v3w9/dHcnIy6urqnDEsIiKHy3XhFWAyHopKapKEEKK7b7r//vvP+/qaNWt61JnS0lJERERg165dmDhxYodtpk+fDrPZjM2bNyvXrrzySowZMwarVq2CEAIxMTF4+OGH8cgjjwAAKisrERkZiYyMDNx1110X7IfJZEJQUBAqKysRGBjYo7EQETnSU5sO4b19BUi9bhAeTR6mdnd65GhJFW58eTcCjAb8+MxNNnvKEfVEd/7+7vEy+LaP06dP46uvvsInn3yCioqKnnwkgOagAgAhISGdttm7dy+SkpJsriUnJ2Pv3r0Amm/PFRcX27QJCgrC+PHjlTZERK6u9RaY660Ak/UP9YMkAVWWRpyprle7O+RhelQEvXHjxnbXrFYr5s+fj0GDBvWoI1arFYsWLcJVV12FESNGdNquuLgYkZG258ZERkaiuLhYeV2+1lmbc1ksFlgsFuW5yWTq0RiIiJxF3gPIlW+BGQ16xAb7ovBsLXJLqxEeYFS7S+RB7FYDpNPpsHjxYrz88ss9en9qaioOHz6MDRs22KtLXZaeno6goCDlERcX5/Q+EBF1VU19I4oqm2saE1w4AAEshCb12LUIOicnB42N3d/Rc8GCBdi8eTN27tyJ2NjY87aNiopCSUmJzbWSkhJERUUpr8vXOmtzrrS0NFRWViqPwsLCbo+BiMhZ8s807//T188Lwf7eKvemd3goKqmlR7fAFi9ebPNcCIGioiJ8/vnnmDVrVpc/RwiBP/3pT9i4cSMyMzMRHx9/wfckJiZix44dWLRokXJt+/btSExMBADEx8cjKioKO3bswJgxYwA039Lav38/5s+f3+FnGo1GGI2ceiUi1+DKZ4CdSx5DLgMQOVmPAlBWVpbNc51Oh/DwcLz44osXXCHWVmpqKtavX49PP/0UAQEBSo1OUFAQfH19AQAzZ85Ev379kJ6eDgBYuHAhrr32Wrz44ou45ZZbsGHDBhw4cABvvvkmgOaNGBctWoTnnnsOF110EeLj4/H0008jJiYGKSkpPRkuEZGmyEdgJLhwAbQsIZwzQKSOHgWgnTt32uXLV65cCQCYNGmSzfW1a9di9uzZAICCggLodK136iZMmID169fjqaeewpNPPomLLroImzZtsimcfuyxx2A2m/HAAw+goqICV199NbZu3QofH9fcLZWIqC25ADrBRY/AaEueATpeZkZjkxUGvarb05EH6dE+QLLS0lJl5+ahQ4ciPDzcbh1TE/cBIiItS1nxDbILK/D6PZfh5pHRanenV6xWgWFLtqK+0Ypdj07CgFDXD3WkHofvA2Q2m3H//fcjOjoaEydOxMSJExETE4M5c+agpqamR50mIqILE0Igt1Q+Bd71w4JOJyE+lHVA5Hw9CkCLFy/Grl278Nlnn6GiogIVFRX49NNPsWvXLjz88MP27iMREbUor2mAqa55te1AN5ktUY7EKGUAIufpUQ3Qxx9/jP/85z82tTs333wzfH19ceeddyq1PUREZF9yAXS/vr7w9dar3Bv7YCE0qaFHM0A1NTXtdloGgIiICN4CIyJyIHfYAfpcPBSV1NCjAJSYmIilS5fanK5eW1uLZcuWKfvxEBGR/bnDKfDnkmeA5NomImfo0S2wV155BZMnT0ZsbCxGjx4NAPjhhx9gNBrx5Zdf2rWDRETUKs8tZ4Ca9zM6VVmH2vomt7m1R9rWowA0cuRIHD16FOvWrcOvv/4KAJgxYwbuueceZQNDIiKyP2UXaDfYA0gW7OeFIF8vVNY2IL/MjIujuf0IOV6PAlB6ejoiIyMxb948m+tr1qxBaWkpHn/8cbt0joiIWlmtAnllLZsgutEMkCRJiA/zR3ZhBfLOMACRc/SoBuiNN97AsGHD2l0fPnw4Vq1a1etOERFRe6cqa1HfaIWXXkJssJ/a3bErrgQjZ+tRACouLkZ0dPvdR8PDw1FUVNTrThERUXtyOBgQ6g+9TlK5N/Ylz2jlci8gcpIeBaC4uDh888037a5/8803iImJ6XWniIioPXdcAi+TC6Fzz3AlGDlHj2qA5s2bh0WLFqGhoQHXX389AGDHjh147LHHuBM0EZGDyDNA7lT/I+NeQORsPQpAjz76KMrKyvDHP/4R9fX1AAAfHx88/vjjSEtLs2sHiYiomTvuASQbGNZc01RR04Bycz2C/b1V7hG5ux4FIEmS8Pzzz+Ppp5/GL7/8Al9fX1x00UUwGo327h8REbWQj8FwxwDk521AdJAPiirrkHvGjLEMQORgPQpAsj59+mDcuHH26gsREXXC0tiEE+W1AICE8D4q98YxEsL9UVRZh7wzZowdEKx2d8jN9agImoiInKugrAZCAAFGA8L6uOfsSGsdEAuhyfEYgIiIXEBOaesO0JLkXkvgZcpKMC6FJydgACIicgF5blwALUvgSjByIgYgIiIX4M4F0LK2S+GtVqFyb8jdMQAREbkAT5gBig32hZdegqXRiiJTndrdITfHAERE5ALkADTITVeAAYBBr0P/kOb9gPJYB0QOxgBERKRxlbUNOFPdvOnsQDeeAQJaC6G5EowcjQGIiEjj5NmfiAAj+hh7tX2b5smnwudwBogcjAGIiEjjPKEAWsYzwchZGICIiDROroeRZ0fcGQMQOQsDEBGRxrnzIajnkvcCOlFeA0tjk8q9IXfGAEREpHHybEhCmPuuAJOFt9Q5WQVQeLZG7e6QG2MAIiLSMCFE6x5AHnALTJIkZaaLhdDkSAxAREQaVmKyoKa+CXqdhLhgP7W74xSsAyJnYAAiItKw3JYVYHHBvvA2eMYf2UoA4gwQOZBn/DQREbkoTzgC41zyajfOAJEjqRqAdu/ejalTpyImJgaSJGHTpk3nbT979mxIktTuMXz4cKXNM8880+71YcOGOXgkRESO0boE3v0LoGVysXcuAxA5kKoByGw2Y/To0VixYkWX2r/66qsoKipSHoWFhQgJCcEdd9xh02748OE27fbs2eOI7hMROZwnzgANDGuudTpTbYGprkHl3pC7UnVP9SlTpmDKlCldbh8UFISgoCDl+aZNm1BeXo777rvPpp3BYEBUVJTd+klEpJZcZQm85wSgAB8vhAcYUVplQV6pGaPj+qrdJXJDLl0DtHr1aiQlJWHAgAE2148ePYqYmBgkJCTgnnvuQUFBgUo9JCLquYYmKwpa9sLxhCXwbXElGDmaywagU6dO4YsvvsDcuXNtro8fPx4ZGRnYunUrVq5ciby8PFxzzTWoqqrq9LMsFgtMJpPNg4hIbYVna9BkFfD10iMywEft7jiVPOPFOiByFJc9Vvidd95B3759kZKSYnO97S21UaNGYfz48RgwYAA+/PBDzJkzp8PPSk9Px7JlyxzZXSKibpNnPwaG+UOnk1TujXNxBogczSVngIQQWLNmDe699154e3uft23fvn0xZMgQHDt2rNM2aWlpqKysVB6FhYX27jIRUbcpR2B42O0voHXVW17LPkhE9uaSAWjXrl04duxYpzM6bVVXVyMnJwfR0dGdtjEajQgMDLR5EBGpzRMLoGVtN0MUQqjcG3JHqgag6upqZGdnIzs7GwCQl5eH7OxspWg5LS0NM2fObPe+1atXY/z48RgxYkS71x555BHs2rUL+fn5+Pbbb3HrrbdCr9djxowZDh0LEZG95ZY2z3540hJ4Wf8QP+gkwFzfhNNVFrW7Q25I1RqgAwcO4LrrrlOeL168GAAwa9YsZGRkoKioqN0KrsrKSnz88cd49dVXO/zMEydOYMaMGSgrK0N4eDiuvvpq7Nu3D+Hh4Y4bCBGRA3jiHkAyb4MOcSF+OF5Wg9xSMyIDPasInBxP1QA0adKk805tZmRktLsWFBSEmpqaTt+zYcMGe3SNiEhVZksjSkzNMx+eGICA5nEfL6tB3hkzEgeFqt0dcjMuWQNEROTu5NmfEH9v9PU7/2IPd9W6EoyF0GR/DEBERBqU58EF0LLWlWBcCk/2xwBERKRBnlz/I+NmiORIDEBERBqkrADzwD2AZHL4KyirQUOTVeXekLthACIi0iDeAgOiAn3g46VDo1XgRHmt2t0hN8MARESkMUII5bZPfFgflXujHp1OwsBQFkKTYzAAERFpTJm5HlV1jZAkYECon9rdUZV8DEhuKeuAyL4YgIiINEa+/dWvry98vPQq90ZdCWFcCUaOwQBERKQxnnwExrnkXwPOAJG9MQAREWmMJx+Cei55FRxngMjeGICIiDQmr5R7AMnkEFhsqoPZ0qhyb8idMAAREWmMsgliuOeuAJP19fNGsJ8XACC/jLNAZD8MQEREGtJkFThe1nzgM2+BNWs9E4wBiOyHAYiISENOVdSivskKb4MOMX191e6OJihngrEQmuyIAYiISENyWlaADQz1g14nqdwbbYjnmWDkAAxAREQawkNQ2+OhqOQIDEBERBqSxyMw2lGWwpdWQwihcm/IXTAAERFpCA9BbU8+D8xU14iz5nqVe0PuggGIiEhD5B2P5VkPAny89OjXUhDOlWBkLwxAREQaUdfQhFOVtQA4A3Qu5VBUBiCyEwYgIiKNyC8zQwgg0MeAEH9vtbujKTwTjOyNAYiISCOUIzDC+0CSuAS+rdbNEKtV7gm5CwYgIiKN4CGoneNu0GRvDEBERBrBPYA6l9CyLUB+WQ2arFwKT73HAEREpBHKEniuAGunX7AvvPU61DdacaqiVu3ukBtgACIi0gjOAHVOr5MwINQPAG+DkX0wABERaUBFTb2yyZ+88R/Zal0JxkJo6j0GICIiDZALoKMCfeBvNKjcG21SjsTgDBDZAQMQEZEGKEvgefurUzwUleyJAYiISAOU+h8WQHdKPiCWM0BkDwxAREQawENQL0xeHXeyohZ1DU0q94ZcnaoBaPfu3Zg6dSpiYmIgSRI2bdp03vaZmZmQJKndo7i42KbdihUrMHDgQPj4+GD8+PH47rvvHDgKIqLey+US+AsK9fdGgI8BQgAFZ2vU7g65OFUDkNlsxujRo7FixYpuve/IkSMoKipSHhEREcprH3zwARYvXoylS5fi+++/x+jRo5GcnIzTp0/bu/tERHZhtQrliAf5Ng+1J0lSax0QV4JRL6m61GDKlCmYMmVKt98XERGBvn37dvjaSy+9hHnz5uG+++4DAKxatQqff/451qxZgyeeeKI33SUicohiUx3qGqww6CTEBvuq3R1Niw/zxw8nKlkITb3mkjVAY8aMQXR0NG688UZ88803yvX6+nocPHgQSUlJyjWdToekpCTs3btXja4SEV2QXP/TP8QPXnqX/GPZaZRCaJ4KT73kUj9p0dHRWLVqFT7++GN8/PHHiIuLw6RJk/D9998DAM6cOYOmpiZERkbavC8yMrJdnVBbFosFJpPJ5kFE5Cy53AG6y7gXENmLS+22NXToUAwdOlR5PmHCBOTk5ODll1/Gv//97x5/bnp6OpYtW2aPLhIRdZs8m8EC6AtL4KnwZCcuNQPUkSuuuALHjh0DAISFhUGv16OkpMSmTUlJCaKiojr9jLS0NFRWViqPwsJCh/aZiKitXBZAd5k8S1ZmrkdlTYPKvSFX5vIBKDs7G9HR0QAAb29vjB07Fjt27FBet1qt2LFjBxITEzv9DKPRiMDAQJsHEZGz8BDUrvM3GhAZaATQGhyJekLVW2DV1dXK7A0A5OXlITs7GyEhIejfvz/S0tJw8uRJvPvuuwCAV155BfHx8Rg+fDjq6urw9ttv46uvvsKXX36pfMbixYsxa9YsXH755bjiiivwyiuvwGw2K6vCiIi0pL7RisKWPW14C6xr4sP8UWKyIO+MGZf2D1a7O+SiVA1ABw4cwHXXXac8X7x4MQBg1qxZyMjIQFFREQoKCpTX6+vr8fDDD+PkyZPw8/PDqFGj8N///tfmM6ZPn47S0lIsWbIExcXFGDNmDLZu3dquMJqISAsKztbAKgA/bz0iAoxqd8clxIf1wb7cs6wDol6RhBBC7U5ojclkQlBQECorK3k7jIgcavvPJZj37gEMjwnE5w9do3Z3XMJbu3Pxty2/4JZR0Vhx92Vqd4c0pDt/f7t8DRARkSuTd4BOCGcBdFfJtwq5FxD1BgMQEZGKcktZAN1d8W2WwlutvIlBPcMARESkolyeAt9tcSF+0Osk1DY0oaSqTu3ukItiACIiUhGXwHefl16H/iF+AHgbjHqOAYiISCVVdQ0orbIAAAYyAHWLHBh5KCr1FAMQEZFK8s807/8T1scbQb5eKvfGtcTzSAzqJQYgIiKVyDsZJ/AIjG5L4KGo1EsMQEREKuEKsJ5TboGV8jgM6hkGICIilSgF0DwCo9vkWbPC8lrUN1pV7g25IgYgIiKVcAVYz0UGGuHrpUeTVaCwvEbt7pALYgAiIlKBEEIJQNwDqPskSWothOZSeOoBBiAiIhWUVltQbWmETgL6h/qp3R2XxEJo6g0GICIiFcizFrHBfjAa9Cr3xjUlcC8g6gUGICIiFeSy/qfX5OJxrgSjnmAAIiJSAQugey++ZSUYb4FRTzAAERGpQN4DKIFL4HssPrT51+50VXM9FVF3MAAREakgr2UXaM4A9VyQnxdC/b0BAPmcBaJuYgAiInKyxiYrCs42712TEM5jMHpDnkFjITR1FwMQEZGTnayoRUOTgNGgQ3Sgj9rdcWncC4h6igGIiMjJ2p4BptNJKvfGtcmF0PLBskRdxQBERORkXAJvP8oMEG+BUTcxABERORkLoO1H2Q261AwhhMq9IVfCAERE5GTcA8h++of4QZKAKksjzlTXq90dciEMQERETpan7AHEFWC95eOlR2ywLwDeBqPuYQAiInKimvpGnKqsA8BT4O1FKYTmkRjUDQxAREROlH+mef+fvn5eCG7ZxI96J4GF0NQDDEBERE7E+h/7i+ep8NQDDEBERE7EFWD2x6Xw1BMMQERETiTPUrD+x37kAHS8zIwmK5fCU9cwABEROZE8S8EVYPbTr68vvA06NDQJnCyvVbs75CIYgIiInEQIYXMMBtmHTichPrT51zOHR2JQF6kagHbv3o2pU6ciJiYGkiRh06ZN523/ySef4MYbb0R4eDgCAwORmJiIbdu22bR55plnIEmSzWPYsGEOHAURUdeU1zSgsrYBADAwlAHInngoKnWXqgHIbDZj9OjRWLFiRZfa7969GzfeeCO2bNmCgwcP4rrrrsPUqVORlZVl02748OEoKipSHnv27HFE94mIukUugI4J8oGvt17l3riX+HAWQlP3GNT88ilTpmDKlCldbv/KK6/YPP/73/+OTz/9FJ999hkuvfRS5brBYEBUVJS9uklEZBfK7a9wzv7YG1eCUXe5dA2Q1WpFVVUVQkJCbK4fPXoUMTExSEhIwD333IOCggKVekhE1Ip7ADkON0Ok7lJ1Bqi3li9fjurqatx5553KtfHjxyMjIwNDhw5FUVERli1bhmuuuQaHDx9GQEBAh59jsVhgsViU5yaTyeF9JyLPo6wAC+MKMHuTV9WdrKhFXUMTfLx4i5HOz2VngNavX49ly5bhww8/REREhHJ9ypQpuOOOOzBq1CgkJydjy5YtqKiowIcfftjpZ6WnpyMoKEh5xMXFOWMIRORheAvMcYL9vBDk6wWAs0DUNS4ZgDZs2IC5c+fiww8/RFJS0nnb9u3bF0OGDMGxY8c6bZOWlobKykrlUVhYaO8uE5GHs1oF8sq4CaKjSJLEOiDqFpcLQO+//z7uu+8+vP/++7jlllsu2L66uho5OTmIjo7utI3RaERgYKDNg4jInk5V1qK+0QovvYR+fX3V7o5bYh0QdYeqNUDV1dU2MzN5eXnIzs5GSEgI+vfvj7S0NJw8eRLvvvsugObbXrNmzcKrr76K8ePHo7i4GADg6+uLoKAgAMAjjzyCqVOnYsCAATh16hSWLl0KvV6PGTNmOH+AREQt5L+U+4f4waB3uX97ugTlUFTuBURdoOpP4YEDB3DppZcqS9gXL16MSy+9FEuWLAEAFBUV2azgevPNN9HY2IjU1FRER0crj4ULFyptTpw4gRkzZmDo0KG48847ERoain379iE8PNy5gyMiaoNHYDie/Gubx92gqQtUnQGaNGkShOj84LqMjAyb55mZmRf8zA0bNvSyV0RE9ifPSrD+x3FYA0TdwXlYIiInyOUeQA43MMwPQPORI+XmepV7Q1rHAERE5ATybRkGIMfx8zYgOsgHQGvgJOoMAxARkYNZGptworwWAPcAcjTeBqOuYgAiInKwgrIaCAH0MRoQ3seodnfcWmsAYiE0nR8DEBGRg+UqK8D8IUmSyr1xb60rwTgDROfHAERE5GA8BNV5ErgXEHURAxARkYPllrIA2lnkX+P8MjOs1s63WSFiACIicjDOADlPbLAvDDoJdQ1WFJnq1O4OaRgDEBGRgym7QIdxF2hHM+h16B/avB9QHm+D0XkwABEROVBlbQPOVDdvyidv1EeOlcCVYNQFDEBERA6U3zL7ExFgRICPl8q98QzySjBuhkjnwwBERORAudwB2ul4Kjx1BQMQEZEDyXUoCdwB2mm4GzR1BQMQEZED8RBU55NrgE6U18DS2KRyb0irGICIiByodQk8V4A5S3iAEf7eelgFUHi2Ru3ukEYxABEROYgQgnsAqUCSJOXQWdYBUWcYgIiIHOR0lQU19U3Q6yT0D+ESeGeS91xiHRB1hgGIiMhBclqOwIgL9oW3gX/cOhNXgtGF8CeSiMhBePtLPfKqO84AUWcYgIiIHEReAs8CaOdTZoAYgKgTDEBERA6izABxDyCnG9gSgM5UW2Cqa1C5N6RFDEBERA7SeggqA5CzBfp4IayPEUDrcSREbTEAERE5QEOTFQUte9BwF2h1sA6IzocBiIjIAQrP1qDRKuDrpUdkgI/a3fFI8sxbDleCUQcYgIiIHECedRgY5g+dTlK5N56JZ4LR+TAAERE5AOt/1NcagKpV7glpEQMQEZED8BBU9Sk1QKVmCCFU7g1pDQMQEZEDtO4BxACklrgQP+gkwFzfhNIqi9rdIY1hACIicgDlFhhXgKnGaNAjruUMNm6ISOdiACIisjOzpRHFpjoAnAFSG88Eo84wABER2Zk8+xPi742+ft4q98azsRCaOqNqANq9ezemTp2KmJgYSJKETZs2XfA9mZmZuOyyy2A0GjF48GBkZGS0a7NixQoMHDgQPj4+GD9+PL777jv7d56IqBM8BFU7ErgUnjqhagAym80YPXo0VqxY0aX2eXl5uOWWW3DdddchOzsbixYtwty5c7Ft2zalzQcffIDFixdj6dKl+P777zF69GgkJyfj9OnTjhoGEZENBiDtkA+iZQ0Qncug5pdPmTIFU6ZM6XL7VatWIT4+Hi+++CIA4OKLL8aePXvw8ssvIzk5GQDw0ksvYd68ebjvvvuU93z++edYs2YNnnjiCfsPgojoHCyA1g7596CgrAaNTVYY9Kz8oGaqBqDu2rt3L5KSkmyuJScnY9GiRQCA+vp6HDx4EGlpacrrOp0OSUlJ2Lt3rzO72qHCszXK2UBE5L5+OlUJgJsgakFUoA98vHSoa7Bi849FCA8wqt0latGvry8Gqvgz4lIBqLi4GJGRkTbXIiMjYTKZUFtbi/LycjQ1NXXY5tdff+30cy0WCyyW1j0iTCaTfTve4rMfT+GFrUcc8tlEpD1q/uFOzXQ6CQND/fFrcRUWfZCtdneojT9OGoTHJg9T7ftdKgA5Snp6OpYtW+bw7wn198bQyACHfw8RqW9EvyAMieDPuxbMnzQIq3blwmrlbtBaEtZH3dk4lwpAUVFRKCkpsblWUlKCwMBA+Pr6Qq/XQ6/Xd9gmKiqq089NS0vD4sWLlecmkwlxcXH27TyA6eP6Y/q4/nb/XCIi6ty0Mf0wbUw/tbtBGuNS1WCJiYnYsWOHzbXt27cjMTERAODt7Y2xY8fatLFardixY4fSpiNGoxGBgYE2DyIiInJfqgag6upqZGdnIzs7G0DzMvfs7GwUFBQAaJ6ZmTlzptL+wQcfRG5uLh577DH8+uuveP311/Hhhx/iz3/+s9Jm8eLFeOutt/DOO+/gl19+wfz582E2m5VVYURERESq3gI7cOAArrvuOuW5fBtq1qxZyMjIQFFRkRKGACA+Ph6ff/45/vznP+PVV19FbGws3n77bWUJPABMnz4dpaWlWLJkCYqLizFmzBhs3bq1XWE0EREReS5JCMGqsHOYTCYEBQWhsrKSt8OIiIhcRHf+/napGiAiIiIie2AAIiIiIo/DAEREREQehwGIiIiIPA4DEBEREXkcBiAiIiLyOAxARERE5HEYgIiIiMjjMAARERGRx2EAIiIiIo+j6llgWiWfDmIymVTuCREREXWV/Pd2V075YgDqQFVVFQAgLi5O5Z4QERFRd1VVVSEoKOi8bXgYagesVitOnTqFgIAASJJk1882mUyIi4tDYWGhSx+0ynFoC8ehLRyHtnAc2uLIcQghUFVVhZiYGOh056/y4QxQB3Q6HWJjYx36HYGBgS79P7CM49AWjkNbOA5t4Ti0xVHjuNDMj4xF0ERERORxGICIiIjI4zAAOZnRaMTSpUthNBrV7kqvcBzawnFoC8ehLRyHtmhlHCyCJiIiIo/DGSAiIiLyOAxARERE5HEYgIiIiMjjMAB1U3p6OsaNG4eAgABEREQgJSUFR44csWlTV1eH1NRUhIaGok+fPvif//kflJSU2LQpKCjALbfcAj8/P0RERODRRx9FY2Oj8npRURHuvvtuDBkyBDqdDosWLXLJcXzyySe48cYbER4ejsDAQCQmJmLbtm0uN462vvnmGxgMBowZM8blxpGZmQlJkto9iouLXWocs2fP7nAcw4cPt8s4nDkWAFi3bh1Gjx4NPz8/REdH4/7770dZWZmmxvHQQw9h7NixMBqNHf6/X1dXh9mzZ2PkyJEwGAxISUmxS/+dPQ6geTO95cuXY8iQITAajejXrx/+9re/udQ4nnnmmQ5/Rvz9/V1qHADw4YcfYsyYMfDz88OAAQPwz3/+0y5jgKBuSU5OFmvXrhWHDx8W2dnZ4uabbxb9+/cX1dXVSpsHH3xQxMXFiR07dogDBw6IK6+8UkyYMEF5vbGxUYwYMUIkJSWJrKwssWXLFhEWFibS0tKUNnl5eeKhhx4S77zzjhgzZoxYuHChS45j4cKF4vnnnxffffed+O2330RaWprw8vIS33//vUuNQ1ZeXi4SEhLETTfdJEaPHm2XMThzHDt37hQAxJEjR0RRUZHyaGpqcqlxVFRU2PS/sLBQhISEiKVLl9plHM4cy549e4ROpxOvvvqqyM3NFV9//bUYPny4uPXWWzUzDiGE+NOf/iT+93//V9x7770d/r9fXV0tHnzwQfHmm2+K5ORkMW3aNLv039njkNsMHTpUfPrppyI3N1ccOHBAfPnlly41jqqqKpufkaKiInHJJZeIWbNmudQ4tmzZIgwGg1i5cqXIyckRmzdvFtHR0eJf//pXr8fAANRLp0+fFgDErl27hBDNfzB7eXmJjz76SGnzyy+/CABi7969Qojm31CdTieKi4uVNitXrhSBgYHCYrG0+45rr73W7gFIjXHILrnkErFs2TKXHMf06dPFU089JZYuXWrXAOSsccgBqLy83GF9d8Y4zrVx40YhSZLIz893ubH885//FAkJCTbf9dprr4l+/fppZhxtdeX//VmzZtk9AJ3LUeP4+eefhcFgEL/++qvD+t6WM34/hBAiOztbABC7d++2W9/bctQ4ZsyYIW6//Xaba6+99pqIjY0VVqu1V33mLbBeqqysBACEhIQAAA4ePIiGhgYkJSUpbYYNG4b+/ftj7969AIC9e/di5MiRiIyMVNokJyfDZDLhp59+cmLvWzlrHFarFVVVVcr3uNI41q5di9zcXCxdutQhfXfWOABgzJgxiI6Oxo033ohvvvnGZcchW716NZKSkjBgwABHDcVhY0lMTERhYSG2bNkCIQRKSkrwn//8BzfffLNmxqFFjhrHZ599hoSEBGzevBnx8fEYOHAg5s6di7Nnz9p3AC2c9fvx9ttvY8iQIbjmmmt61+FOOGocFosFPj4+Ntd8fX1x4sQJHD9+vFd9ZgDqBavVikWLFuGqq67CiBEjAADFxcXw9vZG3759bdpGRkYqdRbFxcU2fyDKr8uvOZszx7F8+XJUV1fjzjvvtPMoHDuOo0eP4oknnsB7770Hg8GxR+g5chzR0dFYtWoVPv74Y3z88ceIi4vDpEmT8P3337vUONo6deoUvvjiC8ydO9fuY5A5cixXXXUV1q1bh+nTp8Pb2xtRUVEICgrCihUrNDMOrXHkOHJzc3H8+HF89NFHePfdd5GRkYGDBw/i9ttvt+cQADjv96Ourg7r1q3DnDlzetvlDjlyHMnJyfjkk0+wY8cOWK1W/Pbbb3jxxRcBNNfK9gYPQ+2F1NRUHD58GHv27FG7K73irHGsX78ey5Ytw6effoqIiAi7f76jxtHU1IS7774by5Ytw5AhQ+z62R1x5O/H0KFDMXToUOX5hAkTkJOTg5dffhn//ve/7fpdzvr/6p133kHfvn3tXnTbliPH8vPPP2PhwoVYsmQJkpOTUVRUhEcffRQPPvggVq9ebdfv4p9ZF2a1WmGxWPDuu+8qP++rV6/G2LFjceTIEZufn95y1u/Hxo0bUVVVhVmzZjnk8x05jnnz5iEnJwe/+93v0NDQgMDAQCxcuBDPPPPMBU97vxDOAPXQggULsHnzZuzcudPm5PioqCjU19ejoqLCpn1JSQmioqKUNudWwsvP5TbO4qxxbNiwAXPnzsWHH35oMyXqCuOoqqrCgQMHsGDBAhgMBhgMBvz1r3/FDz/8AIPBgK+++solxtGZK664AseOHbPTCJo5axxCCKxZswb33nsvvL297ToGmaPHkp6ejquuugqPPvooRo0aheTkZLz++utYs2ZNr/+Fa69xaImjxxEdHQ2DwWDzj52LL74YQPOKPntx5u/H22+/jd/97nftZiPtwdHjkCQJzz//PKqrq3H8+HEUFxfjiiuuAAAkJCT0rvO9qiDyQFarVaSmpoqYmBjx22+/tXtdLvz6z3/+o1z79ddfOyyMLCkpUdq88cYbIjAwUNTV1bX7TEcUQTtzHOvXrxc+Pj5i06ZNdh2Ds8bR1NQkDh06ZPOYP3++GDp0qDh06JDNqgctj6MzSUlJdltx5OxxyEXdhw4dskv/1RjLbbfdJu68806bz/72228FAHHy5ElNjKMttYqgnTWObdu2CQDi2LFjyjW5gPjIkSMuMw5Zbm6ukCRJfPbZZ73ue1tq/H8lu/fee0ViYmKP+y5jAOqm+fPni6CgIJGZmWmzvLCmpkZp8+CDD4r+/fuLr776Shw4cEAkJiba/GbJS2NvuukmkZ2dLbZu3SrCw8PbLbvOysoSWVlZYuzYseLuu+8WWVlZ4qeffnKpcaxbt04YDAaxYsUKm++pqKhwqXGcy96rwJw1jpdfflls2rRJHD16VBw6dEgsXLhQ6HQ68d///telxiH7wx/+IMaPH2+Xvqs1lrVr1wqDwSBef/11kZOTI/bs2SMuv/xyccUVV2hmHEIIcfToUZGVlSX+3//7f2LIkCHKn09tV+b99NNPIisrS0ydOlVMmjRJaeNK42hqahKXXXaZmDhxovj+++/FgQMHxPjx48WNN97oUuOQPfXUUyImJkY0Njbapf/OHkdpaalYuXKl+OWXX0RWVpZ46KGHhI+Pj9i/f3+vx8AA1E0AOnysXbtWaVNbWyv++Mc/iuDgYOHn5yduvfVWUVRUZPM5+fn5YsqUKcLX11eEhYWJhx9+WDQ0NFzwuwYMGOBS47j22ms7/B577UXhzN+PtuwdgJw1jueff14MGjRI+Pj4iJCQEDFp0iTx1Vdfudw4hGj+F6avr69488037dZ/tcby2muviUsuuUT4+vqK6Ohocc8994gTJ05oahyd/Szn5eUpbQYMGNBhG1cbx8mTJ8Vtt90m+vTpIyIjI8Xs2bNFWVmZy42jqalJxMbGiieffNIufVdjHKWlpeLKK68U/v7+ws/PT9xwww1i3759dhkDT4MnIiIij8MiaCIiIvI4DEBERETkcRiAiIiIyOMwABEREZHHYQAiIiIij8MARERERB6HAYiIiIg8DgMQEREReRwGICJyuEmTJmHRokWdvi5JEjZt2mT3783Pz4ckScjOzrb7ZxORazOo3QEioqKiIgQHB6vdDSLyIJwBIiLVRUVFwWg0dvp6Q0ODE3vjXPX19Wp3gcgjMQARkVNYrVY89thjCAkJQVRUFJ555hnltba3wOTbVh988AGuvfZa+Pj4YN26dQCAt99+GxdffDF8fHwwbNgwvP766zbf8d133+HSSy+Fj48PLr/8cmRlZXWpb0IIDB48GMuXL7e5np2dDUmScOzYMQBARUUF5s6di/DwcAQGBuL666/HDz/8oLTPycnBtGnTEBkZiT59+mDcuHH473//a/OZAwcOxLPPPouZM2ciMDAQDzzwQJf6SET2xQBERE7xzjvvwN/fH/v378cLL7yAv/71r9i+fXun7Z944gksXLgQv/zyC5KTk7Fu3TosWbIEf/vb3/DLL7/g73//O55++mm88847AIDq6mr87ne/wyWXXIKDBw/imWeewSOPPNKlvkmShPvvvx9r1661ub527VpMnDgRgwcPBgDccccdOH36NL744gscPHgQl112GW644QacPXtW6cPNN9+MHTt2ICsrC5MnT8bUqVNRUFBg87nLly/H6NGjkZWVhaeffrrLv4ZEZEd2OVOeiOg8rr32WnH11VfbXBs3bpx4/PHHhRBCABAbN24UQgiRl5cnAIhXXnnFpv2gQYPE+vXrba49++yzIjExUQghxBtvvCFCQ0NFbW2t8vrKlSsFAJGVlXXBPp48eVLo9Xqxf/9+IYQQ9fX1IiwsTGRkZAghhPj6669FYGCgqKura9evN954o9PPHT58uPjXv/6lPB8wYIBISUm5YH+IyLFYBE1ETjFq1Cib59HR0Th9+nSn7S+//HLlv81mM3JycjBnzhzMmzdPud7Y2IigoCAAwC+//IJRo0bBx8dHeT0xMbHL/YuJicEtt9yCNWvW4IorrsBnn30Gi8WCO+64AwDwww8/oLq6GqGhoTbvq62tRU5ODoDmGaBnnnkGn3/+OYqKitDY2Ija2tp2M0Btx0ZE6mAAIiKn8PLysnkuSRKsVmun7f39/ZX/rq6uBgC89dZbGD9+vE07vV5vtz7OnTsX9957L15++WWsXbsW06dPh5+fn9KH6OhoZGZmtntf3759AQCPPPIItm/fjuXLl2Pw4MHw9fXF7bff3q7Que3YiEgdDEBEpHmRkZGIiYlBbm4u7rnnng7bXHzxxfj3v/+Nuro6ZRZo37593fqem2++Gf7+/li5ciW2bt2K3bt3K69ddtllKC4uhsFgwMCBAzt8/zfffIPZs2fj1ltvBdAcmvLz87vVByJyDhZBE5FLWLZsGdLT0/Haa6/ht99+w6FDh7B27Vq89NJLAIC7774bkiRh3rx5+Pnnn7Fly5Z2q7ouRK/XY/bs2UhLS8NFF11kcwstKSkJiYmJSElJwZdffon8/Hx8++23+Mtf/oIDBw4AAC666CJ88sknyM7Oxg8//IC77777vLNcRKQeBiAicglz587F22+/jbVr12LkyJG49tprkZGRgfj4eABAnz598Nlnn+HQoUO49NJL8Ze//AXPP/98t79nzpw5qK+vx3333WdzXZIkbNmyBRMnTsR9992HIUOG4K677sLx48cRGRkJAHjppZcQHByMCRMmYOrUqUhOTsZll13W+8ETkd1JQgihdieIiLTi66+/xg033IDCwkIl2BCR+2EAIiICYLFYUFpailmzZiEqKkrZfJGI3BNvgRGRR3jwwQfRp0+fDh8PPvgg3n//fQwYMAAVFRV44YUX1O4uETkYZ4CIyCOcPn0aJpOpw9cCAwMRERHh5B4RkZoYgIiIiMjj8BYYEREReRwGICIiIvI4DEBERETkcRiAiIiIyOMwABEREZHHYQAiIiIij8MARERERB6HAYiIiIg8zv8PC51etgoDUPcAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(df_sum_hired_year['hired_year'].astype(str),df_sum_hired_year['count'])\n", + "plt.xlabel('hired_year')\n", + "plt.ylabel('count')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.10.6 64-bit", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.6" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "b0fa6594d8f4cbf19f97940f81e996739fb7646882a419484c72d19e05852a7e" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}