@@ -0,0 +1,2 @@ | |||
Processing 3 version is just basic text input in command line style | |||
p5.js version has some working commands that make the webbrowser do things, also play animations |
@@ -0,0 +1,747 @@ | |||
var busy = true; | |||
var seqIntro_b = true; | |||
if (location.search.split('intro=')[1] == 'false'){ | |||
busy = false; | |||
seqIntro_b = false; | |||
} | |||
var seqDance_b = false; | |||
var seqFire_b = false; | |||
var seqOutside_b = false; | |||
var seqMaria_b = false; | |||
var seqSkip_b = false; | |||
var seqGenome_b = false; | |||
var seqConstructivism_b = false; | |||
var pfc = 0; //save framecount here to get proper delta framecount in sequence | |||
var npfc = 0; //^ again for nesting shit | |||
var minc = 0; //movie increment - how often a console animation is played before it breaks. handled in sequences function | |||
function loadAnimationTexts(){ | |||
danceText = loadStrings('console_animations/dance.txt'); | |||
fireText = loadStrings('console_animations/fire.txt'); | |||
} | |||
function seqConstructivism(){ | |||
var cframe = frameCount - pfc; | |||
if (cframe == 1) commandLine.pushLineString("Like me on Facebook!"); | |||
if (cframe == 20){ | |||
commandLine.pushLineString(""); | |||
PopupCenter('https://www.facebook.com/constructivism2.0/', 'Constructivism 2.0', screen.width, screen.height); | |||
busy = false; | |||
seqConstructivism_b = false; | |||
} | |||
} | |||
function seqGenome(){ | |||
var cframe = frameCount - pfc; | |||
if (cframe == 1) commandLine.pushLineString("genome"); | |||
if (cframe == 10) commandLine.pushLineString("Description:"); | |||
if (cframe == 15){ | |||
commandLine.pushLineString("/ˈdʒiːnəʊm/"); | |||
commandLine.pushLineString("noun - Biology"); | |||
commandLine.pushLineString("noun: genome; plural noun: genomes"); | |||
} | |||
if (cframe == 25) commandLine.pushLineString("- the haploid set of chromosomes in a gamete or microorganism, or in each cell of a multicellular organism."); | |||
if (cframe == 25) commandLine.pushLineString("- the complete set of genes or genetic material present in a cell or organism."); | |||
if (cframe == 40) commandLine.pushLineString(""); | |||
if (cframe == 40) commandLine.pushLineString("This will download the genetic code / genome of one Homo Sapiens (human)"); | |||
if (cframe == 40) commandLine.pushLineString("Mirrored from Source, packed as .zip-file: https://www.ncbi.nlm.nih.gov/guide/howto/dwn-genome/"); | |||
if (cframe == 40) commandLine.pushLineString("Neither including assembled chromosome sequences nor archived files."); | |||
if (cframe == 40) commandLine.pushLineString(""); | |||
if (cframe == 65) commandLine.pushLineString("I recommend finding the right structure for this set of data to implement it"); | |||
if (cframe == 65) commandLine.pushLineString("into TensorFlow or similar machine-learning software in order to find out about your species,"); | |||
if (cframe == 65) commandLine.pushLineString("to push enlightenment further."); | |||
if (cframe == 65) commandLine.pushLineString("Potentially you will first have to generate more data like this, so this would be only an example."); | |||
if (cframe == 145) commandLine.pushLineString(""); | |||
if (cframe == 155) commandLine.pushLineString("Read the included README-file first."); | |||
if (cframe == 155) commandLine.pushLineString(""); | |||
if (cframe == 155) commandLine.pushLineString("Starting download in 5..."); | |||
if (cframe == 185) commandLine.changeLineString("Starting download in 4..."); | |||
if (cframe == 215) commandLine.changeLineString("Starting download in 3..."); | |||
if (cframe == 245) commandLine.changeLineString("Starting download in 2..."); | |||
if (cframe == 275) commandLine.changeLineString("Starting download in 1..."); | |||
if (cframe == 280){ | |||
commandLine.changeLineString("Initializing download of the human genome..."); | |||
commandLine.pushLineString(""); | |||
PopupCenter("ftp://ftp.ncbi.nih.gov/genomes/H_sapiens/", "ftp://ftp.ncbi.nih.gov/genomes/", window.width, window.height); | |||
window.open("https://drive.google.com/a/hbksaar.de/uc?export=download&confirm=LHNV&id=0B6B3OnIFgX8pTktKZ05XdGNFYzg"); | |||
busy = false; | |||
seqGenome_b = false; | |||
} | |||
} | |||
function seqIntro(){ | |||
var cframe = frameCount - pfc; | |||
if (cframe == 1) commandLine.pushLineString("tests.openface_api_tests.test_pipeline ..."); | |||
if (cframe == 2) commandLine.changeLineString("tests.openface_api_tests.test_pipeline ... FAIL"); | |||
if (cframe == 3) commandLine.pushLineString("tests.openface_batch_represent_tests.test_batch_represent ..."); | |||
if (cframe == 4) commandLine.changeLineString("tests.openface_batch_represent_tests.test_batch_represent ... FAIL"); | |||
if (cframe == 5) commandLine.pushLineString("tests.openface_demo_tests.test_compare_demo ..."); | |||
if (cframe == 6) commandLine.changeLineString("tests.openface_demo_tests.test_compare_demo ... FAIL"); | |||
if (cframe == 7) commandLine.pushLineString("tests.openface_demo_tests.test_classification_demo_pretrained ..."); | |||
if (cframe == 8) commandLine.changeLineString("tests.openface_demo_tests.test_classification_demo_pretrained ... FAIL"); | |||
if (cframe == 9) commandLine.pushLineString("tests.openface_demo_tests.test_classification_demo_pretrained_multi ..."); | |||
if (cframe == 10) commandLine.changeLineString("tests.openface_demo_tests.test_classification_demo_pretrained_multi ... FAIL"); | |||
if (cframe == 11) commandLine.pushLineString("tests.openface_demo_tests.test_classification_demo_training ..."); | |||
if (cframe == 12) commandLine.changeLineString("tests.openface_demo_tests.test_classification_demo_training ... FAIL"); | |||
if (cframe == 13) commandLine.pushLineString("tests.openface_neural_net_training_tests.test_dnn_training ..."); | |||
if (cframe == 14) commandLine.changeLineString("tests.openface_neural_net_training_tests.test_dnn_training ... FAIL"); | |||
if (cframe == 15) commandLine.pushLineString("tests.openface_neural_net_training_tests.test_dnn_training ..."); | |||
if (cframe == 16) { commandLine.pushLineStrings([ | |||
" ", | |||
"======================================================================", | |||
"FAIL: tests.openface_api_tests.test_pipeline", | |||
"----------------------------------------------------------------------", | |||
"Traceback (most recent call last):", | |||
" File \"/iris/python2.7/dist-packages/nose/case.py\", line 197, in runTest", | |||
" self.test(*self.arg)", | |||
" File \"/iris/openface/tests/openface_api_tests.py\", line 55, in test_pipeline", | |||
" assert bb.left() == 341", | |||
"AssertionError" | |||
]); | |||
} | |||
if (cframe == 17) { commandLine.pushLineStrings([ | |||
" ", | |||
"======================================================================", | |||
"FAIL: tests.openface_batch_represent_tests.test_batch_represent", | |||
"----------------------------------------------------------------------", | |||
"Traceback (most recent call last):", | |||
" File \"/iris/python2.7/dist-packages/nose/case.py\", line 197, in runTest", | |||
" self.test(*self.arg)", | |||
" File \"/iris/openface/tests/openface_batch_represent_tests.py\", line 68, in test_batch_represent", | |||
" assert p.returncode == 0", | |||
"AssertionError:" | |||
]); | |||
} | |||
if (cframe == 18) { commandLine.pushLineStrings([ | |||
"-------------------- >> begin captured stdout << ---------------------", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0012.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0012.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0005.jpg ===" | |||
]); | |||
} | |||
if (cframe == 25) { commandLine.pushLineStrings([ | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0004.jpg ===", | |||
" ", | |||
" ", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0012.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0006.jpg ===" | |||
]); | |||
} | |||
if (cframe == 30) { commandLine.pushLineStrings([ | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0012.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0003.jpg ===", | |||
" ", | |||
" ", | |||
" ", | |||
"/iris/torch/install/bin/luajit: /iris/torch/install/share/lua/5.1/trepl/init.lua:389: module 'csvigo' not found:No LuaRocks module found for csvigo", | |||
" no field package.preload['csvigo']", | |||
" no file '/iris/.luarocks/share/lua/5.1/csvigo.lua'", | |||
" no file '/iris/.luarocks/share/lua/5.1/csvigo/init.lua'", | |||
" no file '/iris/torch/install/share/lua/5.1/csvigo.lua'", | |||
" no file '/iris/torch/install/share/lua/5.1/csvigo/init.lua'", | |||
" no file './csvigo.lua'", | |||
" no file '/iris/torch/install/share/luajit-2.1.0-beta1/csvigo.lua'", | |||
" no file '/iris/share/lua/5.1/csvigo.lua'", | |||
" no file '/iris/share/lua/5.1/csvigo/init.lua'", | |||
" no file '/iris/.luarocks/lib/lua/5.1/csvigo.so'", | |||
" no file '/iris/torch/install/lib/lua/5.1/csvigo.so'", | |||
" no file '/iris/torch/install/lib/csvigo.so'", | |||
" no file './csvigo.so'", | |||
" no file '/iris/lua/5.1/csvigo.so'", | |||
" no file '/iris/lua/5.1/loadall.so'", | |||
"stack traceback:", | |||
" [C]: in function 'error'", | |||
" /iris/torch/install/share/lua/5.1/trepl/init.lua:389: in function 'require'", | |||
" ./batch-represent/main.lua:9: in main chunk", | |||
" [C]: in function 'dofile'", | |||
" .../bin/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk", | |||
" [C]: at 0x004065d0", | |||
" ", | |||
" ", | |||
"--------------------- >> end captured stdout << ----------------------" | |||
]); | |||
} | |||
if (cframe == 35) { commandLine.pushLineStrings([ | |||
" ", | |||
"======================================================================", | |||
"FAIL: tests.openface_demo_tests.test_compare_demo", | |||
"----------------------------------------------------------------------", | |||
"Traceback (most recent call last):", | |||
" File \"/iris/python2.7/dist-packages/nose/case.py\", line 197, in runTest", | |||
" self.test(*self.arg)", | |||
" File \"/iris/openface/tests/openface_demo_tests.py\", line 38, in test_compare_demo", | |||
" assert \"0.763\" in out", | |||
"AssertionError:", | |||
"-------------------- >> begin captured stdout << ---------------------", | |||
"Comparing /iris/openface/images/examples/lennon-1.jpg with /iris/openface/images/examples/lennon-2.jpg.", | |||
" + Squared l2 distance between representations: 0.782", | |||
" ", | |||
" ", | |||
" ", | |||
"--------------------- >> end captured stdout << ----------------------" | |||
]); | |||
} | |||
if (cframe == 37) { commandLine.pushLineStrings([ | |||
" ", | |||
"======================================================================", | |||
"FAIL: tests.openface_demo_tests.test_classification_demo_pretrained", | |||
"----------------------------------------------------------------------", | |||
"Traceback (most recent call last):", | |||
" File \"/iris/python2.7/dist-packages/nose/case.py\", line 197, in runTest", | |||
" self.test(*self.arg)", | |||
" File \"/iris/openface/tests/openface_demo_tests.py\", line 51, in test_classification_demo_pretrained", | |||
" assert \"Predict SteveCarell with 0.97 confidence.\" in out", | |||
"AssertionError:", | |||
"-------------------- >> begin captured stdout << ---------------------", | |||
" ", | |||
"=== /iris/openface/images/examples/carell.jpg ===", | |||
"Predict SteveCarell with 0.99 confidence.", | |||
" ", | |||
"/iris/python2.7/dist-packages/sklearn/lda.py:4: DeprecationWarning: lda.LDA has been moved to discriminant_analysis.LinearDiscriminantAnalysis in 0.17 and will be removed in 0.19", | |||
" \"in 0.17 and will be removed in 0.19\", DeprecationWarning)", | |||
" ", | |||
" ", | |||
"--------------------- >> end captured stdout << ----------------------" | |||
]); | |||
} | |||
if (cframe == 39) { commandLine.pushLineStrings([ | |||
" ", | |||
"======================================================================", | |||
"FAIL: tests.openface_demo_tests.test_classification_demo_pretrained_multi", | |||
"----------------------------------------------------------------------", | |||
"Traceback (most recent call last):", | |||
" File \"/iris/python2.7/dist-packages/nose/case.py\", line 197, in runTest", | |||
" self.test(*self.arg)", | |||
" File \"/iris/openface/tests/openface_demo_tests.py\", line 64, in test_classification_demo_pretrained_multi", | |||
" assert \"Predict EvaLongoria @ x=91 with 0.99 confidence.\" in out", | |||
"AssertionError:", | |||
"-------------------- >> begin captured stdout << ---------------------", | |||
" ", | |||
"=== /iris/openface/images/examples/longoria-cooper.jpg ===", | |||
"List of faces in image from left to right", | |||
"Predict EvaLongoria @ x=92 with 0.99 confidence.", | |||
"Predict BradleyCooper @ x=192 with 0.99 confidence.", | |||
" ", | |||
"/iris/python2.7/dist-packages/sklearn/lda.py:4: DeprecationWarning: lda.LDA has been moved to discriminant_analysis.LinearDiscriminantAnalysis in 0.17 and will be removed in 0.19", | |||
" \"in 0.17 and will be removed in 0.19\", DeprecationWarning)", | |||
" ", | |||
" ", | |||
"--------------------- >> end captured stdout << ----------------------" | |||
]); | |||
} | |||
if (cframe == 44) { commandLine.pushLineStrings([ | |||
"======================================================================", | |||
"FAIL: tests.openface_demo_tests.test_classification_demo_training", | |||
"----------------------------------------------------------------------", | |||
"Traceback (most recent call last):", | |||
" File \"/iris/python2.7/dist-packages/nose/case.py\", line 197, in runTest", | |||
" self.test(*self.arg)", | |||
" File \"/iris/openface/tests/openface_demo_tests.py\", line 98, in test_classification_demo_training", | |||
" assert p.returncode == 0", | |||
"AssertionError:", | |||
"-------------------- >> begin captured stdout << ---------------------", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0012.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0008.jpg ===" | |||
]); | |||
} | |||
if (cframe == 45) { commandLine.pushLineStrings([ | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0012.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0004.jpg ===", | |||
" ", | |||
" ", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0012.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0002.jpg ===" | |||
]); | |||
} | |||
if (cframe == 46) { commandLine.pushLineStrings([ | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0012.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0001.jpg ===", | |||
" ", | |||
" " | |||
]); | |||
} | |||
if (cframe == 47) { commandLine.pushLineStrings([ | |||
"/iris/torch/install/bin/luajit: /iris/torch/install/share/lua/5.1/trepl/init.lua:389: module 'csvigo' not found:No LuaRocks module found for csvigo", | |||
" no field package.preload['csvigo']", | |||
" no file '/iris/.luarocks/share/lua/5.1/csvigo.lua'", | |||
" no file '/iris/.luarocks/share/lua/5.1/csvigo/init.lua'", | |||
" no file '/iris/torch/install/share/lua/5.1/csvigo.lua'", | |||
" no file '/iris/torch/install/share/lua/5.1/csvigo/init.lua'", | |||
" no file './csvigo.lua'", | |||
" no file '/iris/torch/install/share/luajit-2.1.0-beta1/csvigo.lua'", | |||
" no file '/iris/share/lua/5.1/csvigo.lua'", | |||
" no file '/iris/share/lua/5.1/csvigo/init.lua'", | |||
" no file '/iris/.luarocks/lib/lua/5.1/csvigo.so'", | |||
" no file '/iris/torch/install/lib/lua/5.1/csvigo.so'", | |||
" no file '/iris/torch/install/lib/csvigo.so'", | |||
" no file './csvigo.so'", | |||
" no file '/iris/lua/5.1/csvigo.so'", | |||
" no file '/iris/lua/5.1/loadall.so'", | |||
"stack traceback:", | |||
" [C]: in function 'error'", | |||
" /iris/torch/install/share/lua/5.1/trepl/init.lua:389: in function 'require'", | |||
" ./batch-represent/main.lua:9: in main chunk", | |||
" [C]: in function 'dofile'", | |||
" .../bin/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk", | |||
" [C]: at 0x004065d0", | |||
" ", | |||
" ", | |||
"--------------------- >> end captured stdout << ----------------------", | |||
" " | |||
]); | |||
} | |||
if (cframe == 50) { commandLine.pushLineStrings([ | |||
"======================================================================", | |||
"FAIL: tests.openface_neural_net_training_tests.test_dnn_training", | |||
"----------------------------------------------------------------------", | |||
"Traceback (most recent call last):", | |||
" File \"/iris/python2.7/dist-packages/nose/case.py\", line 197, in runTest", | |||
" self.test(*self.arg)", | |||
" File \"/iris/openface/tests/openface_neural_net_training_tests.py\", line 76, in test_dnn_training", | |||
" assert p.returncode == 0", | |||
"AssertionError:", | |||
"-------------------- >> begin captured stdout << ---------------------", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0012.jpg ===" | |||
]); | |||
} | |||
if (cframe == 54) { commandLine.pushLineStrings([ | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0012.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0009.jpg ===", | |||
" ", | |||
" ", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0012.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0004.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0012.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0006.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0011.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0009.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0008.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Ann_Veneman/Ann_Veneman_0003.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Adrien_Brody/Adrien_Brody_0001.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0005.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0007.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0002.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0010.jpg ===", | |||
"=== /iris/openface/data/lfw-subset/raw/Anna_Kournikova/Anna_Kournikova_0006.jpg ===" | |||
]); | |||
} | |||
if (cframe == 55) { commandLine.pushLineStrings([ | |||
" cudnn : false", | |||
" testBatchSize : 800", | |||
" embSize : 128", | |||
" cache : \"/tmp/OpenFaceTrainingTest-Net-8TbarF\"", | |||
" cudnn_bench : false", | |||
" cuda : false", | |||
" modelDef : \"../models/openface/nn4.def.lua\"", | |||
" data : \"/tmp/OpenFaceTrainingTest-Img-t6cTJ7/aligned\"", | |||
" epochSize : 1", | |||
" nDonkeys : -1", | |||
" save : \"/tmp/OpenFaceTrainingTest-Net-8TbarF/1\"", | |||
" nGPU : 1", | |||
" device : 1", | |||
" epochNumber : 1", | |||
" manualSeed : 2", | |||
" testing : false", | |||
" alpha : 0.2", | |||
" nEpochs : 10", | |||
" peoplePerBatch : 3", | |||
" imagesPerPerson : 10", | |||
" lfwDir : \"../data/lfw/aligned\"", | |||
" imgDim : 96", | |||
" retrain : \"none\"", | |||
"}", | |||
]); | |||
} | |||
if (cframe == 70) commandLine.pushLineString("Saving everything to: /tmp/OpenFaceTrainingTest-Net-8TbarF/1"); | |||
if (cframe > 80){ | |||
commandLine.pushLineString(""); | |||
commandLine.pushLineString("Welcome to /)(&§§?=!?°§/&$5)."); | |||
commandLine.pushLineString("Type a command to begin with..."); | |||
commandLine.pushLineString("Available commands are: [info] [maria] [gerkzeuk] [laserharp] [electronic art] [street] [dance] [t] [genome] [fire] [blog] [constructivism2] and [skip]"); | |||
commandLine.pushLineString(""); | |||
commandLine.pushLineString(""); | |||
busy = false; | |||
seqIntro_b = false; | |||
//commandLine.pushLineString(""); | |||
//pfc = frameCount; | |||
//busy = true; | |||
//seqOutside_b = true; | |||
} | |||
} | |||
function printInfo(){ | |||
commandLine.pushLineString("This website works similar to a command-line interface."); | |||
commandLine.pushLineString("Available commands are:"); | |||
commandLine.pushLineString(""); | |||
commandLine.pushLineString("info"); | |||
commandLine.pushLineString("Gives the information you are reading right now"); | |||
commandLine.pushLineString(""); | |||
commandLine.pushLineString("gerkzeuk"); | |||
commandLine.pushLineString("Gives information about an automatic artist called \'gerkzeuk\' in a pop-up window"); | |||
commandLine.pushLineString(""); | |||
commandLine.pushLineString("laserharp"); | |||
commandLine.pushLineString("Gives information about an instrumental cage that works with lasers and ultrasonic sensors in a pop-up window"); | |||
commandLine.pushLineString(""); | |||
commandLine.pushLineString("skip"); | |||
commandLine.pushLineString("Closes the command-line and brings you to a website containing further information"); | |||
commandLine.pushLineString(""); | |||
commandLine.pushLineString("Further commands are available to run interactive and non-interactive animations:"); | |||
commandLine.pushLineString("street, dance, t, fire"); | |||
commandLine.pushLineString(""); | |||
commandLine.pushLineString("And there are more:"); | |||
commandLine.pushLineString("electronic art, blog, genome, constructivism2"); | |||
commandLine.pushLineString(""); | |||
} | |||
//Abusing multicultutral acceptance, shame, guilt, ethno-pluralism and constructivism to elaborate ethics of the new world order... Done | |||
var danceText; | |||
function seqDance(){ | |||
var cframe = frameCount - pfc; | |||
if (cframe == 0) commandLine.pushLineString("Analyzing users rational and emotional capabilities..."); | |||
if (cframe == 5) commandLine.changeLineString("Analyzing users rational and emotional capabilities... Done"); | |||
if (cframe == 8) commandLine.pushLineString("Analyzing users behaviours..."); | |||
if (cframe == 10) commandLine.pushLineString("Analyzing users behaviours... Done"); | |||
if (cframe == 15) commandLine.changeLineString("Offering practice in paradigm shifting."); | |||
if (cframe == 25) commandLine.pushLineString("Stimulating users ability to see and feel in 5..."); | |||
if (cframe == 37) commandLine.changeLineString("Stimulating users ability to see and feel in 4..."); | |||
if (cframe == 49) commandLine.changeLineString("Stimulating users ability to see and feel in 3..."); | |||
if (cframe == 61) commandLine.changeLineString("Stimulating users ability to see and feel in 2..."); | |||
if (cframe == 73) commandLine.changeLineString("Stimulating users ability to see and feel in 1..."); | |||
if (cframe == 78) commandLine.pushLineString(""); | |||
if (cframe == 85) commandLine.pushLineString("---*---------------") | |||
if (cframe == 87) commandLine.changeLineString("------*------------") | |||
if (cframe == 89) commandLine.changeLineString("---------*---------") | |||
if (cframe == 71) commandLine.changeLineString("-------------*-----") | |||
if (cframe == 73) commandLine.changeLineString("-----------------*-") | |||
if(cframe == 75) npfc = frameCount; | |||
if(cframe > 75){ | |||
var dframe = frameCount - npfc; | |||
if (dframe > 0 && dframe < danceText.length/60+1) { | |||
for(var i = 0; i < 60; i++) { | |||
commandLine.pushLineString(danceText[i+((dframe-1)*60)]); | |||
} | |||
} | |||
if (dframe == danceText.length/60+1){ | |||
npfc = frameCount; | |||
minc++; | |||
if(minc > 10){ | |||
minc = 0; | |||
busy = false; | |||
seqDance_b = false; | |||
} | |||
} | |||
} | |||
} | |||
var fireText; | |||
function seqFire(){ | |||
var cframe = frameCount - pfc; | |||
if (cframe == 0) commandLine.pushLineString("Testing users monitor..."); | |||
if (cframe == 5) commandLine.changeLineString("Testing users monitor... Done"); | |||
if (cframe == 8) commandLine.pushLineString("More than a million lights available."); | |||
if (cframe == 10) commandLine.pushLineString("Analyzing users behaviours..."); | |||
if (cframe == 15) commandLine.changeLineString("Analyzing users behaviours... Done."); | |||
if (cframe == 25) commandLine.pushLineString("Stimulating users rational functions with cognitive insight in 5..."); | |||
if (cframe == 37) commandLine.changeLineString("Stimulating users rational functions with cognitive insight in 4..."); | |||
if (cframe == 49) commandLine.changeLineString("Stimulating users rational functions with cognitive insight in 3..."); | |||
if (cframe == 61) commandLine.changeLineString("Stimulating users rational functions with cognitive insight in 2..."); | |||
if (cframe == 73) commandLine.changeLineString("Stimulating users rational functions with cognitive insight in 1..."); | |||
if (cframe == 85) commandLine.changeLineString("Stimulating users rational functions with cognitive insight."); | |||
if (cframe == 85) commandLine.pushLineString(" "); | |||
if (cframe == 87) commandLine.pushLineString("."); | |||
if (cframe == 100) commandLine.changeLineString(".."); | |||
if (cframe == 113) commandLine.changeLineString("..."); | |||
if (cframe == 120) commandLine.changeLineString("Cognitive insight not available."); | |||
if (cframe == 139) commandLine.pushLineString(""); | |||
if (cframe == 143) commandLine.pushLineString("Keep watching, animation will end eventually."); | |||
if (cframe == 167) commandLine.pushLineString("Initializing fire... *------------------"); | |||
if (cframe == 169) commandLine.changeLineString("Initializing fire... ---*---------------") | |||
if (cframe == 173) commandLine.changeLineString("Initializing fire... ------*------------") | |||
if (cframe == 177) commandLine.changeLineString("Initializing fire... ---------*---------") | |||
if (cframe == 181) commandLine.changeLineString("Initializing fire... -------------*-----") | |||
if (cframe == 185) commandLine.changeLineString("Initializing fire... -----------------*-") | |||
if (cframe == 186) npfc = frameCount; | |||
if (cframe > 186) { | |||
var dframe = frameCount - npfc; | |||
if (dframe > 0 && dframe < fireText.length/60+1) { | |||
for(var i = 0; i < 60; i++) { | |||
commandLine.pushLineString(fireText[i+((dframe-1)*60)]); | |||
} | |||
} | |||
if (dframe == fireText.length/60+1){ | |||
npfc = frameCount; | |||
minc++; | |||
if(minc > 3){ | |||
minc = 0; | |||
busy = false; | |||
seqFire_b = false; | |||
} | |||
} | |||
} | |||
} | |||
function seqOutside(){ | |||
var cframe = frameCount - pfc; | |||
if (cframe == 0) commandLine.pushLineString("Preparing user to go outside..."); | |||
if (cframe == 10) commandLine.pushLineString("Analyzing users behaviours..."); | |||
if (cframe == 15) commandLine.changeLineString("Analyzing users behaviours... Done."); | |||
if (cframe == 18) commandLine.pushLineString("Initiating direct contact to user..."); | |||
if (cframe == 23) commandLine.changeLineString("Initiating direct contact to user... Failed."); | |||
if (cframe == 28) commandLine.pushLineString("Loading non-interactive instructions..."); | |||
if (cframe == 35) commandLine.pushLineString ("---*---------------") | |||
if (cframe == 37) commandLine.changeLineString("------*------------") | |||
if (cframe == 39) commandLine.changeLineString("---------*---------") | |||
if (cframe == 41) commandLine.changeLineString("-------------*-----") | |||
if (cframe == 43) commandLine.changeLineString("-----------------*-") | |||
if (cframe == 45) commandLine.changeLineString("---------*---------") | |||
if (cframe == 47) commandLine.changeLineString("*------------------") | |||
if (cframe == 55){ | |||
commandLine.changeLineString(" ") | |||
commandLine.changeLineString("* How to move:") | |||
commandLine.pushLineString(" - Press W, A, S and D to walk") | |||
commandLine.pushLineString(" - Drag and Drop the mouse to look around") | |||
commandLine.pushLineString(" - Cross the street") | |||
} | |||
if (cframe == 57) commandLine.pushLineString(" ") | |||
if (cframe == 110) commandLine.pushLineString("Assuming user is capable of comprehending and navigating 3D space."); | |||
if (cframe == 120) commandLine.pushLineString("Starting boot sequence in 5..."); | |||
if (cframe == 132) commandLine.changeLineString("Starting boot sequence in 4...") | |||
if (cframe == 144) commandLine.changeLineString("Starting boot sequence in 3...") | |||
if (cframe == 156) commandLine.changeLineString("Starting boot sequence in 2...") | |||
if (cframe == 168) commandLine.changeLineString("Starting boot sequence in 1...") | |||
if (cframe == 180){ | |||
busy = false; | |||
seqOutside_b = false; | |||
commandLine.pushLineString("") | |||
PopupCenter("http://www.victorgiers.com/street/street.html", 'street', screen.width, screen.height); | |||
} | |||
} | |||
function seqMaria(){ | |||
var cframe = frameCount - pfc; | |||
if (cframe == 0) commandLine.pushLineString("Preparing user to meet Maria..."); | |||
if (cframe == 10) commandLine.pushLineString("Analyzing users behaviours..."); | |||
if (cframe == 15) commandLine.changeLineString("Analyzing users behaviours... Done."); | |||
if (cframe == 18) commandLine.pushLineString("Initiating direct contact to user..."); | |||
if (cframe == 23) commandLine.changeLineString("Initiating direct contact to user... Failed."); | |||
if (cframe == 28) commandLine.pushLineString("Loading non-interactive instructions..."); | |||
if (cframe == 35) commandLine.pushLineString ("---*---------------") | |||
if (cframe == 37) commandLine.changeLineString("------*------------") | |||
if (cframe == 39) commandLine.changeLineString("---------*---------") | |||
if (cframe == 41) commandLine.changeLineString("-------------*-----") | |||
if (cframe == 43) commandLine.changeLineString("-----------------*-") | |||
if (cframe == 45) commandLine.changeLineString("---------*---------") | |||
if (cframe == 47) commandLine.changeLineString("*------------------") | |||
if (cframe == 55){ | |||
commandLine.changeLineString(" ") | |||
commandLine.changeLineString("* How to move:") | |||
commandLine.pushLineString(" - Press W, A, S and D to walk") | |||
commandLine.pushLineString(" - Click anywhere to be able to look around") | |||
commandLine.pushLineString(" - Allow Pop-Up to listen to a beautiful song and watch the video if you want to") | |||
} | |||
if (cframe == 57) commandLine.pushLineString(" ") | |||
if (cframe == 110) commandLine.pushLineString("Assuming user is capable of comprehending and navigating 3D space."); | |||
if (cframe == 120) commandLine.pushLineString("Starting boot sequence in 5..."); | |||
if (cframe == 132) commandLine.changeLineString("Starting boot sequence in 4...") | |||
if (cframe == 144) commandLine.changeLineString("Starting boot sequence in 3...") | |||
if (cframe == 156) commandLine.changeLineString("Starting boot sequence in 2...") | |||
if (cframe == 168) commandLine.changeLineString("Starting boot sequence in 1...") | |||
if (cframe == 180){ | |||
busy = false; | |||
seqOutside_b = false; | |||
commandLine.pushLineString("") | |||
PopupCenter("http://www.victorgiers.com/Maria/Maria.html", 'Maria', screen.width, screen.height); | |||
} | |||
} | |||
function seqSkip(){ | |||
var cframe = frameCount - pfc; | |||
if (cframe == 0) commandLine.pushLineString("Redirecting to some homepage..."); | |||
if (cframe == 20){ | |||
busy = false; | |||
seqOutside_b = false; | |||
window.location.href = "http://www.victorgiers.com/main.php"; | |||
} | |||
} |
@@ -0,0 +1,278 @@ | |||
var commandLine; | |||
function setup() { | |||
createCanvas(window.innerWidth,window.innerHeight); | |||
textFont("Courier New"); | |||
textSize(14); | |||
frameRate(12); | |||
loadAnimationTexts(); | |||
commandLine = new CommandLine(); | |||
} | |||
function draw() { | |||
background(0); | |||
stroke(255); | |||
strokeWeight(0); | |||
fill(255); | |||
push(); | |||
translate(translateX, translateY); | |||
scale(scaleFactor); | |||
// image(fingers,0,0, gwidth, gheight); // draw the video frame to canvas | |||
pop(); | |||
if(busy) runSequence(); | |||
commandLine.show(); | |||
} | |||
function CommandLine(){ | |||
this.userInput = ""; | |||
this.presentedLines = Array(60).fill(""); | |||
this.getUserInput = function(code,c){ | |||
if(!busy){ | |||
if (code != 8 && code != 10 && code != 16 && code != 17 && code != 18 && code != 20) { | |||
this.userInput = this.userInput + c.toLowerCase(); | |||
} | |||
if (code == 8 && this.userInput.length > 0) { //backspace | |||
this.userInput = this.userInput.substr(0, this.userInput.length-1); | |||
} else if (code == 13) { //enter | |||
this.compareUserInput(this.userInput); | |||
this.userInput = ""; | |||
} | |||
} | |||
} | |||
this.pushLineStrings = function(bottomLines){ | |||
for(var i = 0; i < bottomLines.length; i ++){ | |||
this.presentedLines.splice(0, 0, bottomLines[i]); | |||
} | |||
} | |||
this.pushLineString = function(bottomLine) { | |||
for (var i = this.presentedLines.length-1; i > 0; i--) { | |||
this.presentedLines[i] = this.presentedLines[i-1]; | |||
} | |||
this.presentedLines[0] = bottomLine; | |||
} | |||
this.changeLineString = function(bottomLine) { | |||
this.presentedLines[0] = bottomLine; | |||
} | |||
this.getInputLine = function(){ | |||
if(!busy){ | |||
this.inputString = frameCount % 2 == 0 ? "guest@iris ~ $ " + this.userInput + "_" : "guest@iris ~ $ " + this.userInput; | |||
this.presentedLines[0] = this.inputString; | |||
} | |||
} | |||
this.show = function(){ | |||
console.log(this.presentedLines[0]); | |||
this.getInputLine(); | |||
for (var i = 0; i < this.presentedLines.length; i++) { | |||
text(this.presentedLines[i], 13, window.innerHeight-150-(i*13)); | |||
} | |||
} | |||
this.compareUserInput = function(userin){ | |||
userin=userin.trim() | |||
if(this.presentedLines[0].charAt(this.presentedLines[0].length-1) == '_'){ | |||
this.presentedLines[0] = this.presentedLines[0].substring (0, this.presentedLines[0].length-1); | |||
} | |||
if (userin === "gerkzeuk"){ | |||
this.pushLineString(""); | |||
PopupCenter('gerkzeuk/', 'gerkzeuk', 1024, screen.height); | |||
} else if (userin === "info"){ | |||
printInfo(); | |||
} else if (userin === "laserharp" || userin === "laserharfe"){ | |||
this.pushLineString(""); | |||
PopupCenter('laser/', 'laserharfe', screen.width, screen.height); | |||
} else if (userin === "dance"){ | |||
this.pushLineString(""); | |||
pfc = frameCount; | |||
busy = true; | |||
seqDance_b = true; | |||
} else if (userin === "fire"){ | |||
this.pushLineString(""); | |||
pfc = frameCount; | |||
busy = true; | |||
seqFire_b = true; | |||
} else if (userin === "t"){ | |||
window.location.href = "t/index.html" | |||
} else if (userin === "electronic art"){ | |||
this.pushLineString(""); | |||
PopupCenter("https://www.youtube.com/watch?v=3-zyXnc2Xls", "Walter Giers - Electronic Art", screen.width, screen.height); | |||
} else if (userin === "genome"){ | |||
pfc = frameCount; | |||
busy = true; | |||
seqGenome_b = true; | |||
} else if (userin === "blog"){ | |||
this.pushLineString(""); | |||
PopupCenter('http://giers.wordpress.com/', 'Neugier & Ästhetik', screen.width, screen.height); | |||
} else if (userin === "constructivism2"){ | |||
pfc = frameCount; | |||
busy = true; | |||
seqConstructivism_b = true; | |||
} else if (userin === "go outside" || userin === "outside" || userin === "go" || userin === "street"){ | |||
this.pushLineString(""); | |||
pfc = frameCount; | |||
busy = true; | |||
seqOutside_b = true; | |||
} else if (userin === "maria"){ | |||
this.pushLineString(""); | |||
pfc = frameCount; | |||
busy = true; | |||
seqMaria_b = true; | |||
} else if (userin === "skip"){ | |||
this.pushLineString(""); | |||
pfc = frameCount; | |||
busy = true; | |||
seqSkip_b = true; | |||
} else if (userin === ""){ | |||
this.pushLineString(this.inputString); | |||
} else { | |||
this.pushLineString("Unavailale or forbidden command."); | |||
this.pushLineString("Available commands are: [info] [maria] [gerkzeuk] [laserharp] [electronic art] [street] [dance] [t] [genome] [fire] [blog] [constructivism2] and [skip]"); | |||
this.pushLineString(""); | |||
} | |||
} | |||
} | |||
function PopupCenter(url, title, w, h) { | |||
// Fixes dual-screen position Most browsers Firefox | |||
var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left; | |||
var dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top; | |||
var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width; | |||
var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; | |||
var left = ((width / 2) - (w / 2)) + dualScreenLeft; | |||
var top = ((height / 2) - (h / 2)) + dualScreenTop; | |||
var newWindow = window.open(url,title,'scrollbars=yes,width=' + w + ',height=' + h + ',top=' + top + ', left=' + left + ',resizable,scrollbars,toolbar,menubar'); | |||
// Puts focus on the newWindow | |||
if (window.focus) { | |||
newWindow.focus(); | |||
} | |||
} | |||
function runSequence(){ | |||
if(busy){ | |||
if (seqIntro_b){ | |||
seqIntro(); | |||
} else if(seqDance_b){ | |||
seqDance(); | |||
} else if(seqFire_b){ | |||
seqFire(); | |||
} else if(seqOutside_b){ | |||
seqOutside(); | |||
} else if(seqMaria_b){ | |||
seqMaria(); | |||
} else if(seqSkip_b){ | |||
seqSkip(); | |||
} else if(seqGenome_b){ | |||
seqGenome(); | |||
} else if(seqConstructivism_b){ | |||
seqConstructivism(); | |||
} | |||
} | |||
} | |||
var gwidth = window.innerWidth; | |||
var gheight = window.innerHeight; | |||
var zoomedState = false; | |||
var scaleFactor = 1.0; | |||
var translateX = 0.0; | |||
var translateY = 0.0; | |||
function reset() { | |||
scaleFactor = 1; | |||
translateX = 0.0; | |||
translateY = 0.0; | |||
} | |||
function collisionDetection() { | |||
while (translateX > 0.0) translateX--; | |||
while (translateY*scaleFactor > 0.0) translateY--; | |||
while (translateX+gwidth*scaleFactor < gwidth) translateX++; | |||
while (translateY+gheight*scaleFactor < gheight) translateY++; | |||
} | |||
function zoom(delta) { | |||
translateX -= mouseX; | |||
translateY -= mouseY; | |||
scaleFactor *= delta; | |||
translateX *= delta; | |||
translateY *= delta; | |||
translateX += mouseX; | |||
translateY += mouseY; | |||
collisionDetection(); | |||
} | |||
function keyPressed(){ | |||
commandLine.getUserInput(keyCode, key); | |||
return false; | |||
} | |||
function mousePressed() { | |||
if (mouseButton == CENTER) { | |||
if (!zoomedState && scaleFactor == 1.0) { | |||
zoom(3); | |||
} else { | |||
reset(); | |||
} | |||
zoomedState = !zoomedState; | |||
} | |||
} | |||
function mouseDragged() { | |||
if (zoomedState) { | |||
translateX += (mouseX - pmouseX)/3; //this /3 shit is shit, drag n drop moves too fast, why | |||
translateY += (mouseY - pmouseY)/3; | |||
collisionDetection(); | |||
} | |||
} | |||
function mouseWheel(event) { | |||
if(event.deltaY > 0){ | |||
zoom(1.0/1.05); | |||
} else if(event.deltaY < 0){ | |||
zoom(1.05); | |||
} else { | |||
zoom(1.0); | |||
} | |||
zoomedState = true; | |||
if (scaleFactor <= 1.0 && event.deltaY > 0){ | |||
reset(); | |||
} | |||
} | |||
//on backspace down + optional callback | |||
function onBackspace(e, callback){ | |||
var key; | |||
if(typeof e.keyIdentifier !== "undefined"){ | |||
key = e.keyIdentifier; | |||
}else if(typeof e.keyCode !== "undefined"){ | |||
key = e.keyCode; | |||
} | |||
if (key === 'U+0008' || | |||
key === 'Backspace' || | |||
key === 8) { | |||
if(typeof callback === "function"){ | |||
callback(); | |||
} | |||
return true; | |||
} | |||
return false; | |||
} | |||
//event listener | |||
window.addEventListener('keydown', function (e) { | |||
switch(e.target.tagName.toLowerCase()){ | |||
case "input": | |||
case "textarea": | |||
break; | |||
case "body": | |||
onBackspace(e,function(){ | |||
e.preventDefault(); | |||
}); | |||
break; | |||
} | |||
}, true); |
@@ -0,0 +1,158 @@ | |||
<!DOCTYPE html> | |||
<!-- | |||
sssssssssssssssssssssssssssysysssssyyyyyyyyyyyyyyyyyyyhyyyyyyyyyyyyyyyyyyyyyyyssssoosoys+yo/+/+/--.....:++++oosssoosoooooooooooooo+++++++++ooo+++++oooooooo+ooo++/------://::///--o//yoooooooooo++++sssssssoo++++++osssssssooosooosoossoo++oo+++++++++oooooo+++/+++ooooooooooooooooooooo | |||
sssssssssssssssssssssssssyyyyyyyyyyyyyyyysyyssysyyyyyyyyyyyhyyyyyyyysoo+////+ooossssyyhs+yoossso///++////////osss+:--------.....--..................------:+oss+::::::::://::::///++:ys++++++ooooooosssssssoo++ooooosyysssssoossssssssssooooososooooooooosso+++++++ossssssssssssssssssss | |||
sssssssssssssssssssssssssossyyssssyyyyyyyyyyyyysyyyyyyyyyyhhhyyyyyyysssssyyyyyhhyhhhhhhs+yo+yhyyo+++++////::://::------------........................---------::---::::::///+ssyo/++/syyysssssoooo++sssssssssssssssssssssoooooooooossssssssossosssoossssssso+++++++sssssssssssssssssssss | |||
ssssssysssssssssssssssssooosyyssssssyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyssoooooo+++osyyyyyyhyshyoyhyso++++ooooooo+oooooooosssosssssssssssoooooooooooo+ooo+++++///++++++//////////+ooy+/ss+sssosssssssssosssssooossssyyyysssssssoosooooosssssssoooosoooooossssssso+++++++sssssssssssssssssssss | |||
sssssssssssssssssssssssooossyysoooosyyyyyyyyyyyyyyyyyyyyhyyyhhhyyyyso/:::::/++/+yyyyyyhhhsysyyyssooooooosssssssssssssyyyyyyyyyyyyyyysssssssyyysssssssssoosoooooooooo++///+++++os+ssssysooooo+//::-::ssssssssssssssssssssssssssssssssssssooooosoo++oossssssso+++++++sssssssssssssssssssss | |||
ysssssssssssssssssssssoosssyysssysssyyysyyyyyhyyyyyyyyyyyhhhyyyyyyyso/::::://+/+syyyyyssyo/ooo+++++++oosoosssssyyysssyyyyyyyyyyssssssssssossssssssssssssssssssooooooo+++///++ooooo/syyssooo+/::-----ssssssssoosssyysssssyyysssyyyysssssoooooosoooooossssssso+++++++ossssssssssssssssssss | |||
yyssssssssssssssssssssssssyyyyoosyyyysoosssyyyyyyyyyyyyyyyhhyyhyyyyso+::::://+/++ooos+/:oo://+ssyyyyyyyyysyysyssssssssyssssssssossoo+o++o++o+oooooooosoooooossssossssooooooo++///::oos++++++/::::---ssssssssssossyssosyyysssssyyyssoosssosssooooossooossssso+++++++ossssssssssssssssssss | |||
yyyyssysssssssssssssssssssyyyysoooooossosossyyyyyyyyyyyyyyhhsyyyyyyysoooooossssyysyyyyo/oo::+osoysossssssssssysssssssssssssssososo+o+o++o++o+o++oooooooooooooooooooooos+soooooo+/-:ooo+ssooo+++////+ssssssssssoossssoossssssssyssoooooososo++ooosssssoosssso++++//+ossssssssssssssssssss | |||
yyyyysyssssssssssssssssssssssyssoo+++ooooossyyyyyyyyyyyyyyhyyyyyyyyyysssssossossssssyyo+oo//+ossyssssyssysssssssssssssssssosoos+oooooo++o++o+oooooooooooooooooooooosooo+ooooooo//::oooosssosoossossossssssssys++ssssoossssssssysoooooo++++++ssoooosssssosssoo+++//+ossssssssssssssssssss | |||
yyyyyyysssssssysssssssssssssssssso+++++oooossyyyyysssyssyyyysyyyyyyyysyyyyssyssyssyyyys+oo//+osoysssssssyssssssssssssssssssssosossooosoosoososoosoooooooooooooooooossoo+ooosoos+/::oooosssosssssosssssssssssss+ossssssssssssssssooo++++++++osooo+osssssoosssso++///ossssssssssssssssssss | |||
yyyyyyyysyssyyssssssssssssssssssso+//++++oossyyyysssssooyyyysyyyyyyyyssssssyyyysssyyyyo+so//+ossyssssyssyssysysssssssssssssssosossosossosoososoosooooooooooooosssssssos+ooooooo//::+ooosssssssssssssssssssssss++ssssossssssssssooo++++++/+ossooooossssssssssssoo//+sssssssssssssssssssss | |||
yyyyyyyyysyyysssssssssssssssssssss+//+++++oosyyyyyssssooyyyssyyyyyyyysoossosysyysyyyyys+so//+ossysssssssyssysysssssssssssssssssossosossosoososoososooooooooossssssososs+oooooss++::+oossssossosooooosssssssssso+ossoossooosssssoo++++////+ossoo++osssssssssosssso++sssssssssssssssssssss | |||
yyyyyyyyyyyyysssssssssssssossssssss//////+oosyyyyssssso+yyysosyyyyyyysssssssysyysyyyyys+so//+ossyssssyysyssssysysssssssssssssssossossssosoososoososoosooooossssssoosossosooosss++:-oosossssssossoosossssssssss+/osso+ssoosssssoo++///////ooosoo++ossssssssssosssssosssssssssssssssssssss | |||
yyyyyyyyyyyyyyysssssssssssoossssssso/://///osysyyssssso/yyyo+syyyyyyyssssssyysyyyyyyyysoso//+ossyssssyssyysysyssssssssssssssssyossssssssysssssoososossosssssssssssosoosossosssso+::ooosssssssossoosossssssssss/:oss+/soooosssso++//:::::+sossoo++ossssssssssssssssssssssssssssssssssssss | |||
yyyyyyyyyyyyyyyyyyyysssssssossssssss+//////+oysysooooso+syy+/shyyyyyyyyssssyyssyyyyyyysoso//+oysyssysyysyyyysyyyysyyssyssyssssyossssssssyssssssssssossosssssssssssosoososoosoos++/:oossssssssossssssssssssssos/-+ss+/oo+++ososo+/:::/::+oossso+++osssssssssoosssssssssssssssssssssssssss | |||
yyyysyyyyysssyyyyyyysssssssoossssssso/::/::/+ssso++++oy+oys/:ohyssyyyyssyssyysyyyyyyyysoss/+osysyssysyssyssysysyysyysyyyyyssysysysssssysyssyssssssssssososssssssssooossossosoosoo/:oosssssssssssssssssssssooos:-/so++o+//++ooo+/::::::/ooossso+++osssssssssoooosssssssssssssssssssssssss | |||
yyyyssyyysssssyyyyyysssssoooooooo+++/:--:::/ossso+++ooyyss+::+hyssssysyssssyyyyyyyyyyysoos/+ooysyysysyssysyysyyyyyyyyyyyyysyysysssssssssyssysssssssssssssssssssssssssssossossosoo/:oosssssssssssssssssssooooos:-:oo+oo+////+oo+/:-:--:/oooosso+++ossssssssssoooossssoossysssssssssssssss | |||
yyyyssyyyssossyyyyyysysssoosso++/////:::::://////+++osyyyo:--+hssssssssssssyyyyyyyyyyyyoos/+oossyyyysysyyyyyyyyyyyyyyyyyyyyyyyysyssyssysyssyssssssssssssssssssssssossosossossssoo/:oosssssssssssoooosssooooooo-.-:ssso+////+++//:------:::///+++++sssssssssso+ooosssoosssyysssssssssssss | |||
yyyyysyyssooossyyyyyyyssso+oosssosoo:--/://++++++++++oyyy+---/hsooossssssssyyyyyyyyyyysoos++osysyysyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyssyyyssysssssssssssssyssssssssosssssssoo/:+osssssssssssoosooooooo++oo-..-ssso+//:/::::::------/////++++++osssssssssooooosssossyyyyyysssssssssss | |||
yyyyyyyyssoooosyyyyyysssso++oossssoo-.-----::+++///:::+os+---/ysoooosssssysyyyyyyyyyyyssos++osysyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysysyyssssssssosssssssoo//+osssssssssssossosooooo++oo-..-sss+/:::////:----...-oooosso+/:+osssssssssoooooossosyyyyyyyysyssssssss | |||
yyyyyyyyysoooosyyyyyyyssso/+oossssoo-......-::/::-----/+s+.-./ysooooossssssyyyyyyyyyyyysosoossyyhyyyyyyyhyyyyhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyssyssssssssoo++osyssssssssssosoosoo+++/+oo-...o++:------:/--......-ooooss+/::+oossssssssoooooosssyyyyyyyyyyyyyyyyyys | |||
yyyyyyyyysso++syyyyyyssss+/+oossssso-..-..---:/-------/+s+..-:ys++o+oosssssyyyyyyyyyhyyssyoossyyhyyyyyyyhyyhyyyyyyyyyhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyssysyyssssssoo+osssyssssssssssoooo++++//oo-...oo+:------::--.......ooooss+/::/oossssssssooooossssyyyyyyyyyyyyyyyyyyy | |||
yyyyyyyyyyssoosyyyyyssssso/++ossssss:.:+--...-:-------/+s+...:yo/++++ossyyyyyyyyyyhyhyyssyssssyyyyyyyyyyhyyhyhyyhyhhyhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysysyssssyssso+osssyssssssssooooo+++/+//+o-...ooo-------::-.--.--..ssssss+/::/oooossssssoooossssyyyyyyyyyyyyyyyyyyyy | |||
yyyyyyyyyyyyoosyyyysosssso//+ossssso:.-+:/-...:-....../os+...:ys/++++ooosssyyyyyyyyyyyyysyssyyhyhyyyyhyyhyyhyhyhhyhhyhyhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysysssssysso+ossyyysssssssoo++o+///+//oo-..-oso-....--:-...--::.-ssssss//:-/ooooossyyssssosssyyyyyyyyyyyyyyyyyyyyy | |||
yyyyyyyyyyyyyssyyyysssssso//++ssssss:.-+::/:-:/-....../ss+.../hs/++/+oossssyyyyyyhhyyhyyyysyyhhyhyyhhhhhhhhhyhhhhhhhyhhyyyyyyyyyyyyyyyyyyysyssssyyyyyyyyyyyyyyyyyyyyyyysyysyyyyyssososyyysssssosoo++o+////:/+s-...oso-....--::..::-::.-ssssso/::-/sooooosyyssssssssyyyyyyyyyyyyyyyyyyyyy | |||
yyyyyyyssssssyyyyyssssyyso+++osyssss:..--:::--::--..../sso-../hs///++osssssyyyyyyhhhhhyyyysyhyyyhyyhyhhhhhhhyhhhhhhhhhyyyyyyyyysssssssssssssssssssssssssyyyyyyyyyyyyyyysyysyyyyyso+o+syyssysssssoo++o+//////+s-..-ooo-.....-::::/:::-.-ssssso//::+ssoooosyyssssssssyyyyyyyyyyyyyyyyyyyyy | |||
yyyyyyyyoossssyyyssssyyyss++oosyssss:......---/:-...../sso---/hs+++oossssssyyyyyyhhhhhyosysyhyhyhhyhhhhhhhhhhhhhhhhhyhyyyyyssssooooooooooooooooooooooossssssyyyyyyyyyyysyyyyyyyyso+o+oyyyyysssssooooo+++/+//+s-..-ooo-.....-:::---....-ssssyo+/::+syssooosssossssssyyyyyyyyyyyyyyyyyyyyy | |||
yyyyyyyyoossssyyyssyyyyyysooossysyys/--::----:/:---.--+yso---/hyoooossyyyyyyyyhhyhhhhhysysyhhhhyhhhhhhhhhhhhhhhhhhhyyyyysssoooo++++++///////////++++++ooooosssssyyyyyyyyyyyyyyyyysooo+syyyysssssssooooo+o+++os-..-oso:.....-:/:----...-sssyys+//:+yyyyssosssosssoosyyyyyyyyyyyyyyyyyyyyy | |||
yyyyyyyysossssyyyyyyyyyyysoosssooo++/::///:--/+//:::::oyys--:+hysssssyyyyyyyyyyyyyhyyhyhyyhhdhdddhhhhhhhhhhhyhhhhyysssooo++///::::--.............---::::/++oosssssssysysyyyyyyyyhhsosssssssssssssssssooooooooy:-.-sss/------:/:-------:sssssso+//oyyyyyysssossssoosyyyyyyyyyyyyyyyyyyyyy | |||
yyyyyyyyyssysyyyyyyyyyyyhyyyhhhhyyyyoo++++ooooo++oo+++ooo+///+oosssyyyyhhhhhhhhhyyyhhhyhhyhhdddddhhhhhhhhhyhyhyyysssoo++/:-...........................`....-:/++ooooossosssyyyyhhhs+sssyssoosysssssssooo+++++o::-:sys+/:::::///:::/++++ooooossssssssssyyyysossssooyyyyyyyyyyyyyyyyyyyyyy | |||
yyyyyyyyyyyyyyyyyyyhhhhyyyyssyyyyyyy+::--::/+sssooo+oss+shyssssyyyyyhyhhhhhhhhhhssyhhhhhhhhddddhhhhhhhhhhhhyyyyssoo+/-..`......``........................`.....-:/+ooosssssssyyhhhysysyyyo++oyyyyyyyyyyyyyysooooooo++++/+osssyyhhhhhyyyyyyyyyyyyyyyyyyyyyyssssssssyyyyyyyyyyyyyyyyyyyyyy | |||
yyyyyyyhhhhhyyyyyyyyyyyyyyyyysyyyyyyo::::://+yss++++oso+shysooshhyhyyyyyhhhhyhhyyyhhhhddhhhddhhhhhhyyyyyyyyssso+:-....``.``````````.....................```..``.....-:+ossosoosshyysyhhyyysosyyyyyyyyyyyyyyys//+oyyo+so++/ossyyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyyyyyyyyyyyyyyyyyyyyyyyyyyyy | |||
yyyyyyhhyyyyyyyyyyyyyyyyyysysyyyyyyyo//:///+syyyooossso+yhhysshhyyyyyyyyyyyyyhhhhhdddddhhhhdhyyhhhhhhhhhyyyyo/......```..............................```.``.......``...-+sssyyyyyyysyhhhyhhyyyyyyyyyyyyyyyyyhy+osyyo/ooo+oooosyyyyyyyyyyyyyyyyyyyyyyyyyyyyysyyyyyyyyyyyyyyyyyyyyyyyyyyyy | |||
yyyyyyhhhyyyyhyyyoosyyyyyyssyyyyyyyys+////++oyyyssyyyysoyhhhsshhyyhhhhhhhhhhhhhhhddhhhhhhhhhyyhhhhhhhhhyyyo:..`..........................................................-/osyyyyyysyhhhhyhhyhhyhhhhhyyyyhyyhhooyyys+ossssoosyssyyyyyyyyyyyyyyhyyyyyyyyyyyysyyyyyyyyyyyyyyyyyyyyyyyyyhhh | |||
hhhhhhhhhyyyyyhyyysssyyyyssssyyyyyyyyo++++ossyhyssyyyhhyhhhhyshhhhhhhhhhhhhhhhhhhddhhdhhhhhdhhhhhhhhhhyys:..................................................................:osyyysoyhyyyyyyyyyyyyyyhyyyyhhhhhooyyyssyyyyosyyyyyyyyyyyyyyyhyhhhhyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyhhhhhh | |||
hhhhhhhhhhyyyhhyyyyssssyyysyyyyyyyyyyoooooossyhyyyyyhhhhhhhysyhhhhhhhhhhhhhhhhhhhhhhhdhhhhhdhhhhdhhhhyo:..`...................................................................-+yysoyyyyyyhyyyyyyyyyyyyyyyhyhhooyyyyyhyyysyyyyyyyyyyyyyyyhhhhhhhyyyhhhhhhhyyysyyyyyyyyyyyyyyyyyyyhhhhhhh | |||
hhhhhhhhhhhyhhhyyyyyysssyysyyyyyyyhyyooooossshhysyyyhhhhhhhhyyhhhhhhhhhhhhhhhhhhhhdhhddddhhhhhhhhhhys:..........................................................................:osoyyyyyyhhyyyyhhyyhyyyyhhhyhsoyyyyyhhysyyyyyyyyo+//++oyyhhhhhhyyhhhhhhhhhyyysyyyyyyyyyyyyyyhhhhhhhhhhh | |||
hhhhhhhhhhhhhyhyyyyyyyyyyyyyyyhhyhyyyooossssshhysssyyyhhhhhyyhdhhhhhhhhhhhhhhhhhhhdhhddhhhhhhhhhhhy:...........................................................................`../+yyhyhhhhyyyyhhhyhyyhhhhhyhsoyhyyyhhyyhyyyyyy+/:/++++oyhhhhhhhhhhhhhhhhhyyyssyyyyhhhhhhhhhhhhhhhhhhhh | |||
hhhhhhhhhhhhhyhhhyyyhyyysyhyyyhhhhhyhyssssssshhyysyyyyhhhhhhyyhhhhhhhhhhhhhhdhhhhdddddhdhhhhhhhhhs-.............................................................................`..:syhhhhhyyyyyhhhhhhhhhhhhyhsoyhyyyhhyyhyyyhhs+//++///++yhhhhhyhhhhhhhhhhyyyyssyyyhhhhhhhhhhhhhhhhhhhh | |||
hhhhhhhhhhhhyhhhhhhhhhhyyyhhhhhhhhhhhyysssssyhhhyyyyyhhyhhdhyhhhhhhhhhhhhhhhhhhhhddhhdddhhhdhhhh+..`................................................................................-ohyhhhhyhhhhhhhhhhhhhhhyhsoyhhyyhhyyhyyyyhso+/+///+++oyhhhhhhhhhhhhhhhhyyyyyyyhhhhhhhhhhhhhhhhhhhhh | |||
hhhhhhhhhhhhhhhhhhhhhhhhyyhyyyyyyyyyyyyyyyyyyhhhhhyhhhhhhhdhyydhhdhhhhhhhhhhhhddhddhddddhhhhhhho...........................----......................................................-yyyyyhhhhhhhhhhhhhhhhhhhsoyhyyyhhyyhhhhhhyso++///++ooshhhhhhhhhhhhhhhhyyyyyyyhhhhhhhhhhhhhhhhhhhhh | |||
hhhhhhhhhhhhhhhhhhhhhhhhhyhhhhhhhhhhhyyyhhhhhhhhhhhhhhhhhhdhyyddhddddhhhhhhhhhddhddhddhhdhyhhhs...................--------------....................................................../yyhyhhhhyhhhhhhhhhhhhhhsoyhyyyhhhyhhhhhhhyso+//+++++osooo++++++syhhhhhyyhhyyyhhhhhhhhhhhhhhhhhhhh | |||
hhhhhhhhhhhhhhhhhhhhhhhhhyhhhhhhhhhhhssssssyhhhhhhhhhdhhddhhyhdddddddddddhdddhddhddhddhhdhyhhs-...............---------------..........................................................+yhhhhhhyhhhhhhhhhhhhhhyoyhhhhhhhhhhhhhhyoo+//////////:::::::::/+shhhhhhhhhyhhhhhhhhhhhhhhhhhhhhh | |||
hhhhhhdhhhhhhhhhhhhhhhhhhyhhhhhhhhhhyssssssyyhhhhhhhhhhhddhyyhddddddddddhhdddhddhddddddddhyyy:.............------------------..................................-----...................-shhhhhhhhhhhhhhhhhhhhhyosyhhhhhhhhhhhhhso++///////::::::::::::///yhhhhhyyhyhhhhhhhhhhhhhhhhhhhhh | |||
hhhhhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhhssssssyyhhhhhhhhhhddddyyyhdddddddddddddddhddddddddddhysy/...........--------------------.................................-------------..............:yhhhhhhhhhhhhhhhhhhhhsooshhhhhhhhhhhhyo+++//////////::::::::////ohhhhhhhhyhyhhhhhhhhhhhhhhhhhhh | |||
hhhdhhdddhhhhhhhhhhhhhhhhhhhhhhhhhhysssssyyhhdhhhhhhhhddddhyyhddddddddddddddddddddddddddhyso.........-----------------------.................................--------------.....---.---.-shhhhhhhhhhhhhhhhhhhhyooshhhhhhhhhddhso++////+/////////:::://///ohhhyyyhhhhyhhhhhhhhhhhhhhhhhhh | |||
ddddhdddddhhhhhhhhhhhhhhhhhhhhhhhhhysssssyyhhhhhhhhhhhddddhyyhdddddddddddddddddddddddddddys+....----------------------------..................................---------------------------/hhhhhhhhhhhhhhhhhhhhysssddhhhhhhhddyo+++//+++++++++////::://///ohhhyhhhhhhhhhhhhhhhhhhhhhhhhhh | |||
ddddddddddddhhhhhhhhhhhhhhhhhhhhhyysssyyyyyhhhhhhhhhhhddddhyyhdddddddddddddddddddddddddddhs/..------------------------------....................................------------...-----------yhhhhhhhhhhhhhhhhhhhysssdddhhhhhhhhs+++//+ooooooo++++++/:://///shhhhyhhhhhhhhhhhhhhhhhhhhhhhhh | |||
ddddddhhddddddhhhhhhhhdhhhhhddhhysssssyyyyhhhhhhhhhhhhdhddhhhhdddddddddddddddddddddddddddho-----------------------------------..................................-----------......---------ohhhhhhhhhhhhhhhddhhyssyddhhhhhhhhho+++//+sssyssssssooo+//////+hhhyyhhhhhhhhhdhhhhhhhhhhhhhhhh | |||
ddddddddhhhdddhhhhhhhdddhhhdddhyyyyyyyyyyyhhhddhhhhhhhhhddhhhhdddddddddddddddddddddddddddy+-----------------------------------..................................-------------......-------+hhhhhhhhhhhhhhhddhhyssydhhhhhhhhdhoo+++/+ssyyyyyyyyyyyyso++ooyhyyhhhhhyyhhhdddddddddddddhhhhh | |||
ddddddddddhhddddhhhhhhdddhhddhhhhyyhhhhhhhhhhddhdddddddhddhhhddddddddddddddddddddddddddddy/-----------------------------------...................................-------------...---------/yhhhhhhhhhhhdddddhdhyyyhhhhdhhdddhsoo++/+ssyyhhhhhhhhhhhhhhyyyyyyhhhyhhhddddddddddddddddddddd | |||
dddddddddhhdddhhddhhhhhhhhhdhhhhhhhddddhhhhhhddhddddddddddhhhdddddddddddddddddddddddddddhy:---------------------------------.......................................--............----------yhhhhhhhhhdhdddddddhhyhhhhhhhhdddhsooo+/osyyyyhhyyyyhhhhhyyyyyhyyyhhhhhhhdddddddddddddddddddd | |||
ddddddddhhhhddddhhhddhhhhhyhyhhyyyyhdddhhhhhhddhdddddhddddhhhdhddddddddddddddddddddddddhhs:-----------------------------.-........................................................---------ohhhhhhhdhdddddddhhhyyhhdhhhhhhddhssoo++osyhhhhhhhhsyyyyyyyhhhyyhhhhhhhhddddddddddddddddddddd | |||
dddddddddhhhhhdddddhhhhhhhhhhyhhyyyhddddhhhhhddhddddddhhdddddddhhdddddddddddddddddddddddhs----::---------..........----............................................................--------/hhhhhhhdddddddhhhhhhhhhhhhhhdhdddyysssosyyhhhyyhhhyyyssyyhyyhhddhhhhhhhddddddddddddddddddddd | |||
ddddddddhhhhhdddddddddhhhhhhyyhhhyhhddddhhhhhhhyhddddddhhdhhhddddhddddddddddddddddddddddh+----::-------...........---................................................--.............-------:yhhhhhdddddddhyhhhhhhhhhhhddhhdddhhhhoyhhhdhhhhhhhyyyyyyyhhdddddhhhhhhhddddddddddddddddddddd | |||
ddddddddhhhhddddddddddddddddhdhhhhhddddhhhyyyyssyhdddddhhhhdhddddhhhdddddddddddddddddddhh+----::-----............-----------..................................------------..........-------:yhddddddddhhyyyhddhhddhhhhddddhhhhyyyoyhhhdhhhhhhhhhhhhhdddddddhhhhhhhhddddddddddddddddddddd | |||
ddddddddhhhhdhdddddddddddhhdyhhyyhhhhddddhhhhhhhhhddddhhddddddddhhhhhhhddddddddddddddddhh+----::-----.........--------------------.....................------------::::::-------.....------/hdddddddhhyyyyhhhdhhhddddhdddhhhhhhhhhdddhdhhhhhhhyhyyhhddddddddhhhhhhhddddddddddddddddddddd | |||
ddddddddhhhhhdddddddddddhhhhyhhhhyyhhdddddhhhhhhhhddddddhhhdddddhhyyyhhhhhhdddddddddhdhhyo::-::-----.....-----::::::///:::::::::------................---::::////+////////////::--....-----/hhhhhhhyyyyssssyhddhhhhhdddddhhhhhhdddddddhhhyyhhyossyyhhhhdddddhhhhhhhddddddddddddddddddddd | |||
ddddddddhhhhhddddddddddhhhhhyhhyyyyyhdddddddddddhhdddddhhhdddddhhyyyyyhhhhhddddddddddddyss---::----...---:::://////+++oooooo+++///::---............----://+++oosooooooooo+++///::::-..-----/hhhhhhyyyyssssshhdddhhhhhddddhhddddddddddddhhhhyyhsyyyyyhhhhddddhhhhhhhddddddddddddddddddddd | |||
ddddddddhhhdddddddddddddddhhyyhhhhhhddddddddddddhhddddddhhdddhhyyyyyyyyyyhhhhhhhhddddddyss::-::----..-:::://++++oooosssssyyyyysoo+//:---..........---:/+ooossyyyyyysso+//:::---------------/yyyyyyyyssssssssyhhddhhhhhhhdhhddddhhhhddddhhddhhhhhhhhhhhhddhhhhhhhhhdddddddddddddddddddddd | |||
ddddddddddddddddddddddddddhssyhdddddddddddddddddhdddmdhhhddmhyhhyhhhhhhhhhdddhhdddddddddhs:::::------------:::::://++osyyyyyhhyyyso+/:--..........--::/oossyyyyysssoo++///::::-------------/hhhhhhhhhyyyyyyyyyyhddhhhddddddddddhhhhhddddddddddhhdhdddhhhhdhhhhhhhhdddddddddddddddddddddd | |||
dddddddddddddddddddddddddhsooohdddddddddddddddddhdddddhhhdddhdddhdddddddddddddddddddddddds::::-----:--:::::::://++oooosssssyyyyhyyso+/:--.........--:/+ossyhhhhhhyyysooooo++////:::::------+dddddddddddddddddddhdddhhdddddddddddddhhdddddddddhhhhhdddddhhdhddhhhdddddddddddddddddddddddd | |||
mmmmdddddddddmdmdddddddddho+/+ydddddddddddddddddhdddddhyyhddddddddddddddddddddmdddmddddddy::::-----:::///++++oooo++///+oosyyyysyyhys+/:--.........--:/+sssssyyso+///:////+++oosoo+//::-----+ddddddddddddddddddddddhhhdddddddddhdhddhdddddddddhhhhhddddddddhhdddddddddddddddddddddddddddd | |||
mmmmmmmdddmmmddddddddddddh+::/sdddddddddddddddddddddmdhyyhdddhdddddddddddddddddddmmddddddy::::----:://+osssoo+++//::::::::/++oso+oyyo/:--.........--:/+o++o++//:::::://////+++ossso+/:-----/ddddddddddddddddddddddhhdddddddddddddddddddddddddhhhhhdddddddddhhdddddddddddddddddddddddmmmm | |||
mmmmmdddmmmmdddddddddddddh/:::oddddddhhhhhyhhhhdddhdddsosydddhddhddddddddddddmdddddddddddy::::----:/+osyyysooo++/+///////:::---://:/+/:--....``...---:/:::---::////+++oosssssyssyyyo+:-----/hdddddddddddddddddddddhhhddddhdddddddddddddddddddhhhhhdddddddddddddddddddddddddddddmmmmddmmm | |||
mmmmddmmmmdddddddddddddddh/---odddddhhhhhhhhddhhhhhddds+osdddhddhddddddddddddddddddddddddy::::----::/+oyhdhyhhyyyyyyysssso++//:---::::--............---:-:://++++osyyhdhdddhdhhys+/:::------/+shdddddddddddddddddhhhhdmddhhhhhhhdddddddddddddhhhhhddddddddddddddddddddddmmdddmmmmmmmmmmm | |||
mmmmddmmmddhhhdddmddmmmddh/---odddddhhhhhhhdhhhhhhddddo/+sddhyhdhdddddddddddddddddddddhs++-::------:::://+yhhdhdhhhhdhhyso++/::----.............`.......----::://++ossysooyyyso//:---------....:yddddddddddddddddhhhddmdddhhhhhhhddddddddddddhhhhddddddddddddddddddddddddmmmmmmmmmmmmmmm | |||
mmmmdhmmddhhhhdddmmdmddddh/-..+dddddddhhhdhhddddddddmdso+sdmhyhdhddddddddddddmmdddddds-....-----------::::/+ooosoo+o++//::---...................`..............--:://///+///+/::--------.--...-::sdddddddddddddddddddmmdddddddhhhhdddddddddddhhhdhddddddddddddddddddddmmmmmmmmmmmmmmmmmm | |||
mmmmdhdmdhhhhhdmmmmmmddddh:.../hdddddddddddddddddddddhsoohdmdyhdhddddddddddddddddddds:/-....--------------:::::/:/::::----.......................................--------:-------------..----::-:+hdddddddmddddddddddddddddddddddddddddddddddhhhdhddddddddddddhhddddddmmmmmmmmmmmmmmmmmm | |||
mmmmmdmmdhhyyhddmmmdmddddh:.../ydddddddddhddhhhdddmmmh+++sddysydhddddddddddddddddddd+:-::------------------------------...............................................-----------------...-::+/-.:ydddddddddddddddddmmmmdddddhhhhhhdddddddddddhhdhdddddmdddddhdddddddmmmmmmmmmmmmmmmmmmm | |||
mmmmmdmmdhhyyyddmmmmmddddh:.../yhhdddddddhyyhhhhhddddy/::oddy+sdhddddddddddddddddddy:..:++:::---------------------..........`..............................................---------------:////:-:hddddddddddddddhdddmmddddhhhhyyyhdddddddmddddddhddmdmmdmdddddddddddmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmmmdhhhhdmmmmmmdddos:.../yhhdddddddhyyyhhhhhhddy---+dds/odyhhddddddddddddddddy:--///+/::------------------...............``...................`........................--------------/s+::/oddddddddmddddddhhdddmdddhhhhhyyyhdddddddmmdhhhhdddmmmmmmddddddddddmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmmmddhhddmmmmmmddo-s-...:yyhhdddddhssyyhhhhhhddy-../hdo-ohyhhddddddddddddddddds+:::+o+::-----------------..............................................................--------------:/so//yddddddddmddddddhhddmmdddhhhhhhhhdddddddmmmddhhhddddmmmmmmdddddddddmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmddmdhhddmmmmmdd+--s:+o--:-+syyyyyyys+hhhhhhhhds-../hdo-ohyhhdddddddddddddddddh+/+s+:::::------------------...............................``........................----------------://+o/:hddddddddmddddddhhddmmdddhhhhhddddddddddddmddhhhhdddmmmmmmddddddddmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmmddmddddmmmmmd+:-:o:sy//:...+sssyyys/yhhhhhhhds-../hdo:ohhddddddddddddddddddddo/+o+/+::/:-------------------.....................................................------------------:++//::yddddddddmddddddhdddmmddhhhhhhddddddddddddmdddhhhddddmmmmmddddddddmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmdhddmddmmmmmdo::::s:ss::+-:/osssssss/yhhhhhhhdy:.-+dds+odhdddddddddddddddddddh/:://+o////::--------------------------...........`....................------------------------------:::-:::yddddddddddddddddhddmmddhhhhhhddddddddddddmddddhddddddmmmmddddddddmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmdhhhdmddmmmdo///+yh:-:-:ssyyyyyyyyys+yhhhhhhddy:--+ddyosdhdddddddddddddddddddd+::--:////+/::-------------------------------.......--......----.....---------------------------------...-:+ddddddddddmdddddhhhdmmdddhhhhhddddddddddmmmdddhhdmdddddmmmddddddddmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmmhhhhdmddmdy++oyhdh:...:shhhhhhhhhddoyhhhhhhddy:::+hdyoshhhdddddddddddddddddddy/:-...-//++/::::-----------------------------...--://:-----:/+/:------------------------------------:..-:/hdddddddddddddddhhhhddmdddhhhhhdddddddmmmmmmddhhhdmmmddddmmdddddhdmmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmmhyhhhdmddhssyddddh:...:shhdddddhhhhsyhhhhhhddh/::+hdhssdddddhhhhhdhhhdhdddddhhs::-..-:/+o+/:::::::-------------------------::/oyyyyysoo+osyyhyo/::--------------------------------:-.-:yddddddddddddddddhyhdddmdddhhhyhdddddddmmmmmmddhhddmmmmmdddmdddddhdmmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmmdhhdhdmmhhhdmddddh:...:shdddddhhhhhsyhyhhhhddh/:/ohdhyydhdddhhhhhhhhhhhhdddhhyy+:-..-::/o++//:::::::-----------------------/syhyssssddhhhsosyhhs+:---------------------::::-------:---+hhdddddddddddddddhydddmmddhhhyyydddddddmmmmmmdddhddmmmmmmmmmdmdddddmmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmmmdddhhdmdmmmmmdddh:...:sdddddddhhhdsyyyhhhhhdd+//ohddhddhdddhhhhhhhhhhhhhhhhhhhy+----://++++//:::::::::--------------------:/ooo+//+yyhys+///++/::-------------------::::::::----::::/yhhhhhhdddddddddmdhyhddmmddhhhyyyhdddddmmmmmmmddhhddmmmmmmmmmdddmddmmmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmmmmmmdddmddddhhhyyh/---/ydddmmddddddsyyhyhhhdddo++shdddddhhhdyhhyhhhyhhhhdhdhysyyo/::::///+++/////::::::::-----------------------::::://::::-----------------------::::::::::::---/++oydddddddddddddddmmdhyhddmmddhhyyyyddddddmmmmmmmdddddddddddddmmddmmmmmmmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmmmdddhhdmdmmmmddhhh+:::+dhhdhhhhhhhhoyhhyyhhdmdssosyhddmdhhddyhhhhhhyhhhhdhdhyyyyyys+++o+//+++//////:::::::::------------..........------..-.......--------------:::::::::::::---:shddddddddddddddddddmmdyshddmmddhhyyhhdmmmdddmmmmmmmdddmdmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmmdhhhhhdmdmmmmmmdddo/::odhhhhyyyyyys+syyyyhhdddyyyyyhddddhhddhhhhhhhyhhhhhddhyyhyyyyhmdys///++///////::::::::::----------...........................-----------:::::::::::::::---/mmddddddddddddddddddmmdyshddddddhyyyyyhdddddddddmmmmdddddmmmmmmmmmmdddmmmmmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmmhsshhhmmmhhdmmddddo///sdhhhyyyyyyys+syyyyyhddmhyyhyhddddhhdhyhhhhhhyhhhhdhdhysyysyysydmds////////////:::::::::-----------.........................------------::::::::::::::---:shhhdddddddddddddddmdmmdyshddmdddyyyysshdddmddddmmmmmdddddmmmmmdddmmmddmdmmmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmms+shhmmmmdyyhdmddds+ooyhhhhhyyyyyysoyyyyyyhhdmdhhhyyhdddhhddhhhyhhhyhhyhhhdhhyyysssssysys+///////////:::::::::-------------....-----......-------------------::::::::::::::----/hhhhhhdhdddddddddddddddhyshhdmdhdyyssssydddmmmmmmmmmddddddmmmddhdmmmmmdmmmmmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmdsoyhdmmmmmhyyyhddmyossyydddddhdhhysyyyyyyyhhdmmhhhyyhdddhhddyhhyhhyyhhhhhhdhhyyysssosyosos+/////////::::::::::--------------:://////:---::///////::--------:::::::::::::::----:ohhhhhhhhhhhdhddddddddddhsohhdmdhdyyssssssydmmmmmmmmmddhhhdmmddhdmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm | |||
mmmmmmmmhhhmmmhmmmmhyyyhddysyyyydhddddhddyssyyyyyyhhdmmhhhyyhdddhdddyhhyhhhyhhyhhhdyysyysssossoso+o////////:::::::::::::::::::::://++oooooo+++///++++oooooo+++///:::::::::::::::::----+hhhhhdhddddddhhddddddhddhsohhdmdddhyssssoooymmmmmmmmmddhhhddddhdmmmmmmmmmmmmmmmmmmmmmNNNNNNNNNNmm | |||
Nmmmmmmmddmmdyymmmmmhyyyhdhyyyyydhddhhhhdyssssyyyyhhdmmddhsyhdddhhhhyhhyhhhyyhhhhhhhysyysssosysso+/+//////:::::::::::::::://+osssoooo+////++ooo++++/////++oossoo+//:::::::::::::::---/yhhhhddhhdddddhdddhdddhdddsohdmmdddyyssssoooydmmmmmmmmdhhhhdddddmmmmmmmmmmmmmmmmmmmmNNNNNNNNNNmmmm | |||
NNNNNNmddmmmysymmmmmmdhhhdhyyyhshhdddhdddysssyyyyyhdmmmmdhyhhhhhhdddhhhhhhyyyhhhhhhyysyysssossoso+//++////::::::::::--:::://+///:--........................---::::::::::::::::::::::/shhhhhhhhhhddhdhhddddddhddhhshdmmdddhyyssssooydmmmmmmmmdhhhhddddmmmmmmmmmmmmmmmmNNNNNNNNNNNNNNNNmmm | |||
NNNNNmmmmmmhhyhmmmmmmmdhhdhyyyhshhdddddddhyyyyhyhyhhhhhhddhhhhhhhhddyhhyhhyyhhhhhhhyysyssssossoso+://o++////::::::-----:::::::::::::-------...-....-----:::::::::::::::--::::::::::/syhhhhhhhhhdddhhyhhdddddhddhhhhddhhyyyyyyyysssydmmmmmmmmdhhhhdddmmmmmmmmmmmmmmmmmNNNNNNNNNNNNNNNmmmm | |||
NNNNNmmmmmhhyshmmmmmmmmdhhhhhhhhhhhhhddddhyyyyyyyhhhhdddmhhhhhhhhdddyhhyhhyyhhyhhhhyysyssssossoso+++++so++///::::::--------::::::////////:::--:---::://////:::::::::::----::::::::/syyyhhhhhhhhhdhhdhhhdddddhddhyyhddddyyyyssssssshmmmmmmmmmdhhhdddmmmNNNNNmdmmmmmmmmNNNNNNNNNNNNNNNmmmm | |||
NNNNNmmNmdyhhyhmmmmmmmmmdddhhhdhhhyyyyyyhyssssssyyyydmdddhsyyhhhhhhhyyyyyyyyyyyhhhhyyssssssossoso+++o//syo++///::::----------:::://///+++++++++++++++////::::::::-::::::::::::://+yyyyyhhhhhhhhhdhhdyhhddhddhddhsoyddddhysssooo++oymmmmmmmmmdhhhddmmmmNNNNNmmmmmmmmmmNNNNNNNNNNNNNNmmmmm | |||
NNNNmddmmdyyhhdmmmmmmmmddddhhhdhhhyyyyyhhsooooossssyhddddyosyyhhhhddyhhhyyyyhhyhhhhyysssossossossoooo//+yhyo++//::::-----------::::::://////++///////::::::::::----:::::::::///+oyhyyyyyhhhhhhhhhhhhyhhddddhhddhs+yhdddysooooo++++smmmmmmmmmddhhhdmNmNNNNNNmmmmmmmmmmNNNNNNNNNNNNNNNmmmm | |||
NNNNmdmmmhhyyyhmmmmmmmmmddddhhddhhhhhhhyhsooooossssyhdddhyosyyhdhdddyyhyyyyyyhhhhhhhysssossossossooo+//+oyhdyso+//::::-:-------------::----------------------------::::::://+oo/syyyyyyyhhhhhhhhdhddhhdddddhdddys+yhhddyssooo+++++smmmmmmmmmdhhdddmNNNNNNNNmmmmmmmmmmmNNNNNNNNNNNNNNNNNN | |||
NNNNmdmmmdhhyyhmmmmmmmmmdhdhyyhddddddddhhsooosossyyyddddhyoydhhdhhddyyyyyyhyyhhhhhhhysysssssssosoooo++/+ssoyhdhyo+//::::-------------------------------------------::::://+sys//syyyyyyyhyyyhhhhhhddhdddddddddhds+yhhddhyysoooo+++smmmmmmmmmdyyhhdmNNNNNNNNmmmmmmmmmmmNNNNNNNNNNNNNNNNNN | |||
NNNNmdmNmddhhyhmNNmmmmmmdhhhyyhyddddmddddysyyyyyyhhddmmddyoyddhdhhhhs+ooooooshhhddddso+++ooooo++ooooos:oyyo+oyddhys+//:::----------------.............------------:::://oshy+::shhhhhhdddmdmdmmdddddhddddhhyyyhds+yhddddhhhyyyyyyyhmmmmmmmmmdyhyhdmNNNNNNNNmmmmmmmmmmmNNNNNNNNNNNNNNNNNN | |||
NNNNmmmNNmddhhdmNNNmmmmmdhhyyyhdddmdmddddddhhhhhhhdddddmdsoydhyssssssssyysossssyyyyyo+oo+++oo+++oooos/:syhs+/+sydddhs+//::-----------...................---------::://+shho/:::syyysssssoo+ooo++oosyyyo++++++oyhs+ohdhhyhyysssyyhdhmmmmmmmmmhyyyydmNNNNNNNNmmmmmmmNmmmNNNNNNNNNNNNNNNNNN | |||
NNNNmmdmmNNmdddmNNNNmmmmmdyyyyyyddmdmdddhhdhyyyyyyhhhhhhso+ydhysssssssossso+//////::////://++:://////-//::/o///+oydmdhs+/:::---------...................--------:://oydho/::::--/:::-::::::::::::/ooo++ooooooshds+++oyyysssoooosyyymmmmmmmmmhyysydNNNNNNNNNmmmmNNmdmmNNNNNNNNNNNNNNNNNNN | |||
NNNNNNmhhmNNmmdmmNNmmmmmmdysssysddmdmmdddysyhssssyyyyo+//++yhyyyyyys+//oyysso++/////////:/:++:::::::--::---o+/////oydmmdyo+/::----------.............---------:://oydho/::::::-:/:-:-:::://///+osyyyo/::/oyhhhdhs+////+oysoooooysoymmmmmmmmmhssoshNNmmNNNNmmmmmmmdmmNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmdhhmNmmmdmmmmdhdmhsssosddmmmmmddhyssyysssyyo+/////+o+osyys+:::+sddhhhhyyyyyhyys////oysoooos/--//:::+o///////+shmmmhs+//:::-------------------------:::/+ohdho/::::::::osy+:/::yyhhhhhhhhhhddy+/:::/shhdhy+///:::/ssoooysssymmmmmNmmmyssoshNmmNNNmmmmmmmdmmmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmdddhdmmmmmdmmmdmmhsoooomdmmdddddhyyhhyyyhyo//////+s++ooo+/////shdddhhhhhyyyyhhh/ss+hhyyyyyh/--+yhdddo////////+oshdNNmhyo+//:::::-----------::::::://+oyhhs+//::::::::+ssyy/so/hhyyhhhhhddddddys+//::+ydhhho///:::+yyssyhyyhmmmmmmmmmyssoshNNNNmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmdddddhhmmmmmdmmmmhso++ommmmdddddddhhyyyysyo///++oydo++++++ossyyhhyhyyyyyyyyyyyyoyyyhyhyyhhh/-/syhddds/:::://///+osydNNNNmhyso++/////:/:////////++osyhhys+///:::::::-:+osssossooooooooooosssooo++++/:/sdhhdhso+/::oyhhhdddmmmmmmmmmmmysooodNNmmmmmmmmmmmmmmmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmdddddddhhmmmmmmmmho+++smmmmdddddddddmhhdhyoosyhhdhssyyy+:--:::+sssyyyssyhyhhsoo+o++++++++++++o++++/++//::://////++oosyhdmNNNmmdhyyysssssssssyyhdddhsoo++///:::::::--:oyyhhhhhhdddddddmmmmmmmdho/::--:+sooosyyysooshddddddmmmmmmmmmNmhsooohmmmmmmmdmmmmmmmmmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNdddhdmddmdhdmmmmdmho+++sddmddhhyhdddddhhdhhyysyyyyysoooo+/osyyyhhhhhhhyhdmdNNyyysyysyysyyyyhhhhyyhyyyh+/:::::://///+++oooosyhddddmmmmmmmmmddddhysso++++////:::::::---/dmmmmmmmmNNNNNNNNNNNNNNmmmmmddssssssyhhhhyyhhhddddmdmmdoooossyhhysosdmmmmmmdmNmmmmmmmmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNddhhdddmNNmdddmdmmdhysyyo//://+++dmmmmmdddhhhyhhhhhy+////ymmmhhdddddhhdmmmmNNhyyyyyyyyyyyyyyyyyyyyyssso/:::::::://////++++++++oooooo++++++++++++++++/////:::::::::---/dmmmmNNmmNNNNNNNNNNNNNNmNNNNNNhdhhyyyhyyhyhhdmmmmmmmmmh/+//:::-/oodddmmmmmmNNNmmmmdmmmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmddhhhhdmNNNmddmmdddd+/:-++//+o++dmmmmmsymdmddddhhhy+///:smmmdddddddddmmmNmNNhyhyyyyyyyyyyyyyyyyyyyyyyo::::::::::////////++++///////////////////////////:::::::::----/dmmmNNNmmNNNNNNNNNNNNNNmNNNNNNhdhhyyyhdmmmNNNNmmmmmmmmy/+/:::o:-:+ddddmdmNNNNNmmdddmmmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmddhhhhdNNNNNNmdddddd+:-/o---:+++dmmmmmsymmmmdddddhh++//:smmmdddddddddmmmmmNNhhhhhhhyyhhyyyyyyyyyhyyyyo:::::::::::://///////////////:::::::////////////:::::::::-----:dmmmNNNmNNNNNNNNNNNNNNNmNNNNNNhdhhysyhmNNNNNNNNmNmmmmmy:/:-..:---/ddddmNNNNNNNmmmmmmmmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmdhhdhhdNNNNNNNmmdddd/-------///+dmmmmmsymmdddddddhho+//:smmmdhdddddddmmmNNNNhhhhhhhhhhhhhyyhhhyhhhhhhs::::::::::::::////////////::::::::::::////////::::::::::------:hmmNNNNmmNNNNNNNNNNNNNNNNNNNNNyhyysyyhmNNNNNNNNNmmmmmmy://:--...-/sshmNNNNNNNNmmmddddmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmdhhhhhdNNNNNNNmNNyo++:...--:+/:+dmmmmmoymddddddddhho++/:ymNmdhdddddmmmmNNNNNdddddhhdddhhhhyhhhhhhhhhhy/:::::::::::::::///////////:::::::::::////////::::::::::------:hmNNNNNmNNNNNNNNNNNNNNNNNNNNNNyhyysyydNNNNNNNNNNmmmmmmy-:/--....-///ymNNNNNNNNmmmdddmmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmdhhhhddNNNNNNNNNNy+/+-.....-//:+dmmmmmsymdhdmmmddhhso+//ymNmdhmmdddddmmmNNNNdddddddddddhhhhhhdhdddhdhy:::::::::::::::::///////////::::::::::///////:::::::::::------:hmNNNNNmNNNNNNNNNNNNNNNNNNNNNNyhyyyyydNNNNNNNmmmddddddy-::----.../:/smNNNNNNNNmmmmmddmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmdhhhhdmNNNNNNNNNNs///-.-::/://:+dddhhhhhddddmmmddhho++//ymNNdhmmdddddmmmNmNNddmdddddddddddhdddddddddds:::::::::::::::://////+++/////::::::////////:::::::::::--------ommmNNNmNNNNNNNNNNNNNNNNNNNNNNyhyyyyhdmmddhhhhyhhhhhddy-::-//:/:-/:/smNNNNNNNNmmddddmmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmdhhhhhmNNNNNNNNNNs///-/+-:/--::+hhdhhhhhhyyyyyyhhhyoo+/:ymNNddmmmddmmmNNNNNNddmmmmdddddddddddddddddddo:::::::::::::::::///////////////:::////////::::::::::::---------/ydmmmmmNNNNNNNNNNNNNNNNNNNNNyhyysyyssssssssyyyhhhhhdy--..-/::+-/:/smNNNNNNNNmmddmmmNNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmddhhhhmNNNNNNmNNNs///-/+:/....-/hhhhhhhhyyyyysssosyso+//ymNNddmmmmmmmmNNNNNNddmmmddddddddddddddddddy/--::::::::::::::::::////////////::::::::::::::::::::::-----------../sdmmmmmmmmmNNNNNNNNNNNNNNNyhyyssyoooossssyyyyhhhdds--...-:/o-+::smNNNNNNNNmmmdmmmNNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmddhhhhdNNNNNNmNNNs/:/-//--...--/hhddhhhyyyyyssssooyso+++hmNNddmmmmmmmmNNNNNNddmddddddddddddddddddy/-..-::::::::::::::::::::::::::::::::::::::::::::::::::-------------....:yddmmmmmmmmmmmmmNNNNNNNNyhyyssyoooosssyyhdddmmddy--:.--.-:-/::smNNNNNNNNmmmdmmmmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmdhhhhdmNNNNNNNNNNs///---.---::-/hdddmmhhdhhyysssooyoosoohmNNmdmmmmmmmmmmmmmmhddddddddddddddddddy+..-..-::-:::::::::::::::::::::::::::::::::::::::::::::-:-------------......-/syhddmmmmmmmmmmmmmmmmyhhysssoosyhddmmmmmmmmmdy--:-......+:/smNNNNNNNNmmmmmmmNNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmdhhhhdmNNNNNNNNNNs+//-......::-/hdddmmyyNmmmmddhyyyssso+hmNNmdmmmmmmmmmmmmmmhhddhhhhhhhhhhhyso/-.....---::-::::::::::::::::::::::::::::::--::::::::-------------------..........-:osyyyyyyhhhhhhhhdsyyyssyhdmmmmmmmmmmmmmmdy-::......-+:+omNNNNNNNNmmmdmmmmNNNNNNNNNNNNNNNNNNMNN | |||
NNNNNNNmhhhhhdmNNNNNNNNNNs+//-......:/-/dddmmmyyNmmmmmmmmhhssso+hmmmmddddhhyssoo+++/:::------------......`...---::-:::::::::::::::::::::::::-------::::::---------------------...-.......`.....---.....--------://+ossyyhddddmmmmmdy-::-.....-+:/ommNNNNNNNmmmmmmmmNNNNNNNNNNNNNNNNNNNNN | |||
NNNNNNNmhhhhhhdNNNNNNNNNNs+//-.....-//:+dmmmmmsyNmmmmmmmdhyoo++/+o++/::---................................-..----:--::::::::::::::::::::::::--------:::::----------------------...-.............-::--....................---::/+++o+--:......-+:/ommNNNNNNNmdddmmmmNNNNNNNNNNNNNNNNMMNMM | |||
MMMNNNNmhhhhhhdNNNNNNNNNms+/+-.....-:/:+ddddddooyysoo+/::--...................-----:::::-----............-...-------:::::::----:::::::::::::--------::::-----------------------...................--::///+++//:::----.........................--:/hdmmmmNNmmdddmmmmNNNNNNNNMMMMMMMMMMMMM | |||
MNNNNNNdhhhhhhhmNNNmNNNNms+/+:.....-//:/yso+/:...................----:://+oossyyyhhhs////:-..............-...----:---:-----------::::::::::::----------------------------------......................--://++oooooossssoo+++///:::::--.............--:+oyhddmdddmmmmNNNNNNNNNNNNNNNNMMMMM | |||
MMNNMNNmdhhhhhdmNNmmNmNmmy+/+:.....-:-..............--::://+++oosyyhhhddddddddddhysso/:--................-....---------------------::::::::::-------:--------------------------.........................-:/:-..--:+ooysoooossyhyyyysooooo+++/::--........-:/+syhdmmNNNNNNNNNNNNNNNNNNNNN | |||
MMMNNNNmdhhhhhdmNNNmNmmmmyo+/:.............-://+ossyyyyysyyoooooyddddhdddhhys+/:-///:-..................-.....-----------------------::::::::::::-----------------------------............................-:::.......-::/++osyhyyhhy/oo//::/+oyssso//:-........-:/+syhdmNNNNNNNNNNNNNNNN | |||
MMNNNNNmdhhhhyhmmmmmmmdhy+:-..........-//+yhddhhyyyhhhhssss+++++ydddhys+/--....-//:-.....`..............-......------------------------::::::::-------------------------------..............................-::-...`......--:/+oyhhs/oo:::----ooshmsoosso+:--.........:/+syhdmNNNNNNNNNN | |||
NNNNNNNmdhhhyyhddhys+:-..........-:+oss+::dmmmhhhyyyyhyyoos++//+oso/-........-::-...............................------------------------::::::::-----------------------------..................................-...`............-:/+/o+:-:---:osshm+-:ymmmdhyso/:--........--:/oshhdmmmm | |||
NNNNNNNmdhyyso+/:-.........-://+oo++sy+-.-dmmmhhmdddhhyyooo/:-...........`...//:-................................---------------------------:::-----------------------.----....................................--..........``...``...---.----:ossym+--ymNNNmmmdddhyso/::-.........-:/+sy | |||
NNNmmdhyo/:-..........-:+osyso/::-::oh+-.-dddmhydddddhys/:-.................----..................................-------------------------------------------------------.......................................-...............``..........--+oosd/--ymNNNmmmmdmmmNNmddyso/:-.......... | |||
dhs+/:-.........--:+oyhdmhyso/:::::/sho-.-ddddyshhys+/-.....................-......................................-----------------------------------------------------........................................--.....`.......``.`............-/oh/--smmNNmmmmmmmNNNNNNNNmmdhys+/:-.... | |||
-..........-:/osyddmmNNNNhyoo+::::::oy+-.-dddho//:-.........................-......................`...............-----------------------------------------------------..................`...........``.......---.`.`............................:---sddmmmmmmmmmNNNNNNNNNNNNNNmmdhyo+/ | |||
......-:/osyhddmmmmmmNNNNhyoo+::::::oy+-.-ys/-.............................--.......................................---------------------------------------------------...................................-------:....................................+hddmmmmmmmmNNNNNNNNNNNNNNNNNNmmmd | |||
--/+syhdddhhhhmmmmmmNNNNNhyoo+::::::oh+-..:................................-..........................................-------------------------------------..---------....................................--...--:-....................................-+ydmmmmmmmNmmmmNNNNmmmmmmmNNNNNN | |||
hdmmmmmmdhhhhhmmmmmmNNNNNhsso+:::::/oy/...`...............................--...........................................----------------------------------....--------......................................-------:......................................-/ydmmmmmNmmmmmmmmmmmmmNmmmNNNN | |||
mmmmmmmmdddddhdmmmmmNNNNNdyso+:::::::-....................................--....-........................................----.......-------------------........-----.....................................`.....---:........................................./ydmmmNmmmmmmmmmmmmmmNNNNNNN | |||
mmmmmmmNmmdddddmmmmmNNNNNdyo++::::-.......................................--...............................................---.........--------------.........----..................................`...........--:.........................................../hmmmmmmmmmmmmmmNNNNNNNNNN | |||
mmmmmmmNmmdddddmmmmmNNNNNds++o::-......................................`..:-............................................................------------................................................`...........--/............................................-sdmmmmmmmmmmmNNNNNNNNNNN | |||
mmmmmmmNmddddddmmmmmNNmNNds+++:...........................................---...-........................................................----------...................................................`.....----::/............................................../ydmmmmmmmNNNNNNNNNNNNN | |||
mmmmmmmNmmdddddmmmdmNNmNNds+/:............................................--...--................-..........................................------....................................................`.`...--::::/................................................odmmmNNNNNNNNNNNNNNNN | |||
mmmmmmmNmmdddddmddddmNmNmhs/-..........................................`..---..--..........................................................................................................................----::::................................................./hmmmNNNmmmmmmmmmmmm | |||
mmmmmmmNmmdddddmdddddmmddh/...............................................-:-..............................................................................................................................-:::::/:..................................................-smNNNNmmmmmmmmmmmm | |||
mmmmmmmNmmmddddmmmmddddhy/................................................:/:--..-.........................................................................................................................::::::/:....................................................+dmmmmNmmmmmmmmNm | |||
mmmmmmmNmmmmmddmmmmmddhs-.................................................-::-...-........................................................................................................................-::::://:.....................................................:hmmmmmmmNNNNNNN | |||
mmmmmmmNmmmmmddmNmmddho-..................................................-/:------.......................................................................................................................:::::://:......................................................:dmmmmmmmNNNNNN | |||
--> | |||
<html> | |||
<head> | |||
<meta charset="UTF-8"> | |||
<script language="javascript" type="text/javascript" src="p5.js"></script> | |||
<script language="javascript" type="text/javascript" src="commands.js"></script> | |||
<script language="javascript" type="text/javascript" src="console.js"></script> | |||
<style> body {background-color:#000; position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:1;} </style> | |||
</head> | |||
<body> | |||
</body> | |||
</html> |
@@ -0,0 +1,87 @@ | |||
CommandLine commandLine; | |||
void setup() { | |||
size (800, 420); | |||
commandLine = new CommandLine(); | |||
} | |||
int pfc; | |||
void draw() { | |||
background(0); | |||
fill(#FFFFFF); | |||
stroke(#FFFFFF); | |||
commandLine.update(); | |||
commandLine.display(); | |||
} | |||
class CommandLine { | |||
String userInput = ""; | |||
String inputString; | |||
String[] presentedLines; | |||
String[] possibleCommands = { "asd" }; | |||
int idleFrameCount; | |||
boolean busy; | |||
CommandLine() { | |||
presentedLines = new String[30]; | |||
for (int i = 0; i < presentedLines.length; i++) { | |||
presentedLines[i] = ""; | |||
} | |||
} | |||
void getUserInput(int code, char c) { | |||
println(code, c); | |||
if (!busy) { | |||
if (code != 8 && code != 10 && code != 16 && code != 17 && code != 18 && code != 20) | |||
userInput = userInput + c; | |||
if (code == 8 && userInput.length() > 0) { //backspace | |||
userInput = userInput.substring(0, userInput.length()-1); | |||
} else if (code == 10) { //enter | |||
enterInput(); | |||
userInput = ""; | |||
} | |||
} | |||
} | |||
void pushLineString(String bottomLine) { | |||
println("bottomline " + bottomLine); | |||
for (int i = presentedLines.length-1; i > 0; i--) { | |||
presentedLines[i] = presentedLines[i-1]; | |||
} | |||
presentedLines[0] = bottomLine; | |||
} | |||
void enterInput() { //user Input DEFINE COMMANDS HERE THAT ARE DETECTED | |||
if (userInput.equals("asd")) { | |||
goOutside(); | |||
} else { | |||
pushLineString(inputString); | |||
} | |||
} | |||
void update() { | |||
if (!busy) { | |||
inputString = "guest@iris ~ $ " + userInput; | |||
presentedLines[0] = inputString; | |||
} else { | |||
if (idleFrameCount + pfc < frameCount) { | |||
busy = false; | |||
} | |||
} | |||
} | |||
void display() { | |||
for (int i = 0; i < presentedLines.length; i++) { | |||
text(presentedLines[i], 13, height-25-(i*13)); | |||
} | |||
} | |||
} | |||
void goOutside() { | |||
commandLine.busy = true; | |||
pfc = frameCount; | |||
// String[] stringList = {"Processing",}; | |||
// l("processing user data...", 10); | |||
// pfc = frameCount; | |||
// pushLineString(input); | |||
// idleFrameCount += f; | |||
} | |||
void keyPressed() { | |||
//println(keyCode + " " + key); | |||
commandLine.getUserInput(keyCode, key); | |||
} |