new kana font and its tester, adjusting baselines of kana/cjkpunct/hangul, new color model 216 instead of 256, proof-of-concept factioning with four relationship models (amicable, neutral, hostile, fearful)

Former-commit-id: ac2ca8d0f4432377f1030afa6ac86df0c6887b3e
Former-commit-id: 855f49d6c0e89da1e7311744683dc83e68ac84e4
This commit is contained in:
Song Minjae
2016-02-15 02:47:40 +09:00
parent 6fdd3b7c9c
commit bde8371ac9
59 changed files with 1139 additions and 538 deletions

View File

@@ -0,0 +1,3 @@
안녕하세요 こんにちわ
《템페스트》 「テンペスト」

View File

@@ -1,29 +1,29 @@
せかいいち みんなの にんきもの せかい いち みんな の にんきもの
それは かのじょの こと アシュリー それ は かのじょ の こと アシュリー
ひとめ みれば だれもが ふりむく ひとめ みれば だれもが ふりむく
あたりまえ アシュリーだもん あたりまえ アシュリーだもん
せかいじゅう みんなが あこがれる せかいじゅう みんな が あこがれる
それは かのじょの こと アシュリー それは かのじょ の こと アシュリー
アシュリー さまの まほうは さいこう アシュリー さま の まほう は さいこう
こんやも パーティーよ こんや も パーティーよ
なわ ぶな ぬー わらいの じゅもん なわ ぶな ぬー わらい の じゅもん
じお いら うん なんの じゅもん じお いら うん なん の じゅもん
いお でぃ えむ おぼえ られない いお でぃ えむ おぼえ られない
ああ いや たいくつ ああ いや たいくつ
せかいいち みんなの にんきもの せかいいち みんな の にんきもの
それは かのじょの こと アシュリー それは かのじょ の こと アシュリー
アシュリー さまの まほうは さいこう アシュリー さま の まほうは さいこう
こわい もの なしよ こわい もの なしよ
よぞらの うみ あまたの ほし よぞら の うみ あまた の ほし
いつも ひとりきり いつも ひとりきり
みんなと なかよく したいの みんな と なかよく したい 
どうしたら いいの どうしたら いい 
せかいいち みんなの にんきもの せかい いち みんな の にんきもの
それは かのじょの こと アシュリー それは かのじょ の こと アシュリー
アシュリー さまの まほうは さいこう アシュリー さま の まほうは さいこう
こんやも パーティーよ こんや も パーティーよ

30
res/books/kana_test_2.txt Normal file
View File

@@ -0,0 +1,30 @@
まだ きづいていない ていじ された ぎもん
いま きょうかいせん が きえてく
この データ と コード で ていぎ された しこう
もう ひとつ の 「リアル」 が うまれる
せんり を こえ とぶ ひかり の たば から
つたわる あたらし じぶん の そんざい
NEO IDENTITYーひろがって ゆく
でんもう の いしき と
ふかしぎな みらい
(NEO IDENTITYーまぼろし)
その にんしき に より そんざい し うる せかい
すべて を しょうきょ したら どう なる?
せんり を こえ とぶ ひかり の たば から
つたわる あたらし じぶん の そんざい
NEO IDENTITYーひろがって ゆく
でんもう の いしき と
ふかしぎな みらい
NEO IDENTITYーそびえたつ まぼろし
でんもう の いしき と
ふかしぎな みらい

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 B

After

Width:  |  Height:  |  Size: 237 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 269 B

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 364 B

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 90 KiB

View File

