diff --git a/out/production/Terrarum_renewed/com/Torvald/ColourUtil/Col216.class b/out/production/Terrarum_renewed/com/Torvald/ColourUtil/Col216.class new file mode 100644 index 000000000..4f5d8ec65 Binary files /dev/null and b/out/production/Terrarum_renewed/com/Torvald/ColourUtil/Col216.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/ColourUtil/Col256.class b/out/production/Terrarum_renewed/com/Torvald/ColourUtil/Col256.class deleted file mode 100644 index 2e224caf0..000000000 Binary files a/out/production/Terrarum_renewed/com/Torvald/ColourUtil/Col256.class and /dev/null differ diff --git a/out/production/Terrarum_renewed/com/Torvald/ColourUtil/Col4096.class b/out/production/Terrarum_renewed/com/Torvald/ColourUtil/Col4096.class index 023e54185..16e3cb947 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/ColourUtil/Col4096.class and b/out/production/Terrarum_renewed/com/Torvald/ColourUtil/Col4096.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/ColourUtil/LimitedColours.class b/out/production/Terrarum_renewed/com/Torvald/ColourUtil/LimitedColours.class new file mode 100644 index 000000000..dacf0169e Binary files /dev/null and b/out/production/Terrarum_renewed/com/Torvald/ColourUtil/LimitedColours.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/ImageFont/GameFontBase.class b/out/production/Terrarum_renewed/com/Torvald/ImageFont/GameFontBase.class index 98970f60a..5840d1b27 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/ImageFont/GameFontBase.class and b/out/production/Terrarum_renewed/com/Torvald/ImageFont/GameFontBase.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/ActorWithBody.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/ActorWithBody.class index 66bf618c1..5312491eb 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/ActorWithBody.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/ActorWithBody.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/Player.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/Player.class index 01c65c373..e06bea4f3 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/Player.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/Actors/Player.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CommandDict.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CommandDict.class index af4bf16c0..842990755 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CommandDict.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/CommandDict.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GsonTest.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GsonTest.class new file mode 100644 index 000000000..0c89397b4 Binary files /dev/null and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/ConsoleCommand/GsonTest.class differ diff --git a/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/MapCamera.class b/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/MapCamera.class index 0364dc54c..4ba8c6ee9 100644 Binary files a/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/MapCamera.class and b/out/production/Terrarum_renewed/com/Torvald/Terrarum/MapDrawer/MapCamera.class differ diff --git a/res/books/hangul_test_2.txt b/res/books/hangul_test_2.txt new file mode 100644 index 000000000..6b6ac9911 --- /dev/null +++ b/res/books/hangul_test_2.txt @@ -0,0 +1,3 @@ +안녕하세요 こんにちわ + +《템페스트》 「テンペスト」 \ No newline at end of file diff --git a/res/books/kana_test.txt b/res/books/kana_test.txt index 7286d2632..e7e3e5922 100644 --- a/res/books/kana_test.txt +++ b/res/books/kana_test.txt @@ -1,29 +1,29 @@ -せかいいち みんなの にんきもの -それは かのじょの こと アシュリー +せかい いち みんな の にんきもの +それ は かのじょ の こと アシュリー ひとめ みれば だれもが ふりむく あたりまえ アシュリーだもん -せかいじゅう みんなが あこがれる -それは かのじょの こと アシュリー -アシュリー さまの まほうは さいこう -こんやも パーティーよ +せかいじゅう みんな が あこがれる +それは かのじょ の こと アシュリー +アシュリー さま の まほう は さいこう +こんや も パーティーよ -なわ ぶな ぬー わらいの じゅもん -じお いら うん なんの じゅもん +なわ ぶな ぬー わらい の じゅもん +じお いら うん なん の じゅもん いお でぃ えむ おぼえ られない ああ いや たいくつ -せかいいち みんなの にんきもの -それは かのじょの こと アシュリー -アシュリー さまの まほうは さいこう +せかいいち みんな の にんきもの +それは かのじょ の こと アシュリー +アシュリー さま の まほうは さいこう こわい もの なしよ -よぞらの うみ あまたの ほし +よぞら の うみ あまた の ほし いつも ひとりきり -みんなと なかよく したいの -どうしたら いいの +みんな と なかよく したい の +どうしたら いい の -せかいいち みんなの にんきもの -それは かのじょの こと アシュリー -アシュリー さまの まほうは さいこう -こんやも パーティーよ +せかい いち みんな の にんきもの +それは かのじょ の こと アシュリー +アシュリー さま の まほうは さいこう +こんや も パーティーよ diff --git a/res/books/kana_test_2.txt b/res/books/kana_test_2.txt new file mode 100644 index 000000000..93000254c --- /dev/null +++ b/res/books/kana_test_2.txt @@ -0,0 +1,30 @@ +まだ きづいていない ていじ された ぎもん +いま きょうかいせん が きえてく + +この データ と コード で ていぎ された しこう +もう ひとつ の 「リアル」 が うまれる + +せんり を こえ とぶ ひかり の たば から +つたわる あたらし じぶん の そんざい + +NEO IDENTITYーひろがって ゆく + +でんもう の いしき と +ふかしぎな みらい + +(NEO IDENTITYーまぼろし) + +その にんしき に より そんざい し うる せかい +すべて を しょうきょ したら どう なる? + +せんり を こえ とぶ ひかり の たば から +つたわる あたらし じぶん の そんざい + +NEO IDENTITYーひろがって ゆく + +でんもう の いしき と +ふかしぎな みらい + +NEO IDENTITYーそびえたつ まぼろし +でんもう の いしき と +ふかしぎな みらい \ No newline at end of file diff --git a/res/graphics/fonts/LatinExtA_ef.png b/res/graphics/fonts/LatinExtA_ef.png index d190d6bb4..658e96447 100644 Binary files a/res/graphics/fonts/LatinExtA_ef.png and b/res/graphics/fonts/LatinExtA_ef.png differ diff --git a/res/graphics/fonts/LatinExtA_ef_black.png b/res/graphics/fonts/LatinExtA_ef_black.png index 7e14f71e9..6029a0887 100644 Binary files a/res/graphics/fonts/LatinExtA_ef_black.png and b/res/graphics/fonts/LatinExtA_ef_black.png differ diff --git a/res/graphics/fonts/LatinExtA_majuscule.png b/res/graphics/fonts/LatinExtA_majuscule.png index d174997da..cc7857370 100644 Binary files a/res/graphics/fonts/LatinExtA_majuscule.png and b/res/graphics/fonts/LatinExtA_majuscule.png differ diff --git a/res/graphics/fonts/LatinExtA_majuscule_black.png b/res/graphics/fonts/LatinExtA_majuscule_black.png index 090b8f9e8..1c0da9db8 100644 Binary files a/res/graphics/fonts/LatinExtA_majuscule_black.png and b/res/graphics/fonts/LatinExtA_majuscule_black.png differ diff --git a/res/graphics/fonts/ascii_majuscule.png b/res/graphics/fonts/ascii_majuscule.png index d21a5c21a..643da469b 100644 Binary files a/res/graphics/fonts/ascii_majuscule.png and b/res/graphics/fonts/ascii_majuscule.png differ diff --git a/res/graphics/fonts/ascii_majuscule_black.png b/res/graphics/fonts/ascii_majuscule_black.png index c47d23c9f..fe37efe80 100644 Binary files a/res/graphics/fonts/ascii_majuscule_black.png and b/res/graphics/fonts/ascii_majuscule_black.png differ diff --git a/res/graphics/fonts/ascii_special_ef.png b/res/graphics/fonts/ascii_special_ef.png index 6ab15e8ce..cc7cba6ad 100644 Binary files a/res/graphics/fonts/ascii_special_ef.png and b/res/graphics/fonts/ascii_special_ef.png differ diff --git a/res/graphics/fonts/ascii_special_ef_black.png b/res/graphics/fonts/ascii_special_ef_black.png index af1b3d5fb..ee125f553 100644 Binary files a/res/graphics/fonts/ascii_special_ef_black.png and b/res/graphics/fonts/ascii_special_ef_black.png differ diff --git a/res/graphics/fonts/kana.png b/res/graphics/fonts/kana.png index 00845443d..88a876773 100644 Binary files a/res/graphics/fonts/kana.png and b/res/graphics/fonts/kana.png differ diff --git a/res/graphics/terrain/terrainplusplus.png b/res/graphics/terrain/terrainplusplus.png index 7f7bf9dac..7b8b89233 100644 Binary files a/res/graphics/terrain/terrainplusplus.png and b/res/graphics/terrain/terrainplusplus.png differ diff --git a/res/locales/scandinavian-alph.name b/res/locales/scandinavian-alph.name index 407a71f30..3635cdda8 100755 --- a/res/locales/scandinavian-alph.name +++ b/res/locales/scandinavian-alph.name @@ -2,111 +2,111 @@ # Data taken from www.behindthename.com # Translator note: this nameset does not contain name that has [ɹ](american english 'r') sound (except '-er'). i.e. for Korean, 'Carl' should be '카를', 'Aleksander' should be '알렉산더'. -NAMESET_SCANDINAVIAN_MALE_001=Adam -NAMESET_SCANDINAVIAN_MALE_002=Adrian -NAMESET_SCANDINAVIAN_MALE_003=Aksel -NAMESET_SCANDINAVIAN_MALE_004=Albert -NAMESET_SCANDINAVIAN_MALE_005=Albin -NAMESET_SCANDINAVIAN_MALE_006=Alek -NAMESET_SCANDINAVIAN_MALE_007=Alexander -NAMESET_SCANDINAVIAN_MALE_008=Alfred -NAMESET_SCANDINAVIAN_MALE_009=Amund -NAMESET_SCANDINAVIAN_MALE_010=Andreas -NAMESET_SCANDINAVIAN_MALE_011=Anton -NAMESET_SCANDINAVIAN_MALE_012=Aron -NAMESET_SCANDINAVIAN_MALE_013=Alvard -NAMESET_SCANDINAVIAN_MALE_014=August -NAMESET_SCANDINAVIAN_MALE_015=Axel -NAMESET_SCANDINAVIAN_MALE_016=Björn -NAMESET_SCANDINAVIAN_MALE_017=Bjørn -NAMESET_SCANDINAVIAN_MALE_018=Carl -NAMESET_SCANDINAVIAN_MALE_019=Casper -NAMESET_SCANDINAVIAN_MALE_020=Christian -NAMESET_SCANDINAVIAN_MALE_021=Christoffer -NAMESET_SCANDINAVIAN_MALE_022=Daniel -NAMESET_SCANDINAVIAN_MALE_023=David +NAMESET_SCANDINAVIAN_MALE_1=Adam +NAMESET_SCANDINAVIAN_MALE_2=Adrian +NAMESET_SCANDINAVIAN_MALE_3=Aksel +NAMESET_SCANDINAVIAN_MALE_4=Albert +NAMESET_SCANDINAVIAN_MALE_5=Albin +NAMESET_SCANDINAVIAN_MALE_6=Alek +NAMESET_SCANDINAVIAN_MALE_7=Alexander +NAMESET_SCANDINAVIAN_MALE_8=Alfred +NAMESET_SCANDINAVIAN_MALE_9=Amund +NAMESET_SCANDINAVIAN_MALE_10=Andreas +NAMESET_SCANDINAVIAN_MALE_11=Anton +NAMESET_SCANDINAVIAN_MALE_12=Aron +NAMESET_SCANDINAVIAN_MALE_13=Alvard +NAMESET_SCANDINAVIAN_MALE_14=August +NAMESET_SCANDINAVIAN_MALE_15=Axel +NAMESET_SCANDINAVIAN_MALE_16=Björn +NAMESET_SCANDINAVIAN_MALE_17=Bjørn +NAMESET_SCANDINAVIAN_MALE_18=Carl +NAMESET_SCANDINAVIAN_MALE_19=Casper +NAMESET_SCANDINAVIAN_MALE_20=Christian +NAMESET_SCANDINAVIAN_MALE_21=Christoffer +NAMESET_SCANDINAVIAN_MALE_22=Daniel +NAMESET_SCANDINAVIAN_MALE_23=David # pronounced as [dɑvid], not [deivɪd] -NAMESET_SCANDINAVIAN_MALE_024=Edmund -NAMESET_SCANDINAVIAN_MALE_025=Edvard -NAMESET_SCANDINAVIAN_MALE_026=Edvin -NAMESET_SCANDINAVIAN_MALE_027=Eirik -NAMESET_SCANDINAVIAN_MALE_028=Elias -NAMESET_SCANDINAVIAN_MALE_029=Elis -NAMESET_SCANDINAVIAN_MALE_030=Emanuel -NAMESET_SCANDINAVIAN_MALE_031=Emil -NAMESET_SCANDINAVIAN_MALE_032=Endre -NAMESET_SCANDINAVIAN_MALE_033=Erik -NAMESET_SCANDINAVIAN_MALE_034=Erlend -NAMESET_SCANDINAVIAN_MALE_035=Espen -NAMESET_SCANDINAVIAN_MALE_036=Fabian -NAMESET_SCANDINAVIAN_MALE_037=Felix -NAMESET_SCANDINAVIAN_MALE_038=Filip -NAMESET_SCANDINAVIAN_MALE_039=Frederik -NAMESET_SCANDINAVIAN_MALE_040=Gabriel -NAMESET_SCANDINAVIAN_MALE_041=Gustav -NAMESET_SCANDINAVIAN_MALE_042=Haakon -NAMESET_SCANDINAVIAN_MALE_043=Hákon -NAMESET_SCANDINAVIAN_MALE_044=Håkon -NAMESET_SCANDINAVIAN_MALE_045=Hampus -NAMESET_SCANDINAVIAN_MALE_046=Hanne -NAMESET_SCANDINAVIAN_MALE_047=Hans -NAMESET_SCANDINAVIAN_MALE_048=Håvard -NAMESET_SCANDINAVIAN_MALE_049=Henrik -NAMESET_SCANDINAVIAN_MALE_050=Herman -NAMESET_SCANDINAVIAN_MALE_051=Hjalmar -NAMESET_SCANDINAVIAN_MALE_052=Hugo -NAMESET_SCANDINAVIAN_MALE_053=Isak -NAMESET_SCANDINAVIAN_MALE_054=Ivar -NAMESET_SCANDINAVIAN_MALE_055=Jacob -NAMESET_SCANDINAVIAN_MALE_056=Jakob -NAMESET_SCANDINAVIAN_MALE_057=Jan -NAMESET_SCANDINAVIAN_MALE_058=Jens -NAMESET_SCANDINAVIAN_MALE_059=Jeppe -NAMESET_SCANDINAVIAN_MALE_060=Jesper -NAMESET_SCANDINAVIAN_MALE_061=Joakim +NAMESET_SCANDINAVIAN_MALE_24=Edmund +NAMESET_SCANDINAVIAN_MALE_25=Edvard +NAMESET_SCANDINAVIAN_MALE_26=Edvin +NAMESET_SCANDINAVIAN_MALE_27=Eirik +NAMESET_SCANDINAVIAN_MALE_28=Elias +NAMESET_SCANDINAVIAN_MALE_29=Elis +NAMESET_SCANDINAVIAN_MALE_30=Emanuel +NAMESET_SCANDINAVIAN_MALE_31=Emil +NAMESET_SCANDINAVIAN_MALE_32=Endre +NAMESET_SCANDINAVIAN_MALE_33=Erik +NAMESET_SCANDINAVIAN_MALE_34=Erlend +NAMESET_SCANDINAVIAN_MALE_35=Espen +NAMESET_SCANDINAVIAN_MALE_36=Fabian +NAMESET_SCANDINAVIAN_MALE_37=Felix +NAMESET_SCANDINAVIAN_MALE_38=Filip +NAMESET_SCANDINAVIAN_MALE_39=Frederik +NAMESET_SCANDINAVIAN_MALE_40=Gabriel +NAMESET_SCANDINAVIAN_MALE_41=Gustav +NAMESET_SCANDINAVIAN_MALE_42=Haakon +NAMESET_SCANDINAVIAN_MALE_43=Hákon +NAMESET_SCANDINAVIAN_MALE_44=Håkon +NAMESET_SCANDINAVIAN_MALE_45=Hampus +NAMESET_SCANDINAVIAN_MALE_46=Hanne +NAMESET_SCANDINAVIAN_MALE_47=Hans +NAMESET_SCANDINAVIAN_MALE_48=Håvard +NAMESET_SCANDINAVIAN_MALE_49=Henrik +NAMESET_SCANDINAVIAN_MALE_50=Herman +NAMESET_SCANDINAVIAN_MALE_51=Hjalmar +NAMESET_SCANDINAVIAN_MALE_52=Hugo +NAMESET_SCANDINAVIAN_MALE_53=Isak +NAMESET_SCANDINAVIAN_MALE_54=Ivar +NAMESET_SCANDINAVIAN_MALE_55=Jacob +NAMESET_SCANDINAVIAN_MALE_56=Jakob +NAMESET_SCANDINAVIAN_MALE_57=Jan +NAMESET_SCANDINAVIAN_MALE_58=Jens +NAMESET_SCANDINAVIAN_MALE_59=Jeppe +NAMESET_SCANDINAVIAN_MALE_60=Jesper +NAMESET_SCANDINAVIAN_MALE_61=Joakim # pronounced as [joakim], not [hoakim] as this is scandinavian section. -NAMESET_SCANDINAVIAN_MALE_062=Joel -NAMESET_SCANDINAVIAN_MALE_063=Johan -NAMESET_SCANDINAVIAN_MALE_064=Jóhannes -NAMESET_SCANDINAVIAN_MALE_065=Jón -NAMESET_SCANDINAVIAN_MALE_066=Jon -NAMESET_SCANDINAVIAN_MALE_067=Jónas -NAMESET_SCANDINAVIAN_MALE_068=Jonas -NAMESET_SCANDINAVIAN_MALE_069=Jonathan -NAMESET_SCANDINAVIAN_MALE_070=Jörgen -NAMESET_SCANDINAVIAN_MALE_071=Jørgen -NAMESET_SCANDINAVIAN_MALE_072=Josef -NAMESET_SCANDINAVIAN_MALE_073=Kalle -NAMESET_SCANDINAVIAN_MALE_074=Kasper -NAMESET_SCANDINAVIAN_MALE_075=Kevin -NAMESET_SCANDINAVIAN_MALE_076=Kim -NAMESET_SCANDINAVIAN_MALE_077=Knut +NAMESET_SCANDINAVIAN_MALE_62=Joel +NAMESET_SCANDINAVIAN_MALE_63=Johan +NAMESET_SCANDINAVIAN_MALE_64=Jóhannes +NAMESET_SCANDINAVIAN_MALE_65=Jón +NAMESET_SCANDINAVIAN_MALE_66=Jon +NAMESET_SCANDINAVIAN_MALE_67=Jónas +NAMESET_SCANDINAVIAN_MALE_68=Jonas +NAMESET_SCANDINAVIAN_MALE_69=Jonathan +NAMESET_SCANDINAVIAN_MALE_70=Jörgen +NAMESET_SCANDINAVIAN_MALE_71=Jørgen +NAMESET_SCANDINAVIAN_MALE_72=Josef +NAMESET_SCANDINAVIAN_MALE_73=Kalle +NAMESET_SCANDINAVIAN_MALE_74=Kasper +NAMESET_SCANDINAVIAN_MALE_75=Kevin +NAMESET_SCANDINAVIAN_MALE_76=Kim +NAMESET_SCANDINAVIAN_MALE_77=Knut # pronounced as [knut] -NAMESET_SCANDINAVIAN_MALE_078=Kristian -NAMESET_SCANDINAVIAN_MALE_079=Kristoffer -NAMESET_SCANDINAVIAN_MALE_080=Lars -NAMESET_SCANDINAVIAN_MALE_081=Lasse -NAMESET_SCANDINAVIAN_MALE_082=Laurits -NAMESET_SCANDINAVIAN_MALE_083=Leo -NAMESET_SCANDINAVIAN_MALE_084=Linus +NAMESET_SCANDINAVIAN_MALE_78=Kristian +NAMESET_SCANDINAVIAN_MALE_79=Kristoffer +NAMESET_SCANDINAVIAN_MALE_80=Lars +NAMESET_SCANDINAVIAN_MALE_81=Lasse +NAMESET_SCANDINAVIAN_MALE_82=Laurits +NAMESET_SCANDINAVIAN_MALE_83=Leo +NAMESET_SCANDINAVIAN_MALE_84=Linus # pronounced as [linus], not [lainəs] as this is scandinavian section. -NAMESET_SCANDINAVIAN_MALE_085=Loke -NAMESET_SCANDINAVIAN_MALE_086=Love +NAMESET_SCANDINAVIAN_MALE_85=Loke +NAMESET_SCANDINAVIAN_MALE_86=Love # NOT pronounced as [ləv]! -NAMESET_SCANDINAVIAN_MALE_087=Ludvig -NAMESET_SCANDINAVIAN_MALE_088=Lukas -NAMESET_SCANDINAVIAN_MALE_089=Mads -NAMESET_SCANDINAVIAN_MALE_090=Magnus -NAMESET_SCANDINAVIAN_MALE_091=Malte -NAMESET_SCANDINAVIAN_MALE_092=Malthe -NAMESET_SCANDINAVIAN_MALE_093=Marcus -NAMESET_SCANDINAVIAN_MALE_094=Maria -NAMESET_SCANDINAVIAN_MALE_095=Marius -NAMESET_SCANDINAVIAN_MALE_096=Markus -NAMESET_SCANDINAVIAN_MALE_097=Martin -NAMESET_SCANDINAVIAN_MALE_098=Cyrus +NAMESET_SCANDINAVIAN_MALE_87=Ludvig +NAMESET_SCANDINAVIAN_MALE_88=Lukas +NAMESET_SCANDINAVIAN_MALE_89=Mads +NAMESET_SCANDINAVIAN_MALE_90=Magnus +NAMESET_SCANDINAVIAN_MALE_91=Malte +NAMESET_SCANDINAVIAN_MALE_92=Malthe +NAMESET_SCANDINAVIAN_MALE_93=Marcus +NAMESET_SCANDINAVIAN_MALE_94=Maria +NAMESET_SCANDINAVIAN_MALE_95=Marius +NAMESET_SCANDINAVIAN_MALE_96=Markus +NAMESET_SCANDINAVIAN_MALE_97=Martin +NAMESET_SCANDINAVIAN_MALE_98=Cyrus # need more exotic name starting with 'C'... -NAMESET_SCANDINAVIAN_MALE_099=Mats +NAMESET_SCANDINAVIAN_MALE_99=Mats NAMESET_SCANDINAVIAN_MALE_100=Mattias NAMESET_SCANDINAVIAN_MALE_101=Max NAMESET_SCANDINAVIAN_MALE_102=Maximillian @@ -173,106 +173,106 @@ NAMESET_SCANDINAVIAN_MALE_162=Vincent # feminine names -NAMESET_SCANDINAVIAN_FEMALE_001=Agnes -NAMESET_SCANDINAVIAN_FEMALE_002=Alberte -NAMESET_SCANDINAVIAN_FEMALE_003=Alexandra -NAMESET_SCANDINAVIAN_FEMALE_004=Alva -NAMESET_SCANDINAVIAN_FEMALE_005=Amanda -NAMESET_SCANDINAVIAN_FEMALE_006=Andrea -NAMESET_SCANDINAVIAN_FEMALE_007=Ane -NAMESET_SCANDINAVIAN_FEMALE_008=Anna -NAMESET_SCANDINAVIAN_FEMALE_009=Anne -NAMESET_SCANDINAVIAN_FEMALE_010=Anniken -NAMESET_SCANDINAVIAN_FEMALE_011=Asta -NAMESET_SCANDINAVIAN_FEMALE_012=Astrid -NAMESET_SCANDINAVIAN_FEMALE_013=Beatrice -NAMESET_SCANDINAVIAN_FEMALE_014=Camilla -NAMESET_SCANDINAVIAN_FEMALE_015=Carolina -NAMESET_SCANDINAVIAN_FEMALE_016=Caroline -NAMESET_SCANDINAVIAN_FEMALE_017=Cecilia -NAMESET_SCANDINAVIAN_FEMALE_018=Celina -NAMESET_SCANDINAVIAN_FEMALE_019=Charlotte -NAMESET_SCANDINAVIAN_FEMALE_020=Christina -NAMESET_SCANDINAVIAN_FEMALE_021=Christine -NAMESET_SCANDINAVIAN_FEMALE_022=Ebba -NAMESET_SCANDINAVIAN_FEMALE_023=Edith -NAMESET_SCANDINAVIAN_FEMALE_024=Elin -NAMESET_SCANDINAVIAN_FEMALE_025=Elina -NAMESET_SCANDINAVIAN_FEMALE_026=Elisabeth -NAMESET_SCANDINAVIAN_FEMALE_027=Elise -NAMESET_SCANDINAVIAN_FEMALE_028=Ella -NAMESET_SCANDINAVIAN_FEMALE_029=Ellinor -NAMESET_SCANDINAVIAN_FEMALE_030=Elsa -NAMESET_SCANDINAVIAN_FEMALE_031=Emelie -NAMESET_SCANDINAVIAN_FEMALE_032=Emilia -NAMESET_SCANDINAVIAN_FEMALE_033=Emilie -NAMESET_SCANDINAVIAN_FEMALE_034=Emma -NAMESET_SCANDINAVIAN_FEMALE_035=Erika -NAMESET_SCANDINAVIAN_FEMALE_036=Erle -NAMESET_SCANDINAVIAN_FEMALE_037=Ester -NAMESET_SCANDINAVIAN_FEMALE_038=Eva -NAMESET_SCANDINAVIAN_FEMALE_039=Evelina -NAMESET_SCANDINAVIAN_FEMALE_040=Felicia -NAMESET_SCANDINAVIAN_FEMALE_041=Filippa -NAMESET_SCANDINAVIAN_FEMALE_042=Frederikke -NAMESET_SCANDINAVIAN_FEMALE_043=Freja -NAMESET_SCANDINAVIAN_FEMALE_044=Frida -NAMESET_SCANDINAVIAN_FEMALE_045=Gabriella -NAMESET_SCANDINAVIAN_FEMALE_046=Greta -NAMESET_SCANDINAVIAN_FEMALE_047=Hanna -NAMESET_SCANDINAVIAN_FEMALE_048=Hanne -NAMESET_SCANDINAVIAN_FEMALE_049=Hedda -NAMESET_SCANDINAVIAN_FEMALE_050=Hedvig -NAMESET_SCANDINAVIAN_FEMALE_051=Helena -NAMESET_SCANDINAVIAN_FEMALE_052=Helene -NAMESET_SCANDINAVIAN_FEMALE_053=Helle -NAMESET_SCANDINAVIAN_FEMALE_054=Henriette -NAMESET_SCANDINAVIAN_FEMALE_055=Hilda -NAMESET_SCANDINAVIAN_FEMALE_056=Ida -NAMESET_SCANDINAVIAN_FEMALE_057=Ina -NAMESET_SCANDINAVIAN_FEMALE_058=Ingeborg -NAMESET_SCANDINAVIAN_FEMALE_059=Ingrid -NAMESET_SCANDINAVIAN_FEMALE_060=Ingvild -NAMESET_SCANDINAVIAN_FEMALE_061=Iris -NAMESET_SCANDINAVIAN_FEMALE_062=Isabella -NAMESET_SCANDINAVIAN_FEMALE_063=Jessica -NAMESET_SCANDINAVIAN_FEMALE_064=Jóhanna -NAMESET_SCANDINAVIAN_FEMALE_065=Johanna -NAMESET_SCANDINAVIAN_FEMALE_066=Johanne -NAMESET_SCANDINAVIAN_FEMALE_067=Jonna -NAMESET_SCANDINAVIAN_FEMALE_068=Julia +NAMESET_SCANDINAVIAN_FEMALE_1=Agnes +NAMESET_SCANDINAVIAN_FEMALE_2=Alberte +NAMESET_SCANDINAVIAN_FEMALE_3=Alexandra +NAMESET_SCANDINAVIAN_FEMALE_4=Alva +NAMESET_SCANDINAVIAN_FEMALE_5=Amanda +NAMESET_SCANDINAVIAN_FEMALE_6=Andrea +NAMESET_SCANDINAVIAN_FEMALE_7=Ane +NAMESET_SCANDINAVIAN_FEMALE_8=Anna +NAMESET_SCANDINAVIAN_FEMALE_9=Anne +NAMESET_SCANDINAVIAN_FEMALE_10=Anniken +NAMESET_SCANDINAVIAN_FEMALE_11=Asta +NAMESET_SCANDINAVIAN_FEMALE_12=Astrid +NAMESET_SCANDINAVIAN_FEMALE_13=Beatrice +NAMESET_SCANDINAVIAN_FEMALE_14=Camilla +NAMESET_SCANDINAVIAN_FEMALE_15=Carolina +NAMESET_SCANDINAVIAN_FEMALE_16=Caroline +NAMESET_SCANDINAVIAN_FEMALE_17=Cecilia +NAMESET_SCANDINAVIAN_FEMALE_18=Celina +NAMESET_SCANDINAVIAN_FEMALE_19=Charlotte +NAMESET_SCANDINAVIAN_FEMALE_20=Christina +NAMESET_SCANDINAVIAN_FEMALE_21=Christine +NAMESET_SCANDINAVIAN_FEMALE_22=Ebba +NAMESET_SCANDINAVIAN_FEMALE_23=Edith +NAMESET_SCANDINAVIAN_FEMALE_24=Elin +NAMESET_SCANDINAVIAN_FEMALE_25=Elina +NAMESET_SCANDINAVIAN_FEMALE_26=Elisabeth +NAMESET_SCANDINAVIAN_FEMALE_27=Elise +NAMESET_SCANDINAVIAN_FEMALE_28=Ella +NAMESET_SCANDINAVIAN_FEMALE_29=Ellinor +NAMESET_SCANDINAVIAN_FEMALE_30=Elsa +NAMESET_SCANDINAVIAN_FEMALE_31=Emelie +NAMESET_SCANDINAVIAN_FEMALE_32=Emilia +NAMESET_SCANDINAVIAN_FEMALE_33=Emilie +NAMESET_SCANDINAVIAN_FEMALE_34=Emma +NAMESET_SCANDINAVIAN_FEMALE_35=Erika +NAMESET_SCANDINAVIAN_FEMALE_36=Erle +NAMESET_SCANDINAVIAN_FEMALE_37=Ester +NAMESET_SCANDINAVIAN_FEMALE_38=Eva +NAMESET_SCANDINAVIAN_FEMALE_39=Evelina +NAMESET_SCANDINAVIAN_FEMALE_40=Felicia +NAMESET_SCANDINAVIAN_FEMALE_41=Filippa +NAMESET_SCANDINAVIAN_FEMALE_42=Frederikke +NAMESET_SCANDINAVIAN_FEMALE_43=Freja +NAMESET_SCANDINAVIAN_FEMALE_44=Frida +NAMESET_SCANDINAVIAN_FEMALE_45=Gabriella +NAMESET_SCANDINAVIAN_FEMALE_46=Greta +NAMESET_SCANDINAVIAN_FEMALE_47=Hanna +NAMESET_SCANDINAVIAN_FEMALE_48=Hanne +NAMESET_SCANDINAVIAN_FEMALE_49=Hedda +NAMESET_SCANDINAVIAN_FEMALE_50=Hedvig +NAMESET_SCANDINAVIAN_FEMALE_51=Helena +NAMESET_SCANDINAVIAN_FEMALE_52=Helene +NAMESET_SCANDINAVIAN_FEMALE_53=Helle +NAMESET_SCANDINAVIAN_FEMALE_54=Henriette +NAMESET_SCANDINAVIAN_FEMALE_55=Hilda +NAMESET_SCANDINAVIAN_FEMALE_56=Ida +NAMESET_SCANDINAVIAN_FEMALE_57=Ina +NAMESET_SCANDINAVIAN_FEMALE_58=Ingeborg +NAMESET_SCANDINAVIAN_FEMALE_59=Ingrid +NAMESET_SCANDINAVIAN_FEMALE_60=Ingvild +NAMESET_SCANDINAVIAN_FEMALE_61=Iris +NAMESET_SCANDINAVIAN_FEMALE_62=Isabella +NAMESET_SCANDINAVIAN_FEMALE_63=Jessica +NAMESET_SCANDINAVIAN_FEMALE_64=Jóhanna +NAMESET_SCANDINAVIAN_FEMALE_65=Johanna +NAMESET_SCANDINAVIAN_FEMALE_66=Johanne +NAMESET_SCANDINAVIAN_FEMALE_67=Jonna +NAMESET_SCANDINAVIAN_FEMALE_68=Julia # pronounced as [julia], not [d͡ʒulia] -NAMESET_SCANDINAVIAN_FEMALE_069=Kaja -NAMESET_SCANDINAVIAN_FEMALE_070=Kajsa -NAMESET_SCANDINAVIAN_FEMALE_071=Kamilla -NAMESET_SCANDINAVIAN_FEMALE_072=Karen -NAMESET_SCANDINAVIAN_FEMALE_073=Karin -NAMESET_SCANDINAVIAN_FEMALE_074=Karoline -NAMESET_SCANDINAVIAN_FEMALE_075=Katrine -NAMESET_SCANDINAVIAN_FEMALE_076=Klara -NAMESET_SCANDINAVIAN_FEMALE_077=Kristín -NAMESET_SCANDINAVIAN_FEMALE_078=Kristin -NAMESET_SCANDINAVIAN_FEMALE_079=Kristina -NAMESET_SCANDINAVIAN_FEMALE_080=Kristine -NAMESET_SCANDINAVIAN_FEMALE_081=Lærke -NAMESET_SCANDINAVIAN_FEMALE_082=Laura -NAMESET_SCANDINAVIAN_FEMALE_083=Lea -NAMESET_SCANDINAVIAN_FEMALE_084=Lene -NAMESET_SCANDINAVIAN_FEMALE_085=Lilly -NAMESET_SCANDINAVIAN_FEMALE_086=Lina -NAMESET_SCANDINAVIAN_FEMALE_087=Linda -NAMESET_SCANDINAVIAN_FEMALE_088=Line -NAMESET_SCANDINAVIAN_FEMALE_089=Linn -NAMESET_SCANDINAVIAN_FEMALE_090=Linnéa -NAMESET_SCANDINAVIAN_FEMALE_091=Lisa -NAMESET_SCANDINAVIAN_FEMALE_092=Liv -NAMESET_SCANDINAVIAN_FEMALE_093=Lotte -NAMESET_SCANDINAVIAN_FEMALE_094=Lovisa -NAMESET_SCANDINAVIAN_FEMALE_095=Lykke -NAMESET_SCANDINAVIAN_FEMALE_096=Maiken -NAMESET_SCANDINAVIAN_FEMALE_097=Maja -NAMESET_SCANDINAVIAN_FEMALE_098=Majken -NAMESET_SCANDINAVIAN_FEMALE_099=Malene +NAMESET_SCANDINAVIAN_FEMALE_69=Kaja +NAMESET_SCANDINAVIAN_FEMALE_70=Kajsa +NAMESET_SCANDINAVIAN_FEMALE_71=Kamilla +NAMESET_SCANDINAVIAN_FEMALE_72=Karen +NAMESET_SCANDINAVIAN_FEMALE_73=Karin +NAMESET_SCANDINAVIAN_FEMALE_74=Karoline +NAMESET_SCANDINAVIAN_FEMALE_75=Katrine +NAMESET_SCANDINAVIAN_FEMALE_76=Klara +NAMESET_SCANDINAVIAN_FEMALE_77=Kristín +NAMESET_SCANDINAVIAN_FEMALE_78=Kristin +NAMESET_SCANDINAVIAN_FEMALE_79=Kristina +NAMESET_SCANDINAVIAN_FEMALE_80=Kristine +NAMESET_SCANDINAVIAN_FEMALE_81=Lærke +NAMESET_SCANDINAVIAN_FEMALE_82=Laura +NAMESET_SCANDINAVIAN_FEMALE_83=Lea +NAMESET_SCANDINAVIAN_FEMALE_84=Lene +NAMESET_SCANDINAVIAN_FEMALE_85=Lilly +NAMESET_SCANDINAVIAN_FEMALE_86=Lina +NAMESET_SCANDINAVIAN_FEMALE_87=Linda +NAMESET_SCANDINAVIAN_FEMALE_88=Line +NAMESET_SCANDINAVIAN_FEMALE_89=Linn +NAMESET_SCANDINAVIAN_FEMALE_90=Linnéa +NAMESET_SCANDINAVIAN_FEMALE_91=Lisa +NAMESET_SCANDINAVIAN_FEMALE_92=Liv +NAMESET_SCANDINAVIAN_FEMALE_93=Lotte +NAMESET_SCANDINAVIAN_FEMALE_94=Lovisa +NAMESET_SCANDINAVIAN_FEMALE_95=Lykke +NAMESET_SCANDINAVIAN_FEMALE_96=Maiken +NAMESET_SCANDINAVIAN_FEMALE_97=Maja +NAMESET_SCANDINAVIAN_FEMALE_98=Majken +NAMESET_SCANDINAVIAN_FEMALE_99=Malene NAMESET_SCANDINAVIAN_FEMALE_100=Malin NAMESET_SCANDINAVIAN_FEMALE_101=Maren NAMESET_SCANDINAVIAN_FEMALE_102=Mari diff --git a/res/locales/scandinavian-hangul.name b/res/locales/scandinavian-hangul.name index 8ff2322ea..f21a3c4c4 100755 --- a/res/locales/scandinavian-hangul.name +++ b/res/locales/scandinavian-hangul.name @@ -3,111 +3,111 @@ # Translator note: this nameset does not contain name that has [ɹ](american english 'r') sound (except '-er'). i.e. for Korean, 'Carl' should be '카를', 'Aleksander' should be '알렉산더'. # Hangul version author: Torvald (main dev) 한글 전사: 토르발드 (개발진) -NAMESET_SCANDINAVIAN_MALE_001=아담 -NAMESET_SCANDINAVIAN_MALE_002=아드리안 -NAMESET_SCANDINAVIAN_MALE_003=악셀 -NAMESET_SCANDINAVIAN_MALE_004=알베르 -NAMESET_SCANDINAVIAN_MALE_005=알빈 -NAMESET_SCANDINAVIAN_MALE_006=알렉 -NAMESET_SCANDINAVIAN_MALE_007=알렉산더 -NAMESET_SCANDINAVIAN_MALE_008=알프레드 -NAMESET_SCANDINAVIAN_MALE_009=아문드 -NAMESET_SCANDINAVIAN_MALE_010=안드레아스 -NAMESET_SCANDINAVIAN_MALE_011=안톤 -NAMESET_SCANDINAVIAN_MALE_012=아론 -NAMESET_SCANDINAVIAN_MALE_013=알바르 -NAMESET_SCANDINAVIAN_MALE_014=아우구스트 -NAMESET_SCANDINAVIAN_MALE_015=악셀 -NAMESET_SCANDINAVIAN_MALE_016=비외른 -NAMESET_SCANDINAVIAN_MALE_017=비외른 -NAMESET_SCANDINAVIAN_MALE_018=카를 -NAMESET_SCANDINAVIAN_MALE_019=카스퍼 -NAMESET_SCANDINAVIAN_MALE_020=크리스티안 -NAMESET_SCANDINAVIAN_MALE_021=크리스토퍼 -NAMESET_SCANDINAVIAN_MALE_022=다니엘 -NAMESET_SCANDINAVIAN_MALE_023=다비드 +NAMESET_SCANDINAVIAN_MALE_1=아담 +NAMESET_SCANDINAVIAN_MALE_2=아드리안 +NAMESET_SCANDINAVIAN_MALE_3=악셀 +NAMESET_SCANDINAVIAN_MALE_4=알베르 +NAMESET_SCANDINAVIAN_MALE_5=알빈 +NAMESET_SCANDINAVIAN_MALE_6=알렉 +NAMESET_SCANDINAVIAN_MALE_7=알렉산더 +NAMESET_SCANDINAVIAN_MALE_8=알프레드 +NAMESET_SCANDINAVIAN_MALE_9=아문드 +NAMESET_SCANDINAVIAN_MALE_10=안드레아스 +NAMESET_SCANDINAVIAN_MALE_11=안톤 +NAMESET_SCANDINAVIAN_MALE_12=아론 +NAMESET_SCANDINAVIAN_MALE_13=알바르 +NAMESET_SCANDINAVIAN_MALE_14=아우구스트 +NAMESET_SCANDINAVIAN_MALE_15=악셀 +NAMESET_SCANDINAVIAN_MALE_16=비외른 +NAMESET_SCANDINAVIAN_MALE_17=비외른 +NAMESET_SCANDINAVIAN_MALE_18=카를 +NAMESET_SCANDINAVIAN_MALE_19=카스퍼 +NAMESET_SCANDINAVIAN_MALE_20=크리스티안 +NAMESET_SCANDINAVIAN_MALE_21=크리스토퍼 +NAMESET_SCANDINAVIAN_MALE_22=다니엘 +NAMESET_SCANDINAVIAN_MALE_23=다비드 # pronounced as [dɑvid], not [deivɪd] -NAMESET_SCANDINAVIAN_MALE_024=에드문드 -NAMESET_SCANDINAVIAN_MALE_025=에드바르 -NAMESET_SCANDINAVIAN_MALE_026=에드빈 -NAMESET_SCANDINAVIAN_MALE_027=에릭 -NAMESET_SCANDINAVIAN_MALE_028=엘리아스 -NAMESET_SCANDINAVIAN_MALE_029=엘리스 -NAMESET_SCANDINAVIAN_MALE_030=에마누엘 -NAMESET_SCANDINAVIAN_MALE_031=에밀 -NAMESET_SCANDINAVIAN_MALE_032=에인드리 -NAMESET_SCANDINAVIAN_MALE_033=에릭 -NAMESET_SCANDINAVIAN_MALE_034=에를렌드 -NAMESET_SCANDINAVIAN_MALE_035=에스펜 -NAMESET_SCANDINAVIAN_MALE_036=파비안 -NAMESET_SCANDINAVIAN_MALE_037=펠릭스 -NAMESET_SCANDINAVIAN_MALE_038=필립 -NAMESET_SCANDINAVIAN_MALE_039=프레데릭 -NAMESET_SCANDINAVIAN_MALE_040=가브리엘 -NAMESET_SCANDINAVIAN_MALE_041=구스타프 -NAMESET_SCANDINAVIAN_MALE_042=하콘 -NAMESET_SCANDINAVIAN_MALE_043=하콘 -NAMESET_SCANDINAVIAN_MALE_044=호콘 -NAMESET_SCANDINAVIAN_MALE_045=함푸스 -NAMESET_SCANDINAVIAN_MALE_046=한네 -NAMESET_SCANDINAVIAN_MALE_047=한스 -NAMESET_SCANDINAVIAN_MALE_048=호바르 -NAMESET_SCANDINAVIAN_MALE_049=헨릭 -NAMESET_SCANDINAVIAN_MALE_050=헤르만 -NAMESET_SCANDINAVIAN_MALE_051=히알마르 -NAMESET_SCANDINAVIAN_MALE_052=휴고 -NAMESET_SCANDINAVIAN_MALE_053=이삭 -NAMESET_SCANDINAVIAN_MALE_054=이바르 -NAMESET_SCANDINAVIAN_MALE_055=야콥 -NAMESET_SCANDINAVIAN_MALE_056=야콥 -NAMESET_SCANDINAVIAN_MALE_057=얀 -NAMESET_SCANDINAVIAN_MALE_058=옌스 -NAMESET_SCANDINAVIAN_MALE_059=예프 -NAMESET_SCANDINAVIAN_MALE_060=예스퍼 -NAMESET_SCANDINAVIAN_MALE_061=요아킴 +NAMESET_SCANDINAVIAN_MALE_24=에드문드 +NAMESET_SCANDINAVIAN_MALE_25=에드바르 +NAMESET_SCANDINAVIAN_MALE_26=에드빈 +NAMESET_SCANDINAVIAN_MALE_27=에릭 +NAMESET_SCANDINAVIAN_MALE_28=엘리아스 +NAMESET_SCANDINAVIAN_MALE_29=엘리스 +NAMESET_SCANDINAVIAN_MALE_30=에마누엘 +NAMESET_SCANDINAVIAN_MALE_31=에밀 +NAMESET_SCANDINAVIAN_MALE_32=에인드리 +NAMESET_SCANDINAVIAN_MALE_33=에릭 +NAMESET_SCANDINAVIAN_MALE_34=에를렌드 +NAMESET_SCANDINAVIAN_MALE_35=에스펜 +NAMESET_SCANDINAVIAN_MALE_36=파비안 +NAMESET_SCANDINAVIAN_MALE_37=펠릭스 +NAMESET_SCANDINAVIAN_MALE_38=필립 +NAMESET_SCANDINAVIAN_MALE_39=프레데릭 +NAMESET_SCANDINAVIAN_MALE_40=가브리엘 +NAMESET_SCANDINAVIAN_MALE_41=구스타프 +NAMESET_SCANDINAVIAN_MALE_42=하콘 +NAMESET_SCANDINAVIAN_MALE_43=하콘 +NAMESET_SCANDINAVIAN_MALE_44=호콘 +NAMESET_SCANDINAVIAN_MALE_45=함푸스 +NAMESET_SCANDINAVIAN_MALE_46=한네 +NAMESET_SCANDINAVIAN_MALE_47=한스 +NAMESET_SCANDINAVIAN_MALE_48=호바르 +NAMESET_SCANDINAVIAN_MALE_49=헨릭 +NAMESET_SCANDINAVIAN_MALE_50=헤르만 +NAMESET_SCANDINAVIAN_MALE_51=히알마르 +NAMESET_SCANDINAVIAN_MALE_52=휴고 +NAMESET_SCANDINAVIAN_MALE_53=이삭 +NAMESET_SCANDINAVIAN_MALE_54=이바르 +NAMESET_SCANDINAVIAN_MALE_55=야콥 +NAMESET_SCANDINAVIAN_MALE_56=야콥 +NAMESET_SCANDINAVIAN_MALE_57=얀 +NAMESET_SCANDINAVIAN_MALE_58=옌스 +NAMESET_SCANDINAVIAN_MALE_59=예프 +NAMESET_SCANDINAVIAN_MALE_60=예스퍼 +NAMESET_SCANDINAVIAN_MALE_61=요아킴 # pronounced as [joakim], not [hoakim] as this is scandinavian section. -NAMESET_SCANDINAVIAN_MALE_062=요엘 -NAMESET_SCANDINAVIAN_MALE_063=요한 -NAMESET_SCANDINAVIAN_MALE_064=요한네스 -NAMESET_SCANDINAVIAN_MALE_065=욘 -NAMESET_SCANDINAVIAN_MALE_066=욘 -NAMESET_SCANDINAVIAN_MALE_067=요나스 -NAMESET_SCANDINAVIAN_MALE_068=요나스 -NAMESET_SCANDINAVIAN_MALE_069=요나단 -NAMESET_SCANDINAVIAN_MALE_070=이외르겐 -NAMESET_SCANDINAVIAN_MALE_071=이외르겐 -NAMESET_SCANDINAVIAN_MALE_072=요세프 -NAMESET_SCANDINAVIAN_MALE_073=칼 -NAMESET_SCANDINAVIAN_MALE_074=카스퍼 -NAMESET_SCANDINAVIAN_MALE_075=케빈 -NAMESET_SCANDINAVIAN_MALE_076=킴 -NAMESET_SCANDINAVIAN_MALE_077=크누트 +NAMESET_SCANDINAVIAN_MALE_62=요엘 +NAMESET_SCANDINAVIAN_MALE_63=요한 +NAMESET_SCANDINAVIAN_MALE_64=요한네스 +NAMESET_SCANDINAVIAN_MALE_65=욘 +NAMESET_SCANDINAVIAN_MALE_66=욘 +NAMESET_SCANDINAVIAN_MALE_67=요나스 +NAMESET_SCANDINAVIAN_MALE_68=요나스 +NAMESET_SCANDINAVIAN_MALE_69=요나단 +NAMESET_SCANDINAVIAN_MALE_70=이외르겐 +NAMESET_SCANDINAVIAN_MALE_71=이외르겐 +NAMESET_SCANDINAVIAN_MALE_72=요세프 +NAMESET_SCANDINAVIAN_MALE_73=칼 +NAMESET_SCANDINAVIAN_MALE_74=카스퍼 +NAMESET_SCANDINAVIAN_MALE_75=케빈 +NAMESET_SCANDINAVIAN_MALE_76=킴 +NAMESET_SCANDINAVIAN_MALE_77=크누트 # pronounced as [knut] -NAMESET_SCANDINAVIAN_MALE_078=크리스티안 -NAMESET_SCANDINAVIAN_MALE_079=크리스토퍼 -NAMESET_SCANDINAVIAN_MALE_080=라르스 -NAMESET_SCANDINAVIAN_MALE_081=라세 -NAMESET_SCANDINAVIAN_MALE_082=라우리츠 -NAMESET_SCANDINAVIAN_MALE_083=레오 -NAMESET_SCANDINAVIAN_MALE_084=리누스 +NAMESET_SCANDINAVIAN_MALE_78=크리스티안 +NAMESET_SCANDINAVIAN_MALE_79=크리스토퍼 +NAMESET_SCANDINAVIAN_MALE_80=라르스 +NAMESET_SCANDINAVIAN_MALE_81=라세 +NAMESET_SCANDINAVIAN_MALE_82=라우리츠 +NAMESET_SCANDINAVIAN_MALE_83=레오 +NAMESET_SCANDINAVIAN_MALE_84=리누스 # pronounced as [linus], not [lainəs] as this is scandinavian section. -NAMESET_SCANDINAVIAN_MALE_085=로케 -NAMESET_SCANDINAVIAN_MALE_086=로베 +NAMESET_SCANDINAVIAN_MALE_85=로케 +NAMESET_SCANDINAVIAN_MALE_86=로베 # NOT pronounced as [ləv]! -NAMESET_SCANDINAVIAN_MALE_087=루드빅 -NAMESET_SCANDINAVIAN_MALE_088=루카스 -NAMESET_SCANDINAVIAN_MALE_089=마드스 -NAMESET_SCANDINAVIAN_MALE_090=마그누스 -NAMESET_SCANDINAVIAN_MALE_091=말테 -NAMESET_SCANDINAVIAN_MALE_092=말테 -NAMESET_SCANDINAVIAN_MALE_093=마르쿠스 -NAMESET_SCANDINAVIAN_MALE_094=마리아 -NAMESET_SCANDINAVIAN_MALE_095=마리우스 -NAMESET_SCANDINAVIAN_MALE_096=마르쿠스 -NAMESET_SCANDINAVIAN_MALE_097=마르틴 -NAMESET_SCANDINAVIAN_MALE_098=키루스 +NAMESET_SCANDINAVIAN_MALE_87=루드빅 +NAMESET_SCANDINAVIAN_MALE_88=루카스 +NAMESET_SCANDINAVIAN_MALE_89=마드스 +NAMESET_SCANDINAVIAN_MALE_90=마그누스 +NAMESET_SCANDINAVIAN_MALE_91=말테 +NAMESET_SCANDINAVIAN_MALE_92=말테 +NAMESET_SCANDINAVIAN_MALE_93=마르쿠스 +NAMESET_SCANDINAVIAN_MALE_94=마리아 +NAMESET_SCANDINAVIAN_MALE_95=마리우스 +NAMESET_SCANDINAVIAN_MALE_96=마르쿠스 +NAMESET_SCANDINAVIAN_MALE_97=마르틴 +NAMESET_SCANDINAVIAN_MALE_98=키루스 # need more exotic name starting with 'C'... -NAMESET_SCANDINAVIAN_MALE_099=마츠 +NAMESET_SCANDINAVIAN_MALE_99=마츠 NAMESET_SCANDINAVIAN_MALE_100=마티아스 NAMESET_SCANDINAVIAN_MALE_101=막스 NAMESET_SCANDINAVIAN_MALE_102=막시밀리안 @@ -174,106 +174,106 @@ NAMESET_SCANDINAVIAN_MALE_162=빈센트 # feminine names -NAMESET_SCANDINAVIAN_FEMALE_001=아그네스 -NAMESET_SCANDINAVIAN_FEMALE_002=알베르테 -NAMESET_SCANDINAVIAN_FEMALE_003=알렉산드라 -NAMESET_SCANDINAVIAN_FEMALE_004=알바 -NAMESET_SCANDINAVIAN_FEMALE_005=아만다 -NAMESET_SCANDINAVIAN_FEMALE_006=안드레아 -NAMESET_SCANDINAVIAN_FEMALE_007=아네 -NAMESET_SCANDINAVIAN_FEMALE_008=안나 -NAMESET_SCANDINAVIAN_FEMALE_009=안네 -NAMESET_SCANDINAVIAN_FEMALE_010=안니켄 -NAMESET_SCANDINAVIAN_FEMALE_011=아스타 -NAMESET_SCANDINAVIAN_FEMALE_012=아스트리드 -NAMESET_SCANDINAVIAN_FEMALE_013=베아트리케 -NAMESET_SCANDINAVIAN_FEMALE_014=카밀라 -NAMESET_SCANDINAVIAN_FEMALE_015=카롤리나 -NAMESET_SCANDINAVIAN_FEMALE_016=카롤리네 -NAMESET_SCANDINAVIAN_FEMALE_017=세실리아 -NAMESET_SCANDINAVIAN_FEMALE_018=첼리나 -NAMESET_SCANDINAVIAN_FEMALE_019=카를로테 -NAMESET_SCANDINAVIAN_FEMALE_020=크리스티나 -NAMESET_SCANDINAVIAN_FEMALE_021=크리스티네 -NAMESET_SCANDINAVIAN_FEMALE_022=에바 -NAMESET_SCANDINAVIAN_FEMALE_023=에디스 -NAMESET_SCANDINAVIAN_FEMALE_024=엘린 -NAMESET_SCANDINAVIAN_FEMALE_025=엘리나 -NAMESET_SCANDINAVIAN_FEMALE_026=엘리사베스 -NAMESET_SCANDINAVIAN_FEMALE_027=엘리세 -NAMESET_SCANDINAVIAN_FEMALE_028=엘라 -NAMESET_SCANDINAVIAN_FEMALE_029=엘리노르 -NAMESET_SCANDINAVIAN_FEMALE_030=엘사 -NAMESET_SCANDINAVIAN_FEMALE_031=에밀리에 -NAMESET_SCANDINAVIAN_FEMALE_032=에밀리아 -NAMESET_SCANDINAVIAN_FEMALE_033=에밀리에 -NAMESET_SCANDINAVIAN_FEMALE_034=엠마 -NAMESET_SCANDINAVIAN_FEMALE_035=에리카 -NAMESET_SCANDINAVIAN_FEMALE_036=에를레 -NAMESET_SCANDINAVIAN_FEMALE_037=에스테르 -NAMESET_SCANDINAVIAN_FEMALE_038=에바 -NAMESET_SCANDINAVIAN_FEMALE_039=에벨리나 -NAMESET_SCANDINAVIAN_FEMALE_040=펠리시아 -NAMESET_SCANDINAVIAN_FEMALE_041=필리파 -NAMESET_SCANDINAVIAN_FEMALE_042=프레데리케 -NAMESET_SCANDINAVIAN_FEMALE_043=프레야 -NAMESET_SCANDINAVIAN_FEMALE_044=프리다 -NAMESET_SCANDINAVIAN_FEMALE_045=가브리엘라 -NAMESET_SCANDINAVIAN_FEMALE_046=그레타 -NAMESET_SCANDINAVIAN_FEMALE_047=한나 -NAMESET_SCANDINAVIAN_FEMALE_048=한네 -NAMESET_SCANDINAVIAN_FEMALE_049=헤다 -NAMESET_SCANDINAVIAN_FEMALE_050=헤드비그 -NAMESET_SCANDINAVIAN_FEMALE_051=헬레나 -NAMESET_SCANDINAVIAN_FEMALE_052=헬레네 -NAMESET_SCANDINAVIAN_FEMALE_053=헬레 -NAMESET_SCANDINAVIAN_FEMALE_054=헨리에트 -NAMESET_SCANDINAVIAN_FEMALE_055=힐다 -NAMESET_SCANDINAVIAN_FEMALE_056=이다 -NAMESET_SCANDINAVIAN_FEMALE_057=이나 -NAMESET_SCANDINAVIAN_FEMALE_058=잉게보리 -NAMESET_SCANDINAVIAN_FEMALE_059=잉그리 -NAMESET_SCANDINAVIAN_FEMALE_060=잉그빌드 -NAMESET_SCANDINAVIAN_FEMALE_061=이리스 -NAMESET_SCANDINAVIAN_FEMALE_062=이사벨라 -NAMESET_SCANDINAVIAN_FEMALE_063=예시카 -NAMESET_SCANDINAVIAN_FEMALE_064=요한나 -NAMESET_SCANDINAVIAN_FEMALE_065=요한나 -NAMESET_SCANDINAVIAN_FEMALE_066=요한네 -NAMESET_SCANDINAVIAN_FEMALE_067=요나 -NAMESET_SCANDINAVIAN_FEMALE_068=율리아 +NAMESET_SCANDINAVIAN_FEMALE_1=아그네스 +NAMESET_SCANDINAVIAN_FEMALE_2=알베르테 +NAMESET_SCANDINAVIAN_FEMALE_3=알렉산드라 +NAMESET_SCANDINAVIAN_FEMALE_4=알바 +NAMESET_SCANDINAVIAN_FEMALE_5=아만다 +NAMESET_SCANDINAVIAN_FEMALE_6=안드레아 +NAMESET_SCANDINAVIAN_FEMALE_7=아네 +NAMESET_SCANDINAVIAN_FEMALE_8=안나 +NAMESET_SCANDINAVIAN_FEMALE_9=안네 +NAMESET_SCANDINAVIAN_FEMALE_10=안니켄 +NAMESET_SCANDINAVIAN_FEMALE_11=아스타 +NAMESET_SCANDINAVIAN_FEMALE_12=아스트리드 +NAMESET_SCANDINAVIAN_FEMALE_13=베아트리케 +NAMESET_SCANDINAVIAN_FEMALE_14=카밀라 +NAMESET_SCANDINAVIAN_FEMALE_15=카롤리나 +NAMESET_SCANDINAVIAN_FEMALE_16=카롤리네 +NAMESET_SCANDINAVIAN_FEMALE_17=세실리아 +NAMESET_SCANDINAVIAN_FEMALE_18=첼리나 +NAMESET_SCANDINAVIAN_FEMALE_19=카를로테 +NAMESET_SCANDINAVIAN_FEMALE_20=크리스티나 +NAMESET_SCANDINAVIAN_FEMALE_21=크리스티네 +NAMESET_SCANDINAVIAN_FEMALE_22=에바 +NAMESET_SCANDINAVIAN_FEMALE_23=에디스 +NAMESET_SCANDINAVIAN_FEMALE_24=엘린 +NAMESET_SCANDINAVIAN_FEMALE_25=엘리나 +NAMESET_SCANDINAVIAN_FEMALE_26=엘리사베스 +NAMESET_SCANDINAVIAN_FEMALE_27=엘리세 +NAMESET_SCANDINAVIAN_FEMALE_28=엘라 +NAMESET_SCANDINAVIAN_FEMALE_29=엘리노르 +NAMESET_SCANDINAVIAN_FEMALE_30=엘사 +NAMESET_SCANDINAVIAN_FEMALE_31=에밀리에 +NAMESET_SCANDINAVIAN_FEMALE_32=에밀리아 +NAMESET_SCANDINAVIAN_FEMALE_33=에밀리에 +NAMESET_SCANDINAVIAN_FEMALE_34=엠마 +NAMESET_SCANDINAVIAN_FEMALE_35=에리카 +NAMESET_SCANDINAVIAN_FEMALE_36=에를레 +NAMESET_SCANDINAVIAN_FEMALE_37=에스테르 +NAMESET_SCANDINAVIAN_FEMALE_38=에바 +NAMESET_SCANDINAVIAN_FEMALE_39=에벨리나 +NAMESET_SCANDINAVIAN_FEMALE_40=펠리시아 +NAMESET_SCANDINAVIAN_FEMALE_41=필리파 +NAMESET_SCANDINAVIAN_FEMALE_42=프레데리케 +NAMESET_SCANDINAVIAN_FEMALE_43=프레야 +NAMESET_SCANDINAVIAN_FEMALE_44=프리다 +NAMESET_SCANDINAVIAN_FEMALE_45=가브리엘라 +NAMESET_SCANDINAVIAN_FEMALE_46=그레타 +NAMESET_SCANDINAVIAN_FEMALE_47=한나 +NAMESET_SCANDINAVIAN_FEMALE_48=한네 +NAMESET_SCANDINAVIAN_FEMALE_49=헤다 +NAMESET_SCANDINAVIAN_FEMALE_50=헤드비그 +NAMESET_SCANDINAVIAN_FEMALE_51=헬레나 +NAMESET_SCANDINAVIAN_FEMALE_52=헬레네 +NAMESET_SCANDINAVIAN_FEMALE_53=헬레 +NAMESET_SCANDINAVIAN_FEMALE_54=헨리에트 +NAMESET_SCANDINAVIAN_FEMALE_55=힐다 +NAMESET_SCANDINAVIAN_FEMALE_56=이다 +NAMESET_SCANDINAVIAN_FEMALE_57=이나 +NAMESET_SCANDINAVIAN_FEMALE_58=잉게보리 +NAMESET_SCANDINAVIAN_FEMALE_59=잉그리 +NAMESET_SCANDINAVIAN_FEMALE_60=잉그빌드 +NAMESET_SCANDINAVIAN_FEMALE_61=이리스 +NAMESET_SCANDINAVIAN_FEMALE_62=이사벨라 +NAMESET_SCANDINAVIAN_FEMALE_63=예시카 +NAMESET_SCANDINAVIAN_FEMALE_64=요한나 +NAMESET_SCANDINAVIAN_FEMALE_65=요한나 +NAMESET_SCANDINAVIAN_FEMALE_66=요한네 +NAMESET_SCANDINAVIAN_FEMALE_67=요나 +NAMESET_SCANDINAVIAN_FEMALE_68=율리아 # pronounced as [julia], not [d͡ʒulia] -NAMESET_SCANDINAVIAN_FEMALE_069=카야 -NAMESET_SCANDINAVIAN_FEMALE_070=카트리나 -NAMESET_SCANDINAVIAN_FEMALE_071=카밀라 -NAMESET_SCANDINAVIAN_FEMALE_072=카렌 -NAMESET_SCANDINAVIAN_FEMALE_073=카린 -NAMESET_SCANDINAVIAN_FEMALE_074=카롤리네 -NAMESET_SCANDINAVIAN_FEMALE_075=카트리네 -NAMESET_SCANDINAVIAN_FEMALE_076=클라라 -NAMESET_SCANDINAVIAN_FEMALE_077=크리스틴 -NAMESET_SCANDINAVIAN_FEMALE_078=크리스틴 -NAMESET_SCANDINAVIAN_FEMALE_079=크리스티나 -NAMESET_SCANDINAVIAN_FEMALE_080=크리스티네 -NAMESET_SCANDINAVIAN_FEMALE_081=레르케 -NAMESET_SCANDINAVIAN_FEMALE_082=라우라 -NAMESET_SCANDINAVIAN_FEMALE_083=레아 -NAMESET_SCANDINAVIAN_FEMALE_084=레네 -NAMESET_SCANDINAVIAN_FEMALE_085=릴리 -NAMESET_SCANDINAVIAN_FEMALE_086=리나 -NAMESET_SCANDINAVIAN_FEMALE_087=린다 -NAMESET_SCANDINAVIAN_FEMALE_088=리네 -NAMESET_SCANDINAVIAN_FEMALE_089=린 -NAMESET_SCANDINAVIAN_FEMALE_090=린네아 -NAMESET_SCANDINAVIAN_FEMALE_091=리사 -NAMESET_SCANDINAVIAN_FEMALE_092=리브 -NAMESET_SCANDINAVIAN_FEMALE_093=로테 -NAMESET_SCANDINAVIAN_FEMALE_094=로비사 -NAMESET_SCANDINAVIAN_FEMALE_095=리케 -NAMESET_SCANDINAVIAN_FEMALE_096=마이켄 -NAMESET_SCANDINAVIAN_FEMALE_097=마야 -NAMESET_SCANDINAVIAN_FEMALE_098=마이켄 -NAMESET_SCANDINAVIAN_FEMALE_099=말레네 +NAMESET_SCANDINAVIAN_FEMALE_69=카야 +NAMESET_SCANDINAVIAN_FEMALE_70=카트리나 +NAMESET_SCANDINAVIAN_FEMALE_71=카밀라 +NAMESET_SCANDINAVIAN_FEMALE_72=카렌 +NAMESET_SCANDINAVIAN_FEMALE_73=카린 +NAMESET_SCANDINAVIAN_FEMALE_74=카롤리네 +NAMESET_SCANDINAVIAN_FEMALE_75=카트리네 +NAMESET_SCANDINAVIAN_FEMALE_76=클라라 +NAMESET_SCANDINAVIAN_FEMALE_77=크리스틴 +NAMESET_SCANDINAVIAN_FEMALE_78=크리스틴 +NAMESET_SCANDINAVIAN_FEMALE_79=크리스티나 +NAMESET_SCANDINAVIAN_FEMALE_80=크리스티네 +NAMESET_SCANDINAVIAN_FEMALE_81=레르케 +NAMESET_SCANDINAVIAN_FEMALE_82=라우라 +NAMESET_SCANDINAVIAN_FEMALE_83=레아 +NAMESET_SCANDINAVIAN_FEMALE_84=레네 +NAMESET_SCANDINAVIAN_FEMALE_85=릴리 +NAMESET_SCANDINAVIAN_FEMALE_86=리나 +NAMESET_SCANDINAVIAN_FEMALE_87=린다 +NAMESET_SCANDINAVIAN_FEMALE_88=리네 +NAMESET_SCANDINAVIAN_FEMALE_89=린 +NAMESET_SCANDINAVIAN_FEMALE_90=린네아 +NAMESET_SCANDINAVIAN_FEMALE_91=리사 +NAMESET_SCANDINAVIAN_FEMALE_92=리브 +NAMESET_SCANDINAVIAN_FEMALE_93=로테 +NAMESET_SCANDINAVIAN_FEMALE_94=로비사 +NAMESET_SCANDINAVIAN_FEMALE_95=리케 +NAMESET_SCANDINAVIAN_FEMALE_96=마이켄 +NAMESET_SCANDINAVIAN_FEMALE_97=마야 +NAMESET_SCANDINAVIAN_FEMALE_98=마이켄 +NAMESET_SCANDINAVIAN_FEMALE_99=말레네 NAMESET_SCANDINAVIAN_FEMALE_100=말린 NAMESET_SCANDINAVIAN_FEMALE_101=마렌 NAMESET_SCANDINAVIAN_FEMALE_102=마리 diff --git a/res/raw/CreatureHuman.json b/res/raw/CreatureHuman.json index 447c2ac6e..ee06e0c89 100644 --- a/res/raw/CreatureHuman.json +++ b/res/raw/CreatureHuman.json @@ -1,7 +1,6 @@ { "racename" : "CONTEXT_RACE_HUMAN", "racenameplural" : "CONTEXT_RACE_HUMAN_PLURAL", - "ethnicgroup" : "human", "baseheight" : 40, "basemass" : 60.0, diff --git a/res/raw/FactionSigrid.json b/res/raw/FactionSigrid.json new file mode 100644 index 000000000..12b9fcbac --- /dev/null +++ b/res/raw/FactionSigrid.json @@ -0,0 +1,8 @@ +{ + "factionname" : "sigrid", + + "factionamicable" : ["follower"], + "factionneutral" : ["controlledvillager"], + "factionhostile" : ["wildlifehostile"], + "factionfearful" : ["peasant", "wildlifeflee"] +} \ No newline at end of file diff --git a/src/com/Torvald/ColourUtil/Col216.java b/src/com/Torvald/ColourUtil/Col216.java new file mode 100644 index 000000000..80372328a --- /dev/null +++ b/src/com/Torvald/ColourUtil/Col216.java @@ -0,0 +1,76 @@ +package com.Torvald.ColourUtil; + +import org.newdawn.slick.Color; + +/** + * Created by minjaesong on 16-02-11. + */ +public class Col216 implements LimitedColours { + + private byte data; + private static int[] LOOKUP = {0x00, 0x33, 0x66, 0x99, 0xCC, 0xFF}; + + /** + * + * @param data + */ + public Col216(byte data) { + create(data); + } + + /** + * + * @param r 0-5 + * @param g 0-5 + * @param b 0-5 + */ + public Col216(int r, int g, int b) { + create(r, g, b); + } + + @Override + public Color createSlickColor(int raw) { + assertRaw(raw); + int r = LOOKUP[(raw / 36)]; + int g = LOOKUP[((raw % 36) / 6)]; + int b = LOOKUP[raw % 6]; + + return createSlickColor(r, g, b); + } + + @Override + public Color createSlickColor(int r, int g, int b) { + assertRGB(r, g, b); + return new Color(LOOKUP[r], LOOKUP[g], LOOKUP[b]); + } + + @Override + public void create(int raw) { + assertRaw(raw); + data = (byte) raw; + } + + @Override + public void create(int r, int g, int b) { + assertRGB(r, g, b); + data = (byte) (36 * r + 6 * g + b); + } + + public byte getRaw() { return data; } + + private void assertRaw(int i) { + if (i > 0xFF || i < 0) { + System.out.println("i: " + String.valueOf(i)); + throw new IllegalArgumentException(); + } + } + + private void assertRGB(int r, int g, int b) { + if (r > 5 || g > 5 || b > 5 || r < 0 || g < 0 || b < 0) { + System.out.println("r: " + String.valueOf(r)); + System.out.println("g: " + String.valueOf(g)); + System.out.println("b: " + String.valueOf(b)); + throw new IllegalArgumentException(); + } + } +} diff --git a/src/com/Torvald/ColourUtil/Col256.java b/src/com/Torvald/ColourUtil/Col256.java deleted file mode 100644 index a673ab880..000000000 --- a/src/com/Torvald/ColourUtil/Col256.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.Torvald.ColourUtil; - -import org.newdawn.slick.Color; - -/** - * Created by minjaesong on 16-02-07. - * - * 3-3-2 256 colour RGB - */ -public class Col256 { - - private byte data; - - /** - * Create new Col256 format. - * @param data 0x00-0xFF - */ - public Col256(int data) { - this.data = (byte) data; - } - - public Col256(int r, int g, int b) { - if (r > 7 || g > 7 || b > 3) { - throw new IllegalArgumentException("Colour range: RG: 0-7, B:0-4"); - } - - data = (byte) (r << 5 | g << 2 | b); - } - - /** - * Create Col256 colour and convert it to Slick Color - * @param i - * @return - */ - public Color create(int i) { - if (i > 0xFF || i < 0) { - throw new IllegalArgumentException("Colour range: #00 - #FF"); - } - int r = (i & 0b11100000) >> 5; - int g = (i & 0b00011100) >> 2; - int b = i & 0b00000011; - - return create(r, g, b); - } - - /** - * Create Col256 colour and convert it to Slick Color - * @return - */ - public Color create(int r, int g, int b) { - if (r > 7 || g > 7 || b > 3) { - throw new IllegalArgumentException("Colour range: RG: 0-7, B:0-4"); - } - - int[] colIndex3 = {0, 36, 73, 109, 146, 182, 219, 255}; - int[] colIndex2 = {0, 85, 170, 255}; - - return new Color( - colIndex3[r] - , colIndex3[g] - , colIndex2[b] - ); - } - - /** - * Retrieve raw RGB value - * @return 0bRRRGGGBB - */ - public byte getByte() { - return data; - } - -} diff --git a/src/com/Torvald/ColourUtil/Col4096.java b/src/com/Torvald/ColourUtil/Col4096.java index 8ba8a4833..0fa482df7 100644 --- a/src/com/Torvald/ColourUtil/Col4096.java +++ b/src/com/Torvald/ColourUtil/Col4096.java @@ -7,16 +7,26 @@ import org.newdawn.slick.Color; * * 12-bit RGB */ -public class Col4096 { +public class Col4096 implements LimitedColours { private short data; /** - * Create new Col4096 format. - * @param data 0xARGB + * + * @param data */ public Col4096(int data) { - this.data = (short) data; + create(data); + } + + /** + * + * @param r 0-15 + * @param g 0-15 + * @param b 0-15 + */ + public Col4096(int r, int g, int b) { + create(r, g, b); } /** @@ -24,12 +34,17 @@ public class Col4096 { * @param i * @return */ - public Color create(int i) { + public Color createSlickColor(int i) { + assertRaw(i); + + int a, r, g, b; + + r = (i & 0xF00) >> 8; + g = (i & 0x0F0) >> 4; + b = i & 0x00F; + if (i > 0xFFF) { - int a = (i & 0xF000) >> 12; - int r = (i & 0x0F00) >> 8; - int g = (i & 0x00F0) >> 4; - int b = i & 0x000F; + a = (i & 0xF000) >> 12; return new Color( (r << 4) | r @@ -39,10 +54,6 @@ public class Col4096 { ); } else { - int r = (i & 0xF00) >> 8; - int g = (i & 0x0F0) >> 4; - int b = i & 0x00F; - return new Color( (r << 4) | r , (g << 4) | g @@ -51,6 +62,34 @@ public class Col4096 { } } + @Override + public Color createSlickColor(int r, int g, int b) { + assertARGB(0, r, g, b); + return createSlickColor(r << 8 | g << 4 | b); + } + + public Color createSlickColor(int a, int r, int g, int b) { + assertARGB(a, r, g, b); + return createSlickColor(a << 12 |r << 8 | g << 4 | b); + } + + @Override + public void create(int raw) { + assertRaw(raw); + data = (short) (raw & 0xFFFF); + } + + @Override + public void create(int r, int g, int b) { + assertARGB(0, r, g, b); + data = (short) (r << 8 | g << 4 | b); + } + + public void create(int a, int r, int g, int b) { + assertARGB(a, r, g, b); + data = (short) (a << 12 | r << 8 | g << 4 | b); + } + /** * Convert to 3 byte values, for raster imaging. * @return byte[RR, GG, BB] e.g. 0x4B3 -> 0x44, 0xBB, 0x33 @@ -72,8 +111,25 @@ public class Col4096 { * Retrieve raw ARGB value * @return 0xARGB */ - public short getShort() { + public short getRaw() { return data; } + private void assertRaw(int i) { + if (i > 0xFFFF || i < 0) { + System.out.println("i: " + String.valueOf(i)); + throw new IllegalArgumentException(); + } + } + + private void assertARGB(int a, int r, int g, int b) { + if (a > 16 || r > 16 || g > 16 || b > 16 || r < 0 || g < 0 || b < 0 || a < 0) { + System.out.println("a: " + String.valueOf(a)); + System.out.println("r: " + String.valueOf(r)); + System.out.println("g: " + String.valueOf(g)); + System.out.println("b: " + String.valueOf(b)); + throw new IllegalArgumentException(); + } + } + } diff --git a/src/com/Torvald/ColourUtil/LimitedColours.java b/src/com/Torvald/ColourUtil/LimitedColours.java new file mode 100644 index 000000000..61f4ddd81 --- /dev/null +++ b/src/com/Torvald/ColourUtil/LimitedColours.java @@ -0,0 +1,18 @@ +package com.Torvald.ColourUtil; + +import org.newdawn.slick.Color; + +/** + * Created by minjaesong on 16-02-11. + */ +public interface LimitedColours { + + + + Color createSlickColor(int raw); + Color createSlickColor(int r, int g, int b); + + void create(int raw); + void create(int r, int g, int b); + +} diff --git a/src/com/Torvald/ImageFont/GameFontBase.java b/src/com/Torvald/ImageFont/GameFontBase.java index 68b0da141..e65872e2e 100644 --- a/src/com/Torvald/ImageFont/GameFontBase.java +++ b/src/com/Torvald/ImageFont/GameFontBase.java @@ -257,6 +257,9 @@ public class GameFontBase implements Font { + getWidth(s.substring(0, i)) ) , Math.round(y) + - ((prevInstance == SHEET_KANA) ? 2 + : (prevInstance == SHEET_CJK_PUNCT) ? + 1 : 0) , sheetX , sheetY ); diff --git a/src/com/Torvald/JsonGetter.java b/src/com/Torvald/JsonGetter.java new file mode 100644 index 000000000..ed4889e96 --- /dev/null +++ b/src/com/Torvald/JsonGetter.java @@ -0,0 +1,36 @@ +package com.Torvald; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import java.io.IOException; +import java.nio.file.FileSystems; +import java.nio.file.Files; + +/** + * Created by minjaesong on 16-02-15. + */ +public class JsonGetter { + + private static String jsonString = new String(); + + public static JsonObject readJson(String jsonFileName) throws IOException { + readJsonFileAsString(jsonFileName); + + JsonParser jsonParser = new JsonParser(); + JsonObject jsonObj = jsonParser.parse(jsonString).getAsJsonObject(); + + return jsonObj; + } + + private static void readJsonFileAsString(String path) throws IOException { + Files.lines( + FileSystems.getDefault().getPath(path) + ).forEach(JsonGetter::strAppend); + } + + private static void strAppend( String s) { + jsonString += s; + } + +} diff --git a/src/com/Torvald/Terrarum/Actors/ActorWithBody.java b/src/com/Torvald/Terrarum/Actors/ActorWithBody.java index 4e84886f5..52dcf9a85 100644 --- a/src/com/Torvald/Terrarum/Actors/ActorWithBody.java +++ b/src/com/Torvald/Terrarum/Actors/ActorWithBody.java @@ -77,6 +77,10 @@ public class ActorWithBody implements Actor, Visible, Glowing { private final int CONTACT_AREA_BOTTOM = 2; private final int CONTACT_AREA_LEFT = 3; + private final int UD_COMPENSATOR_MAX = 100; + private final int LR_COMPENSATOR_MAX = TSIZE; + private final int TILE_CLIMB_RATE = 4; + /** * A constant to make falling faster so that the game is more playable */ @@ -261,6 +265,9 @@ public class ActorWithBody implements Actor, Visible, Glowing { if (collidedRightAndAdjusted()) { // treat as 'event--collided right' veloX = 0; walledRight = true; + + // TODO remove above two lines and implement tile climb (multi-frame calculation.) + // Use variable TILE_CLIMB_RATE } else if (collidedLeftAndAdjusted()) { // treat as 'event--collided left' veloX = 0; @@ -351,7 +358,7 @@ public class ActorWithBody implements Actor, Visible, Glowing { private void adjustHitBottom() { int tY = 0; int contactArea = getContactArea(CONTACT_AREA_BOTTOM, 0, 0); - for (int lim = 0; lim < TSIZE; lim++) { + for (int lim = 0; lim < UD_COMPENSATOR_MAX; lim++) { /** * get contact area and move up and get again. * keep track of this value, and some point they will be set as lowest @@ -371,7 +378,7 @@ public class ActorWithBody implements Actor, Visible, Glowing { private void adjustHitTop() { int tY = 0; int contactArea = getContactArea(CONTACT_AREA_TOP, 0, 0); - for (int lim = 0; lim < TSIZE; lim++) { + for (int lim = 0; lim < UD_COMPENSATOR_MAX; lim++) { /** * get contact area and move up and get again. * keep track of this value, and some point they will be set as lowest @@ -391,7 +398,7 @@ public class ActorWithBody implements Actor, Visible, Glowing { private void adjustHitRight() { int tX = 0; int contactArea = getContactArea(CONTACT_AREA_RIGHT, 0, 0); - for (int lim = 0; lim < TSIZE; lim++) { + for (int lim = 0; lim < LR_COMPENSATOR_MAX; lim++) { /** * get contact area and move up and get again. * keep track of this value, and some point they will be set as lowest @@ -417,7 +424,7 @@ public class ActorWithBody implements Actor, Visible, Glowing { private void adjustHitLeft() { int tX = 0; int contactArea = getContactArea(CONTACT_AREA_LEFT, 0, 0); - for (int lim = 0; lim < TSIZE; lim++) { + for (int lim = 0; lim < LR_COMPENSATOR_MAX; lim++) { /** * get contact area and move up and get again. * keep track of this value, and some point they will be set as lowest diff --git a/src/com/Torvald/Terrarum/Actors/CreatureBuildFactory.java b/src/com/Torvald/Terrarum/Actors/CreatureBuildFactory.java index b8bcf94b2..d4b42ee56 100644 --- a/src/com/Torvald/Terrarum/Actors/CreatureBuildFactory.java +++ b/src/com/Torvald/Terrarum/Actors/CreatureBuildFactory.java @@ -1,5 +1,6 @@ package com.Torvald.Terrarum.Actors; +import com.Torvald.JsonGetter; import com.Torvald.Rand.Fudge3; import com.Torvald.Rand.HQRNG; import com.google.gson.JsonObject; @@ -16,10 +17,9 @@ import java.nio.file.Files; public class CreatureBuildFactory { private static final String JSONPATH = "./res/raw/"; - private static String jsonString = new String(); public ActorWithBody build(String jsonFileName) throws IOException, SlickException { - JsonObject jsonObj = readJson(jsonFileName); + JsonObject jsonObj = JsonGetter.readJson(JSONPATH + jsonFileName); ActorWithBody actor = new ActorWithBody(); @@ -99,24 +99,4 @@ public class CreatureBuildFactory { p.actorValue.set(s, jsonObject.get(s).getAsFloat()); } } - - private JsonObject readJson(String jsonFileName) throws IOException { - readJsonFileAsString(jsonFileName); - - JsonParser jsonParser = new JsonParser(); - JsonObject jsonObj = jsonParser.parse(jsonString).getAsJsonObject(); - - return jsonObj; - } - - private void readJsonFileAsString(String filename) throws IOException { - Files.lines( - FileSystems.getDefault().getPath(JSONPATH + filename) - ).forEach(this::strAppend); - } - - private void strAppend( String s) { - jsonString += s; - } - } diff --git a/src/com/Torvald/Terrarum/Actors/Faction/Faction.java b/src/com/Torvald/Terrarum/Actors/Faction/Faction.java new file mode 100644 index 000000000..a2fe90545 --- /dev/null +++ b/src/com/Torvald/Terrarum/Actors/Faction/Faction.java @@ -0,0 +1,88 @@ +package com.Torvald.Terrarum.Actors.Faction; + +import java.util.HashSet; + +/** + * Created by minjaesong on 16-02-15. + */ +public class Faction { + + private String factionName; + private HashSet factionAmicable; + private HashSet factionNeutral; + private HashSet factionHostile; + private HashSet factionFearful; + + public Faction(String factionName) { + this.factionName = factionName; + factionAmicable = new HashSet<>(); + factionNeutral = new HashSet<>(); + factionHostile = new HashSet<>(); + factionFearful = new HashSet<>(); + } + + public HashSet getFactionFearful() { + return factionFearful; + } + + public void setFactionFearful(HashSet factionFearful) { + this.factionFearful = factionFearful; + } + + public HashSet getFactionAmicable() { + return factionAmicable; + } + + public void setFactionAmicable(HashSet factionAmicable) { + this.factionAmicable = factionAmicable; + } + + public HashSet getFactionNeutral() { + return factionNeutral; + } + + public void setFactionNeutral(HashSet factionNeutral) { + this.factionNeutral = factionNeutral; + } + + public HashSet getFactionHostile() { + return factionHostile; + } + + public void setFactionHostile(HashSet factionHostile) { + this.factionHostile = factionHostile; + } + + public void addFactionAmicable(String faction) { + factionAmicable.add(faction); + } + + public void addFactionNeutral(String faction) { + factionNeutral.add(faction); + } + + public void addFactionHostile(String faction) { + factionHostile.add(faction); + } + + public void addFactionFearful(String faction) { + factionFearful.add(faction); + } + + public void removeFactionAmicable(String faction) { + factionAmicable.remove(faction); + } + + public void removeFactionNeutral(String faction) { + factionNeutral.remove(faction); + } + + public void removeFactionHostile(String faction) { + factionHostile.remove(faction); + } + + public void removeFactionFearful(String faction) { + factionFearful.remove(faction); + } + +} diff --git a/src/com/Torvald/Terrarum/Actors/Faction/FactionRelatorFactory.java b/src/com/Torvald/Terrarum/Actors/Faction/FactionRelatorFactory.java new file mode 100644 index 000000000..f4de6311e --- /dev/null +++ b/src/com/Torvald/Terrarum/Actors/Faction/FactionRelatorFactory.java @@ -0,0 +1,38 @@ +package com.Torvald.Terrarum.Actors.Faction; + +import com.Torvald.JsonGetter; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; + +import java.io.IOException; +import java.util.HashSet; + +/** + * Created by minjaesong on 16-02-15. + */ +public class FactionRelatorFactory { + + private static final String JSONPATH = "./res/raw/"; + + public Faction build(String filename) throws IOException { + JsonObject jsonObj = JsonGetter.readJson(JSONPATH + filename); + Faction factionObj = new Faction(jsonObj.get("factionname").getAsString()); + + + jsonObj.get("factionamicable").getAsJsonArray().forEach( + s -> factionObj.addFactionAmicable(s.getAsString()) + ); + jsonObj.get("factionneutral").getAsJsonArray().forEach( + s -> factionObj.addFactionNeutral(s.getAsString()) + ); + jsonObj.get("factionhostile").getAsJsonArray().forEach( + s -> factionObj.addFactionHostile(s.getAsString()) + ); + jsonObj.get("factionfearful").getAsJsonArray().forEach( + s -> factionObj.addFactionFearful(s.getAsString()) + ); + + return factionObj; + } + +} diff --git a/src/com/Torvald/Terrarum/Actors/Factionable.java b/src/com/Torvald/Terrarum/Actors/Factionable.java new file mode 100644 index 000000000..1ad44cfb0 --- /dev/null +++ b/src/com/Torvald/Terrarum/Actors/Factionable.java @@ -0,0 +1,17 @@ +package com.Torvald.Terrarum.Actors; + +import com.Torvald.Terrarum.Actors.Faction.Faction; + +import java.util.HashSet; + +/** + * Created by minjaesong on 16-02-15. + */ +public interface Factionable { + + void assignFaction(Faction f); + void unassignFaction(Faction f); + HashSet getAssignedFactions(); + void clearFactionAssigning(); + +} diff --git a/src/com/Torvald/Terrarum/Actors/Player.java b/src/com/Torvald/Terrarum/Actors/Player.java index 2151ab8fe..08004e5a5 100644 --- a/src/com/Torvald/Terrarum/Actors/Player.java +++ b/src/com/Torvald/Terrarum/Actors/Player.java @@ -1,5 +1,6 @@ package com.Torvald.Terrarum.Actors; +import com.Torvald.Terrarum.Actors.Faction.Faction; import com.Torvald.Terrarum.GameControl.EnumKeyFunc; import com.Torvald.Terrarum.GameControl.KeyMap; import com.Torvald.Terrarum.Terrarum; @@ -12,11 +13,12 @@ import org.lwjgl.input.Controllers; import org.newdawn.slick.*; import java.io.Serializable; +import java.util.HashSet; /** * Created by minjaesong on 15-12-31. */ -public class Player extends ActorWithBody implements Controllable, Pocketed, Serializable { +public class Player extends ActorWithBody implements Controllable, Pocketed, Factionable { @Nullable public Controllable vehicleRiding; @@ -48,6 +50,8 @@ public class Player extends ActorWithBody implements Controllable, Pocketed, Ser private final float AXIS_POSMAX = 1.0f; private final int GAMEPAD_JUMP = 5; + private HashSet factionSet = new HashSet<>(); + /** * Creates new Player instance with empty elements (sprites, actorvalue, etc.).
* @@ -111,10 +115,8 @@ public class Player extends ActorWithBody implements Controllable, Pocketed, Ser ); // Heading flag - if (left) - walkHeading = LEFT; - else - walkHeading = RIGHT; + if (left) walkHeading = LEFT; + else walkHeading = RIGHT; } } @@ -512,4 +514,23 @@ public class Player extends ActorWithBody implements Controllable, Pocketed, Ser return spriteGlow; } + @Override + public void assignFaction(Faction f) { + factionSet.add(f); + } + + @Override + public void unassignFaction(Faction f) { + factionSet.remove(f); + } + + @Override + public HashSet getAssignedFactions() { + return factionSet; + } + + @Override + public void clearFactionAssigning() { + factionSet.clear(); + } } diff --git a/src/com/Torvald/Terrarum/Actors/TestNPC.java b/src/com/Torvald/Terrarum/Actors/TestNPC.java index 43cafba13..92cde8960 100644 --- a/src/com/Torvald/Terrarum/Actors/TestNPC.java +++ b/src/com/Torvald/Terrarum/Actors/TestNPC.java @@ -1,22 +1,48 @@ package com.Torvald.Terrarum.Actors; +import com.Torvald.Terrarum.Actors.Faction.Faction; import com.Torvald.Terrarum.GameItem.InventoryItem; import org.newdawn.slick.GameContainer; +import java.util.HashSet; + /** * Created by minjaesong on 16-01-31. */ -public class TestNPC extends ActorWithBody implements AIControlled, Pocketed, CanBeStoredAsItem { +public class TestNPC extends ActorWithBody implements AIControlled, Pocketed, CanBeStoredAsItem, + Factionable { private InventoryItem itemData; // private ActorAI ai; private ActorInventory inventory; + private HashSet factionSet = new HashSet<>(); + @Override public void attachAI() { } + @Override + public void assignFaction(Faction f) { + factionSet.add(f); + } + + @Override + public void unassignFaction(Faction f) { + factionSet.remove(f); + } + + @Override + public HashSet getAssignedFactions() { + return factionSet; + } + + @Override + public void clearFactionAssigning() { + factionSet.clear(); + } + @Override public void attachItemData() { itemData = new InventoryItem() { diff --git a/src/com/Torvald/Terrarum/ConsoleCommand/CommandDict.java b/src/com/Torvald/Terrarum/ConsoleCommand/CommandDict.java index c4d0386e2..49bbcbdc7 100644 --- a/src/com/Torvald/Terrarum/ConsoleCommand/CommandDict.java +++ b/src/com/Torvald/Terrarum/ConsoleCommand/CommandDict.java @@ -27,6 +27,7 @@ public class CommandDict { dict.put("teleport", new TeleportPlayer()); dict.put("cat", new CatStdout()); dict.put("exportav", new ExportAV()); + dict.put("gsontest", new GsonTest()); } public static ConsoleCommand getCommand(String commandName) { diff --git a/src/com/Torvald/Terrarum/ConsoleCommand/GsonTest.java b/src/com/Torvald/Terrarum/ConsoleCommand/GsonTest.java new file mode 100644 index 000000000..2652f1320 --- /dev/null +++ b/src/com/Torvald/Terrarum/ConsoleCommand/GsonTest.java @@ -0,0 +1,48 @@ +package com.Torvald.Terrarum.ConsoleCommand; + +import com.Torvald.Terrarum.Terrarum; +import com.google.gson.Gson; +import com.google.gson.JsonElement; + +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; + +/** + * Created by minjaesong on 16-02-10. + */ +public class GsonTest implements ConsoleCommand { + @Override + public void execute(String[] args) { + if (args.length == 2) { + JsonElement avelem = new Gson().toJsonTree(Terrarum.game.getPlayer()); + + String jsonString = avelem.toString(); + + BufferedWriter bufferedWriter; + FileWriter writer; + try { + writer = new FileWriter(Terrarum.defaultDir + "/Exports/" + args[1] + ".json"); + bufferedWriter = new BufferedWriter(writer); + + bufferedWriter.write(jsonString); + bufferedWriter.close(); + + new Echo().execute("GsonTest: exported to " + args[1] + ".json"); + } + catch (IOException e) { + new Echo().execute("GsonTest: IOException raised."); + e.printStackTrace(); + } + } + else { + printUsage(); + } + } + + @Override + public void printUsage() { + Echo echo = new Echo(); + echo.execute("Usage: gsontest filename-without-extension"); + } +} diff --git a/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java b/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java index dbc444997..6519e110f 100644 --- a/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java +++ b/src/com/Torvald/Terrarum/MapDrawer/MapCamera.java @@ -68,7 +68,7 @@ public class MapCamera { private static final byte ICE_MAGICAL = 30; private static Byte[] TILES_CONNECT_SELF = { - COPPER + COPPER , IRON , GOLD , SILVER @@ -78,7 +78,7 @@ public class MapCamera { }; private static Byte[] TILES_DARKEN_AIR = { - STONE + STONE , DIRT , GRASS , SAND @@ -97,8 +97,10 @@ public class MapCamera { * i.e. red hues get lost if you dive into the water */ private static Byte[] TILES_BLEND_MUL = { - (byte)224, (byte)225, (byte)226, (byte)227, (byte)228, (byte)229, (byte)230, (byte)231 - , (byte)232, (byte)233, (byte)234, (byte)235, (byte)236, (byte)237, (byte)238, (byte)239 + (byte)224, (byte)225, (byte)226, (byte)227, (byte)228, (byte)229, (byte)230, (byte)231 + , (byte)232, (byte)233, (byte)234, (byte)235, (byte)236, (byte)237, (byte)238, (byte)239 + , (byte)240, (byte)241, (byte)242, (byte)243, (byte)244, (byte)245, (byte)246, (byte)247 + , (byte)248, (byte)249, (byte)250, (byte)251, (byte)252, (byte)253, (byte)254, (byte)255 }; /** diff --git a/work_files/Map chunk data format.numbers/Index.zip b/work_files/DataFormats/Map chunk data format.numbers/Index.zip similarity index 100% rename from work_files/Map chunk data format.numbers/Index.zip rename to work_files/DataFormats/Map chunk data format.numbers/Index.zip diff --git a/work_files/Map chunk data format.numbers/Metadata/BuildVersionHistory.plist b/work_files/DataFormats/Map chunk data format.numbers/Metadata/BuildVersionHistory.plist similarity index 100% rename from work_files/Map chunk data format.numbers/Metadata/BuildVersionHistory.plist rename to work_files/DataFormats/Map chunk data format.numbers/Metadata/BuildVersionHistory.plist diff --git a/work_files/Map chunk data format.numbers/Metadata/DocumentIdentifier b/work_files/DataFormats/Map chunk data format.numbers/Metadata/DocumentIdentifier similarity index 100% rename from work_files/Map chunk data format.numbers/Metadata/DocumentIdentifier rename to work_files/DataFormats/Map chunk data format.numbers/Metadata/DocumentIdentifier diff --git a/work_files/Map chunk data format.numbers/Metadata/Properties.plist b/work_files/DataFormats/Map chunk data format.numbers/Metadata/Properties.plist similarity index 100% rename from work_files/Map chunk data format.numbers/Metadata/Properties.plist rename to work_files/DataFormats/Map chunk data format.numbers/Metadata/Properties.plist diff --git a/work_files/Map chunk data format.numbers/preview-micro.jpg b/work_files/DataFormats/Map chunk data format.numbers/preview-micro.jpg similarity index 100% rename from work_files/Map chunk data format.numbers/preview-micro.jpg rename to work_files/DataFormats/Map chunk data format.numbers/preview-micro.jpg diff --git a/work_files/Map chunk data format.numbers/preview-web.jpg b/work_files/DataFormats/Map chunk data format.numbers/preview-web.jpg similarity index 100% rename from work_files/Map chunk data format.numbers/preview-web.jpg rename to work_files/DataFormats/Map chunk data format.numbers/preview-web.jpg diff --git a/work_files/Map chunk data format.numbers/preview.jpg b/work_files/DataFormats/Map chunk data format.numbers/preview.jpg similarity index 100% rename from work_files/Map chunk data format.numbers/preview.jpg rename to work_files/DataFormats/Map chunk data format.numbers/preview.jpg diff --git a/work_files/Map chunk data format.pdf b/work_files/DataFormats/Map chunk data format.pdf similarity index 100% rename from work_files/Map chunk data format.pdf rename to work_files/DataFormats/Map chunk data format.pdf diff --git a/work_files/DataFormats/Map data format.numbers b/work_files/DataFormats/Map data format.numbers new file mode 100644 index 000000000..ccdd8545b Binary files /dev/null and b/work_files/DataFormats/Map data format.numbers differ diff --git a/work_files/DataFormats/Map data format.pdf b/work_files/DataFormats/Map data format.pdf new file mode 100644 index 000000000..56d1a272a Binary files /dev/null and b/work_files/DataFormats/Map data format.pdf differ diff --git a/work_files/DataFormats/User art format.numbers b/work_files/DataFormats/User art format.numbers new file mode 100644 index 000000000..b91b0d869 Binary files /dev/null and b/work_files/DataFormats/User art format.numbers differ diff --git a/work_files/DataFormats/User art format.pdf b/work_files/DataFormats/User art format.pdf new file mode 100644 index 000000000..61c445d63 Binary files /dev/null and b/work_files/DataFormats/User art format.pdf differ diff --git a/work_files/InventoryHashtable.numbers b/work_files/InventoryHashtable.numbers deleted file mode 100755 index 84529d1f1..000000000 Binary files a/work_files/InventoryHashtable.numbers and /dev/null differ diff --git a/work_files/Map data format.numbers b/work_files/Map data format.numbers deleted file mode 100644 index 8f7bffbf3..000000000 Binary files a/work_files/Map data format.numbers and /dev/null differ diff --git a/work_files/Map data format.pdf b/work_files/Map data format.pdf deleted file mode 100644 index 124c12fb0..000000000 Binary files a/work_files/Map data format.pdf and /dev/null differ diff --git a/work_files/hut_design.tmx b/work_files/hut_design.tmx new file mode 100644 index 000000000..6b99dcb8f --- /dev/null +++ b/work_files/hut_design.tmx @@ -0,0 +1,217 @@ + + + + + + + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + + + +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,321,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,321,321,0,321,321,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,321,321,0,0,0,0,0,321,321,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,321,0,0,0,0,0,0,0,0,0,321,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,321,321,0,0,0,0,0,0,0,0,0,321,321,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,306,306,306,306,306,306,306,306,306,274,274,274,274,274,274,274,274,274,274,274,274,274,306,306,306,306,306,306,306,306,306,306,306,306,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,289,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + + +