├── files ├── etc │ ├── sudoers.d │ │ └── ide50 │ ├── php5 │ │ └── mods-available │ │ │ └── cs50.ini │ ├── bash_completion.d │ │ └── make │ ├── apache2 │ │ └── conf-available │ │ │ └── cs50-template.conf │ └── profile.d │ │ └── ide50.sh ├── home │ ├── cs50 │ │ ├── pset5 │ │ │ ├── dictionaries │ │ │ │ └── small │ │ │ ├── speller │ │ │ ├── texts │ │ │ │ ├── hugo.txt │ │ │ │ ├── holmes.txt │ │ │ │ ├── xueqin2.txt │ │ │ │ ├── christmas.txt │ │ │ │ ├── sherlock.txt │ │ │ │ ├── austinpowers.txt │ │ │ │ ├── ralph.txt │ │ │ │ ├── pneumonoultramicroscopicsilicovolcanoconiosis.txt │ │ │ │ ├── quote.txt │ │ │ │ ├── daffodils.txt │ │ │ │ ├── men.txt │ │ │ │ └── witch.txt │ │ │ ├── keys │ │ │ │ ├── quote.txt │ │ │ │ ├── daffodils.txt │ │ │ │ ├── ralph.txt │ │ │ │ ├── pneumonoultramicroscopicsilicovolcanoconiosis.txt │ │ │ │ ├── men.txt │ │ │ │ ├── witch.txt │ │ │ │ ├── constitution.txt │ │ │ │ ├── package.txt │ │ │ │ ├── alice.txt │ │ │ │ ├── wonderland.txt │ │ │ │ ├── christmas.txt │ │ │ │ ├── austinpowers.txt │ │ │ │ ├── grimm.txt │ │ │ │ ├── sherlock.txt │ │ │ │ ├── federalist.txt │ │ │ │ ├── tom.txt │ │ │ │ └── prince.txt │ │ │ └── challenge │ │ ├── pset1 │ │ │ ├── cash │ │ │ ├── greedy │ │ │ ├── hello │ │ │ ├── mario │ │ │ └── water │ │ ├── pset3 │ │ │ ├── find │ │ │ ├── peek │ │ │ ├── fifteen │ │ │ ├── notes │ │ │ ├── resize │ │ │ ├── synthesize │ │ │ ├── 3x3.txt │ │ │ └── 4x4.txt │ │ ├── pset4 │ │ │ ├── peek │ │ │ ├── resize │ │ │ └── speller │ │ ├── unit1 │ │ │ ├── cash │ │ │ ├── isbn │ │ │ ├── chart │ │ │ ├── credit │ │ │ ├── hello │ │ │ ├── pennies │ │ │ ├── skittles │ │ │ ├── fahrenheit │ │ │ └── mario │ │ │ │ ├── less │ │ │ │ └── more │ │ ├── unit2 │ │ │ ├── calc │ │ │ ├── caesar │ │ │ ├── hello │ │ │ ├── pennies │ │ │ ├── vigenere │ │ │ ├── devigenere │ │ │ ├── fahrenheit │ │ │ └── initials │ │ │ │ ├── less │ │ │ │ └── more │ │ ├── unit3 │ │ │ ├── race │ │ │ ├── rng │ │ │ ├── seek │ │ │ ├── fifteen │ │ │ ├── find │ │ │ │ ├── less │ │ │ │ └── more │ │ │ ├── scramble │ │ │ ├── fifteen-solver │ │ │ ├── 3x3.txt │ │ │ └── 4x4.txt │ │ ├── unit4 │ │ │ ├── peek │ │ │ ├── finder │ │ │ ├── notes │ │ │ ├── resize │ │ │ ├── scale │ │ │ ├── shrink │ │ │ ├── sudoku │ │ │ ├── scramble │ │ │ └── synthesize │ │ ├── hacker1 │ │ │ ├── mario │ │ │ └── credit │ │ ├── hacker3 │ │ │ ├── find │ │ │ ├── peek │ │ │ ├── fifteen │ │ │ └── resize │ │ ├── hacker4 │ │ │ ├── peek │ │ │ └── resize │ │ ├── pset2 │ │ │ ├── caesar │ │ │ ├── initials │ │ │ ├── vigenere │ │ │ └── devigenere │ │ ├── pset6 │ │ │ ├── server │ │ │ ├── bleep.pyc │ │ │ ├── hello.pyc │ │ │ ├── smile.pyc │ │ │ ├── analyzer.pyc │ │ │ ├── compare.pyc │ │ │ ├── helpers.pyc │ │ │ ├── tweets.pyc │ │ │ ├── less │ │ │ │ ├── mario.pyc │ │ │ │ ├── compare.pyc │ │ │ │ ├── helpers.pyc │ │ │ │ ├── compare │ │ │ │ └── mario │ │ │ ├── more │ │ │ │ ├── mario.pyc │ │ │ │ ├── score.pyc │ │ │ │ ├── helpers.pyc │ │ │ │ ├── score │ │ │ │ └── mario │ │ │ ├── helpers_compare.pyc │ │ │ ├── compare │ │ │ ├── bleep │ │ │ ├── hello │ │ │ ├── smile │ │ │ └── tweets │ │ ├── unit5 │ │ │ ├── cat.jpg │ │ │ └── index.html │ │ ├── unit6 │ │ │ ├── smile.pyc │ │ │ ├── analyzer.pyc │ │ │ ├── helpers.pyc │ │ │ ├── tweets.pyc │ │ │ ├── smile │ │ │ └── tweets │ │ └── hacker2 │ │ │ └── initials │ └── ubuntu │ │ ├── .pip │ │ └── pip.config │ │ ├── workspace │ │ └── .eslintrc │ │ ├── .cs50 │ │ ├── py_modules │ │ │ └── pylint50.py │ │ ├── prompt │ │ └── bin │ │ │ ├── http-server │ │ │ └── flask │ │ └── .vimrc ├── var │ └── www │ │ └── icons │ │ └── favicon.ico └── usr │ └── bin │ ├── username50 │ ├── version50 │ ├── password50 │ ├── hostname50 │ ├── decomment50 │ ├── apache50 │ ├── mysql50 │ └── backup50 ├── .gitignore ├── .travis.yml ├── .travis └── deb64 ├── README.md ├── Makefile ├── postinst └── update50 /files/etc/sudoers.d/ide50: -------------------------------------------------------------------------------- 1 | Defaults umask_override 2 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/dictionaries/small: -------------------------------------------------------------------------------- 1 | cat 2 | caterpillar 3 | -------------------------------------------------------------------------------- /files/home/ubuntu/.pip/pip.config: -------------------------------------------------------------------------------- 1 | [global] 2 | target=/home/ubuntu/lib/python/site-packages -------------------------------------------------------------------------------- /files/home/cs50/pset1/cash: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset1/cash -------------------------------------------------------------------------------- /files/home/cs50/pset3/find: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset3/find -------------------------------------------------------------------------------- /files/home/cs50/pset3/peek: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset3/peek -------------------------------------------------------------------------------- /files/home/cs50/pset4/peek: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset4/peek -------------------------------------------------------------------------------- /files/home/cs50/unit1/cash: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/cash -------------------------------------------------------------------------------- /files/home/cs50/unit1/isbn: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/isbn -------------------------------------------------------------------------------- /files/home/cs50/unit2/calc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/calc -------------------------------------------------------------------------------- /files/home/cs50/unit3/race: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/race -------------------------------------------------------------------------------- /files/home/cs50/unit3/rng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/rng -------------------------------------------------------------------------------- /files/home/cs50/unit3/seek: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/seek -------------------------------------------------------------------------------- /files/home/cs50/unit4/peek: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/peek -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .bash_history 2 | .vim 3 | .viminfo 4 | *.deb 5 | files/var/c9sdk 6 | files/etc/version50 7 | -------------------------------------------------------------------------------- /files/home/cs50/hacker1/mario: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker1/mario -------------------------------------------------------------------------------- /files/home/cs50/hacker3/find: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker3/find -------------------------------------------------------------------------------- /files/home/cs50/hacker3/peek: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker3/peek -------------------------------------------------------------------------------- /files/home/cs50/hacker4/peek: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker4/peek -------------------------------------------------------------------------------- /files/home/cs50/pset1/greedy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset1/greedy -------------------------------------------------------------------------------- /files/home/cs50/pset1/hello: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset1/hello -------------------------------------------------------------------------------- /files/home/cs50/pset1/mario: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset1/mario -------------------------------------------------------------------------------- /files/home/cs50/pset1/water: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset1/water -------------------------------------------------------------------------------- /files/home/cs50/pset2/caesar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset2/caesar -------------------------------------------------------------------------------- /files/home/cs50/pset3/fifteen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset3/fifteen -------------------------------------------------------------------------------- /files/home/cs50/pset3/notes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset3/notes -------------------------------------------------------------------------------- /files/home/cs50/pset3/resize: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset3/resize -------------------------------------------------------------------------------- /files/home/cs50/pset4/resize: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset4/resize -------------------------------------------------------------------------------- /files/home/cs50/pset4/speller: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset4/speller -------------------------------------------------------------------------------- /files/home/cs50/pset5/speller: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/speller -------------------------------------------------------------------------------- /files/home/cs50/pset6/server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/server -------------------------------------------------------------------------------- /files/home/cs50/unit1/chart: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/chart -------------------------------------------------------------------------------- /files/home/cs50/unit1/credit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/credit -------------------------------------------------------------------------------- /files/home/cs50/unit1/hello: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/hello -------------------------------------------------------------------------------- /files/home/cs50/unit1/pennies: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/pennies -------------------------------------------------------------------------------- /files/home/cs50/unit2/caesar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/caesar -------------------------------------------------------------------------------- /files/home/cs50/unit2/hello: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/hello -------------------------------------------------------------------------------- /files/home/cs50/unit2/pennies: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/pennies -------------------------------------------------------------------------------- /files/home/cs50/unit3/fifteen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/fifteen -------------------------------------------------------------------------------- /files/home/cs50/unit4/finder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/finder -------------------------------------------------------------------------------- /files/home/cs50/unit4/notes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/notes -------------------------------------------------------------------------------- /files/home/cs50/unit4/resize: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/resize -------------------------------------------------------------------------------- /files/home/cs50/unit4/scale: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/scale -------------------------------------------------------------------------------- /files/home/cs50/unit4/shrink: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/shrink -------------------------------------------------------------------------------- /files/home/cs50/unit4/sudoku: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/sudoku -------------------------------------------------------------------------------- /files/home/cs50/unit5/cat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit5/cat.jpg -------------------------------------------------------------------------------- /files/home/cs50/hacker1/credit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker1/credit -------------------------------------------------------------------------------- /files/home/cs50/hacker3/fifteen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker3/fifteen -------------------------------------------------------------------------------- /files/home/cs50/hacker3/resize: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker3/resize -------------------------------------------------------------------------------- /files/home/cs50/hacker4/resize: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker4/resize -------------------------------------------------------------------------------- /files/home/cs50/pset2/initials: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset2/initials -------------------------------------------------------------------------------- /files/home/cs50/pset2/vigenere: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset2/vigenere -------------------------------------------------------------------------------- /files/home/cs50/pset6/bleep.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/bleep.pyc -------------------------------------------------------------------------------- /files/home/cs50/pset6/hello.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/hello.pyc -------------------------------------------------------------------------------- /files/home/cs50/pset6/smile.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/smile.pyc -------------------------------------------------------------------------------- /files/home/cs50/unit1/skittles: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/skittles -------------------------------------------------------------------------------- /files/home/cs50/unit2/vigenere: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/vigenere -------------------------------------------------------------------------------- /files/home/cs50/unit3/find/less: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/find/less -------------------------------------------------------------------------------- /files/home/cs50/unit3/find/more: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/find/more -------------------------------------------------------------------------------- /files/home/cs50/unit3/scramble: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/scramble -------------------------------------------------------------------------------- /files/home/cs50/unit4/scramble: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/scramble -------------------------------------------------------------------------------- /files/home/cs50/unit6/smile.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit6/smile.pyc -------------------------------------------------------------------------------- /files/var/www/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/var/www/icons/favicon.ico -------------------------------------------------------------------------------- /files/home/cs50/hacker2/initials: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/hacker2/initials -------------------------------------------------------------------------------- /files/home/cs50/pset2/devigenere: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset2/devigenere -------------------------------------------------------------------------------- /files/home/cs50/pset3/synthesize: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset3/synthesize -------------------------------------------------------------------------------- /files/home/cs50/pset6/analyzer.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/analyzer.pyc -------------------------------------------------------------------------------- /files/home/cs50/pset6/compare.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/compare.pyc -------------------------------------------------------------------------------- /files/home/cs50/pset6/helpers.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/helpers.pyc -------------------------------------------------------------------------------- /files/home/cs50/pset6/tweets.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/tweets.pyc -------------------------------------------------------------------------------- /files/home/cs50/unit1/fahrenheit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/fahrenheit -------------------------------------------------------------------------------- /files/home/cs50/unit1/mario/less: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/mario/less -------------------------------------------------------------------------------- /files/home/cs50/unit1/mario/more: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit1/mario/more -------------------------------------------------------------------------------- /files/home/cs50/unit2/devigenere: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/devigenere -------------------------------------------------------------------------------- /files/home/cs50/unit2/fahrenheit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/fahrenheit -------------------------------------------------------------------------------- /files/home/cs50/unit4/synthesize: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit4/synthesize -------------------------------------------------------------------------------- /files/home/cs50/unit6/analyzer.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit6/analyzer.pyc -------------------------------------------------------------------------------- /files/home/cs50/unit6/helpers.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit6/helpers.pyc -------------------------------------------------------------------------------- /files/home/cs50/unit6/tweets.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit6/tweets.pyc -------------------------------------------------------------------------------- /files/home/cs50/pset5/texts/hugo.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/texts/hugo.txt -------------------------------------------------------------------------------- /files/home/cs50/pset6/less/mario.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/less/mario.pyc -------------------------------------------------------------------------------- /files/home/cs50/pset6/more/mario.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/more/mario.pyc -------------------------------------------------------------------------------- /files/home/cs50/pset6/more/score.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/more/score.pyc -------------------------------------------------------------------------------- /files/home/cs50/unit2/initials/less: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/initials/less -------------------------------------------------------------------------------- /files/home/cs50/unit2/initials/more: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit2/initials/more -------------------------------------------------------------------------------- /files/home/cs50/unit3/fifteen-solver: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/unit3/fifteen-solver -------------------------------------------------------------------------------- /files/home/cs50/pset5/texts/holmes.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/texts/holmes.txt -------------------------------------------------------------------------------- /files/home/cs50/pset5/texts/xueqin2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/texts/xueqin2.txt -------------------------------------------------------------------------------- /files/home/cs50/pset6/less/compare.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/less/compare.pyc -------------------------------------------------------------------------------- /files/home/cs50/pset6/less/helpers.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/less/helpers.pyc -------------------------------------------------------------------------------- /files/home/cs50/pset6/more/helpers.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/more/helpers.pyc -------------------------------------------------------------------------------- /files/home/cs50/pset5/texts/christmas.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/texts/christmas.txt -------------------------------------------------------------------------------- /files/home/cs50/pset5/texts/sherlock.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/texts/sherlock.txt -------------------------------------------------------------------------------- /files/home/cs50/pset6/helpers_compare.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset6/helpers_compare.pyc -------------------------------------------------------------------------------- /files/home/cs50/pset5/texts/austinpowers.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cs50/ide50-deb/HEAD/files/home/cs50/pset5/texts/austinpowers.txt -------------------------------------------------------------------------------- /files/home/cs50/pset6/compare: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 3 | python3 "$DIR/compare.pyc" "$@" 4 | -------------------------------------------------------------------------------- /files/home/cs50/pset6/more/score: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 3 | python3 "$DIR/score.pyc" "$@" 4 | -------------------------------------------------------------------------------- /files/home/cs50/pset6/less/compare: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 3 | python3 "$DIR/compare.pyc" "$@" 4 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/texts/ralph.txt: -------------------------------------------------------------------------------- 1 | When I grow up, I want to be a principal or a caterpillar. I love you Principal Skinner! 2 | 3 | -Ralph Wiggum 4 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/quote.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | 5 | WORDS MISSPELLED: 0 6 | WORDS IN DICTIONARY: 143091 7 | WORDS IN TEXT: 117 8 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/daffodils.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | 5 | WORDS MISSPELLED: 0 6 | WORDS IN DICTIONARY: 143091 7 | WORDS IN TEXT: 158 8 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/ralph.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | Wiggum 5 | 6 | WORDS MISSPELLED: 1 7 | WORDS IN DICTIONARY: 143091 8 | WORDS IN TEXT: 20 9 | -------------------------------------------------------------------------------- /files/usr/bin/username50: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | username=${C9_USER:0:16} 4 | 5 | if [ "$1" == "-n" ]; then 6 | echo -n $username 7 | else 8 | echo $username 9 | fi -------------------------------------------------------------------------------- /files/etc/php5/mods-available/cs50.ini: -------------------------------------------------------------------------------- 1 | ; Display errors to STDOUT 2 | display_errors = On 3 | 4 | ; Overwrite c9 settings and set maxlifetime to 24 hours 5 | session.gc_maxlifetime = 86400 6 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/pneumonoultramicroscopicsilicovolcanoconiosis.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | 5 | WORDS MISSPELLED: 0 6 | WORDS IN DICTIONARY: 143091 7 | WORDS IN TEXT: 20 8 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/men.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | street's 5 | Amennnn 6 | street's 7 | 8 | WORDS MISSPELLED: 3 9 | WORDS IN DICTIONARY: 143091 10 | WORDS IN TEXT: 298 11 | -------------------------------------------------------------------------------- /files/home/ubuntu/workspace/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "node": true 5 | }, 6 | "globals": { 7 | "$": true, 8 | "jQuery": true 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /files/usr/bin/version50: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # determine version 4 | source /etc/version50 &> /dev/null 5 | 6 | if [ "$version" == "" ]; then 7 | declare version="unknown version" 8 | fi 9 | 10 | echo $version 11 | -------------------------------------------------------------------------------- /files/home/cs50/unit5/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Happy Cat 6 | 7 | 8 | Happy Cat 9 | 10 | 11 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/texts/pneumonoultramicroscopicsilicovolcanoconiosis.txt: -------------------------------------------------------------------------------- 1 | According to Merriam-Webster's Medical Dictionary, 2 | pneumonoultramicroscopicsilicovolcanoconiosis is a 3 | pneumoconiosis caused by inhalation of very fine 4 | silicate or quartz dust. 5 | -------------------------------------------------------------------------------- /files/home/cs50/pset6/bleep: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # http://stackoverflow.com/a/246128 4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | 6 | # python -m py_compile bleep.py 7 | # cd __pycache__/ 8 | # mv bleep.cpython-36.pyc ../bleep.pyc 9 | python3 "$DIR/bleep.pyc" "$@" 10 | -------------------------------------------------------------------------------- /files/home/cs50/pset6/hello: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # http://stackoverflow.com/a/246128 4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | 6 | # python -m py_compile hello.py 7 | # cd __pycache__/ 8 | # mv hello.cpython-36.pyc ../hello.pyc 9 | python3 "$DIR/hello.pyc" "$@" 10 | -------------------------------------------------------------------------------- /files/home/cs50/pset6/less/mario: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # http://stackoverflow.com/a/246128 4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | 6 | # python -m py_compile mario.py 7 | # cd __pycache__/ 8 | # mv mario.cpython-36.pyc ../mario.pyc 9 | python3 "$DIR/mario.pyc" "$@" 10 | -------------------------------------------------------------------------------- /files/home/cs50/pset6/more/mario: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # http://stackoverflow.com/a/246128 4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | 6 | # python -m py_compile mario.py 7 | # cd __pycache__/ 8 | # mv mario.cpython-36.pyc ../mario.pyc 9 | python3 "$DIR/mario.pyc" "$@" 10 | -------------------------------------------------------------------------------- /files/home/cs50/pset6/smile: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # http://stackoverflow.com/a/246128 4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | 6 | # python -m py_compile analyzer.py smile 7 | # cd __pycache__/ 8 | # mv analyzer.cpython-34.pyc ../analyzer.pyc 9 | # mv smilecpython-34.pyc ../smile 10 | python3 "$DIR/smile.pyc" "$@" 11 | -------------------------------------------------------------------------------- /files/home/cs50/unit6/smile: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # http://stackoverflow.com/a/246128 4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | 6 | # python -m py_compile analyzer.py smile 7 | # cd __pycache__/ 8 | # mv analyzer.cpython-34.pyc ../analyzer.pyc 9 | # mv smilecpython-34.pyc ../smile 10 | python3 "$DIR/smile.pyc" "$@" 11 | -------------------------------------------------------------------------------- /files/home/cs50/pset6/tweets: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # http://stackoverflow.com/a/246128 4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | 6 | # python -m py_compile helpers.py tweets 7 | # cd __pycache__/ 8 | # mv helpers.cpython-34.pyc ../helpers.pyc 9 | # mv tweetscypthon-34.pyc ../tweets.pyc 10 | python3 "$DIR/tweets.pyc" "$@" 11 | -------------------------------------------------------------------------------- /files/home/cs50/unit6/tweets: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # http://stackoverflow.com/a/246128 4 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 5 | 6 | # python -m py_compile helpers.py tweets 7 | # cd __pycache__/ 8 | # mv helpers.cpython-34.pyc ../helpers.pyc 9 | # mv tweetscypthon-34.pyc ../tweets.pyc 10 | python3 "$DIR/tweets.pyc" "$@" 11 | -------------------------------------------------------------------------------- /files/home/cs50/pset3/3x3.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 4 3 | 1 4 | 2 5 | 5 6 | 8 7 | 7 8 | 6 9 | 4 10 | 1 11 | 2 12 | 5 13 | 8 14 | 7 15 | 6 16 | 4 17 | 1 18 | 2 19 | 4 20 | 1 21 | 2 22 | 3 23 | 5 24 | 4 25 | 7 26 | 6 27 | 1 28 | 2 29 | 3 30 | 7 31 | 4 32 | 8 33 | 6 34 | 4 35 | 8 36 | 5 37 | 7 38 | 8 39 | 5 40 | 6 41 | 4 42 | 5 43 | 6 44 | 7 45 | 8 46 | 6 47 | 5 48 | 4 49 | 7 50 | 8 51 | 52 | -------------------------------------------------------------------------------- /files/home/cs50/unit3/3x3.txt: -------------------------------------------------------------------------------- 1 | 3 2 | 4 3 | 1 4 | 2 5 | 5 6 | 8 7 | 7 8 | 6 9 | 4 10 | 1 11 | 2 12 | 5 13 | 8 14 | 7 15 | 6 16 | 4 17 | 1 18 | 2 19 | 4 20 | 1 21 | 2 22 | 3 23 | 5 24 | 4 25 | 7 26 | 6 27 | 1 28 | 2 29 | 3 30 | 7 31 | 4 32 | 8 33 | 6 34 | 4 35 | 8 36 | 5 37 | 7 38 | 8 39 | 5 40 | 6 41 | 4 42 | 5 43 | 6 44 | 7 45 | 8 46 | 6 47 | 5 48 | 4 49 | 7 50 | 8 51 | 52 | -------------------------------------------------------------------------------- /files/home/ubuntu/.cs50/py_modules/pylint50.py: -------------------------------------------------------------------------------- 1 | from astroid import MANAGER 2 | from astroid import scoped_nodes 3 | 4 | 5 | def register(linter): 6 | pass 7 | 8 | 9 | def transform(cls): 10 | """ Stop pylint from complaining about cs50.SQL """ 11 | 12 | if cls.name == 'cs50': 13 | import cs50 14 | cls.locals["SQL"] = [scoped_nodes.Class("SQL", None)] 15 | 16 | MANAGER.register_transform(scoped_nodes.Module, transform) 17 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/witch.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | BEDEVERE 5 | BEDEVERE 6 | BEDEVERE 7 | BEDEVERE 8 | BEDEVERE 9 | BEDEVERE 10 | BEDEVERE 11 | BEDEVERE 12 | BEDEVERE 13 | BEDEVERE 14 | BEDEVERE 15 | BEDEVERE 16 | B 17 | BEDEVERE 18 | BEDEVERE 19 | BEDEVERE 20 | Aah 21 | BEDEVERE 22 | BEDEVERE 23 | Uhhh 24 | Oooh 25 | BEDEVERE 26 | BEDEVERE 27 | 28 | WORDS MISSPELLED: 23 29 | WORDS IN DICTIONARY: 143091 30 | WORDS IN TEXT: 372 31 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | 3 | before_install: 4 | - gem install fpm 5 | - pip install awscli 6 | 7 | script: make deb 8 | 9 | before_deploy: 10 | - aws s3 sync s3://mirror.cs50.net/ide50/ .travis/ide50/ 11 | - echo -e $GPG_SECRET | gpg --import 12 | deploy: 13 | provider: script 14 | script: .travis/deb64 15 | skip_cleanup: true 16 | on: 17 | branch: master 18 | after_deploy: aws cloudfront create-invalidation --distribution-id "$MIRROR_DIST_ID" --paths "/ide50/*" 19 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/constitution.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | USConstitution 5 | http 6 | usconstitution 7 | const 8 | html 9 | tempore 10 | Impeachments 11 | Nays 12 | Nays 13 | repassed 14 | Piracies 15 | Felonies 16 | attainted 17 | Langdon 18 | Gilman 19 | Brearley 20 | Mifflin 21 | Clymer 22 | Fitzsimons 23 | Jared 24 | Gouvernour 25 | McHenry 26 | Jenifer 27 | Blount 28 | Spaight 29 | Cotesworth 30 | tempore 31 | tempore 32 | tempore 33 | tempore 34 | 35 | WORDS MISSPELLED: 30 36 | WORDS IN DICTIONARY: 143091 37 | WORDS IN TEXT: 7573 38 | -------------------------------------------------------------------------------- /files/home/ubuntu/.cs50/prompt: -------------------------------------------------------------------------------- 1 | cwdSlashAtEnd () { 2 | TITLE="$(dirs +0)" 3 | 4 | if [ -z "$1" ] ; then 5 | # no argument, full cwd 6 | TITLE="${TITLE%/}" 7 | else 8 | # one arg, basename only 9 | TITLE="${TITLE##*/}" 10 | fi 11 | 12 | echo -n "${TITLE}/" 13 | } 14 | 15 | PS1='\[$(printf "\x0f")\033[01;34m\]$(cwdSlashAtEnd)\[\033[00m\]$(__git_ps1 " (%s)") $ ' 16 | 17 | case "$TERM" in 18 | xterm-*|rxvt*|screen*) 19 | PS1='\[\e]0;\a\033k$(cwdSlashAtEnd base)\033\\\]'"$PS1" 20 | ;; 21 | *) 22 | ;; 23 | esac -------------------------------------------------------------------------------- /files/home/cs50/pset5/texts/quote.txt: -------------------------------------------------------------------------------- 1 | It is known that there are an infinite number of worlds, simply because there is an infinite amount of space for them to be in. However, not every one of them is inhabited. Therefore, there must be a finite number of inhabited worlds. Any finite number divided by infinity is as near to nothing as makes no odds, so the average population of all planets in the universe can be said to be zero. From this it follows that the population of the whole universe is zero, and that all people that you may meet from time to time are merely the products of a deranged imagination. 2 | 3 | -Douglas Adams - The Restaurant at the End of the Universe 4 | -------------------------------------------------------------------------------- /files/etc/bash_completion.d/make: -------------------------------------------------------------------------------- 1 | # bash completion for make 2 | 3 | _make() { 4 | local cur 5 | COMPREPLY=() 6 | cur="${COMP_WORDS[COMP_CWORD]}" 7 | if [[ ${cur} != -* ]]; then 8 | 9 | # back up nullglob setting 10 | local glob=$(shopt -p nullglob) 11 | 12 | # no suggestion when no .c files exist 13 | shopt -s nullglob 14 | 15 | # complete C filenames without the .c extension 16 | COMPREPLY=( $(compgen -W "$(for f in *.c; do echo ${f%.c}; done)" -- ${cur}) ) 17 | 18 | # restore nullglob setting 19 | eval "${glob}" &> /dev/null 20 | return 0 21 | fi 22 | } 23 | 24 | complete -F _make make 25 | -------------------------------------------------------------------------------- /files/usr/bin/password50: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | password_file=/home/ubuntu/.cs50/password 4 | if [ -f /home/ubuntu/.password50 ]; then 5 | mv /home/ubuntu/.password50 $password_file &> /dev/null 6 | fi 7 | 8 | create_password() { 9 | # generate 16 character alphanumeric password from urandom 10 | password="$(tr -dc [:alnum:] "$1" 14 | chmod 600 $password_file 15 | 16 | } 17 | 18 | if [ ! -f $password_file ]; then 19 | create_password $password_file 20 | fi 21 | 22 | source $password_file 23 | 24 | if [ "$1" == "-n" ]; then 25 | echo -n $password 26 | else 27 | echo $password 28 | fi 29 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/package.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | Crittenden 5 | Seinfeld 6 | Seinfeld 7 | Costanza 8 | Dreyfus 9 | Benes 10 | Benes 11 | Ohhhhhh 12 | Yesssss 13 | shi 14 | Seinfeld 15 | bombable 16 | bombable 17 | photog 18 | Leo's 19 | Kramer's 20 | Benes 21 | uh 22 | Benes 23 | Macardo 24 | Look's 25 | Zoutraph 26 | Resnick 27 | Resnick 28 | Kramer's 29 | Uh 30 | stokedness 31 | T 32 | Benes 33 | B 34 | e 35 | n 36 | e 37 | s 38 | uh 39 | uh 40 | Resnick's 41 | Resnick 42 | Resnick 43 | Resnick 44 | Poloma 45 | Resnick 46 | Resnick 47 | Resnick 48 | Poloma 49 | Shhhhhh 50 | Resnick's 51 | Resnick 52 | Resnick 53 | Resnick 54 | Resnick 55 | Seinfeld 56 | Bennette 57 | Benes 58 | Benes 59 | Vanostran 60 | Benes 61 | uh 62 | Hoffer 63 | Mandale 64 | Oohhhh 65 | Seinfeld 66 | 67 | WORDS MISSPELLED: 62 68 | WORDS IN DICTIONARY: 143091 69 | WORDS IN TEXT: 3161 70 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/texts/daffodils.txt: -------------------------------------------------------------------------------- 1 | Daffodils 2 | 3 | I wandered lonely as a cloud 4 | That floats on high o'er vales and hills, 5 | When all at once I saw a crowd, 6 | A host, of golden daffodils; 7 | Beside the lake, beneath the trees, 8 | Fluttering and dancing in the breeze. 9 | 10 | Continuous as the stars that shine 11 | And twinkle on the milky way, 12 | They stretched in never-ending line 13 | Along the margin of a bay: 14 | Ten thousand saw I at a glance, 15 | Tossing their heads in sprightly dance. 16 | 17 | The waves beside them danced; but they 18 | Out-did the sparkling waves in glee: 19 | A poet could not but be gay, 20 | In such a jocund company: 21 | I gazed--and gazed--but little thought 22 | What wealth the show to me had brought: 23 | 24 | For oft, when on my couch I lie 25 | In vacant or in pensive mood, 26 | They flash upon that inward eye 27 | Which is the bliss of solitude; 28 | And then my heart with pleasure fills, 29 | And dances with the daffodils. 30 | 31 | -- William Wordsworth 32 | 33 | -------------------------------------------------------------------------------- /files/home/cs50/pset3/4x4.txt: -------------------------------------------------------------------------------- 1 | 4 2 | 5 3 | 6 4 | 1 5 | 2 6 | 4 7 | 5 8 | 6 9 | 1 10 | 2 11 | 3 12 | 7 13 | 11 14 | 10 15 | 9 16 | 1 17 | 2 18 | 3 19 | 4 20 | 5 21 | 6 22 | 8 23 | 1 24 | 2 25 | 3 26 | 4 27 | 7 28 | 11 29 | 10 30 | 9 31 | 14 32 | 13 33 | 12 34 | 1 35 | 2 36 | 3 37 | 4 38 | 14 39 | 13 40 | 12 41 | 1 42 | 2 43 | 3 44 | 4 45 | 14 46 | 13 47 | 12 48 | 1 49 | 2 50 | 3 51 | 4 52 | 12 53 | 9 54 | 15 55 | 1 56 | 2 57 | 3 58 | 4 59 | 12 60 | 9 61 | 13 62 | 14 63 | 9 64 | 13 65 | 14 66 | 7 67 | 5 68 | 9 69 | 13 70 | 14 71 | 15 72 | 10 73 | 11 74 | 5 75 | 9 76 | 13 77 | 7 78 | 11 79 | 5 80 | 9 81 | 13 82 | 7 83 | 11 84 | 15 85 | 10 86 | 5 87 | 9 88 | 13 89 | 15 90 | 11 91 | 8 92 | 6 93 | 7 94 | 8 95 | 14 96 | 12 97 | 6 98 | 7 99 | 8 100 | 14 101 | 12 102 | 6 103 | 7 104 | 8 105 | 14 106 | 15 107 | 11 108 | 10 109 | 6 110 | 7 111 | 8 112 | 12 113 | 15 114 | 11 115 | 10 116 | 15 117 | 11 118 | 14 119 | 12 120 | 11 121 | 15 122 | 10 123 | 14 124 | 15 125 | 11 126 | 12 127 | -------------------------------------------------------------------------------- /files/home/cs50/unit3/4x4.txt: -------------------------------------------------------------------------------- 1 | 4 2 | 5 3 | 6 4 | 1 5 | 2 6 | 4 7 | 5 8 | 6 9 | 1 10 | 2 11 | 3 12 | 7 13 | 11 14 | 10 15 | 9 16 | 1 17 | 2 18 | 3 19 | 4 20 | 5 21 | 6 22 | 8 23 | 1 24 | 2 25 | 3 26 | 4 27 | 7 28 | 11 29 | 10 30 | 9 31 | 14 32 | 13 33 | 12 34 | 1 35 | 2 36 | 3 37 | 4 38 | 14 39 | 13 40 | 12 41 | 1 42 | 2 43 | 3 44 | 4 45 | 14 46 | 13 47 | 12 48 | 1 49 | 2 50 | 3 51 | 4 52 | 12 53 | 9 54 | 15 55 | 1 56 | 2 57 | 3 58 | 4 59 | 12 60 | 9 61 | 13 62 | 14 63 | 9 64 | 13 65 | 14 66 | 7 67 | 5 68 | 9 69 | 13 70 | 14 71 | 15 72 | 10 73 | 11 74 | 5 75 | 9 76 | 13 77 | 7 78 | 11 79 | 5 80 | 9 81 | 13 82 | 7 83 | 11 84 | 15 85 | 10 86 | 5 87 | 9 88 | 13 89 | 15 90 | 11 91 | 8 92 | 6 93 | 7 94 | 8 95 | 14 96 | 12 97 | 6 98 | 7 99 | 8 100 | 14 101 | 12 102 | 6 103 | 7 104 | 8 105 | 14 106 | 15 107 | 11 108 | 10 109 | 6 110 | 7 111 | 8 112 | 12 113 | 15 114 | 11 115 | 10 116 | 15 117 | 11 118 | 14 119 | 12 120 | 11 121 | 15 122 | 10 123 | 14 124 | 15 125 | 11 126 | 12 127 | -------------------------------------------------------------------------------- /.travis/deb64: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # fail on error 4 | set -e 5 | 6 | # packages root 7 | DEBPATH=".travis/ide50/2015/dists/trusty/main/binary-amd64" 8 | 9 | # move built deb to DEBPATH 10 | mv *amd64.deb $DEBPATH 2> /dev/null 11 | cd $DEBPATH 12 | 13 | # remove index files 14 | rm Release InRelease Release.gpg Packages Packages.gz 15 | 16 | # create Packages index (lists packages metadata) 17 | dpkg-scanpackages . > Packages 18 | 19 | # remove leading "./" from deb paths 20 | # https://wiki.debian.org/DebianRepository/Format?action=show&redirect=RepositoryFormat#Filename 21 | sed -i 's/\.\///g' Packages 22 | 23 | # create compressed version of Packages (used by some clients) 24 | gzip -9c Packages > Packages.gz 25 | 26 | # create Release file (contains indices checksums) and sign it 27 | # used by old clients 28 | apt-ftparchive release . > Release 29 | gpg --yes -abs -o Release.gpg Release 30 | 31 | # create InRelease (Release + text signature combined) 32 | # used by new clients 33 | gpg --yes --clearsign -o InRelease Release 34 | 35 | # upload new packages to mirror 36 | aws s3 sync $TRAVIS_BUILD_DIR/.travis/ide50/ s3://mirror.cs50.net/ide50/ 37 | -------------------------------------------------------------------------------- /files/usr/bin/hostname50: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # parse command-line options 4 | while [ $# -gt 0 ]; do 5 | case "$1" in 6 | 7 | # whether to print $C9_PORT 8 | --c9-port) 9 | c9_port=1 10 | 11 | ;; 12 | 13 | # whether to print protocol 14 | --protocol) 15 | protocol=1 16 | ;; 17 | esac 18 | 19 | shift 20 | done 21 | 22 | # protocol should be http offline and https online 23 | if [ $protocol ]; then 24 | echo -n "http" 25 | if [ -z "${IDE_OFFLINE+x}" ];then 26 | echo -n "s" 27 | fi 28 | 29 | echo -n "://" 30 | fi 31 | 32 | if [ "${IDE_OFFLINE+x}" ]; then 33 | echo -n "${C9_HOSTNAME}" 34 | else 35 | 36 | # determine external host that IDE is running on to calculate app domain 37 | source /home/ubuntu/.cs50/stats/domain &> /dev/null 38 | if [ "$domain" == "" ]; then 39 | 40 | # assume hostname is cs50.io by default 41 | declare domain="cs50.io" 42 | elif [ "$domain" == "c9.io" ]; then 43 | domain="c9users.io" 44 | fi 45 | 46 | # remove .c9.io substring from C9_HOSTNAME and replace with domain 47 | echo -n "${C9_HOSTNAME%c9*.io}${domain}" 48 | fi 49 | 50 | # print C9_PORT when should 51 | if [ $c9_port ]; then 52 | echo ":${C9_PORT}" 53 | fi 54 | 55 | -------------------------------------------------------------------------------- /files/etc/apache2/conf-available/cs50-template.conf: -------------------------------------------------------------------------------- 1 | # allow all overrides and options Require all granted 2 | 3 | AllowOverride All 4 | Options All 5 | Require all granted 6 | 7 | 8 | # VirtualHost will override httpd.conf defaults 9 | 10 | ServerName https://${C9_HOSTNAME}:443 11 | 12 | # get the server name from the Host: header 13 | UseCanonicalName Off 14 | 15 | # this log format can be split per-virtual-host based on the first field LogFormat "%V %h %l %u %t \"%r\" $ 16 | # /home/ubuntu/logs/httpd/access_log vcommon ErrorLog /home/ubuntu/logs/httpd/error_log 17 | RewriteEngine On 18 | 19 | # for online instances: forward http to https 20 | RewriteCond %{HTTP:x-forwarded-proto} ^http$ 21 | RewriteRule (.*) https://%{SERVER_NAME}$1 [R=301,L] 22 | 23 | # VirtualDocumentRoot http://httpd.apache.org/docs/2.2/vhosts/mass.html#simp$ 24 | RewriteRule ^/favicon.ico$ /var/www/icons/favicon.ico [L] 25 | 26 | RewriteCond %{REQUEST_URI} !^/(icons|phpMyAdmin) [NC] 27 | RewriteCond %{REQUEST_URI} ^/(.*) [NC] 28 | RewriteRule ^/(.*)$ "/home/ubuntu/workspace/vhosts/$1" [L] 29 | 30 | RewriteCond %{REQUEST_URI} !^/(icons|phpMyAdmin) [NC] 31 | RewriteCond %{REQUEST_URI} ^/ [NC] 32 | RewriteRule ^/$ "/home/ubuntu/workspace/vhosts/" [L] 33 | 34 | # not production 35 | SetEnv APPLICATION_ENV dev 36 | 37 | 38 | ServerName https://${C9_HOSTNAME} 39 | 40 | # avoid favicon.ico errors in logs 41 | Alias /favicon.ico /var/www/icons/favicon.ico -------------------------------------------------------------------------------- /files/home/ubuntu/.cs50/bin/http-server: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # default options 4 | a="-a 0.0.0.0" 5 | c="-c-1" 6 | cors="--cors" 7 | i="-i false" 8 | port="-p 8080" 9 | options="--no-dotfiles" 10 | 11 | # override default options 12 | while test ${#} -gt 0 13 | do 14 | if [[ "$1" =~ ^-a$ ]]; then 15 | a="$1 $2" 16 | shift 17 | shift 18 | elif [[ "$1" =~ ^-c-?[0-9]+$ ]]; then 19 | c="$1" 20 | shift 21 | elif [[ "$1" =~ ^--cors(=.*)?$ ]]; then 22 | cors="$1" 23 | shift 24 | elif [[ "$1" =~ ^-i$ ]]; then 25 | i="$1 $2" 26 | shift 27 | shift 28 | elif [[ "$1" =~ ^-p[^\s]+ ]]; then 29 | port="$1" 30 | shift 31 | elif [[ "$1" == "-p" ]]; then 32 | port="$1 $2" 33 | shift 34 | shift 35 | else 36 | options+=" $1" 37 | shift 38 | fi 39 | done 40 | 41 | # kill any process listing on the specified port 42 | # regex to handle -pxxxx, -p xxxx 43 | fuser --kill "${port//[^0-9]}/tcp" &> /dev/null 44 | 45 | # spawn http-server, retaining colorized output 46 | script --flush --quiet --return /dev/null --command "http-server $a $c $cors $i $port $options" | 47 | while IFS= read -r line 48 | do 49 | # rewrite address as hostname50 50 | if command -v hostname50 > /dev/null 2>&1 && [[ "$line" =~ "Available on:" ]]; then 51 | echo "$line" 52 | IFS= read -r line 53 | echo "$line" | sed "s#\(.*\)http://[^:]\+\(:.\+\)#\1$(hostname50 --protocol)\2#" 54 | while IFS= read -r line 55 | do 56 | if [[ "$line" =~ "Hit CTRL-C to stop the server" ]]; then 57 | echo "$line" 58 | break 59 | fi 60 | done 61 | else 62 | echo "$line" 63 | fi 64 | done 65 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/texts/men.txt: -------------------------------------------------------------------------------- 1 | It's Raining Men 2 | by The Weather Girls 3 | 4 | 5 | Hi - Hi! We're your Weather Girls - Ah-huh - 6 | And have we got news for you - You better listen! 7 | Get ready, all you lonely girls 8 | and leave those umbrellas at home. - Alright! - 9 | 10 | Humidity is rising - Barometer's getting low 11 | According to all sources, the street's the place to go 12 | Cause tonight for the first time 13 | Just about half-past ten 14 | For the first time in history 15 | It's gonna start raining men. 16 | 17 | It's Raining Men! Hallelujah! - It's Raining Men! Amen! 18 | I'm gonna go out to run and let myself get 19 | Absolutely soaking wet! 20 | It's Raining Men! Hallelujah! 21 | It's Raining Men! Every Specimen! 22 | Tall, blonde, dark and lean 23 | Rough and tough and strong and mean 24 | 25 | God bless Mother Nature, she's a single woman too 26 | She took off to heaven and she did what she had to do 27 | She taught every angel to rearrange the sky 28 | So that each and every woman could find her perfect guy 29 | It's Raining Men! Hallelujah! - It's Raining Men! Amen! 30 | It's Raining Men! Hallelujah! 31 | It's Raining Men! Amennnn! 32 | 33 | I feel stormy weather / Moving in about to begin 34 | Hear the thunder / Don't you lose your head 35 | Rip off the roof and stay in bed 36 | 37 | God bless Mother Nature, she's a single woman too 38 | She took off to heaven and she did what she had to do 39 | She taught every angel to rearrange the sky 40 | So that each and every woman could find her perfect guy 41 | It's Raining Men! Yeah! 42 | 43 | Humidity is rising - Barometer's getting low 44 | According to all sources, the street's the place to go 45 | Cause tonight for the first time 46 | Just about half-past ten 47 | For the first time in history 48 | It's gonna start raining men. 49 | 50 | It's Raining Men! Hallelujah! - It's Raining Men! Amen! 51 | It's Raining Men! Hallelujah! - It's Raining Men! 52 | 53 | -------------------------------------------------------------------------------- /files/usr/bin/decomment50: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # decomment50 3 | # intelligently strips a C or php file of comments 4 | # outputs a newly stripped file with the tag _decommented at the end 5 | # https://xkcd.com/208/ 6 | # 7 | # Annaleah Ernst & Kareem Omar 8 | # CS50 jterm 2016 9 | # annaleahernst@college.harvard.edu 10 | 11 | import re 12 | from sys import argv 13 | 14 | def decomment50(in_fname, out_fname): 15 | # deals with strings vs comments 16 | def replacer(match): 17 | match_string = match.group(0) 18 | 19 | # ignore comment characters inside of string and char literals 20 | return match_string if match_string[0] == '"' or match_string[0] == '\'' else '' 21 | 22 | # handles stand alone // comment, inline comment, stand alone /**/ comments, inline block comments, and strings 23 | regex_c_php = r'^[ \t\f\v]*//.*?(\n|$)|//.*?$|^[ \t\f\v]*/\*.*?\*/(\n|$)|/\*.*?\*/|\'(?:\\.|[^\\\'])*\'|"(?:\\.|[^\\"])*"' 24 | 25 | # handles php specific comment symbol # 26 | regex_php = r'|^[ \t\f\v]*#.*?(\n|$)|#.*?$' 27 | 28 | try: 29 | with open(in_fname,'r') as in_file, open(out_fname,'w') as out_file: 30 | 31 | # regex pattern based on what sort of file we're reading 32 | regex_pattern = re.compile(regex_c_php + (regex_php if in_fname[-4:] == '.php' else ''), re.DOTALL | re.MULTILINE) 33 | out_file.write(re.sub(regex_pattern, replacer, in_file.read())) 34 | 35 | # strip out shorthand file name 36 | file_name = lambda fname: fname[max(fname.rfind('/'), fname.rfind('\\'))+1:] 37 | return 'Successfully decommented ' + file_name(in_fname) + ' and saved in ' + file_name(out_fname) 38 | 39 | except: 40 | return 'Failed to open file.' 41 | 42 | # check user input 43 | if len(argv) != 2 : 44 | print("Usage: decomment50.py ") 45 | else : 46 | # get output file name 47 | dot = argv[1].rfind('.') 48 | print(decomment50(argv[1],argv[1][:dot] + "_decommented" + argv[1][dot:])) 49 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## IDE 50 2 | 3 | ### Rolling a new version of ide50 deb 4 | 5 | (Assumes your CWD is the root of this repo) 6 | 7 | After making desired changes: 8 | * Be sure to set `VERSION` in `Makefile` to the new version. 9 | * Add changelog entry to `changelog`. 10 | 11 | #### Authentication 12 | 13 | (Should be done once) 14 | 15 | This package requires cloning some private GitHub repos meanwhile. In order to 16 | be able to build a version of this package, you need to have the correct access 17 | rights to these repos. 18 | 19 | You may use existing SSH keys or [generate](https://help.github.com/articles/generating-an-ssh-key/) new ones. Assuming you have a pair of keys: 20 | 21 | ``` 22 | $ mkdir .ssh 23 | $ cp path/to/public_key .ssh 24 | $ cp path/to/private_key .ssh 25 | ``` 26 | 27 | #### Building 28 | 29 | ``` 30 | $ make bash 31 | $ make deb 32 | ``` 33 | 34 | #### Installing 35 | 36 | ``` 37 | sudo -E dpkg --force-confnew --force-confmiss -i ide50_*.deb 38 | ``` 39 | 40 | ### Pushing deb to mirror 41 | 1. Build new version of deb as described above. 42 | 1. `scp ide50_*.deb user@local.cdn.cs50.net:~ # copy the deb to mirror` 43 | 1. `ssh user@local.cdn.cs50.net` 44 | 1. `sudo su rbowden # rbowden has the script to update the deb in mirror` 45 | 1. `cp ide50_*.deb /home/rbowden # copy the deb to rbowden's home folder` 46 | 1. `cd # go to rbowden's home` 47 | 1. `chown rbowden:producers ide50_*.deb # fix ownership` 48 | 1. `sudo bash #prep environment` 49 | 1. Finally execute the scrip that effectively uploads all debs in rbowden's home folder to production. It will ask for gpg password which is in the Heads 1password. 50 | 1. `sh deb/deb64.sh` 51 | 1. If you want to delete older versions: `cd /srv/www/vhosts/mirror.cs50.net/htdocs/ide50/2015/dists/trusty/main/binary-amd64; rm ide50_{N-1}; push50 -d` 52 | 1. Wait a few moments for the mirrors to sync. 53 | 1. At this point it's a good idea to test `sudo apt-get update` in the IDE to make sure everything works. Also, logs and errors generated by update50 can be found at `/home/ubuntu/.cs50/logs/update50.log` 54 | 55 | -------------------------------------------------------------------------------- /files/home/ubuntu/.cs50/bin/flask: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # flask run 4 | if [[ "$1" == "run" ]]; then 5 | 6 | # otherwise FLASK_DEBUG=1 suppresses this error in shell 7 | if [[ ! -z "$FLASK_APP" && ! -f "$FLASK_APP" ]]; then 8 | echo "Usage: flask run [OPTIONS]" 9 | echo 10 | echo "Error: The file/path provided ($FLASK_APP) does not appear to exist. Please verify the path is correct. If app is not on PYTHONPATH, ensure the extension is .py" 11 | exit 1 12 | fi 13 | 14 | # default options 15 | host="--host=0.0.0.0" 16 | port="--port=8080" 17 | reload="--reload" 18 | 19 | # remove when https://github.com/miguelgrinberg/Flask-SocketIO/pull/659 is merged 20 | if flask run --help | grep --quiet -- "--with-threads"; then 21 | threads="--with-threads"; 22 | fi 23 | 24 | options="" 25 | 26 | # override default options 27 | shift 28 | while test ${#} -gt 0 29 | do 30 | if [[ "$1" =~ ^--host= || "$1" =~ ^-h[^\s]+ ]]; then 31 | host="$1" 32 | elif [[ "$1" == "-h" || "$1" == "--host" ]]; then 33 | host="$1 $2" 34 | shift 35 | elif [[ "$1" =~ ^--port= || "$1" =~ ^-p[^\s]+ ]]; then 36 | port="$1" 37 | elif [[ "$1" == "-p" || "$1" == "--port" ]]; then 38 | port="$1 $2" 39 | shift 40 | elif [[ "$1" =~ ^--(no-)?reload$ ]]; then 41 | reload="$1" 42 | elif [[ "$1" =~ ^--with(out)?-threads$ ]]; then 43 | threads="$1" 44 | else 45 | options+=" $1" 46 | fi 47 | shift 48 | done 49 | 50 | # kill any process listing on the specified port 51 | # regex to handle -pxxxx, -p xxxx, --port xxxx, --port=xxxx 52 | fuser --kill "${port//[^0-9]}/tcp" &> /dev/null 53 | 54 | # spawn flask 55 | script --flush --quiet --return /dev/null --command "FLASK_APP=\"$FLASK_APP\" FLASK_DEBUG=\"$FLASK_DEBUG\" flask run $host $port $reload $threads $options" | 56 | while IFS= read -r line 57 | do 58 | # rewrite address as hostname50 59 | echo "$line" | sed "s#\( *Running on \)http://[^:]\+\(:.\+\)#\1$(hostname50 --protocol)\2#" 60 | done 61 | else 62 | command flask "$@" 63 | fi 64 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | FILES_DIR := files 2 | C9SDK_DIR := $(FILES_DIR)/var/c9sdk 3 | CONFIGS_DIR := $(C9SDK_DIR)/configs/ide 4 | OFFLINE_DIR := /tmp/ide 5 | PLUGINS_DIR := $(C9SDK_DIR)/plugins 6 | VERSION_FILE := $(FILES_DIR)/etc/version50 7 | 8 | PLUGINS := audioplayer browser cat debug gist hex info presentation simple statuspage theme 9 | 10 | NAME := ide50 11 | VERSION := 158 12 | 13 | define getplugin 14 | @echo "\nFetching $(1)..." 15 | @plugin_dir="$(PLUGINS_DIR)/c9.ide.cs50.$(1)"; \ 16 | mkdir -p "$$plugin_dir"; \ 17 | git clone --depth=1 "https://github.com/cs50/harvard.cs50.$(1).git" "$$plugin_dir"; \ 18 | rm -rf "$$plugin_dir/README.md" "$$plugin_dir/.git"* 19 | 20 | endef 21 | 22 | .PHONY: bash 23 | bash: 24 | docker run -i --rm -t -v "$(PWD):/root" cs50/cli 25 | 26 | .PHONY: deb 27 | deb: clean Makefile 28 | @echo "\nDownloading latest CS50 plugins..." 29 | $(foreach plugin,$(PLUGINS),$(call getplugin,$(plugin))) 30 | 31 | @echo "\nFetching latest offline configs..." 32 | mkdir -p "$(CONFIGS_DIR)" 33 | git clone --depth=1 https://github.com/cs50/ide.git "$(OFFLINE_DIR)" 34 | @cp "$(OFFLINE_DIR)"/files/workspace-cs50.js "$(CONFIGS_DIR)" 35 | 36 | @echo "\nBuilding Deb..." 37 | echo "version=$(VERSION)" > "$(VERSION_FILE)" 38 | 39 | # set permissions 40 | chmod -R 755 "$(FILES_DIR)/usr/bin/" 41 | chmod 644 "$(VERSION_FILE)" "$(FILES_DIR)/etc/profile.d/ide50.sh" "$(FILES_DIR)/home/ubuntu/.cs50/prompt" 42 | 43 | fpm \ 44 | -C "$(FILES_DIR)" \ 45 | --after-install postinst \ 46 | --category misc \ 47 | --deb-changelog changelog \ 48 | --deb-no-default-config-files \ 49 | --deb-priority optional \ 50 | --depends \ 51 | "adminer50 (>= 1.0.1), \ 52 | apache2, \ 53 | astyle (>= 3.0.1), \ 54 | bc, \ 55 | clang-3.8, \ 56 | dnsutils, \ 57 | dos2unix, \ 58 | git (>= 1:2.13.0), \ 59 | git-lfs (>= 2.3.4), \ 60 | gdbserver, \ 61 | inotify-tools, \ 62 | libcs50-java (>= 2.0.2), \ 63 | libphp-phpmailer, \ 64 | libxslt1-dev, \ 65 | manpages-dev, \ 66 | ngrok-client, \ 67 | nodejs, \ 68 | openjdk-7-jdk, \ 69 | pgloader (>= 3.4.1), \ 70 | php-cs50 (>= 6.0.0), \ 71 | php5-cgi, \ 72 | php5-curl, \ 73 | php5-sqlite, \ 74 | php5-xdebug, \ 75 | phpliteadmin (>= 1.4.0), \ 76 | sqlite3, \ 77 | telnet, \ 78 | traceroute, \ 79 | wamerican, \ 80 | whois" \ 81 | --license "" \ 82 | --maintainer "CS50 " \ 83 | -n "$(NAME)" \ 84 | -s dir \ 85 | -t deb \ 86 | -v $(VERSION) \ 87 | --vendor CS50 \ 88 | --description "installs necessary software on CS50 IDE" \ 89 | --provides "$(NAME)" \ 90 | --url "https://github.com/cs50" \ 91 | . 92 | 93 | clean: 94 | @echo "Cleaning up..." 95 | rm -rf *.deb "$(C9SDK_DIR)" "$(OFFLINE_DIR)" "$(VERSION_FILE)" 96 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/texts/witch.txt: -------------------------------------------------------------------------------- 1 | CROWD: A witch! A witch! A witch! We've got a witch! A witch! 2 | 3 | VILLAGER #1: We have found a witch, might we burn her? 4 | 5 | CROWD: Burn her! Burn! 6 | 7 | BEDEVERE: How do you know she is a witch? 8 | 9 | VILLAGER #2: She looks like one. 10 | 11 | BEDEVERE: Bring her forward. 12 | 13 | WITCH: I'm not a witch. I'm not a witch. 14 | 15 | BEDEVERE: But you are dressed as one. 16 | 17 | WITCH: They dressed me up like this. 18 | 19 | CROWD: No, we didn't -- no. 20 | 21 | WITCH: And this isn't my nose, it's a false one. 22 | 23 | BEDEVERE: Well? 24 | 25 | VILLAGER #1: Well, we did do the nose. 26 | 27 | BEDEVERE: The nose? 28 | 29 | VILLAGER #1: And the hat -- but she is a witch! 30 | 31 | CROWD: Burn her! Witch! Witch! Burn her! 32 | 33 | BEDEVERE: Did you dress her up like this? 34 | 35 | CROWD: No, no... no ... yes. Yes, yes, a bit, a bit. 36 | 37 | VILLAGER #1: She has got a wart. 38 | 39 | BEDEVERE: What makes you think she is a witch? 40 | 41 | VILLAGER #3: Well, she turned me into a newt. 42 | 43 | BEDEVERE: A newt? 44 | 45 | VILLAGER #3: I got better. 46 | 47 | VILLAGER #2: Burn her anyway! 48 | 49 | CROWD: Burn! Burn her! 50 | 51 | BEDEVERE: Quiet, quiet. Quiet! There are ways of telling whether she is a witch. 52 | 53 | CROWD: Are there? What are they? 54 | 55 | VILLAGER #2: Do they hurt? 56 | 57 | BEDEVERE: Tell me, what do you do with witches? 58 | 59 | VILLAGER #2: Burn! 60 | 61 | CROWD: Burn, burn them up! 62 | 63 | BEDEVERE: And what do you burn apart from witches? 64 | 65 | VILLAGER #1: More witches! 66 | 67 | VILLAGER #2: Wood! 68 | 69 | BEDEVERE: So, why do witches burn? 70 | 71 | [pause] 72 | 73 | VILLAGER #3: B--... 'cause they're made of wood...? 74 | 75 | BEDEVERE: Good! 76 | 77 | CROWD: Oh yeah, yeah... 78 | 79 | BEDEVERE: So, how do we tell whether she is made of wood? 80 | 81 | VILLAGER #1: Build a bridge out of her. 82 | 83 | BEDEVERE: Aah, but can you not also make bridges out of stone? 84 | 85 | VILLAGER #2: Oh, yeah. 86 | 87 | BEDEVERE: Does wood sink in water? 88 | 89 | VILLAGER #1: No, no. 90 | 91 | VILLAGER #2: It floats! It floats! 92 | 93 | VILLAGER #1: Throw her into the pond! 94 | 95 | CROWD: The pond! 96 | 97 | BEDEVERE: What also floats in water? 98 | 99 | VILLAGER #1: Bread! 100 | 101 | VILLAGER #2: Apples! 102 | 103 | VILLAGER #3: Very small rocks! 104 | 105 | VILLAGER #1: Cider! 106 | 107 | VILLAGER #2: Uhhh, gravy! 108 | 109 | VILLAGER #1: Cherries! 110 | 111 | VILLAGER #2: Mud! 112 | 113 | VILLAGER #3: Churches -- churches! 114 | 115 | VILLAGER #2: Lead -- lead! 116 | 117 | ARTHUR: A duck. 118 | 119 | CROWD: Oooh. 120 | 121 | BEDEVERE: Exactly! So, logically..., 122 | 123 | VILLAGER #1: If... she.. weighs the same as a duck, she's made of wood. 124 | 125 | BEDEVERE: And therefore--? 126 | 127 | VILLAGER #1: A witch! 128 | 129 | CROWD: A witch! A witch! A witch! 130 | 131 | -Monty Python and the Search for the Holy Grail 132 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/alice.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | Gutenberg's 5 | Alice's 6 | eBook 7 | eBook 8 | org 9 | Alice's 10 | EBook 11 | EBOOK 12 | ALICE'S 13 | ALICE'S 14 | MARMALADE' 15 | Antipathies 16 | Dinah'll 17 | Alice's 18 | ME' 19 | not' 20 | ME' 21 | ALICE'S 22 | ESQ 23 | HEARTHRUG 24 | ALICE'S 25 | skurried 26 | O 27 | O 28 | O 29 | Ou 30 | chatte 31 | better' 32 | Morcar 33 | Morcar 34 | Stigand 35 | Atheling 36 | William's 37 | Normans 38 | thimble' 39 | C 40 | D 41 | Mouse's 42 | Dinah's 43 | naturedly 44 | W 45 | RABBIT' 46 | Dinah'll 47 | pleasanter 48 | Alice's 49 | won't' 50 | yer 51 | yer 52 | arrum 53 | yer 54 | yer 55 | Bill's 56 | Bill's 57 | Bill's 58 | Bill's 59 | barrowful 60 | barrowful 61 | V 62 | sir' 63 | yawned 64 | Footman's 65 | nose' 66 | Hatter's 67 | Alice's 68 | Lacie 69 | Sh 70 | sh 71 | were' 72 | M 73 | M 74 | M 75 | everything's 76 | beheaded 77 | King's 78 | processions 79 | rosetree 80 | beheaded 81 | croqueted 82 | croqueting 83 | executioner's 84 | King's 85 | beheaded 86 | Alice's 87 | Everything's 88 | Alice's 89 | Alice's 90 | game's 91 | Tis 92 | tis 93 | tis 94 | Alice's 95 | m 96 | Alice's 97 | ordered' 98 | Hjckrrh 99 | mayn't 100 | uglifying 101 | Seaography 102 | X 103 | never' 104 | dinn 105 | Dinn 106 | yawned 107 | TIS 108 | Tis 109 | Hm 110 | ootiful 111 | oop 112 | ootiful 113 | oop 114 | oop 115 | e 116 | e 117 | ootiful 118 | oop 119 | ootiful 120 | oop 121 | oop 122 | e 123 | e 124 | beauti 125 | FUL 126 | oop 127 | e 128 | e 129 | men' 130 | slates'll 131 | T 132 | Alice's 133 | jurymen 134 | jurymen 135 | jurymen 136 | jurymen 137 | teacups 138 | teacups 139 | Gutenberg's 140 | Alice's 141 | EBOOK 142 | ALICE'S 143 | txt 144 | http 145 | org 146 | tm 147 | tm 148 | eBooks 149 | eBook 150 | eBook 151 | eBooks 152 | tm 153 | tm 154 | http 155 | org 156 | tm 157 | tm 158 | tm 159 | tm 160 | E 161 | B 162 | tm 163 | C 164 | tm 165 | tm 166 | E 167 | C 168 | PGLAF 169 | tm 170 | tm 171 | tm 172 | tm 173 | tm 174 | D 175 | tm 176 | E 177 | E 178 | tm 179 | tm 180 | eBook 181 | eBook 182 | org 183 | E 184 | tm 185 | E 186 | E 187 | tm 188 | E 189 | E 190 | E 191 | tm 192 | E 193 | E 194 | tm 195 | E 196 | tm 197 | tm 198 | E 199 | E 200 | tm 201 | E 202 | nonproprietary 203 | tm 204 | tm 205 | org 206 | tm 207 | E 208 | E 209 | tm 210 | E 211 | E 212 | E 213 | tm 214 | tm 215 | tm 216 | e 217 | s 218 | tm 219 | tm 220 | F 221 | tm 222 | E 223 | tm 224 | tm 225 | F 226 | F 227 | tm 228 | tm 229 | F 230 | F 231 | tm 232 | tm 233 | F 234 | F 235 | F 236 | IS' 237 | MERCHANTIBILITY 238 | F 239 | unenforceability 240 | F 241 | tm 242 | tm 243 | tm 244 | b 245 | tm 246 | c 247 | tm 248 | tm 249 | tm's 250 | tm 251 | tm 252 | http 253 | pglaf 254 | org 255 | c 256 | c 257 | http 258 | pglaf 259 | org 260 | U 261 | S 262 | Melan 263 | S 264 | pglaf 265 | org 266 | http 267 | pglaf 268 | org 269 | B 270 | Newby 271 | gbnewby 272 | pglaf 273 | org 274 | tm 275 | http 276 | pglaf 277 | org 278 | U 279 | S 280 | http 281 | pglaf 282 | org 283 | tm 284 | S 285 | tm 286 | tm 287 | eBooks 288 | tm 289 | eBooks 290 | U 291 | S 292 | eBooks 293 | PG 294 | http 295 | org 296 | tm 297 | eBooks 298 | eBooks 299 | 300 | WORDS MISSPELLED: 295 301 | WORDS IN DICTIONARY: 143091 302 | WORDS IN TEXT: 29758 303 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/wonderland.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | Gutenberg's 5 | Alice's 6 | eBook 7 | eBook 8 | org 9 | Alice's 10 | EBook 11 | EBOOK 12 | ALICE'S 13 | ALICE'S 14 | MARMALADE' 15 | Antipathies 16 | Dinah'll 17 | Alice's 18 | ME' 19 | not' 20 | ME' 21 | ALICE'S 22 | ESQ 23 | HEARTHRUG 24 | ALICE'S 25 | skurried 26 | O 27 | O 28 | O 29 | Ou 30 | chatte 31 | better' 32 | Morcar 33 | Morcar 34 | Stigand 35 | Atheling 36 | William's 37 | Normans 38 | thimble' 39 | C 40 | D 41 | Mouse's 42 | Dinah's 43 | naturedly 44 | W 45 | RABBIT' 46 | Dinah'll 47 | pleasanter 48 | Alice's 49 | won't' 50 | yer 51 | yer 52 | arrum 53 | yer 54 | yer 55 | Bill's 56 | Bill's 57 | Bill's 58 | Bill's 59 | barrowful 60 | barrowful 61 | V 62 | sir' 63 | yawned 64 | Footman's 65 | nose' 66 | Hatter's 67 | Alice's 68 | Lacie 69 | Sh 70 | sh 71 | were' 72 | M 73 | M 74 | M 75 | everything's 76 | beheaded 77 | King's 78 | processions 79 | rosetree 80 | beheaded 81 | croqueted 82 | croqueting 83 | executioner's 84 | King's 85 | beheaded 86 | Alice's 87 | Everything's 88 | Alice's 89 | Alice's 90 | game's 91 | Tis 92 | tis 93 | tis 94 | Alice's 95 | m 96 | Alice's 97 | ordered' 98 | Hjckrrh 99 | mayn't 100 | uglifying 101 | Seaography 102 | X 103 | never' 104 | dinn 105 | Dinn 106 | yawned 107 | TIS 108 | Tis 109 | Hm 110 | ootiful 111 | oop 112 | ootiful 113 | oop 114 | oop 115 | e 116 | e 117 | ootiful 118 | oop 119 | ootiful 120 | oop 121 | oop 122 | e 123 | e 124 | beauti 125 | FUL 126 | oop 127 | e 128 | e 129 | men' 130 | slates'll 131 | T 132 | Alice's 133 | jurymen 134 | jurymen 135 | jurymen 136 | jurymen 137 | teacups 138 | teacups 139 | Gutenberg's 140 | Alice's 141 | EBOOK 142 | ALICE'S 143 | txt 144 | http 145 | org 146 | tm 147 | tm 148 | eBooks 149 | eBook 150 | eBook 151 | eBooks 152 | tm 153 | tm 154 | http 155 | org 156 | tm 157 | tm 158 | tm 159 | tm 160 | E 161 | B 162 | tm 163 | C 164 | tm 165 | tm 166 | E 167 | C 168 | PGLAF 169 | tm 170 | tm 171 | tm 172 | tm 173 | tm 174 | D 175 | tm 176 | E 177 | E 178 | tm 179 | tm 180 | eBook 181 | eBook 182 | org 183 | E 184 | tm 185 | E 186 | E 187 | tm 188 | E 189 | E 190 | E 191 | tm 192 | E 193 | E 194 | tm 195 | E 196 | tm 197 | tm 198 | E 199 | E 200 | tm 201 | E 202 | nonproprietary 203 | tm 204 | tm 205 | org 206 | tm 207 | E 208 | E 209 | tm 210 | E 211 | E 212 | E 213 | tm 214 | tm 215 | tm 216 | e 217 | s 218 | tm 219 | tm 220 | F 221 | tm 222 | E 223 | tm 224 | tm 225 | F 226 | F 227 | tm 228 | tm 229 | F 230 | F 231 | tm 232 | tm 233 | F 234 | F 235 | F 236 | IS' 237 | MERCHANTIBILITY 238 | F 239 | unenforceability 240 | F 241 | tm 242 | tm 243 | tm 244 | b 245 | tm 246 | c 247 | tm 248 | tm 249 | tm's 250 | tm 251 | tm 252 | http 253 | pglaf 254 | org 255 | c 256 | c 257 | http 258 | pglaf 259 | org 260 | U 261 | S 262 | Melan 263 | S 264 | pglaf 265 | org 266 | http 267 | pglaf 268 | org 269 | B 270 | Newby 271 | gbnewby 272 | pglaf 273 | org 274 | tm 275 | http 276 | pglaf 277 | org 278 | U 279 | S 280 | http 281 | pglaf 282 | org 283 | tm 284 | S 285 | tm 286 | tm 287 | eBooks 288 | tm 289 | eBooks 290 | U 291 | S 292 | eBooks 293 | PG 294 | http 295 | org 296 | tm 297 | eBooks 298 | eBooks 299 | 300 | WORDS MISSPELLED: 295 301 | WORDS IN DICTIONARY: 143091 302 | WORDS IN TEXT: 29758 303 | -------------------------------------------------------------------------------- /files/usr/bin/apache50: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | vhost="" 4 | 5 | usage() { 6 | echo "Usage: `basename $0` [start VHOST_DIR|restart|reload|stop|status]" 1>&2 7 | exit 1 8 | } 9 | 10 | # verify usage: "start" requires another param, all others require 1 11 | if ([ "$1" == "start" ] && [ $# -ne 2 ]) || ([ "$1" != "start" ] && [ $# -ne 1 ]); then 12 | usage 13 | fi 14 | 15 | # only run as ubuntu 16 | if [ "$(whoami)" != "ubuntu" ]; then 17 | echo "This script must only be run by the ubuntu user (don't use sudo)!" 18 | exit 1 19 | fi 20 | 21 | apache="service apache2" 22 | 23 | set_vhost() { 24 | #ensure the param is a directory, expand it if so 25 | if [ ! -d "$1" ]; then 26 | usage 27 | fi 28 | vhost=$(readlink -f "$1") 29 | } 30 | 31 | start() { 32 | set_vhost "$1" 33 | 34 | echo "Setting Apache's document root to ${vhost} ..." 35 | 36 | # disable prior cs50 configuration, if available 37 | sudo a2disconf cs50 > /dev/null 2>&1 38 | 39 | # copy template over 40 | sudo cp /etc/apache2/conf-available/cs50-template.conf /etc/apache2/conf-available/cs50.conf 41 | sudo chmod 644 /etc/apache2/conf-available/cs50.conf 42 | 43 | # update vhost dir in conf 44 | sudo sed -i "s#/home/ubuntu/workspace/vhosts#$vhost#g" /etc/apache2/conf-available/cs50.conf 45 | 46 | sudo sed -i "s#ServerName.*\$#ServerName $(hostname50)#g" /etc/apache2/conf-available/cs50.conf 47 | 48 | # disable C9's config 49 | sudo a2dissite 001-cloud9 > /dev/null 2>&1 50 | 51 | # enable the new config 52 | sudo a2enconf cs50 > /dev/null 2>&1 53 | 54 | # make sure user can access log and pid files 55 | sudo chown -R ubuntu:ubuntu /home/ubuntu/lib/apache2 56 | sudo chown -R ubuntu:ubuntu /var/lib/php5 57 | sudo find /home/ubuntu/lib/apache2 -type f -exec chmod 660 {} \; 58 | sudo find /home/ubuntu/lib/apache2 -type d -exec chmod 770 {} \; 59 | 60 | # launch 61 | $apache start 62 | 63 | if [ $? -eq 0 ]; then 64 | echo "Apache started successfully!" 65 | echo "Your site is now available at $(hostname50 --c9-port --protocol)" 66 | else 67 | echo "Apache failed to start!" 68 | exit 3 69 | fi 70 | } 71 | 72 | # determine apache's status 73 | running=$($apache status > /dev/null)$? 74 | 75 | case "$1" in 76 | start) 77 | if [ $running == 0 ]; then 78 | set_vhost "$2" 79 | if ! grep -qs "^" '/etc/apache2/conf-available/cs50.conf'; then 80 | $apache stop 81 | else 82 | echo "Apache is already running!" 1>&2 83 | exit 2 84 | fi 85 | fi 86 | start "$2" 87 | ;; 88 | stop) 89 | if [ $running != 0 ]; then 90 | echo "Apache is not running!" 91 | exit 2 92 | fi 93 | 94 | $apache stop 95 | ;; 96 | reload) 97 | $apache reload 98 | ;; 99 | restart) 100 | $apache restart 101 | ;; 102 | status) 103 | if [ $running == 0 ]; then 104 | # try to determine doc root, printing it if found 105 | doc=$(grep -osP '(?<=Directory )[^>]*' /etc/apache2/conf-enabled/cs50.conf) 106 | if [ $? == 0 ]; then 107 | echo "Apache is running with ${doc} as its root!" 108 | else 109 | echo "Apache is running!" 110 | fi 111 | else 112 | echo "Apache is not running." 113 | exit $running 114 | fi 115 | ;; 116 | *) 117 | usage 118 | ;; 119 | esac 120 | 121 | exit 0 122 | -------------------------------------------------------------------------------- /files/etc/profile.d/ide50.sh: -------------------------------------------------------------------------------- 1 | # if not root 2 | if [ "$(id -u)" != "0" ]; then 3 | 4 | # set umask 5 | umask 0077 6 | 7 | # set pyenv root 8 | export PYENV_ROOT="/opt/pyenv" 9 | 10 | # enable commands installed in /opt/cs50/bin 11 | case ":$PATH:" in 12 | *:/opt/cs50/bin:*) 13 | : ;; 14 | *) 15 | export PATH="/opt/cs50/bin:$PATH" ;; 16 | esac 17 | 18 | # enable commands installed in /home/ubuntu/.cs50/bin 19 | case ":$PATH:" in 20 | *:/home/ubuntu/.cs50/bin:*) 21 | : ;; 22 | *) 23 | export PATH="/home/ubuntu/.cs50/bin:$PATH" ;; 24 | esac 25 | 26 | # enable commands installed in $HOME/.local/bin 27 | case ":$PATH:" in 28 | *:$HOME/.local/bin:*) 29 | : ;; 30 | *) 31 | export PATH="$PATH:$HOME/.local/bin" ;; 32 | 33 | esac 34 | 35 | # enable pyenv commands 36 | case ":$PATH:" in 37 | *:$PYENV_ROOT/bin:*) 38 | : ;; 39 | *) 40 | export PATH="$PYENV_ROOT/bin:$PATH" 41 | esac 42 | 43 | case ":$PATH:" in 44 | *:$PYENV_ROOT/shims:*) 45 | : ;; 46 | *) 47 | export PATH="$PYENV_ROOT/shims:$PATH" 48 | esac 49 | 50 | # configure clang 51 | export CC="clang" 52 | export CFLAGS="-fsanitize=signed-integer-overflow -fsanitize=undefined -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow" 53 | export LDLIBS="-lcrypt -lcs50 -lm" 54 | 55 | # protect user 56 | alias cp="cp -i" 57 | alias mv="mv -i" 58 | alias rm="rm -i" 59 | 60 | # suppress gdb's startup output 61 | alias gdb="gdb -q" 62 | 63 | alias apachectl='echo "Please use apache50 instead!"' 64 | alias mysql-ctl='echo "Please use mysql50 instead!"' 65 | alias phpmyadmin-ctl='echo "Please use mysql50 instead!"' 66 | 67 | # shift out and in of block character palettes 68 | alias break50="printf '\x0e'" 69 | alias fix50="printf '\x0f'" 70 | fi 71 | 72 | # set maximum file size to 512MB 73 | ulimit -f 524288 74 | 75 | # workspace type 76 | export C9_TEMPLATE=ide50 77 | 78 | # disable auto-logout 79 | export TMOUT="0" 80 | 81 | # java 82 | export CLASSPATH=".:/usr/share/java/cs50.jar" 83 | 84 | # c9 open 85 | alias open="c9 open" 86 | 87 | # python3 88 | alias pip="pip3" 89 | alias pylint="pylint3" 90 | alias python="python3" 91 | export PYTHONDONTWRITEBYTECODE="1" 92 | 93 | # sqlite3 94 | alias sqlite3="sqlite3 -column -header" 95 | 96 | # sudo 97 | # trailing space enables elevated command to be an alias 98 | alias sudo="sudo " 99 | 100 | # apt-get 101 | export DEBIAN_FRONTEND=noninteractive 102 | 103 | # flask 104 | export FLASK_APP="application.py" 105 | alias flask="/home/ubuntu/.cs50/bin/flask" 106 | 107 | # http-server 108 | alias http-server="/home/ubuntu/.cs50/bin/http-server" 109 | 110 | # language 111 | if [ -f /home/ubuntu/.cs50/language ]; then 112 | source /home/ubuntu/.cs50/language 113 | fi 114 | 115 | # valgrind defaults 116 | export VALGRIND_OPTS="--memcheck:leak-check=full --memcheck:track-origins=yes" 117 | 118 | # set editor 119 | export EDITOR="nano" 120 | 121 | # set locale 122 | export LANG="C" 123 | 124 | # Node.js 125 | export NODE_ENV="dev" 126 | 127 | # web application environment 128 | export APPLICATION_ENV="dev" 129 | 130 | # short-circuit RVM's cd script 131 | # https://news.ycombinator.com/item?id=1637354 132 | export rvm_project_rvmrc="0" 133 | 134 | # history 135 | # https://www.shellhacks.com/tune-command-line-history-bash/ 136 | export PROMPT_COMMAND='history -a' # Store Bash History Immediately 137 | 138 | # ensure no make targets end with .c 139 | make () { 140 | local args="" 141 | local invalid_args=0 142 | 143 | for arg; do 144 | case "$arg" in 145 | (*.c) arg=${arg%.c}; invalid_args=1;; 146 | esac 147 | args="$args $arg" 148 | done 149 | 150 | if [ $invalid_args -eq 1 ]; then 151 | echo "Did you mean 'make$args'?" 152 | return 1 153 | else 154 | command make -B $* 155 | fi 156 | } 157 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/christmas.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | EBook 5 | eBook 6 | eBook 7 | EBook 8 | EBOOK 9 | Menendez 10 | C 11 | D 12 | Marley's 13 | V 14 | MARLEY'S 15 | deadest 16 | Marley's 17 | Marley's 18 | Christmas' 19 | Marley's 20 | overflowings 21 | sprigs 22 | Poulterers' 23 | grocers' 24 | morrow's 25 | Spirit's 26 | Cornhill 27 | blindman's 28 | banker's 29 | years' 30 | Marley's 31 | Marley's 32 | Marley's 33 | resounded 34 | broadwise 35 | Cains 36 | Abels 37 | Pharaoh's 38 | Abrahams 39 | Belshazzars 40 | Marley's 41 | Marley's 42 | Marley's 43 | fellowmen 44 | imploringly 45 | Ebenezer 46 | indicting 47 | Ebenezer 48 | Thank'ee 49 | Ghost's 50 | Marley's 51 | wailings 52 | Marley's 53 | enshrouded 54 | Ebenezer 55 | States' 56 | Marley's 57 | tenderest 58 | dwarfish 59 | Orson 60 | Halloa 61 | laths 62 | home's 63 | evergreens 64 | repassed 65 | Fezziwig 66 | Fezziwig 67 | Fezziwig 68 | Yo 69 | Ebenezer 70 | Yo 71 | Fezziwig 72 | Ebenezer 73 | Fezziwig 74 | Hilli 75 | Fezziwig 76 | Hilli 77 | Ebenezer 78 | Fezziwig 79 | winter's 80 | Fezziwig 81 | Fezziwigs 82 | everyhow 83 | Fezziwig 84 | Fezziwig 85 | Fezziwig 86 | Fezziwig 87 | Fezziwig 88 | Fezziwig's 89 | Fezziwig 90 | Fezziwig 91 | Fezziwig 92 | Fezziwig 93 | prentices 94 | Fezziwig 95 | Spirit's 96 | engrosses 97 | dowerless 98 | Marley's 99 | Marley's 100 | cheeked 101 | Plenty's 102 | Spirit's 103 | plumping 104 | hearts' 105 | poulterers' 106 | fruiterers' 107 | girthed 108 | shopkeepers' 109 | shufflings 110 | Biffins 111 | Grocers' 112 | Grocers' 113 | daws 114 | bakers' 115 | baker's 116 | baker's 117 | baker's 118 | Cratchit's 119 | Cratchit 120 | Cratchit's 121 | Belinda 122 | Cratchit 123 | Cratchit 124 | Cratchits 125 | baker's 126 | Cratchits 127 | Cratchit 128 | Cratchit 129 | warn't 130 | Cratchits 131 | Cratchit 132 | Cratchit 133 | Cratchits 134 | Cratchit 135 | Cratchit 136 | Cratchits 137 | Cratchit 138 | Cratchits 139 | Cratchit 140 | Belinda 141 | Cratchits 142 | Cratchit 143 | Cratchits 144 | Cratchit 145 | Cratchits 146 | Belinda 147 | Cratchit 148 | Cratchits 149 | pastrycook's 150 | laundress's 151 | Cratchit 152 | Cratchit 153 | Cratchit 154 | Cratchit 155 | Cratchit 156 | Cratchit 157 | Cratchit 158 | Cratchit's 159 | Ghost's 160 | Cratchit 161 | Cratchit 162 | Cratchit 163 | Cratchits 164 | milliner's 165 | sprinklings 166 | Spirit's 167 | kenned 168 | chafed 169 | sunniest 170 | pleasanter 171 | sexton's 172 | rustlings 173 | flutterings 174 | Scro 175 | o 176 | o 177 | o 178 | oge 179 | mulled 180 | spirits' 181 | Spirit's 182 | Spirit's 183 | Ghost's 184 | archways 185 | cesspools 186 | disgorged 187 | browed 188 | frousy 189 | tatters 190 | an't 191 | skreeks 192 | an't 193 | Dilber 194 | Dilber 195 | Dilber 196 | Dilber 197 | Dilber 198 | an't 199 | an't 200 | uncurtained 201 | Cratchit's 202 | Cratchits 203 | Cratchit's 204 | Cratchits 205 | Cratchit 206 | pleasantest 207 | Cratchit 208 | Cratchit 209 | Cratchit 210 | Cratchit 211 | Cratchits 212 | vegetation's 213 | repleted 214 | EBENEZER 215 | V 216 | Laoco 217 | n 218 | lustiest 219 | Poulterer's 220 | ER 221 | Cratchit's 222 | sha'n't 223 | poulterer's 224 | recompensed 225 | Marley's 226 | munifi 227 | Thank'ee 228 | Thank'ee 229 | der 230 | ful 231 | Cratchit 232 | Cratchit 233 | EBook 234 | EBOOK 235 | txt 236 | http 237 | Menendez 238 | tm 239 | tm 240 | eBooks 241 | eBook 242 | eBook 243 | eBooks 244 | tm 245 | tm 246 | http 247 | tm 248 | tm 249 | tm 250 | tm 251 | E 252 | B 253 | tm 254 | C 255 | tm 256 | tm 257 | E 258 | C 259 | PGLAF 260 | tm 261 | tm 262 | tm 263 | tm 264 | tm 265 | D 266 | tm 267 | E 268 | E 269 | tm 270 | tm 271 | eBook 272 | eBook 273 | E 274 | tm 275 | E 276 | E 277 | tm 278 | E 279 | E 280 | E 281 | tm 282 | E 283 | E 284 | tm 285 | E 286 | tm 287 | tm 288 | E 289 | E 290 | tm 291 | E 292 | nonproprietary 293 | tm 294 | tm 295 | tm 296 | E 297 | E 298 | tm 299 | E 300 | E 301 | E 302 | tm 303 | tm 304 | tm 305 | e 306 | s 307 | tm 308 | tm 309 | F 310 | tm 311 | E 312 | tm 313 | tm 314 | F 315 | F 316 | tm 317 | tm 318 | F 319 | F 320 | tm 321 | tm 322 | F 323 | F 324 | F 325 | IS' 326 | MERCHANTIBILITY 327 | F 328 | unenforceability 329 | F 330 | tm 331 | tm 332 | tm 333 | b 334 | tm 335 | c 336 | tm 337 | tm 338 | tm's 339 | tm 340 | tm 341 | http 342 | pglaf 343 | org 344 | c 345 | c 346 | http 347 | pglaf 348 | org 349 | U 350 | S 351 | Melan 352 | S 353 | pglaf 354 | org 355 | http 356 | pglaf 357 | org 358 | B 359 | Newby 360 | gbnewby 361 | pglaf 362 | org 363 | tm 364 | http 365 | pglaf 366 | org 367 | U 368 | S 369 | http 370 | pglaf 371 | org 372 | tm 373 | S 374 | tm 375 | tm 376 | eBooks 377 | tm 378 | eBooks 379 | U 380 | S 381 | eBooks 382 | PG 383 | http 384 | tm 385 | eBooks 386 | eBooks 387 | 388 | WORDS MISSPELLED: 383 389 | WORDS IN DICTIONARY: 143091 390 | WORDS IN TEXT: 31927 391 | -------------------------------------------------------------------------------- /files/usr/bin/mysql50: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | usage() { 4 | echo "Usage: `basename $0` [start|restart|reload|shell|stop|status]" 1>&2 5 | exit 1 6 | } 7 | 8 | # verify usage 9 | if [ $# -ne 1 ]; then 10 | usage 11 | fi 12 | 13 | # always run as root 14 | if [ "$UID" != "0" ]; then 15 | sudo -E $0 "$@" 16 | exit 17 | fi 18 | 19 | running=$(service mysql status > /dev/null)$? 20 | 21 | installed() { 22 | if [ -f /home/ubuntu/.mysql_installed ]; then 23 | return 0 24 | fi 25 | return 1 26 | } 27 | 28 | install() { 29 | echo "Setting up MySQL ..." 30 | 31 | # MySQL username matches the external C9 username 32 | username=$(username50) 33 | password=$(password50) 34 | 35 | # was apache running? (status returns 0 iff running) 36 | apache_running=$(apache50 status > /dev/null)$? 37 | 38 | # stop apache if running 39 | if [ $apache_running == 0 ]; then 40 | apache50 stop > /dev/null 2>&1 41 | fi 42 | 43 | # Changes configuration file to skip table grants 44 | mv /etc/mysql/my.cnf /etc/mysql/.my.cnf 45 | cat > /etc/mysql/my.cnf <<"EOF" 46 | [mysqld] 47 | datadir=/var/lib/mysql 48 | skip-grant-tables 49 | skip-networking 50 | socket=/var/run/mysqld/mysqld.sock 51 | user=mysql 52 | pid-file=/var/run/mysqld/mysqld.pid 53 | port=3306 54 | EOF 55 | 56 | service mysql start > /dev/null 2>&1 57 | 58 | # reset user and password in MySQL 59 | mysql --force --user=root > /dev/null 2>&1 < /dev/null 2>&1 71 | mv /etc/mysql/.my.cnf /etc/mysql/my.cnf 72 | 73 | # install phpmyadmin if it's not yet installed 74 | # adapted from C9's install script: /mnt/shared/bin/phpmyadmin-ctl 75 | if [ ! -e /etc/apache2/sites-enabled/phpmyadmin.conf ]; then 76 | ln -s /etc/phpmyadmin/apache.conf /etc/apache2/sites-enabled/phpmyadmin.conf 77 | 78 | echo "Installing phpMyAdmin ..." 79 | 80 | # enable mcrypt 81 | php5enmod mcrypt 82 | 83 | chmod a+r /etc/phpmyadmin/config-db.php 84 | chmod a+r /var/lib/phpmyadmin/blowfish_secret.inc.php 85 | chmod a+r /var/lib/phpmyadmin/config.inc.php 86 | 87 | # Set host to 127.0.0.1 88 | sed -i "s:localhost:127.0.0.1:g" /etc/phpmyadmin/config.inc.php 89 | 90 | #Fix tables 91 | sed -i "s:'pma_\([^_]\):'pma__\1:" /etc/phpmyadmin/config.inc.php 92 | 93 | # Set auth_type from cookie to http 94 | sed -i "s:\('auth_type'.*\)'cookie':\1'http':" /etc/phpmyadmin/config.inc.php 95 | 96 | #Fix login to database 97 | sed -i "s:\$dbuser='phpmyadmin':\$dbuser='$username':" /etc/phpmyadmin/config-db.php 98 | sed -i "s:\$dbpass='[a-zA-Z0-9]*':\$dbpass='$password':" /etc/phpmyadmin/config-db.php 99 | 100 | # hide certain databases 101 | if ! grep -q 'hide_db' /etc/phpmyadmin/config.inc.php; then 102 | # inject hide_db inside of an if statement 103 | sed -i 's:if (!empty($dbname)) {:&\ 104 | /* Hide certain databases */\ 105 | $cfg["Servers"][\$i]["hide_db"] = "^(c9|information_schema|mysql|performance_schema|phpmyadmin)$";\n:' \ 106 | /etc/phpmyadmin/config.inc.php 107 | fi 108 | 109 | # Allow Opening in an iframe (in editor) 110 | if ! grep -q 'AllowThirdPartyFraming' /etc/phpmyadmin/config.inc.php; then 111 | sed -i "$ a\$cfg[\"AllowThirdPartyFraming\"] = true;" /etc/phpmyadmin/config.inc.php 112 | fi 113 | 114 | service mysql start > /dev/null 2>&1 115 | 116 | mysql -u $username -p$password -e "CREATE DATABASE IF NOT EXISTS phpmyadmin" &> /dev/null 117 | zcat /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz | mysql -u $username -p$password phpmyadmin 118 | 119 | service mysql stop > /dev/null 2>&1 120 | fi 121 | 122 | # restart apache if it was running 123 | if [ $apache_running == 0 ]; then 124 | apache50 restart > /dev/null 2>&1 125 | fi 126 | 127 | touch /home/ubuntu/.mysql_installed 128 | } 129 | 130 | case "$1" in 131 | start) 132 | if [ $running == 0 ]; then 133 | echo "MySQL is already running!" 1>&2 134 | exit 2 135 | fi 136 | 137 | if ! installed ; then 138 | install 139 | fi 140 | 141 | service mysql start 142 | ;; 143 | stop) 144 | if [ $running != 0 ]; then 145 | echo "MySQL is not running!" 146 | exit 2 147 | fi 148 | 149 | service mysql stop 150 | ;; 151 | reload) 152 | service mysql reload 153 | ;; 154 | restart) 155 | if ! installed ; then 156 | install 157 | fi 158 | 159 | service mysql restart 160 | ;; 161 | shell) 162 | if ! installed ; then 163 | install 164 | fi 165 | 166 | if [ $running != 0 ]; then 167 | echo "Starting MySQL.." 168 | service mysql start 169 | fi 170 | 171 | mysql -u $(username50) -p$(password50) 172 | ;; 173 | status) 174 | if [ $running == 0 ]; then 175 | echo "MySQL is running!" 176 | else 177 | echo "MySQL is not running." 178 | exit $running 179 | fi 180 | ;; 181 | install) 182 | if [ $running == 0 ]; then 183 | service mysql stop 184 | fi 185 | 186 | install 187 | 188 | if [ $running == 0 ]; then 189 | service mysql start 190 | fi 191 | ;; 192 | *) 193 | usage 194 | ;; 195 | esac 196 | 197 | exit 0 198 | -------------------------------------------------------------------------------- /postinst: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Resetting permissions ..." 4 | 5 | chmod -R g+w /home/ubuntu/workspace 6 | #don't do this, eats space! chown -R ubuntu:ubuntu /home/ubuntu > /dev/null 2>&1 7 | chown -R ubuntu:ubuntu /var/c9sdk/plugins/c9.ide.cs50* > /dev/null 2>&1 8 | chown -R ubuntu:ubuntu /var/c9sdk/configs/ > /dev/null 2>&1 9 | 10 | chown -R ubuntu:ubuntu /home/ubuntu/.local/ 2>&1 11 | chown -R ubuntu:ubuntu /home/ubuntu/.cs50/ 2>&1 12 | chmod 644 /etc/apt/sources.list.d/cs50.list > /dev/null 2>&1 || true 13 | chmod 644 /home/ubuntu/workspace/.eslintrc 2>&1 || true 14 | chmod 644 /home/ubuntu/.cs50/py_modules/pylint50.py || true 15 | 16 | chmod 644 /etc/bash_completion.d/make 17 | 18 | # remove dropbox functions 19 | sed -i 's:source /home/ubuntu/.dropbox50::g' ~/.bashrc 20 | 21 | # add courses group and cs50 user 22 | groupadd -r courses > /dev/null 2>&1 || true 23 | adduser --gecos "CS50,,,," --ingroup courses --disabled-login --system cs50 > /dev/null 2>&1 || true 24 | 25 | # set permissions and ownership of /home/cs50 files 26 | chown -R cs50.courses /home/cs50 27 | 28 | # executables, scripts, and directories 29 | chmod -R 755 /home/cs50 /home/ubuntu/.cs50/bin 30 | 31 | # non-executables 32 | find /home/cs50/ -type f -name *.* -exec chmod 644 {} \; 33 | 34 | # use clang 3.8 by default 35 | update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.8 380 \ 36 | --slave /usr/bin/clang++ clang++ /usr/bin/clang++-3.8 \ 37 | --slave /usr/bin/clang-check clang-check /usr/bin/clang-check-3.8 \ 38 | --slave /usr/bin/clang-query clang-query /usr/bin/clang-query-3.8 \ 39 | --slave /usr/bin/clang-rename clang-rename /usr/bin/clang-rename-3.8 40 | 41 | # otherwise lsof doesn't see server 42 | chown ubuntu:courses /home/cs50/pset6/server 43 | 44 | # prep instance's index page 45 | if [ -f /var/www/html/index.html ]; then 46 | rm -f /var/www/html/index.html 47 | fi 48 | 49 | # remove apache test file from workspace 50 | if grep -qs '^Success$' /var/www/html/file; then 51 | rm -f /var/www/html/file 52 | fi 53 | 54 | # add ide50 source file to apache's envvars 55 | if ! grep -qs 'ide50.sh' /etc/apache2/envvars; then 56 | sed -i 's-cloud9.sh-cloud9.sh\n. /etc/profile.d/ide50.sh-' /etc/apache2/envvars 57 | fi 58 | 59 | # make sure ubuntu can write to phpmyadmin's upload directory 60 | chown ubuntu /var/lib/phpmyadmin/tmp 61 | 62 | # increase phpmyadmin cookie timeout to one day 63 | if ! grep -qs 'LoginCookieValidity' /etc/phpmyadmin/config.inc.php; then 64 | sudo sed -i '$a$cfg["LoginCookieValidity"] = 86400;' /etc/phpmyadmin/config.inc.php 65 | fi 66 | 67 | # change phpmyadmin auth_type from cookie to http 68 | sudo sed -i "s:\('auth_type'.*\)'cookie':\1'http':" /etc/phpmyadmin/config.inc.php 69 | 70 | # Change user running apache from www-data to ubuntu 71 | sudo sed -i "s/APACHE_RUN_USER=www-data/APACHE_RUN_USER=ubuntu/" /etc/apache2/envvars 72 | sudo sed -i "s/APACHE_RUN_GROUP=www-data/APACHE_RUN_GROUP=ubuntu/" /etc/apache2/envvars 73 | 74 | # remove ubuntu from group www-data 75 | sudo gpasswd -d ubuntu www-data 2> /dev/null 76 | 77 | # enable cs50 PHP config 78 | if [ ! -h /etc/php5/apache2/conf.d/50-cs50.ini ]; then 79 | ln -s /etc/php5/mods-available/cs50.ini /etc/php5/apache2/conf.d/50-cs50.ini 80 | 81 | # attempt to reload apache 82 | /usr/bin/apache50 reload > /dev/null 2>&1 83 | fi 84 | 85 | # in interactive shells, prevent manual flow control so Ctrl-S doesn't pause 86 | if ! grep -qs 'stty -ixon' /home/ubuntu/.bashrc; then 87 | echo "stty -ixon" >> /home/ubuntu/.bashrc 88 | fi 89 | 90 | # allow `cd` to bring user back to workspace (`cd ~` to homedir) 91 | if ! grep -qs "alias cd" /home/ubuntu/.bashrc; then 92 | echo 'alias cd="HOME=~/workspace cd"' >> /home/ubuntu/.bashrc 93 | fi 94 | 95 | if [ -f /home/ubuntu/.cs50/prompt ] && ! grep -qs 'prompt' /home/ubuntu/.bashrc; then 96 | echo "source /home/ubuntu/.cs50/prompt" >> /home/ubuntu/.bashrc 97 | fi 98 | 99 | # update path in existing .bashrc files 100 | sed -i "s#\(/home/ubuntu/\).prompt50#\1.cs50/prompt#" /home/ubuntu/.bashrc 101 | 102 | # remove old source file if it exists 103 | if [ -f /etc/profile.d/app.sh ]; then 104 | rm -f /etc/profile.d/app.sh 105 | fi 106 | 107 | # create a password50 file, if it doesn't exist 108 | sudo -Eu ubuntu /usr/bin/password50 > /dev/null 2>&1 109 | 110 | # add mysql username and password to env 111 | sudo cat > /etc/profile.d/mysql.sh < /dev/null 2>&1 134 | 135 | # start MySQL by default 136 | /usr/bin/mysql50 start > /dev/null 2>&1 137 | 138 | if [ ${IDE_OFFLINE+x} ]; then 139 | # add offline source file to apache's envvars 140 | if ! grep -qs 'offline.sh' /etc/apache2/envvars; then 141 | sed -i 's-ide50.sh-ide50.sh\n. /etc/profile.d/offline.sh-' /etc/apache2/envvars 142 | fi 143 | 144 | # add c9 alias to profile 145 | if ! grep -qs 'alias c9' /etc/profile.d/offline.sh; then 146 | echo -e "\nalias c9=/var/c9sdk/bin/c9" >> /etc/profile.d/offline.sh 147 | fi 148 | 149 | # remove old config file 150 | rm -rf /var/c9sdk/configs/client-workspace-cs50.js 151 | 152 | # offline only: update c9sdk and plugins 153 | echo "Updating Cloud9 SDK ..." 154 | pushd /var/c9sdk > /dev/null 2>&1 155 | 156 | # https://github.com/c9/core/issues/432 157 | npm install -g npm@4.6.1 158 | git reset --hard 159 | sudo -Eu ubuntu scripts/install-sdk.sh > /dev/null 2>&1 160 | popd > /dev/null 2>&1 161 | else 162 | # plugin updates aren't necessary for online IDEs; remove files 163 | rm -rf /var/c9sdk/plugins/c9.ide.cs50* > /dev/null 2>&1 164 | rmdir -p /var/c9sdk/plugins/ > /dev/null 2>&1 165 | 166 | rm -rf /var/c9sdk/configs/client-workspace-cs50.js > /dev/null 2>&1 167 | rm -rf /var/c9sdk/configs/ide/workspace-cs50.js > /dev/null 2>&1 168 | rmdir -p /var/c9sdk/configs/ide > /dev/null 2>&1 169 | fi 170 | 171 | exit 0 172 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/austinpowers.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | FOTTAGE 5 | INT 6 | EVIL'S 7 | s 8 | EVIL'S 9 | Farbissina 10 | FARBISSINA 11 | CARNABY 12 | Bossanova 13 | BEATLE 14 | Carnaby 15 | luv 16 | luv 17 | outdone 18 | CARNABY 19 | PALAM 20 | guard's 21 | CARNABY 22 | luv 23 | CARNABY 24 | CARNABY 25 | XKE 26 | INT 27 | s 28 | Zedel 29 | Edel 30 | Baaden 31 | Baaden 32 | Swinger's 33 | Picadilly 34 | emdash 35 | FOTTAGE 36 | PICADILLY 37 | SWINGER'S 38 | fightsuit 39 | INT 40 | SWINGER'S 41 | ya 42 | INT 43 | SWINGER'S 44 | Campbell's 45 | Warhol's 46 | INT 47 | SWINGER'S 48 | Forrest 49 | Gump 50 | COLDSTREAM 51 | tocks 52 | Gump's 53 | GUMP 54 | Ohhh 55 | Evil's 56 | EVIL'S 57 | INT 58 | Bigglesworth 59 | Bigglesworth 60 | Garfields 61 | VO 62 | NORAD 63 | NORAD 64 | INT 65 | NORAD 66 | Gilmour 67 | INT 68 | GILMOUR'S 69 | GILMOUR 70 | SoWest 71 | GILMOUR 72 | metalurg 73 | recon 74 | GILMOUR 75 | GILMOUR 76 | GILMOUR 77 | TacHQ 78 | GILMOUR 79 | GILMOUR 80 | emdash 81 | GILMOUR 82 | GILMOUR 83 | GILMOUR 84 | GILMOUR 85 | GILMOUR 86 | GILMOUR 87 | GILMOUR 88 | GILMOUR 89 | INT 90 | M 91 | O 92 | D 93 | Gilmour 94 | BORSCHEVSKY 95 | GILMOUR 96 | Gilmour 97 | INT 98 | M 99 | O 100 | D 101 | EVEL 102 | KNIEVAL 103 | TRAVOLTA 104 | BORSCHEVSKY 105 | cold' 106 | reanimation 107 | Reanimation 108 | INT 109 | PEES 110 | PEEING 111 | PEEING 112 | Frankenstein's 113 | IV's 114 | unfreezing 115 | emdash 116 | Gilmour 117 | Borschevsky 118 | ya 119 | Gilmour 120 | GILMOUR 121 | Kensington's 122 | unfreezing 123 | emdash 124 | INT 125 | M 126 | O 127 | D 128 | QUARTERMASTER'S 129 | Heathrow 130 | INT 131 | Heffner's 132 | emdash 133 | M 134 | O 135 | D 136 | Farsi 137 | Chigro 138 | Chigro 139 | Chigro 140 | emdash 141 | emdash 142 | Chigro 143 | Negro' 144 | colored' 145 | stewardess' 146 | attendants' 147 | worker' 148 | Wilkenson 149 | Orgy' 150 | FLGHT 151 | Brrrr 152 | unfreezing 153 | emdash 154 | IINT 155 | Virtucon 156 | Virtucon 157 | emdash 158 | seatbelts 159 | INT 160 | Caesar's 161 | INT 162 | EVIL'S 163 | emdash 164 | Bigglesworth 165 | BIGGLESWORTH 166 | reanimation 167 | emdash 168 | EVIL'S 169 | Mustafa's 170 | Ahhhhhhhhh 171 | Mustafa's 172 | emdash 173 | SFX 174 | emdash 175 | SFX 176 | Farbissina 177 | FARBISSINA 178 | extraordinaire 179 | O'BRIENS 180 | FARBISSINA 181 | emdash 182 | clovers 183 | Virtucon 184 | Virtucon 185 | Um 186 | Umm 187 | Kreplachistan 188 | Virtucon 189 | FARBISSINA 190 | FARBISSINA 191 | FARBISSINA 192 | grungy 193 | Cobain 194 | T 195 | emdash 196 | INT 197 | Samsonite 198 | AUSITN 199 | Gor 200 | nerd 201 | Jurgens 202 | underthings 203 | baggie 204 | Underthings 205 | baggie 206 | Hai 207 | ling 208 | INT 209 | x 210 | INT 211 | POV 212 | X 213 | POV 214 | X 215 | x 216 | POV 217 | X 218 | X 219 | Uh 220 | bimbo's 221 | Alotta 222 | Alotta 223 | Fagina 224 | INT 225 | X 226 | INT 227 | INT 228 | INT 229 | Uh 230 | uh 231 | INT 232 | TEXAN'S 233 | INT 234 | Ughhhhh 235 | INT 236 | TEXAN'S 237 | INT 238 | AUSITN'S 239 | INT 240 | TEXAN'S 241 | INT 242 | Alotta's 243 | Virtucon 244 | INT 245 | INT 246 | INT 247 | Virtucon 248 | INT 249 | KENSINGTON'S 250 | VO 251 | VO 252 | INT 253 | VO 254 | VO 255 | Power's 256 | VO 257 | KENSINGTON'S 258 | emdash 259 | VO 260 | VO 261 | luv 262 | VO 263 | VO 264 | emdash 265 | VIRTUCON 266 | POV 267 | VIRTUCON 268 | POV 269 | Bigglesworth 270 | SFX 271 | Evil's 272 | POV 273 | SFX 274 | luv 275 | CYC 276 | luv 277 | H 278 | serenading 279 | emdash 280 | showgirls 281 | INT 282 | mimes 283 | mimes 284 | mimes 285 | mimes 286 | Virtucon 287 | Virtucon 288 | emdash 289 | unfreezing 290 | Alotta's 291 | Virtucon 292 | INT 293 | ALOTTA'S 294 | Virtucon's 295 | luv 296 | emdash 297 | Alotta 298 | ALOTTA 299 | ALOTTA 300 | Fagina 301 | Alotta 302 | ALOTTA 303 | ALOTTA 304 | Virtucon's 305 | ALOTTA 306 | SERGIO 307 | MENDEZ 308 | Alotta 309 | INT 310 | ALOTTA 311 | ALOTTA 312 | Alotta 313 | ALOTTA 314 | Chargex 315 | ALOTTA 316 | ALOTTA 317 | Sak 318 | Alotta 319 | Alotta 320 | ALOTTA 321 | Mmmm 322 | ALOTTA 323 | ALOTTA 324 | ALOTTA 325 | ALOTTA 326 | ALOTTA 327 | Virtucon 328 | ALOTTA 329 | choo 330 | choo 331 | ALOTTA 332 | INT 333 | INT 334 | EVIL'S 335 | Farbissina 336 | FARBISSINA 337 | Ya 338 | wohl 339 | emdash 340 | wohl 341 | Fembots 342 | FEMBOTS 343 | strumpets 344 | FARBISSINA 345 | replicant 346 | FEMBOTS 347 | Fembots' 348 | FARBISSINA 349 | SFX 350 | s 351 | Kreplachistan 352 | VIRTUCON 353 | INT 354 | JFK 355 | Mounties 356 | Kreplachistani 357 | SECRETATY 358 | emdash 359 | mister' 360 | Ohhhh 361 | ahhhhhh 362 | Ohhh 363 | hmmmm 364 | hmn 365 | INT 366 | HQ 367 | Kreplachistan 368 | Carnies 369 | Alotta 370 | Fagina's 371 | EXPOSITON 372 | Virtucon 373 | Virtucon 374 | Owww 375 | EXPOSIION 376 | luv 377 | Fagina 378 | insecurities 379 | shagged 380 | shagged 381 | Alotta 382 | INT 383 | Jimi 384 | Cass 385 | emdash 386 | SHAQ 387 | CDs 388 | PEPPER'S 389 | BACHARACH'S 390 | Campbell's 391 | CD 392 | spews 393 | INT 394 | Pik 395 | INT 396 | ZIMA 397 | INT 398 | luv 399 | und 400 | drang 401 | INT 402 | Keon 403 | Ehville 404 | boulangerie 405 | Vilma 406 | shawn 407 | PSYCHEDELC 408 | VIRTUCON 409 | INT 410 | VIRTUCON 411 | trippy 412 | hootchie 413 | kooch 414 | AUSTTIN 415 | Virtucon 416 | Virtucon 417 | Virtucon 418 | Virtucon 419 | INT 420 | VIRTUCON 421 | Virtucon 422 | scientists' 423 | INT 424 | Shastri 425 | emdash 426 | INT 427 | INT 428 | VIRTUCON 429 | INT 430 | SFX 431 | VIRTUCON 432 | INT 433 | steamrollers 434 | P 435 | Noooooooooooooo 436 | Noooooooooooooo 437 | Noooooooooooooo 438 | SFX 439 | INT 440 | INT 441 | jumpsuit 442 | steamrolled 443 | HARWIN 444 | Welby 445 | INT 446 | Harwin 447 | Harwin 448 | Evil's 449 | When's 450 | HARWIN 451 | Evil's 452 | HARWIN 453 | HARWIN 454 | henchman's 455 | INT 456 | Virtucon 457 | minivan 458 | humning 459 | INT 460 | MINIVAN 461 | minivan 462 | minivan 463 | INT 464 | minivan 465 | INT 466 | minivan 467 | INT 468 | EVIL'S 469 | VIRTUCON 470 | Farbissina 471 | minivan 472 | Farbissina 473 | minivan 474 | Kensington's 475 | grocking 476 | telescreen 477 | emdash 478 | INT 479 | crumpets 480 | INT 481 | EVIL'S 482 | INT 483 | EVIL'S 484 | Ezekial 485 | whatever' 486 | um 487 | off' 488 | out' 489 | me' 490 | Skinemax 491 | Evil's 492 | Farbissina 493 | Daddy's 494 | FARBISSINA 495 | FARBISSINA 496 | piranhas 497 | FARBISSINA 498 | emdash 499 | friggin' 500 | FARBISSINA 501 | FARBISSINA 502 | FARBISSINA 503 | Farbissina 504 | INT 505 | emdash 506 | guard's 507 | guard's 508 | INT 509 | Smittie 510 | Evil's 511 | Smittie 512 | Smittie 513 | INT 514 | INT 515 | freaked 516 | emdash 517 | emdash 518 | INT 519 | INT 520 | INT 521 | EVIL'S 522 | INT 523 | emdash 524 | T 525 | INT 526 | FEMBOT 527 | FEMBOTS 528 | emdash 529 | trapezes 530 | FEMBOT 531 | FEMBOT 532 | Fembot's 533 | spews 534 | INT 535 | EVIL'S 536 | Evil's 537 | INT 538 | FEMBOT'S 539 | Fembots 540 | Fembots 541 | INT 542 | EVIL'S 543 | VIRTUCON 544 | COUN 545 | ATCs 546 | INT 547 | FEMBOT 548 | Fembots 549 | FEMBOT 550 | Au 551 | contraire 552 | Fembots 553 | Fembot's 554 | Fembots 555 | Fembot 556 | Jacob's 557 | Fembot 558 | Fembot 559 | you' 560 | Fembot 561 | Fembots 562 | AUSITN 563 | Fembots 564 | INT 565 | INT 566 | emdash 567 | emdash 568 | COUN 569 | INT 570 | EVIL'S 571 | VIRTUCON 572 | INT 573 | SFX 574 | clicka 575 | clicka 576 | emdash 577 | SFX 578 | clicka 579 | clicka 580 | INT 581 | INT 582 | VIRTUCON 583 | Bigglesworth 584 | Bigglesworth 585 | DESTRUCTACON 586 | DESTRUCTACON 587 | VO 588 | Destructacon 589 | Destructacon 590 | DESTRUCTACON 591 | VO 592 | DESTRUCTACON 593 | VO 594 | DESTRUCTACON 595 | VO 596 | DESTRUCTACON 597 | VO 598 | Remjack 599 | Remjack 600 | Remjackremjackremjack 601 | emdash 602 | emdash 603 | COUN 604 | COUN 605 | COUN 606 | Task's 607 | Task's 608 | spews 609 | INT 610 | Nooooooo 611 | INT 612 | MACHIEN 613 | INT 614 | INT 615 | EVIL'S 616 | emdash 617 | Alotta 618 | ALOTTA 619 | Sega 620 | Alotta's 621 | Alotta 622 | Alotta 623 | ALOTTA 624 | ALOTTA 625 | COUN 626 | INT 627 | INT 628 | INT 629 | Fembot 630 | INT 631 | emdash 632 | emdash 633 | emdash 634 | emdash 635 | EVIL'S 636 | VO 637 | VO 638 | Virtucon 639 | PK 640 | VO 641 | VO 642 | VO 643 | VO 644 | VO 645 | VO 646 | AUSITN 647 | VO 648 | 649 | WORDS MISSPELLED: 644 650 | WORDS IN DICTIONARY: 143091 651 | WORDS IN TEXT: 19190 652 | -------------------------------------------------------------------------------- /update50: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # exit on error 4 | set -e 5 | 6 | # redirect output of all commands to $LOG 7 | # mkdir -p /home/ubuntu/.cs50/logs 8 | # LOG="/home/ubuntu/.cs50/logs/update50.log" 9 | 10 | # exec > >(sudo tee -a "$LOG") 11 | 12 | # echo -e "\nDO NOT CLOSE THIS WINDOW OR PUT YOUR COMPUTER TO SLEEP <3\n" 13 | # sleep 2 14 | 15 | # echo -e "update50 - v$(version50)\n$(date -R)\n" 16 | 17 | # ensure workspace has disk size < 5GB 18 | if [ $(df --output=size / | awk 'NR==2 {print $1}') -lt 5242880 ]; then 19 | echo "You have an old workspace. See https://cs50.ly/disk for instructions on how to upgrade your workspace!" 20 | exit 1 21 | fi 22 | 23 | # disable dropbox apt repository 24 | if [ -f /etc/apt/sources.list.d/dropbox.list ]; then 25 | sudo mv /etc/apt/sources.list.d/dropbox.list{,.disabled} 26 | fi 27 | 28 | echo "Updating sources..." 29 | 30 | # try to fix dpkg before updating 31 | sudo dpkg --configure -a 32 | 33 | # TODO temporary until most people move to new version 34 | # git-lfs repo bug causing apt-get update to fail 35 | echo "CLEARING PACKAGE CACHE" 36 | sudo rm -rf /var/lib/apt/lists/* 37 | 38 | # if requested, flush the apt-get Packages file cache 39 | if [ "$1" == "-f" ]; then 40 | : 41 | fi 42 | 43 | # suppress CS50 compilation preferences 44 | unset CC CFLAGS LDLIBS 45 | 46 | # remove old files if new update50 exists 47 | if [ -f /home/ubuntu/.cs50/bin/update50 ]; then 48 | rm -f /home/ubuntu/{.client50,.domain50,.password50,.prompt50} 49 | rm -f /home/ubuntu/bin/{.info50,debug50,update50} 50 | fi 51 | 52 | echo "Adding external repos..." 53 | 54 | # install apt-transport-https 55 | sudo rm -f /etc/apt/sources.list.d/github_git-lfs.list 56 | sudo apt-get update && sudo apt-get install -y apt-transport-https 57 | 58 | # add external apt repos 59 | # install cs50 ppa 60 | if [ ! -f /etc/apt/sources.list.d/cs50-ppa-trusty.list ]; then 61 | sudo add-apt-repository -y ppa:cs50/ppa 62 | sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/cs50-ppa-trusty.list" \ 63 | -o Dir::Etc::sourceparts="-" 64 | fi 65 | 66 | # install cs50 packagecloud repo 67 | if [ ! -f /etc/apt/sources.list.d/cs50_repo.list ]; then 68 | curl -s https://packagecloud.io/install/repositories/cs50/repo/script.deb.sh | sudo bash 69 | fi 70 | 71 | # install git-core ppa 72 | if [ ! -f /etc/apt/sources.list.d/git-core-ppa-trusty.list ]; then 73 | sudo add-apt-repository ppa:git-core/ppa 74 | sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/git-core-ppa-trusty.list" \ 75 | -o Dir::Etc::sourceparts="-" 76 | fi 77 | 78 | # install git-lfs apt repo 79 | # https://packagecloud.io/github/git-lfs/install#manual 80 | if [ ! -f /etc/apt/sources.list.d/github_git-lfs.list ]; then 81 | curl -sSL https://packagecloud.io/github/git-lfs/gpgkey | sudo apt-key add - 82 | echo "deb https://packagecloud.io/github/git-lfs/ubuntu/ trusty main" | sudo tee /etc/apt/sources.list.d/github_git-lfs.list && \ 83 | echo "deb-src https://packagecloud.io/github/git-lfs/ubuntu/ trusty main" | sudo tee -a /etc/apt/sources.list.d/github_git-lfs.list 84 | sudo chmod a+r /etc/apt/sources.list.d/github_git-lfs.list 85 | sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/github_git-lfs.list" \ 86 | -o Dir::Etc::sourceparts="-" 87 | fi 88 | 89 | # install pgloader apt repo 90 | # https://wiki.postgresql.org/wiki/Apt 91 | if [ ! -f /etc/apt/sources.list.d/pgdg.list ]; then 92 | echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list 93 | curl -sSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 94 | sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/pgdg.list" \ 95 | -o Dir::Etc::sourceparts="-" 96 | fi 97 | 98 | sudo apt-get update 99 | 100 | echo "Reinstalling ide package..." 101 | sudo -E apt-get -o Dpkg::Options::="--force-confnew" -o Dpkg::Options::="--force-overwrite" install --reinstall --yes --force-yes --assume-yes ide50 102 | 103 | sudo apt-get install -y libcs50=8.1.2 104 | 105 | echo "Installing other packages..." 106 | 107 | # node 9.8.0 108 | bash -l -c "nvm install 9.8.0 && nvm alias default 9.8.0" 109 | 110 | # composer 111 | # https://www.digitalocean.com/community/tutorials/how-to-install-and-use-composer-on-ubuntu-14-04 112 | if ! which composer &> /dev/null; then 113 | curl -sS https://getcomposer.org/installer | \ 114 | sudo php -- --install-dir=/usr/local/bin --filename=composer 115 | fi 116 | 117 | # hub 118 | # https://hub.github.com/ 119 | # http://stackoverflow.com/a/27869453 120 | if ! which hub &> /dev/null; then 121 | mkdir /tmp/hub-linux-amd64 && \ 122 | curl -s -L https://github.com/github/hub/releases/latest | \ 123 | egrep -o '/github/hub/releases/download/.*/hub-linux-amd64-.*.tgz' | \ 124 | wget --base=http://github.com/ -i - -O - | \ 125 | tar xvz -C /tmp/hub-linux-amd64 --strip-components 1 && \ 126 | sudo /tmp/hub-linux-amd64/install && \ 127 | rm -rf /tmp/hub-linux-amd64 128 | fi 129 | 130 | # pyenv 131 | export PYENV_ROOT="/opt/pyenv" 132 | if ! which pyenv &> /dev/null; then 133 | sudo apt-get install -y \ 134 | build-essential \ 135 | curl \ 136 | libbz2-dev \ 137 | libncurses5-dev \ 138 | libncursesw5-dev \ 139 | libreadline-dev \ 140 | libsqlite3-dev \ 141 | libssl-dev \ 142 | llvm \ 143 | wget \ 144 | xz-utils \ 145 | zlib1g-dev 146 | wget -P /tmp https://github.com/yyuu/pyenv/archive/master.zip 147 | unzip -q -d /tmp /tmp/master.zip 148 | rm -f /tmp/master.zip 149 | sudo mv /tmp/pyenv-master /opt/pyenv 150 | fi 151 | 152 | echo "FYI: installing Python may take a while. Thank you for your patience! <3" 153 | sudo chown -R ubuntu:ubuntu /opt/pyenv 154 | /opt/pyenv/bin/pyenv install --skip-existing 3.6.0 155 | /opt/pyenv/bin/pyenv global 3.6.0 156 | 157 | echo "Removing unneeded packages..." 158 | sudo apt-get autoremove -y 159 | 160 | # ensure npm prefix is writable 161 | # some old workspaces have this prefix mounted read-only 162 | bash -l -c ' \ 163 | npm_prefix="$(npm get prefix -g)"; \ 164 | if [ ! -w "$npm_prefix" ]; then \ 165 | npm set prefix -g "${NVM_DIR:=~/.nvm}/versions/node/$(node --version)"; \ 166 | fi; \ 167 | echo "Installing npm packages..."; \ 168 | npm install -g github:indexzero/http-server; \ 169 | ' 170 | 171 | echo "Installing Python packages..." 172 | 173 | # clean up pip's build cache 174 | sudo rm -rf /tmp/pip_build_root/* 175 | 176 | # use pip for python3.6 177 | unset PYTHONPATH 178 | export PATH="$PYENV_ROOT/bin:$PYENV_ROOT/shims:$PATH" 179 | 180 | # upgrade pip to latest 181 | sudo -H pip3 install --upgrade pip 182 | 183 | # install python packages 184 | PYTHON_PACKAGES="cs50==2.4.4 \ 185 | django \ 186 | feedparser \ 187 | Flask==1.0.2 \ 188 | Flask-AutoIndex \ 189 | Flask-JSGlue \ 190 | Flask-SQLAlchemy \ 191 | Flask-Session \ 192 | git+git://github.com/cmorisse/ikp3db \ 193 | help50==2.0.1 \ 194 | nltk \ 195 | passlib \ 196 | plotly \ 197 | pylint==1.9.3 `# pylint-flask doesn't support pylint 2 yet` \ 198 | pylint_django \ 199 | pylint_flask \ 200 | pyyaml \ 201 | render50==3.0.2 \ 202 | SQLAlchemy \ 203 | style50==2.6.4 \ 204 | termcolor \ 205 | twython \ 206 | virtualenv" 207 | 208 | sudo -H pip3 install $PYTHON_PACKAGES 209 | 210 | sudo -H pip3 install --upgrade 'check50<3' 'submit50<3' 211 | 212 | # create pylint3 as symlink to pylint 213 | ln -sf /opt/pyenv/versions/3.6.0/bin/{pylint,pylint3} 214 | 215 | /opt/pyenv/bin/pyenv rehash 216 | 217 | echo "Installing nltk data..." 218 | sudo python -m nltk.downloader -d /usr/share/nltk_data/ punkt &> /dev/null 219 | 220 | # install ruby 2.4.0 and make it default 221 | bash -l -c "rvm install ruby-2.4.0 --default &> /dev/null" 222 | 223 | echo "Update complete!" 224 | 225 | # restart terminals and reload page 226 | if [ ${IDE_OFFLINE+x} ]; then 227 | C9="/var/c9sdk/bin/c9" 228 | else 229 | C9="/mnt/shared/sbin/c9" 230 | fi 231 | 232 | # avoid running when building Docker image 233 | if [ -x "$C9" ]; then 234 | $C9 exec complete_update 235 | fi 236 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/challenge: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | 0) 98 | { 99 | // pop directory 100 | $directory = array_shift($directories); 101 | 102 | // skip dotdirectories 103 | if (substr(basename($directory), 0, 1) == ".") 104 | { 105 | if ($verbose) 106 | echo "Skipping $directory (because it's hidden)...\n"; 107 | continue; 108 | } 109 | 110 | // sort directory's children 111 | if (($children = @scandir($directory)) === false) 112 | { 113 | if ($verbose) 114 | echo "Skipping $directory (because it's unreadable)...\n"; 115 | continue; 116 | } 117 | 118 | // iterate over directory's children 119 | foreach ($children as $child) 120 | { 121 | // ignore . and .. 122 | if ($child == "." || $child == "..") 123 | continue; 124 | 125 | // prepare child's path 126 | $path = rtrim($directory, "/") . DIRECTORY_SEPARATOR . $child; 127 | 128 | // push child's path onto array 129 | if (is_dir($path)) 130 | array_push($directories, $path); 131 | else 132 | array_push($files, $path); 133 | } 134 | } 135 | 136 | // sort files 137 | natcasesort($files); 138 | 139 | // prepare to upload files 140 | $uploads = array(); 141 | 142 | // determine which files to upload 143 | foreach ($files as $file) 144 | { 145 | // skip dotfiles 146 | if (substr(basename($file), 0, 1) == ".") 147 | { 148 | if ($verbose) 149 | echo "Skipping $file (because it's hidden)...\n"; 150 | continue; 151 | } 152 | 153 | // skip binary files 154 | if (strpos(file_get_contents($file), "\x00") !== false) 155 | { 156 | if ($verbose) 157 | echo "Skipping $file (because it's binary)...\n"; 158 | continue; 159 | } 160 | 161 | // skip unsupported types 162 | $supported = false; 163 | foreach ($TYPES as $type) 164 | { 165 | // escape . as \. 166 | $type = str_replace(".", "\.", $type); 167 | 168 | // convert * to .+ 169 | $type = str_replace("*", ".+", $type); 170 | 171 | if (preg_match("/^$type$/i", basename($file))) 172 | { 173 | $supported = true; 174 | break; 175 | } 176 | } 177 | if (!$supported) 178 | { 179 | if ($verbose) 180 | echo "Skipping $file (because it's not a supported type)...\n"; 181 | continue; 182 | } 183 | 184 | // add file to uploads 185 | array_push($uploads, $file); 186 | } 187 | 188 | // ensure files will be uploaded 189 | if (count($uploads) == 0) 190 | die("Nothing to check (because no files are checkable).\n"); 191 | 192 | // prepare ZIP 193 | $zip = new ZipArchive(); 194 | $filename = tempnam(sys_get_temp_dir(), "check50-") . ".zip"; 195 | if ($zip->open($filename, ZIPARCHIVE::OVERWRITE) !== true) 196 | die("Could not create ZIP file.\n"); 197 | foreach ($uploads as $upload) 198 | { 199 | // TEMP 200 | if (preg_match("{(pset5/.+)$}", $upload, $matches)) 201 | $localname = $matches[1]; 202 | else 203 | $localname = $upload; 204 | 205 | // add file to ZIP 206 | if ($zip->addFile($upload, $localname) !== true) 207 | die("Could not add {$file} to ZIP file.\n"); 208 | } 209 | 210 | // close ZIP 211 | if ($zip->close() !== true) 212 | die("Could not close ZIP file.\n"); 213 | 214 | // prepare fields 215 | $fields = array(); 216 | 217 | // TEMP 218 | $fields["course"] = "cs50"; 219 | $fields["FILE"] = "@{$filename}"; 220 | $fields["program"] = "speller"; 221 | $fields["school"] = "harvard.edu"; 222 | $fields["term"] = "fall"; 223 | $fields["year"] = "2014"; 224 | $fields["version"] = VERSION; 225 | 226 | // POST fields 227 | $ch = curl_init(); 228 | curl_setopt($ch, CURLOPT_HEADER, false); 229 | curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 230 | curl_setopt($ch, CURLOPT_MAXREDIRS, 32); 231 | curl_setopt($ch, CURLOPT_POST, true); 232 | curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 233 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 234 | curl_setopt($ch, CURLOPT_URL, "https://board.cs50.net/"); 235 | curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 236 | $response = curl_exec($ch); 237 | $info = curl_getinfo($ch); 238 | 239 | // delete ZIP 240 | unlink($filename); 241 | 242 | // check response 243 | if ($info["http_code"] != 200) 244 | die("CS50 Challenge returned an error. Email sysadmins@cs50.net to inquire.\n"); 245 | 246 | // decode response 247 | $o = json_decode($response); 248 | if (is_null($o)) 249 | die("CS50 Challenge returned an error. Email sysadmins@cs50.net to inquire.\n"); 250 | 251 | // check for URL 252 | if (isset($o->url)) 253 | { 254 | // operating system name 255 | $uname = php_uname("s"); 256 | 257 | // Mac OS 258 | if ($uname == "Darwin" && (boolean) getenv("DISPLAY")) 259 | system("open " . escapeshellarg($o->url) . " > /dev/null 2>&1"); 260 | 261 | // Linux 262 | else if ($uname == "Linux" && (boolean) getenv("DISPLAY")) 263 | system("xdg-open " . escapeshellarg($o->url) . " > /dev/null 2>&1"); 264 | 265 | // Windows 266 | else if ($uname == "Windows") 267 | system("start " . escapeshellarg($o->url)); 268 | } 269 | 270 | // display message, if any 271 | if (isset($o->message)) 272 | echo "{$o->message}\n"; 273 | 274 | // that's all folks 275 | exit(0); 276 | 277 | ?> 278 | 279 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/grimm.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | Etext 5 | Etexts 6 | Etexts 7 | Etexts 8 | Grimms' 9 | Etext 10 | Etext 11 | txt 12 | etexts 13 | txt 14 | txt 15 | Etext 16 | Dudding 17 | hotmail 18 | jbickers 19 | ihug 20 | nz 21 | Dagny 22 | dagnyj 23 | hotmail 24 | Etexts 25 | Etexts 26 | etext 27 | Etexts 28 | Etexts 29 | Etext 30 | x 31 | Etexts 32 | Hart's 33 | CMU 34 | CMU 35 | P 36 | O 37 | S 38 | prairienet 39 | org 40 | org 41 | org 42 | prairienet 43 | org 44 | etexts 45 | http 46 | promo 47 | pg 48 | Etexts 49 | etext 50 | http 51 | promo 52 | pg 53 | metalab 54 | unc 55 | edu 56 | cd 57 | docs 58 | cd 59 | dir 60 | mget 61 | GUTINDEX 62 | e 63 | g 64 | GUTINDEX 65 | GUTINDEX 66 | ETEXTS 67 | etext 68 | etext 69 | ETEXT 70 | tm 71 | etext 72 | etext 73 | etext 74 | TM 75 | ETEXTS 76 | tm 77 | etext 78 | tm 79 | etexts 80 | S 81 | etext 82 | etexts 83 | etexts 84 | etext 85 | etext 86 | tm 87 | etext 88 | etext 89 | ETEXT 90 | ETEXT 91 | etext 92 | etext 93 | tm 94 | etext 95 | etext 96 | etext 97 | cessing 98 | etext 99 | etext 100 | etext 101 | etext 102 | etext 103 | OCR 104 | etexts 105 | ETEXTS 106 | Ver 107 | Etext 108 | Dudding 109 | hotmail 110 | jbickers 111 | ihug 112 | nz 113 | Dagny 114 | dagnyj 115 | hotmail 116 | PREPARER'S 117 | Grimms' 118 | und 119 | Hausmarchen 120 | Edwardes 121 | JORINDA 122 | JORINDEL 123 | VIST 124 | KORBES 125 | FUNDEVOGEL 126 | HOLLE 127 | ASHPUTTEL 128 | HUNTSMEN 129 | KNOWALL 130 | gardener's 131 | gardener's 132 | place' 133 | cage' 134 | king's 135 | brothers' 136 | king's 137 | Jip 138 | Jip 139 | thirst' 140 | Tis 141 | JORINDA 142 | JORINDEL 143 | Jorinda 144 | Jorindel 145 | Jorindel 146 | Jorinda 147 | Jorindel 148 | Jorindel 149 | Jorinda 150 | mourn'd 151 | Jorindel 152 | Jorinda 153 | Tu 154 | whu 155 | Tu 156 | whu 157 | Tu 158 | whu 159 | Jorindel 160 | Jorindel 161 | Jorindel 162 | Jorinda 163 | sorrowed 164 | Jorinda 165 | disenchanted 166 | Jorinda 167 | Jorindel 168 | Jorindel 169 | Jorinda 170 | Jorinda 171 | Jorinda 172 | jollily 173 | in' 174 | king's 175 | king's 176 | king's 177 | king's 178 | kings' 179 | king's 180 | king's 181 | baker's 182 | king's 183 | king's 184 | kings' 185 | safe' 186 | king's 187 | water's 188 | O 189 | Ilsabill 190 | Ilsabill 191 | O 192 | Ilsabill 193 | Ilsabill 194 | O 195 | Ilsabill 196 | Ilsabill 197 | water's 198 | O 199 | Ilsabill 200 | Ilsabill 201 | O 202 | O 203 | Ilsabill 204 | Ilsabill 205 | Ilsabill 206 | O 207 | Ilsabill 208 | King's 209 | fly's 210 | bear's 211 | bear's 212 | Yes' 213 | prince's 214 | prince's 215 | godchildren 216 | gone' 217 | mouse's 218 | bridegroom's 219 | Falada 220 | bridegroom's 221 | Falada 222 | Falada 223 | instead' 224 | Falada 225 | Falada 226 | king's 227 | Curdken 228 | slaughterers 229 | road' 230 | Falada 231 | Falada 232 | Falada's 233 | Curdken 234 | Falada 235 | Falada 236 | hangest 237 | gangest 238 | Curdken 239 | Curdken's 240 | whirl'd 241 | comb'd 242 | curl'd 243 | Curdken's 244 | Falada's 245 | Falada 246 | Falada 247 | hangest 248 | gangest 249 | Curdken 250 | Curdken's 251 | whirl'd 252 | comb'd 253 | curl'd 254 | Curdken 255 | Curdken 256 | Falada 257 | Falada 258 | hangest 259 | gangest 260 | Curdken 261 | Falada 262 | Falada 263 | Curdken's 264 | whirl'd 265 | comb'd 266 | curl'd 267 | Curdken's 268 | Curdken 269 | Falada 270 | nutshells 271 | duck's 272 | Partlet's 273 | jollily 274 | eggshells 275 | morning' 276 | VIST 277 | KORBES 278 | Korbes 279 | Korbes 280 | Korbes's 281 | Korbes 282 | ells 283 | king's 284 | king's 285 | king's 286 | king's 287 | Gothel 288 | does' 289 | Gothel 290 | king's 291 | Rapunzel's 292 | king's 293 | king's 294 | king's 295 | FUNDEVOGEL 296 | Lina 297 | Fundevogel 298 | Fundevogel 299 | Lina 300 | Lina 301 | Sanna 302 | Lina 303 | Fundevogel 304 | Lina 305 | Fundevogel 306 | Fundevogel 307 | Lina 308 | Sanna 309 | Fundevogel 310 | Lina 311 | Fundevogel 312 | Fundevogel 313 | Lina 314 | simpletons 315 | Lina 316 | Fundevogel 317 | Fundevogel 318 | Lina 319 | Lina 320 | Fundevogel 321 | Fundevogel 322 | Lina 323 | tailor's 324 | strength' 325 | tailor's 326 | huntsmen 327 | king's 328 | pocketsful 329 | huntsmen 330 | huntsmen 331 | huntsmen 332 | king's 333 | O 334 | sluggards 335 | B 336 | Hansel's 337 | witch's 338 | witch's 339 | HOLLE 340 | baker's 341 | Holle 342 | Holle 343 | Holle 344 | Holle 345 | Holle 346 | Holle 347 | doo 348 | Holle's 349 | Holle 350 | Holle 351 | Holle 352 | doo 353 | time' 354 | wolf' 355 | wolf's 356 | wolf's 357 | morning' 358 | strewed 359 | murderers' 360 | murderers' 361 | murderers' 362 | murderers' 363 | murderers' 364 | murderers' 365 | shewed 366 | well' 367 | cow's 368 | cow's 369 | disheartened 370 | myself' 371 | again' 372 | cow's 373 | wolf's 374 | miller's 375 | miller's 376 | miller's 377 | miller's 378 | miller's 379 | miller's 380 | days' 381 | ICHABOD 382 | SHANKS 383 | jeered 384 | RUMPLESTILTSKIN 385 | miller's 386 | miller's 387 | raven's 388 | krr 389 | krr 390 | miller's 391 | talers 392 | raven's 393 | talers 394 | cow's 395 | talers 396 | talers 397 | miller's 398 | strewed 399 | O 400 | pedlars 401 | pedlars 402 | chafed 403 | chafed 404 | Catherine's 405 | witch's 406 | breadcrumbs 407 | Roland's 408 | Roland's 409 | windowframe 410 | O 411 | Snowdrop's 412 | O 413 | dwarfs' 414 | dwarfs' 415 | king's 416 | dwarfs' 417 | Snowdrop's 418 | king's 419 | king's 420 | king's 421 | king's 422 | huntsmen 423 | huntsmen 424 | king's 425 | king's 426 | sense' 427 | Elsie's 428 | fowler's 429 | years' 430 | reward' 431 | musician's 432 | florins 433 | dwarf's 434 | pity's 435 | florins 436 | ASHPUTTEL 437 | Ashputtel 438 | Ashputtel's 439 | king's 440 | Ashputtel 441 | dishful 442 | hours' 443 | linnets 444 | Ashputtel 445 | Ashputtel 446 | linnets 447 | Ashputtel 448 | shame' 449 | Ashputtel 450 | Ashputtel 451 | king's 452 | king's 453 | home' 454 | Ashputtel 455 | Ashputtel 456 | king's 457 | king's 458 | Ashputtel 459 | king's 460 | Ashputtel 461 | Ashputtel 462 | king's 463 | king's 464 | time' 465 | king's 466 | Ashputtel 467 | king's 468 | Ashputtel 469 | Ashputtel 470 | king's 471 | king's 472 | strewed 473 | sacksful 474 | king's 475 | king's 476 | bleated 477 | gorged 478 | beast's 479 | kings' 480 | bees' 481 | disenchanted 482 | king's 483 | dwarf's 484 | king's 485 | shoemaker's 486 | wights 487 | sorrowed 488 | winter's 489 | cuffings 490 | Marleen 491 | Marleen 492 | Marleen 493 | Marleen 494 | Marleen 495 | Marleen 496 | Marleen 497 | Kywitt 498 | Kywitt 499 | Kywitt 500 | Kywitt 501 | shoemaker's 502 | Kywitt 503 | Kywitt 504 | Kywitt 505 | Kywitt 506 | miller's 507 | Kywitt 508 | Kywitt 509 | Kywitt 510 | Kywitt 511 | Marleen 512 | Marleen 513 | Marleen 514 | Marleen 515 | Kywitt 516 | Kywitt 517 | Marleen 518 | Kywitt 519 | Kywitt 520 | Marleen 521 | Marleen 522 | sowed 523 | yoked 524 | calves' 525 | sheep's 526 | ecclesiastics 527 | cunningest 528 | chaffinch's 529 | king's 530 | shinest 531 | shinest 532 | blowest 533 | griffin's 534 | woes 535 | Jip 536 | Jip 537 | him' 538 | king's 539 | soldier's 540 | soldier's 541 | soldier's 542 | soldier's 543 | king's 544 | king's 545 | unconsumed 546 | king's 547 | Dummling 548 | Dummling 549 | Dummling 550 | Dummling 551 | Dummling 552 | Dummling 553 | Dummling 554 | goodness' 555 | Dummling 556 | Dummling 557 | Dummling 558 | king's 559 | Dummling 560 | cellarful 561 | Dummling 562 | Dummling 563 | Dummling 564 | king's 565 | Dummling 566 | Dummling 567 | Dummling 568 | ovenful 569 | Dummling 570 | king's 571 | Dummling 572 | Dummling 573 | Dummling 574 | king's 575 | Dummling 576 | it' 577 | overhung 578 | journey's 579 | brothers' 580 | right' 581 | journey's 582 | king's 583 | huntsmen 584 | prince's 585 | king's 586 | king's 587 | O 588 | thoughout 589 | road' 590 | frolick'd 591 | HUNTSMEN 592 | king's 593 | king's 594 | king's 595 | king's 596 | huntsmen's 597 | huntsmen's 598 | huntsmen 599 | king's 600 | huntsmen 601 | huntsmen 602 | huntsmen 603 | king's 604 | huntsmen 605 | king's 606 | huntsmen 607 | huntsmen 608 | king's 609 | huntsmen 610 | huntsmen 611 | king's 612 | Heinel 613 | Heinel 614 | Heinel 615 | Heinel 616 | Heinel 617 | Heinel 618 | Heinel 619 | Heinel 620 | Heinel 621 | Heinel 622 | Heinel 623 | Heinel 624 | Heinel 625 | Heinel 626 | Heinel 627 | Heinel 628 | traitors' 629 | Heinel 630 | KNOWALL 631 | Crabb 632 | talers 633 | B 634 | C 635 | Knowall 636 | Knowall 637 | Crabb 638 | Knowall 639 | Grete 640 | nobleman's 641 | Crabb 642 | Grete 643 | Grete 644 | Grete 645 | Grete 646 | Crabb 647 | B 648 | C 649 | Knowall 650 | play' 651 | tis 652 | O 653 | Kehrewit 654 | said' 655 | want' 656 | heart' 657 | asleep' 658 | one' 659 | stripes' 660 | O 661 | sexton's 662 | talers 663 | talers 664 | ropemaker's 665 | talers 666 | talers 667 | talers 668 | Au 669 | miau 670 | farthings 671 | gudgeons 672 | gudgeons 673 | Wallface 674 | baker's 675 | king's 676 | king's 677 | king's 678 | jeered 679 | huntsmen 680 | huntsmen 681 | king's 682 | king's 683 | gardener's 684 | king's 685 | king's 686 | king's 687 | ducats 688 | king's 689 | ducats 690 | gardener's 691 | hobblety 692 | hobblety 693 | Hans' 694 | king's 695 | hobblety 696 | king's 697 | king's 698 | king's 699 | king's 700 | king's 701 | gardener's 702 | gardener's 703 | besmeared 704 | huntsmen 705 | huntsmen 706 | huntsmen 707 | king's 708 | king's 709 | king's 710 | king's 711 | king's 712 | king's 713 | king's 714 | bleated 715 | little' 716 | bear's 717 | mercy's 718 | king's 719 | Wilhelm's 720 | Tales' 721 | Etext 722 | 723 | WORDS MISSPELLED: 718 724 | WORDS IN DICTIONARY: 143091 725 | WORDS IN TEXT: 103614 726 | -------------------------------------------------------------------------------- /files/home/ubuntu/.vimrc: -------------------------------------------------------------------------------- 1 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 2 | " Maintainer: 3 | " Amir Salihefendic 4 | " http://amix.dk - amix@amix.dk 5 | " 6 | " Version: 7 | " 5.0 - 29/05/12 15:43:36 8 | " 9 | " Blog_post: 10 | " http://amix.dk/blog/post/19691#The-ultimate-Vim-configuration-on-Github 11 | " 12 | " Awesome_version: 13 | " Get this config, nice color schemes and lots of plugins! 14 | " 15 | " Install the awesome version from: 16 | " 17 | " https://github.com/amix/vimrc 18 | " 19 | " Syntax_highlighted: 20 | " http://amix.dk/vim/vimrc.html 21 | " 22 | " Raw_version: 23 | " http://amix.dk/vim/vimrc.txt 24 | " 25 | " Sections: 26 | " -> General 27 | " -> VIM user interface 28 | " -> Colors and Fonts 29 | " -> Files and backups 30 | " -> Text, tab and indent related 31 | " -> Visual mode related 32 | " -> Moving around, tabs and buffers 33 | " -> Status line 34 | " -> Editing mappings 35 | " -> vimgrep searching and cope displaying 36 | " -> Spell checking 37 | " -> Misc 38 | " -> Helper functions 39 | " 40 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 41 | 42 | 43 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 44 | " => General 45 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 46 | " Sets how many lines of history VIM has to remember 47 | set history=700 48 | 49 | " Enable filetype plugins 50 | filetype plugin on 51 | filetype indent on 52 | 53 | " Set to auto read when a file is changed from the outside 54 | set autoread 55 | 56 | " With a map leader it's possible to do extra key combinations 57 | " like w saves the current file 58 | let mapleader = "," 59 | let g:mapleader = "," 60 | 61 | " Fast saving 62 | nmap w :w! 63 | 64 | " :W sudo saves the file 65 | " (useful for handling the permission-denied error) 66 | command W w !sudo tee % > /dev/null 67 | 68 | 69 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 70 | " => VIM user interface 71 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 72 | " Set 7 lines to the cursor - when moving vertically using j/k 73 | set so=7 74 | 75 | " Turn on the WiLd menu 76 | set wildmenu 77 | 78 | " Ignore compiled files 79 | set wildignore=*.o,*~,*.pyc 80 | if has("win16") || has("win32") 81 | set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.DS_Store 82 | else 83 | set wildignore+=.git\*,.hg\*,.svn\* 84 | endif 85 | 86 | "Always show current position 87 | set ruler 88 | 89 | " Height of the command bar 90 | set cmdheight=2 91 | 92 | " A buffer becomes hidden when it is abandoned 93 | set hid 94 | 95 | " Configure backspace so it acts as it should act 96 | set backspace=eol,start,indent 97 | set whichwrap+=<,>,h,l 98 | 99 | " Ignore case when searching 100 | set ignorecase 101 | 102 | " When searching try to be smart about cases 103 | set smartcase 104 | 105 | " Highlight search results 106 | set hlsearch 107 | 108 | " Makes search act like search in modern browsers 109 | set incsearch 110 | 111 | " Don't redraw while executing macros (good performance config) 112 | set lazyredraw 113 | 114 | " For regular expressions turn magic on 115 | set magic 116 | 117 | " Show matching brackets when text indicator is over them 118 | set showmatch 119 | " How many tenths of a second to blink when matching brackets 120 | set mat=2 121 | 122 | " No annoying sound on errors 123 | set noerrorbells 124 | set novisualbell 125 | set t_vb= 126 | set tm=500 127 | 128 | " Add a bit extra margin to the left 129 | set foldcolumn=1 130 | 131 | 132 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 133 | " => Colors and Fonts 134 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 135 | " Enable syntax highlighting 136 | syntax enable 137 | 138 | try 139 | colorscheme desert 140 | catch 141 | endtry 142 | 143 | set background=dark 144 | 145 | " Set extra options when running in GUI mode 146 | if has("gui_running") 147 | set guioptions-=T 148 | set guioptions-=e 149 | set t_Co=256 150 | set guitablabel=%M\ %t 151 | endif 152 | 153 | " Set utf8 as standard encoding and en_US as the standard language 154 | set encoding=utf8 155 | 156 | " Use Unix as the standard file type 157 | set ffs=unix,dos,mac 158 | 159 | 160 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 161 | " => Files, backups and undo 162 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 163 | " Turn backup off, since most stuff is in SVN, git et.c anyway... 164 | set nobackup 165 | set nowb 166 | set noswapfile 167 | 168 | 169 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 170 | " => Text, tab and indent related 171 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 172 | " Use spaces instead of tabs 173 | set expandtab 174 | 175 | " Be smart when using tabs ;) 176 | set smarttab 177 | 178 | " 1 tab == 4 spaces 179 | set shiftwidth=4 180 | set tabstop=4 181 | 182 | " Linebreak on 500 characters 183 | set lbr 184 | set tw=500 185 | 186 | set ai "Auto indent 187 | set si "Smart indent 188 | set wrap "Wrap lines 189 | 190 | 191 | """""""""""""""""""""""""""""" 192 | " => Visual mode related 193 | """""""""""""""""""""""""""""" 194 | " Visual mode pressing * or # searches for the current selection 195 | " Super useful! From an idea by Michael Naumann 196 | vnoremap * :call VisualSelection('f', '') 197 | vnoremap # :call VisualSelection('b', '') 198 | 199 | 200 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 201 | " => Moving around, tabs, windows and buffers 202 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 203 | " Treat long lines as break lines (useful when moving around in them) 204 | map j gj 205 | map k gk 206 | 207 | " Map to / (search) and Ctrl- to ? (backwards search) 208 | map / 209 | map ? 210 | 211 | " Disable highlight when is pressed 212 | map :noh 213 | 214 | " Smart way to move between windows 215 | map j 216 | map k 217 | map h 218 | map l 219 | 220 | " Close the current buffer 221 | map bd :Bclose 222 | 223 | " Close all the buffers 224 | map ba :1,1000 bd! 225 | 226 | " Useful mappings for managing tabs 227 | map tn :tabnew 228 | map to :tabonly 229 | map tc :tabclose 230 | map tm :tabmove 231 | map t :tabnext 232 | 233 | " Opens a new tab with the current buffer's path 234 | " Super useful when editing files in the same directory 235 | map te :tabedit =expand("%:p:h")/ 236 | 237 | " Switch CWD to the directory of the open buffer 238 | map cd :cd %:p:h:pwd 239 | 240 | " Specify the behavior when switching between buffers 241 | try 242 | set switchbuf=useopen,usetab,newtab 243 | set stal=2 244 | catch 245 | endtry 246 | 247 | " Return to last edit position when opening files (You want this!) 248 | autocmd BufReadPost * 249 | \ if line("'\"") > 0 && line("'\"") <= line("$") | 250 | \ exe "normal! g`\"" | 251 | \ endif 252 | " Remember info about open buffers on close 253 | set viminfo^=% 254 | 255 | 256 | """""""""""""""""""""""""""""" 257 | " => Status line 258 | """""""""""""""""""""""""""""" 259 | " Always show the status line 260 | set laststatus=2 261 | 262 | " Format the status line 263 | set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l 264 | 265 | 266 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 267 | " => Editing mappings 268 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 269 | " Remap VIM 0 to first non-blank character 270 | map 0 ^ 271 | 272 | " Move a line of text using ALT+[jk] or Comamnd+[jk] on mac 273 | nmap mz:m+`z 274 | nmap mz:m-2`z 275 | vmap :m'>+`mzgv`yo`z 276 | vmap :m'<-2`>my` 280 | nmap 281 | vmap 282 | vmap 283 | endif 284 | 285 | " Delete trailing white space on save, useful for Python and CoffeeScript ;) 286 | func! DeleteTrailingWS() 287 | exe "normal mz" 288 | %s/\s\+$//ge 289 | exe "normal `z" 290 | endfunc 291 | autocmd BufWrite *.py :call DeleteTrailingWS() 292 | autocmd BufWrite *.coffee :call DeleteTrailingWS() 293 | 294 | 295 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 296 | " => Ack searching and cope displaying 297 | " requires ack.vim - it's much better than vimgrep/grep 298 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 299 | " When you press gv you Ack after the selected text 300 | vnoremap gv :call VisualSelection('gv', '') 301 | 302 | " Open Ack and put the cursor in the right position 303 | map g :Ack 304 | 305 | " When you press r you can search and replace the selected text 306 | vnoremap r :call VisualSelection('replace', '') 307 | 308 | " Do :help cope if you are unsure what cope is. It's super useful! 309 | " 310 | " When you search with Ack, display your results in cope by doing: 311 | " cc 312 | " 313 | " To go to the next search result do: 314 | " n 315 | " 316 | " To go to the previous search results do: 317 | " p 318 | " 319 | map cc :botright cope 320 | map co ggVGy:tabnew:set syntax=qfpgg 321 | map n :cn 322 | map p :cp 323 | 324 | 325 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 326 | " => Spell checking 327 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 328 | " Pressing ,ss will toggle and untoggle spell checking 329 | map ss :setlocal spell! 330 | 331 | " Shortcuts using 332 | map sn ]s 333 | map sp [s 334 | map sa zg 335 | map s? z= 336 | 337 | 338 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 339 | " => Misc 340 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 341 | " Remove the Windows ^M - when the encodings gets messed up 342 | noremap m mmHmt:%s///ge'tzt'm 343 | 344 | " Quickly open a buffer for scribble 345 | map q :e ~/buffer 346 | 347 | " Quickly open a markdown buffer for scribble 348 | map x :e ~/buffer.md 349 | 350 | " Toggle paste mode on and off 351 | map pp :setlocal paste! 352 | 353 | 354 | 355 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 356 | " => Helper functions 357 | """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 358 | function! CmdLine(str) 359 | exe "menu Foo.Bar :" . a:str 360 | emenu Foo.Bar 361 | unmenu Foo 362 | endfunction 363 | 364 | function! VisualSelection(direction, extra_filter) range 365 | let l:saved_reg = @" 366 | execute "normal! vgvy" 367 | 368 | let l:pattern = escape(@", '\\/.*$^~[]') 369 | let l:pattern = substitute(l:pattern, "\n$", "", "") 370 | 371 | if a:direction == 'b' 372 | execute "normal ?" . l:pattern . "^M" 373 | elseif a:direction == 'gv' 374 | call CmdLine("Ack \"" . l:pattern . "\" " ) 375 | elseif a:direction == 'replace' 376 | call CmdLine("%s" . '/'. l:pattern . '/') 377 | elseif a:direction == 'f' 378 | execute "normal /" . l:pattern . "^M" 379 | endif 380 | 381 | let @/ = l:pattern 382 | let @" = l:saved_reg 383 | endfunction 384 | 385 | 386 | " Returns true if paste mode is enabled 387 | function! HasPaste() 388 | if &paste 389 | return 'PASTE MODE ' 390 | en 391 | return '' 392 | endfunction 393 | 394 | " Don't close window, when deleting a buffer 395 | command! Bclose call BufcloseCloseIt() 396 | function! BufcloseCloseIt() 397 | let l:currentBufNum = bufnr("%") 398 | let l:alternateBufNum = bufnr("#") 399 | 400 | if buflisted(l:alternateBufNum) 401 | buffer # 402 | else 403 | bnext 404 | endif 405 | 406 | if bufnr("%") == l:currentBufNum 407 | new 408 | endif 409 | 410 | if buflisted(l:currentBufNum) 411 | execute("bdelete! ".l:currentBufNum) 412 | endif 413 | endfunction -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/sherlock.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | EBook 5 | eBook 6 | eBook 7 | eBooks 8 | eBooks 9 | EBook 10 | EBOOK 11 | Menendez 12 | Boscombe 13 | V 14 | Pips 15 | X 16 | Beeches 17 | Trepoff 18 | E 19 | g 20 | P 21 | G 22 | t 23 | G' 24 | t' 25 | P 26 | Eg 27 | Eglow 28 | Eglonitz 29 | Egria 30 | uncourteous 31 | horses' 32 | Kramm 33 | Ormstein 34 | Gottsreich 35 | Sigismond 36 | Ormstein 37 | Felstein 38 | Clotilde 39 | Lothman 40 | Meningen 41 | Langham 42 | Kramm 43 | Mademoiselle's 44 | ostlers 45 | daintiest 46 | gentleman's 47 | Hankey's 48 | Edgeware 49 | surpliced 50 | expostulating 51 | plumber's 52 | Holmes' 53 | guardsmen 54 | guardsmen 55 | guardsmen 56 | marm 57 | intrusted 58 | ostlers 59 | Edgeware 60 | Arnsworth 61 | superscribed 62 | Esq 63 | n 64 | e 65 | Irene's 66 | Jabez 67 | Holmes' 68 | Jabez 69 | fishes' 70 | Jabez 71 | Omne 72 | Ezekiah 73 | U 74 | S 75 | Jabez 76 | wits' 77 | Ezekiah 78 | Londoners 79 | coster's 80 | Jabez 81 | Jabez 82 | planked 83 | B's 84 | overtopped 85 | Jabez 86 | James's 87 | Aldersgate 88 | JABEZ 89 | Mortimer's 90 | McFarlane's 91 | enwrapped 92 | James's 93 | hansoms 94 | Merryweather 95 | Merryweather 96 | Sholto 97 | Merryweather 98 | Merryweather 99 | Farrington 100 | Merryweather 101 | Merryweather 102 | Merryweather 103 | Merryweather 104 | Merryweather 105 | Merryweather 106 | napoleons 107 | napoleons 108 | Merryweather 109 | partie 110 | e 111 | Holmes' 112 | sir' 113 | Merryweather 114 | accomplice's 115 | Jabez 116 | L'homme 117 | c'est 118 | l'oeuvre 119 | c'est 120 | plannings 121 | outr 122 | conventionalities 123 | Dundas 124 | Hosmer 125 | Windibank 126 | Tottenham 127 | Windibank 128 | Windibank 129 | Hosmer 130 | gasfitters' 131 | Windibank 132 | Hosmer 133 | Windibank 134 | gasfitters' 135 | Hosmer 136 | Hosmer 137 | Hosmer 138 | Hosmer 139 | Hosmer 140 | Leadenhall 141 | Leadenhall 142 | Leadenhall 143 | chaffed 144 | Hosmer 145 | Windibank 146 | Hosmer 147 | King's 148 | Pancras 149 | Hosmer 150 | Hosmer 151 | Hosmer 152 | Hosmer 153 | Westhouse 154 | Marbank 155 | Fenchurch 156 | Hosmer 157 | brickish 158 | greyish 159 | typewritist 160 | pince 161 | Hosmer 162 | Hosmer 163 | Leadenhall 164 | Hosmer 165 | Angel' 166 | Leadenhall 167 | Windibank 168 | d 169 | nouement 170 | Windibank 171 | Windibank 172 | Hosmer 173 | Hosmer 174 | Windibank 175 | Windibank 176 | e 177 | r 178 | Windibank 179 | e's' 180 | slurred 181 | r's' 182 | Windibank 183 | Windibank 184 | Windibank 185 | Windibank 186 | Hosmer 187 | gentleman's 188 | Windibank 189 | Hosmer 190 | Windibank 191 | Windibank 192 | Hosmer 193 | Westhouse 194 | Marbank 195 | Fenchurch 196 | Windibank 197 | Voil 198 | BOSCOMBE 199 | Boscombe 200 | Paddington 201 | Anstruther 202 | Holmes' 203 | Paddington 204 | gaunter 205 | Boscombe 206 | Hatherley 207 | McCarthys 208 | Hatherley 209 | Boscombe 210 | Boscombe 211 | Hatherley 212 | Boscombe 213 | McCarthys 214 | Boscombe 215 | Boscombe 216 | McCarthys 217 | Boscombe 218 | murder' 219 | Lestrade 220 | Lestrade 221 | Lestrade 222 | Lestrade 223 | m 224 | Hatherley 225 | coroner's 226 | Boscombe 227 | Hatherley 228 | Turner's 229 | Cooee' 230 | outr 231 | dustcoat 232 | Lestrade 233 | Lestrade 234 | Lestrade 235 | caseful 236 | Lestrade 237 | Lestrade 238 | Lestrade 239 | Lestrade 240 | minutes' 241 | Holmes' 242 | improbabilities 243 | Lestrade's 244 | Holmes' 245 | Lestrade 246 | fagged 247 | upbraided 248 | Lestrade 249 | Hatherley 250 | Boscombe 251 | Lestrade 252 | Hatherley 253 | Turner's 254 | Lestrade 255 | Lestrade 256 | Hatherley 257 | blotches 258 | Holmes' 259 | Boscombe 260 | Boscombe 261 | Lestrade 262 | Boscombe 263 | Hatherley 264 | Hatherley 265 | Lestrade 266 | Tiptoes 267 | tiptoes 268 | Lestrade 269 | Lestrade 270 | verrons 271 | Lestrade 272 | Lestrade 273 | Cooee' 274 | Boscombe 275 | ARAT 276 | Lestrade 277 | s 278 | deathbeds 279 | V 280 | PIPS 281 | Paradol 282 | Grice 283 | Patersons 284 | Uffa 285 | Russell's 286 | pince 287 | Horsham 288 | Prendergast 289 | Tankerville 290 | Openshaw 291 | Openshaw 292 | Jackson's 293 | Horsham 294 | Horsham 295 | pips 296 | K 297 | K 298 | K 299 | K 300 | pips 301 | cashbox 302 | Horsham 303 | K 304 | scummed 305 | Horsham 306 | K 307 | K 308 | K 309 | register' 310 | Openshaw 311 | Horsham 312 | pips 313 | K 314 | K 315 | K 316 | Freebody 317 | Portsdown 318 | footmarks 319 | Horsham 320 | pips 321 | K 322 | K 323 | K 324 | Prendergast 325 | Openshaw 326 | pips 327 | pips 328 | Paramore 329 | Paramore 330 | Horsham 331 | reabsorbed 332 | Openshaw 333 | Sholtos 334 | K 335 | K 336 | K 337 | K 338 | Encyclopaedia' 339 | Openshaw 340 | Openshaw 341 | Openshaw 342 | coroner's 343 | K 344 | K 345 | K 346 | Ku 347 | Ku 348 | pips 349 | Openshaw 350 | pips 351 | B 352 | C' 353 | B 354 | C 355 | C 356 | Openshaw 357 | Openshaw's 358 | Horsham 359 | Openshaw 360 | H 361 | Openshaw 362 | Horsham 363 | decoyed 364 | Openshaw 365 | unavenged 366 | pips 367 | S 368 | H 369 | J 370 | O 371 | Openshaw 372 | Lloyd's 373 | Star' 374 | Star' 375 | Goodwins 376 | Openshaw 377 | pips 378 | L 379 | S 380 | Isa 381 | D 382 | D 383 | Quincey's 384 | Isa 385 | Swandam 386 | Isa 387 | Whitney's 388 | Swandam 389 | Isa 390 | d'you 391 | Holmes' 392 | Whitney's 393 | sots 394 | Ay 395 | Clair 396 | horses' 397 | Cedars 398 | Cedars 399 | Clair's 400 | balustraded 401 | rifts 402 | Clair 403 | Clair 404 | Clair 405 | Swandam 406 | Clair 407 | Swandam 408 | Clair 409 | Swandam 410 | Clair 411 | Clair 412 | Clair 413 | Clair 414 | Clair's 415 | gentleman's 416 | Clair 417 | vestas 418 | Clair 419 | Clair 420 | Clair's 421 | Clair's 422 | Clair 423 | Clair 424 | coat's 425 | Clair 426 | Cedars 427 | Clair 428 | soie 429 | greyish 430 | Clair 431 | Swandam 432 | Swandam 433 | Clair 434 | Bradstreet 435 | Bradstreet 436 | Bradstreet 437 | beggarman 438 | Clair 439 | tinker's 440 | Clair 441 | Clair 442 | Bradstreet 443 | ay 444 | fortnight's 445 | Swandam 446 | Clair 447 | Bradstreet 448 | Bradstreet 449 | Peterson's 450 | Tottenham 451 | Goodge 452 | roughs 453 | Tottenham 454 | roughs 455 | Baker' 456 | H 457 | B 458 | maker's 459 | H 460 | B 461 | brims 462 | daubing 463 | Morcar's 464 | Horner 465 | Horner 466 | inst 467 | Morcar 468 | Horner 469 | Morcar 470 | Horner 471 | Horner 472 | Horner 473 | Cusack 474 | Ryder's 475 | Bradstreet 476 | B 477 | Horner 478 | Horner 479 | Tottenham 480 | Goodge 481 | James's 482 | Horner 483 | Holmes' 484 | Holmes' 485 | roughs 486 | disjecta 487 | membra 488 | Windigate 489 | ulsters 490 | doctors' 491 | Wimpole 492 | Wigmore 493 | Holborn 494 | aproned 495 | them's 496 | Breckinridge 497 | Breckinridge 498 | years' 499 | Holborn 500 | Endell 501 | Breckinridge 502 | D'you 503 | D'you 504 | Oakshott 505 | Oakshott 506 | Windigate 507 | un' 508 | Oakshott 509 | Breckinridge 510 | Oakshott 511 | Oakshott 512 | Proosia 513 | Oakshott 514 | Breckinridge 515 | Windigate 516 | claspings 517 | unclaspings 518 | bonniest 519 | game's 520 | Morcar's 521 | Cusack 522 | ladyship's 523 | Horner 524 | Cusack 525 | Christ's 526 | Horner 527 | Horner 528 | Oakshott 529 | Maudsley 530 | Pentonville 531 | Kilburn 532 | Kilburn 533 | Jem 534 | Jem's 535 | huffed 536 | Kilburn 537 | dealer's 538 | Jem 539 | dealer's 540 | Breckinridge 541 | Jem 542 | Breckinridge 543 | Holmes' 544 | Horner 545 | Roylotts 546 | Grimesby 547 | Roylott 548 | Farintosh 549 | Farintosh 550 | Roylotts 551 | Roylott 552 | Roylott 553 | Roylott 554 | Roylott 555 | stepfather's 556 | Honoria 557 | Westphail 558 | Roylott's 559 | Roylott 560 | Roylott's 561 | Armitage 562 | Armitage 563 | Armitage 564 | Roylott 565 | stepdaughter's 566 | fleshless 567 | Grimesby 568 | Roylott 569 | Doctors' 570 | morning's 571 | Eley's 572 | pokers 573 | Grimesby 574 | Roylott 575 | Roylott 576 | blotched 577 | outsides 578 | Roylott's 579 | counterpaned 580 | ventilators 581 | Grimesby 582 | Roylott's 583 | stepfather's 584 | pity's 585 | Roylott 586 | Grimesby 587 | Roylott 588 | Roylott's 589 | coroner's 590 | goodness' 591 | unrepaired 592 | Holmes' 593 | Roylott's 594 | Grimesby 595 | Roylott 596 | Grimesby 597 | Roylott 598 | snakish 599 | Grimesby 600 | Roylott's 601 | Hatherley's 602 | Warburton's 603 | Paddington 604 | Paddington 605 | dooties 606 | Paddington 607 | Hatherley 608 | caraffe 609 | dottles 610 | rashers 611 | Hatherley 612 | Venner 613 | Matheson 614 | Stark' 615 | Hatherley 616 | Hatherley 617 | fleshless 618 | Eyford 619 | Paddington 620 | Eyford 621 | fuller's 622 | fuller's 623 | Eyford 624 | fuller's 625 | Hatherley 626 | Eyford 627 | intrusted 628 | fuller's 629 | Paddington 630 | Eyford 631 | Eyford 632 | fuller's 633 | blotches 634 | whishing 635 | fuller's 636 | fuller's 637 | inst 638 | Hayling 639 | Eyford 640 | Bradstreet 641 | Bradstreet 642 | Eyford 643 | Bradstreet 644 | Hatherley 645 | Bradstreet 646 | coiners 647 | Eyford 648 | Bradstreet 649 | Becher's 650 | Becher 651 | Becher 652 | Hatherley 653 | Holmes' 654 | Holmes' 655 | X 656 | Jezail 657 | Lestrade 658 | Vere 659 | Hatty 660 | Doran 661 | Aloysius 662 | Doran 663 | Esq 664 | U 665 | S 666 | Hatty 667 | Doran 668 | Doran 669 | Westbury 670 | Birchmoor 671 | Aloysius 672 | Doran 673 | Petersfield 674 | Wedding' 675 | Aloysius 676 | Doran 677 | Eustace 678 | Aloysius 679 | Doran 680 | Aloysius 681 | Doran 682 | Millar 683 | danseuse 684 | Hatty 685 | Doran 686 | fait 687 | accompli 688 | Doran 689 | Millar 690 | Doran's 691 | Doran's 692 | Lestrade 693 | decoyed 694 | Thoreau's 695 | Lestrade 696 | Lestrade 697 | Lestrade 698 | Millar 699 | Lestrade 700 | Millar 701 | F 702 | H 703 | M 704 | decoyed 705 | Millar 706 | Lestrade 707 | Lestrade 708 | Lestrade 709 | Lestrade 710 | Lestrade 711 | Lestrade 712 | confectioner's 713 | p 714 | t 715 | McQuire's 716 | miners' 717 | Frank's 718 | Lestrade 719 | Simon's 720 | miners' 721 | Lestrade 722 | eightpence 723 | H 724 | resounded 725 | imbedded 726 | beryls 727 | beryls 728 | Bankers' 729 | Streatham 730 | sterner 731 | Burnwell 732 | Burnwell 733 | beryls 734 | Arthur's 735 | beryls 736 | Arthur's 737 | Burnwell 738 | Arthur's 739 | Streatham 740 | banker's 741 | Holmes' 742 | Fairbank 743 | Fairbank 744 | tradesmen's 745 | tradesmen's 746 | Holmes' 747 | banker's 748 | jeweller's 749 | footmarks 750 | o' 751 | Streatham 752 | Burnwell 753 | footmarks 754 | servants' 755 | Burnwell 756 | tradesmen's 757 | Burnwell 758 | Streatham 759 | Burnwell 760 | BEECHES 761 | c 762 | l 763 | bres 764 | unobservant 765 | plover's 766 | Westaway's 767 | Westaway 768 | Stoper 769 | Stoper 770 | Stoper 771 | Beeches 772 | faddy 773 | faddy 774 | ladies' 775 | ladies' 776 | Stoper 777 | Stoper 778 | Beeches 779 | Stoper 780 | JEPHRO 781 | RUCASTLE 782 | Rucastle 783 | Rucastle 784 | acetones 785 | steadings 786 | Rucastle 787 | Rucastle 788 | Rucastle 789 | Beeches 790 | Southerton's 791 | beeches 792 | Rucastle 793 | Rucastle 794 | Rucastle 795 | Rucastle 796 | Rucastle 797 | Beeches 798 | Rucastle 799 | Rucastle 800 | Rucastle 801 | Rucastle 802 | Rucastle 803 | r 804 | pertoire 805 | railings 806 | Rucastle 807 | Jephro 808 | Rucastle 809 | Beeches 810 | Rucastle 811 | Rucastle 812 | goodness' 813 | beeches 814 | Rucastles 815 | Tollers 816 | Rucastle 817 | Rucastle 818 | Rucastle 819 | Rucastle 820 | unpapered 821 | uncarpeted 822 | barricaded 823 | Rucastle 824 | overdid 825 | again' 826 | Rucastle 827 | Rucastle 828 | Rucastles 829 | Beeches 830 | Rucastles 831 | Rucastle 832 | fianc 833 | Rucastle 834 | cruelty's 835 | Beeches 836 | Rucastle's 837 | Holmes' 838 | Hunter's 839 | Rucastles 840 | Rucastle's 841 | Rucastle 842 | ha' 843 | Alice's 844 | Rucastle's 845 | death's 846 | Rucastle 847 | Rucastle 848 | standi 849 | beeches 850 | Rucastle 851 | Rucastle's 852 | Rucastle 853 | EBOOK 854 | txt 855 | eBooks 856 | txt 857 | txt 858 | eBooks 859 | eBooks 860 | eBooks 861 | eBooks 862 | http 863 | http 864 | promo 865 | pg 866 | eBooks 867 | eBook 868 | http 869 | ibiblio 870 | org 871 | ibiblio 872 | org 873 | docs 874 | eBook 875 | eBooks 876 | eBooks 877 | eBooks 878 | eBooks 879 | eBooks 880 | PMB 881 | c 882 | http 883 | html 884 | S 885 | EBOOKS 886 | eBook 887 | eBook 888 | EBOOK 889 | tm 890 | eBook 891 | eBook 892 | eBook 893 | TM 894 | EBOOKS 895 | tm 896 | eBook 897 | tm 898 | eBooks 899 | S 900 | eBook 901 | eBooks 902 | eBooks 903 | eBook 904 | eBook 905 | tm 906 | eBook 907 | eBook 908 | EBOOK 909 | EBOOK 910 | tm 911 | eBook 912 | eBook 913 | tm 914 | eBook 915 | eBook 916 | eBook 917 | eBook 918 | eBook 919 | eBook 920 | eBook 921 | eBook 922 | eBook's 923 | C 924 | S 925 | eBooks 926 | EBOOKS 927 | Ver 928 | 929 | WORDS MISSPELLED: 924 930 | WORDS IN DICTIONARY: 143091 931 | WORDS IN TEXT: 107602 932 | -------------------------------------------------------------------------------- /files/usr/bin/backup50: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # backup50 3 | # a wrapper for copy.com 4 | # 5 | # by Annaleah Ernst 6 | # CS50 jterm 2016 7 | # annaleahernst@college.harvard.edu 8 | 9 | ############### BEGIN GLOBAL AND CONSTANT DECLARATIONS ######################### 10 | set -uo pipefail 11 | IFS=$'\n\t' 12 | 13 | # only run as ubuntu 14 | if [ "$(whoami)" != "ubuntu" ]; then 15 | echo "This script must only be run by the ubuntu user (don't use sudo)!" 16 | exit 1 17 | fi 18 | 19 | # check environment variables 20 | [ -z "$HOME" ] && echo "Environment variable HOME not set." && exit 2; 21 | [ -z "$C9_USER" ] && echo "Environment variable C9_USER not set." && exit 2; 22 | [ -z "$C9_PROJECT" ] && echo "Environment variable C9_PROJECT not set." && exit 2; 23 | 24 | # check for prerequisites 25 | if [ $(dpkg -s inotify-tools > /dev/null 2>&1)$? -ne 0 ]; then 26 | echo "Dependencies are not installed, please run update50." 27 | exit 2 28 | fi 29 | 30 | # name of script 31 | readonly SCRIPTNAME="backup50" 32 | 33 | # important cloud paths 34 | readonly CLDWKSPCS="workspaces" 35 | readonly CLDUSERS="$CLDWKSPCS/$C9_USER" 36 | readonly CLDPRJCT="$CLDUSERS/$C9_PROJECT" 37 | 38 | # important local paths 39 | readonly WORKDIR="$HOME/workspace" # path to workspace 40 | readonly COPYLOC="$HOME/bin/copy" # location of the copy folder 41 | readonly DOTCOPY="$HOME/.copy" # location of the metadata 42 | readonly STATUSFILE="$DOTCOPY/status.txt" # location of status data 43 | readonly WATCHPID="$DOTCOPY/watch.pid" # location of process id for running watch daemon 44 | readonly SYNCDIR="$DOTCOPY/userdata" # root directory of copy.com data 45 | readonly SYMLINKDIR="$SYNCDIR/$CLDUSERS" # directory containing symlink 46 | readonly SYMLINK="$SYMLINKDIR/$C9_PROJECT" # symlink to workspace 47 | 48 | # the copy.com "cli" that we're wrapping 49 | readonly COPYCMD="$COPYLOC/x86_64/CopyCmd" 50 | readonly COPYCONSOLE="$COPYLOC/x86_64/CopyConsole" 51 | 52 | # status messages 53 | STATUS="" 54 | readonly INVALIDLOGN="Incorrect username or password" 55 | readonly MISSLOGIN="Missing Login Information" 56 | readonly NOTINSTALLED="$SCRIPTNAME has not been installed. Type '$SCRIPTNAME start' to begin setup." 57 | readonly NOWATCH="No watch running" 58 | readonly NOTRUN="$SCRIPTNAME is not running!" 59 | 60 | # process variables; name, ID 61 | readonly PROCESSNAME="CopyConsole" 62 | PID=$(pgrep "$PROCESSNAME") 63 | readonly TIMEOUT=5 # process times out after this many seconds 64 | 65 | # messages 66 | readonly STARTSUCCESS="Syncing started successfully!" 67 | readonly STARTFAILURE="Unable to start $SCRIPTNAME at this time." 68 | readonly STOPSUCCESS="Syncing stopped." 69 | readonly STOPFAILURE="Unable to stop $SCRIPTNAME at this time." 70 | readonly CLDFAILURE="ERROR: Failure to connect with cloud. Try again later. Exiting..." 71 | readonly DNLDFAILURE="ERROR: Unable to to download binaries. Exiting..." 72 | readonly FILEFAILURE="ERROR: Unable to remove local file. Exiting..." 73 | 74 | # misc regexs (don't panic) 75 | readonly EXREGEX='s/^\///gm' # for listing excludes 76 | readonly LSREGEX='s/^d.[ \t\f\v]*|^-.[ \t\f\v]*(\S* )//gm' # for listing files 77 | 78 | ################## BEGIN FUNCTION DEFINITIONS ################################## 79 | 80 | # usage: check "error message" 81 | # used to standardize error detection 82 | check(){ 83 | # error check cloud cli 84 | if [ $? -ne 0 ]; then 85 | stop > /dev/null 86 | error_msg "$1" 87 | exit 3 88 | fi 89 | } 90 | 91 | # deletes files that are excluded on the cloud and have been (sneakily) downloaded locally 92 | deleteExcludes(){ 93 | delete_helper(){ 94 | for file in $(ls "$1"); do 95 | if [ "$file" != "$2" ]; then 96 | rm -rf "$1/$file" 97 | fi 98 | done 99 | } 100 | # delete files in any of three sub dirs 101 | delete_helper "$SYNCDIR" "$CLDWKSPCS" 102 | delete_helper "$SYNCDIR/$CLDWKSPCS" "$C9_USER" 103 | delete_helper "$SYNCDIR/$CLDUSERS" "$C9_PROJECT" 104 | } 105 | 106 | error_msg(){ 107 | echo "$1" >&2 108 | } 109 | 110 | # climb through file tree and exlude all files not in project to prevent bricking IDE 111 | exclude(){ 112 | # usage: exclude_helper [FILE/FOLDER TO KEEP] ([PATH TO CURRENT DIR]) 113 | exclude_helper(){ 114 | dir="" 115 | path="" 116 | # get stripped down file/directory names 117 | if [ $# -eq 2 ]; then 118 | # set path, start at 3rd line of search results; first line is metadata, 2nd is pwd 119 | path="$2/" 120 | dir=$("$COPYCMD" Cloud ls "$2" | sed -r "$LSREGEX" | tail -n +3) 121 | else 122 | # starting at 2nd line of search results; first is metadata 123 | dir=$("$COPYCMD" Cloud ls | sed -r "$LSREGEX" | tail -n +2) 124 | fi 125 | check "$CLDFAILURE" # error check cloud cli 126 | 127 | for file in $dir; do 128 | if [ "$file" != "$1" ]; then 129 | "$COPYCMD" Cloud exclude -exclude "$path$file" > /dev/null 130 | check "$CLDFAILURE" # error check cloud cli 131 | fi 132 | done 133 | } 134 | # exclude files in each sub directory of our workspaces tree 135 | exclude_helper "$CLDWKSPCS" 136 | exclude_helper "$C9_USER" "$CLDWKSPCS" 137 | exclude_helper "$C9_PROJECT" "$CLDUSERS" 138 | } 139 | 140 | # displays information on the usage of this wrapper 141 | help(){ 142 | echo "Usage: $SCRIPTNAME [start|stop|status|uninstall]" 143 | echo "Functions:" 144 | echo -e "\t start \t\t start Copy.com syncing, or install if first run" 145 | echo -e "\t stop \t\t stop Copy.com syncing" 146 | echo -e "\t status \t get info about current Copy.com processes" 147 | echo -e "\t uninstall \t uninstall Copy.com program files" 148 | } 149 | 150 | # installs the copy.com binaries for the first time 151 | install(){ 152 | if [ ! -e "$COPYCMD" ]; then 153 | echo "Downloading Copy...."; 154 | pushd /tmp > /dev/null 155 | wget -q -O - "https://copy.com/install/linux/Copy.tgz" | tar xzf - > /dev/null; 156 | check "$DNLDFAILURE" # error check download 157 | 158 | # move into place 159 | mkdir -p "$COPYLOC" 160 | mv /tmp/copy/* "$COPYLOC/" 161 | popd > /dev/null 162 | 163 | # make the metadata folder if copy.com was lazy 164 | if [ ! -e "$STATUSFILE" ]; then 165 | mkdir -p "$DOTCOPY" 166 | echo -n "$MISSLOGIN" > "$STATUSFILE" 167 | fi 168 | echo "$NOWATCH" > "$WATCHPID" 169 | 170 | # create root dir for the cloud and a link to current workspace in appropriate subfolder 171 | mkdir -p "$SYMLINKDIR" 172 | ln -s "$WORKDIR" "$SYMLINK" 173 | 174 | echo "Download complete." 175 | else 176 | echo "Already installed." 177 | fi 178 | start 179 | } 180 | 181 | # log in to copy.com after install 182 | login(){ 183 | echo -n "Do you already have a Copy.com account? [y/N]: "; read prompt 184 | if [[ "$prompt" =~ [yY](es)* ]]; then 185 | echo "To setup Copy.com and backup your workspace, please enter your account information." 186 | echo -n "Email address: "; read email 187 | echo -n "Password: "; read -s pswrd; 188 | echo -e "\nChecking..." 189 | test -z $pswrd && error_msg "$INVALIDLOGN" && exit 4 # check for null password 190 | 191 | # attempt to login user 192 | $COPYCONSOLE -daemon -u="$email" -p="$pswrd" -r="$SYNCDIR" > /dev/null 193 | check "$CLDFAILURE" # error check cloud cli 194 | process "init" 195 | else 196 | echo "Before completing setup, you need a copy.com account." 197 | echo "Please proceed to https://www.copy.com and create an account. Exiting..." 198 | fi 199 | } 200 | 201 | # handles current CopyConsole daemon process 202 | # arguments: [start|stop|init] 203 | # start: PID starts as "". Run until PID changes to a value or timeout, report success or failure 204 | # stop: PID starts as a value. Run until PID changes to "" or timeout, report success or failure 205 | # init: PID starts as "". Run until PID changes to a value, report failure or if successful... 206 | # immediately run stop to prevent syncing. Run exclude on the cloud file tree. Finally, 207 | # run start to begin syncing. 208 | process(){ 209 | currentPID=$PID 210 | counter=0 211 | # until there's a process id state change or we run out of time, search for process 212 | until [ "$currentPID" != "$PID" ] || [ $counter -eq $TIMEOUT ]; do 213 | sleep 1 214 | currentPID=$(pgrep "$PROCESSNAME") 215 | let counter+=1 216 | done; 217 | PID="$currentPID" # update PID 218 | 219 | case "$1" in 220 | "init") 221 | if [ -z "$PID" ]; then 222 | # if there's not a process running, there was an error 223 | status 224 | error_msg "$STATUS. Exiting..." 225 | exit 7 226 | else 227 | # stop syncing and handle excludes 228 | stop > /dev/null 229 | echo "Setup successful. Beginning exclusions. This may take a few minutes..." 230 | exclude 231 | echo "Exclusions complete." 232 | start 233 | fi 234 | ;; 235 | "start") 236 | # if there's a process, echo succcess, else failure 237 | if [ -n "$PID" ]; then 238 | # add the most recent inotify and daemon process to watch list 239 | pgrep -n "inotifywait" > "$WATCHPID" 240 | echo "$STARTSUCCESS" 241 | else 242 | error_msg "$STARTFAILURE" 243 | exit 5 244 | fi 245 | ;; 246 | "stop") 247 | # if there's not a process, echo succcess, else failure 248 | if [ -z "$PID"]; then 249 | echo "$STOPSUCCESS" 250 | else 251 | error_msg "$STOPFAILURE" 252 | exit 6 253 | fi 254 | ;; 255 | *) 256 | ;; 257 | esac 258 | } 259 | 260 | # set current status 261 | status(){ 262 | if [ -e "$STATUSFILE" ]; then 263 | STATUS="$(head -n 1 $STATUSFILE)" 264 | else 265 | STATUS="$NOTINSTALLED" 266 | fi 267 | } 268 | 269 | # start copy 270 | start(){ 271 | status # get status 272 | if [ ! -e "$COPYLOC" ]; then 273 | install 274 | elif [ "$STATUS" = "$MISSLOGIN" ] || [ "$STATUS" = "$INVALIDLOGN" ]; then 275 | echo "Account not setup." 276 | login 277 | elif [ -z "$PID" ]; then 278 | echo "Starting..." 279 | 280 | # start subshell & begin watching sync directories to deal with new files 281 | ( inotifywait "@$SYNCDIR/$CLDPRJCT" "$SYNCDIR" "$SYNCDIR/$CLDWKSPCS" "$SYNCDIR/$CLDUSERS" -e move,create \ 282 | && echo "$NOWATCH" > "$WATCHPID" \ 283 | && "$SCRIPTNAME" "--delete_local_excludes" 284 | ) &> /dev/null & 285 | 286 | # start copy daemon 287 | $COPYCONSOLE -daemon > /dev/null 288 | check "$CLDFAILURE" # error check cloud cli 289 | process "start" 290 | else 291 | echo "$SCRIPTNAME is already running!" 292 | fi 293 | } 294 | 295 | # stop syncing 296 | stop(){ 297 | if [ -n "$PID" ]; then 298 | echo "Stopping..." 299 | kill $PID 300 | watchPID=$(head -n 2 "$WATCHPID") # get the process id of the watcher daemon 301 | test "$watchPID" != "$NOWATCH" && kill "$watchPID" 302 | echo "$NOWATCH" > "$WATCHPID" 303 | process "stop" 304 | echo "$NOTRUN" > "$STATUSFILE" 305 | else 306 | echo "$NOTRUN" 307 | fi 308 | } 309 | 310 | # (safely) uninstall copy 311 | uninstall(){ 312 | if [ -e $COPYCMD ]; then 313 | echo -n "Are you sure you want to uninstall Copy? [y/N]: "; read prompt 314 | if [[ "$prompt" =~ [yY](es)* ]]; then 315 | echo "Uninstalling..."; 316 | stop > /dev/null 317 | unlink "$SYMLINK"; 318 | rm -rf "$COPYLOC"; 319 | rm -rf "$DOTCOPY"; 320 | echo "Copy has been uninstalled." 321 | fi 322 | else 323 | echo "Copy is not installed!" 324 | fi 325 | } 326 | 327 | # a bit of cleanup on exit 328 | #exit_trap(){ 329 | # popd > /dev/null 330 | #} 331 | #trap exit_trap EXIT 332 | 333 | ######################### BEGIN BODY OF PROGRAM ############################## 334 | 335 | #pushd "$HOME" > /dev/null 336 | 337 | if [ $# -ne 1 ]; then 338 | help 339 | exit 6 340 | fi 341 | 342 | case "$1" in 343 | "help") 344 | help 345 | ;; 346 | "start") 347 | start 348 | ;; 349 | "status") 350 | status 351 | echo "$STATUS" 352 | ;; 353 | "stop") 354 | stop 355 | ;; 356 | "uninstall") 357 | uninstall 358 | ;; 359 | "--delete_local_excludes") 360 | # the secret option for inotify to call... 361 | stop 362 | exclude && deleteExcludes 363 | start 364 | ;; 365 | *) 366 | echo "$SCRIPTNAME: unrecognized option '$1'" 367 | echo "Usage: $SCRIPTNAME [help|start|stop|status|uninstall]" 368 | echo "Try '$SCRIPTNAME help' for more information." 369 | ;; 370 | esac 371 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/federalist.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | Etext 5 | txt 6 | Etext 7 | etexts 8 | txt 9 | txt 10 | etext 11 | hr 12 | Etext 13 | x 14 | IBC 15 | IBC 16 | IBC 17 | SASLE's 18 | RiceMail 19 | ATTMAIL 20 | MCImail 21 | vmd 22 | cso 23 | uiuc 24 | edu 25 | uiucvmd 26 | uiucvmd 27 | vmd 28 | cso 29 | uiuc 30 | edu 31 | Attmail 32 | vmd 33 | cso 34 | uiuc 35 | edu 36 | MCImail 37 | MCI 38 | MBX 39 | vmd 40 | cso 41 | uiuc 42 | edu 43 | mrcnext 44 | cso 45 | uiuc 46 | edu 47 | cd 48 | etext 49 | cd 50 | cd 51 | etext 52 | cd 53 | etext 54 | dir 55 | mget 56 | AAINDEX 57 | MGET 58 | ETEXTS 59 | etext 60 | etext 61 | ETEXT 62 | tm 63 | etext 64 | etext 65 | etext 66 | hysical 67 | TM 68 | ETEXTS 69 | tm 70 | etext 71 | tm 72 | etexts 73 | S 74 | etext 75 | etexts 76 | etexts 77 | etext 78 | etext 79 | etext 80 | tm 81 | etext 82 | dis 83 | NEGLI 84 | GENCE 85 | etext 86 | etext 87 | inaccu 88 | ETEXT 89 | ETEXT 90 | ETEXT 91 | etext 92 | pense 93 | etext 94 | ation 95 | etext 96 | distribu 97 | tion 98 | etext 99 | tm 100 | etext 101 | ically 102 | quires 103 | etext 104 | etext 105 | etext 106 | etext 107 | etext 108 | etext 109 | etext 110 | etext 111 | OCR 112 | etexts 113 | B 114 | ETEXTS 115 | Ver 116 | unperplexed 117 | confederacies 118 | proselytes 119 | Heresies 120 | invectives 121 | confederacies 122 | votaries 123 | PUBLIUS 124 | confederacies 125 | uncontradicted 126 | confederacies 127 | sovereignties 128 | widespreading 129 | sovereignties 130 | wellbalanced 131 | pursuaded 132 | pursuade 133 | confederacies 134 | confederacies 135 | PUBLIUS 136 | wellinformed 137 | confederacies 138 | confederacies 139 | violences 140 | borderers 141 | PUBLIUS 142 | confederacies 143 | uneasinesses 144 | confederacies 145 | embarrassments 146 | confederacies 147 | confederacies 148 | PUBLIUS 149 | animosities 150 | affection'' 151 | confederacies 152 | confederacies 153 | confederacies 154 | confederacies 155 | confederacies 156 | borderers 157 | confederacies 158 | confederacies 159 | confederacies 160 | sovereignties 161 | PUBLIUS 162 | confederacies 163 | sovereignties 164 | rivalships 165 | SAMNIANS 166 | MEGARENSIANS 167 | V 168 | V 169 | descanted 170 | rivalships 171 | wellregulated 172 | antipathies 173 | PUBLIUS 174 | Plutarch's 175 | P 176 | Cambray 177 | Principes 178 | des 179 | Negociations'' 180 | l'Abbe 181 | Mably 182 | ungranted 183 | cessions 184 | preponderated 185 | unpropitious 186 | SOVEREIGNTIES 187 | confederacies 188 | procrastinations 189 | resentments 190 | incumbrances 191 | delinquencies 192 | Delinquencies 193 | confederacies 194 | PUBLIUS 195 | retaken 196 | confederacies 197 | expedients 198 | confederacies 199 | confederacies 200 | oppressions 201 | encroachments 202 | menacings 203 | usurpations 204 | T 205 | disproportioned 206 | confederacies 207 | distempered 208 | PUBLIUS 209 | sophisms 210 | corruptions 211 | PUBLIUS 212 | Lawa 213 | wellconstructed 214 | mischiefs 215 | animosities 216 | mischiefs 217 | suffrages 218 | suffrages 219 | PUBLIUS 220 | rivalships 221 | intermeddlings 222 | concentred 223 | confederated 224 | fluctations 225 | unsalable 226 | PUBLIUS 227 | philosophiques 228 | Americains 229 | rivalship 230 | inperceptible 231 | confederacies 232 | confederacies 233 | embarrassments 234 | PUBLIUS 235 | confederacies 236 | sovereignties 237 | confederacies 238 | confederacies 239 | confederacies 240 | confederacies 241 | PUBLIUS 242 | concentred 243 | fellowcitizens 244 | PUBLIUS 245 | encroachments 246 | imperio 247 | contradistinguished 248 | mischiefs 249 | rivalships 250 | superintending 251 | improprieties 252 | sovereignties 253 | orbs 254 | intrusted 255 | delinquencies 256 | PUBLIUS 257 | confederacies 258 | suffrages 259 | delinquencies 260 | aggressing 261 | delinquencies 262 | instigations 263 | confederacies 264 | intrusted 265 | illhumors 266 | dismemberments 267 | PUBLIUS 268 | intrusted 269 | allurements 270 | transcendant 271 | unfrequently 272 | confederacies 273 | feudatories 274 | demesnes 275 | feudatories 276 | oppressions 277 | fiefs 278 | clanship 279 | encroachments 280 | rivalship 281 | PUBLIUS 282 | confederacies 283 | Amphictyonic 284 | aggressing 285 | Amphictyons 286 | Delphos 287 | Amphictyons 288 | Lacedaemonians 289 | Thebans 290 | Lacedaemonians 291 | Lacedaemonians 292 | orbs 293 | Milot 294 | hatreds 295 | dissentions 296 | Phocians 297 | Amphictyonic 298 | Phocians 299 | Thebans 300 | Amphictyons 301 | Amphictyonic 302 | praetors 303 | Philopoemen 304 | Achaeans 305 | Amphictyonic 306 | Aratus 307 | Mably 308 | Amphictyonic 309 | Achaeans 310 | Achaeans 311 | usurpers 312 | Peloponnesus 313 | Achaeans 314 | Cleomenes 315 | unprovoked 316 | Achaeans 317 | Achaeans 318 | Cleomenes 319 | intermeddling 320 | Cleomenes 321 | Achaeans 322 | tyrannies 323 | Achaeans 324 | AEtolians 325 | Achaeans 326 | Achaia 327 | PUBLIUS 328 | confederacies 329 | Gauls 330 | fiefs 331 | Suabian 332 | disturbers 333 | electorates 334 | inbecility 335 | defaulters 336 | Thuanus 337 | Donawerth 338 | Suabia 339 | Abb 340 | reannexed 341 | heriditary 342 | accomodating 343 | bailages 344 | Luzerne 345 | PUBLIUS 346 | Pfeffel 347 | Nouvel 348 | Abreg 349 | Chronol 350 | l'Hist 351 | d'Allemagne 352 | aristocracies 353 | superintends 354 | admiralties 355 | florins 356 | Belgic 357 | confedracy 358 | Mably 359 | contradistinguished 360 | PUBLIUS 361 | mulcts 362 | encroachments 363 | distempers 364 | usurpations 365 | King's 366 | PUBLIUS 367 | Jenkinson 368 | expedients 369 | reget 370 | Deleware 371 | confederated 372 | nonattendance 373 | mischiefs 374 | suffrages 375 | prevalency 376 | major's 377 | judicatories 378 | prepossessions 379 | infirmities 380 | PUBLIUS 381 | intrusted 382 | intrusted 383 | cavils 384 | confederacies 385 | indispensible 386 | PUBLIUS 387 | proprietory 388 | overflowings 389 | superadded 390 | expedients 391 | countenanced 392 | disconcertion 393 | encroachments 394 | PUBLIUS 395 | bils 396 | LEGISLATURE'' 397 | rivalship 398 | perserverance 399 | Lacedaemonians 400 | PUBLIUS 401 | prevalency 402 | expedients 403 | wellinformed 404 | encroachments 405 | calamaties 406 | PUBLIUS 407 | inexplicitness 408 | expedients 409 | delinquencies 410 | PUBLIUS 411 | seditions 412 | scourges 413 | Confederacies 414 | Confederacies 415 | expedients 416 | usurpations 417 | intrusted 418 | usurpers 419 | usurpers 420 | usurpers 421 | usurpations 422 | PUBLIUS 423 | superintending 424 | COMITATUS 425 | COMITATUS 426 | intrusted 427 | COMITATUS 428 | Gorgons 429 | hydras 430 | chimeras 431 | dire'' 432 | d'ors 433 | ducats 434 | intrenchments 435 | usurpers 436 | usurpations 437 | distempered 438 | superadded 439 | selfpreservation 440 | PUBLIUS 441 | bashaws 442 | fatuus 443 | embarrassments 444 | expedients 445 | usurers 446 | deficiences 447 | sightedness 448 | PUBLIUS 449 | DISQUISITIONS 450 | geometricians 451 | untractableness 452 | disingenuity 453 | superintending 454 | usurpations 455 | encroachments 456 | PUBLIUS 457 | resentments 458 | LEGISLATION'' 459 | EXCISES'' 460 | forbearances 461 | PUBLIUS 462 | ingrafted 463 | thereof'' 464 | railings 465 | culumniated 466 | landtax 467 | reasoners 468 | intrusted 469 | PUBLIUS 470 | CENTURIATA 471 | TRIBUTA 472 | intrusted 473 | fifteenths 474 | twentieths 475 | PUBLIUS 476 | overstocked 477 | expedients 478 | acquirements 479 | rivalships 480 | suffrages 481 | expedients 482 | PUBLIUS 483 | rivalships 484 | bypaths 485 | monly 486 | taxations 487 | tyrannies 488 | expedients 489 | PUBLIUS 490 | rejudging 491 | confederacies 492 | rectifying 493 | intrusted 494 | naturalists 495 | infirmities 496 | animosities 497 | Zaleucus 498 | Locrians 499 | Numa 500 | Tullius 501 | Hostilius 502 | Tullius 503 | Hostilius 504 | Achaeus 505 | Aratus 506 | intrusted 507 | expedients 508 | selfpreservation 509 | protracting 510 | unpardonable 511 | impeachments 512 | impeachments 513 | overleaping 514 | PUBLIUS 515 | disquisitions 516 | oppressions 517 | PUBLIUS 518 | expositors 519 | ungranted 520 | pretermitting 521 | sixtieths 522 | PUBLIUS 523 | misthinking 524 | usurpations 525 | Confederacies 526 | animosities 527 | intrusted 528 | unvaried 529 | Confederacies 530 | PUBLIUS 531 | piracies 532 | felonies 533 | disembarrassed 534 | usurpations 535 | piracies 536 | felonies 537 | piracies 538 | felonies 539 | piracies 540 | felonies 541 | felonies 542 | upbraided 543 | oppressions 544 | emigrations 545 | secureties 546 | animosities 547 | superintending 548 | confederated 549 | mischiefs 550 | paupers 551 | superadding 552 | inhabitants'' 553 | embarrassments 554 | interdicts 555 | PUBLIUS 556 | dockyards 557 | suffrages 558 | treasons 559 | wreaked 560 | superintending 561 | Amphictyons 562 | antirepublican 563 | confederacies 564 | superintending 565 | infirmities 566 | reciprocality 567 | PUBLIUS 568 | animosities 569 | mischiefs 570 | proper'' 571 | EXPRESSLY'' 572 | usurpers 573 | unredressed 574 | PUBLIUS 575 | Fournal 576 | unsacrificed 577 | confederacies 578 | encroachments 579 | rivalship 580 | encroachments 581 | countenancing 582 | PUBLIUS 583 | superintending 584 | prepossessions 585 | prepossessions 586 | prepossessions 587 | preorgatives 588 | defalcations 589 | encroachments 590 | embarrassments 591 | encroachments 592 | PUBLIUS 593 | selfappointed 594 | emphatical 595 | impeachments 596 | appointable 597 | impeachments 598 | impeachments 599 | appointable 600 | appointable 601 | PUBLIUS 602 | usurpations 603 | usurpations 604 | encroachments 605 | unfrequently 606 | encroachments 607 | p 608 | encroachments 609 | PUBLIUS 610 | Encroachments 611 | subjoined 612 | encroachments 613 | encroachments 614 | grantors 615 | bestows 616 | prepossessions 617 | numberous 618 | usurpations 619 | prepossessions 620 | PUBLIUS 621 | expedients 622 | PUBLIUS 623 | magistracies 624 | encroachments 625 | encroachments 626 | usurpations 627 | Confederacies 628 | oppressions 629 | PUBLIUS 630 | antiquaries 631 | usurpations 632 | PUBLIUS 633 | votaries 634 | t 635 | e 636 | regulatious 637 | acquirements 638 | reelections 639 | PUBLIUS 640 | confederacies 641 | PUBLIUS 642 | sixtyfive 643 | fellowcitizens 644 | allbe 645 | extravagancies 646 | PUBLIUS 647 | constitutents 648 | constitutents 649 | PUBLIUS 650 | Burgh's 651 | Disquisitions 652 | unpropitious 653 | suffrages 654 | PUBLIUS 655 | rivalship 656 | reapportionments 657 | reapportionments 658 | infirmities 659 | secessions 660 | PUBLIUS 661 | distempered 662 | intrusting 663 | rivalship 664 | confederacies 665 | PUBLIUS 666 | Ist 667 | Ist 668 | votaries 669 | primative 670 | importuned 671 | expedients 672 | PUBLIUS 673 | opposers 674 | suffrages 675 | suffrages 676 | unpardonable 677 | PUBLIUS 678 | V 679 | prepossessions 680 | mischiefs 681 | embarrassments 682 | impeachments 683 | indiscretions 684 | PUBLIUS 685 | unenlightened 686 | confederated 687 | Archons 688 | suffrages 689 | Ephori 690 | Cosmi 691 | usurpations 692 | encroachments 693 | Ephori 694 | usurpations 695 | PUBLIUS 696 | impeachments 697 | PUBLIUS 698 | impeachments 699 | impeachments 700 | animosities 701 | partialities 702 | inquisitors 703 | impeachments 704 | unawed 705 | impeachments 706 | impeachments 707 | impeachments 708 | disposers 709 | impeachments 710 | overbalanced 711 | impeachments 712 | impeachments 713 | reprobated 714 | PUBLIUS 715 | Impeachments 716 | impeachments 717 | wellestablished 718 | encroachments 719 | impeachments 720 | encroachments 721 | prevalency 722 | impeachments 723 | impeachments 724 | disquisitions 725 | impeachments 726 | counterpoises 727 | impeachments 728 | suffrages 729 | impeachments 730 | impeachments 731 | prostituted 732 | PUBLIUS 733 | Pennsylvanis 734 | impeachments 735 | inveighed 736 | mistresses 737 | voluptuousness 738 | visages 739 | janizaries 740 | disingenuity 741 | expedients 742 | applauses 743 | LAW'' 744 | officers'' 745 | session'' 746 | years'' 747 | palliated 748 | PUBLIUS 749 | V 750 | preestablished 751 | PUBLIUS 752 | Confederated 753 | crown's 754 | comfort'' 755 | preferments 756 | PUBLIUS 757 | TAMONY 758 | Blackstone's 759 | p 760 | seditions 761 | repub 762 | lican 763 | intrusted 764 | votaries 765 | Achaeans 766 | Praetors 767 | mischiefs 768 | plebeians 769 | rivalships 770 | caprices 771 | jarrings 772 | anycounterbalancing 773 | weightiest 774 | scrunity 775 | mischiefs 776 | lic 777 | ONE'' 778 | nattainable 779 | Decemvirs 780 | PUBLIUS 781 | Lolme 782 | seditions 783 | repub 784 | lican 785 | intrusted 786 | votaries 787 | Achaeans 788 | Praetors 789 | mischiefs 790 | plebeians 791 | rivalships 792 | caprices 793 | jarrings 794 | anycounterbalancing 795 | weightiest 796 | scrunity 797 | mischiefs 798 | lic 799 | ONE'' 800 | nattainable 801 | Decemvirs 802 | PUBLIUS 803 | Lolme 804 | comports 805 | indued 806 | years' 807 | encroachments 808 | PUBLIUS 809 | expedients 810 | fellowcitizens 811 | readmission 812 | resentments 813 | suffrages 814 | overbalanced 815 | PUBLIUS 816 | largesses 817 | allurements 818 | selfdefense 819 | enaction 820 | missteps 821 | mischiefs 822 | opposers 823 | PUBLIUS 824 | seditions 825 | resentments 826 | welltimed 827 | PUBLIUS 828 | enaction 829 | years' 830 | intrusted 831 | intrusted 832 | PUBLIUS 833 | partialities 834 | antipathies 835 | animosities 836 | suffrages 837 | partialities 838 | antipathies 839 | animosities 840 | suffrages 841 | venalty 842 | venalty 843 | PUBLIUS 844 | uncomplying 845 | mischiefs 846 | embarrassments 847 | cavils 848 | PUBLIUS 849 | encroachments 850 | oppressions 851 | bulwarks 852 | encroachments 853 | oppressions 854 | mischiefs 855 | PUBLIUS 856 | Martin's 857 | impeachments 858 | PUBLIUS 859 | judicary 860 | unredressed 861 | bickerings 862 | animosities 863 | cognizances 864 | States'' 865 | emited 866 | judicatories 867 | inconviences 868 | mischiefs 869 | wellinformed 870 | mischiefs 871 | PUBLIUS 872 | is'' 873 | impeachments 874 | judical 875 | usurpations 876 | encroachments 877 | contraventions 878 | usurpations 879 | impeachments 880 | usurpations 881 | intrusted 882 | impeachments 883 | AUTHORUZE 884 | prevalency 885 | sovereignties 886 | inconveniencies 887 | PUBLIUS 888 | COURT'' 889 | DICTIO 890 | juris 891 | dictio 892 | judicatories 893 | sovereignties 894 | T 895 | intrusted 896 | judicatories 897 | establish'' 898 | PUBLIUS 899 | generals'' 900 | oppressions 901 | impeachments 902 | intrusted 903 | heretofore'' 904 | wellregulated 905 | litigations 906 | judicatories 907 | embarrassments 908 | unpardonable 909 | encroachments 910 | encroachments 911 | PUBLIUS 912 | opposers 913 | attainted 914 | Usays 915 | e 916 | emphatical 917 | abridgements 918 | preserved'' 919 | intrusted 920 | overbalanced 921 | rivalship 922 | defaulters 923 | railings 924 | PUBLIUS 925 | Blackstone's 926 | p 927 | Blackstone's 928 | p 929 | asperities 930 | disputants 931 | concealments 932 | intemperances 933 | T 934 | encroachments 935 | Usays 936 | PUBLIUS 937 | Hume's 938 | Etext 939 | 940 | WORDS MISSPELLED: 935 941 | WORDS IN DICTIONARY: 143091 942 | WORDS IN TEXT: 196784 943 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/tom.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | EBook 5 | eBook 6 | eBook 7 | EBook 8 | EBOOK 9 | Widger 10 | Menendez 11 | Langhorne 12 | P 13 | R 14 | E 15 | F 16 | C 17 | E 18 | T 19 | O 20 | M 21 | S 22 | W 23 | Y 24 | E 25 | R 26 | jimpson 27 | Y 28 | o 29 | u 30 | u 31 | a' 32 | Polly 33 | obleeged 34 | kindlings 35 | Polly 36 | revealments 37 | warn't 38 | Yes'm 39 | warn't 40 | Yes'm 41 | Polly's 42 | No'm 43 | mine's 44 | Polly 45 | better'n 46 | Siddy 47 | geeminy 48 | t'other 49 | Tisn't 50 | dasn't 51 | Aw 52 | off'n 53 | nuff 54 | nuff 55 | Nuff 56 | lowed 57 | unwhitewashed 58 | Ole 59 | an' 60 | dis 61 | an' 62 | foolin' 63 | roun' 64 | wid 65 | spec' 66 | gwine 67 | an' 68 | an' 69 | lowed 70 | whitewashin' 71 | dasn't 72 | Ole 73 | an' 74 | off'n 75 | Dat's 76 | fraid 77 | ole 78 | Polly 79 | ling 80 | ling 81 | ling 82 | ling 83 | stabboard 84 | ling 85 | ling 86 | ch 87 | labboard 88 | lingling 89 | ch 90 | stabboard 91 | ling 92 | ling 93 | labboard 94 | stabboard 95 | ling 96 | ling 97 | ling 98 | ling 99 | SH'T 100 | S'H'T 101 | SH'T 102 | YI 103 | warn't 104 | druther 105 | Polly's 106 | lemme 107 | injun 108 | Polly 109 | lemme 110 | fagged 111 | Mont 112 | wended 113 | Polly 114 | Mayn't 115 | a'ready 116 | Polly 117 | recoated 118 | Polly 119 | plaited 120 | wending 121 | clodding 122 | warn't 123 | wellnigh 124 | Sid's 125 | ecstasies 126 | ecstasies 127 | er 128 | Polly 129 | Umf 130 | woes 131 | Polly 132 | Sh 133 | S 134 | H 135 | S 136 | H 137 | unirrigated 138 | church's 139 | uncushioned 140 | yaller 141 | What'll 142 | What'll 143 | lickrish 144 | Dore 145 | scholar's 146 | Applausive 147 | fidgetings 148 | Walters' 149 | chafings 150 | repinings 151 | Lawrence's 152 | Walters' 153 | jings 154 | bustlings 155 | scoldings 156 | scufflings 157 | Walters' 158 | Walters' 159 | GOLIAH 160 | V 161 | Polly 162 | unnecessaries 163 | Riverson 164 | Mufferson 165 | matrons 166 | flow'ry 167 | thro' 168 | sociables 169 | despotisms 170 | clergyman's 171 | interlarded 172 | itched 173 | droned 174 | pinchbug 175 | poodle's 176 | yawned 177 | pinchbug 178 | yawned 179 | Polly 180 | Yes'm 181 | Rubbage 182 | Polly 183 | them's 184 | wended 185 | hogsheads 186 | Lemme 187 | off'n 188 | off'n 189 | dern 190 | D'you 191 | hain't 192 | Hollis 193 | injun 194 | swaller 195 | charm's 196 | becuz 197 | wartiest 198 | knowed 199 | bean's 200 | Coonville 201 | everywheres 202 | D'you 203 | Becuz 204 | witched 205 | off'n 206 | wher' 207 | layin 208 | stiddy 209 | Becuz 210 | backards 211 | Hucky 212 | Hoss 213 | Lemme 214 | Tain't 215 | kep' 216 | Dern 217 | becuz 218 | What'll 219 | Becuz 220 | genuwyne 221 | pinchbug's 222 | throned 223 | girls' 224 | sleepiest 225 | Joe's 226 | Joe's 227 | sha'n't 228 | Joe's 229 | pa's 230 | sha'n't 231 | chiefest 232 | dasn't 233 | knowed 234 | barelegged 235 | Guisborne 236 | sha'n't 237 | Guisborne 238 | miller's 239 | Polly's 240 | remoter 241 | caterwauling 242 | meow'd 243 | Hucky 244 | wisht 245 | knowed 246 | Hucky 247 | Hoss 248 | O' 249 | sperrit 250 | Hoss 251 | partic'lar 252 | yer 253 | comrade's 254 | Sh 255 | Sh 256 | tis 257 | What'll 258 | dono 259 | wisht 260 | goners 261 | Sh 262 | em's 263 | tain't 264 | p'inted 265 | o' 266 | Injun 267 | murderin' 268 | druther 269 | dern 270 | boys' 271 | Injun 272 | thing's 273 | Injun 274 | Injun 275 | warn't 276 | Injun 277 | Injun 278 | Williams' 279 | Injun 280 | Joe's 281 | worse'n 282 | weepon 283 | weepons 284 | moon's 285 | X 286 | Huckleberry's 287 | pantings 288 | reckon'll 289 | hanging'll 290 | S'pose 291 | Injun 292 | Injun 293 | D'you 294 | D'you 295 | knowed 296 | pap's 297 | dono 298 | Hucky 299 | Injun 300 | cuz 301 | orter 302 | verdigrease 303 | verdigrease 304 | p'ison 305 | swaller 306 | H 307 | F 308 | dono 309 | tis 310 | Harbison 311 | Harbison 312 | Harbison's 313 | Harbison 314 | boys' 315 | Harbison 316 | S 317 | goners 318 | feller's 319 | Consound 320 | longside 321 | o' 322 | wisht 323 | Hucky 324 | Hucky 325 | Sh 326 | bleeve 327 | boys' 328 | Hucky 329 | das't 330 | s'pose 331 | Injun 332 | quailed 333 | boys' 334 | geeminy 335 | Miller's 336 | niggers 337 | congratulating 338 | bodings 339 | woes 340 | Huckleberry's 341 | Potter'll 342 | Injun 343 | Injun 344 | Injun 345 | t 346 | Injun 347 | Injun 348 | Polly 349 | t 350 | Polly's 351 | mutterings 352 | inquests 353 | inquests 354 | inquests 355 | Injun 356 | alls 357 | Polly 358 | summersets 359 | Polly 360 | Yes'm 361 | Yes'm 362 | Polly 363 | Polly 364 | thout 365 | Polly 366 | aunty 367 | Becky's 368 | Mf 369 | sorrowing 370 | unpeopled 371 | Jackson's 372 | piracies 373 | Tis 374 | smouldering 375 | raftsmen 376 | unpiratical 377 | browed 378 | y 379 | y 380 | y 381 | sail's 382 | tops'ls 383 | r'yals 384 | foretopmaststuns'l 385 | maintogalans'l 386 | Hellum 387 | y 388 | y 389 | y 390 | gemmed 391 | Jackson's 392 | raft's 393 | festooning 394 | Hucky 395 | better'n 396 | gen'ally 397 | dono 398 | Dern'd 399 | dono 400 | How'd 401 | bulliest 402 | di'monds 403 | fitten 404 | waifs 405 | sweetmeats 406 | plausibilities 407 | sweetmeats 408 | piracies 409 | skurrying 410 | brooded 411 | hogsheads 412 | Tain't 413 | becuz 414 | ferryboat's 415 | uninstructed 416 | jings 417 | Joe's 418 | fishhooks 419 | nough 420 | boat's 421 | skiff's 422 | boat's 423 | boat's 424 | Polly 425 | Harper's 426 | Polly 427 | Polly 428 | warn't 429 | mischEEvous 430 | harum 431 | scarum 432 | warn't 433 | throwed 434 | God'll 435 | cretur 436 | Polly 437 | Polly 438 | unrestfully 439 | sputtering 440 | knucks 441 | Joe's 442 | How'd 443 | Swimming's 444 | sha'n't 445 | Y 446 | e 447 | s 448 | per'aps 449 | Joe's 450 | hendering 451 | wisht 452 | knowed 453 | hain't 454 | bleeve 455 | warn't 456 | tobacker 457 | ca'm 458 | jings 459 | boys' 460 | overflowings 461 | retchings 462 | Joe's 463 | rumblings 464 | boys' 465 | others' 466 | tumblings 467 | threatenings 468 | grumblings 469 | scalped 470 | Polly's 471 | Joe's 472 | Polly 473 | rascalities 474 | Polly 475 | unwelcoming 476 | Polly 477 | Polly 478 | Polly's 479 | invalided 480 | Polly 481 | Polly 482 | warn't 483 | Polly 484 | Twould 485 | a' 486 | Polly 487 | discomforted 488 | More's 489 | woodbox 490 | Harper's 491 | land's 492 | Sereny 493 | rubbage 494 | warn't 495 | mischeevous 496 | harum 497 | scarum 498 | throwed 499 | sperrit 500 | d'you 501 | a' 502 | a' 503 | Milum 504 | hendered 505 | Peters' 506 | ma's 507 | Susy 508 | Becky's 509 | plaited 510 | nough 511 | book's 512 | Sereny 513 | rubbage 514 | Sereny 515 | Jackson's 516 | thankfullest 517 | goodheartedness 518 | Polly's 519 | Dobbins 520 | Dobbins 521 | Dobbins 522 | Nobody'll 523 | t'other 524 | Girls' 525 | girls' 526 | Becky's 527 | form's 528 | Dobbins 529 | yawned 530 | Dobbins 531 | Becky's 532 | floggings 533 | flaying 534 | Dobbins 535 | pleasanter 536 | Becky's 537 | Dobbins' 538 | painter's 539 | painter's 540 | throned 541 | grandmothers' 542 | unquenchable 543 | imbittered 544 | MAIDEN'S 545 | Tallapoosa's 546 | Tallassee's 547 | Coosa's 548 | Aurora's 549 | Tis 550 | Tis 551 | fancy's 552 | Presbyterians 553 | mewing 554 | painter's 555 | Cadets 556 | Judge's 557 | Cadets 558 | circusing 559 | girls' 560 | Hollis 561 | companionless 562 | Hollis 563 | solemnities 564 | so's 565 | som'ers 566 | hain't 567 | warn't 568 | twouldn't 569 | better'n 570 | boys' 571 | fishin' 572 | furder 573 | body's 574 | yourn 575 | yourn'll 576 | mine's 577 | Injun 578 | Joe's 579 | Injun 580 | Injun 581 | Joe's 582 | Injun 583 | Joe's 584 | Williams' 585 | Injun 586 | Injun 587 | opposers 588 | Injun 589 | Injun 590 | Joe's 591 | dismalest 592 | Huck's 593 | Injun 594 | Injun 595 | moused 596 | clew 597 | clew 598 | Where'll 599 | ha'nted 600 | sup'rintendents 601 | hy'roglyphics 602 | HyroQwhich 603 | Hy'roglyphics 604 | ha'nted 605 | Jackson's 606 | ha'nted 607 | di'monds 608 | Huck's 609 | di'monds 610 | di'monds 611 | em's 612 | but's 613 | Cert'nly 614 | anybody'll 615 | Hain't 616 | don' 617 | S'pose 618 | t'other 619 | thish 620 | yer 621 | yourn 622 | nough 623 | foolishest 624 | both's 625 | lonesomer 626 | widow's 627 | consound 628 | maow 629 | solemnities 630 | shadder 631 | thing's 632 | something's 633 | becuz 634 | body's 635 | S'pose 636 | What'll 637 | ha'nted 638 | ha'nted 639 | dern 640 | worse'n 641 | hender 642 | ha'nted 643 | nothing's 644 | Becuz 645 | ha'nted 646 | ha'nted 647 | Lookyhere 648 | a' 649 | dreampt 650 | Cracky 651 | wisht 652 | a' 653 | morrow's 654 | floorless 655 | unplastered 656 | Sh 657 | Sh 658 | t'other 659 | T'other 660 | t'other 661 | Injun 662 | Joe's 663 | nothing's 664 | Twon't 665 | warn't 666 | warn't 667 | Injun 668 | dangerous' 669 | Injun 670 | Now's 671 | Injun 672 | nothing's 673 | What'll 674 | silver's 675 | tain't 676 | Injun 677 | gloating 678 | Joe's 679 | Joe's 680 | boys' 681 | Injun 682 | Injun 683 | Murrel's 684 | Injun 685 | Tain't 686 | Nance 687 | what'll 688 | Injun 689 | boys' 690 | Injun 691 | Injun 692 | townward 693 | Injun 694 | ungraspable 695 | a' 696 | a' 697 | Tain't 698 | tain't 699 | Dog'd 700 | a' 701 | so'd 702 | dono 703 | Lemme 704 | Huck's 705 | keeper's 706 | ha'nted 707 | Lemme 708 | auntie's 709 | Injun 710 | foller 711 | mightn't 712 | dono 713 | dono 714 | a' 715 | foller 716 | maow 717 | Huck's 718 | mutterings 719 | Huck's 720 | thimblefuls 721 | warn't 722 | CAESAR'S 723 | Injun 724 | Joe's 725 | a' 726 | Injun 727 | ha'nted 728 | ha'nted 729 | ha'nted 730 | a' 731 | now's 732 | Injun 733 | Joe's 734 | Injun 735 | Lookyhere 736 | Injun 737 | Joe's 738 | quicker'n 739 | maow 740 | storm's 741 | ha'nt 742 | Rogers' 743 | pap's 744 | becuz 745 | body's 746 | something's 747 | maow 748 | Thatcher's 749 | Injun 750 | Huck's 751 | maow 752 | Thatcher's 753 | Susy 754 | Harper's 755 | Douglas' 756 | How'll 757 | a' 758 | a' 759 | Douglas' 760 | Douglas' 761 | shoutings 762 | rovers 763 | McDougal's 764 | rifts 765 | drippings 766 | ferryboat's 767 | Welshman's 768 | Huck's 769 | agues 770 | Douglas' 771 | Injun 772 | Joe's 773 | Huck's 774 | Injun 775 | Joe's 776 | HORSEWHIPPED 777 | horsewhipped 778 | HORSEWHIPPED 779 | mightn't 780 | nobody'll 781 | Welshman's 782 | Huck's 783 | widow's 784 | here'll 785 | Welshman's 786 | Huck's 787 | pleasantest 788 | becuz 789 | becuz 790 | twould 791 | follered 792 | t'other's 793 | widow's 794 | Welshman's 795 | agin 796 | shackly 797 | agin 798 | t'other 799 | t'other 800 | Follered 801 | widder's 802 | widder 803 | Tain't 804 | Injun 805 | Injun 806 | Huck's 807 | widow's 808 | widow's 809 | warn't 810 | warn't 811 | Thatcher's 812 | Polly 813 | Polly 814 | Polly's 815 | No'm 816 | Polly 817 | Polly 818 | Polly 819 | remotenesses 820 | shoutings 821 | Huck's 822 | Becky's 823 | Aladdin's 824 | Becky's 825 | incrusted 826 | Becky's 827 | Becky's 828 | P'raps 829 | breathings 830 | jeering 831 | Becky's 832 | Becky's 833 | Becky's 834 | wailings 835 | Becky's 836 | Harper's 837 | SH 838 | shoutings 839 | Injun 840 | Joe's 841 | Injun 842 | Injun 843 | bodings 844 | petitioner's 845 | Polly 846 | thronged 847 | Thatcher's 848 | Thatcher's 849 | Polly's 850 | Thatcher's 851 | clews 852 | Huck's 853 | Thatcher's 854 | sheathed 855 | Injun 856 | Joe's 857 | McDougal's 858 | Injun 859 | Injun 860 | Joe's 861 | Injun 862 | dessertspoonful 863 | McDougal's 864 | Injun 865 | Joe's 866 | Aladdin's 867 | Injun 868 | Injun 869 | Joe's 870 | Injun 871 | weaklings 872 | Huck's 873 | knowed 874 | a' 875 | knowed 876 | becuz 877 | a' 878 | something's 879 | follered 880 | Injun 881 | widder's 882 | Injun 883 | Joe's 884 | Welshman's 885 | comrade's 886 | Huck's 887 | injun 888 | jings 889 | more'n 890 | many's 891 | Sawyer's 892 | off'n 893 | better'n 894 | yonder's 895 | Injun 896 | Injun 897 | Joe's 898 | ha'nt 899 | Lookyhere 900 | Injun 901 | Joe's 902 | Lookyhere 903 | lookyhere 904 | Lemme 905 | ha'nted 906 | dono 907 | widow's 908 | Taylor's 909 | Welshman's 910 | bits' 911 | Douglas' 912 | Huck's 913 | Douglas' 914 | Thatchers 915 | Rogerses 916 | Polly 917 | Polly 918 | Huck's 919 | slicked 920 | Siddy 921 | jist 922 | widow's 923 | widow's 924 | Huck's 925 | a' 926 | Sid's 927 | widow's 928 | Huck's 929 | Huck's 930 | Huck's 931 | Polly 932 | Polly 933 | Huck's 934 | Huck's 935 | Huck's 936 | Polly's 937 | lauded 938 | Finn's 939 | Douglas' 940 | widow's 941 | hogsheads 942 | uncombed 943 | Huck's 944 | widder's 945 | anywher's 946 | hain't 947 | widder 948 | gits 949 | everything's 950 | reg'lar 951 | dern'd 952 | hain't 953 | widder 954 | school's 955 | Looky 956 | bar'l 957 | a' 958 | your'n 959 | becuz 960 | dern 961 | thout 962 | tollable 963 | widder 964 | Tain't 965 | hogsheads 966 | dern 967 | Lookyhere 968 | Huck's 969 | hain't 970 | shet 971 | Sawyer's 972 | widder 973 | b'long 974 | swearing's 975 | lonesomest 976 | awfulest 977 | ha'nted 978 | midnight's 979 | bullier 980 | widder 981 | reg'lar 982 | endeth 983 | EBook 984 | EBOOK 985 | txt 986 | http 987 | Widger 988 | Menendez 989 | tm 990 | tm 991 | eBooks 992 | eBook 993 | eBook 994 | eBooks 995 | tm 996 | tm 997 | http 998 | tm 999 | tm 1000 | tm 1001 | tm 1002 | E 1003 | B 1004 | tm 1005 | C 1006 | tm 1007 | tm 1008 | E 1009 | C 1010 | PGLAF 1011 | tm 1012 | tm 1013 | tm 1014 | tm 1015 | tm 1016 | D 1017 | tm 1018 | E 1019 | E 1020 | tm 1021 | tm 1022 | eBook 1023 | eBook 1024 | E 1025 | tm 1026 | E 1027 | E 1028 | tm 1029 | E 1030 | E 1031 | E 1032 | tm 1033 | E 1034 | E 1035 | tm 1036 | E 1037 | tm 1038 | tm 1039 | E 1040 | E 1041 | tm 1042 | E 1043 | nonproprietary 1044 | tm 1045 | tm 1046 | tm 1047 | E 1048 | E 1049 | tm 1050 | E 1051 | E 1052 | E 1053 | tm 1054 | tm 1055 | tm 1056 | e 1057 | s 1058 | tm 1059 | tm 1060 | F 1061 | tm 1062 | E 1063 | tm 1064 | tm 1065 | F 1066 | F 1067 | tm 1068 | tm 1069 | F 1070 | F 1071 | tm 1072 | tm 1073 | F 1074 | F 1075 | F 1076 | IS' 1077 | MERCHANTIBILITY 1078 | F 1079 | unenforceability 1080 | F 1081 | tm 1082 | tm 1083 | tm 1084 | b 1085 | tm 1086 | c 1087 | tm 1088 | tm 1089 | tm's 1090 | tm 1091 | tm 1092 | http 1093 | pglaf 1094 | org 1095 | c 1096 | c 1097 | http 1098 | pglaf 1099 | org 1100 | U 1101 | S 1102 | Melan 1103 | S 1104 | pglaf 1105 | org 1106 | http 1107 | pglaf 1108 | org 1109 | B 1110 | Newby 1111 | gbnewby 1112 | pglaf 1113 | org 1114 | tm 1115 | http 1116 | pglaf 1117 | org 1118 | U 1119 | S 1120 | http 1121 | pglaf 1122 | org 1123 | tm 1124 | S 1125 | tm 1126 | tm 1127 | eBooks 1128 | tm 1129 | eBooks 1130 | U 1131 | S 1132 | eBooks 1133 | PG 1134 | http 1135 | tm 1136 | eBooks 1137 | eBooks 1138 | 1139 | WORDS MISSPELLED: 1134 1140 | WORDS IN DICTIONARY: 143091 1141 | WORDS IN TEXT: 74451 1142 | -------------------------------------------------------------------------------- /files/home/cs50/pset5/keys/prince.txt: -------------------------------------------------------------------------------- 1 | 2 | MISSPELLED WORDS 3 | 4 | EBook 5 | Nicolo 6 | eBook 7 | eBook 8 | org 9 | Nicolo 10 | W 11 | K 12 | EBook 13 | EBOOK 14 | Widger 15 | Nicolo 16 | W 17 | K 18 | Nicolo 19 | Casciano 20 | Nicolo 21 | di 22 | Nicolo 23 | Bartolommea 24 | di 25 | Stefano 26 | Nelli 27 | Lorenzo 28 | de' 29 | Machiavelli's 30 | Aet 31 | Lorenzo 32 | Savonarola's 33 | Medicean 34 | Lorenzo 35 | Lorenzo's 36 | Aet 37 | Machiavelli's 38 | Machiavelli's 39 | Catherina 40 | Forli 41 | Machiavelli's 42 | Valentino 43 | usurpers 44 | Borgia's 45 | delle 46 | Rovere 47 | monarch's 48 | Machiavelli's 49 | Vaila 50 | Aet 51 | Medicean 52 | X 53 | Casciano 54 | Vettori 55 | Casavecchio 56 | Lorenzo 57 | de' 58 | Casavecchio 59 | Lorenzo 60 | Machiavelli's 61 | Vettori 62 | Livius 63 | Medicean 64 | de' 65 | de' 66 | Pavia 67 | V 68 | Catherina 69 | overawed 70 | Soderini 71 | Machiavelli's 72 | bestrewn 73 | Machiavelli's 74 | Quis 75 | eo 76 | fuit 77 | unquam 78 | partiundis 79 | definiendis 80 | explanandis 81 | pressior 82 | Shakespeare's 83 | intrattenere 84 | Aetolians 85 | Achaeans 86 | Aetolians 87 | Discorso 88 | sopra 89 | le 90 | cose 91 | di 92 | modo 93 | di 94 | trattare 95 | popoli 96 | Valdichiana 97 | ribellati 98 | modo 99 | duca 100 | Valentino 101 | nell' 102 | ammazzare 103 | Vitellozzo 104 | Vitelli 105 | Oliverotto 106 | da 107 | Fermo 108 | Discorso 109 | sopra 110 | provisione 111 | danaro 112 | Decennale 113 | rima 114 | Ritratti 115 | delle 116 | cose 117 | dell' 118 | Alemagna 119 | Decennale 120 | Ritratti 121 | delle 122 | cose 123 | di 124 | Francia 125 | Discorsi 126 | sopra 127 | deca 128 | di 129 | T 130 | Livio 131 | vols 132 | Andria 133 | Mandragola 134 | Clizia 135 | Belfagor 136 | arcidiavolo 137 | Asino 138 | d'oro 139 | rima 140 | Dell' 141 | guerra 142 | Discorso 143 | sopra 144 | riformare 145 | di 146 | Sommario 147 | delle 148 | cose 149 | citta 150 | di 151 | di 152 | Castruccio 153 | Castracani 154 | da 155 | Istorie 156 | fiorentine 157 | Frammenti 158 | storici 159 | Sonetti 160 | Canzoni 161 | Ottave 162 | Canti 163 | carnascialeschi 164 | Aldo 165 | Tertina 166 | Cambiagi 167 | vols 168 | dei 169 | Classici 170 | Silvestri 171 | vols 172 | Passerini 173 | Milanesi 174 | vols 175 | F 176 | L 177 | Polidori 178 | Lettere 179 | familiari 180 | E 181 | Alvisi 182 | G 183 | Canestrini 184 | F 185 | Vettori 186 | Ridolfi 187 | Pensieri 188 | intorno 189 | allo 190 | scopo 191 | di 192 | N 193 | nel 194 | libro 195 | D 196 | Nicolo 197 | Lorenzo 198 | Di 199 | De' 200 | allurements 201 | unmeritedly 202 | Lodovico's 203 | Lodovico 204 | Lodovico 205 | Lodovico 206 | d'Este 207 | Aetolians 208 | Achaeans 209 | Aetolians 210 | Achaeans 211 | Aetolians 212 | intrattenere 213 | Florentines 214 | Bentivogli 215 | Forli 216 | Camerino 217 | Piombino 218 | Lucchese 219 | Pisans 220 | Sienese 221 | d'Amboise 222 | Valentino 223 | sanjaks 224 | bondmen 225 | V 226 | Spartans 227 | Spartans 228 | Spartans 229 | Florentines 230 | Medes 231 | Medes 232 | Fra 233 | Girolamo 234 | unbelievers 235 | Hiero 236 | Syracusan 237 | Syracusans 238 | Hiero 239 | B 240 | C 241 | B 242 | C 243 | bestows 244 | correspondencies 245 | Le 246 | radici 247 | e 248 | corrispondenze 249 | e 250 | correspondencies 251 | Valentino 252 | Bianca 253 | Vitelli 254 | Sinigalia 255 | Descritione 256 | modo 257 | duca 258 | Valentino 259 | nello 260 | ammazzare 261 | Vitellozzo 262 | Vitelli 263 | Colonnesi 264 | Colonnesi 265 | Urbino 266 | Colonnesi 267 | Colonna 268 | Magione 269 | Urbino 270 | Pagolo 271 | Sinigalia 272 | Urbino 273 | Sinigalia 274 | Messer 275 | Ramiro 276 | d'Orco 277 | Ramiro 278 | Ramiro 279 | d'Orco 280 | Ramiro 281 | Lorqua 282 | Gaeta 283 | Piombino 284 | Florentines 285 | Florentines 286 | Baglioni 287 | Vitelli 288 | Rovere 289 | Vincula 290 | pontiffs 291 | Vincula 292 | Colonna 293 | Ascanio 294 | Vincula 295 | Raffaello 296 | Riario 297 | Ascanio 298 | Ascanio 299 | Agathocles 300 | infamies 301 | Amilcar 302 | Carthaginians 303 | Carthaginians 304 | Agathocles 305 | Agathocles 306 | B 307 | C 308 | B 309 | C 310 | Agathocles 311 | Oliverotto 312 | da 313 | Fermo 314 | Fogliani 315 | Pagolo 316 | Vitelli 317 | Pagolo 318 | Vitellozzo 319 | Fermo 320 | Vitelleschi 321 | Fermo 322 | Fogliani 323 | Fermians 324 | Fermians 325 | Oliverotto 326 | Fogliani 327 | Fermo 328 | Oliverotto 329 | Oliverotto 330 | Fermo 331 | Agathocles 332 | Vitelli 333 | Sinigalia 334 | Vitellozzo 335 | Agathocles 336 | cruelties 337 | Agathocles 338 | Burd 339 | Machiavelli's 340 | crudelta 341 | cruelties 342 | Spartans 343 | Gracchi 344 | Messer 345 | Scali 346 | B 347 | C 348 | B 349 | C 350 | Messer 351 | Scali 352 | Machiavelli's 353 | X 354 | Florentines 355 | Colonnesi 356 | Colonnesi 357 | pontiffs 358 | Valentino 359 | Alexander's 360 | Colonnesi 361 | prelates 362 | X 363 | de' 364 | bons 365 | Switzers 366 | Carthaginians 367 | Carthaginians 368 | Thebans 369 | Florentines 370 | Florentines 371 | Acuto 372 | Florentines 373 | Bracceschi 374 | Braccio 375 | Florentines 376 | Pagolo 377 | Vitelli 378 | Florentines 379 | plebians 380 | Carmignuola 381 | Bartolomeo 382 | da 383 | da 384 | Severino 385 | Pitigliano 386 | Vaila 387 | Ladislao 388 | Acuto 389 | Hawkwood 390 | Sible 391 | Hedingham 392 | Domnia 393 | Bernabo 394 | Carmignuola 395 | Bussone 396 | Carmagnola 397 | Bartolomeo 398 | Colleoni 399 | Severino 400 | capitano 401 | Pitigliano 402 | Nicolo 403 | Vaila 404 | Alberigo 405 | da 406 | Conio 407 | Romagnian 408 | Braccio 409 | Switzers 410 | encampments 411 | Alberigo 412 | da 413 | Conio 414 | Alberico 415 | da 416 | Barbiano 417 | Cunio 418 | V 419 | F 420 | F 421 | Switzers 422 | Florentines 423 | Cantacuzenus 424 | dastardy 425 | Imola 426 | Forli 427 | Vitelli 428 | Vitelli 429 | Hiero 430 | Syracusan 431 | Syracusans 432 | condottieri 433 | Switzers 434 | Switzers 435 | Switzers 436 | Switzers 437 | Switzers 438 | Goths 439 | unhistorical 440 | ignominies 441 | Philopoemen 442 | Achaeans 443 | Philopoemen 444 | B 445 | C 446 | B 447 | C 448 | subjects' 449 | subjects' 450 | Cancellieri 451 | Panciatichi 452 | dura 453 | regni 454 | novitas 455 | talia 456 | cogunt 457 | Moliri 458 | custode 459 | tueri 460 | pow'rs 461 | upbraided 462 | Locrians 463 | Machiavelli's 464 | Burd 465 | p 466 | e 467 | Burd 468 | Cicero's 469 | Officiis 470 | Nam 471 | decertandi 472 | unum 473 | disceptationem 474 | alterum 475 | cumque 476 | illud 477 | proprium 478 | hominis 479 | beluarum 480 | confugiendum 481 | posterius 482 | uti 483 | licet 484 | superiore 485 | deceits 486 | Nondimanco 487 | gli 488 | succederono 489 | gli 490 | inganni 491 | votum 492 | votum 493 | Testina 494 | contro 495 | fede 496 | tutto 497 | fede 498 | contro 499 | fede 500 | tutto 501 | fede 502 | Testina 503 | fede 504 | e 505 | religione 506 | Testina 507 | p 508 | Nicolo 509 | Machiavel 510 | Prince' 511 | Ferdinand's 512 | Burd's 513 | p 514 | Messer 515 | Annibale 516 | Bentivogli 517 | Annibale 518 | Canneschi 519 | Messer 520 | Canneschi 521 | Bentivogli 522 | Annibale 523 | Bolognese 524 | Bentivogli 525 | Messer 526 | Bentivogli 527 | Machiavelli's 528 | Boscoli 529 | Maximinus 530 | Pertinax 531 | Macrinus 532 | Maximinus 533 | unaspiring 534 | Pertinax 535 | Pertinax 536 | Pertinax 537 | unjudged 538 | Maximinus 539 | Sclavonia 540 | Pertinax 541 | cruelties 542 | Maximinus 543 | Maximinus 544 | cruelties 545 | cruelties 546 | Macrinus 547 | Pertinax 548 | Maximinus 549 | Ghibelline 550 | Vaila 551 | Pandolfo 552 | Petrucci 553 | Messer 554 | Nicolo 555 | Vitelli 556 | Citta 557 | di 558 | Castello 559 | Ubaldo 560 | Urbino 561 | Bentivogli 562 | Forli 563 | Girolamo 564 | Galeazzo 565 | Lucrezia 566 | Landriani 567 | Forli 568 | Fortunati 569 | Fortunati 570 | Nicolo 571 | P 572 | Messer 573 | Bernabo 574 | da 575 | Milano 576 | Aetolians 577 | Achaeans 578 | Achaeans 579 | Florentines 580 | callings 581 | guilds 582 | Guilds 583 | arti 584 | o 585 | tribu 586 | Arti 587 | guilds 588 | guilds 589 | Edgcumbe 590 | artel 591 | Wallace's 592 | artel 593 | artels 594 | artel 595 | Aylmer 596 | ars 597 | rotisya 598 | Tribu 599 | Messer 600 | da 601 | Venafro 602 | Pandolfo 603 | Petrucci 604 | Pandolfo 605 | Venafro 606 | Pandolfo 607 | FLATTERERS 608 | flatterers 609 | flatterers 610 | flatterers 611 | Fra 612 | Luca 613 | Bianca 614 | seigniors 615 | Quintius 616 | years' 617 | expedients 618 | Sorel's 619 | Messer 620 | Bentivogli 621 | Medes 622 | insolencies 623 | X 624 | Allesandria 625 | Vaila 626 | Mestri 627 | Vaila 628 | Mestri 629 | Switzers 630 | Switzers 631 | infantries 632 | contro 633 | Prendera 634 | l'arme 635 | e 636 | fia 637 | combatter 638 | corto 639 | Che 640 | l'antico 641 | valore 642 | Negli 643 | italici 644 | cuor 645 | e 646 | ancor 647 | morto 648 | i' 649 | th' 650 | th' 651 | Italians' 652 | brests 653 | Dacre 654 | VALENTINO 655 | VITELLOZZO 656 | VITELLI 657 | OLIVEROTTO 658 | DA 659 | FERMO 660 | PAGOLO 661 | DI 662 | GRAVINA 663 | NICOLO 664 | Valentino 665 | calumnies 666 | Florentines 667 | Val 668 | di 669 | Chiana 670 | Imola 671 | Bentivogli 672 | Romagnian 673 | Vitelli 674 | Magione 675 | Pagolo 676 | di 677 | Gravina 678 | Vitellozzo 679 | Vitelli 680 | Oliverotto 681 | da 682 | Fermo 683 | Gianpagolo 684 | Baglioni 685 | Messer 686 | da 687 | Venafro 688 | Pandolfo 689 | Petrucci 690 | Bentivogli 691 | Florentines 692 | Urbino 693 | Urbino 694 | Magione 695 | Urbino 696 | Florentines 697 | Vitelli 698 | Nicolo 699 | Imola 700 | Florentines 701 | Fossombrone 702 | Vitelli 703 | Pagolo 704 | ducats 705 | Bentivogli 706 | Urbino 707 | Ubaldo 708 | Urbino 709 | Valentino 710 | Imola 711 | Vitelli 712 | Urbino 713 | Oliverotto 714 | da 715 | Fermo 716 | Sinigalia 717 | Florentines 718 | Sinigalia 719 | di 720 | Candales 721 | Fano 722 | Vitelli 723 | Sinigalia 724 | Vitellozzo 725 | Pagolo 726 | Fano 727 | d'Euna 728 | Vitellozzo 729 | Pagolo 730 | di 731 | Gravina 732 | Oliverotto 733 | Sinigalia 734 | Metauro 735 | Fano 736 | Metauro 737 | Fano 738 | Sinigalia 739 | Marca 740 | Sinigalia 741 | Sinigalia 742 | Fano 743 | Sinigalia 744 | Sinigalia 745 | Sinigalia 746 | Vitelli 747 | Sinigalia 748 | Sinigalia 749 | Oliverotto 750 | Valentino 751 | Sinigalia 752 | Vitellozzo 753 | Pagolo 754 | di 755 | Gravina 756 | Vitellozo 757 | Sinigalia 758 | Oliverotto 759 | Sinigalia 760 | Oliverotto 761 | Oliverotto 762 | Oliverotto 763 | Oliverotto 764 | Oliverotto 765 | Oliverotto 766 | Sinigalia 767 | Oliverotto 768 | Oliverotto 769 | Vitelli 770 | Orsinian 771 | Vitellian 772 | Oliverotto 773 | Sinigalia 774 | Vitellozzo 775 | Oliverotto 776 | Vitellozzo 777 | Oliverotto 778 | Vitellozzo 779 | Pagolo 780 | di 781 | Gravina 782 | Orsino 783 | Messer 784 | Jacopo 785 | da 786 | Pieve 787 | CASTRUCCIO 788 | CASTRACANI 789 | NICOLO 790 | ZANOBI 791 | BUONDELMONTI 792 | LUIGI 793 | ALAMANNI 794 | CASTRUCCIO 795 | CASTRACANI 796 | Zanobi 797 | Luigi 798 | Castruccio 799 | Castracani 800 | Castracani 801 | Messer 802 | Buonaccorso 803 | Cenami 804 | Buonaccorso 805 | Messer 806 | Dianora 807 | Messer 808 | Messer 809 | Castruccio 810 | Castruccio 811 | Messer 812 | Messer 813 | benefices 814 | Castruccio 815 | Castruccio 816 | Messer 817 | Dianora 818 | Messer 819 | Guinigi 820 | Messer 821 | Ghibelline 822 | Castruccio 823 | Castruccio 824 | Messer 825 | Castruccio 826 | Messer 827 | Castruccio 828 | Messer 829 | Messer 830 | Messer 831 | Castruccio 832 | Messer 833 | Messer 834 | Guinigi 835 | Guinigi 836 | Castruccio 837 | Ghibellines 838 | Pavia 839 | Guelphs 840 | Messer 841 | Ghibellines 842 | Castruccio 843 | Castruccio 844 | Pavia 845 | Castruccio 846 | Messer 847 | Pagolo 848 | Castruccio 849 | Castruccio 850 | Pagolo 851 | Castruccio 852 | Pagolo 853 | degli 854 | Opizi 855 | Messer 856 | Castruccio 857 | Castruccio 858 | Castruccio 859 | Messer 860 | Ruberto 861 | Uguccione 862 | Faggiuola 863 | Ghibellines 864 | Castruccio 865 | Uguccione 866 | Castruccio 867 | Opizi 868 | Castruccio 869 | Onesti 870 | Uguccione 871 | Uguccione 872 | Castruccio 873 | Uguccione 874 | Messer 875 | Uguccione 876 | Uguccione 877 | Lucchese 878 | Florentines 879 | Ghibellines 880 | Guelphs 881 | Val 882 | di 883 | Nievole 884 | Montecatini 885 | Montecarlo 886 | Uguccione 887 | Pisan 888 | Lucchese 889 | Florentines 890 | Montecarlo 891 | Montecatini 892 | Pescia 893 | Uguccione 894 | Montecarlo 895 | Uguccione 896 | Pisans 897 | Lucchese 898 | Uguccione 899 | Montecarlo 900 | Castruccio 901 | Guelphs 902 | Castruccio 903 | Guelphs 904 | Castruccio 905 | Castruccio 906 | Castruccio's 907 | Florentines 908 | Castruccio 909 | Ruberto 910 | Castruccio 911 | Uguccione 912 | Castruccio 913 | Uguccione 914 | Uguccione 915 | Agnolo 916 | Micheli 917 | Castruccio 918 | Castruccio 919 | Uguccione 920 | Castruccio 921 | Castruccio 922 | Castruccio 923 | Ugucionne 924 | Pisans 925 | Gaddo 926 | Gherardesca 927 | Uguccione 928 | Lucchese 929 | Lucchese 930 | Castruccio 931 | Uguccione 932 | Uguccione 933 | Castruccio 934 | Uguccione 935 | Castruccio 936 | Uguccione 937 | Castruccio 938 | Uguccione 939 | Pisans 940 | Serezzana 941 | Zerezzanello 942 | Castruccio 943 | Lavenza 944 | Lunigiana 945 | Lunigiana 946 | Pontremoli 947 | Messer 948 | Anastagio 949 | Palavicini 950 | Castruccio 951 | Pazzino 952 | Poggio 953 | Puccinello 954 | Boccansacchi 955 | Cecco 956 | Guinigi 957 | Castruccio 958 | Castruccio 959 | Pagolo 960 | Guinigi 961 | Castruccio 962 | Pisans 963 | Gaddo 964 | Gherardesca 965 | Castruccio 966 | Pisans 967 | Florentines 968 | Lombardian 969 | Ghibellines 970 | Castruccio 971 | Matteo 972 | Guidi 973 | Nardo 974 | Scolari 975 | Lapo 976 | Uberti 977 | Gerozzo 978 | Nardi 979 | Buonaccorsi 980 | Florentines 981 | Ghibellines 982 | Castruccio 983 | Messer 984 | Matteo 985 | Messer 986 | Matteo 987 | Guelphs 988 | Ghibellines 989 | Ruberto 990 | Messer 991 | Matteo 992 | Castruccio 993 | Florentines 994 | Castruccio 995 | Valdarno 996 | Fucecchio 997 | Miniato 998 | Florentines 999 | Castruccio 1000 | Poggio 1001 | Castruccio 1002 | Castruccio 1003 | Castruccio 1004 | Stefano 1005 | di 1006 | Poggio 1007 | Castruccio 1008 | Castruccio 1009 | Pagolo 1010 | Guinigi 1011 | Stefano 1012 | Castruccio 1013 | Castruccio 1014 | Castruccio 1015 | Castruccio 1016 | Stefano 1017 | Stefano 1018 | Stefano 1019 | Castruccio 1020 | Stefano 1021 | Florentines 1022 | Miniato 1023 | Castruccio 1024 | Florentines 1025 | Castruccio 1026 | Castruccio 1027 | Florentines 1028 | Bianchi 1029 | Bianchi 1030 | Bastiano 1031 | di 1032 | Possente 1033 | Jacopo 1034 | da 1035 | Gia 1036 | Castruccio 1037 | threatenings 1038 | Jacopo 1039 | Bastiano 1040 | Lucchese 1041 | Castruccio 1042 | Florentines 1043 | Castruccio 1044 | Florentines 1045 | Bastiano 1046 | Jacopo 1047 | Pagolo 1048 | Guinigi 1049 | Pagolo 1050 | Castruccio 1051 | Jacopo 1052 | da 1053 | Gia 1054 | Bastiano 1055 | di 1056 | Possente 1057 | Castruccio 1058 | Signoria 1059 | Ruberto 1060 | Castruccio 1061 | Castruccio 1062 | Pagolo 1063 | Guinigi 1064 | Castruccio 1065 | Castruccio 1066 | Castruccio 1067 | Castruccio 1068 | Castruccio 1069 | Florentines 1070 | Castruccio 1071 | Pistoians 1072 | Baldo 1073 | Cecchi 1074 | Jacopo 1075 | Baldini 1076 | Florentines 1077 | Castruccio's 1078 | Castruccio 1079 | Florentines 1080 | Val 1081 | di 1082 | Nievole 1083 | Florentines 1084 | Pistoian 1085 | Castruccio 1086 | Montecarlo 1087 | Florentines' 1088 | Pescia 1089 | Serravalle 1090 | Florentines 1091 | Serravalle 1092 | Pescia 1093 | Val 1094 | di 1095 | Nievole 1096 | Serravalle 1097 | Castruccio 1098 | Lucchese 1099 | Pistoians 1100 | Castruccio 1101 | Castruccio 1102 | Florentines 1103 | Castruccio 1104 | Florentines 1105 | Val 1106 | di 1107 | Nievole 1108 | Montecarlo 1109 | Florentines 1110 | Serravalle 1111 | Castruccio 1112 | Montecarlo 1113 | Serravalle 1114 | Florentines 1115 | Castruccio 1116 | Florentines 1117 | Castruccio 1118 | Castruccio 1119 | Castruccio 1120 | Florentines 1121 | Bandini 1122 | dei 1123 | Tosa 1124 | Tuscans 1125 | Neapolitans 1126 | Ruberto 1127 | Guelphs 1128 | Pistoians 1129 | Guelphs 1130 | Castruccio 1131 | Peretola 1132 | Florentines 1133 | participators 1134 | beheaded 1135 | Tommaso 1136 | Lupacci 1137 | Lambertuccio 1138 | Florentines 1139 | Ruberto 1140 | Florentines 1141 | florins 1142 | Florentines 1143 | Castruccio's 1144 | Benedetto 1145 | Lanfranchi 1146 | Lucchese 1147 | Castruccio 1148 | Lanfranchi 1149 | Castruccio 1150 | Bonifacio 1151 | Cerchi 1152 | Guidi 1153 | Castruccio 1154 | Benedetto 1155 | beheaded 1156 | Castruccio 1157 | Florentines 1158 | Florentines 1159 | Lastra 1160 | Signa 1161 | Montelupo 1162 | Empoli 1163 | Miniato 1164 | Castruccio 1165 | Florentines 1166 | Serravalle 1167 | Fucecchio 1168 | Pagolo 1169 | Guinigi 1170 | Fucecchio 1171 | Pisan 1172 | Gusciana 1173 | Castruccio's 1174 | Pagolo 1175 | Florentines 1176 | Castruccio 1177 | Fucecchio 1178 | Florentines 1179 | Miniato 1180 | Castruccio 1181 | Florentines 1182 | Castruccio 1183 | Florentines 1184 | Florentines 1185 | Castruccio 1186 | bucklers 1187 | Castruccio 1188 | Castruccio 1189 | Florentines 1190 | Castruccio 1191 | Serravalle 1192 | Florentines 1193 | Castruccio 1194 | Florentines 1195 | Castruccio's 1196 | Castruccio 1197 | Castruccio's 1198 | Castruccio 1199 | Florentines 1200 | Castruccio 1201 | Ruberto 1202 | Michelagnolo 1203 | Falconi 1204 | Taddeo 1205 | degli 1206 | Albizzi 1207 | Empoli 1208 | Florentines 1209 | Castruccio 1210 | Castruccio 1211 | Castruccio 1212 | Fucecchio 1213 | Castruccio 1214 | Castruccio 1215 | Pagolo 1216 | Guinigi 1217 | governorships 1218 | Pistoians 1219 | Florentines 1220 | Lucchese 1221 | Florentines 1222 | knowest 1223 | Florentines 1224 | Castruccio 1225 | Pagolo 1226 | Pagolo 1227 | Guinigi 1228 | Castruccio 1229 | Castruccio 1230 | Pagolo 1231 | Guinigi 1232 | Pagolo 1233 | Castruccio 1234 | Castruccio 1235 | Castruccio 1236 | Castruccio 1237 | Castruccio 1238 | Castruccio 1239 | goest 1240 | Castruccio 1241 | Castruccio 1242 | Castruccio 1243 | goest 1244 | Castruccio 1245 | Castruccio 1246 | Castruccio 1247 | Taddeo 1248 | Bernardi 1249 | Luca 1250 | Taddeo 1251 | Castruccio 1252 | Taddeo 1253 | Castruccio 1254 | Castruccio 1255 | Castruccio 1256 | Castruccio 1257 | Messer 1258 | Guinigi 1259 | Castruccio 1260 | Castruccio 1261 | Fra 1262 | Lazerone 1263 | Uguccione 1264 | Faggiuola 1265 | Castruccio 1266 | EBook 1267 | Nicolo 1268 | EBOOK 1269 | txt 1270 | http 1271 | org 1272 | Widger 1273 | tm 1274 | tm 1275 | eBooks 1276 | eBook 1277 | eBook 1278 | eBooks 1279 | tm 1280 | tm 1281 | http 1282 | org 1283 | tm 1284 | tm 1285 | tm 1286 | tm 1287 | E 1288 | B 1289 | tm 1290 | C 1291 | tm 1292 | tm 1293 | E 1294 | C 1295 | PGLAF 1296 | tm 1297 | tm 1298 | tm 1299 | tm 1300 | tm 1301 | D 1302 | tm 1303 | E 1304 | E 1305 | tm 1306 | tm 1307 | eBook 1308 | eBook 1309 | org 1310 | E 1311 | tm 1312 | E 1313 | E 1314 | tm 1315 | E 1316 | E 1317 | E 1318 | tm 1319 | E 1320 | E 1321 | tm 1322 | E 1323 | tm 1324 | tm 1325 | E 1326 | E 1327 | tm 1328 | E 1329 | nonproprietary 1330 | tm 1331 | tm 1332 | org 1333 | tm 1334 | E 1335 | E 1336 | tm 1337 | E 1338 | E 1339 | E 1340 | tm 1341 | tm 1342 | tm 1343 | e 1344 | s 1345 | tm 1346 | tm 1347 | F 1348 | tm 1349 | E 1350 | tm 1351 | tm 1352 | F 1353 | F 1354 | tm 1355 | tm 1356 | F 1357 | F 1358 | tm 1359 | tm 1360 | F 1361 | F 1362 | F 1363 | IS' 1364 | MERCHANTIBILITY 1365 | F 1366 | unenforceability 1367 | F 1368 | tm 1369 | tm 1370 | tm 1371 | b 1372 | tm 1373 | c 1374 | tm 1375 | tm 1376 | tm's 1377 | tm 1378 | tm 1379 | http 1380 | pglaf 1381 | org 1382 | c 1383 | c 1384 | http 1385 | pglaf 1386 | org 1387 | U 1388 | S 1389 | Melan 1390 | S 1391 | pglaf 1392 | org 1393 | http 1394 | pglaf 1395 | org 1396 | B 1397 | Newby 1398 | gbnewby 1399 | pglaf 1400 | org 1401 | tm 1402 | http 1403 | pglaf 1404 | org 1405 | U 1406 | S 1407 | http 1408 | pglaf 1409 | org 1410 | tm 1411 | S 1412 | tm 1413 | tm 1414 | eBooks 1415 | tm 1416 | eBooks 1417 | U 1418 | S 1419 | eBooks 1420 | PG 1421 | http 1422 | org 1423 | tm 1424 | eBooks 1425 | eBooks 1426 | 1427 | WORDS MISSPELLED: 1422 1428 | WORDS IN DICTIONARY: 143091 1429 | WORDS IN TEXT: 52538 1430 | --------------------------------------------------------------------------------