@@ -2,111 +2,111 @@
# Data taken from www.behindthename.com # 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 '알렉산더'. # 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_1=Adam
NAMESET_SCANDINAVIAN_MALE_002=Adrian NAMESET_SCANDINAVIAN_MALE_2=Adrian
NAMESET_SCANDINAVIAN_MALE_003=Aksel NAMESET_SCANDINAVIAN_MALE_3=Aksel
NAMESET_SCANDINAVIAN_MALE_004=Albert NAMESET_SCANDINAVIAN_MALE_4=Albert
NAMESET_SCANDINAVIAN_MALE_005=Albin NAMESET_SCANDINAVIAN_MALE_5=Albin
NAMESET_SCANDINAVIAN_MALE_006=Alek NAMESET_SCANDINAVIAN_MALE_6=Alek
NAMESET_SCANDINAVIAN_MALE_007=Alexander NAMESET_SCANDINAVIAN_MALE_7=Alexander
NAMESET_SCANDINAVIAN_MALE_008=Alfred NAMESET_SCANDINAVIAN_MALE_8=Alfred
NAMESET_SCANDINAVIAN_MALE_009=Amund NAMESET_SCANDINAVIAN_MALE_9=Amund
NAMESET_SCANDINAVIAN_MALE_010=Andreas NAMESET_SCANDINAVIAN_MALE_10=Andreas
NAMESET_SCANDINAVIAN_MALE_011=Anton NAMESET_SCANDINAVIAN_MALE_11=Anton
NAMESET_SCANDINAVIAN_MALE_012=Aron NAMESET_SCANDINAVIAN_MALE_12=Aron
NAMESET_SCANDINAVIAN_MALE_013=Alvard NAMESET_SCANDINAVIAN_MALE_13=Alvard
NAMESET_SCANDINAVIAN_MALE_014=August NAMESET_SCANDINAVIAN_MALE_14=August
NAMESET_SCANDINAVIAN_MALE_015=Axel NAMESET_SCANDINAVIAN_MALE_15=Axel
NAMESET_SCANDINAVIAN_MALE_016=Björn NAMESET_SCANDINAVIAN_MALE_16=Björn
NAMESET_SCANDINAVIAN_MALE_017=Bjørn NAMESET_SCANDINAVIAN_MALE_17=Bjørn
NAMESET_SCANDINAVIAN_MALE_018=Carl NAMESET_SCANDINAVIAN_MALE_18=Carl
NAMESET_SCANDINAVIAN_MALE_019=Casper NAMESET_SCANDINAVIAN_MALE_19=Casper
NAMESET_SCANDINAVIAN_MALE_020=Christian NAMESET_SCANDINAVIAN_MALE_20=Christian
NAMESET_SCANDINAVIAN_MALE_021=Christoffer NAMESET_SCANDINAVIAN_MALE_21=Christoffer
NAMESET_SCANDINAVIAN_MALE_022=Daniel NAMESET_SCANDINAVIAN_MALE_22=Daniel
NAMESET_SCANDINAVIAN_MALE_023=David NAMESET_SCANDINAVIAN_MALE_23=David
# pronounced as [dɑvid], not [deivɪd] # pronounced as [dɑvid], not [deivɪd]
NAMESET_SCANDINAVIAN_MALE_024=Edmund NAMESET_SCANDINAVIAN_MALE_24=Edmund
NAMESET_SCANDINAVIAN_MALE_025=Edvard NAMESET_SCANDINAVIAN_MALE_25=Edvard
NAMESET_SCANDINAVIAN_MALE_026=Edvin NAMESET_SCANDINAVIAN_MALE_26=Edvin
NAMESET_SCANDINAVIAN_MALE_027=Eirik NAMESET_SCANDINAVIAN_MALE_27=Eirik
NAMESET_SCANDINAVIAN_MALE_028=Elias NAMESET_SCANDINAVIAN_MALE_28=Elias
NAMESET_SCANDINAVIAN_MALE_029=Elis NAMESET_SCANDINAVIAN_MALE_29=Elis
NAMESET_SCANDINAVIAN_MALE_030=Emanuel NAMESET_SCANDINAVIAN_MALE_30=Emanuel
NAMESET_SCANDINAVIAN_MALE_031=Emil NAMESET_SCANDINAVIAN_MALE_31=Emil
NAMESET_SCANDINAVIAN_MALE_032=Endre NAMESET_SCANDINAVIAN_MALE_32=Endre
NAMESET_SCANDINAVIAN_MALE_033=Erik NAMESET_SCANDINAVIAN_MALE_33=Erik
NAMESET_SCANDINAVIAN_MALE_034=Erlend NAMESET_SCANDINAVIAN_MALE_34=Erlend
NAMESET_SCANDINAVIAN_MALE_035=Espen NAMESET_SCANDINAVIAN_MALE_35=Espen
NAMESET_SCANDINAVIAN_MALE_036=Fabian NAMESET_SCANDINAVIAN_MALE_36=Fabian
NAMESET_SCANDINAVIAN_MALE_037=Felix NAMESET_SCANDINAVIAN_MALE_37=Felix
NAMESET_SCANDINAVIAN_MALE_038=Filip NAMESET_SCANDINAVIAN_MALE_38=Filip
NAMESET_SCANDINAVIAN_MALE_039=Frederik NAMESET_SCANDINAVIAN_MALE_39=Frederik
NAMESET_SCANDINAVIAN_MALE_040=Gabriel NAMESET_SCANDINAVIAN_MALE_40=Gabriel
NAMESET_SCANDINAVIAN_MALE_041=Gustav NAMESET_SCANDINAVIAN_MALE_41=Gustav
NAMESET_SCANDINAVIAN_MALE_042=Haakon NAMESET_SCANDINAVIAN_MALE_42=Haakon
NAMESET_SCANDINAVIAN_MALE_043=Hákon NAMESET_SCANDINAVIAN_MALE_43=Hákon
NAMESET_SCANDINAVIAN_MALE_044=Håkon NAMESET_SCANDINAVIAN_MALE_44=Håkon
NAMESET_SCANDINAVIAN_MALE_045=Hampus NAMESET_SCANDINAVIAN_MALE_45=Hampus
NAMESET_SCANDINAVIAN_MALE_046=Hanne NAMESET_SCANDINAVIAN_MALE_46=Hanne
NAMESET_SCANDINAVIAN_MALE_047=Hans NAMESET_SCANDINAVIAN_MALE_47=Hans
NAMESET_SCANDINAVIAN_MALE_048=Håvard NAMESET_SCANDINAVIAN_MALE_48=Håvard
NAMESET_SCANDINAVIAN_MALE_049=Henrik NAMESET_SCANDINAVIAN_MALE_49=Henrik
NAMESET_SCANDINAVIAN_MALE_050=Herman NAMESET_SCANDINAVIAN_MALE_50=Herman
NAMESET_SCANDINAVIAN_MALE_051=Hjalmar NAMESET_SCANDINAVIAN_MALE_51=Hjalmar
NAMESET_SCANDINAVIAN_MALE_052=Hugo NAMESET_SCANDINAVIAN_MALE_52=Hugo
NAMESET_SCANDINAVIAN_MALE_053=Isak NAMESET_SCANDINAVIAN_MALE_53=Isak
NAMESET_SCANDINAVIAN_MALE_054=Ivar NAMESET_SCANDINAVIAN_MALE_54=Ivar
NAMESET_SCANDINAVIAN_MALE_055=Jacob NAMESET_SCANDINAVIAN_MALE_55=Jacob
NAMESET_SCANDINAVIAN_MALE_056=Jakob NAMESET_SCANDINAVIAN_MALE_56=Jakob
NAMESET_SCANDINAVIAN_MALE_057=Jan NAMESET_SCANDINAVIAN_MALE_57=Jan
NAMESET_SCANDINAVIAN_MALE_058=Jens NAMESET_SCANDINAVIAN_MALE_58=Jens
NAMESET_SCANDINAVIAN_MALE_059=Jeppe NAMESET_SCANDINAVIAN_MALE_59=Jeppe
NAMESET_SCANDINAVIAN_MALE_060=Jesper NAMESET_SCANDINAVIAN_MALE_60=Jesper
NAMESET_SCANDINAVIAN_MALE_061=Joakim NAMESET_SCANDINAVIAN_MALE_61=Joakim
# pronounced as [joakim], not [hoakim] as this is scandinavian section. # pronounced as [joakim], not [hoakim] as this is scandinavian section.
NAMESET_SCANDINAVIAN_MALE_062=Joel NAMESET_SCANDINAVIAN_MALE_62=Joel
NAMESET_SCANDINAVIAN_MALE_063=Johan NAMESET_SCANDINAVIAN_MALE_63=Johan
NAMESET_SCANDINAVIAN_MALE_064=Jóhannes NAMESET_SCANDINAVIAN_MALE_64=Jóhannes
NAMESET_SCANDINAVIAN_MALE_065=Jón NAMESET_SCANDINAVIAN_MALE_65=Jón
NAMESET_SCANDINAVIAN_MALE_066=Jon NAMESET_SCANDINAVIAN_MALE_66=Jon
NAMESET_SCANDINAVIAN_MALE_067=Jónas NAMESET_SCANDINAVIAN_MALE_67=Jónas
NAMESET_SCANDINAVIAN_MALE_068=Jonas NAMESET_SCANDINAVIAN_MALE_68=Jonas
NAMESET_SCANDINAVIAN_MALE_069=Jonathan NAMESET_SCANDINAVIAN_MALE_69=Jonathan
NAMESET_SCANDINAVIAN_MALE_070=Jörgen NAMESET_SCANDINAVIAN_MALE_70=Jörgen
NAMESET_SCANDINAVIAN_MALE_071=Jørgen NAMESET_SCANDINAVIAN_MALE_71=Jørgen
NAMESET_SCANDINAVIAN_MALE_072=Josef NAMESET_SCANDINAVIAN_MALE_72=Josef
NAMESET_SCANDINAVIAN_MALE_073=Kalle NAMESET_SCANDINAVIAN_MALE_73=Kalle
NAMESET_SCANDINAVIAN_MALE_074=Kasper NAMESET_SCANDINAVIAN_MALE_74=Kasper
NAMESET_SCANDINAVIAN_MALE_075=Kevin NAMESET_SCANDINAVIAN_MALE_75=Kevin
NAMESET_SCANDINAVIAN_MALE_076=Kim NAMESET_SCANDINAVIAN_MALE_76=Kim
NAMESET_SCANDINAVIAN_MALE_077=Knut NAMESET_SCANDINAVIAN_MALE_77=Knut
# pronounced as [knut] # pronounced as [knut]
NAMESET_SCANDINAVIAN_MALE_078=Kristian NAMESET_SCANDINAVIAN_MALE_78=Kristian
NAMESET_SCANDINAVIAN_MALE_079=Kristoffer NAMESET_SCANDINAVIAN_MALE_79=Kristoffer
NAMESET_SCANDINAVIAN_MALE_080=Lars NAMESET_SCANDINAVIAN_MALE_80=Lars
NAMESET_SCANDINAVIAN_MALE_081=Lasse NAMESET_SCANDINAVIAN_MALE_81=Lasse
NAMESET_SCANDINAVIAN_MALE_082=Laurits NAMESET_SCANDINAVIAN_MALE_82=Laurits
NAMESET_SCANDINAVIAN_MALE_083=Leo NAMESET_SCANDINAVIAN_MALE_83=Leo
NAMESET_SCANDINAVIAN_MALE_084=Linus NAMESET_SCANDINAVIAN_MALE_84=Linus
# pronounced as [linus], not [lainəs] as this is scandinavian section. # pronounced as [linus], not [lainəs] as this is scandinavian section.
NAMESET_SCANDINAVIAN_MALE_085=Loke NAMESET_SCANDINAVIAN_MALE_85=Loke
NAMESET_SCANDINAVIAN_MALE_086=Love NAMESET_SCANDINAVIAN_MALE_86=Love
# NOT pronounced as [ləv]! # NOT pronounced as [ləv]!
NAMESET_SCANDINAVIAN_MALE_087=Ludvig NAMESET_SCANDINAVIAN_MALE_87=Ludvig
NAMESET_SCANDINAVIAN_MALE_088=Lukas NAMESET_SCANDINAVIAN_MALE_88=Lukas
NAMESET_SCANDINAVIAN_MALE_089=Mads NAMESET_SCANDINAVIAN_MALE_89=Mads
NAMESET_SCANDINAVIAN_MALE_090=Magnus NAMESET_SCANDINAVIAN_MALE_90=Magnus
NAMESET_SCANDINAVIAN_MALE_091=Malte NAMESET_SCANDINAVIAN_MALE_91=Malte
NAMESET_SCANDINAVIAN_MALE_092=Malthe NAMESET_SCANDINAVIAN_MALE_92=Malthe
NAMESET_SCANDINAVIAN_MALE_093=Marcus NAMESET_SCANDINAVIAN_MALE_93=Marcus
NAMESET_SCANDINAVIAN_MALE_094=Maria NAMESET_SCANDINAVIAN_MALE_94=Maria
NAMESET_SCANDINAVIAN_MALE_095=Marius NAMESET_SCANDINAVIAN_MALE_95=Marius
NAMESET_SCANDINAVIAN_MALE_096=Markus NAMESET_SCANDINAVIAN_MALE_96=Markus
NAMESET_SCANDINAVIAN_MALE_097=Martin NAMESET_SCANDINAVIAN_MALE_97=Martin
NAMESET_SCANDINAVIAN_MALE_098=Cyrus NAMESET_SCANDINAVIAN_MALE_98=Cyrus
# need more exotic name starting with 'C'... # 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_100=Mattias
NAMESET_SCANDINAVIAN_MALE_101=Max NAMESET_SCANDINAVIAN_MALE_101=Max
NAMESET_SCANDINAVIAN_MALE_102=Maximillian NAMESET_SCANDINAVIAN_MALE_102=Maximillian
@@ -173,106 +173,106 @@ NAMESET_SCANDINAVIAN_MALE_162=Vincent
# feminine names # feminine names
NAMESET_SCANDINAVIAN_FEMALE_001=Agnes NAMESET_SCANDINAVIAN_FEMALE_1=Agnes
NAMESET_SCANDINAVIAN_FEMALE_002=Alberte NAMESET_SCANDINAVIAN_FEMALE_2=Alberte
NAMESET_SCANDINAVIAN_FEMALE_003=Alexandra NAMESET_SCANDINAVIAN_FEMALE_3=Alexandra
NAMESET_SCANDINAVIAN_FEMALE_004=Alva NAMESET_SCANDINAVIAN_FEMALE_4=Alva
NAMESET_SCANDINAVIAN_FEMALE_005=Amanda NAMESET_SCANDINAVIAN_FEMALE_5=Amanda
NAMESET_SCANDINAVIAN_FEMALE_006=Andrea NAMESET_SCANDINAVIAN_FEMALE_6=Andrea
NAMESET_SCANDINAVIAN_FEMALE_007=Ane NAMESET_SCANDINAVIAN_FEMALE_7=Ane
NAMESET_SCANDINAVIAN_FEMALE_008=Anna NAMESET_SCANDINAVIAN_FEMALE_8=Anna
NAMESET_SCANDINAVIAN_FEMALE_009=Anne NAMESET_SCANDINAVIAN_FEMALE_9=Anne
NAMESET_SCANDINAVIAN_FEMALE_010=Anniken NAMESET_SCANDINAVIAN_FEMALE_10=Anniken
NAMESET_SCANDINAVIAN_FEMALE_011=Asta NAMESET_SCANDINAVIAN_FEMALE_11=Asta
NAMESET_SCANDINAVIAN_FEMALE_012=Astrid NAMESET_SCANDINAVIAN_FEMALE_12=Astrid
NAMESET_SCANDINAVIAN_FEMALE_013=Beatrice NAMESET_SCANDINAVIAN_FEMALE_13=Beatrice
NAMESET_SCANDINAVIAN_FEMALE_014=Camilla NAMESET_SCANDINAVIAN_FEMALE_14=Camilla
NAMESET_SCANDINAVIAN_FEMALE_015=Carolina NAMESET_SCANDINAVIAN_FEMALE_15=Carolina
NAMESET_SCANDINAVIAN_FEMALE_016=Caroline NAMESET_SCANDINAVIAN_FEMALE_16=Caroline
NAMESET_SCANDINAVIAN_FEMALE_017=Cecilia NAMESET_SCANDINAVIAN_FEMALE_17=Cecilia
NAMESET_SCANDINAVIAN_FEMALE_018=Celina NAMESET_SCANDINAVIAN_FEMALE_18=Celina
NAMESET_SCANDINAVIAN_FEMALE_019=Charlotte NAMESET_SCANDINAVIAN_FEMALE_19=Charlotte
NAMESET_SCANDINAVIAN_FEMALE_020=Christina NAMESET_SCANDINAVIAN_FEMALE_20=Christina
NAMESET_SCANDINAVIAN_FEMALE_021=Christine NAMESET_SCANDINAVIAN_FEMALE_21=Christine
NAMESET_SCANDINAVIAN_FEMALE_022=Ebba NAMESET_SCANDINAVIAN_FEMALE_22=Ebba
NAMESET_SCANDINAVIAN_FEMALE_023=Edith NAMESET_SCANDINAVIAN_FEMALE_23=Edith
NAMESET_SCANDINAVIAN_FEMALE_024=Elin NAMESET_SCANDINAVIAN_FEMALE_24=Elin
NAMESET_SCANDINAVIAN_FEMALE_025=Elina NAMESET_SCANDINAVIAN_FEMALE_25=Elina
NAMESET_SCANDINAVIAN_FEMALE_026=Elisabeth NAMESET_SCANDINAVIAN_FEMALE_26=Elisabeth
NAMESET_SCANDINAVIAN_FEMALE_027=Elise NAMESET_SCANDINAVIAN_FEMALE_27=Elise
NAMESET_SCANDINAVIAN_FEMALE_028=Ella NAMESET_SCANDINAVIAN_FEMALE_28=Ella
NAMESET_SCANDINAVIAN_FEMALE_029=Ellinor NAMESET_SCANDINAVIAN_FEMALE_29=Ellinor
NAMESET_SCANDINAVIAN_FEMALE_030=Elsa NAMESET_SCANDINAVIAN_FEMALE_30=Elsa
NAMESET_SCANDINAVIAN_FEMALE_031=Emelie NAMESET_SCANDINAVIAN_FEMALE_31=Emelie
NAMESET_SCANDINAVIAN_FEMALE_032=Emilia NAMESET_SCANDINAVIAN_FEMALE_32=Emilia
NAMESET_SCANDINAVIAN_FEMALE_033=Emilie NAMESET_SCANDINAVIAN_FEMALE_33=Emilie
NAMESET_SCANDINAVIAN_FEMALE_034=Emma NAMESET_SCANDINAVIAN_FEMALE_34=Emma
NAMESET_SCANDINAVIAN_FEMALE_035=Erika NAMESET_SCANDINAVIAN_FEMALE_35=Erika
NAMESET_SCANDINAVIAN_FEMALE_036=Erle NAMESET_SCANDINAVIAN_FEMALE_36=Erle
NAMESET_SCANDINAVIAN_FEMALE_037=Ester NAMESET_SCANDINAVIAN_FEMALE_37=Ester
NAMESET_SCANDINAVIAN_FEMALE_038=Eva NAMESET_SCANDINAVIAN_FEMALE_38=Eva
NAMESET_SCANDINAVIAN_FEMALE_039=Evelina NAMESET_SCANDINAVIAN_FEMALE_39=Evelina
NAMESET_SCANDINAVIAN_FEMALE_040=Felicia NAMESET_SCANDINAVIAN_FEMALE_40=Felicia
NAMESET_SCANDINAVIAN_FEMALE_041=Filippa NAMESET_SCANDINAVIAN_FEMALE_41=Filippa
NAMESET_SCANDINAVIAN_FEMALE_042=Frederikke NAMESET_SCANDINAVIAN_FEMALE_42=Frederikke
NAMESET_SCANDINAVIAN_FEMALE_043=Freja NAMESET_SCANDINAVIAN_FEMALE_43=Freja
NAMESET_SCANDINAVIAN_FEMALE_044=Frida NAMESET_SCANDINAVIAN_FEMALE_44=Frida
NAMESET_SCANDINAVIAN_FEMALE_045=Gabriella NAMESET_SCANDINAVIAN_FEMALE_45=Gabriella
NAMESET_SCANDINAVIAN_FEMALE_046=Greta NAMESET_SCANDINAVIAN_FEMALE_46=Greta
NAMESET_SCANDINAVIAN_FEMALE_047=Hanna NAMESET_SCANDINAVIAN_FEMALE_47=Hanna
NAMESET_SCANDINAVIAN_FEMALE_048=Hanne NAMESET_SCANDINAVIAN_FEMALE_48=Hanne
NAMESET_SCANDINAVIAN_FEMALE_049=Hedda NAMESET_SCANDINAVIAN_FEMALE_49=Hedda
NAMESET_SCANDINAVIAN_FEMALE_050=Hedvig NAMESET_SCANDINAVIAN_FEMALE_50=Hedvig
NAMESET_SCANDINAVIAN_FEMALE_051=Helena NAMESET_SCANDINAVIAN_FEMALE_51=Helena
NAMESET_SCANDINAVIAN_FEMALE_052=Helene NAMESET_SCANDINAVIAN_FEMALE_52=Helene
NAMESET_SCANDINAVIAN_FEMALE_053=Helle NAMESET_SCANDINAVIAN_FEMALE_53=Helle
NAMESET_SCANDINAVIAN_FEMALE_054=Henriette NAMESET_SCANDINAVIAN_FEMALE_54=Henriette
NAMESET_SCANDINAVIAN_FEMALE_055=Hilda NAMESET_SCANDINAVIAN_FEMALE_55=Hilda
NAMESET_SCANDINAVIAN_FEMALE_056=Ida NAMESET_SCANDINAVIAN_FEMALE_56=Ida
NAMESET_SCANDINAVIAN_FEMALE_057=Ina NAMESET_SCANDINAVIAN_FEMALE_57=Ina
NAMESET_SCANDINAVIAN_FEMALE_058=Ingeborg NAMESET_SCANDINAVIAN_FEMALE_58=Ingeborg
NAMESET_SCANDINAVIAN_FEMALE_059=Ingrid NAMESET_SCANDINAVIAN_FEMALE_59=Ingrid
NAMESET_SCANDINAVIAN_FEMALE_060=Ingvild NAMESET_SCANDINAVIAN_FEMALE_60=Ingvild
NAMESET_SCANDINAVIAN_FEMALE_061=Iris NAMESET_SCANDINAVIAN_FEMALE_61=Iris
NAMESET_SCANDINAVIAN_FEMALE_062=Isabella NAMESET_SCANDINAVIAN_FEMALE_62=Isabella
NAMESET_SCANDINAVIAN_FEMALE_063=Jessica NAMESET_SCANDINAVIAN_FEMALE_63=Jessica
NAMESET_SCANDINAVIAN_FEMALE_064=Jóhanna NAMESET_SCANDINAVIAN_FEMALE_64=Jóhanna
NAMESET_SCANDINAVIAN_FEMALE_065=Johanna NAMESET_SCANDINAVIAN_FEMALE_65=Johanna
NAMESET_SCANDINAVIAN_FEMALE_066=Johanne NAMESET_SCANDINAVIAN_FEMALE_66=Johanne
NAMESET_SCANDINAVIAN_FEMALE_067=Jonna NAMESET_SCANDINAVIAN_FEMALE_67=Jonna
NAMESET_SCANDINAVIAN_FEMALE_068=Julia NAMESET_SCANDINAVIAN_FEMALE_68=Julia
# pronounced as [julia], not [d͡ʒulia] # pronounced as [julia], not [d͡ʒulia]
NAMESET_SCANDINAVIAN_FEMALE_069=Kaja NAMESET_SCANDINAVIAN_FEMALE_69=Kaja
NAMESET_SCANDINAVIAN_FEMALE_070=Kajsa NAMESET_SCANDINAVIAN_FEMALE_70=Kajsa
NAMESET_SCANDINAVIAN_FEMALE_071=Kamilla NAMESET_SCANDINAVIAN_FEMALE_71=Kamilla
NAMESET_SCANDINAVIAN_FEMALE_072=Karen NAMESET_SCANDINAVIAN_FEMALE_72=Karen
NAMESET_SCANDINAVIAN_FEMALE_073=Karin NAMESET_SCANDINAVIAN_FEMALE_73=Karin
NAMESET_SCANDINAVIAN_FEMALE_074=Karoline NAMESET_SCANDINAVIAN_FEMALE_74=Karoline
NAMESET_SCANDINAVIAN_FEMALE_075=Katrine NAMESET_SCANDINAVIAN_FEMALE_75=Katrine
NAMESET_SCANDINAVIAN_FEMALE_076=Klara NAMESET_SCANDINAVIAN_FEMALE_76=Klara
NAMESET_SCANDINAVIAN_FEMALE_077=Kristín NAMESET_SCANDINAVIAN_FEMALE_77=Kristín
NAMESET_SCANDINAVIAN_FEMALE_078=Kristin NAMESET_SCANDINAVIAN_FEMALE_78=Kristin
NAMESET_SCANDINAVIAN_FEMALE_079=Kristina NAMESET_SCANDINAVIAN_FEMALE_79=Kristina
NAMESET_SCANDINAVIAN_FEMALE_080=Kristine NAMESET_SCANDINAVIAN_FEMALE_80=Kristine
NAMESET_SCANDINAVIAN_FEMALE_081=Lærke NAMESET_SCANDINAVIAN_FEMALE_81=Lærke
NAMESET_SCANDINAVIAN_FEMALE_082=Laura NAMESET_SCANDINAVIAN_FEMALE_82=Laura
NAMESET_SCANDINAVIAN_FEMALE_083=Lea NAMESET_SCANDINAVIAN_FEMALE_83=Lea
NAMESET_SCANDINAVIAN_FEMALE_084=Lene NAMESET_SCANDINAVIAN_FEMALE_84=Lene
NAMESET_SCANDINAVIAN_FEMALE_085=Lilly NAMESET_SCANDINAVIAN_FEMALE_85=Lilly
NAMESET_SCANDINAVIAN_FEMALE_086=Lina NAMESET_SCANDINAVIAN_FEMALE_86=Lina
NAMESET_SCANDINAVIAN_FEMALE_087=Linda NAMESET_SCANDINAVIAN_FEMALE_87=Linda
NAMESET_SCANDINAVIAN_FEMALE_088=Line NAMESET_SCANDINAVIAN_FEMALE_88=Line
NAMESET_SCANDINAVIAN_FEMALE_089=Linn NAMESET_SCANDINAVIAN_FEMALE_89=Linn
NAMESET_SCANDINAVIAN_FEMALE_090=Linnéa NAMESET_SCANDINAVIAN_FEMALE_90=Linnéa
NAMESET_SCANDINAVIAN_FEMALE_091=Lisa NAMESET_SCANDINAVIAN_FEMALE_91=Lisa
NAMESET_SCANDINAVIAN_FEMALE_092=Liv NAMESET_SCANDINAVIAN_FEMALE_92=Liv
NAMESET_SCANDINAVIAN_FEMALE_093=Lotte NAMESET_SCANDINAVIAN_FEMALE_93=Lotte
NAMESET_SCANDINAVIAN_FEMALE_094=Lovisa NAMESET_SCANDINAVIAN_FEMALE_94=Lovisa
NAMESET_SCANDINAVIAN_FEMALE_095=Lykke NAMESET_SCANDINAVIAN_FEMALE_95=Lykke
NAMESET_SCANDINAVIAN_FEMALE_096=Maiken NAMESET_SCANDINAVIAN_FEMALE_96=Maiken
NAMESET_SCANDINAVIAN_FEMALE_097=Maja NAMESET_SCANDINAVIAN_FEMALE_97=Maja
NAMESET_SCANDINAVIAN_FEMALE_098=Majken NAMESET_SCANDINAVIAN_FEMALE_98=Majken
NAMESET_SCANDINAVIAN_FEMALE_099=Malene NAMESET_SCANDINAVIAN_FEMALE_99=Malene
NAMESET_SCANDINAVIAN_FEMALE_100=Malin NAMESET_SCANDINAVIAN_FEMALE_100=Malin
NAMESET_SCANDINAVIAN_FEMALE_101=Maren NAMESET_SCANDINAVIAN_FEMALE_101=Maren
NAMESET_SCANDINAVIAN_FEMALE_102=Mari NAMESET_SCANDINAVIAN_FEMALE_102=Mari

View File

@@ -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 '알렉산더'. # 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) 한글 전사: 토르발드 (개발진) # Hangul version author: Torvald (main dev) 한글 전사: 토르발드 (개발진)
NAMESET_SCANDINAVIAN_MALE_001=아담 NAMESET_SCANDINAVIAN_MALE_1=아담
NAMESET_SCANDINAVIAN_MALE_002=아드리안 NAMESET_SCANDINAVIAN_MALE_2=아드리안
NAMESET_SCANDINAVIAN_MALE_003=악셀 NAMESET_SCANDINAVIAN_MALE_3=악셀
NAMESET_SCANDINAVIAN_MALE_004=알베르 NAMESET_SCANDINAVIAN_MALE_4=알베르
NAMESET_SCANDINAVIAN_MALE_005=알빈 NAMESET_SCANDINAVIAN_MALE_5=알빈
NAMESET_SCANDINAVIAN_MALE_006=알렉 NAMESET_SCANDINAVIAN_MALE_6=알렉
NAMESET_SCANDINAVIAN_MALE_007=알렉산더 NAMESET_SCANDINAVIAN_MALE_7=알렉산더
NAMESET_SCANDINAVIAN_MALE_008=알프레드 NAMESET_SCANDINAVIAN_MALE_8=알프레드
NAMESET_SCANDINAVIAN_MALE_009=아문드 NAMESET_SCANDINAVIAN_MALE_9=아문드
NAMESET_SCANDINAVIAN_MALE_010=안드레아스 NAMESET_SCANDINAVIAN_MALE_10=안드레아스
NAMESET_SCANDINAVIAN_MALE_011=안톤 NAMESET_SCANDINAVIAN_MALE_11=안톤
NAMESET_SCANDINAVIAN_MALE_012=아론 NAMESET_SCANDINAVIAN_MALE_12=아론
NAMESET_SCANDINAVIAN_MALE_013=알바르 NAMESET_SCANDINAVIAN_MALE_13=알바르
NAMESET_SCANDINAVIAN_MALE_014=아우구스트 NAMESET_SCANDINAVIAN_MALE_14=아우구스트
NAMESET_SCANDINAVIAN_MALE_015=악셀 NAMESET_SCANDINAVIAN_MALE_15=악셀
NAMESET_SCANDINAVIAN_MALE_016=비외른 NAMESET_SCANDINAVIAN_MALE_16=비외른
NAMESET_SCANDINAVIAN_MALE_017=비외른 NAMESET_SCANDINAVIAN_MALE_17=비외른
NAMESET_SCANDINAVIAN_MALE_018=카를 NAMESET_SCANDINAVIAN_MALE_18=카를
NAMESET_SCANDINAVIAN_MALE_019=카스퍼 NAMESET_SCANDINAVIAN_MALE_19=카스퍼
NAMESET_SCANDINAVIAN_MALE_020=크리스티안 NAMESET_SCANDINAVIAN_MALE_20=크리스티안
NAMESET_SCANDINAVIAN_MALE_021=크리스토퍼 NAMESET_SCANDINAVIAN_MALE_21=크리스토퍼
NAMESET_SCANDINAVIAN_MALE_022=다니엘 NAMESET_SCANDINAVIAN_MALE_22=다니엘
NAMESET_SCANDINAVIAN_MALE_023=다비드 NAMESET_SCANDINAVIAN_MALE_23=다비드
# pronounced as [dɑvid], not [deivɪd] # pronounced as [dɑvid], not [deivɪd]
NAMESET_SCANDINAVIAN_MALE_024=에드문드 NAMESET_SCANDINAVIAN_MALE_24=에드문드
NAMESET_SCANDINAVIAN_MALE_025=에드바르 NAMESET_SCANDINAVIAN_MALE_25=에드바르
NAMESET_SCANDINAVIAN_MALE_026=에드빈 NAMESET_SCANDINAVIAN_MALE_26=에드빈
NAMESET_SCANDINAVIAN_MALE_027=에릭 NAMESET_SCANDINAVIAN_MALE_27=에릭
NAMESET_SCANDINAVIAN_MALE_028=엘리아스 NAMESET_SCANDINAVIAN_MALE_28=엘리아스
NAMESET_SCANDINAVIAN_MALE_029=엘리스 NAMESET_SCANDINAVIAN_MALE_29=엘리스
NAMESET_SCANDINAVIAN_MALE_030=에마누엘 NAMESET_SCANDINAVIAN_MALE_30=에마누엘
NAMESET_SCANDINAVIAN_MALE_031=에밀 NAMESET_SCANDINAVIAN_MALE_31=에밀
NAMESET_SCANDINAVIAN_MALE_032=에인드리 NAMESET_SCANDINAVIAN_MALE_32=에인드리
NAMESET_SCANDINAVIAN_MALE_033=에릭 NAMESET_SCANDINAVIAN_MALE_33=에릭
NAMESET_SCANDINAVIAN_MALE_034=에를렌드 NAMESET_SCANDINAVIAN_MALE_34=에를렌드
NAMESET_SCANDINAVIAN_MALE_035=에스펜 NAMESET_SCANDINAVIAN_MALE_35=에스펜
NAMESET_SCANDINAVIAN_MALE_036=파비안 NAMESET_SCANDINAVIAN_MALE_36=파비안
NAMESET_SCANDINAVIAN_MALE_037=펠릭스 NAMESET_SCANDINAVIAN_MALE_37=펠릭스
NAMESET_SCANDINAVIAN_MALE_038=필립 NAMESET_SCANDINAVIAN_MALE_38=필립
NAMESET_SCANDINAVIAN_MALE_039=프레데릭 NAMESET_SCANDINAVIAN_MALE_39=프레데릭
NAMESET_SCANDINAVIAN_MALE_040=가브리엘 NAMESET_SCANDINAVIAN_MALE_40=가브리엘
NAMESET_SCANDINAVIAN_MALE_041=구스타프 NAMESET_SCANDINAVIAN_MALE_41=구스타프
NAMESET_SCANDINAVIAN_MALE_042=하콘 NAMESET_SCANDINAVIAN_MALE_42=하콘
NAMESET_SCANDINAVIAN_MALE_043=하콘 NAMESET_SCANDINAVIAN_MALE_43=하콘
NAMESET_SCANDINAVIAN_MALE_044=호콘 NAMESET_SCANDINAVIAN_MALE_44=호콘
NAMESET_SCANDINAVIAN_MALE_045=함푸스 NAMESET_SCANDINAVIAN_MALE_45=함푸스
NAMESET_SCANDINAVIAN_MALE_046=한네 NAMESET_SCANDINAVIAN_MALE_46=한네
NAMESET_SCANDINAVIAN_MALE_047=한스 NAMESET_SCANDINAVIAN_MALE_47=한스
NAMESET_SCANDINAVIAN_MALE_048=호바르 NAMESET_SCANDINAVIAN_MALE_48=호바르
NAMESET_SCANDINAVIAN_MALE_049=헨릭 NAMESET_SCANDINAVIAN_MALE_49=헨릭
NAMESET_SCANDINAVIAN_MALE_050=헤르만 NAMESET_SCANDINAVIAN_MALE_50=헤르만
NAMESET_SCANDINAVIAN_MALE_051=히알마르 NAMESET_SCANDINAVIAN_MALE_51=히알마르
NAMESET_SCANDINAVIAN_MALE_052=휴고 NAMESET_SCANDINAVIAN_MALE_52=휴고
NAMESET_SCANDINAVIAN_MALE_053=이삭 NAMESET_SCANDINAVIAN_MALE_53=이삭
NAMESET_SCANDINAVIAN_MALE_054=이바르 NAMESET_SCANDINAVIAN_MALE_54=이바르
NAMESET_SCANDINAVIAN_MALE_055=야콥 NAMESET_SCANDINAVIAN_MALE_55=야콥
NAMESET_SCANDINAVIAN_MALE_056=야콥 NAMESET_SCANDINAVIAN_MALE_56=야콥
NAMESET_SCANDINAVIAN_MALE_057=얀 NAMESET_SCANDINAVIAN_MALE_57=얀
NAMESET_SCANDINAVIAN_MALE_058=옌스 NAMESET_SCANDINAVIAN_MALE_58=옌스
NAMESET_SCANDINAVIAN_MALE_059=예프 NAMESET_SCANDINAVIAN_MALE_59=예프
NAMESET_SCANDINAVIAN_MALE_060=예스퍼 NAMESET_SCANDINAVIAN_MALE_60=예스퍼
NAMESET_SCANDINAVIAN_MALE_061=요아킴 NAMESET_SCANDINAVIAN_MALE_61=요아킴
# pronounced as [joakim], not [hoakim] as this is scandinavian section. # pronounced as [joakim], not [hoakim] as this is scandinavian section.
NAMESET_SCANDINAVIAN_MALE_062=요엘 NAMESET_SCANDINAVIAN_MALE_62=요엘
NAMESET_SCANDINAVIAN_MALE_063=요한 NAMESET_SCANDINAVIAN_MALE_63=요한
NAMESET_SCANDINAVIAN_MALE_064=요한네스 NAMESET_SCANDINAVIAN_MALE_64=요한네스
NAMESET_SCANDINAVIAN_MALE_065=욘 NAMESET_SCANDINAVIAN_MALE_65=욘
NAMESET_SCANDINAVIAN_MALE_066=욘 NAMESET_SCANDINAVIAN_MALE_66=욘
NAMESET_SCANDINAVIAN_MALE_067=요나스 NAMESET_SCANDINAVIAN_MALE_67=요나스
NAMESET_SCANDINAVIAN_MALE_068=요나스 NAMESET_SCANDINAVIAN_MALE_68=요나스
NAMESET_SCANDINAVIAN_MALE_069=요나단 NAMESET_SCANDINAVIAN_MALE_69=요나단
NAMESET_SCANDINAVIAN_MALE_070=이외르겐 NAMESET_SCANDINAVIAN_MALE_70=이외르겐
NAMESET_SCANDINAVIAN_MALE_071=이외르겐 NAMESET_SCANDINAVIAN_MALE_71=이외르겐
NAMESET_SCANDINAVIAN_MALE_072=요세프 NAMESET_SCANDINAVIAN_MALE_72=요세프
NAMESET_SCANDINAVIAN_MALE_073=칼 NAMESET_SCANDINAVIAN_MALE_73=칼
NAMESET_SCANDINAVIAN_MALE_074=카스퍼 NAMESET_SCANDINAVIAN_MALE_74=카스퍼
NAMESET_SCANDINAVIAN_MALE_075=케빈 NAMESET_SCANDINAVIAN_MALE_75=케빈
NAMESET_SCANDINAVIAN_MALE_076=킴 NAMESET_SCANDINAVIAN_MALE_76=킴
NAMESET_SCANDINAVIAN_MALE_077=크누트 NAMESET_SCANDINAVIAN_MALE_77=크누트
# pronounced as [knut] # pronounced as [knut]
NAMESET_SCANDINAVIAN_MALE_078=크리스티안 NAMESET_SCANDINAVIAN_MALE_78=크리스티안
NAMESET_SCANDINAVIAN_MALE_079=크리스토퍼 NAMESET_SCANDINAVIAN_MALE_79=크리스토퍼
NAMESET_SCANDINAVIAN_MALE_080=라르스 NAMESET_SCANDINAVIAN_MALE_80=라르스
NAMESET_SCANDINAVIAN_MALE_081=라세 NAMESET_SCANDINAVIAN_MALE_81=라세
NAMESET_SCANDINAVIAN_MALE_082=라우리츠 NAMESET_SCANDINAVIAN_MALE_82=라우리츠
NAMESET_SCANDINAVIAN_MALE_083=레오 NAMESET_SCANDINAVIAN_MALE_83=레오
NAMESET_SCANDINAVIAN_MALE_084=리누스 NAMESET_SCANDINAVIAN_MALE_84=리누스
# pronounced as [linus], not [lainəs] as this is scandinavian section. # pronounced as [linus], not [lainəs] as this is scandinavian section.
NAMESET_SCANDINAVIAN_MALE_085=로케 NAMESET_SCANDINAVIAN_MALE_85=로케
NAMESET_SCANDINAVIAN_MALE_086=로베 NAMESET_SCANDINAVIAN_MALE_86=로베
# NOT pronounced as [ləv]! # NOT pronounced as [ləv]!
NAMESET_SCANDINAVIAN_MALE_087=루드빅 NAMESET_SCANDINAVIAN_MALE_87=루드빅
NAMESET_SCANDINAVIAN_MALE_088=루카스 NAMESET_SCANDINAVIAN_MALE_88=루카스
NAMESET_SCANDINAVIAN_MALE_089=마드스 NAMESET_SCANDINAVIAN_MALE_89=마드스
NAMESET_SCANDINAVIAN_MALE_090=마그누스 NAMESET_SCANDINAVIAN_MALE_90=마그누스
NAMESET_SCANDINAVIAN_MALE_091=말테 NAMESET_SCANDINAVIAN_MALE_91=말테
NAMESET_SCANDINAVIAN_MALE_092=말테 NAMESET_SCANDINAVIAN_MALE_92=말테
NAMESET_SCANDINAVIAN_MALE_093=마르쿠스 NAMESET_SCANDINAVIAN_MALE_93=마르쿠스
NAMESET_SCANDINAVIAN_MALE_094=마리아 NAMESET_SCANDINAVIAN_MALE_94=마리아
NAMESET_SCANDINAVIAN_MALE_095=마리우스 NAMESET_SCANDINAVIAN_MALE_95=마리우스
NAMESET_SCANDINAVIAN_MALE_096=마르쿠스 NAMESET_SCANDINAVIAN_MALE_96=마르쿠스
NAMESET_SCANDINAVIAN_MALE_097=마르틴 NAMESET_SCANDINAVIAN_MALE_97=마르틴
NAMESET_SCANDINAVIAN_MALE_098=키루스 NAMESET_SCANDINAVIAN_MALE_98=키루스
# need more exotic name starting with 'C'... # need more exotic name starting with 'C'...
NAMESET_SCANDINAVIAN_MALE_099=마츠 NAMESET_SCANDINAVIAN_MALE_99=마츠
NAMESET_SCANDINAVIAN_MALE_100=마티아스 NAMESET_SCANDINAVIAN_MALE_100=마티아스
NAMESET_SCANDINAVIAN_MALE_101=막스 NAMESET_SCANDINAVIAN_MALE_101=막스
NAMESET_SCANDINAVIAN_MALE_102=막시밀리안 NAMESET_SCANDINAVIAN_MALE_102=막시밀리안
@@ -174,106 +174,106 @@ NAMESET_SCANDINAVIAN_MALE_162=빈센트
# feminine names # feminine names
NAMESET_SCANDINAVIAN_FEMALE_001=아그네스 NAMESET_SCANDINAVIAN_FEMALE_1=아그네스
NAMESET_SCANDINAVIAN_FEMALE_002=알베르테 NAMESET_SCANDINAVIAN_FEMALE_2=알베르테
NAMESET_SCANDINAVIAN_FEMALE_003=알렉산드라 NAMESET_SCANDINAVIAN_FEMALE_3=알렉산드라
NAMESET_SCANDINAVIAN_FEMALE_004=알바 NAMESET_SCANDINAVIAN_FEMALE_4=알바
NAMESET_SCANDINAVIAN_FEMALE_005=아만다 NAMESET_SCANDINAVIAN_FEMALE_5=아만다
NAMESET_SCANDINAVIAN_FEMALE_006=안드레아 NAMESET_SCANDINAVIAN_FEMALE_6=안드레아
NAMESET_SCANDINAVIAN_FEMALE_007=아네 NAMESET_SCANDINAVIAN_FEMALE_7=아네
NAMESET_SCANDINAVIAN_FEMALE_008=안나 NAMESET_SCANDINAVIAN_FEMALE_8=안나
NAMESET_SCANDINAVIAN_FEMALE_009=안네 NAMESET_SCANDINAVIAN_FEMALE_9=안네
NAMESET_SCANDINAVIAN_FEMALE_010=안니켄 NAMESET_SCANDINAVIAN_FEMALE_10=안니켄
NAMESET_SCANDINAVIAN_FEMALE_011=아스타 NAMESET_SCANDINAVIAN_FEMALE_11=아스타
NAMESET_SCANDINAVIAN_FEMALE_012=아스트리드 NAMESET_SCANDINAVIAN_FEMALE_12=아스트리드
NAMESET_SCANDINAVIAN_FEMALE_013=베아트리케 NAMESET_SCANDINAVIAN_FEMALE_13=베아트리케
NAMESET_SCANDINAVIAN_FEMALE_014=카밀라 NAMESET_SCANDINAVIAN_FEMALE_14=카밀라
NAMESET_SCANDINAVIAN_FEMALE_015=카롤리나 NAMESET_SCANDINAVIAN_FEMALE_15=카롤리나
NAMESET_SCANDINAVIAN_FEMALE_016=카롤리네 NAMESET_SCANDINAVIAN_FEMALE_16=카롤리네
NAMESET_SCANDINAVIAN_FEMALE_017=세실리아 NAMESET_SCANDINAVIAN_FEMALE_17=세실리아
NAMESET_SCANDINAVIAN_FEMALE_018=첼리나 NAMESET_SCANDINAVIAN_FEMALE_18=첼리나
NAMESET_SCANDINAVIAN_FEMALE_019=카를로테 NAMESET_SCANDINAVIAN_FEMALE_19=카를로테
NAMESET_SCANDINAVIAN_FEMALE_020=크리스티나 NAMESET_SCANDINAVIAN_FEMALE_20=크리스티나
NAMESET_SCANDINAVIAN_FEMALE_021=크리스티네 NAMESET_SCANDINAVIAN_FEMALE_21=크리스티네
NAMESET_SCANDINAVIAN_FEMALE_022=에바 NAMESET_SCANDINAVIAN_FEMALE_22=에바
NAMESET_SCANDINAVIAN_FEMALE_023=에디스 NAMESET_SCANDINAVIAN_FEMALE_23=에디스
NAMESET_SCANDINAVIAN_FEMALE_024=엘린 NAMESET_SCANDINAVIAN_FEMALE_24=엘린
NAMESET_SCANDINAVIAN_FEMALE_025=엘리나 NAMESET_SCANDINAVIAN_FEMALE_25=엘리나
NAMESET_SCANDINAVIAN_FEMALE_026=엘리사베스 NAMESET_SCANDINAVIAN_FEMALE_26=엘리사베스
NAMESET_SCANDINAVIAN_FEMALE_027=엘리세 NAMESET_SCANDINAVIAN_FEMALE_27=엘리세
NAMESET_SCANDINAVIAN_FEMALE_028=엘라 NAMESET_SCANDINAVIAN_FEMALE_28=엘라
NAMESET_SCANDINAVIAN_FEMALE_029=엘리노르 NAMESET_SCANDINAVIAN_FEMALE_29=엘리노르
NAMESET_SCANDINAVIAN_FEMALE_030=엘사 NAMESET_SCANDINAVIAN_FEMALE_30=엘사
NAMESET_SCANDINAVIAN_FEMALE_031=에밀리에 NAMESET_SCANDINAVIAN_FEMALE_31=에밀리에
NAMESET_SCANDINAVIAN_FEMALE_032=에밀리아 NAMESET_SCANDINAVIAN_FEMALE_32=에밀리아
NAMESET_SCANDINAVIAN_FEMALE_033=에밀리에 NAMESET_SCANDINAVIAN_FEMALE_33=에밀리에
NAMESET_SCANDINAVIAN_FEMALE_034=엠마 NAMESET_SCANDINAVIAN_FEMALE_34=엠마
NAMESET_SCANDINAVIAN_FEMALE_035=에리카 NAMESET_SCANDINAVIAN_FEMALE_35=에리카
NAMESET_SCANDINAVIAN_FEMALE_036=에를레 NAMESET_SCANDINAVIAN_FEMALE_36=에를레
NAMESET_SCANDINAVIAN_FEMALE_037=에스테르 NAMESET_SCANDINAVIAN_FEMALE_37=에스테르
NAMESET_SCANDINAVIAN_FEMALE_038=에바 NAMESET_SCANDINAVIAN_FEMALE_38=에바
NAMESET_SCANDINAVIAN_FEMALE_039=에벨리나 NAMESET_SCANDINAVIAN_FEMALE_39=에벨리나
NAMESET_SCANDINAVIAN_FEMALE_040=펠리시아 NAMESET_SCANDINAVIAN_FEMALE_40=펠리시아
NAMESET_SCANDINAVIAN_FEMALE_041=필리파 NAMESET_SCANDINAVIAN_FEMALE_41=필리파
NAMESET_SCANDINAVIAN_FEMALE_042=프레데리케 NAMESET_SCANDINAVIAN_FEMALE_42=프레데리케
NAMESET_SCANDINAVIAN_FEMALE_043=프레야 NAMESET_SCANDINAVIAN_FEMALE_43=프레야
NAMESET_SCANDINAVIAN_FEMALE_044=프리다 NAMESET_SCANDINAVIAN_FEMALE_44=프리다
NAMESET_SCANDINAVIAN_FEMALE_045=가브리엘라 NAMESET_SCANDINAVIAN_FEMALE_45=가브리엘라
NAMESET_SCANDINAVIAN_FEMALE_046=그레타 NAMESET_SCANDINAVIAN_FEMALE_46=그레타
NAMESET_SCANDINAVIAN_FEMALE_047=한나 NAMESET_SCANDINAVIAN_FEMALE_47=한나
NAMESET_SCANDINAVIAN_FEMALE_048=한네 NAMESET_SCANDINAVIAN_FEMALE_48=한네
NAMESET_SCANDINAVIAN_FEMALE_049=헤다 NAMESET_SCANDINAVIAN_FEMALE_49=헤다
NAMESET_SCANDINAVIAN_FEMALE_050=헤드비그 NAMESET_SCANDINAVIAN_FEMALE_50=헤드비그
NAMESET_SCANDINAVIAN_FEMALE_051=헬레나 NAMESET_SCANDINAVIAN_FEMALE_51=헬레나
NAMESET_SCANDINAVIAN_FEMALE_052=헬레네 NAMESET_SCANDINAVIAN_FEMALE_52=헬레네
NAMESET_SCANDINAVIAN_FEMALE_053=헬레 NAMESET_SCANDINAVIAN_FEMALE_53=헬레
NAMESET_SCANDINAVIAN_FEMALE_054=헨리에트 NAMESET_SCANDINAVIAN_FEMALE_54=헨리에트
NAMESET_SCANDINAVIAN_FEMALE_055=힐다 NAMESET_SCANDINAVIAN_FEMALE_55=힐다
NAMESET_SCANDINAVIAN_FEMALE_056=이다 NAMESET_SCANDINAVIAN_FEMALE_56=이다
NAMESET_SCANDINAVIAN_FEMALE_057=이나 NAMESET_SCANDINAVIAN_FEMALE_57=이나
NAMESET_SCANDINAVIAN_FEMALE_058=잉게보리 NAMESET_SCANDINAVIAN_FEMALE_58=잉게보리
NAMESET_SCANDINAVIAN_FEMALE_059=잉그리 NAMESET_SCANDINAVIAN_FEMALE_59=잉그리
NAMESET_SCANDINAVIAN_FEMALE_060=잉그빌드 NAMESET_SCANDINAVIAN_FEMALE_60=잉그빌드
NAMESET_SCANDINAVIAN_FEMALE_061=이리스 NAMESET_SCANDINAVIAN_FEMALE_61=이리스
NAMESET_SCANDINAVIAN_FEMALE_062=이사벨라 NAMESET_SCANDINAVIAN_FEMALE_62=이사벨라
NAMESET_SCANDINAVIAN_FEMALE_063=예시카 NAMESET_SCANDINAVIAN_FEMALE_63=예시카
NAMESET_SCANDINAVIAN_FEMALE_064=요한나 NAMESET_SCANDINAVIAN_FEMALE_64=요한나
NAMESET_SCANDINAVIAN_FEMALE_065=요한나 NAMESET_SCANDINAVIAN_FEMALE_65=요한나
NAMESET_SCANDINAVIAN_FEMALE_066=요한네 NAMESET_SCANDINAVIAN_FEMALE_66=요한네
NAMESET_SCANDINAVIAN_FEMALE_067=요나 NAMESET_SCANDINAVIAN_FEMALE_67=요나
NAMESET_SCANDINAVIAN_FEMALE_068=율리아 NAMESET_SCANDINAVIAN_FEMALE_68=율리아
# pronounced as [julia], not [d͡ʒulia] # pronounced as [julia], not [d͡ʒulia]
NAMESET_SCANDINAVIAN_FEMALE_069=카야 NAMESET_SCANDINAVIAN_FEMALE_69=카야
NAMESET_SCANDINAVIAN_FEMALE_070=카트리나 NAMESET_SCANDINAVIAN_FEMALE_70=카트리나
NAMESET_SCANDINAVIAN_FEMALE_071=카밀라 NAMESET_SCANDINAVIAN_FEMALE_71=카밀라
NAMESET_SCANDINAVIAN_FEMALE_072=카렌 NAMESET_SCANDINAVIAN_FEMALE_72=카렌
NAMESET_SCANDINAVIAN_FEMALE_073=카린 NAMESET_SCANDINAVIAN_FEMALE_73=카린
NAMESET_SCANDINAVIAN_FEMALE_074=카롤리네 NAMESET_SCANDINAVIAN_FEMALE_74=카롤리네
NAMESET_SCANDINAVIAN_FEMALE_075=카트리네 NAMESET_SCANDINAVIAN_FEMALE_75=카트리네
NAMESET_SCANDINAVIAN_FEMALE_076=클라라 NAMESET_SCANDINAVIAN_FEMALE_76=클라라
NAMESET_SCANDINAVIAN_FEMALE_077=크리스틴 NAMESET_SCANDINAVIAN_FEMALE_77=크리스틴
NAMESET_SCANDINAVIAN_FEMALE_078=크리스틴 NAMESET_SCANDINAVIAN_FEMALE_78=크리스틴
NAMESET_SCANDINAVIAN_FEMALE_079=크리스티나 NAMESET_SCANDINAVIAN_FEMALE_79=크리스티나
NAMESET_SCANDINAVIAN_FEMALE_080=크리스티네 NAMESET_SCANDINAVIAN_FEMALE_80=크리스티네
NAMESET_SCANDINAVIAN_FEMALE_081=레르케 NAMESET_SCANDINAVIAN_FEMALE_81=레르케
NAMESET_SCANDINAVIAN_FEMALE_082=라우라 NAMESET_SCANDINAVIAN_FEMALE_82=라우라
NAMESET_SCANDINAVIAN_FEMALE_083=레아 NAMESET_SCANDINAVIAN_FEMALE_83=레아
NAMESET_SCANDINAVIAN_FEMALE_084=레네 NAMESET_SCANDINAVIAN_FEMALE_84=레네
NAMESET_SCANDINAVIAN_FEMALE_085=릴리 NAMESET_SCANDINAVIAN_FEMALE_85=릴리
NAMESET_SCANDINAVIAN_FEMALE_086=리나 NAMESET_SCANDINAVIAN_FEMALE_86=리나
NAMESET_SCANDINAVIAN_FEMALE_087=린다 NAMESET_SCANDINAVIAN_FEMALE_87=린다
NAMESET_SCANDINAVIAN_FEMALE_088=리네 NAMESET_SCANDINAVIAN_FEMALE_88=리네
NAMESET_SCANDINAVIAN_FEMALE_089=린 NAMESET_SCANDINAVIAN_FEMALE_89=린
NAMESET_SCANDINAVIAN_FEMALE_090=린네아 NAMESET_SCANDINAVIAN_FEMALE_90=린네아
NAMESET_SCANDINAVIAN_FEMALE_091=리사 NAMESET_SCANDINAVIAN_FEMALE_91=리사
NAMESET_SCANDINAVIAN_FEMALE_092=리브 NAMESET_SCANDINAVIAN_FEMALE_92=리브
NAMESET_SCANDINAVIAN_FEMALE_093=로테 NAMESET_SCANDINAVIAN_FEMALE_93=로테
NAMESET_SCANDINAVIAN_FEMALE_094=로비사 NAMESET_SCANDINAVIAN_FEMALE_94=로비사
NAMESET_SCANDINAVIAN_FEMALE_095=리케 NAMESET_SCANDINAVIAN_FEMALE_95=리케
NAMESET_SCANDINAVIAN_FEMALE_096=마이켄 NAMESET_SCANDINAVIAN_FEMALE_96=마이켄
NAMESET_SCANDINAVIAN_FEMALE_097=마야 NAMESET_SCANDINAVIAN_FEMALE_97=마야
NAMESET_SCANDINAVIAN_FEMALE_098=마이켄 NAMESET_SCANDINAVIAN_FEMALE_98=마이켄
NAMESET_SCANDINAVIAN_FEMALE_099=말레네 NAMESET_SCANDINAVIAN_FEMALE_99=말레네
NAMESET_SCANDINAVIAN_FEMALE_100=말린 NAMESET_SCANDINAVIAN_FEMALE_100=말린
NAMESET_SCANDINAVIAN_FEMALE_101=마렌 NAMESET_SCANDINAVIAN_FEMALE_101=마렌
NAMESET_SCANDINAVIAN_FEMALE_102=마리 NAMESET_SCANDINAVIAN_FEMALE_102=마리

View File

@@ -1,7 +1,6 @@
{ {
"racename" : "CONTEXT_RACE_HUMAN", "racename" : "CONTEXT_RACE_HUMAN",
"racenameplural" : "CONTEXT_RACE_HUMAN_PLURAL", "racenameplural" : "CONTEXT_RACE_HUMAN_PLURAL",
"ethnicgroup" : "human",
"baseheight" : 40, "baseheight" : 40,
"basemass" : 60.0, "basemass" : 60.0,

View File

@@ -0,0 +1,8 @@
{
"factionname" : "sigrid",
"factionamicable" : ["follower"],
"factionneutral" : ["controlledvillager"],
"factionhostile" : ["wildlifehostile"],
"factionfearful" : ["peasant", "wildlifeflee"]
}

View File

@@ -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();
}
}
}

View File

@@ -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;
}
}

View File

@@ -7,16 +7,26 @@ import org.newdawn.slick.Color;
* *
* 12-bit RGB * 12-bit RGB
*/ */
public class Col4096 { public class Col4096 implements LimitedColours {
private short data; private short data;
/** /**
* Create new Col4096 format. *
* @param data 0xARGB * @param data
*/ */
public Col4096(int 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 * @param i
* @return * @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) { if (i > 0xFFF) {
int a = (i & 0xF000) >> 12; a = (i & 0xF000) >> 12;
int r = (i & 0x0F00) >> 8;
int g = (i & 0x00F0) >> 4;
int b = i & 0x000F;
return new Color( return new Color(
(r << 4) | r (r << 4) | r
@@ -39,10 +54,6 @@ public class Col4096 {
); );
} }
else { else {
int r = (i & 0xF00) >> 8;
int g = (i & 0x0F0) >> 4;
int b = i & 0x00F;
return new Color( return new Color(
(r << 4) | r (r << 4) | r
, (g << 4) | g , (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. * Convert to 3 byte values, for raster imaging.
* @return byte[RR, GG, BB] e.g. 0x4B3 -> 0x44, 0xBB, 0x33 * @return byte[RR, GG, BB] e.g. 0x4B3 -> 0x44, 0xBB, 0x33
@@ -72,8 +111,25 @@ public class Col4096 {
* Retrieve raw ARGB value * Retrieve raw ARGB value
* @return 0xARGB * @return 0xARGB
*/ */
public short getShort() { public short getRaw() {
return data; 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();
}
}
} }

View File

@@ -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);
}

View File

@@ -257,6 +257,9 @@ public class GameFontBase implements Font {
+ getWidth(s.substring(0, i)) + getWidth(s.substring(0, i))
) )
, Math.round(y) , Math.round(y)
- ((prevInstance == SHEET_KANA) ? 2
: (prevInstance == SHEET_CJK_PUNCT) ?
1 : 0)
, sheetX , sheetX
, sheetY , sheetY
); );

View File

@@ -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;
}
}

View File

@@ -77,6 +77,10 @@ public class ActorWithBody implements Actor, Visible, Glowing {
private final int CONTACT_AREA_BOTTOM = 2; private final int CONTACT_AREA_BOTTOM = 2;
private final int CONTACT_AREA_LEFT = 3; 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 * 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' if (collidedRightAndAdjusted()) { // treat as 'event--collided right'
veloX = 0; veloX = 0;
walledRight = true; 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' else if (collidedLeftAndAdjusted()) { // treat as 'event--collided left'
veloX = 0; veloX = 0;
@@ -351,7 +358,7 @@ public class ActorWithBody implements Actor, Visible, Glowing {
private void adjustHitBottom() { private void adjustHitBottom() {
int tY = 0; int tY = 0;
int contactArea = getContactArea(CONTACT_AREA_BOTTOM, 0, 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. * get contact area and move up and get again.
* keep track of this value, and some point they will be set as lowest * 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() { private void adjustHitTop() {
int tY = 0; int tY = 0;
int contactArea = getContactArea(CONTACT_AREA_TOP, 0, 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. * get contact area and move up and get again.
* keep track of this value, and some point they will be set as lowest * 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() { private void adjustHitRight() {
int tX = 0; int tX = 0;
int contactArea = getContactArea(CONTACT_AREA_RIGHT, 0, 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. * get contact area and move up and get again.
* keep track of this value, and some point they will be set as lowest * 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() { private void adjustHitLeft() {
int tX = 0; int tX = 0;
int contactArea = getContactArea(CONTACT_AREA_LEFT, 0, 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. * get contact area and move up and get again.
* keep track of this value, and some point they will be set as lowest * keep track of this value, and some point they will be set as lowest

View File

@@ -1,5 +1,6 @@
package com.Torvald.Terrarum.Actors; package com.Torvald.Terrarum.Actors;
import com.Torvald.JsonGetter;
import com.Torvald.Rand.Fudge3; import com.Torvald.Rand.Fudge3;
import com.Torvald.Rand.HQRNG; import com.Torvald.Rand.HQRNG;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
@@ -16,10 +17,9 @@ import java.nio.file.Files;
public class CreatureBuildFactory { public class CreatureBuildFactory {
private static final String JSONPATH = "./res/raw/"; private static final String JSONPATH = "./res/raw/";
private static String jsonString = new String();
public ActorWithBody build(String jsonFileName) throws IOException, SlickException { public ActorWithBody build(String jsonFileName) throws IOException, SlickException {
JsonObject jsonObj = readJson(jsonFileName); JsonObject jsonObj = JsonGetter.readJson(JSONPATH + jsonFileName);
ActorWithBody actor = new ActorWithBody(); ActorWithBody actor = new ActorWithBody();
@@ -99,24 +99,4 @@ public class CreatureBuildFactory {
p.actorValue.set(s, jsonObject.get(s).getAsFloat()); 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;
}
} }

View File

@@ -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<String> factionAmicable;
private HashSet<String> factionNeutral;
private HashSet<String> factionHostile;
private HashSet<String> factionFearful;
public Faction(String factionName) {
this.factionName = factionName;
factionAmicable = new HashSet<>();
factionNeutral = new HashSet<>();
factionHostile = new HashSet<>();
factionFearful = new HashSet<>();
}
public HashSet<String> getFactionFearful() {
return factionFearful;
}
public void setFactionFearful(HashSet<String> factionFearful) {
this.factionFearful = factionFearful;
}
public HashSet<String> getFactionAmicable() {
return factionAmicable;
}
public void setFactionAmicable(HashSet<String> factionAmicable) {
this.factionAmicable = factionAmicable;
}
public HashSet<String> getFactionNeutral() {
return factionNeutral;
}
public void setFactionNeutral(HashSet<String> factionNeutral) {
this.factionNeutral = factionNeutral;
}
public HashSet<String> getFactionHostile() {
return factionHostile;
}
public void setFactionHostile(HashSet<String> 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);
}
}

View File

@@ -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;
}
}

View File

@@ -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<Faction> getAssignedFactions();
void clearFactionAssigning();
}

View File

@@ -1,5 +1,6 @@
package com.Torvald.Terrarum.Actors; package com.Torvald.Terrarum.Actors;
import com.Torvald.Terrarum.Actors.Faction.Faction;
import com.Torvald.Terrarum.GameControl.EnumKeyFunc; import com.Torvald.Terrarum.GameControl.EnumKeyFunc;
import com.Torvald.Terrarum.GameControl.KeyMap; import com.Torvald.Terrarum.GameControl.KeyMap;
import com.Torvald.Terrarum.Terrarum; import com.Torvald.Terrarum.Terrarum;
@@ -12,11 +13,12 @@ import org.lwjgl.input.Controllers;
import org.newdawn.slick.*; import org.newdawn.slick.*;
import java.io.Serializable; import java.io.Serializable;
import java.util.HashSet;
/** /**
* Created by minjaesong on 15-12-31. * 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; @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 float AXIS_POSMAX = 1.0f;
private final int GAMEPAD_JUMP = 5; private final int GAMEPAD_JUMP = 5;
private HashSet<Faction> factionSet = new HashSet<>();
/** /**
* Creates new Player instance with empty elements (sprites, actorvalue, etc.). <br /> * Creates new Player instance with empty elements (sprites, actorvalue, etc.). <br />
* *
@@ -111,10 +115,8 @@ public class Player extends ActorWithBody implements Controllable, Pocketed, Ser
); );
// Heading flag // Heading flag
if (left) if (left) walkHeading = LEFT;
walkHeading = LEFT; else walkHeading = RIGHT;
else
walkHeading = RIGHT;
} }
} }
@@ -512,4 +514,23 @@ public class Player extends ActorWithBody implements Controllable, Pocketed, Ser
return spriteGlow; return spriteGlow;
} }
@Override
public void assignFaction(Faction f) {
factionSet.add(f);
}
@Override
public void unassignFaction(Faction f) {
factionSet.remove(f);
}
@Override
public HashSet<Faction> getAssignedFactions() {
return factionSet;
}
@Override
public void clearFactionAssigning() {
factionSet.clear();
}
} }

View File

@@ -1,22 +1,48 @@
package com.Torvald.Terrarum.Actors; package com.Torvald.Terrarum.Actors;
import com.Torvald.Terrarum.Actors.Faction.Faction;
import com.Torvald.Terrarum.GameItem.InventoryItem; import com.Torvald.Terrarum.GameItem.InventoryItem;
import org.newdawn.slick.GameContainer; import org.newdawn.slick.GameContainer;
import java.util.HashSet;
/** /**
* Created by minjaesong on 16-01-31. * 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 InventoryItem itemData;
// private ActorAI ai; // private ActorAI ai;
private ActorInventory inventory; private ActorInventory inventory;
private HashSet<Faction> factionSet = new HashSet<>();
@Override @Override
public void attachAI() { public void attachAI() {
} }
@Override
public void assignFaction(Faction f) {
factionSet.add(f);
}
@Override
public void unassignFaction(Faction f) {
factionSet.remove(f);
}
@Override
public HashSet<Faction> getAssignedFactions() {
return factionSet;
}
@Override
public void clearFactionAssigning() {
factionSet.clear();
}
@Override @Override
public void attachItemData() { public void attachItemData() {
itemData = new InventoryItem() { itemData = new InventoryItem() {

View File

@@ -27,6 +27,7 @@ public class CommandDict {
dict.put("teleport", new TeleportPlayer()); dict.put("teleport", new TeleportPlayer());
dict.put("cat", new CatStdout()); dict.put("cat", new CatStdout());
dict.put("exportav", new ExportAV()); dict.put("exportav", new ExportAV());
dict.put("gsontest", new GsonTest());
} }
public static ConsoleCommand getCommand(String commandName) { public static ConsoleCommand getCommand(String commandName) {

View File

@@ -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");
}
}

View File

@@ -68,7 +68,7 @@ public class MapCamera {
private static final byte ICE_MAGICAL = 30; private static final byte ICE_MAGICAL = 30;
private static Byte[] TILES_CONNECT_SELF = { private static Byte[] TILES_CONNECT_SELF = {
COPPER COPPER
, IRON , IRON
, GOLD , GOLD
, SILVER , SILVER
@@ -78,7 +78,7 @@ public class MapCamera {
}; };
private static Byte[] TILES_DARKEN_AIR = { private static Byte[] TILES_DARKEN_AIR = {
STONE STONE
, DIRT , DIRT
, GRASS , GRASS
, SAND , SAND
@@ -97,8 +97,10 @@ public class MapCamera {
* i.e. red hues get lost if you dive into the water * i.e. red hues get lost if you dive into the water
*/ */
private static Byte[] TILES_BLEND_MUL = { private static Byte[] TILES_BLEND_MUL = {
(byte)224, (byte)225, (byte)226, (byte)227, (byte)228, (byte)229, (byte)230, (byte)231 (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)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
}; };
/** /**

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

217
work_files/hut_design.tmx Normal file
View File

@@ -0,0 +1,217 @@
<?xml version="1.0" encoding="UTF-8"?>
<map version="1.0" orientation="orthogonal" renderorder="right-down" width="100" height="100" tilewidth="16" tileheight="16" nextobjectid="1">
<tileset firstgid="1" name="TerrarumWall" tilewidth="16" tileheight="16" tilecount="256" columns="16">
<image source="../res/graphics/terrain/wall.png" width="256" height="256"/>
</tileset>
<tileset firstgid="257" name="TerrarumTerrain" tilewidth="16" tileheight="16" tilecount="4096" columns="16">
<image source="../res/graphics/terrain/terrainplusplus.png" width="256" height="4096"/>
</tileset>
<layer name="Wall" width="100" height="100">
<data encoding="csv">
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,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
</data>
</layer>
<layer name="Terrain" width="100" height="100">
<data encoding="csv">
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,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
</data>
</layer>
</map>