diff --git a/02 Quick Start/conditionals.py b/02 Quick Start/conditionals.py new file mode 100644 index 0000000..13b04bb --- /dev/null +++ b/02 Quick Start/conditionals.py @@ -0,0 +1,6 @@ +#!/usr/bin/python3 +a, b = 0, 1 +if a < b: + print('a ({}) is less than b ({})'.format(a, b)) +else: + print('a ({}) is not less than b ({})'.format(a, b)) \ No newline at end of file diff --git a/02 Quick Start/exceptions.py b/02 Quick Start/exceptions.py new file mode 100644 index 0000000..4584b6b --- /dev/null +++ b/02 Quick Start/exceptions.py @@ -0,0 +1,9 @@ +#!/usr/bin/python3 +# exceptions.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Gorup, LLC + +fh = open('xlines.txt') +for line in fh.readlines(): + print(line) + diff --git a/02 Quick Start/forloop.py b/02 Quick Start/forloop.py new file mode 100644 index 0000000..deaedcc --- /dev/null +++ b/02 Quick Start/forloop.py @@ -0,0 +1,6 @@ +#!/usr/bin/python3 + +# read the lines from the file +fh = open('lines.txt') +for line in fh.readlines(): + print(line) diff --git a/02 Quick Start/function.py b/02 Quick Start/function.py new file mode 100644 index 0000000..730ac95 --- /dev/null +++ b/02 Quick Start/function.py @@ -0,0 +1,17 @@ +#!/usr/bin/python3 + +def isprime(n): + if n == 1: + print("1 is special") + return False + for x in range(2, n): + if n % x == 0: + print("{} equals {} x {}".format(n, x, n // x)) + return False + else: + print(n, "is a prime number") + return True + +for n in range(1, 20): + isprime(n) + diff --git a/02 Quick Start/generator.py b/02 Quick Start/generator.py new file mode 100644 index 0000000..e2e224c --- /dev/null +++ b/02 Quick Start/generator.py @@ -0,0 +1,20 @@ +#!/usr/bin/python3 + +def isprime(n): + if n == 1: + return False + for x in range(2, n): + if n % x == 0: + return False + else: + return True + +def primes(n = 1): + while(True): + if isprime(n): yield n + n += 1 + +for n in primes(): + if n > 100: break + print(n) + diff --git a/02 Quick Start/hello.py b/02 Quick Start/hello.py new file mode 100644 index 0000000..fb54bfc --- /dev/null +++ b/02 Quick Start/hello.py @@ -0,0 +1,3 @@ +#!/usr/bin/python3 + +print("Hello, World!") diff --git a/02 Quick Start/lines.txt b/02 Quick Start/lines.txt new file mode 100644 index 0000000..33f863b --- /dev/null +++ b/02 Quick Start/lines.txt @@ -0,0 +1,5 @@ +01 This is a line of text +02 This is a line of text +03 This is a line of text +04 This is a line of text +05 This is a line of text diff --git a/02 Quick Start/oop2.py b/02 Quick Start/oop2.py new file mode 100644 index 0000000..8ba7af1 --- /dev/null +++ b/02 Quick Start/oop2.py @@ -0,0 +1,54 @@ +#!/usr/bin/python3 + +class AnimalActions: + def quack(self): return self.strings['quack'] + def feathers(self): return self.strings['feathers'] + def bark(self): return self.strings['bark'] + def fur(self): return self.strings['fur'] + +class Duck(AnimalActions): + strings = dict( + quack = "Quaaaaak!", + feathers = "The duck has gray and white feathers.", + bark = "The duck cannot bark.", + fur = "The duck has no fur." + ) + +class Person(AnimalActions): + strings = dict( + quack = "The person imitates a duck.", + feathers = "The person takes a feather from the ground and shows it.", + bark = "The person says woof!", + fur = "The person puts on a fur coat." + ) + +class Dog(AnimalActions): + strings = dict( + quack = "The dog cannot quack.", + feathers = "The dog has no feathers.", + bark = "Arf!", + fur = "The dog has white fur with black spots." + ) + +def in_the_doghouse(dog): + print(dog.bark()) + print(dog.fur()) + +def in_the_forest(duck): + print(duck.quack()) + print(duck.feathers()) + +def main(): + donald = Duck() + john = Person() + fido = Dog() + + print("- In the forest:") + for o in ( donald, john, fido ): + in_the_forest(o) + + print("- In the doghouse:") + for o in ( donald, john, fido ): + in_the_doghouse(o) + +if __name__ == "__main__": main() diff --git a/02 Quick Start/oop3.py b/02 Quick Start/oop3.py new file mode 100644 index 0000000..d6b09dd --- /dev/null +++ b/02 Quick Start/oop3.py @@ -0,0 +1,69 @@ +#!/usr/bin/python3 +# oop3.py by Bill Weinman +# OOP/Polymorphism example in Python +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright (c) 2010 The BearHeart Group, LLC + +# -- VIEW -- + +class AnimalActions: + def bark(self): return self._doAction('bark') + def fur(self): return self._doAction('fur') + def quack(self): return self._doAction('quack') + def feathers(self): return self._doAction('feathers') + + def _doAction(self, action): + if action in self.strings: + return self.strings[action] + else: + return 'The {} has no {}'.format(self.animalName(), action) + + def animalName(self): + return self.__class__.__name__.lower() + +# -- MODEL -- + +class Duck(AnimalActions): + strings = dict( + quack = "Quaaaaak!", + feathers = "The duck has gray and white feathers." + ) + +class Person(AnimalActions): + strings = dict( + bark = "The person says woof!", + fur = "The person puts on a fur coat.", + quack = "The person imitates a duck.", + feathers = "The person takes a feather from the ground and shows it." + ) + +class Dog(AnimalActions): + strings = dict( + bark = "Arf!", + fur = "The dog has white fur with black spots.", + ) + +# -- CONTROLLER -- + +def in_the_doghouse(dog): + print(dog.bark()) + print(dog.fur()) + +def in_the_forest(duck): + print(duck.quack()) + print(duck.feathers()) + +def main(): + donald = Duck() + john = Person() + fido = Dog() + + print("-- In the forest:") + for o in ( donald, john, fido ): + in_the_forest(o) + + print("-- In the doghouse:") + for o in ( donald, john, fido ): + in_the_doghouse(o) + +if __name__ == "__main__": main() diff --git a/02 Quick Start/simpleoop.py b/02 Quick Start/simpleoop.py new file mode 100644 index 0000000..d26e099 --- /dev/null +++ b/02 Quick Start/simpleoop.py @@ -0,0 +1,19 @@ +#!/usr/bin/python3 + +# simple fibonacci series +# the sum of two elements defines the next set +class Fibonacci(): + def __init__(self, a, b): + self.a = a + self.b = b + + def series(self): + while(True): + yield(self.b) + self.a, self.b = self.b, self.a + self.b + +f = Fibonacci(0, 1) +for r in f.series(): + if r > 100: break + print(r, end=' ') + diff --git a/02 Quick Start/whileloop.py b/02 Quick Start/whileloop.py new file mode 100644 index 0000000..1774356 --- /dev/null +++ b/02 Quick Start/whileloop.py @@ -0,0 +1,8 @@ +#!/usr/bin/python3 + +# simple fibonacci series +# the sum of two elements defines the next set +a, b = 0, 1 +while b < 50: + print(b) + a, b = b, a + b diff --git a/04 Syntax/comments.py b/04 Syntax/comments.py new file mode 100644 index 0000000..ed12d6b --- /dev/null +++ b/04 Syntax/comments.py @@ -0,0 +1,25 @@ +#!/usr/bin/python3 +# comments.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + for n in primes(): + if n > 100: break + print(n) + +def isprime(n): + if n == 1: + return False + for x in range(2, n): + if n % x == 0: + return False + else: + return True + +def primes(n = 1): + while(True): + if isprime(n): yield n + n += 1 + +if __name__ == "__main__": main() diff --git a/04 Syntax/syntax.py b/04 Syntax/syntax.py new file mode 100644 index 0000000..ae84b15 --- /dev/null +++ b/04 Syntax/syntax.py @@ -0,0 +1,9 @@ +#!/usr/bin/python3 +# syntax.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + print("This is the syntax.py file.") + +if __name__ == "__main__": main() diff --git a/05 Variables/variables.py b/05 Variables/variables.py new file mode 100644 index 0000000..f5f4003 --- /dev/null +++ b/05 Variables/variables.py @@ -0,0 +1,9 @@ +#!/usr/bin/python3 +# variables.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + print("This is the variables.py file.") + +if __name__ == "__main__": main() diff --git a/06 Conditionals/conditionals.py b/06 Conditionals/conditionals.py new file mode 100644 index 0000000..21ce1ab --- /dev/null +++ b/06 Conditionals/conditionals.py @@ -0,0 +1,9 @@ +#!/usr/bin/python3 +# conditionals.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + print("This is the conditionals.py file.") + +if __name__ == "__main__": main() diff --git a/06 Conditionals/jumptable.py b/06 Conditionals/jumptable.py new file mode 100644 index 0000000..1d6a7a3 --- /dev/null +++ b/06 Conditionals/jumptable.py @@ -0,0 +1,44 @@ +#!/usr/bin/python3 +# jumptable.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +class jumptable(): + jumptable = {} + + def set(self, k, v): + self.jumptable[k] = v + + def go(self, index): + if index in self.jumptable: + self.jumptable[index]() + elif 'default' in self.jumptable: + self.jumptable['default']() + else: + raise RuntimeError('undefined jump: {}'.format(index)) + +def main(): + j = jumptable(); + j.set('one', one) + j.set('two', two) + j.set('three', three) + j.set('default', default) + + try: + j.go('seven') + except RuntimeError as e: + print(e) + +def one(): + print('This is the "one" function.') + +def two(): + print('This is the "two" function.') + +def three(): + print('This is the "three" function.') + +def default(): + print('this is the default function.') + +if __name__ == "__main__": main() diff --git a/06 Conditionals/switch.py b/06 Conditionals/switch.py new file mode 100644 index 0000000..84d40f4 --- /dev/null +++ b/06 Conditionals/switch.py @@ -0,0 +1,9 @@ +#!/usr/bin/python3 +# switch.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + print('this is the switch.py file') + +if __name__ == "__main__": main() diff --git a/07 Loops/for.py b/07 Loops/for.py new file mode 100644 index 0000000..bf5a121 --- /dev/null +++ b/07 Loops/for.py @@ -0,0 +1,11 @@ +#!/usr/bin/python3 +# for.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + fh = open('lines.txt') + for line in fh.readlines(): + print(line) + +if __name__ == "__main__": main() diff --git a/07 Loops/iterators.py b/07 Loops/iterators.py new file mode 100644 index 0000000..8a8a86a --- /dev/null +++ b/07 Loops/iterators.py @@ -0,0 +1,11 @@ +#!/usr/bin/python3 +# iterators.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + fh = open('lines.txt') + for line in fh.readlines(): + print(line) + +if __name__ == "__main__": main() diff --git a/07 Loops/lines.txt b/07 Loops/lines.txt new file mode 100644 index 0000000..33f863b --- /dev/null +++ b/07 Loops/lines.txt @@ -0,0 +1,5 @@ +01 This is a line of text +02 This is a line of text +03 This is a line of text +04 This is a line of text +05 This is a line of text diff --git a/07 Loops/loopcontrol.py b/07 Loops/loopcontrol.py new file mode 100644 index 0000000..33422e8 --- /dev/null +++ b/07 Loops/loopcontrol.py @@ -0,0 +1,11 @@ +#!/usr/bin/python3 +# break.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + s = 'this is a string' + for c in s: + print(c, end='') + +if __name__ == "__main__": main() diff --git a/07 Loops/while.py b/07 Loops/while.py new file mode 100644 index 0000000..a2e69d3 --- /dev/null +++ b/07 Loops/while.py @@ -0,0 +1,14 @@ +#!/usr/bin/python3 +# while.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + # simple fibonacci series + # the sum of two elements defines the next set + a, b = 0, 1 + while b < 50: + print(b, end=' ') + a, b = b, a + b + +if __name__ == "__main__": main() diff --git a/08 Operators/ops.py b/08 Operators/ops.py new file mode 100644 index 0000000..46079ac --- /dev/null +++ b/08 Operators/ops.py @@ -0,0 +1,9 @@ +#!/usr/bin/python3 +# ops.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + print("This is the ops.py file.") + +if __name__ == "__main__": main() diff --git a/09 Regexes/raven.txt b/09 Regexes/raven.txt new file mode 100644 index 0000000..565403c --- /dev/null +++ b/09 Regexes/raven.txt @@ -0,0 +1,125 @@ +Once upon a midnight dreary, while I pondered weak and weary, +Over many a quaint and curious volume of forgotten lore, +While I nodded, nearly napping, suddenly there came a tapping, +As of some one gently rapping, rapping at my chamber door. +"'Tis some visitor," I muttered, "tapping at my chamber door - +Only this, and nothing more." + +Ah, distinctly I remember it was in the bleak December, +And each separate dying ember wrought its ghost upon the floor. +Eagerly I wished the morrow; - vainly I had sought to borrow +From my books surcease of sorrow - sorrow for the lost Lenore - +For the rare and radiant maiden whom the angels named Lenore - +Nameless here for evermore. + +And the silken sad uncertain rustling of each purple curtain +Thrilled me - filled me with fantastic terrors never felt before; +So that now, to still the beating of my heart, I stood repeating +"'Tis some visitor entreating entrance at my chamber door - +Some late visitor entreating entrance at my chamber door; - +This it is, and nothing more," + +Presently my soul grew stronger; hesitating then no longer, +"Sir," said I, "or Madam, truly your forgiveness I implore; +But the fact is I was napping, and so gently you came rapping, +And so faintly you came tapping, tapping at my chamber door, +That I scarce was sure I heard you" - here I opened wide the door; - +Darkness there, and nothing more. + +Deep into that darkness peering, long I stood there wondering, fearing, +Doubting, dreaming dreams no mortal ever dared to dream before; +But the silence was unbroken, and the darkness gave no token, +And the only word there spoken was the whispered word, "Lenore!" +This I whispered, and an echo murmured back the word, "Lenore!" +Merely this and nothing more. + +Back into the chamber turning, all my soul within me burning, +Soon again I heard a tapping somewhat louder than before. +"Surely," said I, "surely that is something at my window lattice; +Let me see then, what thereat is, and this mystery explore - +Let my heart be still a moment and this mystery explore; - +'Tis the wind and nothing more!" + +Open here I flung the shutter, when, with many a flirt and flutter, +In there stepped a stately raven of the saintly days of yore. +Not the least obeisance made he; not a minute stopped or stayed he; +But, with mien of lord or lady, perched above my chamber door - +Perched upon a bust of Pallas just above my chamber door - +Perched, and sat, and nothing more. + +Then this ebony bird beguiling my sad fancy into smiling, +By the grave and stern decorum of the countenance it wore, +"Though thy crest be shorn and shaven, thou," I said, "art sure no craven. +Ghastly grim and ancient raven wandering from the nightly shore - +Tell me what thy lordly name is on the Night's Plutonian shore!" +Quoth the raven, "Nevermore." + +Much I marvelled this ungainly fowl to hear discourse so plainly, +Though its answer little meaning - little relevancy bore; +For we cannot help agreeing that no living human being +Ever yet was blessed with seeing bird above his chamber door - +Bird or beast above the sculptured bust above his chamber door, +With such name as "Nevermore." + +But the raven, sitting lonely on the placid bust, spoke only, +That one word, as if his soul in that one word he did outpour. +Nothing further then he uttered - not a feather then he fluttered - +Till I scarcely more than muttered "Other friends have flown before - +On the morrow he will leave me, as my hopes have flown before." +Then the bird said, "Nevermore." + +Startled at the stillness broken by reply so aptly spoken, +"Doubtless," said I, "what it utters is its only stock and store, +Caught from some unhappy master whom unmerciful disaster +Followed fast and followed faster till his songs one burden bore - +Till the dirges of his hope that melancholy burden bore +Of 'Never-nevermore.'" + +But the raven still beguiling all my sad soul into smiling, +Straight I wheeled a cushioned seat in front of bird and bust and door; +Then, upon the velvet sinking, I betook myself to linking +Fancy unto fancy, thinking what this ominous bird of yore - +What this grim, ungainly, ghastly, gaunt, and ominous bird of yore +Meant in croaking "Nevermore." + +This I sat engaged in guessing, but no syllable expressing +To the fowl whose fiery eyes now burned into my bosom's core; +This and more I sat divining, with my head at ease reclining +On the cushion's velvet lining that the lamp-light gloated o'er, +But whose velvet violet lining with the lamp-light gloating o'er, +She shall press, ah, nevermore! + +Then, methought, the air grew denser, perfumed from an unseen censer +Swung by Seraphim whose foot-falls tinkled on the tufted floor. +"Wretch," I cried, "thy God hath lent thee - by these angels he has sent thee +Respite - respite and nepenthe from thy memories of Lenore! +Quaff, oh quaff this kind nepenthe, and forget this lost Lenore!" +Quoth the raven, "Nevermore." + +"Prophet!" said I, "thing of evil! - prophet still, if bird or devil! - +Whether tempter sent, or whether tempest tossed thee here ashore, +Desolate yet all undaunted, on this desert land enchanted - +On this home by horror haunted - tell me truly, I implore - +Is there - is there balm in Gilead? - tell me - tell me, I implore!" +Quoth the raven, "Nevermore." + +"Prophet!" said I, "thing of evil! - prophet still, if bird or devil! +By that Heaven that bends above us - by that God we both adore - +Tell this soul with sorrow laden if, within the distant Aidenn, +It shall clasp a sainted maiden whom the angels named Lenore - +Clasp a rare and radiant maiden, whom the angels named Lenore?" +Quoth the raven, "Nevermore." + +"Be that word our sign of parting, bird or fiend!" I shrieked upstarting - +"Get thee back into the tempest and the Night's Plutonian shore! +Leave no black plume as a token of that lie thy soul hath spoken! +Leave my loneliness unbroken! - quit the bust above my door! +Take thy beak from out my heart, and take thy form from off my door!" +Quoth the raven, "Nevermore." + +And the raven, never flitting, still is sitting, still is sitting +On the pallid bust of Pallas just above my chamber door; +And his eyes have all the seeming of a demon's that is dreaming, +And the lamp-light o'er him streaming throws his shadow on the floor; +And my soul from out that shadow that lies floating on the floor +Shall be lifted - nevermore! diff --git a/09 Regexes/regex.py b/09 Regexes/regex.py new file mode 100644 index 0000000..e6750a7 --- /dev/null +++ b/09 Regexes/regex.py @@ -0,0 +1,14 @@ +#!/usr/bin/python3 +# regex.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Gorup, LLC + +import re + +def main(): + fh = open('raven.txt') + for line in fh: + if re.search('(Len|Neverm)ore', line): + print(line, end='') + +if __name__ == "__main__": main() diff --git a/10 Exceptions/exceptions.py b/10 Exceptions/exceptions.py new file mode 100644 index 0000000..b481bc8 --- /dev/null +++ b/10 Exceptions/exceptions.py @@ -0,0 +1,10 @@ +#!/usr/bin/python3 +# exceptions.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Gorup, LLC + +def main(): + fh = open('lines.txt') + for line in fh: print(line.strip()) + +if __name__ == "__main__": main() diff --git a/10 Exceptions/lines.txt b/10 Exceptions/lines.txt new file mode 100644 index 0000000..33f863b --- /dev/null +++ b/10 Exceptions/lines.txt @@ -0,0 +1,5 @@ +01 This is a line of text +02 This is a line of text +03 This is a line of text +04 This is a line of text +05 This is a line of text diff --git a/11 Functions/functions.py b/11 Functions/functions.py new file mode 100644 index 0000000..c8951ab --- /dev/null +++ b/11 Functions/functions.py @@ -0,0 +1,12 @@ +#!/usr/bin/python3 +# functions.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + testfunc() + +def testfunc(): + print('This is a test function') + +if __name__ == "__main__": main() diff --git a/11 Functions/generator.py b/11 Functions/generator.py new file mode 100644 index 0000000..8dbfd22 --- /dev/null +++ b/11 Functions/generator.py @@ -0,0 +1,11 @@ +#!/usr/bin/python3 +# generator.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + print("This is the functions.py file.") + for i in range(25): + print(i, end = ' ') + +if __name__ == "__main__": main() diff --git a/12 Classes/classes.py b/12 Classes/classes.py new file mode 100644 index 0000000..9598872 --- /dev/null +++ b/12 Classes/classes.py @@ -0,0 +1,18 @@ +#!/usr/bin/python3 +# classes.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +class Duck: + def quack(self): + print('Quaaack!') + + def walk(self): + print('Walks like a duck.') + +def main(): + donald = Duck() + donald.quack() + donald.walk() + +if __name__ == "__main__": main() diff --git a/12 Classes/decorators.py b/12 Classes/decorators.py new file mode 100644 index 0000000..7da84fe --- /dev/null +++ b/12 Classes/decorators.py @@ -0,0 +1,26 @@ +#!/usr/bin/python3 +# classes.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +class Duck: + def __init__(self, **kwargs): + self.properties = kwargs + + def quack(self): + print('Quaaack!') + + def walk(self): + print('Walks like a duck.') + + def get_properties(self): + return self.properties + + def get_property(self, key): + return self.properties.get(key, None) + +def main(): + donald = Duck(color = 'blue') + print(donald.get_property('color')) + +if __name__ == "__main__": main() diff --git a/12 Classes/generator.py b/12 Classes/generator.py new file mode 100644 index 0000000..4c4d309 --- /dev/null +++ b/12 Classes/generator.py @@ -0,0 +1,10 @@ +#!/usr/bin/python3 +# classes.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + o = range(25) + for i in o: print(i, end = ' ') + +if __name__ == "__main__": main() diff --git a/13 Strings/lines.txt b/13 Strings/lines.txt new file mode 100644 index 0000000..33f863b --- /dev/null +++ b/13 Strings/lines.txt @@ -0,0 +1,5 @@ +01 This is a line of text +02 This is a line of text +03 This is a line of text +04 This is a line of text +05 This is a line of text diff --git a/13 Strings/strings.py b/13 Strings/strings.py new file mode 100644 index 0000000..4f86a89 --- /dev/null +++ b/13 Strings/strings.py @@ -0,0 +1,20 @@ +#!/usr/bin/python3 +# strings.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + s = 'this is a string' + print(s.capitalize()) + print(s.title()) + print(s.upper()) + print(s.swapcase()) + print(s.find('is')) + print(s.replace('this', 'that')) + print(s.strip()) + print(s.isalnum()) + print(s.isalpha()) + print(s.isdigit()) + print(s.isprintable()) + +if __name__ == "__main__": main() diff --git a/14 Containers/containers.py b/14 Containers/containers.py new file mode 100644 index 0000000..aba7712 --- /dev/null +++ b/14 Containers/containers.py @@ -0,0 +1,9 @@ +#!/usr/bin/python3 +# containers.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + print('This is the containers.py file.') + +if __name__ == "__main__": main() diff --git a/14 Containers/utf8.txt b/14 Containers/utf8.txt new file mode 100644 index 0000000..5f2aff9 --- /dev/null +++ b/14 Containers/utf8.txt @@ -0,0 +1,3 @@ +This is a UTF-8 file. +It has some interesting characters in it. +٩(͡๏̯͡๏)۶ diff --git a/15 Files/bigfile.txt b/15 Files/bigfile.txt new file mode 100644 index 0000000..8381735 --- /dev/null +++ b/15 Files/bigfile.txt @@ -0,0 +1,10000 @@ +00000 Really big file of text. +00001 Really big file of text. +00002 Really big file of text. +00003 Really big file of text. +00004 Really big file of text. +00005 Really big file of text. +00006 Really big file of text. +00007 Really big file of text. +00008 Really big file of text. +00009 Really big file of text. +00010 Really big file of text. +00011 Really big file of text. +00012 Really big file of text. +00013 Really big file of text. +00014 Really big file of text. +00015 Really big file of text. +00016 Really big file of text. +00017 Really big file of text. +00018 Really big file of text. +00019 Really big file of text. +00020 Really big file of text. +00021 Really big file of text. +00022 Really big file of text. +00023 Really big file of text. +00024 Really big file of text. +00025 Really big file of text. +00026 Really big file of text. +00027 Really big file of text. +00028 Really big file of text. +00029 Really big file of text. +00030 Really big file of text. +00031 Really big file of text. +00032 Really big file of text. +00033 Really big file of text. +00034 Really big file of text. +00035 Really big file of text. +00036 Really big file of text. +00037 Really big file of text. +00038 Really big file of text. +00039 Really big file of text. +00040 Really big file of text. +00041 Really big file of text. +00042 Really big file of text. +00043 Really big file of text. +00044 Really big file of text. +00045 Really big file of text. +00046 Really big file of text. +00047 Really big file of text. +00048 Really big file of text. +00049 Really big file of text. +00050 Really big file of text. +00051 Really big file of text. +00052 Really big file of text. +00053 Really big file of text. +00054 Really big file of text. +00055 Really big file of text. +00056 Really big file of text. +00057 Really big file of text. +00058 Really big file of text. +00059 Really big file of text. +00060 Really big file of text. +00061 Really big file of text. +00062 Really big file of text. +00063 Really big file of text. +00064 Really big file of text. +00065 Really big file of text. +00066 Really big file of text. +00067 Really big file of text. +00068 Really big file of text. +00069 Really big file of text. +00070 Really big file of text. +00071 Really big file of text. +00072 Really big file of text. +00073 Really big file of text. +00074 Really big file of text. +00075 Really big file of text. +00076 Really big file of text. +00077 Really big file of text. +00078 Really big file of text. +00079 Really big file of text. +00080 Really big file of text. +00081 Really big file of text. +00082 Really big file of text. +00083 Really big file of text. +00084 Really big file of text. +00085 Really big file of text. +00086 Really big file of text. +00087 Really big file of text. +00088 Really big file of text. +00089 Really big file of text. +00090 Really big file of text. +00091 Really big file of text. +00092 Really big file of text. +00093 Really big file of text. +00094 Really big file of text. +00095 Really big file of text. +00096 Really big file of text. +00097 Really big file of text. +00098 Really big file of text. +00099 Really big file of text. +00100 Really big file of text. +00101 Really big file of text. +00102 Really big file of text. +00103 Really big file of text. +00104 Really big file of text. +00105 Really big file of text. +00106 Really big file of text. +00107 Really big file of text. +00108 Really big file of text. +00109 Really big file of text. +00110 Really big file of text. +00111 Really big file of text. +00112 Really big file of text. +00113 Really big file of text. +00114 Really big file of text. +00115 Really big file of text. +00116 Really big file of text. +00117 Really big file of text. +00118 Really big file of text. +00119 Really big file of text. +00120 Really big file of text. +00121 Really big file of text. +00122 Really big file of text. +00123 Really big file of text. +00124 Really big file of text. +00125 Really big file of text. +00126 Really big file of text. +00127 Really big file of text. +00128 Really big file of text. +00129 Really big file of text. +00130 Really big file of text. +00131 Really big file of text. +00132 Really big file of text. +00133 Really big file of text. +00134 Really big file of text. +00135 Really big file of text. +00136 Really big file of text. +00137 Really big file of text. +00138 Really big file of text. +00139 Really big file of text. +00140 Really big file of text. +00141 Really big file of text. +00142 Really big file of text. +00143 Really big file of text. +00144 Really big file of text. +00145 Really big file of text. +00146 Really big file of text. +00147 Really big file of text. +00148 Really big file of text. +00149 Really big file of text. +00150 Really big file of text. +00151 Really big file of text. +00152 Really big file of text. +00153 Really big file of text. +00154 Really big file of text. +00155 Really big file of text. +00156 Really big file of text. +00157 Really big file of text. +00158 Really big file of text. +00159 Really big file of text. +00160 Really big file of text. +00161 Really big file of text. +00162 Really big file of text. +00163 Really big file of text. +00164 Really big file of text. +00165 Really big file of text. +00166 Really big file of text. +00167 Really big file of text. +00168 Really big file of text. +00169 Really big file of text. +00170 Really big file of text. +00171 Really big file of text. +00172 Really big file of text. +00173 Really big file of text. +00174 Really big file of text. +00175 Really big file of text. +00176 Really big file of text. +00177 Really big file of text. +00178 Really big file of text. +00179 Really big file of text. +00180 Really big file of text. +00181 Really big file of text. +00182 Really big file of text. +00183 Really big file of text. +00184 Really big file of text. +00185 Really big file of text. +00186 Really big file of text. +00187 Really big file of text. +00188 Really big file of text. +00189 Really big file of text. +00190 Really big file of text. +00191 Really big file of text. +00192 Really big file of text. +00193 Really big file of text. +00194 Really big file of text. +00195 Really big file of text. +00196 Really big file of text. +00197 Really big file of text. +00198 Really big file of text. +00199 Really big file of text. +00200 Really big file of text. +00201 Really big file of text. +00202 Really big file of text. +00203 Really big file of text. +00204 Really big file of text. +00205 Really big file of text. +00206 Really big file of text. +00207 Really big file of text. +00208 Really big file of text. +00209 Really big file of text. +00210 Really big file of text. +00211 Really big file of text. +00212 Really big file of text. +00213 Really big file of text. +00214 Really big file of text. +00215 Really big file of text. +00216 Really big file of text. +00217 Really big file of text. +00218 Really big file of text. +00219 Really big file of text. +00220 Really big file of text. +00221 Really big file of text. +00222 Really big file of text. +00223 Really big file of text. +00224 Really big file of text. +00225 Really big file of text. +00226 Really big file of text. +00227 Really big file of text. +00228 Really big file of text. +00229 Really big file of text. +00230 Really big file of text. +00231 Really big file of text. +00232 Really big file of text. +00233 Really big file of text. +00234 Really big file of text. +00235 Really big file of text. +00236 Really big file of text. +00237 Really big file of text. +00238 Really big file of text. +00239 Really big file of text. +00240 Really big file of text. +00241 Really big file of text. +00242 Really big file of text. +00243 Really big file of text. +00244 Really big file of text. +00245 Really big file of text. +00246 Really big file of text. +00247 Really big file of text. +00248 Really big file of text. +00249 Really big file of text. +00250 Really big file of text. +00251 Really big file of text. +00252 Really big file of text. +00253 Really big file of text. +00254 Really big file of text. +00255 Really big file of text. +00256 Really big file of text. +00257 Really big file of text. +00258 Really big file of text. +00259 Really big file of text. +00260 Really big file of text. +00261 Really big file of text. +00262 Really big file of text. +00263 Really big file of text. +00264 Really big file of text. +00265 Really big file of text. +00266 Really big file of text. +00267 Really big file of text. +00268 Really big file of text. +00269 Really big file of text. +00270 Really big file of text. +00271 Really big file of text. +00272 Really big file of text. +00273 Really big file of text. +00274 Really big file of text. +00275 Really big file of text. +00276 Really big file of text. +00277 Really big file of text. +00278 Really big file of text. +00279 Really big file of text. +00280 Really big file of text. +00281 Really big file of text. +00282 Really big file of text. +00283 Really big file of text. +00284 Really big file of text. +00285 Really big file of text. +00286 Really big file of text. +00287 Really big file of text. +00288 Really big file of text. +00289 Really big file of text. +00290 Really big file of text. +00291 Really big file of text. +00292 Really big file of text. +00293 Really big file of text. +00294 Really big file of text. +00295 Really big file of text. +00296 Really big file of text. +00297 Really big file of text. +00298 Really big file of text. +00299 Really big file of text. +00300 Really big file of text. +00301 Really big file of text. +00302 Really big file of text. +00303 Really big file of text. +00304 Really big file of text. +00305 Really big file of text. +00306 Really big file of text. +00307 Really big file of text. +00308 Really big file of text. +00309 Really big file of text. +00310 Really big file of text. +00311 Really big file of text. +00312 Really big file of text. +00313 Really big file of text. +00314 Really big file of text. +00315 Really big file of text. +00316 Really big file of text. +00317 Really big file of text. +00318 Really big file of text. +00319 Really big file of text. +00320 Really big file of text. +00321 Really big file of text. +00322 Really big file of text. +00323 Really big file of text. +00324 Really big file of text. +00325 Really big file of text. +00326 Really big file of text. +00327 Really big file of text. +00328 Really big file of text. +00329 Really big file of text. +00330 Really big file of text. +00331 Really big file of text. +00332 Really big file of text. +00333 Really big file of text. +00334 Really big file of text. +00335 Really big file of text. +00336 Really big file of text. +00337 Really big file of text. +00338 Really big file of text. +00339 Really big file of text. +00340 Really big file of text. +00341 Really big file of text. +00342 Really big file of text. +00343 Really big file of text. +00344 Really big file of text. +00345 Really big file of text. +00346 Really big file of text. +00347 Really big file of text. +00348 Really big file of text. +00349 Really big file of text. +00350 Really big file of text. +00351 Really big file of text. +00352 Really big file of text. +00353 Really big file of text. +00354 Really big file of text. +00355 Really big file of text. +00356 Really big file of text. +00357 Really big file of text. +00358 Really big file of text. +00359 Really big file of text. +00360 Really big file of text. +00361 Really big file of text. +00362 Really big file of text. +00363 Really big file of text. +00364 Really big file of text. +00365 Really big file of text. +00366 Really big file of text. +00367 Really big file of text. +00368 Really big file of text. +00369 Really big file of text. +00370 Really big file of text. +00371 Really big file of text. +00372 Really big file of text. +00373 Really big file of text. +00374 Really big file of text. +00375 Really big file of text. +00376 Really big file of text. +00377 Really big file of text. +00378 Really big file of text. +00379 Really big file of text. +00380 Really big file of text. +00381 Really big file of text. +00382 Really big file of text. +00383 Really big file of text. +00384 Really big file of text. +00385 Really big file of text. +00386 Really big file of text. +00387 Really big file of text. +00388 Really big file of text. +00389 Really big file of text. +00390 Really big file of text. +00391 Really big file of text. +00392 Really big file of text. +00393 Really big file of text. +00394 Really big file of text. +00395 Really big file of text. +00396 Really big file of text. +00397 Really big file of text. +00398 Really big file of text. +00399 Really big file of text. +00400 Really big file of text. +00401 Really big file of text. +00402 Really big file of text. +00403 Really big file of text. +00404 Really big file of text. +00405 Really big file of text. +00406 Really big file of text. +00407 Really big file of text. +00408 Really big file of text. +00409 Really big file of text. +00410 Really big file of text. +00411 Really big file of text. +00412 Really big file of text. +00413 Really big file of text. +00414 Really big file of text. +00415 Really big file of text. +00416 Really big file of text. +00417 Really big file of text. +00418 Really big file of text. +00419 Really big file of text. +00420 Really big file of text. +00421 Really big file of text. +00422 Really big file of text. +00423 Really big file of text. +00424 Really big file of text. +00425 Really big file of text. +00426 Really big file of text. +00427 Really big file of text. +00428 Really big file of text. +00429 Really big file of text. +00430 Really big file of text. +00431 Really big file of text. +00432 Really big file of text. +00433 Really big file of text. +00434 Really big file of text. +00435 Really big file of text. +00436 Really big file of text. +00437 Really big file of text. +00438 Really big file of text. +00439 Really big file of text. +00440 Really big file of text. +00441 Really big file of text. +00442 Really big file of text. +00443 Really big file of text. +00444 Really big file of text. +00445 Really big file of text. +00446 Really big file of text. +00447 Really big file of text. +00448 Really big file of text. +00449 Really big file of text. +00450 Really big file of text. +00451 Really big file of text. +00452 Really big file of text. +00453 Really big file of text. +00454 Really big file of text. +00455 Really big file of text. +00456 Really big file of text. +00457 Really big file of text. +00458 Really big file of text. +00459 Really big file of text. +00460 Really big file of text. +00461 Really big file of text. +00462 Really big file of text. +00463 Really big file of text. +00464 Really big file of text. +00465 Really big file of text. +00466 Really big file of text. +00467 Really big file of text. +00468 Really big file of text. +00469 Really big file of text. +00470 Really big file of text. +00471 Really big file of text. +00472 Really big file of text. +00473 Really big file of text. +00474 Really big file of text. +00475 Really big file of text. +00476 Really big file of text. +00477 Really big file of text. +00478 Really big file of text. +00479 Really big file of text. +00480 Really big file of text. +00481 Really big file of text. +00482 Really big file of text. +00483 Really big file of text. +00484 Really big file of text. +00485 Really big file of text. +00486 Really big file of text. +00487 Really big file of text. +00488 Really big file of text. +00489 Really big file of text. +00490 Really big file of text. +00491 Really big file of text. +00492 Really big file of text. +00493 Really big file of text. +00494 Really big file of text. +00495 Really big file of text. +00496 Really big file of text. +00497 Really big file of text. +00498 Really big file of text. +00499 Really big file of text. +00500 Really big file of text. +00501 Really big file of text. +00502 Really big file of text. +00503 Really big file of text. +00504 Really big file of text. +00505 Really big file of text. +00506 Really big file of text. +00507 Really big file of text. +00508 Really big file of text. +00509 Really big file of text. +00510 Really big file of text. +00511 Really big file of text. +00512 Really big file of text. +00513 Really big file of text. +00514 Really big file of text. +00515 Really big file of text. +00516 Really big file of text. +00517 Really big file of text. +00518 Really big file of text. +00519 Really big file of text. +00520 Really big file of text. +00521 Really big file of text. +00522 Really big file of text. +00523 Really big file of text. +00524 Really big file of text. +00525 Really big file of text. +00526 Really big file of text. +00527 Really big file of text. +00528 Really big file of text. +00529 Really big file of text. +00530 Really big file of text. +00531 Really big file of text. +00532 Really big file of text. +00533 Really big file of text. +00534 Really big file of text. +00535 Really big file of text. +00536 Really big file of text. +00537 Really big file of text. +00538 Really big file of text. +00539 Really big file of text. +00540 Really big file of text. +00541 Really big file of text. +00542 Really big file of text. +00543 Really big file of text. +00544 Really big file of text. +00545 Really big file of text. +00546 Really big file of text. +00547 Really big file of text. +00548 Really big file of text. +00549 Really big file of text. +00550 Really big file of text. +00551 Really big file of text. +00552 Really big file of text. +00553 Really big file of text. +00554 Really big file of text. +00555 Really big file of text. +00556 Really big file of text. +00557 Really big file of text. +00558 Really big file of text. +00559 Really big file of text. +00560 Really big file of text. +00561 Really big file of text. +00562 Really big file of text. +00563 Really big file of text. +00564 Really big file of text. +00565 Really big file of text. +00566 Really big file of text. +00567 Really big file of text. +00568 Really big file of text. +00569 Really big file of text. +00570 Really big file of text. +00571 Really big file of text. +00572 Really big file of text. +00573 Really big file of text. +00574 Really big file of text. +00575 Really big file of text. +00576 Really big file of text. +00577 Really big file of text. +00578 Really big file of text. +00579 Really big file of text. +00580 Really big file of text. +00581 Really big file of text. +00582 Really big file of text. +00583 Really big file of text. +00584 Really big file of text. +00585 Really big file of text. +00586 Really big file of text. +00587 Really big file of text. +00588 Really big file of text. +00589 Really big file of text. +00590 Really big file of text. +00591 Really big file of text. +00592 Really big file of text. +00593 Really big file of text. +00594 Really big file of text. +00595 Really big file of text. +00596 Really big file of text. +00597 Really big file of text. +00598 Really big file of text. +00599 Really big file of text. +00600 Really big file of text. +00601 Really big file of text. +00602 Really big file of text. +00603 Really big file of text. +00604 Really big file of text. +00605 Really big file of text. +00606 Really big file of text. +00607 Really big file of text. +00608 Really big file of text. +00609 Really big file of text. +00610 Really big file of text. +00611 Really big file of text. +00612 Really big file of text. +00613 Really big file of text. +00614 Really big file of text. +00615 Really big file of text. +00616 Really big file of text. +00617 Really big file of text. +00618 Really big file of text. +00619 Really big file of text. +00620 Really big file of text. +00621 Really big file of text. +00622 Really big file of text. +00623 Really big file of text. +00624 Really big file of text. +00625 Really big file of text. +00626 Really big file of text. +00627 Really big file of text. +00628 Really big file of text. +00629 Really big file of text. +00630 Really big file of text. +00631 Really big file of text. +00632 Really big file of text. +00633 Really big file of text. +00634 Really big file of text. +00635 Really big file of text. +00636 Really big file of text. +00637 Really big file of text. +00638 Really big file of text. +00639 Really big file of text. +00640 Really big file of text. +00641 Really big file of text. +00642 Really big file of text. +00643 Really big file of text. +00644 Really big file of text. +00645 Really big file of text. +00646 Really big file of text. +00647 Really big file of text. +00648 Really big file of text. +00649 Really big file of text. +00650 Really big file of text. +00651 Really big file of text. +00652 Really big file of text. +00653 Really big file of text. +00654 Really big file of text. +00655 Really big file of text. +00656 Really big file of text. +00657 Really big file of text. +00658 Really big file of text. +00659 Really big file of text. +00660 Really big file of text. +00661 Really big file of text. +00662 Really big file of text. +00663 Really big file of text. +00664 Really big file of text. +00665 Really big file of text. +00666 Really big file of text. +00667 Really big file of text. +00668 Really big file of text. +00669 Really big file of text. +00670 Really big file of text. +00671 Really big file of text. +00672 Really big file of text. +00673 Really big file of text. +00674 Really big file of text. +00675 Really big file of text. +00676 Really big file of text. +00677 Really big file of text. +00678 Really big file of text. +00679 Really big file of text. +00680 Really big file of text. +00681 Really big file of text. +00682 Really big file of text. +00683 Really big file of text. +00684 Really big file of text. +00685 Really big file of text. +00686 Really big file of text. +00687 Really big file of text. +00688 Really big file of text. +00689 Really big file of text. +00690 Really big file of text. +00691 Really big file of text. +00692 Really big file of text. +00693 Really big file of text. +00694 Really big file of text. +00695 Really big file of text. +00696 Really big file of text. +00697 Really big file of text. +00698 Really big file of text. +00699 Really big file of text. +00700 Really big file of text. +00701 Really big file of text. +00702 Really big file of text. +00703 Really big file of text. +00704 Really big file of text. +00705 Really big file of text. +00706 Really big file of text. +00707 Really big file of text. +00708 Really big file of text. +00709 Really big file of text. +00710 Really big file of text. +00711 Really big file of text. +00712 Really big file of text. +00713 Really big file of text. +00714 Really big file of text. +00715 Really big file of text. +00716 Really big file of text. +00717 Really big file of text. +00718 Really big file of text. +00719 Really big file of text. +00720 Really big file of text. +00721 Really big file of text. +00722 Really big file of text. +00723 Really big file of text. +00724 Really big file of text. +00725 Really big file of text. +00726 Really big file of text. +00727 Really big file of text. +00728 Really big file of text. +00729 Really big file of text. +00730 Really big file of text. +00731 Really big file of text. +00732 Really big file of text. +00733 Really big file of text. +00734 Really big file of text. +00735 Really big file of text. +00736 Really big file of text. +00737 Really big file of text. +00738 Really big file of text. +00739 Really big file of text. +00740 Really big file of text. +00741 Really big file of text. +00742 Really big file of text. +00743 Really big file of text. +00744 Really big file of text. +00745 Really big file of text. +00746 Really big file of text. +00747 Really big file of text. +00748 Really big file of text. +00749 Really big file of text. +00750 Really big file of text. +00751 Really big file of text. +00752 Really big file of text. +00753 Really big file of text. +00754 Really big file of text. +00755 Really big file of text. +00756 Really big file of text. +00757 Really big file of text. +00758 Really big file of text. +00759 Really big file of text. +00760 Really big file of text. +00761 Really big file of text. +00762 Really big file of text. +00763 Really big file of text. +00764 Really big file of text. +00765 Really big file of text. +00766 Really big file of text. +00767 Really big file of text. +00768 Really big file of text. +00769 Really big file of text. +00770 Really big file of text. +00771 Really big file of text. +00772 Really big file of text. +00773 Really big file of text. +00774 Really big file of text. +00775 Really big file of text. +00776 Really big file of text. +00777 Really big file of text. +00778 Really big file of text. +00779 Really big file of text. +00780 Really big file of text. +00781 Really big file of text. +00782 Really big file of text. +00783 Really big file of text. +00784 Really big file of text. +00785 Really big file of text. +00786 Really big file of text. +00787 Really big file of text. +00788 Really big file of text. +00789 Really big file of text. +00790 Really big file of text. +00791 Really big file of text. +00792 Really big file of text. +00793 Really big file of text. +00794 Really big file of text. +00795 Really big file of text. +00796 Really big file of text. +00797 Really big file of text. +00798 Really big file of text. +00799 Really big file of text. +00800 Really big file of text. +00801 Really big file of text. +00802 Really big file of text. +00803 Really big file of text. +00804 Really big file of text. +00805 Really big file of text. +00806 Really big file of text. +00807 Really big file of text. +00808 Really big file of text. +00809 Really big file of text. +00810 Really big file of text. +00811 Really big file of text. +00812 Really big file of text. +00813 Really big file of text. +00814 Really big file of text. +00815 Really big file of text. +00816 Really big file of text. +00817 Really big file of text. +00818 Really big file of text. +00819 Really big file of text. +00820 Really big file of text. +00821 Really big file of text. +00822 Really big file of text. +00823 Really big file of text. +00824 Really big file of text. +00825 Really big file of text. +00826 Really big file of text. +00827 Really big file of text. +00828 Really big file of text. +00829 Really big file of text. +00830 Really big file of text. +00831 Really big file of text. +00832 Really big file of text. +00833 Really big file of text. +00834 Really big file of text. +00835 Really big file of text. +00836 Really big file of text. +00837 Really big file of text. +00838 Really big file of text. +00839 Really big file of text. +00840 Really big file of text. +00841 Really big file of text. +00842 Really big file of text. +00843 Really big file of text. +00844 Really big file of text. +00845 Really big file of text. +00846 Really big file of text. +00847 Really big file of text. +00848 Really big file of text. +00849 Really big file of text. +00850 Really big file of text. +00851 Really big file of text. +00852 Really big file of text. +00853 Really big file of text. +00854 Really big file of text. +00855 Really big file of text. +00856 Really big file of text. +00857 Really big file of text. +00858 Really big file of text. +00859 Really big file of text. +00860 Really big file of text. +00861 Really big file of text. +00862 Really big file of text. +00863 Really big file of text. +00864 Really big file of text. +00865 Really big file of text. +00866 Really big file of text. +00867 Really big file of text. +00868 Really big file of text. +00869 Really big file of text. +00870 Really big file of text. +00871 Really big file of text. +00872 Really big file of text. +00873 Really big file of text. +00874 Really big file of text. +00875 Really big file of text. +00876 Really big file of text. +00877 Really big file of text. +00878 Really big file of text. +00879 Really big file of text. +00880 Really big file of text. +00881 Really big file of text. +00882 Really big file of text. +00883 Really big file of text. +00884 Really big file of text. +00885 Really big file of text. +00886 Really big file of text. +00887 Really big file of text. +00888 Really big file of text. +00889 Really big file of text. +00890 Really big file of text. +00891 Really big file of text. +00892 Really big file of text. +00893 Really big file of text. +00894 Really big file of text. +00895 Really big file of text. +00896 Really big file of text. +00897 Really big file of text. +00898 Really big file of text. +00899 Really big file of text. +00900 Really big file of text. +00901 Really big file of text. +00902 Really big file of text. +00903 Really big file of text. +00904 Really big file of text. +00905 Really big file of text. +00906 Really big file of text. +00907 Really big file of text. +00908 Really big file of text. +00909 Really big file of text. +00910 Really big file of text. +00911 Really big file of text. +00912 Really big file of text. +00913 Really big file of text. +00914 Really big file of text. +00915 Really big file of text. +00916 Really big file of text. +00917 Really big file of text. +00918 Really big file of text. +00919 Really big file of text. +00920 Really big file of text. +00921 Really big file of text. +00922 Really big file of text. +00923 Really big file of text. +00924 Really big file of text. +00925 Really big file of text. +00926 Really big file of text. +00927 Really big file of text. +00928 Really big file of text. +00929 Really big file of text. +00930 Really big file of text. +00931 Really big file of text. +00932 Really big file of text. +00933 Really big file of text. +00934 Really big file of text. +00935 Really big file of text. +00936 Really big file of text. +00937 Really big file of text. +00938 Really big file of text. +00939 Really big file of text. +00940 Really big file of text. +00941 Really big file of text. +00942 Really big file of text. +00943 Really big file of text. +00944 Really big file of text. +00945 Really big file of text. +00946 Really big file of text. +00947 Really big file of text. +00948 Really big file of text. +00949 Really big file of text. +00950 Really big file of text. +00951 Really big file of text. +00952 Really big file of text. +00953 Really big file of text. +00954 Really big file of text. +00955 Really big file of text. +00956 Really big file of text. +00957 Really big file of text. +00958 Really big file of text. +00959 Really big file of text. +00960 Really big file of text. +00961 Really big file of text. +00962 Really big file of text. +00963 Really big file of text. +00964 Really big file of text. +00965 Really big file of text. +00966 Really big file of text. +00967 Really big file of text. +00968 Really big file of text. +00969 Really big file of text. +00970 Really big file of text. +00971 Really big file of text. +00972 Really big file of text. +00973 Really big file of text. +00974 Really big file of text. +00975 Really big file of text. +00976 Really big file of text. +00977 Really big file of text. +00978 Really big file of text. +00979 Really big file of text. +00980 Really big file of text. +00981 Really big file of text. +00982 Really big file of text. +00983 Really big file of text. +00984 Really big file of text. +00985 Really big file of text. +00986 Really big file of text. +00987 Really big file of text. +00988 Really big file of text. +00989 Really big file of text. +00990 Really big file of text. +00991 Really big file of text. +00992 Really big file of text. +00993 Really big file of text. +00994 Really big file of text. +00995 Really big file of text. +00996 Really big file of text. +00997 Really big file of text. +00998 Really big file of text. +00999 Really big file of text. +01000 Really big file of text. +01001 Really big file of text. +01002 Really big file of text. +01003 Really big file of text. +01004 Really big file of text. +01005 Really big file of text. +01006 Really big file of text. +01007 Really big file of text. +01008 Really big file of text. +01009 Really big file of text. +01010 Really big file of text. +01011 Really big file of text. +01012 Really big file of text. +01013 Really big file of text. +01014 Really big file of text. +01015 Really big file of text. +01016 Really big file of text. +01017 Really big file of text. +01018 Really big file of text. +01019 Really big file of text. +01020 Really big file of text. +01021 Really big file of text. +01022 Really big file of text. +01023 Really big file of text. +01024 Really big file of text. +01025 Really big file of text. +01026 Really big file of text. +01027 Really big file of text. +01028 Really big file of text. +01029 Really big file of text. +01030 Really big file of text. +01031 Really big file of text. +01032 Really big file of text. +01033 Really big file of text. +01034 Really big file of text. +01035 Really big file of text. +01036 Really big file of text. +01037 Really big file of text. +01038 Really big file of text. +01039 Really big file of text. +01040 Really big file of text. +01041 Really big file of text. +01042 Really big file of text. +01043 Really big file of text. +01044 Really big file of text. +01045 Really big file of text. +01046 Really big file of text. +01047 Really big file of text. +01048 Really big file of text. +01049 Really big file of text. +01050 Really big file of text. +01051 Really big file of text. +01052 Really big file of text. +01053 Really big file of text. +01054 Really big file of text. +01055 Really big file of text. +01056 Really big file of text. +01057 Really big file of text. +01058 Really big file of text. +01059 Really big file of text. +01060 Really big file of text. +01061 Really big file of text. +01062 Really big file of text. +01063 Really big file of text. +01064 Really big file of text. +01065 Really big file of text. +01066 Really big file of text. +01067 Really big file of text. +01068 Really big file of text. +01069 Really big file of text. +01070 Really big file of text. +01071 Really big file of text. +01072 Really big file of text. +01073 Really big file of text. +01074 Really big file of text. +01075 Really big file of text. +01076 Really big file of text. +01077 Really big file of text. +01078 Really big file of text. +01079 Really big file of text. +01080 Really big file of text. +01081 Really big file of text. +01082 Really big file of text. +01083 Really big file of text. +01084 Really big file of text. +01085 Really big file of text. +01086 Really big file of text. +01087 Really big file of text. +01088 Really big file of text. +01089 Really big file of text. +01090 Really big file of text. +01091 Really big file of text. +01092 Really big file of text. +01093 Really big file of text. +01094 Really big file of text. +01095 Really big file of text. +01096 Really big file of text. +01097 Really big file of text. +01098 Really big file of text. +01099 Really big file of text. +01100 Really big file of text. +01101 Really big file of text. +01102 Really big file of text. +01103 Really big file of text. +01104 Really big file of text. +01105 Really big file of text. +01106 Really big file of text. +01107 Really big file of text. +01108 Really big file of text. +01109 Really big file of text. +01110 Really big file of text. +01111 Really big file of text. +01112 Really big file of text. +01113 Really big file of text. +01114 Really big file of text. +01115 Really big file of text. +01116 Really big file of text. +01117 Really big file of text. +01118 Really big file of text. +01119 Really big file of text. +01120 Really big file of text. +01121 Really big file of text. +01122 Really big file of text. +01123 Really big file of text. +01124 Really big file of text. +01125 Really big file of text. +01126 Really big file of text. +01127 Really big file of text. +01128 Really big file of text. +01129 Really big file of text. +01130 Really big file of text. +01131 Really big file of text. +01132 Really big file of text. +01133 Really big file of text. +01134 Really big file of text. +01135 Really big file of text. +01136 Really big file of text. +01137 Really big file of text. +01138 Really big file of text. +01139 Really big file of text. +01140 Really big file of text. +01141 Really big file of text. +01142 Really big file of text. +01143 Really big file of text. +01144 Really big file of text. +01145 Really big file of text. +01146 Really big file of text. +01147 Really big file of text. +01148 Really big file of text. +01149 Really big file of text. +01150 Really big file of text. +01151 Really big file of text. +01152 Really big file of text. +01153 Really big file of text. +01154 Really big file of text. +01155 Really big file of text. +01156 Really big file of text. +01157 Really big file of text. +01158 Really big file of text. +01159 Really big file of text. +01160 Really big file of text. +01161 Really big file of text. +01162 Really big file of text. +01163 Really big file of text. +01164 Really big file of text. +01165 Really big file of text. +01166 Really big file of text. +01167 Really big file of text. +01168 Really big file of text. +01169 Really big file of text. +01170 Really big file of text. +01171 Really big file of text. +01172 Really big file of text. +01173 Really big file of text. +01174 Really big file of text. +01175 Really big file of text. +01176 Really big file of text. +01177 Really big file of text. +01178 Really big file of text. +01179 Really big file of text. +01180 Really big file of text. +01181 Really big file of text. +01182 Really big file of text. +01183 Really big file of text. +01184 Really big file of text. +01185 Really big file of text. +01186 Really big file of text. +01187 Really big file of text. +01188 Really big file of text. +01189 Really big file of text. +01190 Really big file of text. +01191 Really big file of text. +01192 Really big file of text. +01193 Really big file of text. +01194 Really big file of text. +01195 Really big file of text. +01196 Really big file of text. +01197 Really big file of text. +01198 Really big file of text. +01199 Really big file of text. +01200 Really big file of text. +01201 Really big file of text. +01202 Really big file of text. +01203 Really big file of text. +01204 Really big file of text. +01205 Really big file of text. +01206 Really big file of text. +01207 Really big file of text. +01208 Really big file of text. +01209 Really big file of text. +01210 Really big file of text. +01211 Really big file of text. +01212 Really big file of text. +01213 Really big file of text. +01214 Really big file of text. +01215 Really big file of text. +01216 Really big file of text. +01217 Really big file of text. +01218 Really big file of text. +01219 Really big file of text. +01220 Really big file of text. +01221 Really big file of text. +01222 Really big file of text. +01223 Really big file of text. +01224 Really big file of text. +01225 Really big file of text. +01226 Really big file of text. +01227 Really big file of text. +01228 Really big file of text. +01229 Really big file of text. +01230 Really big file of text. +01231 Really big file of text. +01232 Really big file of text. +01233 Really big file of text. +01234 Really big file of text. +01235 Really big file of text. +01236 Really big file of text. +01237 Really big file of text. +01238 Really big file of text. +01239 Really big file of text. +01240 Really big file of text. +01241 Really big file of text. +01242 Really big file of text. +01243 Really big file of text. +01244 Really big file of text. +01245 Really big file of text. +01246 Really big file of text. +01247 Really big file of text. +01248 Really big file of text. +01249 Really big file of text. +01250 Really big file of text. +01251 Really big file of text. +01252 Really big file of text. +01253 Really big file of text. +01254 Really big file of text. +01255 Really big file of text. +01256 Really big file of text. +01257 Really big file of text. +01258 Really big file of text. +01259 Really big file of text. +01260 Really big file of text. +01261 Really big file of text. +01262 Really big file of text. +01263 Really big file of text. +01264 Really big file of text. +01265 Really big file of text. +01266 Really big file of text. +01267 Really big file of text. +01268 Really big file of text. +01269 Really big file of text. +01270 Really big file of text. +01271 Really big file of text. +01272 Really big file of text. +01273 Really big file of text. +01274 Really big file of text. +01275 Really big file of text. +01276 Really big file of text. +01277 Really big file of text. +01278 Really big file of text. +01279 Really big file of text. +01280 Really big file of text. +01281 Really big file of text. +01282 Really big file of text. +01283 Really big file of text. +01284 Really big file of text. +01285 Really big file of text. +01286 Really big file of text. +01287 Really big file of text. +01288 Really big file of text. +01289 Really big file of text. +01290 Really big file of text. +01291 Really big file of text. +01292 Really big file of text. +01293 Really big file of text. +01294 Really big file of text. +01295 Really big file of text. +01296 Really big file of text. +01297 Really big file of text. +01298 Really big file of text. +01299 Really big file of text. +01300 Really big file of text. +01301 Really big file of text. +01302 Really big file of text. +01303 Really big file of text. +01304 Really big file of text. +01305 Really big file of text. +01306 Really big file of text. +01307 Really big file of text. +01308 Really big file of text. +01309 Really big file of text. +01310 Really big file of text. +01311 Really big file of text. +01312 Really big file of text. +01313 Really big file of text. +01314 Really big file of text. +01315 Really big file of text. +01316 Really big file of text. +01317 Really big file of text. +01318 Really big file of text. +01319 Really big file of text. +01320 Really big file of text. +01321 Really big file of text. +01322 Really big file of text. +01323 Really big file of text. +01324 Really big file of text. +01325 Really big file of text. +01326 Really big file of text. +01327 Really big file of text. +01328 Really big file of text. +01329 Really big file of text. +01330 Really big file of text. +01331 Really big file of text. +01332 Really big file of text. +01333 Really big file of text. +01334 Really big file of text. +01335 Really big file of text. +01336 Really big file of text. +01337 Really big file of text. +01338 Really big file of text. +01339 Really big file of text. +01340 Really big file of text. +01341 Really big file of text. +01342 Really big file of text. +01343 Really big file of text. +01344 Really big file of text. +01345 Really big file of text. +01346 Really big file of text. +01347 Really big file of text. +01348 Really big file of text. +01349 Really big file of text. +01350 Really big file of text. +01351 Really big file of text. +01352 Really big file of text. +01353 Really big file of text. +01354 Really big file of text. +01355 Really big file of text. +01356 Really big file of text. +01357 Really big file of text. +01358 Really big file of text. +01359 Really big file of text. +01360 Really big file of text. +01361 Really big file of text. +01362 Really big file of text. +01363 Really big file of text. +01364 Really big file of text. +01365 Really big file of text. +01366 Really big file of text. +01367 Really big file of text. +01368 Really big file of text. +01369 Really big file of text. +01370 Really big file of text. +01371 Really big file of text. +01372 Really big file of text. +01373 Really big file of text. +01374 Really big file of text. +01375 Really big file of text. +01376 Really big file of text. +01377 Really big file of text. +01378 Really big file of text. +01379 Really big file of text. +01380 Really big file of text. +01381 Really big file of text. +01382 Really big file of text. +01383 Really big file of text. +01384 Really big file of text. +01385 Really big file of text. +01386 Really big file of text. +01387 Really big file of text. +01388 Really big file of text. +01389 Really big file of text. +01390 Really big file of text. +01391 Really big file of text. +01392 Really big file of text. +01393 Really big file of text. +01394 Really big file of text. +01395 Really big file of text. +01396 Really big file of text. +01397 Really big file of text. +01398 Really big file of text. +01399 Really big file of text. +01400 Really big file of text. +01401 Really big file of text. +01402 Really big file of text. +01403 Really big file of text. +01404 Really big file of text. +01405 Really big file of text. +01406 Really big file of text. +01407 Really big file of text. +01408 Really big file of text. +01409 Really big file of text. +01410 Really big file of text. +01411 Really big file of text. +01412 Really big file of text. +01413 Really big file of text. +01414 Really big file of text. +01415 Really big file of text. +01416 Really big file of text. +01417 Really big file of text. +01418 Really big file of text. +01419 Really big file of text. +01420 Really big file of text. +01421 Really big file of text. +01422 Really big file of text. +01423 Really big file of text. +01424 Really big file of text. +01425 Really big file of text. +01426 Really big file of text. +01427 Really big file of text. +01428 Really big file of text. +01429 Really big file of text. +01430 Really big file of text. +01431 Really big file of text. +01432 Really big file of text. +01433 Really big file of text. +01434 Really big file of text. +01435 Really big file of text. +01436 Really big file of text. +01437 Really big file of text. +01438 Really big file of text. +01439 Really big file of text. +01440 Really big file of text. +01441 Really big file of text. +01442 Really big file of text. +01443 Really big file of text. +01444 Really big file of text. +01445 Really big file of text. +01446 Really big file of text. +01447 Really big file of text. +01448 Really big file of text. +01449 Really big file of text. +01450 Really big file of text. +01451 Really big file of text. +01452 Really big file of text. +01453 Really big file of text. +01454 Really big file of text. +01455 Really big file of text. +01456 Really big file of text. +01457 Really big file of text. +01458 Really big file of text. +01459 Really big file of text. +01460 Really big file of text. +01461 Really big file of text. +01462 Really big file of text. +01463 Really big file of text. +01464 Really big file of text. +01465 Really big file of text. +01466 Really big file of text. +01467 Really big file of text. +01468 Really big file of text. +01469 Really big file of text. +01470 Really big file of text. +01471 Really big file of text. +01472 Really big file of text. +01473 Really big file of text. +01474 Really big file of text. +01475 Really big file of text. +01476 Really big file of text. +01477 Really big file of text. +01478 Really big file of text. +01479 Really big file of text. +01480 Really big file of text. +01481 Really big file of text. +01482 Really big file of text. +01483 Really big file of text. +01484 Really big file of text. +01485 Really big file of text. +01486 Really big file of text. +01487 Really big file of text. +01488 Really big file of text. +01489 Really big file of text. +01490 Really big file of text. +01491 Really big file of text. +01492 Really big file of text. +01493 Really big file of text. +01494 Really big file of text. +01495 Really big file of text. +01496 Really big file of text. +01497 Really big file of text. +01498 Really big file of text. +01499 Really big file of text. +01500 Really big file of text. +01501 Really big file of text. +01502 Really big file of text. +01503 Really big file of text. +01504 Really big file of text. +01505 Really big file of text. +01506 Really big file of text. +01507 Really big file of text. +01508 Really big file of text. +01509 Really big file of text. +01510 Really big file of text. +01511 Really big file of text. +01512 Really big file of text. +01513 Really big file of text. +01514 Really big file of text. +01515 Really big file of text. +01516 Really big file of text. +01517 Really big file of text. +01518 Really big file of text. +01519 Really big file of text. +01520 Really big file of text. +01521 Really big file of text. +01522 Really big file of text. +01523 Really big file of text. +01524 Really big file of text. +01525 Really big file of text. +01526 Really big file of text. +01527 Really big file of text. +01528 Really big file of text. +01529 Really big file of text. +01530 Really big file of text. +01531 Really big file of text. +01532 Really big file of text. +01533 Really big file of text. +01534 Really big file of text. +01535 Really big file of text. +01536 Really big file of text. +01537 Really big file of text. +01538 Really big file of text. +01539 Really big file of text. +01540 Really big file of text. +01541 Really big file of text. +01542 Really big file of text. +01543 Really big file of text. +01544 Really big file of text. +01545 Really big file of text. +01546 Really big file of text. +01547 Really big file of text. +01548 Really big file of text. +01549 Really big file of text. +01550 Really big file of text. +01551 Really big file of text. +01552 Really big file of text. +01553 Really big file of text. +01554 Really big file of text. +01555 Really big file of text. +01556 Really big file of text. +01557 Really big file of text. +01558 Really big file of text. +01559 Really big file of text. +01560 Really big file of text. +01561 Really big file of text. +01562 Really big file of text. +01563 Really big file of text. +01564 Really big file of text. +01565 Really big file of text. +01566 Really big file of text. +01567 Really big file of text. +01568 Really big file of text. +01569 Really big file of text. +01570 Really big file of text. +01571 Really big file of text. +01572 Really big file of text. +01573 Really big file of text. +01574 Really big file of text. +01575 Really big file of text. +01576 Really big file of text. +01577 Really big file of text. +01578 Really big file of text. +01579 Really big file of text. +01580 Really big file of text. +01581 Really big file of text. +01582 Really big file of text. +01583 Really big file of text. +01584 Really big file of text. +01585 Really big file of text. +01586 Really big file of text. +01587 Really big file of text. +01588 Really big file of text. +01589 Really big file of text. +01590 Really big file of text. +01591 Really big file of text. +01592 Really big file of text. +01593 Really big file of text. +01594 Really big file of text. +01595 Really big file of text. +01596 Really big file of text. +01597 Really big file of text. +01598 Really big file of text. +01599 Really big file of text. +01600 Really big file of text. +01601 Really big file of text. +01602 Really big file of text. +01603 Really big file of text. +01604 Really big file of text. +01605 Really big file of text. +01606 Really big file of text. +01607 Really big file of text. +01608 Really big file of text. +01609 Really big file of text. +01610 Really big file of text. +01611 Really big file of text. +01612 Really big file of text. +01613 Really big file of text. +01614 Really big file of text. +01615 Really big file of text. +01616 Really big file of text. +01617 Really big file of text. +01618 Really big file of text. +01619 Really big file of text. +01620 Really big file of text. +01621 Really big file of text. +01622 Really big file of text. +01623 Really big file of text. +01624 Really big file of text. +01625 Really big file of text. +01626 Really big file of text. +01627 Really big file of text. +01628 Really big file of text. +01629 Really big file of text. +01630 Really big file of text. +01631 Really big file of text. +01632 Really big file of text. +01633 Really big file of text. +01634 Really big file of text. +01635 Really big file of text. +01636 Really big file of text. +01637 Really big file of text. +01638 Really big file of text. +01639 Really big file of text. +01640 Really big file of text. +01641 Really big file of text. +01642 Really big file of text. +01643 Really big file of text. +01644 Really big file of text. +01645 Really big file of text. +01646 Really big file of text. +01647 Really big file of text. +01648 Really big file of text. +01649 Really big file of text. +01650 Really big file of text. +01651 Really big file of text. +01652 Really big file of text. +01653 Really big file of text. +01654 Really big file of text. +01655 Really big file of text. +01656 Really big file of text. +01657 Really big file of text. +01658 Really big file of text. +01659 Really big file of text. +01660 Really big file of text. +01661 Really big file of text. +01662 Really big file of text. +01663 Really big file of text. +01664 Really big file of text. +01665 Really big file of text. +01666 Really big file of text. +01667 Really big file of text. +01668 Really big file of text. +01669 Really big file of text. +01670 Really big file of text. +01671 Really big file of text. +01672 Really big file of text. +01673 Really big file of text. +01674 Really big file of text. +01675 Really big file of text. +01676 Really big file of text. +01677 Really big file of text. +01678 Really big file of text. +01679 Really big file of text. +01680 Really big file of text. +01681 Really big file of text. +01682 Really big file of text. +01683 Really big file of text. +01684 Really big file of text. +01685 Really big file of text. +01686 Really big file of text. +01687 Really big file of text. +01688 Really big file of text. +01689 Really big file of text. +01690 Really big file of text. +01691 Really big file of text. +01692 Really big file of text. +01693 Really big file of text. +01694 Really big file of text. +01695 Really big file of text. +01696 Really big file of text. +01697 Really big file of text. +01698 Really big file of text. +01699 Really big file of text. +01700 Really big file of text. +01701 Really big file of text. +01702 Really big file of text. +01703 Really big file of text. +01704 Really big file of text. +01705 Really big file of text. +01706 Really big file of text. +01707 Really big file of text. +01708 Really big file of text. +01709 Really big file of text. +01710 Really big file of text. +01711 Really big file of text. +01712 Really big file of text. +01713 Really big file of text. +01714 Really big file of text. +01715 Really big file of text. +01716 Really big file of text. +01717 Really big file of text. +01718 Really big file of text. +01719 Really big file of text. +01720 Really big file of text. +01721 Really big file of text. +01722 Really big file of text. +01723 Really big file of text. +01724 Really big file of text. +01725 Really big file of text. +01726 Really big file of text. +01727 Really big file of text. +01728 Really big file of text. +01729 Really big file of text. +01730 Really big file of text. +01731 Really big file of text. +01732 Really big file of text. +01733 Really big file of text. +01734 Really big file of text. +01735 Really big file of text. +01736 Really big file of text. +01737 Really big file of text. +01738 Really big file of text. +01739 Really big file of text. +01740 Really big file of text. +01741 Really big file of text. +01742 Really big file of text. +01743 Really big file of text. +01744 Really big file of text. +01745 Really big file of text. +01746 Really big file of text. +01747 Really big file of text. +01748 Really big file of text. +01749 Really big file of text. +01750 Really big file of text. +01751 Really big file of text. +01752 Really big file of text. +01753 Really big file of text. +01754 Really big file of text. +01755 Really big file of text. +01756 Really big file of text. +01757 Really big file of text. +01758 Really big file of text. +01759 Really big file of text. +01760 Really big file of text. +01761 Really big file of text. +01762 Really big file of text. +01763 Really big file of text. +01764 Really big file of text. +01765 Really big file of text. +01766 Really big file of text. +01767 Really big file of text. +01768 Really big file of text. +01769 Really big file of text. +01770 Really big file of text. +01771 Really big file of text. +01772 Really big file of text. +01773 Really big file of text. +01774 Really big file of text. +01775 Really big file of text. +01776 Really big file of text. +01777 Really big file of text. +01778 Really big file of text. +01779 Really big file of text. +01780 Really big file of text. +01781 Really big file of text. +01782 Really big file of text. +01783 Really big file of text. +01784 Really big file of text. +01785 Really big file of text. +01786 Really big file of text. +01787 Really big file of text. +01788 Really big file of text. +01789 Really big file of text. +01790 Really big file of text. +01791 Really big file of text. +01792 Really big file of text. +01793 Really big file of text. +01794 Really big file of text. +01795 Really big file of text. +01796 Really big file of text. +01797 Really big file of text. +01798 Really big file of text. +01799 Really big file of text. +01800 Really big file of text. +01801 Really big file of text. +01802 Really big file of text. +01803 Really big file of text. +01804 Really big file of text. +01805 Really big file of text. +01806 Really big file of text. +01807 Really big file of text. +01808 Really big file of text. +01809 Really big file of text. +01810 Really big file of text. +01811 Really big file of text. +01812 Really big file of text. +01813 Really big file of text. +01814 Really big file of text. +01815 Really big file of text. +01816 Really big file of text. +01817 Really big file of text. +01818 Really big file of text. +01819 Really big file of text. +01820 Really big file of text. +01821 Really big file of text. +01822 Really big file of text. +01823 Really big file of text. +01824 Really big file of text. +01825 Really big file of text. +01826 Really big file of text. +01827 Really big file of text. +01828 Really big file of text. +01829 Really big file of text. +01830 Really big file of text. +01831 Really big file of text. +01832 Really big file of text. +01833 Really big file of text. +01834 Really big file of text. +01835 Really big file of text. +01836 Really big file of text. +01837 Really big file of text. +01838 Really big file of text. +01839 Really big file of text. +01840 Really big file of text. +01841 Really big file of text. +01842 Really big file of text. +01843 Really big file of text. +01844 Really big file of text. +01845 Really big file of text. +01846 Really big file of text. +01847 Really big file of text. +01848 Really big file of text. +01849 Really big file of text. +01850 Really big file of text. +01851 Really big file of text. +01852 Really big file of text. +01853 Really big file of text. +01854 Really big file of text. +01855 Really big file of text. +01856 Really big file of text. +01857 Really big file of text. +01858 Really big file of text. +01859 Really big file of text. +01860 Really big file of text. +01861 Really big file of text. +01862 Really big file of text. +01863 Really big file of text. +01864 Really big file of text. +01865 Really big file of text. +01866 Really big file of text. +01867 Really big file of text. +01868 Really big file of text. +01869 Really big file of text. +01870 Really big file of text. +01871 Really big file of text. +01872 Really big file of text. +01873 Really big file of text. +01874 Really big file of text. +01875 Really big file of text. +01876 Really big file of text. +01877 Really big file of text. +01878 Really big file of text. +01879 Really big file of text. +01880 Really big file of text. +01881 Really big file of text. +01882 Really big file of text. +01883 Really big file of text. +01884 Really big file of text. +01885 Really big file of text. +01886 Really big file of text. +01887 Really big file of text. +01888 Really big file of text. +01889 Really big file of text. +01890 Really big file of text. +01891 Really big file of text. +01892 Really big file of text. +01893 Really big file of text. +01894 Really big file of text. +01895 Really big file of text. +01896 Really big file of text. +01897 Really big file of text. +01898 Really big file of text. +01899 Really big file of text. +01900 Really big file of text. +01901 Really big file of text. +01902 Really big file of text. +01903 Really big file of text. +01904 Really big file of text. +01905 Really big file of text. +01906 Really big file of text. +01907 Really big file of text. +01908 Really big file of text. +01909 Really big file of text. +01910 Really big file of text. +01911 Really big file of text. +01912 Really big file of text. +01913 Really big file of text. +01914 Really big file of text. +01915 Really big file of text. +01916 Really big file of text. +01917 Really big file of text. +01918 Really big file of text. +01919 Really big file of text. +01920 Really big file of text. +01921 Really big file of text. +01922 Really big file of text. +01923 Really big file of text. +01924 Really big file of text. +01925 Really big file of text. +01926 Really big file of text. +01927 Really big file of text. +01928 Really big file of text. +01929 Really big file of text. +01930 Really big file of text. +01931 Really big file of text. +01932 Really big file of text. +01933 Really big file of text. +01934 Really big file of text. +01935 Really big file of text. +01936 Really big file of text. +01937 Really big file of text. +01938 Really big file of text. +01939 Really big file of text. +01940 Really big file of text. +01941 Really big file of text. +01942 Really big file of text. +01943 Really big file of text. +01944 Really big file of text. +01945 Really big file of text. +01946 Really big file of text. +01947 Really big file of text. +01948 Really big file of text. +01949 Really big file of text. +01950 Really big file of text. +01951 Really big file of text. +01952 Really big file of text. +01953 Really big file of text. +01954 Really big file of text. +01955 Really big file of text. +01956 Really big file of text. +01957 Really big file of text. +01958 Really big file of text. +01959 Really big file of text. +01960 Really big file of text. +01961 Really big file of text. +01962 Really big file of text. +01963 Really big file of text. +01964 Really big file of text. +01965 Really big file of text. +01966 Really big file of text. +01967 Really big file of text. +01968 Really big file of text. +01969 Really big file of text. +01970 Really big file of text. +01971 Really big file of text. +01972 Really big file of text. +01973 Really big file of text. +01974 Really big file of text. +01975 Really big file of text. +01976 Really big file of text. +01977 Really big file of text. +01978 Really big file of text. +01979 Really big file of text. +01980 Really big file of text. +01981 Really big file of text. +01982 Really big file of text. +01983 Really big file of text. +01984 Really big file of text. +01985 Really big file of text. +01986 Really big file of text. +01987 Really big file of text. +01988 Really big file of text. +01989 Really big file of text. +01990 Really big file of text. +01991 Really big file of text. +01992 Really big file of text. +01993 Really big file of text. +01994 Really big file of text. +01995 Really big file of text. +01996 Really big file of text. +01997 Really big file of text. +01998 Really big file of text. +01999 Really big file of text. +02000 Really big file of text. +02001 Really big file of text. +02002 Really big file of text. +02003 Really big file of text. +02004 Really big file of text. +02005 Really big file of text. +02006 Really big file of text. +02007 Really big file of text. +02008 Really big file of text. +02009 Really big file of text. +02010 Really big file of text. +02011 Really big file of text. +02012 Really big file of text. +02013 Really big file of text. +02014 Really big file of text. +02015 Really big file of text. +02016 Really big file of text. +02017 Really big file of text. +02018 Really big file of text. +02019 Really big file of text. +02020 Really big file of text. +02021 Really big file of text. +02022 Really big file of text. +02023 Really big file of text. +02024 Really big file of text. +02025 Really big file of text. +02026 Really big file of text. +02027 Really big file of text. +02028 Really big file of text. +02029 Really big file of text. +02030 Really big file of text. +02031 Really big file of text. +02032 Really big file of text. +02033 Really big file of text. +02034 Really big file of text. +02035 Really big file of text. +02036 Really big file of text. +02037 Really big file of text. +02038 Really big file of text. +02039 Really big file of text. +02040 Really big file of text. +02041 Really big file of text. +02042 Really big file of text. +02043 Really big file of text. +02044 Really big file of text. +02045 Really big file of text. +02046 Really big file of text. +02047 Really big file of text. +02048 Really big file of text. +02049 Really big file of text. +02050 Really big file of text. +02051 Really big file of text. +02052 Really big file of text. +02053 Really big file of text. +02054 Really big file of text. +02055 Really big file of text. +02056 Really big file of text. +02057 Really big file of text. +02058 Really big file of text. +02059 Really big file of text. +02060 Really big file of text. +02061 Really big file of text. +02062 Really big file of text. +02063 Really big file of text. +02064 Really big file of text. +02065 Really big file of text. +02066 Really big file of text. +02067 Really big file of text. +02068 Really big file of text. +02069 Really big file of text. +02070 Really big file of text. +02071 Really big file of text. +02072 Really big file of text. +02073 Really big file of text. +02074 Really big file of text. +02075 Really big file of text. +02076 Really big file of text. +02077 Really big file of text. +02078 Really big file of text. +02079 Really big file of text. +02080 Really big file of text. +02081 Really big file of text. +02082 Really big file of text. +02083 Really big file of text. +02084 Really big file of text. +02085 Really big file of text. +02086 Really big file of text. +02087 Really big file of text. +02088 Really big file of text. +02089 Really big file of text. +02090 Really big file of text. +02091 Really big file of text. +02092 Really big file of text. +02093 Really big file of text. +02094 Really big file of text. +02095 Really big file of text. +02096 Really big file of text. +02097 Really big file of text. +02098 Really big file of text. +02099 Really big file of text. +02100 Really big file of text. +02101 Really big file of text. +02102 Really big file of text. +02103 Really big file of text. +02104 Really big file of text. +02105 Really big file of text. +02106 Really big file of text. +02107 Really big file of text. +02108 Really big file of text. +02109 Really big file of text. +02110 Really big file of text. +02111 Really big file of text. +02112 Really big file of text. +02113 Really big file of text. +02114 Really big file of text. +02115 Really big file of text. +02116 Really big file of text. +02117 Really big file of text. +02118 Really big file of text. +02119 Really big file of text. +02120 Really big file of text. +02121 Really big file of text. +02122 Really big file of text. +02123 Really big file of text. +02124 Really big file of text. +02125 Really big file of text. +02126 Really big file of text. +02127 Really big file of text. +02128 Really big file of text. +02129 Really big file of text. +02130 Really big file of text. +02131 Really big file of text. +02132 Really big file of text. +02133 Really big file of text. +02134 Really big file of text. +02135 Really big file of text. +02136 Really big file of text. +02137 Really big file of text. +02138 Really big file of text. +02139 Really big file of text. +02140 Really big file of text. +02141 Really big file of text. +02142 Really big file of text. +02143 Really big file of text. +02144 Really big file of text. +02145 Really big file of text. +02146 Really big file of text. +02147 Really big file of text. +02148 Really big file of text. +02149 Really big file of text. +02150 Really big file of text. +02151 Really big file of text. +02152 Really big file of text. +02153 Really big file of text. +02154 Really big file of text. +02155 Really big file of text. +02156 Really big file of text. +02157 Really big file of text. +02158 Really big file of text. +02159 Really big file of text. +02160 Really big file of text. +02161 Really big file of text. +02162 Really big file of text. +02163 Really big file of text. +02164 Really big file of text. +02165 Really big file of text. +02166 Really big file of text. +02167 Really big file of text. +02168 Really big file of text. +02169 Really big file of text. +02170 Really big file of text. +02171 Really big file of text. +02172 Really big file of text. +02173 Really big file of text. +02174 Really big file of text. +02175 Really big file of text. +02176 Really big file of text. +02177 Really big file of text. +02178 Really big file of text. +02179 Really big file of text. +02180 Really big file of text. +02181 Really big file of text. +02182 Really big file of text. +02183 Really big file of text. +02184 Really big file of text. +02185 Really big file of text. +02186 Really big file of text. +02187 Really big file of text. +02188 Really big file of text. +02189 Really big file of text. +02190 Really big file of text. +02191 Really big file of text. +02192 Really big file of text. +02193 Really big file of text. +02194 Really big file of text. +02195 Really big file of text. +02196 Really big file of text. +02197 Really big file of text. +02198 Really big file of text. +02199 Really big file of text. +02200 Really big file of text. +02201 Really big file of text. +02202 Really big file of text. +02203 Really big file of text. +02204 Really big file of text. +02205 Really big file of text. +02206 Really big file of text. +02207 Really big file of text. +02208 Really big file of text. +02209 Really big file of text. +02210 Really big file of text. +02211 Really big file of text. +02212 Really big file of text. +02213 Really big file of text. +02214 Really big file of text. +02215 Really big file of text. +02216 Really big file of text. +02217 Really big file of text. +02218 Really big file of text. +02219 Really big file of text. +02220 Really big file of text. +02221 Really big file of text. +02222 Really big file of text. +02223 Really big file of text. +02224 Really big file of text. +02225 Really big file of text. +02226 Really big file of text. +02227 Really big file of text. +02228 Really big file of text. +02229 Really big file of text. +02230 Really big file of text. +02231 Really big file of text. +02232 Really big file of text. +02233 Really big file of text. +02234 Really big file of text. +02235 Really big file of text. +02236 Really big file of text. +02237 Really big file of text. +02238 Really big file of text. +02239 Really big file of text. +02240 Really big file of text. +02241 Really big file of text. +02242 Really big file of text. +02243 Really big file of text. +02244 Really big file of text. +02245 Really big file of text. +02246 Really big file of text. +02247 Really big file of text. +02248 Really big file of text. +02249 Really big file of text. +02250 Really big file of text. +02251 Really big file of text. +02252 Really big file of text. +02253 Really big file of text. +02254 Really big file of text. +02255 Really big file of text. +02256 Really big file of text. +02257 Really big file of text. +02258 Really big file of text. +02259 Really big file of text. +02260 Really big file of text. +02261 Really big file of text. +02262 Really big file of text. +02263 Really big file of text. +02264 Really big file of text. +02265 Really big file of text. +02266 Really big file of text. +02267 Really big file of text. +02268 Really big file of text. +02269 Really big file of text. +02270 Really big file of text. +02271 Really big file of text. +02272 Really big file of text. +02273 Really big file of text. +02274 Really big file of text. +02275 Really big file of text. +02276 Really big file of text. +02277 Really big file of text. +02278 Really big file of text. +02279 Really big file of text. +02280 Really big file of text. +02281 Really big file of text. +02282 Really big file of text. +02283 Really big file of text. +02284 Really big file of text. +02285 Really big file of text. +02286 Really big file of text. +02287 Really big file of text. +02288 Really big file of text. +02289 Really big file of text. +02290 Really big file of text. +02291 Really big file of text. +02292 Really big file of text. +02293 Really big file of text. +02294 Really big file of text. +02295 Really big file of text. +02296 Really big file of text. +02297 Really big file of text. +02298 Really big file of text. +02299 Really big file of text. +02300 Really big file of text. +02301 Really big file of text. +02302 Really big file of text. +02303 Really big file of text. +02304 Really big file of text. +02305 Really big file of text. +02306 Really big file of text. +02307 Really big file of text. +02308 Really big file of text. +02309 Really big file of text. +02310 Really big file of text. +02311 Really big file of text. +02312 Really big file of text. +02313 Really big file of text. +02314 Really big file of text. +02315 Really big file of text. +02316 Really big file of text. +02317 Really big file of text. +02318 Really big file of text. +02319 Really big file of text. +02320 Really big file of text. +02321 Really big file of text. +02322 Really big file of text. +02323 Really big file of text. +02324 Really big file of text. +02325 Really big file of text. +02326 Really big file of text. +02327 Really big file of text. +02328 Really big file of text. +02329 Really big file of text. +02330 Really big file of text. +02331 Really big file of text. +02332 Really big file of text. +02333 Really big file of text. +02334 Really big file of text. +02335 Really big file of text. +02336 Really big file of text. +02337 Really big file of text. +02338 Really big file of text. +02339 Really big file of text. +02340 Really big file of text. +02341 Really big file of text. +02342 Really big file of text. +02343 Really big file of text. +02344 Really big file of text. +02345 Really big file of text. +02346 Really big file of text. +02347 Really big file of text. +02348 Really big file of text. +02349 Really big file of text. +02350 Really big file of text. +02351 Really big file of text. +02352 Really big file of text. +02353 Really big file of text. +02354 Really big file of text. +02355 Really big file of text. +02356 Really big file of text. +02357 Really big file of text. +02358 Really big file of text. +02359 Really big file of text. +02360 Really big file of text. +02361 Really big file of text. +02362 Really big file of text. +02363 Really big file of text. +02364 Really big file of text. +02365 Really big file of text. +02366 Really big file of text. +02367 Really big file of text. +02368 Really big file of text. +02369 Really big file of text. +02370 Really big file of text. +02371 Really big file of text. +02372 Really big file of text. +02373 Really big file of text. +02374 Really big file of text. +02375 Really big file of text. +02376 Really big file of text. +02377 Really big file of text. +02378 Really big file of text. +02379 Really big file of text. +02380 Really big file of text. +02381 Really big file of text. +02382 Really big file of text. +02383 Really big file of text. +02384 Really big file of text. +02385 Really big file of text. +02386 Really big file of text. +02387 Really big file of text. +02388 Really big file of text. +02389 Really big file of text. +02390 Really big file of text. +02391 Really big file of text. +02392 Really big file of text. +02393 Really big file of text. +02394 Really big file of text. +02395 Really big file of text. +02396 Really big file of text. +02397 Really big file of text. +02398 Really big file of text. +02399 Really big file of text. +02400 Really big file of text. +02401 Really big file of text. +02402 Really big file of text. +02403 Really big file of text. +02404 Really big file of text. +02405 Really big file of text. +02406 Really big file of text. +02407 Really big file of text. +02408 Really big file of text. +02409 Really big file of text. +02410 Really big file of text. +02411 Really big file of text. +02412 Really big file of text. +02413 Really big file of text. +02414 Really big file of text. +02415 Really big file of text. +02416 Really big file of text. +02417 Really big file of text. +02418 Really big file of text. +02419 Really big file of text. +02420 Really big file of text. +02421 Really big file of text. +02422 Really big file of text. +02423 Really big file of text. +02424 Really big file of text. +02425 Really big file of text. +02426 Really big file of text. +02427 Really big file of text. +02428 Really big file of text. +02429 Really big file of text. +02430 Really big file of text. +02431 Really big file of text. +02432 Really big file of text. +02433 Really big file of text. +02434 Really big file of text. +02435 Really big file of text. +02436 Really big file of text. +02437 Really big file of text. +02438 Really big file of text. +02439 Really big file of text. +02440 Really big file of text. +02441 Really big file of text. +02442 Really big file of text. +02443 Really big file of text. +02444 Really big file of text. +02445 Really big file of text. +02446 Really big file of text. +02447 Really big file of text. +02448 Really big file of text. +02449 Really big file of text. +02450 Really big file of text. +02451 Really big file of text. +02452 Really big file of text. +02453 Really big file of text. +02454 Really big file of text. +02455 Really big file of text. +02456 Really big file of text. +02457 Really big file of text. +02458 Really big file of text. +02459 Really big file of text. +02460 Really big file of text. +02461 Really big file of text. +02462 Really big file of text. +02463 Really big file of text. +02464 Really big file of text. +02465 Really big file of text. +02466 Really big file of text. +02467 Really big file of text. +02468 Really big file of text. +02469 Really big file of text. +02470 Really big file of text. +02471 Really big file of text. +02472 Really big file of text. +02473 Really big file of text. +02474 Really big file of text. +02475 Really big file of text. +02476 Really big file of text. +02477 Really big file of text. +02478 Really big file of text. +02479 Really big file of text. +02480 Really big file of text. +02481 Really big file of text. +02482 Really big file of text. +02483 Really big file of text. +02484 Really big file of text. +02485 Really big file of text. +02486 Really big file of text. +02487 Really big file of text. +02488 Really big file of text. +02489 Really big file of text. +02490 Really big file of text. +02491 Really big file of text. +02492 Really big file of text. +02493 Really big file of text. +02494 Really big file of text. +02495 Really big file of text. +02496 Really big file of text. +02497 Really big file of text. +02498 Really big file of text. +02499 Really big file of text. +02500 Really big file of text. +02501 Really big file of text. +02502 Really big file of text. +02503 Really big file of text. +02504 Really big file of text. +02505 Really big file of text. +02506 Really big file of text. +02507 Really big file of text. +02508 Really big file of text. +02509 Really big file of text. +02510 Really big file of text. +02511 Really big file of text. +02512 Really big file of text. +02513 Really big file of text. +02514 Really big file of text. +02515 Really big file of text. +02516 Really big file of text. +02517 Really big file of text. +02518 Really big file of text. +02519 Really big file of text. +02520 Really big file of text. +02521 Really big file of text. +02522 Really big file of text. +02523 Really big file of text. +02524 Really big file of text. +02525 Really big file of text. +02526 Really big file of text. +02527 Really big file of text. +02528 Really big file of text. +02529 Really big file of text. +02530 Really big file of text. +02531 Really big file of text. +02532 Really big file of text. +02533 Really big file of text. +02534 Really big file of text. +02535 Really big file of text. +02536 Really big file of text. +02537 Really big file of text. +02538 Really big file of text. +02539 Really big file of text. +02540 Really big file of text. +02541 Really big file of text. +02542 Really big file of text. +02543 Really big file of text. +02544 Really big file of text. +02545 Really big file of text. +02546 Really big file of text. +02547 Really big file of text. +02548 Really big file of text. +02549 Really big file of text. +02550 Really big file of text. +02551 Really big file of text. +02552 Really big file of text. +02553 Really big file of text. +02554 Really big file of text. +02555 Really big file of text. +02556 Really big file of text. +02557 Really big file of text. +02558 Really big file of text. +02559 Really big file of text. +02560 Really big file of text. +02561 Really big file of text. +02562 Really big file of text. +02563 Really big file of text. +02564 Really big file of text. +02565 Really big file of text. +02566 Really big file of text. +02567 Really big file of text. +02568 Really big file of text. +02569 Really big file of text. +02570 Really big file of text. +02571 Really big file of text. +02572 Really big file of text. +02573 Really big file of text. +02574 Really big file of text. +02575 Really big file of text. +02576 Really big file of text. +02577 Really big file of text. +02578 Really big file of text. +02579 Really big file of text. +02580 Really big file of text. +02581 Really big file of text. +02582 Really big file of text. +02583 Really big file of text. +02584 Really big file of text. +02585 Really big file of text. +02586 Really big file of text. +02587 Really big file of text. +02588 Really big file of text. +02589 Really big file of text. +02590 Really big file of text. +02591 Really big file of text. +02592 Really big file of text. +02593 Really big file of text. +02594 Really big file of text. +02595 Really big file of text. +02596 Really big file of text. +02597 Really big file of text. +02598 Really big file of text. +02599 Really big file of text. +02600 Really big file of text. +02601 Really big file of text. +02602 Really big file of text. +02603 Really big file of text. +02604 Really big file of text. +02605 Really big file of text. +02606 Really big file of text. +02607 Really big file of text. +02608 Really big file of text. +02609 Really big file of text. +02610 Really big file of text. +02611 Really big file of text. +02612 Really big file of text. +02613 Really big file of text. +02614 Really big file of text. +02615 Really big file of text. +02616 Really big file of text. +02617 Really big file of text. +02618 Really big file of text. +02619 Really big file of text. +02620 Really big file of text. +02621 Really big file of text. +02622 Really big file of text. +02623 Really big file of text. +02624 Really big file of text. +02625 Really big file of text. +02626 Really big file of text. +02627 Really big file of text. +02628 Really big file of text. +02629 Really big file of text. +02630 Really big file of text. +02631 Really big file of text. +02632 Really big file of text. +02633 Really big file of text. +02634 Really big file of text. +02635 Really big file of text. +02636 Really big file of text. +02637 Really big file of text. +02638 Really big file of text. +02639 Really big file of text. +02640 Really big file of text. +02641 Really big file of text. +02642 Really big file of text. +02643 Really big file of text. +02644 Really big file of text. +02645 Really big file of text. +02646 Really big file of text. +02647 Really big file of text. +02648 Really big file of text. +02649 Really big file of text. +02650 Really big file of text. +02651 Really big file of text. +02652 Really big file of text. +02653 Really big file of text. +02654 Really big file of text. +02655 Really big file of text. +02656 Really big file of text. +02657 Really big file of text. +02658 Really big file of text. +02659 Really big file of text. +02660 Really big file of text. +02661 Really big file of text. +02662 Really big file of text. +02663 Really big file of text. +02664 Really big file of text. +02665 Really big file of text. +02666 Really big file of text. +02667 Really big file of text. +02668 Really big file of text. +02669 Really big file of text. +02670 Really big file of text. +02671 Really big file of text. +02672 Really big file of text. +02673 Really big file of text. +02674 Really big file of text. +02675 Really big file of text. +02676 Really big file of text. +02677 Really big file of text. +02678 Really big file of text. +02679 Really big file of text. +02680 Really big file of text. +02681 Really big file of text. +02682 Really big file of text. +02683 Really big file of text. +02684 Really big file of text. +02685 Really big file of text. +02686 Really big file of text. +02687 Really big file of text. +02688 Really big file of text. +02689 Really big file of text. +02690 Really big file of text. +02691 Really big file of text. +02692 Really big file of text. +02693 Really big file of text. +02694 Really big file of text. +02695 Really big file of text. +02696 Really big file of text. +02697 Really big file of text. +02698 Really big file of text. +02699 Really big file of text. +02700 Really big file of text. +02701 Really big file of text. +02702 Really big file of text. +02703 Really big file of text. +02704 Really big file of text. +02705 Really big file of text. +02706 Really big file of text. +02707 Really big file of text. +02708 Really big file of text. +02709 Really big file of text. +02710 Really big file of text. +02711 Really big file of text. +02712 Really big file of text. +02713 Really big file of text. +02714 Really big file of text. +02715 Really big file of text. +02716 Really big file of text. +02717 Really big file of text. +02718 Really big file of text. +02719 Really big file of text. +02720 Really big file of text. +02721 Really big file of text. +02722 Really big file of text. +02723 Really big file of text. +02724 Really big file of text. +02725 Really big file of text. +02726 Really big file of text. +02727 Really big file of text. +02728 Really big file of text. +02729 Really big file of text. +02730 Really big file of text. +02731 Really big file of text. +02732 Really big file of text. +02733 Really big file of text. +02734 Really big file of text. +02735 Really big file of text. +02736 Really big file of text. +02737 Really big file of text. +02738 Really big file of text. +02739 Really big file of text. +02740 Really big file of text. +02741 Really big file of text. +02742 Really big file of text. +02743 Really big file of text. +02744 Really big file of text. +02745 Really big file of text. +02746 Really big file of text. +02747 Really big file of text. +02748 Really big file of text. +02749 Really big file of text. +02750 Really big file of text. +02751 Really big file of text. +02752 Really big file of text. +02753 Really big file of text. +02754 Really big file of text. +02755 Really big file of text. +02756 Really big file of text. +02757 Really big file of text. +02758 Really big file of text. +02759 Really big file of text. +02760 Really big file of text. +02761 Really big file of text. +02762 Really big file of text. +02763 Really big file of text. +02764 Really big file of text. +02765 Really big file of text. +02766 Really big file of text. +02767 Really big file of text. +02768 Really big file of text. +02769 Really big file of text. +02770 Really big file of text. +02771 Really big file of text. +02772 Really big file of text. +02773 Really big file of text. +02774 Really big file of text. +02775 Really big file of text. +02776 Really big file of text. +02777 Really big file of text. +02778 Really big file of text. +02779 Really big file of text. +02780 Really big file of text. +02781 Really big file of text. +02782 Really big file of text. +02783 Really big file of text. +02784 Really big file of text. +02785 Really big file of text. +02786 Really big file of text. +02787 Really big file of text. +02788 Really big file of text. +02789 Really big file of text. +02790 Really big file of text. +02791 Really big file of text. +02792 Really big file of text. +02793 Really big file of text. +02794 Really big file of text. +02795 Really big file of text. +02796 Really big file of text. +02797 Really big file of text. +02798 Really big file of text. +02799 Really big file of text. +02800 Really big file of text. +02801 Really big file of text. +02802 Really big file of text. +02803 Really big file of text. +02804 Really big file of text. +02805 Really big file of text. +02806 Really big file of text. +02807 Really big file of text. +02808 Really big file of text. +02809 Really big file of text. +02810 Really big file of text. +02811 Really big file of text. +02812 Really big file of text. +02813 Really big file of text. +02814 Really big file of text. +02815 Really big file of text. +02816 Really big file of text. +02817 Really big file of text. +02818 Really big file of text. +02819 Really big file of text. +02820 Really big file of text. +02821 Really big file of text. +02822 Really big file of text. +02823 Really big file of text. +02824 Really big file of text. +02825 Really big file of text. +02826 Really big file of text. +02827 Really big file of text. +02828 Really big file of text. +02829 Really big file of text. +02830 Really big file of text. +02831 Really big file of text. +02832 Really big file of text. +02833 Really big file of text. +02834 Really big file of text. +02835 Really big file of text. +02836 Really big file of text. +02837 Really big file of text. +02838 Really big file of text. +02839 Really big file of text. +02840 Really big file of text. +02841 Really big file of text. +02842 Really big file of text. +02843 Really big file of text. +02844 Really big file of text. +02845 Really big file of text. +02846 Really big file of text. +02847 Really big file of text. +02848 Really big file of text. +02849 Really big file of text. +02850 Really big file of text. +02851 Really big file of text. +02852 Really big file of text. +02853 Really big file of text. +02854 Really big file of text. +02855 Really big file of text. +02856 Really big file of text. +02857 Really big file of text. +02858 Really big file of text. +02859 Really big file of text. +02860 Really big file of text. +02861 Really big file of text. +02862 Really big file of text. +02863 Really big file of text. +02864 Really big file of text. +02865 Really big file of text. +02866 Really big file of text. +02867 Really big file of text. +02868 Really big file of text. +02869 Really big file of text. +02870 Really big file of text. +02871 Really big file of text. +02872 Really big file of text. +02873 Really big file of text. +02874 Really big file of text. +02875 Really big file of text. +02876 Really big file of text. +02877 Really big file of text. +02878 Really big file of text. +02879 Really big file of text. +02880 Really big file of text. +02881 Really big file of text. +02882 Really big file of text. +02883 Really big file of text. +02884 Really big file of text. +02885 Really big file of text. +02886 Really big file of text. +02887 Really big file of text. +02888 Really big file of text. +02889 Really big file of text. +02890 Really big file of text. +02891 Really big file of text. +02892 Really big file of text. +02893 Really big file of text. +02894 Really big file of text. +02895 Really big file of text. +02896 Really big file of text. +02897 Really big file of text. +02898 Really big file of text. +02899 Really big file of text. +02900 Really big file of text. +02901 Really big file of text. +02902 Really big file of text. +02903 Really big file of text. +02904 Really big file of text. +02905 Really big file of text. +02906 Really big file of text. +02907 Really big file of text. +02908 Really big file of text. +02909 Really big file of text. +02910 Really big file of text. +02911 Really big file of text. +02912 Really big file of text. +02913 Really big file of text. +02914 Really big file of text. +02915 Really big file of text. +02916 Really big file of text. +02917 Really big file of text. +02918 Really big file of text. +02919 Really big file of text. +02920 Really big file of text. +02921 Really big file of text. +02922 Really big file of text. +02923 Really big file of text. +02924 Really big file of text. +02925 Really big file of text. +02926 Really big file of text. +02927 Really big file of text. +02928 Really big file of text. +02929 Really big file of text. +02930 Really big file of text. +02931 Really big file of text. +02932 Really big file of text. +02933 Really big file of text. +02934 Really big file of text. +02935 Really big file of text. +02936 Really big file of text. +02937 Really big file of text. +02938 Really big file of text. +02939 Really big file of text. +02940 Really big file of text. +02941 Really big file of text. +02942 Really big file of text. +02943 Really big file of text. +02944 Really big file of text. +02945 Really big file of text. +02946 Really big file of text. +02947 Really big file of text. +02948 Really big file of text. +02949 Really big file of text. +02950 Really big file of text. +02951 Really big file of text. +02952 Really big file of text. +02953 Really big file of text. +02954 Really big file of text. +02955 Really big file of text. +02956 Really big file of text. +02957 Really big file of text. +02958 Really big file of text. +02959 Really big file of text. +02960 Really big file of text. +02961 Really big file of text. +02962 Really big file of text. +02963 Really big file of text. +02964 Really big file of text. +02965 Really big file of text. +02966 Really big file of text. +02967 Really big file of text. +02968 Really big file of text. +02969 Really big file of text. +02970 Really big file of text. +02971 Really big file of text. +02972 Really big file of text. +02973 Really big file of text. +02974 Really big file of text. +02975 Really big file of text. +02976 Really big file of text. +02977 Really big file of text. +02978 Really big file of text. +02979 Really big file of text. +02980 Really big file of text. +02981 Really big file of text. +02982 Really big file of text. +02983 Really big file of text. +02984 Really big file of text. +02985 Really big file of text. +02986 Really big file of text. +02987 Really big file of text. +02988 Really big file of text. +02989 Really big file of text. +02990 Really big file of text. +02991 Really big file of text. +02992 Really big file of text. +02993 Really big file of text. +02994 Really big file of text. +02995 Really big file of text. +02996 Really big file of text. +02997 Really big file of text. +02998 Really big file of text. +02999 Really big file of text. +03000 Really big file of text. +03001 Really big file of text. +03002 Really big file of text. +03003 Really big file of text. +03004 Really big file of text. +03005 Really big file of text. +03006 Really big file of text. +03007 Really big file of text. +03008 Really big file of text. +03009 Really big file of text. +03010 Really big file of text. +03011 Really big file of text. +03012 Really big file of text. +03013 Really big file of text. +03014 Really big file of text. +03015 Really big file of text. +03016 Really big file of text. +03017 Really big file of text. +03018 Really big file of text. +03019 Really big file of text. +03020 Really big file of text. +03021 Really big file of text. +03022 Really big file of text. +03023 Really big file of text. +03024 Really big file of text. +03025 Really big file of text. +03026 Really big file of text. +03027 Really big file of text. +03028 Really big file of text. +03029 Really big file of text. +03030 Really big file of text. +03031 Really big file of text. +03032 Really big file of text. +03033 Really big file of text. +03034 Really big file of text. +03035 Really big file of text. +03036 Really big file of text. +03037 Really big file of text. +03038 Really big file of text. +03039 Really big file of text. +03040 Really big file of text. +03041 Really big file of text. +03042 Really big file of text. +03043 Really big file of text. +03044 Really big file of text. +03045 Really big file of text. +03046 Really big file of text. +03047 Really big file of text. +03048 Really big file of text. +03049 Really big file of text. +03050 Really big file of text. +03051 Really big file of text. +03052 Really big file of text. +03053 Really big file of text. +03054 Really big file of text. +03055 Really big file of text. +03056 Really big file of text. +03057 Really big file of text. +03058 Really big file of text. +03059 Really big file of text. +03060 Really big file of text. +03061 Really big file of text. +03062 Really big file of text. +03063 Really big file of text. +03064 Really big file of text. +03065 Really big file of text. +03066 Really big file of text. +03067 Really big file of text. +03068 Really big file of text. +03069 Really big file of text. +03070 Really big file of text. +03071 Really big file of text. +03072 Really big file of text. +03073 Really big file of text. +03074 Really big file of text. +03075 Really big file of text. +03076 Really big file of text. +03077 Really big file of text. +03078 Really big file of text. +03079 Really big file of text. +03080 Really big file of text. +03081 Really big file of text. +03082 Really big file of text. +03083 Really big file of text. +03084 Really big file of text. +03085 Really big file of text. +03086 Really big file of text. +03087 Really big file of text. +03088 Really big file of text. +03089 Really big file of text. +03090 Really big file of text. +03091 Really big file of text. +03092 Really big file of text. +03093 Really big file of text. +03094 Really big file of text. +03095 Really big file of text. +03096 Really big file of text. +03097 Really big file of text. +03098 Really big file of text. +03099 Really big file of text. +03100 Really big file of text. +03101 Really big file of text. +03102 Really big file of text. +03103 Really big file of text. +03104 Really big file of text. +03105 Really big file of text. +03106 Really big file of text. +03107 Really big file of text. +03108 Really big file of text. +03109 Really big file of text. +03110 Really big file of text. +03111 Really big file of text. +03112 Really big file of text. +03113 Really big file of text. +03114 Really big file of text. +03115 Really big file of text. +03116 Really big file of text. +03117 Really big file of text. +03118 Really big file of text. +03119 Really big file of text. +03120 Really big file of text. +03121 Really big file of text. +03122 Really big file of text. +03123 Really big file of text. +03124 Really big file of text. +03125 Really big file of text. +03126 Really big file of text. +03127 Really big file of text. +03128 Really big file of text. +03129 Really big file of text. +03130 Really big file of text. +03131 Really big file of text. +03132 Really big file of text. +03133 Really big file of text. +03134 Really big file of text. +03135 Really big file of text. +03136 Really big file of text. +03137 Really big file of text. +03138 Really big file of text. +03139 Really big file of text. +03140 Really big file of text. +03141 Really big file of text. +03142 Really big file of text. +03143 Really big file of text. +03144 Really big file of text. +03145 Really big file of text. +03146 Really big file of text. +03147 Really big file of text. +03148 Really big file of text. +03149 Really big file of text. +03150 Really big file of text. +03151 Really big file of text. +03152 Really big file of text. +03153 Really big file of text. +03154 Really big file of text. +03155 Really big file of text. +03156 Really big file of text. +03157 Really big file of text. +03158 Really big file of text. +03159 Really big file of text. +03160 Really big file of text. +03161 Really big file of text. +03162 Really big file of text. +03163 Really big file of text. +03164 Really big file of text. +03165 Really big file of text. +03166 Really big file of text. +03167 Really big file of text. +03168 Really big file of text. +03169 Really big file of text. +03170 Really big file of text. +03171 Really big file of text. +03172 Really big file of text. +03173 Really big file of text. +03174 Really big file of text. +03175 Really big file of text. +03176 Really big file of text. +03177 Really big file of text. +03178 Really big file of text. +03179 Really big file of text. +03180 Really big file of text. +03181 Really big file of text. +03182 Really big file of text. +03183 Really big file of text. +03184 Really big file of text. +03185 Really big file of text. +03186 Really big file of text. +03187 Really big file of text. +03188 Really big file of text. +03189 Really big file of text. +03190 Really big file of text. +03191 Really big file of text. +03192 Really big file of text. +03193 Really big file of text. +03194 Really big file of text. +03195 Really big file of text. +03196 Really big file of text. +03197 Really big file of text. +03198 Really big file of text. +03199 Really big file of text. +03200 Really big file of text. +03201 Really big file of text. +03202 Really big file of text. +03203 Really big file of text. +03204 Really big file of text. +03205 Really big file of text. +03206 Really big file of text. +03207 Really big file of text. +03208 Really big file of text. +03209 Really big file of text. +03210 Really big file of text. +03211 Really big file of text. +03212 Really big file of text. +03213 Really big file of text. +03214 Really big file of text. +03215 Really big file of text. +03216 Really big file of text. +03217 Really big file of text. +03218 Really big file of text. +03219 Really big file of text. +03220 Really big file of text. +03221 Really big file of text. +03222 Really big file of text. +03223 Really big file of text. +03224 Really big file of text. +03225 Really big file of text. +03226 Really big file of text. +03227 Really big file of text. +03228 Really big file of text. +03229 Really big file of text. +03230 Really big file of text. +03231 Really big file of text. +03232 Really big file of text. +03233 Really big file of text. +03234 Really big file of text. +03235 Really big file of text. +03236 Really big file of text. +03237 Really big file of text. +03238 Really big file of text. +03239 Really big file of text. +03240 Really big file of text. +03241 Really big file of text. +03242 Really big file of text. +03243 Really big file of text. +03244 Really big file of text. +03245 Really big file of text. +03246 Really big file of text. +03247 Really big file of text. +03248 Really big file of text. +03249 Really big file of text. +03250 Really big file of text. +03251 Really big file of text. +03252 Really big file of text. +03253 Really big file of text. +03254 Really big file of text. +03255 Really big file of text. +03256 Really big file of text. +03257 Really big file of text. +03258 Really big file of text. +03259 Really big file of text. +03260 Really big file of text. +03261 Really big file of text. +03262 Really big file of text. +03263 Really big file of text. +03264 Really big file of text. +03265 Really big file of text. +03266 Really big file of text. +03267 Really big file of text. +03268 Really big file of text. +03269 Really big file of text. +03270 Really big file of text. +03271 Really big file of text. +03272 Really big file of text. +03273 Really big file of text. +03274 Really big file of text. +03275 Really big file of text. +03276 Really big file of text. +03277 Really big file of text. +03278 Really big file of text. +03279 Really big file of text. +03280 Really big file of text. +03281 Really big file of text. +03282 Really big file of text. +03283 Really big file of text. +03284 Really big file of text. +03285 Really big file of text. +03286 Really big file of text. +03287 Really big file of text. +03288 Really big file of text. +03289 Really big file of text. +03290 Really big file of text. +03291 Really big file of text. +03292 Really big file of text. +03293 Really big file of text. +03294 Really big file of text. +03295 Really big file of text. +03296 Really big file of text. +03297 Really big file of text. +03298 Really big file of text. +03299 Really big file of text. +03300 Really big file of text. +03301 Really big file of text. +03302 Really big file of text. +03303 Really big file of text. +03304 Really big file of text. +03305 Really big file of text. +03306 Really big file of text. +03307 Really big file of text. +03308 Really big file of text. +03309 Really big file of text. +03310 Really big file of text. +03311 Really big file of text. +03312 Really big file of text. +03313 Really big file of text. +03314 Really big file of text. +03315 Really big file of text. +03316 Really big file of text. +03317 Really big file of text. +03318 Really big file of text. +03319 Really big file of text. +03320 Really big file of text. +03321 Really big file of text. +03322 Really big file of text. +03323 Really big file of text. +03324 Really big file of text. +03325 Really big file of text. +03326 Really big file of text. +03327 Really big file of text. +03328 Really big file of text. +03329 Really big file of text. +03330 Really big file of text. +03331 Really big file of text. +03332 Really big file of text. +03333 Really big file of text. +03334 Really big file of text. +03335 Really big file of text. +03336 Really big file of text. +03337 Really big file of text. +03338 Really big file of text. +03339 Really big file of text. +03340 Really big file of text. +03341 Really big file of text. +03342 Really big file of text. +03343 Really big file of text. +03344 Really big file of text. +03345 Really big file of text. +03346 Really big file of text. +03347 Really big file of text. +03348 Really big file of text. +03349 Really big file of text. +03350 Really big file of text. +03351 Really big file of text. +03352 Really big file of text. +03353 Really big file of text. +03354 Really big file of text. +03355 Really big file of text. +03356 Really big file of text. +03357 Really big file of text. +03358 Really big file of text. +03359 Really big file of text. +03360 Really big file of text. +03361 Really big file of text. +03362 Really big file of text. +03363 Really big file of text. +03364 Really big file of text. +03365 Really big file of text. +03366 Really big file of text. +03367 Really big file of text. +03368 Really big file of text. +03369 Really big file of text. +03370 Really big file of text. +03371 Really big file of text. +03372 Really big file of text. +03373 Really big file of text. +03374 Really big file of text. +03375 Really big file of text. +03376 Really big file of text. +03377 Really big file of text. +03378 Really big file of text. +03379 Really big file of text. +03380 Really big file of text. +03381 Really big file of text. +03382 Really big file of text. +03383 Really big file of text. +03384 Really big file of text. +03385 Really big file of text. +03386 Really big file of text. +03387 Really big file of text. +03388 Really big file of text. +03389 Really big file of text. +03390 Really big file of text. +03391 Really big file of text. +03392 Really big file of text. +03393 Really big file of text. +03394 Really big file of text. +03395 Really big file of text. +03396 Really big file of text. +03397 Really big file of text. +03398 Really big file of text. +03399 Really big file of text. +03400 Really big file of text. +03401 Really big file of text. +03402 Really big file of text. +03403 Really big file of text. +03404 Really big file of text. +03405 Really big file of text. +03406 Really big file of text. +03407 Really big file of text. +03408 Really big file of text. +03409 Really big file of text. +03410 Really big file of text. +03411 Really big file of text. +03412 Really big file of text. +03413 Really big file of text. +03414 Really big file of text. +03415 Really big file of text. +03416 Really big file of text. +03417 Really big file of text. +03418 Really big file of text. +03419 Really big file of text. +03420 Really big file of text. +03421 Really big file of text. +03422 Really big file of text. +03423 Really big file of text. +03424 Really big file of text. +03425 Really big file of text. +03426 Really big file of text. +03427 Really big file of text. +03428 Really big file of text. +03429 Really big file of text. +03430 Really big file of text. +03431 Really big file of text. +03432 Really big file of text. +03433 Really big file of text. +03434 Really big file of text. +03435 Really big file of text. +03436 Really big file of text. +03437 Really big file of text. +03438 Really big file of text. +03439 Really big file of text. +03440 Really big file of text. +03441 Really big file of text. +03442 Really big file of text. +03443 Really big file of text. +03444 Really big file of text. +03445 Really big file of text. +03446 Really big file of text. +03447 Really big file of text. +03448 Really big file of text. +03449 Really big file of text. +03450 Really big file of text. +03451 Really big file of text. +03452 Really big file of text. +03453 Really big file of text. +03454 Really big file of text. +03455 Really big file of text. +03456 Really big file of text. +03457 Really big file of text. +03458 Really big file of text. +03459 Really big file of text. +03460 Really big file of text. +03461 Really big file of text. +03462 Really big file of text. +03463 Really big file of text. +03464 Really big file of text. +03465 Really big file of text. +03466 Really big file of text. +03467 Really big file of text. +03468 Really big file of text. +03469 Really big file of text. +03470 Really big file of text. +03471 Really big file of text. +03472 Really big file of text. +03473 Really big file of text. +03474 Really big file of text. +03475 Really big file of text. +03476 Really big file of text. +03477 Really big file of text. +03478 Really big file of text. +03479 Really big file of text. +03480 Really big file of text. +03481 Really big file of text. +03482 Really big file of text. +03483 Really big file of text. +03484 Really big file of text. +03485 Really big file of text. +03486 Really big file of text. +03487 Really big file of text. +03488 Really big file of text. +03489 Really big file of text. +03490 Really big file of text. +03491 Really big file of text. +03492 Really big file of text. +03493 Really big file of text. +03494 Really big file of text. +03495 Really big file of text. +03496 Really big file of text. +03497 Really big file of text. +03498 Really big file of text. +03499 Really big file of text. +03500 Really big file of text. +03501 Really big file of text. +03502 Really big file of text. +03503 Really big file of text. +03504 Really big file of text. +03505 Really big file of text. +03506 Really big file of text. +03507 Really big file of text. +03508 Really big file of text. +03509 Really big file of text. +03510 Really big file of text. +03511 Really big file of text. +03512 Really big file of text. +03513 Really big file of text. +03514 Really big file of text. +03515 Really big file of text. +03516 Really big file of text. +03517 Really big file of text. +03518 Really big file of text. +03519 Really big file of text. +03520 Really big file of text. +03521 Really big file of text. +03522 Really big file of text. +03523 Really big file of text. +03524 Really big file of text. +03525 Really big file of text. +03526 Really big file of text. +03527 Really big file of text. +03528 Really big file of text. +03529 Really big file of text. +03530 Really big file of text. +03531 Really big file of text. +03532 Really big file of text. +03533 Really big file of text. +03534 Really big file of text. +03535 Really big file of text. +03536 Really big file of text. +03537 Really big file of text. +03538 Really big file of text. +03539 Really big file of text. +03540 Really big file of text. +03541 Really big file of text. +03542 Really big file of text. +03543 Really big file of text. +03544 Really big file of text. +03545 Really big file of text. +03546 Really big file of text. +03547 Really big file of text. +03548 Really big file of text. +03549 Really big file of text. +03550 Really big file of text. +03551 Really big file of text. +03552 Really big file of text. +03553 Really big file of text. +03554 Really big file of text. +03555 Really big file of text. +03556 Really big file of text. +03557 Really big file of text. +03558 Really big file of text. +03559 Really big file of text. +03560 Really big file of text. +03561 Really big file of text. +03562 Really big file of text. +03563 Really big file of text. +03564 Really big file of text. +03565 Really big file of text. +03566 Really big file of text. +03567 Really big file of text. +03568 Really big file of text. +03569 Really big file of text. +03570 Really big file of text. +03571 Really big file of text. +03572 Really big file of text. +03573 Really big file of text. +03574 Really big file of text. +03575 Really big file of text. +03576 Really big file of text. +03577 Really big file of text. +03578 Really big file of text. +03579 Really big file of text. +03580 Really big file of text. +03581 Really big file of text. +03582 Really big file of text. +03583 Really big file of text. +03584 Really big file of text. +03585 Really big file of text. +03586 Really big file of text. +03587 Really big file of text. +03588 Really big file of text. +03589 Really big file of text. +03590 Really big file of text. +03591 Really big file of text. +03592 Really big file of text. +03593 Really big file of text. +03594 Really big file of text. +03595 Really big file of text. +03596 Really big file of text. +03597 Really big file of text. +03598 Really big file of text. +03599 Really big file of text. +03600 Really big file of text. +03601 Really big file of text. +03602 Really big file of text. +03603 Really big file of text. +03604 Really big file of text. +03605 Really big file of text. +03606 Really big file of text. +03607 Really big file of text. +03608 Really big file of text. +03609 Really big file of text. +03610 Really big file of text. +03611 Really big file of text. +03612 Really big file of text. +03613 Really big file of text. +03614 Really big file of text. +03615 Really big file of text. +03616 Really big file of text. +03617 Really big file of text. +03618 Really big file of text. +03619 Really big file of text. +03620 Really big file of text. +03621 Really big file of text. +03622 Really big file of text. +03623 Really big file of text. +03624 Really big file of text. +03625 Really big file of text. +03626 Really big file of text. +03627 Really big file of text. +03628 Really big file of text. +03629 Really big file of text. +03630 Really big file of text. +03631 Really big file of text. +03632 Really big file of text. +03633 Really big file of text. +03634 Really big file of text. +03635 Really big file of text. +03636 Really big file of text. +03637 Really big file of text. +03638 Really big file of text. +03639 Really big file of text. +03640 Really big file of text. +03641 Really big file of text. +03642 Really big file of text. +03643 Really big file of text. +03644 Really big file of text. +03645 Really big file of text. +03646 Really big file of text. +03647 Really big file of text. +03648 Really big file of text. +03649 Really big file of text. +03650 Really big file of text. +03651 Really big file of text. +03652 Really big file of text. +03653 Really big file of text. +03654 Really big file of text. +03655 Really big file of text. +03656 Really big file of text. +03657 Really big file of text. +03658 Really big file of text. +03659 Really big file of text. +03660 Really big file of text. +03661 Really big file of text. +03662 Really big file of text. +03663 Really big file of text. +03664 Really big file of text. +03665 Really big file of text. +03666 Really big file of text. +03667 Really big file of text. +03668 Really big file of text. +03669 Really big file of text. +03670 Really big file of text. +03671 Really big file of text. +03672 Really big file of text. +03673 Really big file of text. +03674 Really big file of text. +03675 Really big file of text. +03676 Really big file of text. +03677 Really big file of text. +03678 Really big file of text. +03679 Really big file of text. +03680 Really big file of text. +03681 Really big file of text. +03682 Really big file of text. +03683 Really big file of text. +03684 Really big file of text. +03685 Really big file of text. +03686 Really big file of text. +03687 Really big file of text. +03688 Really big file of text. +03689 Really big file of text. +03690 Really big file of text. +03691 Really big file of text. +03692 Really big file of text. +03693 Really big file of text. +03694 Really big file of text. +03695 Really big file of text. +03696 Really big file of text. +03697 Really big file of text. +03698 Really big file of text. +03699 Really big file of text. +03700 Really big file of text. +03701 Really big file of text. +03702 Really big file of text. +03703 Really big file of text. +03704 Really big file of text. +03705 Really big file of text. +03706 Really big file of text. +03707 Really big file of text. +03708 Really big file of text. +03709 Really big file of text. +03710 Really big file of text. +03711 Really big file of text. +03712 Really big file of text. +03713 Really big file of text. +03714 Really big file of text. +03715 Really big file of text. +03716 Really big file of text. +03717 Really big file of text. +03718 Really big file of text. +03719 Really big file of text. +03720 Really big file of text. +03721 Really big file of text. +03722 Really big file of text. +03723 Really big file of text. +03724 Really big file of text. +03725 Really big file of text. +03726 Really big file of text. +03727 Really big file of text. +03728 Really big file of text. +03729 Really big file of text. +03730 Really big file of text. +03731 Really big file of text. +03732 Really big file of text. +03733 Really big file of text. +03734 Really big file of text. +03735 Really big file of text. +03736 Really big file of text. +03737 Really big file of text. +03738 Really big file of text. +03739 Really big file of text. +03740 Really big file of text. +03741 Really big file of text. +03742 Really big file of text. +03743 Really big file of text. +03744 Really big file of text. +03745 Really big file of text. +03746 Really big file of text. +03747 Really big file of text. +03748 Really big file of text. +03749 Really big file of text. +03750 Really big file of text. +03751 Really big file of text. +03752 Really big file of text. +03753 Really big file of text. +03754 Really big file of text. +03755 Really big file of text. +03756 Really big file of text. +03757 Really big file of text. +03758 Really big file of text. +03759 Really big file of text. +03760 Really big file of text. +03761 Really big file of text. +03762 Really big file of text. +03763 Really big file of text. +03764 Really big file of text. +03765 Really big file of text. +03766 Really big file of text. +03767 Really big file of text. +03768 Really big file of text. +03769 Really big file of text. +03770 Really big file of text. +03771 Really big file of text. +03772 Really big file of text. +03773 Really big file of text. +03774 Really big file of text. +03775 Really big file of text. +03776 Really big file of text. +03777 Really big file of text. +03778 Really big file of text. +03779 Really big file of text. +03780 Really big file of text. +03781 Really big file of text. +03782 Really big file of text. +03783 Really big file of text. +03784 Really big file of text. +03785 Really big file of text. +03786 Really big file of text. +03787 Really big file of text. +03788 Really big file of text. +03789 Really big file of text. +03790 Really big file of text. +03791 Really big file of text. +03792 Really big file of text. +03793 Really big file of text. +03794 Really big file of text. +03795 Really big file of text. +03796 Really big file of text. +03797 Really big file of text. +03798 Really big file of text. +03799 Really big file of text. +03800 Really big file of text. +03801 Really big file of text. +03802 Really big file of text. +03803 Really big file of text. +03804 Really big file of text. +03805 Really big file of text. +03806 Really big file of text. +03807 Really big file of text. +03808 Really big file of text. +03809 Really big file of text. +03810 Really big file of text. +03811 Really big file of text. +03812 Really big file of text. +03813 Really big file of text. +03814 Really big file of text. +03815 Really big file of text. +03816 Really big file of text. +03817 Really big file of text. +03818 Really big file of text. +03819 Really big file of text. +03820 Really big file of text. +03821 Really big file of text. +03822 Really big file of text. +03823 Really big file of text. +03824 Really big file of text. +03825 Really big file of text. +03826 Really big file of text. +03827 Really big file of text. +03828 Really big file of text. +03829 Really big file of text. +03830 Really big file of text. +03831 Really big file of text. +03832 Really big file of text. +03833 Really big file of text. +03834 Really big file of text. +03835 Really big file of text. +03836 Really big file of text. +03837 Really big file of text. +03838 Really big file of text. +03839 Really big file of text. +03840 Really big file of text. +03841 Really big file of text. +03842 Really big file of text. +03843 Really big file of text. +03844 Really big file of text. +03845 Really big file of text. +03846 Really big file of text. +03847 Really big file of text. +03848 Really big file of text. +03849 Really big file of text. +03850 Really big file of text. +03851 Really big file of text. +03852 Really big file of text. +03853 Really big file of text. +03854 Really big file of text. +03855 Really big file of text. +03856 Really big file of text. +03857 Really big file of text. +03858 Really big file of text. +03859 Really big file of text. +03860 Really big file of text. +03861 Really big file of text. +03862 Really big file of text. +03863 Really big file of text. +03864 Really big file of text. +03865 Really big file of text. +03866 Really big file of text. +03867 Really big file of text. +03868 Really big file of text. +03869 Really big file of text. +03870 Really big file of text. +03871 Really big file of text. +03872 Really big file of text. +03873 Really big file of text. +03874 Really big file of text. +03875 Really big file of text. +03876 Really big file of text. +03877 Really big file of text. +03878 Really big file of text. +03879 Really big file of text. +03880 Really big file of text. +03881 Really big file of text. +03882 Really big file of text. +03883 Really big file of text. +03884 Really big file of text. +03885 Really big file of text. +03886 Really big file of text. +03887 Really big file of text. +03888 Really big file of text. +03889 Really big file of text. +03890 Really big file of text. +03891 Really big file of text. +03892 Really big file of text. +03893 Really big file of text. +03894 Really big file of text. +03895 Really big file of text. +03896 Really big file of text. +03897 Really big file of text. +03898 Really big file of text. +03899 Really big file of text. +03900 Really big file of text. +03901 Really big file of text. +03902 Really big file of text. +03903 Really big file of text. +03904 Really big file of text. +03905 Really big file of text. +03906 Really big file of text. +03907 Really big file of text. +03908 Really big file of text. +03909 Really big file of text. +03910 Really big file of text. +03911 Really big file of text. +03912 Really big file of text. +03913 Really big file of text. +03914 Really big file of text. +03915 Really big file of text. +03916 Really big file of text. +03917 Really big file of text. +03918 Really big file of text. +03919 Really big file of text. +03920 Really big file of text. +03921 Really big file of text. +03922 Really big file of text. +03923 Really big file of text. +03924 Really big file of text. +03925 Really big file of text. +03926 Really big file of text. +03927 Really big file of text. +03928 Really big file of text. +03929 Really big file of text. +03930 Really big file of text. +03931 Really big file of text. +03932 Really big file of text. +03933 Really big file of text. +03934 Really big file of text. +03935 Really big file of text. +03936 Really big file of text. +03937 Really big file of text. +03938 Really big file of text. +03939 Really big file of text. +03940 Really big file of text. +03941 Really big file of text. +03942 Really big file of text. +03943 Really big file of text. +03944 Really big file of text. +03945 Really big file of text. +03946 Really big file of text. +03947 Really big file of text. +03948 Really big file of text. +03949 Really big file of text. +03950 Really big file of text. +03951 Really big file of text. +03952 Really big file of text. +03953 Really big file of text. +03954 Really big file of text. +03955 Really big file of text. +03956 Really big file of text. +03957 Really big file of text. +03958 Really big file of text. +03959 Really big file of text. +03960 Really big file of text. +03961 Really big file of text. +03962 Really big file of text. +03963 Really big file of text. +03964 Really big file of text. +03965 Really big file of text. +03966 Really big file of text. +03967 Really big file of text. +03968 Really big file of text. +03969 Really big file of text. +03970 Really big file of text. +03971 Really big file of text. +03972 Really big file of text. +03973 Really big file of text. +03974 Really big file of text. +03975 Really big file of text. +03976 Really big file of text. +03977 Really big file of text. +03978 Really big file of text. +03979 Really big file of text. +03980 Really big file of text. +03981 Really big file of text. +03982 Really big file of text. +03983 Really big file of text. +03984 Really big file of text. +03985 Really big file of text. +03986 Really big file of text. +03987 Really big file of text. +03988 Really big file of text. +03989 Really big file of text. +03990 Really big file of text. +03991 Really big file of text. +03992 Really big file of text. +03993 Really big file of text. +03994 Really big file of text. +03995 Really big file of text. +03996 Really big file of text. +03997 Really big file of text. +03998 Really big file of text. +03999 Really big file of text. +04000 Really big file of text. +04001 Really big file of text. +04002 Really big file of text. +04003 Really big file of text. +04004 Really big file of text. +04005 Really big file of text. +04006 Really big file of text. +04007 Really big file of text. +04008 Really big file of text. +04009 Really big file of text. +04010 Really big file of text. +04011 Really big file of text. +04012 Really big file of text. +04013 Really big file of text. +04014 Really big file of text. +04015 Really big file of text. +04016 Really big file of text. +04017 Really big file of text. +04018 Really big file of text. +04019 Really big file of text. +04020 Really big file of text. +04021 Really big file of text. +04022 Really big file of text. +04023 Really big file of text. +04024 Really big file of text. +04025 Really big file of text. +04026 Really big file of text. +04027 Really big file of text. +04028 Really big file of text. +04029 Really big file of text. +04030 Really big file of text. +04031 Really big file of text. +04032 Really big file of text. +04033 Really big file of text. +04034 Really big file of text. +04035 Really big file of text. +04036 Really big file of text. +04037 Really big file of text. +04038 Really big file of text. +04039 Really big file of text. +04040 Really big file of text. +04041 Really big file of text. +04042 Really big file of text. +04043 Really big file of text. +04044 Really big file of text. +04045 Really big file of text. +04046 Really big file of text. +04047 Really big file of text. +04048 Really big file of text. +04049 Really big file of text. +04050 Really big file of text. +04051 Really big file of text. +04052 Really big file of text. +04053 Really big file of text. +04054 Really big file of text. +04055 Really big file of text. +04056 Really big file of text. +04057 Really big file of text. +04058 Really big file of text. +04059 Really big file of text. +04060 Really big file of text. +04061 Really big file of text. +04062 Really big file of text. +04063 Really big file of text. +04064 Really big file of text. +04065 Really big file of text. +04066 Really big file of text. +04067 Really big file of text. +04068 Really big file of text. +04069 Really big file of text. +04070 Really big file of text. +04071 Really big file of text. +04072 Really big file of text. +04073 Really big file of text. +04074 Really big file of text. +04075 Really big file of text. +04076 Really big file of text. +04077 Really big file of text. +04078 Really big file of text. +04079 Really big file of text. +04080 Really big file of text. +04081 Really big file of text. +04082 Really big file of text. +04083 Really big file of text. +04084 Really big file of text. +04085 Really big file of text. +04086 Really big file of text. +04087 Really big file of text. +04088 Really big file of text. +04089 Really big file of text. +04090 Really big file of text. +04091 Really big file of text. +04092 Really big file of text. +04093 Really big file of text. +04094 Really big file of text. +04095 Really big file of text. +04096 Really big file of text. +04097 Really big file of text. +04098 Really big file of text. +04099 Really big file of text. +04100 Really big file of text. +04101 Really big file of text. +04102 Really big file of text. +04103 Really big file of text. +04104 Really big file of text. +04105 Really big file of text. +04106 Really big file of text. +04107 Really big file of text. +04108 Really big file of text. +04109 Really big file of text. +04110 Really big file of text. +04111 Really big file of text. +04112 Really big file of text. +04113 Really big file of text. +04114 Really big file of text. +04115 Really big file of text. +04116 Really big file of text. +04117 Really big file of text. +04118 Really big file of text. +04119 Really big file of text. +04120 Really big file of text. +04121 Really big file of text. +04122 Really big file of text. +04123 Really big file of text. +04124 Really big file of text. +04125 Really big file of text. +04126 Really big file of text. +04127 Really big file of text. +04128 Really big file of text. +04129 Really big file of text. +04130 Really big file of text. +04131 Really big file of text. +04132 Really big file of text. +04133 Really big file of text. +04134 Really big file of text. +04135 Really big file of text. +04136 Really big file of text. +04137 Really big file of text. +04138 Really big file of text. +04139 Really big file of text. +04140 Really big file of text. +04141 Really big file of text. +04142 Really big file of text. +04143 Really big file of text. +04144 Really big file of text. +04145 Really big file of text. +04146 Really big file of text. +04147 Really big file of text. +04148 Really big file of text. +04149 Really big file of text. +04150 Really big file of text. +04151 Really big file of text. +04152 Really big file of text. +04153 Really big file of text. +04154 Really big file of text. +04155 Really big file of text. +04156 Really big file of text. +04157 Really big file of text. +04158 Really big file of text. +04159 Really big file of text. +04160 Really big file of text. +04161 Really big file of text. +04162 Really big file of text. +04163 Really big file of text. +04164 Really big file of text. +04165 Really big file of text. +04166 Really big file of text. +04167 Really big file of text. +04168 Really big file of text. +04169 Really big file of text. +04170 Really big file of text. +04171 Really big file of text. +04172 Really big file of text. +04173 Really big file of text. +04174 Really big file of text. +04175 Really big file of text. +04176 Really big file of text. +04177 Really big file of text. +04178 Really big file of text. +04179 Really big file of text. +04180 Really big file of text. +04181 Really big file of text. +04182 Really big file of text. +04183 Really big file of text. +04184 Really big file of text. +04185 Really big file of text. +04186 Really big file of text. +04187 Really big file of text. +04188 Really big file of text. +04189 Really big file of text. +04190 Really big file of text. +04191 Really big file of text. +04192 Really big file of text. +04193 Really big file of text. +04194 Really big file of text. +04195 Really big file of text. +04196 Really big file of text. +04197 Really big file of text. +04198 Really big file of text. +04199 Really big file of text. +04200 Really big file of text. +04201 Really big file of text. +04202 Really big file of text. +04203 Really big file of text. +04204 Really big file of text. +04205 Really big file of text. +04206 Really big file of text. +04207 Really big file of text. +04208 Really big file of text. +04209 Really big file of text. +04210 Really big file of text. +04211 Really big file of text. +04212 Really big file of text. +04213 Really big file of text. +04214 Really big file of text. +04215 Really big file of text. +04216 Really big file of text. +04217 Really big file of text. +04218 Really big file of text. +04219 Really big file of text. +04220 Really big file of text. +04221 Really big file of text. +04222 Really big file of text. +04223 Really big file of text. +04224 Really big file of text. +04225 Really big file of text. +04226 Really big file of text. +04227 Really big file of text. +04228 Really big file of text. +04229 Really big file of text. +04230 Really big file of text. +04231 Really big file of text. +04232 Really big file of text. +04233 Really big file of text. +04234 Really big file of text. +04235 Really big file of text. +04236 Really big file of text. +04237 Really big file of text. +04238 Really big file of text. +04239 Really big file of text. +04240 Really big file of text. +04241 Really big file of text. +04242 Really big file of text. +04243 Really big file of text. +04244 Really big file of text. +04245 Really big file of text. +04246 Really big file of text. +04247 Really big file of text. +04248 Really big file of text. +04249 Really big file of text. +04250 Really big file of text. +04251 Really big file of text. +04252 Really big file of text. +04253 Really big file of text. +04254 Really big file of text. +04255 Really big file of text. +04256 Really big file of text. +04257 Really big file of text. +04258 Really big file of text. +04259 Really big file of text. +04260 Really big file of text. +04261 Really big file of text. +04262 Really big file of text. +04263 Really big file of text. +04264 Really big file of text. +04265 Really big file of text. +04266 Really big file of text. +04267 Really big file of text. +04268 Really big file of text. +04269 Really big file of text. +04270 Really big file of text. +04271 Really big file of text. +04272 Really big file of text. +04273 Really big file of text. +04274 Really big file of text. +04275 Really big file of text. +04276 Really big file of text. +04277 Really big file of text. +04278 Really big file of text. +04279 Really big file of text. +04280 Really big file of text. +04281 Really big file of text. +04282 Really big file of text. +04283 Really big file of text. +04284 Really big file of text. +04285 Really big file of text. +04286 Really big file of text. +04287 Really big file of text. +04288 Really big file of text. +04289 Really big file of text. +04290 Really big file of text. +04291 Really big file of text. +04292 Really big file of text. +04293 Really big file of text. +04294 Really big file of text. +04295 Really big file of text. +04296 Really big file of text. +04297 Really big file of text. +04298 Really big file of text. +04299 Really big file of text. +04300 Really big file of text. +04301 Really big file of text. +04302 Really big file of text. +04303 Really big file of text. +04304 Really big file of text. +04305 Really big file of text. +04306 Really big file of text. +04307 Really big file of text. +04308 Really big file of text. +04309 Really big file of text. +04310 Really big file of text. +04311 Really big file of text. +04312 Really big file of text. +04313 Really big file of text. +04314 Really big file of text. +04315 Really big file of text. +04316 Really big file of text. +04317 Really big file of text. +04318 Really big file of text. +04319 Really big file of text. +04320 Really big file of text. +04321 Really big file of text. +04322 Really big file of text. +04323 Really big file of text. +04324 Really big file of text. +04325 Really big file of text. +04326 Really big file of text. +04327 Really big file of text. +04328 Really big file of text. +04329 Really big file of text. +04330 Really big file of text. +04331 Really big file of text. +04332 Really big file of text. +04333 Really big file of text. +04334 Really big file of text. +04335 Really big file of text. +04336 Really big file of text. +04337 Really big file of text. +04338 Really big file of text. +04339 Really big file of text. +04340 Really big file of text. +04341 Really big file of text. +04342 Really big file of text. +04343 Really big file of text. +04344 Really big file of text. +04345 Really big file of text. +04346 Really big file of text. +04347 Really big file of text. +04348 Really big file of text. +04349 Really big file of text. +04350 Really big file of text. +04351 Really big file of text. +04352 Really big file of text. +04353 Really big file of text. +04354 Really big file of text. +04355 Really big file of text. +04356 Really big file of text. +04357 Really big file of text. +04358 Really big file of text. +04359 Really big file of text. +04360 Really big file of text. +04361 Really big file of text. +04362 Really big file of text. +04363 Really big file of text. +04364 Really big file of text. +04365 Really big file of text. +04366 Really big file of text. +04367 Really big file of text. +04368 Really big file of text. +04369 Really big file of text. +04370 Really big file of text. +04371 Really big file of text. +04372 Really big file of text. +04373 Really big file of text. +04374 Really big file of text. +04375 Really big file of text. +04376 Really big file of text. +04377 Really big file of text. +04378 Really big file of text. +04379 Really big file of text. +04380 Really big file of text. +04381 Really big file of text. +04382 Really big file of text. +04383 Really big file of text. +04384 Really big file of text. +04385 Really big file of text. +04386 Really big file of text. +04387 Really big file of text. +04388 Really big file of text. +04389 Really big file of text. +04390 Really big file of text. +04391 Really big file of text. +04392 Really big file of text. +04393 Really big file of text. +04394 Really big file of text. +04395 Really big file of text. +04396 Really big file of text. +04397 Really big file of text. +04398 Really big file of text. +04399 Really big file of text. +04400 Really big file of text. +04401 Really big file of text. +04402 Really big file of text. +04403 Really big file of text. +04404 Really big file of text. +04405 Really big file of text. +04406 Really big file of text. +04407 Really big file of text. +04408 Really big file of text. +04409 Really big file of text. +04410 Really big file of text. +04411 Really big file of text. +04412 Really big file of text. +04413 Really big file of text. +04414 Really big file of text. +04415 Really big file of text. +04416 Really big file of text. +04417 Really big file of text. +04418 Really big file of text. +04419 Really big file of text. +04420 Really big file of text. +04421 Really big file of text. +04422 Really big file of text. +04423 Really big file of text. +04424 Really big file of text. +04425 Really big file of text. +04426 Really big file of text. +04427 Really big file of text. +04428 Really big file of text. +04429 Really big file of text. +04430 Really big file of text. +04431 Really big file of text. +04432 Really big file of text. +04433 Really big file of text. +04434 Really big file of text. +04435 Really big file of text. +04436 Really big file of text. +04437 Really big file of text. +04438 Really big file of text. +04439 Really big file of text. +04440 Really big file of text. +04441 Really big file of text. +04442 Really big file of text. +04443 Really big file of text. +04444 Really big file of text. +04445 Really big file of text. +04446 Really big file of text. +04447 Really big file of text. +04448 Really big file of text. +04449 Really big file of text. +04450 Really big file of text. +04451 Really big file of text. +04452 Really big file of text. +04453 Really big file of text. +04454 Really big file of text. +04455 Really big file of text. +04456 Really big file of text. +04457 Really big file of text. +04458 Really big file of text. +04459 Really big file of text. +04460 Really big file of text. +04461 Really big file of text. +04462 Really big file of text. +04463 Really big file of text. +04464 Really big file of text. +04465 Really big file of text. +04466 Really big file of text. +04467 Really big file of text. +04468 Really big file of text. +04469 Really big file of text. +04470 Really big file of text. +04471 Really big file of text. +04472 Really big file of text. +04473 Really big file of text. +04474 Really big file of text. +04475 Really big file of text. +04476 Really big file of text. +04477 Really big file of text. +04478 Really big file of text. +04479 Really big file of text. +04480 Really big file of text. +04481 Really big file of text. +04482 Really big file of text. +04483 Really big file of text. +04484 Really big file of text. +04485 Really big file of text. +04486 Really big file of text. +04487 Really big file of text. +04488 Really big file of text. +04489 Really big file of text. +04490 Really big file of text. +04491 Really big file of text. +04492 Really big file of text. +04493 Really big file of text. +04494 Really big file of text. +04495 Really big file of text. +04496 Really big file of text. +04497 Really big file of text. +04498 Really big file of text. +04499 Really big file of text. +04500 Really big file of text. +04501 Really big file of text. +04502 Really big file of text. +04503 Really big file of text. +04504 Really big file of text. +04505 Really big file of text. +04506 Really big file of text. +04507 Really big file of text. +04508 Really big file of text. +04509 Really big file of text. +04510 Really big file of text. +04511 Really big file of text. +04512 Really big file of text. +04513 Really big file of text. +04514 Really big file of text. +04515 Really big file of text. +04516 Really big file of text. +04517 Really big file of text. +04518 Really big file of text. +04519 Really big file of text. +04520 Really big file of text. +04521 Really big file of text. +04522 Really big file of text. +04523 Really big file of text. +04524 Really big file of text. +04525 Really big file of text. +04526 Really big file of text. +04527 Really big file of text. +04528 Really big file of text. +04529 Really big file of text. +04530 Really big file of text. +04531 Really big file of text. +04532 Really big file of text. +04533 Really big file of text. +04534 Really big file of text. +04535 Really big file of text. +04536 Really big file of text. +04537 Really big file of text. +04538 Really big file of text. +04539 Really big file of text. +04540 Really big file of text. +04541 Really big file of text. +04542 Really big file of text. +04543 Really big file of text. +04544 Really big file of text. +04545 Really big file of text. +04546 Really big file of text. +04547 Really big file of text. +04548 Really big file of text. +04549 Really big file of text. +04550 Really big file of text. +04551 Really big file of text. +04552 Really big file of text. +04553 Really big file of text. +04554 Really big file of text. +04555 Really big file of text. +04556 Really big file of text. +04557 Really big file of text. +04558 Really big file of text. +04559 Really big file of text. +04560 Really big file of text. +04561 Really big file of text. +04562 Really big file of text. +04563 Really big file of text. +04564 Really big file of text. +04565 Really big file of text. +04566 Really big file of text. +04567 Really big file of text. +04568 Really big file of text. +04569 Really big file of text. +04570 Really big file of text. +04571 Really big file of text. +04572 Really big file of text. +04573 Really big file of text. +04574 Really big file of text. +04575 Really big file of text. +04576 Really big file of text. +04577 Really big file of text. +04578 Really big file of text. +04579 Really big file of text. +04580 Really big file of text. +04581 Really big file of text. +04582 Really big file of text. +04583 Really big file of text. +04584 Really big file of text. +04585 Really big file of text. +04586 Really big file of text. +04587 Really big file of text. +04588 Really big file of text. +04589 Really big file of text. +04590 Really big file of text. +04591 Really big file of text. +04592 Really big file of text. +04593 Really big file of text. +04594 Really big file of text. +04595 Really big file of text. +04596 Really big file of text. +04597 Really big file of text. +04598 Really big file of text. +04599 Really big file of text. +04600 Really big file of text. +04601 Really big file of text. +04602 Really big file of text. +04603 Really big file of text. +04604 Really big file of text. +04605 Really big file of text. +04606 Really big file of text. +04607 Really big file of text. +04608 Really big file of text. +04609 Really big file of text. +04610 Really big file of text. +04611 Really big file of text. +04612 Really big file of text. +04613 Really big file of text. +04614 Really big file of text. +04615 Really big file of text. +04616 Really big file of text. +04617 Really big file of text. +04618 Really big file of text. +04619 Really big file of text. +04620 Really big file of text. +04621 Really big file of text. +04622 Really big file of text. +04623 Really big file of text. +04624 Really big file of text. +04625 Really big file of text. +04626 Really big file of text. +04627 Really big file of text. +04628 Really big file of text. +04629 Really big file of text. +04630 Really big file of text. +04631 Really big file of text. +04632 Really big file of text. +04633 Really big file of text. +04634 Really big file of text. +04635 Really big file of text. +04636 Really big file of text. +04637 Really big file of text. +04638 Really big file of text. +04639 Really big file of text. +04640 Really big file of text. +04641 Really big file of text. +04642 Really big file of text. +04643 Really big file of text. +04644 Really big file of text. +04645 Really big file of text. +04646 Really big file of text. +04647 Really big file of text. +04648 Really big file of text. +04649 Really big file of text. +04650 Really big file of text. +04651 Really big file of text. +04652 Really big file of text. +04653 Really big file of text. +04654 Really big file of text. +04655 Really big file of text. +04656 Really big file of text. +04657 Really big file of text. +04658 Really big file of text. +04659 Really big file of text. +04660 Really big file of text. +04661 Really big file of text. +04662 Really big file of text. +04663 Really big file of text. +04664 Really big file of text. +04665 Really big file of text. +04666 Really big file of text. +04667 Really big file of text. +04668 Really big file of text. +04669 Really big file of text. +04670 Really big file of text. +04671 Really big file of text. +04672 Really big file of text. +04673 Really big file of text. +04674 Really big file of text. +04675 Really big file of text. +04676 Really big file of text. +04677 Really big file of text. +04678 Really big file of text. +04679 Really big file of text. +04680 Really big file of text. +04681 Really big file of text. +04682 Really big file of text. +04683 Really big file of text. +04684 Really big file of text. +04685 Really big file of text. +04686 Really big file of text. +04687 Really big file of text. +04688 Really big file of text. +04689 Really big file of text. +04690 Really big file of text. +04691 Really big file of text. +04692 Really big file of text. +04693 Really big file of text. +04694 Really big file of text. +04695 Really big file of text. +04696 Really big file of text. +04697 Really big file of text. +04698 Really big file of text. +04699 Really big file of text. +04700 Really big file of text. +04701 Really big file of text. +04702 Really big file of text. +04703 Really big file of text. +04704 Really big file of text. +04705 Really big file of text. +04706 Really big file of text. +04707 Really big file of text. +04708 Really big file of text. +04709 Really big file of text. +04710 Really big file of text. +04711 Really big file of text. +04712 Really big file of text. +04713 Really big file of text. +04714 Really big file of text. +04715 Really big file of text. +04716 Really big file of text. +04717 Really big file of text. +04718 Really big file of text. +04719 Really big file of text. +04720 Really big file of text. +04721 Really big file of text. +04722 Really big file of text. +04723 Really big file of text. +04724 Really big file of text. +04725 Really big file of text. +04726 Really big file of text. +04727 Really big file of text. +04728 Really big file of text. +04729 Really big file of text. +04730 Really big file of text. +04731 Really big file of text. +04732 Really big file of text. +04733 Really big file of text. +04734 Really big file of text. +04735 Really big file of text. +04736 Really big file of text. +04737 Really big file of text. +04738 Really big file of text. +04739 Really big file of text. +04740 Really big file of text. +04741 Really big file of text. +04742 Really big file of text. +04743 Really big file of text. +04744 Really big file of text. +04745 Really big file of text. +04746 Really big file of text. +04747 Really big file of text. +04748 Really big file of text. +04749 Really big file of text. +04750 Really big file of text. +04751 Really big file of text. +04752 Really big file of text. +04753 Really big file of text. +04754 Really big file of text. +04755 Really big file of text. +04756 Really big file of text. +04757 Really big file of text. +04758 Really big file of text. +04759 Really big file of text. +04760 Really big file of text. +04761 Really big file of text. +04762 Really big file of text. +04763 Really big file of text. +04764 Really big file of text. +04765 Really big file of text. +04766 Really big file of text. +04767 Really big file of text. +04768 Really big file of text. +04769 Really big file of text. +04770 Really big file of text. +04771 Really big file of text. +04772 Really big file of text. +04773 Really big file of text. +04774 Really big file of text. +04775 Really big file of text. +04776 Really big file of text. +04777 Really big file of text. +04778 Really big file of text. +04779 Really big file of text. +04780 Really big file of text. +04781 Really big file of text. +04782 Really big file of text. +04783 Really big file of text. +04784 Really big file of text. +04785 Really big file of text. +04786 Really big file of text. +04787 Really big file of text. +04788 Really big file of text. +04789 Really big file of text. +04790 Really big file of text. +04791 Really big file of text. +04792 Really big file of text. +04793 Really big file of text. +04794 Really big file of text. +04795 Really big file of text. +04796 Really big file of text. +04797 Really big file of text. +04798 Really big file of text. +04799 Really big file of text. +04800 Really big file of text. +04801 Really big file of text. +04802 Really big file of text. +04803 Really big file of text. +04804 Really big file of text. +04805 Really big file of text. +04806 Really big file of text. +04807 Really big file of text. +04808 Really big file of text. +04809 Really big file of text. +04810 Really big file of text. +04811 Really big file of text. +04812 Really big file of text. +04813 Really big file of text. +04814 Really big file of text. +04815 Really big file of text. +04816 Really big file of text. +04817 Really big file of text. +04818 Really big file of text. +04819 Really big file of text. +04820 Really big file of text. +04821 Really big file of text. +04822 Really big file of text. +04823 Really big file of text. +04824 Really big file of text. +04825 Really big file of text. +04826 Really big file of text. +04827 Really big file of text. +04828 Really big file of text. +04829 Really big file of text. +04830 Really big file of text. +04831 Really big file of text. +04832 Really big file of text. +04833 Really big file of text. +04834 Really big file of text. +04835 Really big file of text. +04836 Really big file of text. +04837 Really big file of text. +04838 Really big file of text. +04839 Really big file of text. +04840 Really big file of text. +04841 Really big file of text. +04842 Really big file of text. +04843 Really big file of text. +04844 Really big file of text. +04845 Really big file of text. +04846 Really big file of text. +04847 Really big file of text. +04848 Really big file of text. +04849 Really big file of text. +04850 Really big file of text. +04851 Really big file of text. +04852 Really big file of text. +04853 Really big file of text. +04854 Really big file of text. +04855 Really big file of text. +04856 Really big file of text. +04857 Really big file of text. +04858 Really big file of text. +04859 Really big file of text. +04860 Really big file of text. +04861 Really big file of text. +04862 Really big file of text. +04863 Really big file of text. +04864 Really big file of text. +04865 Really big file of text. +04866 Really big file of text. +04867 Really big file of text. +04868 Really big file of text. +04869 Really big file of text. +04870 Really big file of text. +04871 Really big file of text. +04872 Really big file of text. +04873 Really big file of text. +04874 Really big file of text. +04875 Really big file of text. +04876 Really big file of text. +04877 Really big file of text. +04878 Really big file of text. +04879 Really big file of text. +04880 Really big file of text. +04881 Really big file of text. +04882 Really big file of text. +04883 Really big file of text. +04884 Really big file of text. +04885 Really big file of text. +04886 Really big file of text. +04887 Really big file of text. +04888 Really big file of text. +04889 Really big file of text. +04890 Really big file of text. +04891 Really big file of text. +04892 Really big file of text. +04893 Really big file of text. +04894 Really big file of text. +04895 Really big file of text. +04896 Really big file of text. +04897 Really big file of text. +04898 Really big file of text. +04899 Really big file of text. +04900 Really big file of text. +04901 Really big file of text. +04902 Really big file of text. +04903 Really big file of text. +04904 Really big file of text. +04905 Really big file of text. +04906 Really big file of text. +04907 Really big file of text. +04908 Really big file of text. +04909 Really big file of text. +04910 Really big file of text. +04911 Really big file of text. +04912 Really big file of text. +04913 Really big file of text. +04914 Really big file of text. +04915 Really big file of text. +04916 Really big file of text. +04917 Really big file of text. +04918 Really big file of text. +04919 Really big file of text. +04920 Really big file of text. +04921 Really big file of text. +04922 Really big file of text. +04923 Really big file of text. +04924 Really big file of text. +04925 Really big file of text. +04926 Really big file of text. +04927 Really big file of text. +04928 Really big file of text. +04929 Really big file of text. +04930 Really big file of text. +04931 Really big file of text. +04932 Really big file of text. +04933 Really big file of text. +04934 Really big file of text. +04935 Really big file of text. +04936 Really big file of text. +04937 Really big file of text. +04938 Really big file of text. +04939 Really big file of text. +04940 Really big file of text. +04941 Really big file of text. +04942 Really big file of text. +04943 Really big file of text. +04944 Really big file of text. +04945 Really big file of text. +04946 Really big file of text. +04947 Really big file of text. +04948 Really big file of text. +04949 Really big file of text. +04950 Really big file of text. +04951 Really big file of text. +04952 Really big file of text. +04953 Really big file of text. +04954 Really big file of text. +04955 Really big file of text. +04956 Really big file of text. +04957 Really big file of text. +04958 Really big file of text. +04959 Really big file of text. +04960 Really big file of text. +04961 Really big file of text. +04962 Really big file of text. +04963 Really big file of text. +04964 Really big file of text. +04965 Really big file of text. +04966 Really big file of text. +04967 Really big file of text. +04968 Really big file of text. +04969 Really big file of text. +04970 Really big file of text. +04971 Really big file of text. +04972 Really big file of text. +04973 Really big file of text. +04974 Really big file of text. +04975 Really big file of text. +04976 Really big file of text. +04977 Really big file of text. +04978 Really big file of text. +04979 Really big file of text. +04980 Really big file of text. +04981 Really big file of text. +04982 Really big file of text. +04983 Really big file of text. +04984 Really big file of text. +04985 Really big file of text. +04986 Really big file of text. +04987 Really big file of text. +04988 Really big file of text. +04989 Really big file of text. +04990 Really big file of text. +04991 Really big file of text. +04992 Really big file of text. +04993 Really big file of text. +04994 Really big file of text. +04995 Really big file of text. +04996 Really big file of text. +04997 Really big file of text. +04998 Really big file of text. +04999 Really big file of text. +05000 Really big file of text. +05001 Really big file of text. +05002 Really big file of text. +05003 Really big file of text. +05004 Really big file of text. +05005 Really big file of text. +05006 Really big file of text. +05007 Really big file of text. +05008 Really big file of text. +05009 Really big file of text. +05010 Really big file of text. +05011 Really big file of text. +05012 Really big file of text. +05013 Really big file of text. +05014 Really big file of text. +05015 Really big file of text. +05016 Really big file of text. +05017 Really big file of text. +05018 Really big file of text. +05019 Really big file of text. +05020 Really big file of text. +05021 Really big file of text. +05022 Really big file of text. +05023 Really big file of text. +05024 Really big file of text. +05025 Really big file of text. +05026 Really big file of text. +05027 Really big file of text. +05028 Really big file of text. +05029 Really big file of text. +05030 Really big file of text. +05031 Really big file of text. +05032 Really big file of text. +05033 Really big file of text. +05034 Really big file of text. +05035 Really big file of text. +05036 Really big file of text. +05037 Really big file of text. +05038 Really big file of text. +05039 Really big file of text. +05040 Really big file of text. +05041 Really big file of text. +05042 Really big file of text. +05043 Really big file of text. +05044 Really big file of text. +05045 Really big file of text. +05046 Really big file of text. +05047 Really big file of text. +05048 Really big file of text. +05049 Really big file of text. +05050 Really big file of text. +05051 Really big file of text. +05052 Really big file of text. +05053 Really big file of text. +05054 Really big file of text. +05055 Really big file of text. +05056 Really big file of text. +05057 Really big file of text. +05058 Really big file of text. +05059 Really big file of text. +05060 Really big file of text. +05061 Really big file of text. +05062 Really big file of text. +05063 Really big file of text. +05064 Really big file of text. +05065 Really big file of text. +05066 Really big file of text. +05067 Really big file of text. +05068 Really big file of text. +05069 Really big file of text. +05070 Really big file of text. +05071 Really big file of text. +05072 Really big file of text. +05073 Really big file of text. +05074 Really big file of text. +05075 Really big file of text. +05076 Really big file of text. +05077 Really big file of text. +05078 Really big file of text. +05079 Really big file of text. +05080 Really big file of text. +05081 Really big file of text. +05082 Really big file of text. +05083 Really big file of text. +05084 Really big file of text. +05085 Really big file of text. +05086 Really big file of text. +05087 Really big file of text. +05088 Really big file of text. +05089 Really big file of text. +05090 Really big file of text. +05091 Really big file of text. +05092 Really big file of text. +05093 Really big file of text. +05094 Really big file of text. +05095 Really big file of text. +05096 Really big file of text. +05097 Really big file of text. +05098 Really big file of text. +05099 Really big file of text. +05100 Really big file of text. +05101 Really big file of text. +05102 Really big file of text. +05103 Really big file of text. +05104 Really big file of text. +05105 Really big file of text. +05106 Really big file of text. +05107 Really big file of text. +05108 Really big file of text. +05109 Really big file of text. +05110 Really big file of text. +05111 Really big file of text. +05112 Really big file of text. +05113 Really big file of text. +05114 Really big file of text. +05115 Really big file of text. +05116 Really big file of text. +05117 Really big file of text. +05118 Really big file of text. +05119 Really big file of text. +05120 Really big file of text. +05121 Really big file of text. +05122 Really big file of text. +05123 Really big file of text. +05124 Really big file of text. +05125 Really big file of text. +05126 Really big file of text. +05127 Really big file of text. +05128 Really big file of text. +05129 Really big file of text. +05130 Really big file of text. +05131 Really big file of text. +05132 Really big file of text. +05133 Really big file of text. +05134 Really big file of text. +05135 Really big file of text. +05136 Really big file of text. +05137 Really big file of text. +05138 Really big file of text. +05139 Really big file of text. +05140 Really big file of text. +05141 Really big file of text. +05142 Really big file of text. +05143 Really big file of text. +05144 Really big file of text. +05145 Really big file of text. +05146 Really big file of text. +05147 Really big file of text. +05148 Really big file of text. +05149 Really big file of text. +05150 Really big file of text. +05151 Really big file of text. +05152 Really big file of text. +05153 Really big file of text. +05154 Really big file of text. +05155 Really big file of text. +05156 Really big file of text. +05157 Really big file of text. +05158 Really big file of text. +05159 Really big file of text. +05160 Really big file of text. +05161 Really big file of text. +05162 Really big file of text. +05163 Really big file of text. +05164 Really big file of text. +05165 Really big file of text. +05166 Really big file of text. +05167 Really big file of text. +05168 Really big file of text. +05169 Really big file of text. +05170 Really big file of text. +05171 Really big file of text. +05172 Really big file of text. +05173 Really big file of text. +05174 Really big file of text. +05175 Really big file of text. +05176 Really big file of text. +05177 Really big file of text. +05178 Really big file of text. +05179 Really big file of text. +05180 Really big file of text. +05181 Really big file of text. +05182 Really big file of text. +05183 Really big file of text. +05184 Really big file of text. +05185 Really big file of text. +05186 Really big file of text. +05187 Really big file of text. +05188 Really big file of text. +05189 Really big file of text. +05190 Really big file of text. +05191 Really big file of text. +05192 Really big file of text. +05193 Really big file of text. +05194 Really big file of text. +05195 Really big file of text. +05196 Really big file of text. +05197 Really big file of text. +05198 Really big file of text. +05199 Really big file of text. +05200 Really big file of text. +05201 Really big file of text. +05202 Really big file of text. +05203 Really big file of text. +05204 Really big file of text. +05205 Really big file of text. +05206 Really big file of text. +05207 Really big file of text. +05208 Really big file of text. +05209 Really big file of text. +05210 Really big file of text. +05211 Really big file of text. +05212 Really big file of text. +05213 Really big file of text. +05214 Really big file of text. +05215 Really big file of text. +05216 Really big file of text. +05217 Really big file of text. +05218 Really big file of text. +05219 Really big file of text. +05220 Really big file of text. +05221 Really big file of text. +05222 Really big file of text. +05223 Really big file of text. +05224 Really big file of text. +05225 Really big file of text. +05226 Really big file of text. +05227 Really big file of text. +05228 Really big file of text. +05229 Really big file of text. +05230 Really big file of text. +05231 Really big file of text. +05232 Really big file of text. +05233 Really big file of text. +05234 Really big file of text. +05235 Really big file of text. +05236 Really big file of text. +05237 Really big file of text. +05238 Really big file of text. +05239 Really big file of text. +05240 Really big file of text. +05241 Really big file of text. +05242 Really big file of text. +05243 Really big file of text. +05244 Really big file of text. +05245 Really big file of text. +05246 Really big file of text. +05247 Really big file of text. +05248 Really big file of text. +05249 Really big file of text. +05250 Really big file of text. +05251 Really big file of text. +05252 Really big file of text. +05253 Really big file of text. +05254 Really big file of text. +05255 Really big file of text. +05256 Really big file of text. +05257 Really big file of text. +05258 Really big file of text. +05259 Really big file of text. +05260 Really big file of text. +05261 Really big file of text. +05262 Really big file of text. +05263 Really big file of text. +05264 Really big file of text. +05265 Really big file of text. +05266 Really big file of text. +05267 Really big file of text. +05268 Really big file of text. +05269 Really big file of text. +05270 Really big file of text. +05271 Really big file of text. +05272 Really big file of text. +05273 Really big file of text. +05274 Really big file of text. +05275 Really big file of text. +05276 Really big file of text. +05277 Really big file of text. +05278 Really big file of text. +05279 Really big file of text. +05280 Really big file of text. +05281 Really big file of text. +05282 Really big file of text. +05283 Really big file of text. +05284 Really big file of text. +05285 Really big file of text. +05286 Really big file of text. +05287 Really big file of text. +05288 Really big file of text. +05289 Really big file of text. +05290 Really big file of text. +05291 Really big file of text. +05292 Really big file of text. +05293 Really big file of text. +05294 Really big file of text. +05295 Really big file of text. +05296 Really big file of text. +05297 Really big file of text. +05298 Really big file of text. +05299 Really big file of text. +05300 Really big file of text. +05301 Really big file of text. +05302 Really big file of text. +05303 Really big file of text. +05304 Really big file of text. +05305 Really big file of text. +05306 Really big file of text. +05307 Really big file of text. +05308 Really big file of text. +05309 Really big file of text. +05310 Really big file of text. +05311 Really big file of text. +05312 Really big file of text. +05313 Really big file of text. +05314 Really big file of text. +05315 Really big file of text. +05316 Really big file of text. +05317 Really big file of text. +05318 Really big file of text. +05319 Really big file of text. +05320 Really big file of text. +05321 Really big file of text. +05322 Really big file of text. +05323 Really big file of text. +05324 Really big file of text. +05325 Really big file of text. +05326 Really big file of text. +05327 Really big file of text. +05328 Really big file of text. +05329 Really big file of text. +05330 Really big file of text. +05331 Really big file of text. +05332 Really big file of text. +05333 Really big file of text. +05334 Really big file of text. +05335 Really big file of text. +05336 Really big file of text. +05337 Really big file of text. +05338 Really big file of text. +05339 Really big file of text. +05340 Really big file of text. +05341 Really big file of text. +05342 Really big file of text. +05343 Really big file of text. +05344 Really big file of text. +05345 Really big file of text. +05346 Really big file of text. +05347 Really big file of text. +05348 Really big file of text. +05349 Really big file of text. +05350 Really big file of text. +05351 Really big file of text. +05352 Really big file of text. +05353 Really big file of text. +05354 Really big file of text. +05355 Really big file of text. +05356 Really big file of text. +05357 Really big file of text. +05358 Really big file of text. +05359 Really big file of text. +05360 Really big file of text. +05361 Really big file of text. +05362 Really big file of text. +05363 Really big file of text. +05364 Really big file of text. +05365 Really big file of text. +05366 Really big file of text. +05367 Really big file of text. +05368 Really big file of text. +05369 Really big file of text. +05370 Really big file of text. +05371 Really big file of text. +05372 Really big file of text. +05373 Really big file of text. +05374 Really big file of text. +05375 Really big file of text. +05376 Really big file of text. +05377 Really big file of text. +05378 Really big file of text. +05379 Really big file of text. +05380 Really big file of text. +05381 Really big file of text. +05382 Really big file of text. +05383 Really big file of text. +05384 Really big file of text. +05385 Really big file of text. +05386 Really big file of text. +05387 Really big file of text. +05388 Really big file of text. +05389 Really big file of text. +05390 Really big file of text. +05391 Really big file of text. +05392 Really big file of text. +05393 Really big file of text. +05394 Really big file of text. +05395 Really big file of text. +05396 Really big file of text. +05397 Really big file of text. +05398 Really big file of text. +05399 Really big file of text. +05400 Really big file of text. +05401 Really big file of text. +05402 Really big file of text. +05403 Really big file of text. +05404 Really big file of text. +05405 Really big file of text. +05406 Really big file of text. +05407 Really big file of text. +05408 Really big file of text. +05409 Really big file of text. +05410 Really big file of text. +05411 Really big file of text. +05412 Really big file of text. +05413 Really big file of text. +05414 Really big file of text. +05415 Really big file of text. +05416 Really big file of text. +05417 Really big file of text. +05418 Really big file of text. +05419 Really big file of text. +05420 Really big file of text. +05421 Really big file of text. +05422 Really big file of text. +05423 Really big file of text. +05424 Really big file of text. +05425 Really big file of text. +05426 Really big file of text. +05427 Really big file of text. +05428 Really big file of text. +05429 Really big file of text. +05430 Really big file of text. +05431 Really big file of text. +05432 Really big file of text. +05433 Really big file of text. +05434 Really big file of text. +05435 Really big file of text. +05436 Really big file of text. +05437 Really big file of text. +05438 Really big file of text. +05439 Really big file of text. +05440 Really big file of text. +05441 Really big file of text. +05442 Really big file of text. +05443 Really big file of text. +05444 Really big file of text. +05445 Really big file of text. +05446 Really big file of text. +05447 Really big file of text. +05448 Really big file of text. +05449 Really big file of text. +05450 Really big file of text. +05451 Really big file of text. +05452 Really big file of text. +05453 Really big file of text. +05454 Really big file of text. +05455 Really big file of text. +05456 Really big file of text. +05457 Really big file of text. +05458 Really big file of text. +05459 Really big file of text. +05460 Really big file of text. +05461 Really big file of text. +05462 Really big file of text. +05463 Really big file of text. +05464 Really big file of text. +05465 Really big file of text. +05466 Really big file of text. +05467 Really big file of text. +05468 Really big file of text. +05469 Really big file of text. +05470 Really big file of text. +05471 Really big file of text. +05472 Really big file of text. +05473 Really big file of text. +05474 Really big file of text. +05475 Really big file of text. +05476 Really big file of text. +05477 Really big file of text. +05478 Really big file of text. +05479 Really big file of text. +05480 Really big file of text. +05481 Really big file of text. +05482 Really big file of text. +05483 Really big file of text. +05484 Really big file of text. +05485 Really big file of text. +05486 Really big file of text. +05487 Really big file of text. +05488 Really big file of text. +05489 Really big file of text. +05490 Really big file of text. +05491 Really big file of text. +05492 Really big file of text. +05493 Really big file of text. +05494 Really big file of text. +05495 Really big file of text. +05496 Really big file of text. +05497 Really big file of text. +05498 Really big file of text. +05499 Really big file of text. +05500 Really big file of text. +05501 Really big file of text. +05502 Really big file of text. +05503 Really big file of text. +05504 Really big file of text. +05505 Really big file of text. +05506 Really big file of text. +05507 Really big file of text. +05508 Really big file of text. +05509 Really big file of text. +05510 Really big file of text. +05511 Really big file of text. +05512 Really big file of text. +05513 Really big file of text. +05514 Really big file of text. +05515 Really big file of text. +05516 Really big file of text. +05517 Really big file of text. +05518 Really big file of text. +05519 Really big file of text. +05520 Really big file of text. +05521 Really big file of text. +05522 Really big file of text. +05523 Really big file of text. +05524 Really big file of text. +05525 Really big file of text. +05526 Really big file of text. +05527 Really big file of text. +05528 Really big file of text. +05529 Really big file of text. +05530 Really big file of text. +05531 Really big file of text. +05532 Really big file of text. +05533 Really big file of text. +05534 Really big file of text. +05535 Really big file of text. +05536 Really big file of text. +05537 Really big file of text. +05538 Really big file of text. +05539 Really big file of text. +05540 Really big file of text. +05541 Really big file of text. +05542 Really big file of text. +05543 Really big file of text. +05544 Really big file of text. +05545 Really big file of text. +05546 Really big file of text. +05547 Really big file of text. +05548 Really big file of text. +05549 Really big file of text. +05550 Really big file of text. +05551 Really big file of text. +05552 Really big file of text. +05553 Really big file of text. +05554 Really big file of text. +05555 Really big file of text. +05556 Really big file of text. +05557 Really big file of text. +05558 Really big file of text. +05559 Really big file of text. +05560 Really big file of text. +05561 Really big file of text. +05562 Really big file of text. +05563 Really big file of text. +05564 Really big file of text. +05565 Really big file of text. +05566 Really big file of text. +05567 Really big file of text. +05568 Really big file of text. +05569 Really big file of text. +05570 Really big file of text. +05571 Really big file of text. +05572 Really big file of text. +05573 Really big file of text. +05574 Really big file of text. +05575 Really big file of text. +05576 Really big file of text. +05577 Really big file of text. +05578 Really big file of text. +05579 Really big file of text. +05580 Really big file of text. +05581 Really big file of text. +05582 Really big file of text. +05583 Really big file of text. +05584 Really big file of text. +05585 Really big file of text. +05586 Really big file of text. +05587 Really big file of text. +05588 Really big file of text. +05589 Really big file of text. +05590 Really big file of text. +05591 Really big file of text. +05592 Really big file of text. +05593 Really big file of text. +05594 Really big file of text. +05595 Really big file of text. +05596 Really big file of text. +05597 Really big file of text. +05598 Really big file of text. +05599 Really big file of text. +05600 Really big file of text. +05601 Really big file of text. +05602 Really big file of text. +05603 Really big file of text. +05604 Really big file of text. +05605 Really big file of text. +05606 Really big file of text. +05607 Really big file of text. +05608 Really big file of text. +05609 Really big file of text. +05610 Really big file of text. +05611 Really big file of text. +05612 Really big file of text. +05613 Really big file of text. +05614 Really big file of text. +05615 Really big file of text. +05616 Really big file of text. +05617 Really big file of text. +05618 Really big file of text. +05619 Really big file of text. +05620 Really big file of text. +05621 Really big file of text. +05622 Really big file of text. +05623 Really big file of text. +05624 Really big file of text. +05625 Really big file of text. +05626 Really big file of text. +05627 Really big file of text. +05628 Really big file of text. +05629 Really big file of text. +05630 Really big file of text. +05631 Really big file of text. +05632 Really big file of text. +05633 Really big file of text. +05634 Really big file of text. +05635 Really big file of text. +05636 Really big file of text. +05637 Really big file of text. +05638 Really big file of text. +05639 Really big file of text. +05640 Really big file of text. +05641 Really big file of text. +05642 Really big file of text. +05643 Really big file of text. +05644 Really big file of text. +05645 Really big file of text. +05646 Really big file of text. +05647 Really big file of text. +05648 Really big file of text. +05649 Really big file of text. +05650 Really big file of text. +05651 Really big file of text. +05652 Really big file of text. +05653 Really big file of text. +05654 Really big file of text. +05655 Really big file of text. +05656 Really big file of text. +05657 Really big file of text. +05658 Really big file of text. +05659 Really big file of text. +05660 Really big file of text. +05661 Really big file of text. +05662 Really big file of text. +05663 Really big file of text. +05664 Really big file of text. +05665 Really big file of text. +05666 Really big file of text. +05667 Really big file of text. +05668 Really big file of text. +05669 Really big file of text. +05670 Really big file of text. +05671 Really big file of text. +05672 Really big file of text. +05673 Really big file of text. +05674 Really big file of text. +05675 Really big file of text. +05676 Really big file of text. +05677 Really big file of text. +05678 Really big file of text. +05679 Really big file of text. +05680 Really big file of text. +05681 Really big file of text. +05682 Really big file of text. +05683 Really big file of text. +05684 Really big file of text. +05685 Really big file of text. +05686 Really big file of text. +05687 Really big file of text. +05688 Really big file of text. +05689 Really big file of text. +05690 Really big file of text. +05691 Really big file of text. +05692 Really big file of text. +05693 Really big file of text. +05694 Really big file of text. +05695 Really big file of text. +05696 Really big file of text. +05697 Really big file of text. +05698 Really big file of text. +05699 Really big file of text. +05700 Really big file of text. +05701 Really big file of text. +05702 Really big file of text. +05703 Really big file of text. +05704 Really big file of text. +05705 Really big file of text. +05706 Really big file of text. +05707 Really big file of text. +05708 Really big file of text. +05709 Really big file of text. +05710 Really big file of text. +05711 Really big file of text. +05712 Really big file of text. +05713 Really big file of text. +05714 Really big file of text. +05715 Really big file of text. +05716 Really big file of text. +05717 Really big file of text. +05718 Really big file of text. +05719 Really big file of text. +05720 Really big file of text. +05721 Really big file of text. +05722 Really big file of text. +05723 Really big file of text. +05724 Really big file of text. +05725 Really big file of text. +05726 Really big file of text. +05727 Really big file of text. +05728 Really big file of text. +05729 Really big file of text. +05730 Really big file of text. +05731 Really big file of text. +05732 Really big file of text. +05733 Really big file of text. +05734 Really big file of text. +05735 Really big file of text. +05736 Really big file of text. +05737 Really big file of text. +05738 Really big file of text. +05739 Really big file of text. +05740 Really big file of text. +05741 Really big file of text. +05742 Really big file of text. +05743 Really big file of text. +05744 Really big file of text. +05745 Really big file of text. +05746 Really big file of text. +05747 Really big file of text. +05748 Really big file of text. +05749 Really big file of text. +05750 Really big file of text. +05751 Really big file of text. +05752 Really big file of text. +05753 Really big file of text. +05754 Really big file of text. +05755 Really big file of text. +05756 Really big file of text. +05757 Really big file of text. +05758 Really big file of text. +05759 Really big file of text. +05760 Really big file of text. +05761 Really big file of text. +05762 Really big file of text. +05763 Really big file of text. +05764 Really big file of text. +05765 Really big file of text. +05766 Really big file of text. +05767 Really big file of text. +05768 Really big file of text. +05769 Really big file of text. +05770 Really big file of text. +05771 Really big file of text. +05772 Really big file of text. +05773 Really big file of text. +05774 Really big file of text. +05775 Really big file of text. +05776 Really big file of text. +05777 Really big file of text. +05778 Really big file of text. +05779 Really big file of text. +05780 Really big file of text. +05781 Really big file of text. +05782 Really big file of text. +05783 Really big file of text. +05784 Really big file of text. +05785 Really big file of text. +05786 Really big file of text. +05787 Really big file of text. +05788 Really big file of text. +05789 Really big file of text. +05790 Really big file of text. +05791 Really big file of text. +05792 Really big file of text. +05793 Really big file of text. +05794 Really big file of text. +05795 Really big file of text. +05796 Really big file of text. +05797 Really big file of text. +05798 Really big file of text. +05799 Really big file of text. +05800 Really big file of text. +05801 Really big file of text. +05802 Really big file of text. +05803 Really big file of text. +05804 Really big file of text. +05805 Really big file of text. +05806 Really big file of text. +05807 Really big file of text. +05808 Really big file of text. +05809 Really big file of text. +05810 Really big file of text. +05811 Really big file of text. +05812 Really big file of text. +05813 Really big file of text. +05814 Really big file of text. +05815 Really big file of text. +05816 Really big file of text. +05817 Really big file of text. +05818 Really big file of text. +05819 Really big file of text. +05820 Really big file of text. +05821 Really big file of text. +05822 Really big file of text. +05823 Really big file of text. +05824 Really big file of text. +05825 Really big file of text. +05826 Really big file of text. +05827 Really big file of text. +05828 Really big file of text. +05829 Really big file of text. +05830 Really big file of text. +05831 Really big file of text. +05832 Really big file of text. +05833 Really big file of text. +05834 Really big file of text. +05835 Really big file of text. +05836 Really big file of text. +05837 Really big file of text. +05838 Really big file of text. +05839 Really big file of text. +05840 Really big file of text. +05841 Really big file of text. +05842 Really big file of text. +05843 Really big file of text. +05844 Really big file of text. +05845 Really big file of text. +05846 Really big file of text. +05847 Really big file of text. +05848 Really big file of text. +05849 Really big file of text. +05850 Really big file of text. +05851 Really big file of text. +05852 Really big file of text. +05853 Really big file of text. +05854 Really big file of text. +05855 Really big file of text. +05856 Really big file of text. +05857 Really big file of text. +05858 Really big file of text. +05859 Really big file of text. +05860 Really big file of text. +05861 Really big file of text. +05862 Really big file of text. +05863 Really big file of text. +05864 Really big file of text. +05865 Really big file of text. +05866 Really big file of text. +05867 Really big file of text. +05868 Really big file of text. +05869 Really big file of text. +05870 Really big file of text. +05871 Really big file of text. +05872 Really big file of text. +05873 Really big file of text. +05874 Really big file of text. +05875 Really big file of text. +05876 Really big file of text. +05877 Really big file of text. +05878 Really big file of text. +05879 Really big file of text. +05880 Really big file of text. +05881 Really big file of text. +05882 Really big file of text. +05883 Really big file of text. +05884 Really big file of text. +05885 Really big file of text. +05886 Really big file of text. +05887 Really big file of text. +05888 Really big file of text. +05889 Really big file of text. +05890 Really big file of text. +05891 Really big file of text. +05892 Really big file of text. +05893 Really big file of text. +05894 Really big file of text. +05895 Really big file of text. +05896 Really big file of text. +05897 Really big file of text. +05898 Really big file of text. +05899 Really big file of text. +05900 Really big file of text. +05901 Really big file of text. +05902 Really big file of text. +05903 Really big file of text. +05904 Really big file of text. +05905 Really big file of text. +05906 Really big file of text. +05907 Really big file of text. +05908 Really big file of text. +05909 Really big file of text. +05910 Really big file of text. +05911 Really big file of text. +05912 Really big file of text. +05913 Really big file of text. +05914 Really big file of text. +05915 Really big file of text. +05916 Really big file of text. +05917 Really big file of text. +05918 Really big file of text. +05919 Really big file of text. +05920 Really big file of text. +05921 Really big file of text. +05922 Really big file of text. +05923 Really big file of text. +05924 Really big file of text. +05925 Really big file of text. +05926 Really big file of text. +05927 Really big file of text. +05928 Really big file of text. +05929 Really big file of text. +05930 Really big file of text. +05931 Really big file of text. +05932 Really big file of text. +05933 Really big file of text. +05934 Really big file of text. +05935 Really big file of text. +05936 Really big file of text. +05937 Really big file of text. +05938 Really big file of text. +05939 Really big file of text. +05940 Really big file of text. +05941 Really big file of text. +05942 Really big file of text. +05943 Really big file of text. +05944 Really big file of text. +05945 Really big file of text. +05946 Really big file of text. +05947 Really big file of text. +05948 Really big file of text. +05949 Really big file of text. +05950 Really big file of text. +05951 Really big file of text. +05952 Really big file of text. +05953 Really big file of text. +05954 Really big file of text. +05955 Really big file of text. +05956 Really big file of text. +05957 Really big file of text. +05958 Really big file of text. +05959 Really big file of text. +05960 Really big file of text. +05961 Really big file of text. +05962 Really big file of text. +05963 Really big file of text. +05964 Really big file of text. +05965 Really big file of text. +05966 Really big file of text. +05967 Really big file of text. +05968 Really big file of text. +05969 Really big file of text. +05970 Really big file of text. +05971 Really big file of text. +05972 Really big file of text. +05973 Really big file of text. +05974 Really big file of text. +05975 Really big file of text. +05976 Really big file of text. +05977 Really big file of text. +05978 Really big file of text. +05979 Really big file of text. +05980 Really big file of text. +05981 Really big file of text. +05982 Really big file of text. +05983 Really big file of text. +05984 Really big file of text. +05985 Really big file of text. +05986 Really big file of text. +05987 Really big file of text. +05988 Really big file of text. +05989 Really big file of text. +05990 Really big file of text. +05991 Really big file of text. +05992 Really big file of text. +05993 Really big file of text. +05994 Really big file of text. +05995 Really big file of text. +05996 Really big file of text. +05997 Really big file of text. +05998 Really big file of text. +05999 Really big file of text. +06000 Really big file of text. +06001 Really big file of text. +06002 Really big file of text. +06003 Really big file of text. +06004 Really big file of text. +06005 Really big file of text. +06006 Really big file of text. +06007 Really big file of text. +06008 Really big file of text. +06009 Really big file of text. +06010 Really big file of text. +06011 Really big file of text. +06012 Really big file of text. +06013 Really big file of text. +06014 Really big file of text. +06015 Really big file of text. +06016 Really big file of text. +06017 Really big file of text. +06018 Really big file of text. +06019 Really big file of text. +06020 Really big file of text. +06021 Really big file of text. +06022 Really big file of text. +06023 Really big file of text. +06024 Really big file of text. +06025 Really big file of text. +06026 Really big file of text. +06027 Really big file of text. +06028 Really big file of text. +06029 Really big file of text. +06030 Really big file of text. +06031 Really big file of text. +06032 Really big file of text. +06033 Really big file of text. +06034 Really big file of text. +06035 Really big file of text. +06036 Really big file of text. +06037 Really big file of text. +06038 Really big file of text. +06039 Really big file of text. +06040 Really big file of text. +06041 Really big file of text. +06042 Really big file of text. +06043 Really big file of text. +06044 Really big file of text. +06045 Really big file of text. +06046 Really big file of text. +06047 Really big file of text. +06048 Really big file of text. +06049 Really big file of text. +06050 Really big file of text. +06051 Really big file of text. +06052 Really big file of text. +06053 Really big file of text. +06054 Really big file of text. +06055 Really big file of text. +06056 Really big file of text. +06057 Really big file of text. +06058 Really big file of text. +06059 Really big file of text. +06060 Really big file of text. +06061 Really big file of text. +06062 Really big file of text. +06063 Really big file of text. +06064 Really big file of text. +06065 Really big file of text. +06066 Really big file of text. +06067 Really big file of text. +06068 Really big file of text. +06069 Really big file of text. +06070 Really big file of text. +06071 Really big file of text. +06072 Really big file of text. +06073 Really big file of text. +06074 Really big file of text. +06075 Really big file of text. +06076 Really big file of text. +06077 Really big file of text. +06078 Really big file of text. +06079 Really big file of text. +06080 Really big file of text. +06081 Really big file of text. +06082 Really big file of text. +06083 Really big file of text. +06084 Really big file of text. +06085 Really big file of text. +06086 Really big file of text. +06087 Really big file of text. +06088 Really big file of text. +06089 Really big file of text. +06090 Really big file of text. +06091 Really big file of text. +06092 Really big file of text. +06093 Really big file of text. +06094 Really big file of text. +06095 Really big file of text. +06096 Really big file of text. +06097 Really big file of text. +06098 Really big file of text. +06099 Really big file of text. +06100 Really big file of text. +06101 Really big file of text. +06102 Really big file of text. +06103 Really big file of text. +06104 Really big file of text. +06105 Really big file of text. +06106 Really big file of text. +06107 Really big file of text. +06108 Really big file of text. +06109 Really big file of text. +06110 Really big file of text. +06111 Really big file of text. +06112 Really big file of text. +06113 Really big file of text. +06114 Really big file of text. +06115 Really big file of text. +06116 Really big file of text. +06117 Really big file of text. +06118 Really big file of text. +06119 Really big file of text. +06120 Really big file of text. +06121 Really big file of text. +06122 Really big file of text. +06123 Really big file of text. +06124 Really big file of text. +06125 Really big file of text. +06126 Really big file of text. +06127 Really big file of text. +06128 Really big file of text. +06129 Really big file of text. +06130 Really big file of text. +06131 Really big file of text. +06132 Really big file of text. +06133 Really big file of text. +06134 Really big file of text. +06135 Really big file of text. +06136 Really big file of text. +06137 Really big file of text. +06138 Really big file of text. +06139 Really big file of text. +06140 Really big file of text. +06141 Really big file of text. +06142 Really big file of text. +06143 Really big file of text. +06144 Really big file of text. +06145 Really big file of text. +06146 Really big file of text. +06147 Really big file of text. +06148 Really big file of text. +06149 Really big file of text. +06150 Really big file of text. +06151 Really big file of text. +06152 Really big file of text. +06153 Really big file of text. +06154 Really big file of text. +06155 Really big file of text. +06156 Really big file of text. +06157 Really big file of text. +06158 Really big file of text. +06159 Really big file of text. +06160 Really big file of text. +06161 Really big file of text. +06162 Really big file of text. +06163 Really big file of text. +06164 Really big file of text. +06165 Really big file of text. +06166 Really big file of text. +06167 Really big file of text. +06168 Really big file of text. +06169 Really big file of text. +06170 Really big file of text. +06171 Really big file of text. +06172 Really big file of text. +06173 Really big file of text. +06174 Really big file of text. +06175 Really big file of text. +06176 Really big file of text. +06177 Really big file of text. +06178 Really big file of text. +06179 Really big file of text. +06180 Really big file of text. +06181 Really big file of text. +06182 Really big file of text. +06183 Really big file of text. +06184 Really big file of text. +06185 Really big file of text. +06186 Really big file of text. +06187 Really big file of text. +06188 Really big file of text. +06189 Really big file of text. +06190 Really big file of text. +06191 Really big file of text. +06192 Really big file of text. +06193 Really big file of text. +06194 Really big file of text. +06195 Really big file of text. +06196 Really big file of text. +06197 Really big file of text. +06198 Really big file of text. +06199 Really big file of text. +06200 Really big file of text. +06201 Really big file of text. +06202 Really big file of text. +06203 Really big file of text. +06204 Really big file of text. +06205 Really big file of text. +06206 Really big file of text. +06207 Really big file of text. +06208 Really big file of text. +06209 Really big file of text. +06210 Really big file of text. +06211 Really big file of text. +06212 Really big file of text. +06213 Really big file of text. +06214 Really big file of text. +06215 Really big file of text. +06216 Really big file of text. +06217 Really big file of text. +06218 Really big file of text. +06219 Really big file of text. +06220 Really big file of text. +06221 Really big file of text. +06222 Really big file of text. +06223 Really big file of text. +06224 Really big file of text. +06225 Really big file of text. +06226 Really big file of text. +06227 Really big file of text. +06228 Really big file of text. +06229 Really big file of text. +06230 Really big file of text. +06231 Really big file of text. +06232 Really big file of text. +06233 Really big file of text. +06234 Really big file of text. +06235 Really big file of text. +06236 Really big file of text. +06237 Really big file of text. +06238 Really big file of text. +06239 Really big file of text. +06240 Really big file of text. +06241 Really big file of text. +06242 Really big file of text. +06243 Really big file of text. +06244 Really big file of text. +06245 Really big file of text. +06246 Really big file of text. +06247 Really big file of text. +06248 Really big file of text. +06249 Really big file of text. +06250 Really big file of text. +06251 Really big file of text. +06252 Really big file of text. +06253 Really big file of text. +06254 Really big file of text. +06255 Really big file of text. +06256 Really big file of text. +06257 Really big file of text. +06258 Really big file of text. +06259 Really big file of text. +06260 Really big file of text. +06261 Really big file of text. +06262 Really big file of text. +06263 Really big file of text. +06264 Really big file of text. +06265 Really big file of text. +06266 Really big file of text. +06267 Really big file of text. +06268 Really big file of text. +06269 Really big file of text. +06270 Really big file of text. +06271 Really big file of text. +06272 Really big file of text. +06273 Really big file of text. +06274 Really big file of text. +06275 Really big file of text. +06276 Really big file of text. +06277 Really big file of text. +06278 Really big file of text. +06279 Really big file of text. +06280 Really big file of text. +06281 Really big file of text. +06282 Really big file of text. +06283 Really big file of text. +06284 Really big file of text. +06285 Really big file of text. +06286 Really big file of text. +06287 Really big file of text. +06288 Really big file of text. +06289 Really big file of text. +06290 Really big file of text. +06291 Really big file of text. +06292 Really big file of text. +06293 Really big file of text. +06294 Really big file of text. +06295 Really big file of text. +06296 Really big file of text. +06297 Really big file of text. +06298 Really big file of text. +06299 Really big file of text. +06300 Really big file of text. +06301 Really big file of text. +06302 Really big file of text. +06303 Really big file of text. +06304 Really big file of text. +06305 Really big file of text. +06306 Really big file of text. +06307 Really big file of text. +06308 Really big file of text. +06309 Really big file of text. +06310 Really big file of text. +06311 Really big file of text. +06312 Really big file of text. +06313 Really big file of text. +06314 Really big file of text. +06315 Really big file of text. +06316 Really big file of text. +06317 Really big file of text. +06318 Really big file of text. +06319 Really big file of text. +06320 Really big file of text. +06321 Really big file of text. +06322 Really big file of text. +06323 Really big file of text. +06324 Really big file of text. +06325 Really big file of text. +06326 Really big file of text. +06327 Really big file of text. +06328 Really big file of text. +06329 Really big file of text. +06330 Really big file of text. +06331 Really big file of text. +06332 Really big file of text. +06333 Really big file of text. +06334 Really big file of text. +06335 Really big file of text. +06336 Really big file of text. +06337 Really big file of text. +06338 Really big file of text. +06339 Really big file of text. +06340 Really big file of text. +06341 Really big file of text. +06342 Really big file of text. +06343 Really big file of text. +06344 Really big file of text. +06345 Really big file of text. +06346 Really big file of text. +06347 Really big file of text. +06348 Really big file of text. +06349 Really big file of text. +06350 Really big file of text. +06351 Really big file of text. +06352 Really big file of text. +06353 Really big file of text. +06354 Really big file of text. +06355 Really big file of text. +06356 Really big file of text. +06357 Really big file of text. +06358 Really big file of text. +06359 Really big file of text. +06360 Really big file of text. +06361 Really big file of text. +06362 Really big file of text. +06363 Really big file of text. +06364 Really big file of text. +06365 Really big file of text. +06366 Really big file of text. +06367 Really big file of text. +06368 Really big file of text. +06369 Really big file of text. +06370 Really big file of text. +06371 Really big file of text. +06372 Really big file of text. +06373 Really big file of text. +06374 Really big file of text. +06375 Really big file of text. +06376 Really big file of text. +06377 Really big file of text. +06378 Really big file of text. +06379 Really big file of text. +06380 Really big file of text. +06381 Really big file of text. +06382 Really big file of text. +06383 Really big file of text. +06384 Really big file of text. +06385 Really big file of text. +06386 Really big file of text. +06387 Really big file of text. +06388 Really big file of text. +06389 Really big file of text. +06390 Really big file of text. +06391 Really big file of text. +06392 Really big file of text. +06393 Really big file of text. +06394 Really big file of text. +06395 Really big file of text. +06396 Really big file of text. +06397 Really big file of text. +06398 Really big file of text. +06399 Really big file of text. +06400 Really big file of text. +06401 Really big file of text. +06402 Really big file of text. +06403 Really big file of text. +06404 Really big file of text. +06405 Really big file of text. +06406 Really big file of text. +06407 Really big file of text. +06408 Really big file of text. +06409 Really big file of text. +06410 Really big file of text. +06411 Really big file of text. +06412 Really big file of text. +06413 Really big file of text. +06414 Really big file of text. +06415 Really big file of text. +06416 Really big file of text. +06417 Really big file of text. +06418 Really big file of text. +06419 Really big file of text. +06420 Really big file of text. +06421 Really big file of text. +06422 Really big file of text. +06423 Really big file of text. +06424 Really big file of text. +06425 Really big file of text. +06426 Really big file of text. +06427 Really big file of text. +06428 Really big file of text. +06429 Really big file of text. +06430 Really big file of text. +06431 Really big file of text. +06432 Really big file of text. +06433 Really big file of text. +06434 Really big file of text. +06435 Really big file of text. +06436 Really big file of text. +06437 Really big file of text. +06438 Really big file of text. +06439 Really big file of text. +06440 Really big file of text. +06441 Really big file of text. +06442 Really big file of text. +06443 Really big file of text. +06444 Really big file of text. +06445 Really big file of text. +06446 Really big file of text. +06447 Really big file of text. +06448 Really big file of text. +06449 Really big file of text. +06450 Really big file of text. +06451 Really big file of text. +06452 Really big file of text. +06453 Really big file of text. +06454 Really big file of text. +06455 Really big file of text. +06456 Really big file of text. +06457 Really big file of text. +06458 Really big file of text. +06459 Really big file of text. +06460 Really big file of text. +06461 Really big file of text. +06462 Really big file of text. +06463 Really big file of text. +06464 Really big file of text. +06465 Really big file of text. +06466 Really big file of text. +06467 Really big file of text. +06468 Really big file of text. +06469 Really big file of text. +06470 Really big file of text. +06471 Really big file of text. +06472 Really big file of text. +06473 Really big file of text. +06474 Really big file of text. +06475 Really big file of text. +06476 Really big file of text. +06477 Really big file of text. +06478 Really big file of text. +06479 Really big file of text. +06480 Really big file of text. +06481 Really big file of text. +06482 Really big file of text. +06483 Really big file of text. +06484 Really big file of text. +06485 Really big file of text. +06486 Really big file of text. +06487 Really big file of text. +06488 Really big file of text. +06489 Really big file of text. +06490 Really big file of text. +06491 Really big file of text. +06492 Really big file of text. +06493 Really big file of text. +06494 Really big file of text. +06495 Really big file of text. +06496 Really big file of text. +06497 Really big file of text. +06498 Really big file of text. +06499 Really big file of text. +06500 Really big file of text. +06501 Really big file of text. +06502 Really big file of text. +06503 Really big file of text. +06504 Really big file of text. +06505 Really big file of text. +06506 Really big file of text. +06507 Really big file of text. +06508 Really big file of text. +06509 Really big file of text. +06510 Really big file of text. +06511 Really big file of text. +06512 Really big file of text. +06513 Really big file of text. +06514 Really big file of text. +06515 Really big file of text. +06516 Really big file of text. +06517 Really big file of text. +06518 Really big file of text. +06519 Really big file of text. +06520 Really big file of text. +06521 Really big file of text. +06522 Really big file of text. +06523 Really big file of text. +06524 Really big file of text. +06525 Really big file of text. +06526 Really big file of text. +06527 Really big file of text. +06528 Really big file of text. +06529 Really big file of text. +06530 Really big file of text. +06531 Really big file of text. +06532 Really big file of text. +06533 Really big file of text. +06534 Really big file of text. +06535 Really big file of text. +06536 Really big file of text. +06537 Really big file of text. +06538 Really big file of text. +06539 Really big file of text. +06540 Really big file of text. +06541 Really big file of text. +06542 Really big file of text. +06543 Really big file of text. +06544 Really big file of text. +06545 Really big file of text. +06546 Really big file of text. +06547 Really big file of text. +06548 Really big file of text. +06549 Really big file of text. +06550 Really big file of text. +06551 Really big file of text. +06552 Really big file of text. +06553 Really big file of text. +06554 Really big file of text. +06555 Really big file of text. +06556 Really big file of text. +06557 Really big file of text. +06558 Really big file of text. +06559 Really big file of text. +06560 Really big file of text. +06561 Really big file of text. +06562 Really big file of text. +06563 Really big file of text. +06564 Really big file of text. +06565 Really big file of text. +06566 Really big file of text. +06567 Really big file of text. +06568 Really big file of text. +06569 Really big file of text. +06570 Really big file of text. +06571 Really big file of text. +06572 Really big file of text. +06573 Really big file of text. +06574 Really big file of text. +06575 Really big file of text. +06576 Really big file of text. +06577 Really big file of text. +06578 Really big file of text. +06579 Really big file of text. +06580 Really big file of text. +06581 Really big file of text. +06582 Really big file of text. +06583 Really big file of text. +06584 Really big file of text. +06585 Really big file of text. +06586 Really big file of text. +06587 Really big file of text. +06588 Really big file of text. +06589 Really big file of text. +06590 Really big file of text. +06591 Really big file of text. +06592 Really big file of text. +06593 Really big file of text. +06594 Really big file of text. +06595 Really big file of text. +06596 Really big file of text. +06597 Really big file of text. +06598 Really big file of text. +06599 Really big file of text. +06600 Really big file of text. +06601 Really big file of text. +06602 Really big file of text. +06603 Really big file of text. +06604 Really big file of text. +06605 Really big file of text. +06606 Really big file of text. +06607 Really big file of text. +06608 Really big file of text. +06609 Really big file of text. +06610 Really big file of text. +06611 Really big file of text. +06612 Really big file of text. +06613 Really big file of text. +06614 Really big file of text. +06615 Really big file of text. +06616 Really big file of text. +06617 Really big file of text. +06618 Really big file of text. +06619 Really big file of text. +06620 Really big file of text. +06621 Really big file of text. +06622 Really big file of text. +06623 Really big file of text. +06624 Really big file of text. +06625 Really big file of text. +06626 Really big file of text. +06627 Really big file of text. +06628 Really big file of text. +06629 Really big file of text. +06630 Really big file of text. +06631 Really big file of text. +06632 Really big file of text. +06633 Really big file of text. +06634 Really big file of text. +06635 Really big file of text. +06636 Really big file of text. +06637 Really big file of text. +06638 Really big file of text. +06639 Really big file of text. +06640 Really big file of text. +06641 Really big file of text. +06642 Really big file of text. +06643 Really big file of text. +06644 Really big file of text. +06645 Really big file of text. +06646 Really big file of text. +06647 Really big file of text. +06648 Really big file of text. +06649 Really big file of text. +06650 Really big file of text. +06651 Really big file of text. +06652 Really big file of text. +06653 Really big file of text. +06654 Really big file of text. +06655 Really big file of text. +06656 Really big file of text. +06657 Really big file of text. +06658 Really big file of text. +06659 Really big file of text. +06660 Really big file of text. +06661 Really big file of text. +06662 Really big file of text. +06663 Really big file of text. +06664 Really big file of text. +06665 Really big file of text. +06666 Really big file of text. +06667 Really big file of text. +06668 Really big file of text. +06669 Really big file of text. +06670 Really big file of text. +06671 Really big file of text. +06672 Really big file of text. +06673 Really big file of text. +06674 Really big file of text. +06675 Really big file of text. +06676 Really big file of text. +06677 Really big file of text. +06678 Really big file of text. +06679 Really big file of text. +06680 Really big file of text. +06681 Really big file of text. +06682 Really big file of text. +06683 Really big file of text. +06684 Really big file of text. +06685 Really big file of text. +06686 Really big file of text. +06687 Really big file of text. +06688 Really big file of text. +06689 Really big file of text. +06690 Really big file of text. +06691 Really big file of text. +06692 Really big file of text. +06693 Really big file of text. +06694 Really big file of text. +06695 Really big file of text. +06696 Really big file of text. +06697 Really big file of text. +06698 Really big file of text. +06699 Really big file of text. +06700 Really big file of text. +06701 Really big file of text. +06702 Really big file of text. +06703 Really big file of text. +06704 Really big file of text. +06705 Really big file of text. +06706 Really big file of text. +06707 Really big file of text. +06708 Really big file of text. +06709 Really big file of text. +06710 Really big file of text. +06711 Really big file of text. +06712 Really big file of text. +06713 Really big file of text. +06714 Really big file of text. +06715 Really big file of text. +06716 Really big file of text. +06717 Really big file of text. +06718 Really big file of text. +06719 Really big file of text. +06720 Really big file of text. +06721 Really big file of text. +06722 Really big file of text. +06723 Really big file of text. +06724 Really big file of text. +06725 Really big file of text. +06726 Really big file of text. +06727 Really big file of text. +06728 Really big file of text. +06729 Really big file of text. +06730 Really big file of text. +06731 Really big file of text. +06732 Really big file of text. +06733 Really big file of text. +06734 Really big file of text. +06735 Really big file of text. +06736 Really big file of text. +06737 Really big file of text. +06738 Really big file of text. +06739 Really big file of text. +06740 Really big file of text. +06741 Really big file of text. +06742 Really big file of text. +06743 Really big file of text. +06744 Really big file of text. +06745 Really big file of text. +06746 Really big file of text. +06747 Really big file of text. +06748 Really big file of text. +06749 Really big file of text. +06750 Really big file of text. +06751 Really big file of text. +06752 Really big file of text. +06753 Really big file of text. +06754 Really big file of text. +06755 Really big file of text. +06756 Really big file of text. +06757 Really big file of text. +06758 Really big file of text. +06759 Really big file of text. +06760 Really big file of text. +06761 Really big file of text. +06762 Really big file of text. +06763 Really big file of text. +06764 Really big file of text. +06765 Really big file of text. +06766 Really big file of text. +06767 Really big file of text. +06768 Really big file of text. +06769 Really big file of text. +06770 Really big file of text. +06771 Really big file of text. +06772 Really big file of text. +06773 Really big file of text. +06774 Really big file of text. +06775 Really big file of text. +06776 Really big file of text. +06777 Really big file of text. +06778 Really big file of text. +06779 Really big file of text. +06780 Really big file of text. +06781 Really big file of text. +06782 Really big file of text. +06783 Really big file of text. +06784 Really big file of text. +06785 Really big file of text. +06786 Really big file of text. +06787 Really big file of text. +06788 Really big file of text. +06789 Really big file of text. +06790 Really big file of text. +06791 Really big file of text. +06792 Really big file of text. +06793 Really big file of text. +06794 Really big file of text. +06795 Really big file of text. +06796 Really big file of text. +06797 Really big file of text. +06798 Really big file of text. +06799 Really big file of text. +06800 Really big file of text. +06801 Really big file of text. +06802 Really big file of text. +06803 Really big file of text. +06804 Really big file of text. +06805 Really big file of text. +06806 Really big file of text. +06807 Really big file of text. +06808 Really big file of text. +06809 Really big file of text. +06810 Really big file of text. +06811 Really big file of text. +06812 Really big file of text. +06813 Really big file of text. +06814 Really big file of text. +06815 Really big file of text. +06816 Really big file of text. +06817 Really big file of text. +06818 Really big file of text. +06819 Really big file of text. +06820 Really big file of text. +06821 Really big file of text. +06822 Really big file of text. +06823 Really big file of text. +06824 Really big file of text. +06825 Really big file of text. +06826 Really big file of text. +06827 Really big file of text. +06828 Really big file of text. +06829 Really big file of text. +06830 Really big file of text. +06831 Really big file of text. +06832 Really big file of text. +06833 Really big file of text. +06834 Really big file of text. +06835 Really big file of text. +06836 Really big file of text. +06837 Really big file of text. +06838 Really big file of text. +06839 Really big file of text. +06840 Really big file of text. +06841 Really big file of text. +06842 Really big file of text. +06843 Really big file of text. +06844 Really big file of text. +06845 Really big file of text. +06846 Really big file of text. +06847 Really big file of text. +06848 Really big file of text. +06849 Really big file of text. +06850 Really big file of text. +06851 Really big file of text. +06852 Really big file of text. +06853 Really big file of text. +06854 Really big file of text. +06855 Really big file of text. +06856 Really big file of text. +06857 Really big file of text. +06858 Really big file of text. +06859 Really big file of text. +06860 Really big file of text. +06861 Really big file of text. +06862 Really big file of text. +06863 Really big file of text. +06864 Really big file of text. +06865 Really big file of text. +06866 Really big file of text. +06867 Really big file of text. +06868 Really big file of text. +06869 Really big file of text. +06870 Really big file of text. +06871 Really big file of text. +06872 Really big file of text. +06873 Really big file of text. +06874 Really big file of text. +06875 Really big file of text. +06876 Really big file of text. +06877 Really big file of text. +06878 Really big file of text. +06879 Really big file of text. +06880 Really big file of text. +06881 Really big file of text. +06882 Really big file of text. +06883 Really big file of text. +06884 Really big file of text. +06885 Really big file of text. +06886 Really big file of text. +06887 Really big file of text. +06888 Really big file of text. +06889 Really big file of text. +06890 Really big file of text. +06891 Really big file of text. +06892 Really big file of text. +06893 Really big file of text. +06894 Really big file of text. +06895 Really big file of text. +06896 Really big file of text. +06897 Really big file of text. +06898 Really big file of text. +06899 Really big file of text. +06900 Really big file of text. +06901 Really big file of text. +06902 Really big file of text. +06903 Really big file of text. +06904 Really big file of text. +06905 Really big file of text. +06906 Really big file of text. +06907 Really big file of text. +06908 Really big file of text. +06909 Really big file of text. +06910 Really big file of text. +06911 Really big file of text. +06912 Really big file of text. +06913 Really big file of text. +06914 Really big file of text. +06915 Really big file of text. +06916 Really big file of text. +06917 Really big file of text. +06918 Really big file of text. +06919 Really big file of text. +06920 Really big file of text. +06921 Really big file of text. +06922 Really big file of text. +06923 Really big file of text. +06924 Really big file of text. +06925 Really big file of text. +06926 Really big file of text. +06927 Really big file of text. +06928 Really big file of text. +06929 Really big file of text. +06930 Really big file of text. +06931 Really big file of text. +06932 Really big file of text. +06933 Really big file of text. +06934 Really big file of text. +06935 Really big file of text. +06936 Really big file of text. +06937 Really big file of text. +06938 Really big file of text. +06939 Really big file of text. +06940 Really big file of text. +06941 Really big file of text. +06942 Really big file of text. +06943 Really big file of text. +06944 Really big file of text. +06945 Really big file of text. +06946 Really big file of text. +06947 Really big file of text. +06948 Really big file of text. +06949 Really big file of text. +06950 Really big file of text. +06951 Really big file of text. +06952 Really big file of text. +06953 Really big file of text. +06954 Really big file of text. +06955 Really big file of text. +06956 Really big file of text. +06957 Really big file of text. +06958 Really big file of text. +06959 Really big file of text. +06960 Really big file of text. +06961 Really big file of text. +06962 Really big file of text. +06963 Really big file of text. +06964 Really big file of text. +06965 Really big file of text. +06966 Really big file of text. +06967 Really big file of text. +06968 Really big file of text. +06969 Really big file of text. +06970 Really big file of text. +06971 Really big file of text. +06972 Really big file of text. +06973 Really big file of text. +06974 Really big file of text. +06975 Really big file of text. +06976 Really big file of text. +06977 Really big file of text. +06978 Really big file of text. +06979 Really big file of text. +06980 Really big file of text. +06981 Really big file of text. +06982 Really big file of text. +06983 Really big file of text. +06984 Really big file of text. +06985 Really big file of text. +06986 Really big file of text. +06987 Really big file of text. +06988 Really big file of text. +06989 Really big file of text. +06990 Really big file of text. +06991 Really big file of text. +06992 Really big file of text. +06993 Really big file of text. +06994 Really big file of text. +06995 Really big file of text. +06996 Really big file of text. +06997 Really big file of text. +06998 Really big file of text. +06999 Really big file of text. +07000 Really big file of text. +07001 Really big file of text. +07002 Really big file of text. +07003 Really big file of text. +07004 Really big file of text. +07005 Really big file of text. +07006 Really big file of text. +07007 Really big file of text. +07008 Really big file of text. +07009 Really big file of text. +07010 Really big file of text. +07011 Really big file of text. +07012 Really big file of text. +07013 Really big file of text. +07014 Really big file of text. +07015 Really big file of text. +07016 Really big file of text. +07017 Really big file of text. +07018 Really big file of text. +07019 Really big file of text. +07020 Really big file of text. +07021 Really big file of text. +07022 Really big file of text. +07023 Really big file of text. +07024 Really big file of text. +07025 Really big file of text. +07026 Really big file of text. +07027 Really big file of text. +07028 Really big file of text. +07029 Really big file of text. +07030 Really big file of text. +07031 Really big file of text. +07032 Really big file of text. +07033 Really big file of text. +07034 Really big file of text. +07035 Really big file of text. +07036 Really big file of text. +07037 Really big file of text. +07038 Really big file of text. +07039 Really big file of text. +07040 Really big file of text. +07041 Really big file of text. +07042 Really big file of text. +07043 Really big file of text. +07044 Really big file of text. +07045 Really big file of text. +07046 Really big file of text. +07047 Really big file of text. +07048 Really big file of text. +07049 Really big file of text. +07050 Really big file of text. +07051 Really big file of text. +07052 Really big file of text. +07053 Really big file of text. +07054 Really big file of text. +07055 Really big file of text. +07056 Really big file of text. +07057 Really big file of text. +07058 Really big file of text. +07059 Really big file of text. +07060 Really big file of text. +07061 Really big file of text. +07062 Really big file of text. +07063 Really big file of text. +07064 Really big file of text. +07065 Really big file of text. +07066 Really big file of text. +07067 Really big file of text. +07068 Really big file of text. +07069 Really big file of text. +07070 Really big file of text. +07071 Really big file of text. +07072 Really big file of text. +07073 Really big file of text. +07074 Really big file of text. +07075 Really big file of text. +07076 Really big file of text. +07077 Really big file of text. +07078 Really big file of text. +07079 Really big file of text. +07080 Really big file of text. +07081 Really big file of text. +07082 Really big file of text. +07083 Really big file of text. +07084 Really big file of text. +07085 Really big file of text. +07086 Really big file of text. +07087 Really big file of text. +07088 Really big file of text. +07089 Really big file of text. +07090 Really big file of text. +07091 Really big file of text. +07092 Really big file of text. +07093 Really big file of text. +07094 Really big file of text. +07095 Really big file of text. +07096 Really big file of text. +07097 Really big file of text. +07098 Really big file of text. +07099 Really big file of text. +07100 Really big file of text. +07101 Really big file of text. +07102 Really big file of text. +07103 Really big file of text. +07104 Really big file of text. +07105 Really big file of text. +07106 Really big file of text. +07107 Really big file of text. +07108 Really big file of text. +07109 Really big file of text. +07110 Really big file of text. +07111 Really big file of text. +07112 Really big file of text. +07113 Really big file of text. +07114 Really big file of text. +07115 Really big file of text. +07116 Really big file of text. +07117 Really big file of text. +07118 Really big file of text. +07119 Really big file of text. +07120 Really big file of text. +07121 Really big file of text. +07122 Really big file of text. +07123 Really big file of text. +07124 Really big file of text. +07125 Really big file of text. +07126 Really big file of text. +07127 Really big file of text. +07128 Really big file of text. +07129 Really big file of text. +07130 Really big file of text. +07131 Really big file of text. +07132 Really big file of text. +07133 Really big file of text. +07134 Really big file of text. +07135 Really big file of text. +07136 Really big file of text. +07137 Really big file of text. +07138 Really big file of text. +07139 Really big file of text. +07140 Really big file of text. +07141 Really big file of text. +07142 Really big file of text. +07143 Really big file of text. +07144 Really big file of text. +07145 Really big file of text. +07146 Really big file of text. +07147 Really big file of text. +07148 Really big file of text. +07149 Really big file of text. +07150 Really big file of text. +07151 Really big file of text. +07152 Really big file of text. +07153 Really big file of text. +07154 Really big file of text. +07155 Really big file of text. +07156 Really big file of text. +07157 Really big file of text. +07158 Really big file of text. +07159 Really big file of text. +07160 Really big file of text. +07161 Really big file of text. +07162 Really big file of text. +07163 Really big file of text. +07164 Really big file of text. +07165 Really big file of text. +07166 Really big file of text. +07167 Really big file of text. +07168 Really big file of text. +07169 Really big file of text. +07170 Really big file of text. +07171 Really big file of text. +07172 Really big file of text. +07173 Really big file of text. +07174 Really big file of text. +07175 Really big file of text. +07176 Really big file of text. +07177 Really big file of text. +07178 Really big file of text. +07179 Really big file of text. +07180 Really big file of text. +07181 Really big file of text. +07182 Really big file of text. +07183 Really big file of text. +07184 Really big file of text. +07185 Really big file of text. +07186 Really big file of text. +07187 Really big file of text. +07188 Really big file of text. +07189 Really big file of text. +07190 Really big file of text. +07191 Really big file of text. +07192 Really big file of text. +07193 Really big file of text. +07194 Really big file of text. +07195 Really big file of text. +07196 Really big file of text. +07197 Really big file of text. +07198 Really big file of text. +07199 Really big file of text. +07200 Really big file of text. +07201 Really big file of text. +07202 Really big file of text. +07203 Really big file of text. +07204 Really big file of text. +07205 Really big file of text. +07206 Really big file of text. +07207 Really big file of text. +07208 Really big file of text. +07209 Really big file of text. +07210 Really big file of text. +07211 Really big file of text. +07212 Really big file of text. +07213 Really big file of text. +07214 Really big file of text. +07215 Really big file of text. +07216 Really big file of text. +07217 Really big file of text. +07218 Really big file of text. +07219 Really big file of text. +07220 Really big file of text. +07221 Really big file of text. +07222 Really big file of text. +07223 Really big file of text. +07224 Really big file of text. +07225 Really big file of text. +07226 Really big file of text. +07227 Really big file of text. +07228 Really big file of text. +07229 Really big file of text. +07230 Really big file of text. +07231 Really big file of text. +07232 Really big file of text. +07233 Really big file of text. +07234 Really big file of text. +07235 Really big file of text. +07236 Really big file of text. +07237 Really big file of text. +07238 Really big file of text. +07239 Really big file of text. +07240 Really big file of text. +07241 Really big file of text. +07242 Really big file of text. +07243 Really big file of text. +07244 Really big file of text. +07245 Really big file of text. +07246 Really big file of text. +07247 Really big file of text. +07248 Really big file of text. +07249 Really big file of text. +07250 Really big file of text. +07251 Really big file of text. +07252 Really big file of text. +07253 Really big file of text. +07254 Really big file of text. +07255 Really big file of text. +07256 Really big file of text. +07257 Really big file of text. +07258 Really big file of text. +07259 Really big file of text. +07260 Really big file of text. +07261 Really big file of text. +07262 Really big file of text. +07263 Really big file of text. +07264 Really big file of text. +07265 Really big file of text. +07266 Really big file of text. +07267 Really big file of text. +07268 Really big file of text. +07269 Really big file of text. +07270 Really big file of text. +07271 Really big file of text. +07272 Really big file of text. +07273 Really big file of text. +07274 Really big file of text. +07275 Really big file of text. +07276 Really big file of text. +07277 Really big file of text. +07278 Really big file of text. +07279 Really big file of text. +07280 Really big file of text. +07281 Really big file of text. +07282 Really big file of text. +07283 Really big file of text. +07284 Really big file of text. +07285 Really big file of text. +07286 Really big file of text. +07287 Really big file of text. +07288 Really big file of text. +07289 Really big file of text. +07290 Really big file of text. +07291 Really big file of text. +07292 Really big file of text. +07293 Really big file of text. +07294 Really big file of text. +07295 Really big file of text. +07296 Really big file of text. +07297 Really big file of text. +07298 Really big file of text. +07299 Really big file of text. +07300 Really big file of text. +07301 Really big file of text. +07302 Really big file of text. +07303 Really big file of text. +07304 Really big file of text. +07305 Really big file of text. +07306 Really big file of text. +07307 Really big file of text. +07308 Really big file of text. +07309 Really big file of text. +07310 Really big file of text. +07311 Really big file of text. +07312 Really big file of text. +07313 Really big file of text. +07314 Really big file of text. +07315 Really big file of text. +07316 Really big file of text. +07317 Really big file of text. +07318 Really big file of text. +07319 Really big file of text. +07320 Really big file of text. +07321 Really big file of text. +07322 Really big file of text. +07323 Really big file of text. +07324 Really big file of text. +07325 Really big file of text. +07326 Really big file of text. +07327 Really big file of text. +07328 Really big file of text. +07329 Really big file of text. +07330 Really big file of text. +07331 Really big file of text. +07332 Really big file of text. +07333 Really big file of text. +07334 Really big file of text. +07335 Really big file of text. +07336 Really big file of text. +07337 Really big file of text. +07338 Really big file of text. +07339 Really big file of text. +07340 Really big file of text. +07341 Really big file of text. +07342 Really big file of text. +07343 Really big file of text. +07344 Really big file of text. +07345 Really big file of text. +07346 Really big file of text. +07347 Really big file of text. +07348 Really big file of text. +07349 Really big file of text. +07350 Really big file of text. +07351 Really big file of text. +07352 Really big file of text. +07353 Really big file of text. +07354 Really big file of text. +07355 Really big file of text. +07356 Really big file of text. +07357 Really big file of text. +07358 Really big file of text. +07359 Really big file of text. +07360 Really big file of text. +07361 Really big file of text. +07362 Really big file of text. +07363 Really big file of text. +07364 Really big file of text. +07365 Really big file of text. +07366 Really big file of text. +07367 Really big file of text. +07368 Really big file of text. +07369 Really big file of text. +07370 Really big file of text. +07371 Really big file of text. +07372 Really big file of text. +07373 Really big file of text. +07374 Really big file of text. +07375 Really big file of text. +07376 Really big file of text. +07377 Really big file of text. +07378 Really big file of text. +07379 Really big file of text. +07380 Really big file of text. +07381 Really big file of text. +07382 Really big file of text. +07383 Really big file of text. +07384 Really big file of text. +07385 Really big file of text. +07386 Really big file of text. +07387 Really big file of text. +07388 Really big file of text. +07389 Really big file of text. +07390 Really big file of text. +07391 Really big file of text. +07392 Really big file of text. +07393 Really big file of text. +07394 Really big file of text. +07395 Really big file of text. +07396 Really big file of text. +07397 Really big file of text. +07398 Really big file of text. +07399 Really big file of text. +07400 Really big file of text. +07401 Really big file of text. +07402 Really big file of text. +07403 Really big file of text. +07404 Really big file of text. +07405 Really big file of text. +07406 Really big file of text. +07407 Really big file of text. +07408 Really big file of text. +07409 Really big file of text. +07410 Really big file of text. +07411 Really big file of text. +07412 Really big file of text. +07413 Really big file of text. +07414 Really big file of text. +07415 Really big file of text. +07416 Really big file of text. +07417 Really big file of text. +07418 Really big file of text. +07419 Really big file of text. +07420 Really big file of text. +07421 Really big file of text. +07422 Really big file of text. +07423 Really big file of text. +07424 Really big file of text. +07425 Really big file of text. +07426 Really big file of text. +07427 Really big file of text. +07428 Really big file of text. +07429 Really big file of text. +07430 Really big file of text. +07431 Really big file of text. +07432 Really big file of text. +07433 Really big file of text. +07434 Really big file of text. +07435 Really big file of text. +07436 Really big file of text. +07437 Really big file of text. +07438 Really big file of text. +07439 Really big file of text. +07440 Really big file of text. +07441 Really big file of text. +07442 Really big file of text. +07443 Really big file of text. +07444 Really big file of text. +07445 Really big file of text. +07446 Really big file of text. +07447 Really big file of text. +07448 Really big file of text. +07449 Really big file of text. +07450 Really big file of text. +07451 Really big file of text. +07452 Really big file of text. +07453 Really big file of text. +07454 Really big file of text. +07455 Really big file of text. +07456 Really big file of text. +07457 Really big file of text. +07458 Really big file of text. +07459 Really big file of text. +07460 Really big file of text. +07461 Really big file of text. +07462 Really big file of text. +07463 Really big file of text. +07464 Really big file of text. +07465 Really big file of text. +07466 Really big file of text. +07467 Really big file of text. +07468 Really big file of text. +07469 Really big file of text. +07470 Really big file of text. +07471 Really big file of text. +07472 Really big file of text. +07473 Really big file of text. +07474 Really big file of text. +07475 Really big file of text. +07476 Really big file of text. +07477 Really big file of text. +07478 Really big file of text. +07479 Really big file of text. +07480 Really big file of text. +07481 Really big file of text. +07482 Really big file of text. +07483 Really big file of text. +07484 Really big file of text. +07485 Really big file of text. +07486 Really big file of text. +07487 Really big file of text. +07488 Really big file of text. +07489 Really big file of text. +07490 Really big file of text. +07491 Really big file of text. +07492 Really big file of text. +07493 Really big file of text. +07494 Really big file of text. +07495 Really big file of text. +07496 Really big file of text. +07497 Really big file of text. +07498 Really big file of text. +07499 Really big file of text. +07500 Really big file of text. +07501 Really big file of text. +07502 Really big file of text. +07503 Really big file of text. +07504 Really big file of text. +07505 Really big file of text. +07506 Really big file of text. +07507 Really big file of text. +07508 Really big file of text. +07509 Really big file of text. +07510 Really big file of text. +07511 Really big file of text. +07512 Really big file of text. +07513 Really big file of text. +07514 Really big file of text. +07515 Really big file of text. +07516 Really big file of text. +07517 Really big file of text. +07518 Really big file of text. +07519 Really big file of text. +07520 Really big file of text. +07521 Really big file of text. +07522 Really big file of text. +07523 Really big file of text. +07524 Really big file of text. +07525 Really big file of text. +07526 Really big file of text. +07527 Really big file of text. +07528 Really big file of text. +07529 Really big file of text. +07530 Really big file of text. +07531 Really big file of text. +07532 Really big file of text. +07533 Really big file of text. +07534 Really big file of text. +07535 Really big file of text. +07536 Really big file of text. +07537 Really big file of text. +07538 Really big file of text. +07539 Really big file of text. +07540 Really big file of text. +07541 Really big file of text. +07542 Really big file of text. +07543 Really big file of text. +07544 Really big file of text. +07545 Really big file of text. +07546 Really big file of text. +07547 Really big file of text. +07548 Really big file of text. +07549 Really big file of text. +07550 Really big file of text. +07551 Really big file of text. +07552 Really big file of text. +07553 Really big file of text. +07554 Really big file of text. +07555 Really big file of text. +07556 Really big file of text. +07557 Really big file of text. +07558 Really big file of text. +07559 Really big file of text. +07560 Really big file of text. +07561 Really big file of text. +07562 Really big file of text. +07563 Really big file of text. +07564 Really big file of text. +07565 Really big file of text. +07566 Really big file of text. +07567 Really big file of text. +07568 Really big file of text. +07569 Really big file of text. +07570 Really big file of text. +07571 Really big file of text. +07572 Really big file of text. +07573 Really big file of text. +07574 Really big file of text. +07575 Really big file of text. +07576 Really big file of text. +07577 Really big file of text. +07578 Really big file of text. +07579 Really big file of text. +07580 Really big file of text. +07581 Really big file of text. +07582 Really big file of text. +07583 Really big file of text. +07584 Really big file of text. +07585 Really big file of text. +07586 Really big file of text. +07587 Really big file of text. +07588 Really big file of text. +07589 Really big file of text. +07590 Really big file of text. +07591 Really big file of text. +07592 Really big file of text. +07593 Really big file of text. +07594 Really big file of text. +07595 Really big file of text. +07596 Really big file of text. +07597 Really big file of text. +07598 Really big file of text. +07599 Really big file of text. +07600 Really big file of text. +07601 Really big file of text. +07602 Really big file of text. +07603 Really big file of text. +07604 Really big file of text. +07605 Really big file of text. +07606 Really big file of text. +07607 Really big file of text. +07608 Really big file of text. +07609 Really big file of text. +07610 Really big file of text. +07611 Really big file of text. +07612 Really big file of text. +07613 Really big file of text. +07614 Really big file of text. +07615 Really big file of text. +07616 Really big file of text. +07617 Really big file of text. +07618 Really big file of text. +07619 Really big file of text. +07620 Really big file of text. +07621 Really big file of text. +07622 Really big file of text. +07623 Really big file of text. +07624 Really big file of text. +07625 Really big file of text. +07626 Really big file of text. +07627 Really big file of text. +07628 Really big file of text. +07629 Really big file of text. +07630 Really big file of text. +07631 Really big file of text. +07632 Really big file of text. +07633 Really big file of text. +07634 Really big file of text. +07635 Really big file of text. +07636 Really big file of text. +07637 Really big file of text. +07638 Really big file of text. +07639 Really big file of text. +07640 Really big file of text. +07641 Really big file of text. +07642 Really big file of text. +07643 Really big file of text. +07644 Really big file of text. +07645 Really big file of text. +07646 Really big file of text. +07647 Really big file of text. +07648 Really big file of text. +07649 Really big file of text. +07650 Really big file of text. +07651 Really big file of text. +07652 Really big file of text. +07653 Really big file of text. +07654 Really big file of text. +07655 Really big file of text. +07656 Really big file of text. +07657 Really big file of text. +07658 Really big file of text. +07659 Really big file of text. +07660 Really big file of text. +07661 Really big file of text. +07662 Really big file of text. +07663 Really big file of text. +07664 Really big file of text. +07665 Really big file of text. +07666 Really big file of text. +07667 Really big file of text. +07668 Really big file of text. +07669 Really big file of text. +07670 Really big file of text. +07671 Really big file of text. +07672 Really big file of text. +07673 Really big file of text. +07674 Really big file of text. +07675 Really big file of text. +07676 Really big file of text. +07677 Really big file of text. +07678 Really big file of text. +07679 Really big file of text. +07680 Really big file of text. +07681 Really big file of text. +07682 Really big file of text. +07683 Really big file of text. +07684 Really big file of text. +07685 Really big file of text. +07686 Really big file of text. +07687 Really big file of text. +07688 Really big file of text. +07689 Really big file of text. +07690 Really big file of text. +07691 Really big file of text. +07692 Really big file of text. +07693 Really big file of text. +07694 Really big file of text. +07695 Really big file of text. +07696 Really big file of text. +07697 Really big file of text. +07698 Really big file of text. +07699 Really big file of text. +07700 Really big file of text. +07701 Really big file of text. +07702 Really big file of text. +07703 Really big file of text. +07704 Really big file of text. +07705 Really big file of text. +07706 Really big file of text. +07707 Really big file of text. +07708 Really big file of text. +07709 Really big file of text. +07710 Really big file of text. +07711 Really big file of text. +07712 Really big file of text. +07713 Really big file of text. +07714 Really big file of text. +07715 Really big file of text. +07716 Really big file of text. +07717 Really big file of text. +07718 Really big file of text. +07719 Really big file of text. +07720 Really big file of text. +07721 Really big file of text. +07722 Really big file of text. +07723 Really big file of text. +07724 Really big file of text. +07725 Really big file of text. +07726 Really big file of text. +07727 Really big file of text. +07728 Really big file of text. +07729 Really big file of text. +07730 Really big file of text. +07731 Really big file of text. +07732 Really big file of text. +07733 Really big file of text. +07734 Really big file of text. +07735 Really big file of text. +07736 Really big file of text. +07737 Really big file of text. +07738 Really big file of text. +07739 Really big file of text. +07740 Really big file of text. +07741 Really big file of text. +07742 Really big file of text. +07743 Really big file of text. +07744 Really big file of text. +07745 Really big file of text. +07746 Really big file of text. +07747 Really big file of text. +07748 Really big file of text. +07749 Really big file of text. +07750 Really big file of text. +07751 Really big file of text. +07752 Really big file of text. +07753 Really big file of text. +07754 Really big file of text. +07755 Really big file of text. +07756 Really big file of text. +07757 Really big file of text. +07758 Really big file of text. +07759 Really big file of text. +07760 Really big file of text. +07761 Really big file of text. +07762 Really big file of text. +07763 Really big file of text. +07764 Really big file of text. +07765 Really big file of text. +07766 Really big file of text. +07767 Really big file of text. +07768 Really big file of text. +07769 Really big file of text. +07770 Really big file of text. +07771 Really big file of text. +07772 Really big file of text. +07773 Really big file of text. +07774 Really big file of text. +07775 Really big file of text. +07776 Really big file of text. +07777 Really big file of text. +07778 Really big file of text. +07779 Really big file of text. +07780 Really big file of text. +07781 Really big file of text. +07782 Really big file of text. +07783 Really big file of text. +07784 Really big file of text. +07785 Really big file of text. +07786 Really big file of text. +07787 Really big file of text. +07788 Really big file of text. +07789 Really big file of text. +07790 Really big file of text. +07791 Really big file of text. +07792 Really big file of text. +07793 Really big file of text. +07794 Really big file of text. +07795 Really big file of text. +07796 Really big file of text. +07797 Really big file of text. +07798 Really big file of text. +07799 Really big file of text. +07800 Really big file of text. +07801 Really big file of text. +07802 Really big file of text. +07803 Really big file of text. +07804 Really big file of text. +07805 Really big file of text. +07806 Really big file of text. +07807 Really big file of text. +07808 Really big file of text. +07809 Really big file of text. +07810 Really big file of text. +07811 Really big file of text. +07812 Really big file of text. +07813 Really big file of text. +07814 Really big file of text. +07815 Really big file of text. +07816 Really big file of text. +07817 Really big file of text. +07818 Really big file of text. +07819 Really big file of text. +07820 Really big file of text. +07821 Really big file of text. +07822 Really big file of text. +07823 Really big file of text. +07824 Really big file of text. +07825 Really big file of text. +07826 Really big file of text. +07827 Really big file of text. +07828 Really big file of text. +07829 Really big file of text. +07830 Really big file of text. +07831 Really big file of text. +07832 Really big file of text. +07833 Really big file of text. +07834 Really big file of text. +07835 Really big file of text. +07836 Really big file of text. +07837 Really big file of text. +07838 Really big file of text. +07839 Really big file of text. +07840 Really big file of text. +07841 Really big file of text. +07842 Really big file of text. +07843 Really big file of text. +07844 Really big file of text. +07845 Really big file of text. +07846 Really big file of text. +07847 Really big file of text. +07848 Really big file of text. +07849 Really big file of text. +07850 Really big file of text. +07851 Really big file of text. +07852 Really big file of text. +07853 Really big file of text. +07854 Really big file of text. +07855 Really big file of text. +07856 Really big file of text. +07857 Really big file of text. +07858 Really big file of text. +07859 Really big file of text. +07860 Really big file of text. +07861 Really big file of text. +07862 Really big file of text. +07863 Really big file of text. +07864 Really big file of text. +07865 Really big file of text. +07866 Really big file of text. +07867 Really big file of text. +07868 Really big file of text. +07869 Really big file of text. +07870 Really big file of text. +07871 Really big file of text. +07872 Really big file of text. +07873 Really big file of text. +07874 Really big file of text. +07875 Really big file of text. +07876 Really big file of text. +07877 Really big file of text. +07878 Really big file of text. +07879 Really big file of text. +07880 Really big file of text. +07881 Really big file of text. +07882 Really big file of text. +07883 Really big file of text. +07884 Really big file of text. +07885 Really big file of text. +07886 Really big file of text. +07887 Really big file of text. +07888 Really big file of text. +07889 Really big file of text. +07890 Really big file of text. +07891 Really big file of text. +07892 Really big file of text. +07893 Really big file of text. +07894 Really big file of text. +07895 Really big file of text. +07896 Really big file of text. +07897 Really big file of text. +07898 Really big file of text. +07899 Really big file of text. +07900 Really big file of text. +07901 Really big file of text. +07902 Really big file of text. +07903 Really big file of text. +07904 Really big file of text. +07905 Really big file of text. +07906 Really big file of text. +07907 Really big file of text. +07908 Really big file of text. +07909 Really big file of text. +07910 Really big file of text. +07911 Really big file of text. +07912 Really big file of text. +07913 Really big file of text. +07914 Really big file of text. +07915 Really big file of text. +07916 Really big file of text. +07917 Really big file of text. +07918 Really big file of text. +07919 Really big file of text. +07920 Really big file of text. +07921 Really big file of text. +07922 Really big file of text. +07923 Really big file of text. +07924 Really big file of text. +07925 Really big file of text. +07926 Really big file of text. +07927 Really big file of text. +07928 Really big file of text. +07929 Really big file of text. +07930 Really big file of text. +07931 Really big file of text. +07932 Really big file of text. +07933 Really big file of text. +07934 Really big file of text. +07935 Really big file of text. +07936 Really big file of text. +07937 Really big file of text. +07938 Really big file of text. +07939 Really big file of text. +07940 Really big file of text. +07941 Really big file of text. +07942 Really big file of text. +07943 Really big file of text. +07944 Really big file of text. +07945 Really big file of text. +07946 Really big file of text. +07947 Really big file of text. +07948 Really big file of text. +07949 Really big file of text. +07950 Really big file of text. +07951 Really big file of text. +07952 Really big file of text. +07953 Really big file of text. +07954 Really big file of text. +07955 Really big file of text. +07956 Really big file of text. +07957 Really big file of text. +07958 Really big file of text. +07959 Really big file of text. +07960 Really big file of text. +07961 Really big file of text. +07962 Really big file of text. +07963 Really big file of text. +07964 Really big file of text. +07965 Really big file of text. +07966 Really big file of text. +07967 Really big file of text. +07968 Really big file of text. +07969 Really big file of text. +07970 Really big file of text. +07971 Really big file of text. +07972 Really big file of text. +07973 Really big file of text. +07974 Really big file of text. +07975 Really big file of text. +07976 Really big file of text. +07977 Really big file of text. +07978 Really big file of text. +07979 Really big file of text. +07980 Really big file of text. +07981 Really big file of text. +07982 Really big file of text. +07983 Really big file of text. +07984 Really big file of text. +07985 Really big file of text. +07986 Really big file of text. +07987 Really big file of text. +07988 Really big file of text. +07989 Really big file of text. +07990 Really big file of text. +07991 Really big file of text. +07992 Really big file of text. +07993 Really big file of text. +07994 Really big file of text. +07995 Really big file of text. +07996 Really big file of text. +07997 Really big file of text. +07998 Really big file of text. +07999 Really big file of text. +08000 Really big file of text. +08001 Really big file of text. +08002 Really big file of text. +08003 Really big file of text. +08004 Really big file of text. +08005 Really big file of text. +08006 Really big file of text. +08007 Really big file of text. +08008 Really big file of text. +08009 Really big file of text. +08010 Really big file of text. +08011 Really big file of text. +08012 Really big file of text. +08013 Really big file of text. +08014 Really big file of text. +08015 Really big file of text. +08016 Really big file of text. +08017 Really big file of text. +08018 Really big file of text. +08019 Really big file of text. +08020 Really big file of text. +08021 Really big file of text. +08022 Really big file of text. +08023 Really big file of text. +08024 Really big file of text. +08025 Really big file of text. +08026 Really big file of text. +08027 Really big file of text. +08028 Really big file of text. +08029 Really big file of text. +08030 Really big file of text. +08031 Really big file of text. +08032 Really big file of text. +08033 Really big file of text. +08034 Really big file of text. +08035 Really big file of text. +08036 Really big file of text. +08037 Really big file of text. +08038 Really big file of text. +08039 Really big file of text. +08040 Really big file of text. +08041 Really big file of text. +08042 Really big file of text. +08043 Really big file of text. +08044 Really big file of text. +08045 Really big file of text. +08046 Really big file of text. +08047 Really big file of text. +08048 Really big file of text. +08049 Really big file of text. +08050 Really big file of text. +08051 Really big file of text. +08052 Really big file of text. +08053 Really big file of text. +08054 Really big file of text. +08055 Really big file of text. +08056 Really big file of text. +08057 Really big file of text. +08058 Really big file of text. +08059 Really big file of text. +08060 Really big file of text. +08061 Really big file of text. +08062 Really big file of text. +08063 Really big file of text. +08064 Really big file of text. +08065 Really big file of text. +08066 Really big file of text. +08067 Really big file of text. +08068 Really big file of text. +08069 Really big file of text. +08070 Really big file of text. +08071 Really big file of text. +08072 Really big file of text. +08073 Really big file of text. +08074 Really big file of text. +08075 Really big file of text. +08076 Really big file of text. +08077 Really big file of text. +08078 Really big file of text. +08079 Really big file of text. +08080 Really big file of text. +08081 Really big file of text. +08082 Really big file of text. +08083 Really big file of text. +08084 Really big file of text. +08085 Really big file of text. +08086 Really big file of text. +08087 Really big file of text. +08088 Really big file of text. +08089 Really big file of text. +08090 Really big file of text. +08091 Really big file of text. +08092 Really big file of text. +08093 Really big file of text. +08094 Really big file of text. +08095 Really big file of text. +08096 Really big file of text. +08097 Really big file of text. +08098 Really big file of text. +08099 Really big file of text. +08100 Really big file of text. +08101 Really big file of text. +08102 Really big file of text. +08103 Really big file of text. +08104 Really big file of text. +08105 Really big file of text. +08106 Really big file of text. +08107 Really big file of text. +08108 Really big file of text. +08109 Really big file of text. +08110 Really big file of text. +08111 Really big file of text. +08112 Really big file of text. +08113 Really big file of text. +08114 Really big file of text. +08115 Really big file of text. +08116 Really big file of text. +08117 Really big file of text. +08118 Really big file of text. +08119 Really big file of text. +08120 Really big file of text. +08121 Really big file of text. +08122 Really big file of text. +08123 Really big file of text. +08124 Really big file of text. +08125 Really big file of text. +08126 Really big file of text. +08127 Really big file of text. +08128 Really big file of text. +08129 Really big file of text. +08130 Really big file of text. +08131 Really big file of text. +08132 Really big file of text. +08133 Really big file of text. +08134 Really big file of text. +08135 Really big file of text. +08136 Really big file of text. +08137 Really big file of text. +08138 Really big file of text. +08139 Really big file of text. +08140 Really big file of text. +08141 Really big file of text. +08142 Really big file of text. +08143 Really big file of text. +08144 Really big file of text. +08145 Really big file of text. +08146 Really big file of text. +08147 Really big file of text. +08148 Really big file of text. +08149 Really big file of text. +08150 Really big file of text. +08151 Really big file of text. +08152 Really big file of text. +08153 Really big file of text. +08154 Really big file of text. +08155 Really big file of text. +08156 Really big file of text. +08157 Really big file of text. +08158 Really big file of text. +08159 Really big file of text. +08160 Really big file of text. +08161 Really big file of text. +08162 Really big file of text. +08163 Really big file of text. +08164 Really big file of text. +08165 Really big file of text. +08166 Really big file of text. +08167 Really big file of text. +08168 Really big file of text. +08169 Really big file of text. +08170 Really big file of text. +08171 Really big file of text. +08172 Really big file of text. +08173 Really big file of text. +08174 Really big file of text. +08175 Really big file of text. +08176 Really big file of text. +08177 Really big file of text. +08178 Really big file of text. +08179 Really big file of text. +08180 Really big file of text. +08181 Really big file of text. +08182 Really big file of text. +08183 Really big file of text. +08184 Really big file of text. +08185 Really big file of text. +08186 Really big file of text. +08187 Really big file of text. +08188 Really big file of text. +08189 Really big file of text. +08190 Really big file of text. +08191 Really big file of text. +08192 Really big file of text. +08193 Really big file of text. +08194 Really big file of text. +08195 Really big file of text. +08196 Really big file of text. +08197 Really big file of text. +08198 Really big file of text. +08199 Really big file of text. +08200 Really big file of text. +08201 Really big file of text. +08202 Really big file of text. +08203 Really big file of text. +08204 Really big file of text. +08205 Really big file of text. +08206 Really big file of text. +08207 Really big file of text. +08208 Really big file of text. +08209 Really big file of text. +08210 Really big file of text. +08211 Really big file of text. +08212 Really big file of text. +08213 Really big file of text. +08214 Really big file of text. +08215 Really big file of text. +08216 Really big file of text. +08217 Really big file of text. +08218 Really big file of text. +08219 Really big file of text. +08220 Really big file of text. +08221 Really big file of text. +08222 Really big file of text. +08223 Really big file of text. +08224 Really big file of text. +08225 Really big file of text. +08226 Really big file of text. +08227 Really big file of text. +08228 Really big file of text. +08229 Really big file of text. +08230 Really big file of text. +08231 Really big file of text. +08232 Really big file of text. +08233 Really big file of text. +08234 Really big file of text. +08235 Really big file of text. +08236 Really big file of text. +08237 Really big file of text. +08238 Really big file of text. +08239 Really big file of text. +08240 Really big file of text. +08241 Really big file of text. +08242 Really big file of text. +08243 Really big file of text. +08244 Really big file of text. +08245 Really big file of text. +08246 Really big file of text. +08247 Really big file of text. +08248 Really big file of text. +08249 Really big file of text. +08250 Really big file of text. +08251 Really big file of text. +08252 Really big file of text. +08253 Really big file of text. +08254 Really big file of text. +08255 Really big file of text. +08256 Really big file of text. +08257 Really big file of text. +08258 Really big file of text. +08259 Really big file of text. +08260 Really big file of text. +08261 Really big file of text. +08262 Really big file of text. +08263 Really big file of text. +08264 Really big file of text. +08265 Really big file of text. +08266 Really big file of text. +08267 Really big file of text. +08268 Really big file of text. +08269 Really big file of text. +08270 Really big file of text. +08271 Really big file of text. +08272 Really big file of text. +08273 Really big file of text. +08274 Really big file of text. +08275 Really big file of text. +08276 Really big file of text. +08277 Really big file of text. +08278 Really big file of text. +08279 Really big file of text. +08280 Really big file of text. +08281 Really big file of text. +08282 Really big file of text. +08283 Really big file of text. +08284 Really big file of text. +08285 Really big file of text. +08286 Really big file of text. +08287 Really big file of text. +08288 Really big file of text. +08289 Really big file of text. +08290 Really big file of text. +08291 Really big file of text. +08292 Really big file of text. +08293 Really big file of text. +08294 Really big file of text. +08295 Really big file of text. +08296 Really big file of text. +08297 Really big file of text. +08298 Really big file of text. +08299 Really big file of text. +08300 Really big file of text. +08301 Really big file of text. +08302 Really big file of text. +08303 Really big file of text. +08304 Really big file of text. +08305 Really big file of text. +08306 Really big file of text. +08307 Really big file of text. +08308 Really big file of text. +08309 Really big file of text. +08310 Really big file of text. +08311 Really big file of text. +08312 Really big file of text. +08313 Really big file of text. +08314 Really big file of text. +08315 Really big file of text. +08316 Really big file of text. +08317 Really big file of text. +08318 Really big file of text. +08319 Really big file of text. +08320 Really big file of text. +08321 Really big file of text. +08322 Really big file of text. +08323 Really big file of text. +08324 Really big file of text. +08325 Really big file of text. +08326 Really big file of text. +08327 Really big file of text. +08328 Really big file of text. +08329 Really big file of text. +08330 Really big file of text. +08331 Really big file of text. +08332 Really big file of text. +08333 Really big file of text. +08334 Really big file of text. +08335 Really big file of text. +08336 Really big file of text. +08337 Really big file of text. +08338 Really big file of text. +08339 Really big file of text. +08340 Really big file of text. +08341 Really big file of text. +08342 Really big file of text. +08343 Really big file of text. +08344 Really big file of text. +08345 Really big file of text. +08346 Really big file of text. +08347 Really big file of text. +08348 Really big file of text. +08349 Really big file of text. +08350 Really big file of text. +08351 Really big file of text. +08352 Really big file of text. +08353 Really big file of text. +08354 Really big file of text. +08355 Really big file of text. +08356 Really big file of text. +08357 Really big file of text. +08358 Really big file of text. +08359 Really big file of text. +08360 Really big file of text. +08361 Really big file of text. +08362 Really big file of text. +08363 Really big file of text. +08364 Really big file of text. +08365 Really big file of text. +08366 Really big file of text. +08367 Really big file of text. +08368 Really big file of text. +08369 Really big file of text. +08370 Really big file of text. +08371 Really big file of text. +08372 Really big file of text. +08373 Really big file of text. +08374 Really big file of text. +08375 Really big file of text. +08376 Really big file of text. +08377 Really big file of text. +08378 Really big file of text. +08379 Really big file of text. +08380 Really big file of text. +08381 Really big file of text. +08382 Really big file of text. +08383 Really big file of text. +08384 Really big file of text. +08385 Really big file of text. +08386 Really big file of text. +08387 Really big file of text. +08388 Really big file of text. +08389 Really big file of text. +08390 Really big file of text. +08391 Really big file of text. +08392 Really big file of text. +08393 Really big file of text. +08394 Really big file of text. +08395 Really big file of text. +08396 Really big file of text. +08397 Really big file of text. +08398 Really big file of text. +08399 Really big file of text. +08400 Really big file of text. +08401 Really big file of text. +08402 Really big file of text. +08403 Really big file of text. +08404 Really big file of text. +08405 Really big file of text. +08406 Really big file of text. +08407 Really big file of text. +08408 Really big file of text. +08409 Really big file of text. +08410 Really big file of text. +08411 Really big file of text. +08412 Really big file of text. +08413 Really big file of text. +08414 Really big file of text. +08415 Really big file of text. +08416 Really big file of text. +08417 Really big file of text. +08418 Really big file of text. +08419 Really big file of text. +08420 Really big file of text. +08421 Really big file of text. +08422 Really big file of text. +08423 Really big file of text. +08424 Really big file of text. +08425 Really big file of text. +08426 Really big file of text. +08427 Really big file of text. +08428 Really big file of text. +08429 Really big file of text. +08430 Really big file of text. +08431 Really big file of text. +08432 Really big file of text. +08433 Really big file of text. +08434 Really big file of text. +08435 Really big file of text. +08436 Really big file of text. +08437 Really big file of text. +08438 Really big file of text. +08439 Really big file of text. +08440 Really big file of text. +08441 Really big file of text. +08442 Really big file of text. +08443 Really big file of text. +08444 Really big file of text. +08445 Really big file of text. +08446 Really big file of text. +08447 Really big file of text. +08448 Really big file of text. +08449 Really big file of text. +08450 Really big file of text. +08451 Really big file of text. +08452 Really big file of text. +08453 Really big file of text. +08454 Really big file of text. +08455 Really big file of text. +08456 Really big file of text. +08457 Really big file of text. +08458 Really big file of text. +08459 Really big file of text. +08460 Really big file of text. +08461 Really big file of text. +08462 Really big file of text. +08463 Really big file of text. +08464 Really big file of text. +08465 Really big file of text. +08466 Really big file of text. +08467 Really big file of text. +08468 Really big file of text. +08469 Really big file of text. +08470 Really big file of text. +08471 Really big file of text. +08472 Really big file of text. +08473 Really big file of text. +08474 Really big file of text. +08475 Really big file of text. +08476 Really big file of text. +08477 Really big file of text. +08478 Really big file of text. +08479 Really big file of text. +08480 Really big file of text. +08481 Really big file of text. +08482 Really big file of text. +08483 Really big file of text. +08484 Really big file of text. +08485 Really big file of text. +08486 Really big file of text. +08487 Really big file of text. +08488 Really big file of text. +08489 Really big file of text. +08490 Really big file of text. +08491 Really big file of text. +08492 Really big file of text. +08493 Really big file of text. +08494 Really big file of text. +08495 Really big file of text. +08496 Really big file of text. +08497 Really big file of text. +08498 Really big file of text. +08499 Really big file of text. +08500 Really big file of text. +08501 Really big file of text. +08502 Really big file of text. +08503 Really big file of text. +08504 Really big file of text. +08505 Really big file of text. +08506 Really big file of text. +08507 Really big file of text. +08508 Really big file of text. +08509 Really big file of text. +08510 Really big file of text. +08511 Really big file of text. +08512 Really big file of text. +08513 Really big file of text. +08514 Really big file of text. +08515 Really big file of text. +08516 Really big file of text. +08517 Really big file of text. +08518 Really big file of text. +08519 Really big file of text. +08520 Really big file of text. +08521 Really big file of text. +08522 Really big file of text. +08523 Really big file of text. +08524 Really big file of text. +08525 Really big file of text. +08526 Really big file of text. +08527 Really big file of text. +08528 Really big file of text. +08529 Really big file of text. +08530 Really big file of text. +08531 Really big file of text. +08532 Really big file of text. +08533 Really big file of text. +08534 Really big file of text. +08535 Really big file of text. +08536 Really big file of text. +08537 Really big file of text. +08538 Really big file of text. +08539 Really big file of text. +08540 Really big file of text. +08541 Really big file of text. +08542 Really big file of text. +08543 Really big file of text. +08544 Really big file of text. +08545 Really big file of text. +08546 Really big file of text. +08547 Really big file of text. +08548 Really big file of text. +08549 Really big file of text. +08550 Really big file of text. +08551 Really big file of text. +08552 Really big file of text. +08553 Really big file of text. +08554 Really big file of text. +08555 Really big file of text. +08556 Really big file of text. +08557 Really big file of text. +08558 Really big file of text. +08559 Really big file of text. +08560 Really big file of text. +08561 Really big file of text. +08562 Really big file of text. +08563 Really big file of text. +08564 Really big file of text. +08565 Really big file of text. +08566 Really big file of text. +08567 Really big file of text. +08568 Really big file of text. +08569 Really big file of text. +08570 Really big file of text. +08571 Really big file of text. +08572 Really big file of text. +08573 Really big file of text. +08574 Really big file of text. +08575 Really big file of text. +08576 Really big file of text. +08577 Really big file of text. +08578 Really big file of text. +08579 Really big file of text. +08580 Really big file of text. +08581 Really big file of text. +08582 Really big file of text. +08583 Really big file of text. +08584 Really big file of text. +08585 Really big file of text. +08586 Really big file of text. +08587 Really big file of text. +08588 Really big file of text. +08589 Really big file of text. +08590 Really big file of text. +08591 Really big file of text. +08592 Really big file of text. +08593 Really big file of text. +08594 Really big file of text. +08595 Really big file of text. +08596 Really big file of text. +08597 Really big file of text. +08598 Really big file of text. +08599 Really big file of text. +08600 Really big file of text. +08601 Really big file of text. +08602 Really big file of text. +08603 Really big file of text. +08604 Really big file of text. +08605 Really big file of text. +08606 Really big file of text. +08607 Really big file of text. +08608 Really big file of text. +08609 Really big file of text. +08610 Really big file of text. +08611 Really big file of text. +08612 Really big file of text. +08613 Really big file of text. +08614 Really big file of text. +08615 Really big file of text. +08616 Really big file of text. +08617 Really big file of text. +08618 Really big file of text. +08619 Really big file of text. +08620 Really big file of text. +08621 Really big file of text. +08622 Really big file of text. +08623 Really big file of text. +08624 Really big file of text. +08625 Really big file of text. +08626 Really big file of text. +08627 Really big file of text. +08628 Really big file of text. +08629 Really big file of text. +08630 Really big file of text. +08631 Really big file of text. +08632 Really big file of text. +08633 Really big file of text. +08634 Really big file of text. +08635 Really big file of text. +08636 Really big file of text. +08637 Really big file of text. +08638 Really big file of text. +08639 Really big file of text. +08640 Really big file of text. +08641 Really big file of text. +08642 Really big file of text. +08643 Really big file of text. +08644 Really big file of text. +08645 Really big file of text. +08646 Really big file of text. +08647 Really big file of text. +08648 Really big file of text. +08649 Really big file of text. +08650 Really big file of text. +08651 Really big file of text. +08652 Really big file of text. +08653 Really big file of text. +08654 Really big file of text. +08655 Really big file of text. +08656 Really big file of text. +08657 Really big file of text. +08658 Really big file of text. +08659 Really big file of text. +08660 Really big file of text. +08661 Really big file of text. +08662 Really big file of text. +08663 Really big file of text. +08664 Really big file of text. +08665 Really big file of text. +08666 Really big file of text. +08667 Really big file of text. +08668 Really big file of text. +08669 Really big file of text. +08670 Really big file of text. +08671 Really big file of text. +08672 Really big file of text. +08673 Really big file of text. +08674 Really big file of text. +08675 Really big file of text. +08676 Really big file of text. +08677 Really big file of text. +08678 Really big file of text. +08679 Really big file of text. +08680 Really big file of text. +08681 Really big file of text. +08682 Really big file of text. +08683 Really big file of text. +08684 Really big file of text. +08685 Really big file of text. +08686 Really big file of text. +08687 Really big file of text. +08688 Really big file of text. +08689 Really big file of text. +08690 Really big file of text. +08691 Really big file of text. +08692 Really big file of text. +08693 Really big file of text. +08694 Really big file of text. +08695 Really big file of text. +08696 Really big file of text. +08697 Really big file of text. +08698 Really big file of text. +08699 Really big file of text. +08700 Really big file of text. +08701 Really big file of text. +08702 Really big file of text. +08703 Really big file of text. +08704 Really big file of text. +08705 Really big file of text. +08706 Really big file of text. +08707 Really big file of text. +08708 Really big file of text. +08709 Really big file of text. +08710 Really big file of text. +08711 Really big file of text. +08712 Really big file of text. +08713 Really big file of text. +08714 Really big file of text. +08715 Really big file of text. +08716 Really big file of text. +08717 Really big file of text. +08718 Really big file of text. +08719 Really big file of text. +08720 Really big file of text. +08721 Really big file of text. +08722 Really big file of text. +08723 Really big file of text. +08724 Really big file of text. +08725 Really big file of text. +08726 Really big file of text. +08727 Really big file of text. +08728 Really big file of text. +08729 Really big file of text. +08730 Really big file of text. +08731 Really big file of text. +08732 Really big file of text. +08733 Really big file of text. +08734 Really big file of text. +08735 Really big file of text. +08736 Really big file of text. +08737 Really big file of text. +08738 Really big file of text. +08739 Really big file of text. +08740 Really big file of text. +08741 Really big file of text. +08742 Really big file of text. +08743 Really big file of text. +08744 Really big file of text. +08745 Really big file of text. +08746 Really big file of text. +08747 Really big file of text. +08748 Really big file of text. +08749 Really big file of text. +08750 Really big file of text. +08751 Really big file of text. +08752 Really big file of text. +08753 Really big file of text. +08754 Really big file of text. +08755 Really big file of text. +08756 Really big file of text. +08757 Really big file of text. +08758 Really big file of text. +08759 Really big file of text. +08760 Really big file of text. +08761 Really big file of text. +08762 Really big file of text. +08763 Really big file of text. +08764 Really big file of text. +08765 Really big file of text. +08766 Really big file of text. +08767 Really big file of text. +08768 Really big file of text. +08769 Really big file of text. +08770 Really big file of text. +08771 Really big file of text. +08772 Really big file of text. +08773 Really big file of text. +08774 Really big file of text. +08775 Really big file of text. +08776 Really big file of text. +08777 Really big file of text. +08778 Really big file of text. +08779 Really big file of text. +08780 Really big file of text. +08781 Really big file of text. +08782 Really big file of text. +08783 Really big file of text. +08784 Really big file of text. +08785 Really big file of text. +08786 Really big file of text. +08787 Really big file of text. +08788 Really big file of text. +08789 Really big file of text. +08790 Really big file of text. +08791 Really big file of text. +08792 Really big file of text. +08793 Really big file of text. +08794 Really big file of text. +08795 Really big file of text. +08796 Really big file of text. +08797 Really big file of text. +08798 Really big file of text. +08799 Really big file of text. +08800 Really big file of text. +08801 Really big file of text. +08802 Really big file of text. +08803 Really big file of text. +08804 Really big file of text. +08805 Really big file of text. +08806 Really big file of text. +08807 Really big file of text. +08808 Really big file of text. +08809 Really big file of text. +08810 Really big file of text. +08811 Really big file of text. +08812 Really big file of text. +08813 Really big file of text. +08814 Really big file of text. +08815 Really big file of text. +08816 Really big file of text. +08817 Really big file of text. +08818 Really big file of text. +08819 Really big file of text. +08820 Really big file of text. +08821 Really big file of text. +08822 Really big file of text. +08823 Really big file of text. +08824 Really big file of text. +08825 Really big file of text. +08826 Really big file of text. +08827 Really big file of text. +08828 Really big file of text. +08829 Really big file of text. +08830 Really big file of text. +08831 Really big file of text. +08832 Really big file of text. +08833 Really big file of text. +08834 Really big file of text. +08835 Really big file of text. +08836 Really big file of text. +08837 Really big file of text. +08838 Really big file of text. +08839 Really big file of text. +08840 Really big file of text. +08841 Really big file of text. +08842 Really big file of text. +08843 Really big file of text. +08844 Really big file of text. +08845 Really big file of text. +08846 Really big file of text. +08847 Really big file of text. +08848 Really big file of text. +08849 Really big file of text. +08850 Really big file of text. +08851 Really big file of text. +08852 Really big file of text. +08853 Really big file of text. +08854 Really big file of text. +08855 Really big file of text. +08856 Really big file of text. +08857 Really big file of text. +08858 Really big file of text. +08859 Really big file of text. +08860 Really big file of text. +08861 Really big file of text. +08862 Really big file of text. +08863 Really big file of text. +08864 Really big file of text. +08865 Really big file of text. +08866 Really big file of text. +08867 Really big file of text. +08868 Really big file of text. +08869 Really big file of text. +08870 Really big file of text. +08871 Really big file of text. +08872 Really big file of text. +08873 Really big file of text. +08874 Really big file of text. +08875 Really big file of text. +08876 Really big file of text. +08877 Really big file of text. +08878 Really big file of text. +08879 Really big file of text. +08880 Really big file of text. +08881 Really big file of text. +08882 Really big file of text. +08883 Really big file of text. +08884 Really big file of text. +08885 Really big file of text. +08886 Really big file of text. +08887 Really big file of text. +08888 Really big file of text. +08889 Really big file of text. +08890 Really big file of text. +08891 Really big file of text. +08892 Really big file of text. +08893 Really big file of text. +08894 Really big file of text. +08895 Really big file of text. +08896 Really big file of text. +08897 Really big file of text. +08898 Really big file of text. +08899 Really big file of text. +08900 Really big file of text. +08901 Really big file of text. +08902 Really big file of text. +08903 Really big file of text. +08904 Really big file of text. +08905 Really big file of text. +08906 Really big file of text. +08907 Really big file of text. +08908 Really big file of text. +08909 Really big file of text. +08910 Really big file of text. +08911 Really big file of text. +08912 Really big file of text. +08913 Really big file of text. +08914 Really big file of text. +08915 Really big file of text. +08916 Really big file of text. +08917 Really big file of text. +08918 Really big file of text. +08919 Really big file of text. +08920 Really big file of text. +08921 Really big file of text. +08922 Really big file of text. +08923 Really big file of text. +08924 Really big file of text. +08925 Really big file of text. +08926 Really big file of text. +08927 Really big file of text. +08928 Really big file of text. +08929 Really big file of text. +08930 Really big file of text. +08931 Really big file of text. +08932 Really big file of text. +08933 Really big file of text. +08934 Really big file of text. +08935 Really big file of text. +08936 Really big file of text. +08937 Really big file of text. +08938 Really big file of text. +08939 Really big file of text. +08940 Really big file of text. +08941 Really big file of text. +08942 Really big file of text. +08943 Really big file of text. +08944 Really big file of text. +08945 Really big file of text. +08946 Really big file of text. +08947 Really big file of text. +08948 Really big file of text. +08949 Really big file of text. +08950 Really big file of text. +08951 Really big file of text. +08952 Really big file of text. +08953 Really big file of text. +08954 Really big file of text. +08955 Really big file of text. +08956 Really big file of text. +08957 Really big file of text. +08958 Really big file of text. +08959 Really big file of text. +08960 Really big file of text. +08961 Really big file of text. +08962 Really big file of text. +08963 Really big file of text. +08964 Really big file of text. +08965 Really big file of text. +08966 Really big file of text. +08967 Really big file of text. +08968 Really big file of text. +08969 Really big file of text. +08970 Really big file of text. +08971 Really big file of text. +08972 Really big file of text. +08973 Really big file of text. +08974 Really big file of text. +08975 Really big file of text. +08976 Really big file of text. +08977 Really big file of text. +08978 Really big file of text. +08979 Really big file of text. +08980 Really big file of text. +08981 Really big file of text. +08982 Really big file of text. +08983 Really big file of text. +08984 Really big file of text. +08985 Really big file of text. +08986 Really big file of text. +08987 Really big file of text. +08988 Really big file of text. +08989 Really big file of text. +08990 Really big file of text. +08991 Really big file of text. +08992 Really big file of text. +08993 Really big file of text. +08994 Really big file of text. +08995 Really big file of text. +08996 Really big file of text. +08997 Really big file of text. +08998 Really big file of text. +08999 Really big file of text. +09000 Really big file of text. +09001 Really big file of text. +09002 Really big file of text. +09003 Really big file of text. +09004 Really big file of text. +09005 Really big file of text. +09006 Really big file of text. +09007 Really big file of text. +09008 Really big file of text. +09009 Really big file of text. +09010 Really big file of text. +09011 Really big file of text. +09012 Really big file of text. +09013 Really big file of text. +09014 Really big file of text. +09015 Really big file of text. +09016 Really big file of text. +09017 Really big file of text. +09018 Really big file of text. +09019 Really big file of text. +09020 Really big file of text. +09021 Really big file of text. +09022 Really big file of text. +09023 Really big file of text. +09024 Really big file of text. +09025 Really big file of text. +09026 Really big file of text. +09027 Really big file of text. +09028 Really big file of text. +09029 Really big file of text. +09030 Really big file of text. +09031 Really big file of text. +09032 Really big file of text. +09033 Really big file of text. +09034 Really big file of text. +09035 Really big file of text. +09036 Really big file of text. +09037 Really big file of text. +09038 Really big file of text. +09039 Really big file of text. +09040 Really big file of text. +09041 Really big file of text. +09042 Really big file of text. +09043 Really big file of text. +09044 Really big file of text. +09045 Really big file of text. +09046 Really big file of text. +09047 Really big file of text. +09048 Really big file of text. +09049 Really big file of text. +09050 Really big file of text. +09051 Really big file of text. +09052 Really big file of text. +09053 Really big file of text. +09054 Really big file of text. +09055 Really big file of text. +09056 Really big file of text. +09057 Really big file of text. +09058 Really big file of text. +09059 Really big file of text. +09060 Really big file of text. +09061 Really big file of text. +09062 Really big file of text. +09063 Really big file of text. +09064 Really big file of text. +09065 Really big file of text. +09066 Really big file of text. +09067 Really big file of text. +09068 Really big file of text. +09069 Really big file of text. +09070 Really big file of text. +09071 Really big file of text. +09072 Really big file of text. +09073 Really big file of text. +09074 Really big file of text. +09075 Really big file of text. +09076 Really big file of text. +09077 Really big file of text. +09078 Really big file of text. +09079 Really big file of text. +09080 Really big file of text. +09081 Really big file of text. +09082 Really big file of text. +09083 Really big file of text. +09084 Really big file of text. +09085 Really big file of text. +09086 Really big file of text. +09087 Really big file of text. +09088 Really big file of text. +09089 Really big file of text. +09090 Really big file of text. +09091 Really big file of text. +09092 Really big file of text. +09093 Really big file of text. +09094 Really big file of text. +09095 Really big file of text. +09096 Really big file of text. +09097 Really big file of text. +09098 Really big file of text. +09099 Really big file of text. +09100 Really big file of text. +09101 Really big file of text. +09102 Really big file of text. +09103 Really big file of text. +09104 Really big file of text. +09105 Really big file of text. +09106 Really big file of text. +09107 Really big file of text. +09108 Really big file of text. +09109 Really big file of text. +09110 Really big file of text. +09111 Really big file of text. +09112 Really big file of text. +09113 Really big file of text. +09114 Really big file of text. +09115 Really big file of text. +09116 Really big file of text. +09117 Really big file of text. +09118 Really big file of text. +09119 Really big file of text. +09120 Really big file of text. +09121 Really big file of text. +09122 Really big file of text. +09123 Really big file of text. +09124 Really big file of text. +09125 Really big file of text. +09126 Really big file of text. +09127 Really big file of text. +09128 Really big file of text. +09129 Really big file of text. +09130 Really big file of text. +09131 Really big file of text. +09132 Really big file of text. +09133 Really big file of text. +09134 Really big file of text. +09135 Really big file of text. +09136 Really big file of text. +09137 Really big file of text. +09138 Really big file of text. +09139 Really big file of text. +09140 Really big file of text. +09141 Really big file of text. +09142 Really big file of text. +09143 Really big file of text. +09144 Really big file of text. +09145 Really big file of text. +09146 Really big file of text. +09147 Really big file of text. +09148 Really big file of text. +09149 Really big file of text. +09150 Really big file of text. +09151 Really big file of text. +09152 Really big file of text. +09153 Really big file of text. +09154 Really big file of text. +09155 Really big file of text. +09156 Really big file of text. +09157 Really big file of text. +09158 Really big file of text. +09159 Really big file of text. +09160 Really big file of text. +09161 Really big file of text. +09162 Really big file of text. +09163 Really big file of text. +09164 Really big file of text. +09165 Really big file of text. +09166 Really big file of text. +09167 Really big file of text. +09168 Really big file of text. +09169 Really big file of text. +09170 Really big file of text. +09171 Really big file of text. +09172 Really big file of text. +09173 Really big file of text. +09174 Really big file of text. +09175 Really big file of text. +09176 Really big file of text. +09177 Really big file of text. +09178 Really big file of text. +09179 Really big file of text. +09180 Really big file of text. +09181 Really big file of text. +09182 Really big file of text. +09183 Really big file of text. +09184 Really big file of text. +09185 Really big file of text. +09186 Really big file of text. +09187 Really big file of text. +09188 Really big file of text. +09189 Really big file of text. +09190 Really big file of text. +09191 Really big file of text. +09192 Really big file of text. +09193 Really big file of text. +09194 Really big file of text. +09195 Really big file of text. +09196 Really big file of text. +09197 Really big file of text. +09198 Really big file of text. +09199 Really big file of text. +09200 Really big file of text. +09201 Really big file of text. +09202 Really big file of text. +09203 Really big file of text. +09204 Really big file of text. +09205 Really big file of text. +09206 Really big file of text. +09207 Really big file of text. +09208 Really big file of text. +09209 Really big file of text. +09210 Really big file of text. +09211 Really big file of text. +09212 Really big file of text. +09213 Really big file of text. +09214 Really big file of text. +09215 Really big file of text. +09216 Really big file of text. +09217 Really big file of text. +09218 Really big file of text. +09219 Really big file of text. +09220 Really big file of text. +09221 Really big file of text. +09222 Really big file of text. +09223 Really big file of text. +09224 Really big file of text. +09225 Really big file of text. +09226 Really big file of text. +09227 Really big file of text. +09228 Really big file of text. +09229 Really big file of text. +09230 Really big file of text. +09231 Really big file of text. +09232 Really big file of text. +09233 Really big file of text. +09234 Really big file of text. +09235 Really big file of text. +09236 Really big file of text. +09237 Really big file of text. +09238 Really big file of text. +09239 Really big file of text. +09240 Really big file of text. +09241 Really big file of text. +09242 Really big file of text. +09243 Really big file of text. +09244 Really big file of text. +09245 Really big file of text. +09246 Really big file of text. +09247 Really big file of text. +09248 Really big file of text. +09249 Really big file of text. +09250 Really big file of text. +09251 Really big file of text. +09252 Really big file of text. +09253 Really big file of text. +09254 Really big file of text. +09255 Really big file of text. +09256 Really big file of text. +09257 Really big file of text. +09258 Really big file of text. +09259 Really big file of text. +09260 Really big file of text. +09261 Really big file of text. +09262 Really big file of text. +09263 Really big file of text. +09264 Really big file of text. +09265 Really big file of text. +09266 Really big file of text. +09267 Really big file of text. +09268 Really big file of text. +09269 Really big file of text. +09270 Really big file of text. +09271 Really big file of text. +09272 Really big file of text. +09273 Really big file of text. +09274 Really big file of text. +09275 Really big file of text. +09276 Really big file of text. +09277 Really big file of text. +09278 Really big file of text. +09279 Really big file of text. +09280 Really big file of text. +09281 Really big file of text. +09282 Really big file of text. +09283 Really big file of text. +09284 Really big file of text. +09285 Really big file of text. +09286 Really big file of text. +09287 Really big file of text. +09288 Really big file of text. +09289 Really big file of text. +09290 Really big file of text. +09291 Really big file of text. +09292 Really big file of text. +09293 Really big file of text. +09294 Really big file of text. +09295 Really big file of text. +09296 Really big file of text. +09297 Really big file of text. +09298 Really big file of text. +09299 Really big file of text. +09300 Really big file of text. +09301 Really big file of text. +09302 Really big file of text. +09303 Really big file of text. +09304 Really big file of text. +09305 Really big file of text. +09306 Really big file of text. +09307 Really big file of text. +09308 Really big file of text. +09309 Really big file of text. +09310 Really big file of text. +09311 Really big file of text. +09312 Really big file of text. +09313 Really big file of text. +09314 Really big file of text. +09315 Really big file of text. +09316 Really big file of text. +09317 Really big file of text. +09318 Really big file of text. +09319 Really big file of text. +09320 Really big file of text. +09321 Really big file of text. +09322 Really big file of text. +09323 Really big file of text. +09324 Really big file of text. +09325 Really big file of text. +09326 Really big file of text. +09327 Really big file of text. +09328 Really big file of text. +09329 Really big file of text. +09330 Really big file of text. +09331 Really big file of text. +09332 Really big file of text. +09333 Really big file of text. +09334 Really big file of text. +09335 Really big file of text. +09336 Really big file of text. +09337 Really big file of text. +09338 Really big file of text. +09339 Really big file of text. +09340 Really big file of text. +09341 Really big file of text. +09342 Really big file of text. +09343 Really big file of text. +09344 Really big file of text. +09345 Really big file of text. +09346 Really big file of text. +09347 Really big file of text. +09348 Really big file of text. +09349 Really big file of text. +09350 Really big file of text. +09351 Really big file of text. +09352 Really big file of text. +09353 Really big file of text. +09354 Really big file of text. +09355 Really big file of text. +09356 Really big file of text. +09357 Really big file of text. +09358 Really big file of text. +09359 Really big file of text. +09360 Really big file of text. +09361 Really big file of text. +09362 Really big file of text. +09363 Really big file of text. +09364 Really big file of text. +09365 Really big file of text. +09366 Really big file of text. +09367 Really big file of text. +09368 Really big file of text. +09369 Really big file of text. +09370 Really big file of text. +09371 Really big file of text. +09372 Really big file of text. +09373 Really big file of text. +09374 Really big file of text. +09375 Really big file of text. +09376 Really big file of text. +09377 Really big file of text. +09378 Really big file of text. +09379 Really big file of text. +09380 Really big file of text. +09381 Really big file of text. +09382 Really big file of text. +09383 Really big file of text. +09384 Really big file of text. +09385 Really big file of text. +09386 Really big file of text. +09387 Really big file of text. +09388 Really big file of text. +09389 Really big file of text. +09390 Really big file of text. +09391 Really big file of text. +09392 Really big file of text. +09393 Really big file of text. +09394 Really big file of text. +09395 Really big file of text. +09396 Really big file of text. +09397 Really big file of text. +09398 Really big file of text. +09399 Really big file of text. +09400 Really big file of text. +09401 Really big file of text. +09402 Really big file of text. +09403 Really big file of text. +09404 Really big file of text. +09405 Really big file of text. +09406 Really big file of text. +09407 Really big file of text. +09408 Really big file of text. +09409 Really big file of text. +09410 Really big file of text. +09411 Really big file of text. +09412 Really big file of text. +09413 Really big file of text. +09414 Really big file of text. +09415 Really big file of text. +09416 Really big file of text. +09417 Really big file of text. +09418 Really big file of text. +09419 Really big file of text. +09420 Really big file of text. +09421 Really big file of text. +09422 Really big file of text. +09423 Really big file of text. +09424 Really big file of text. +09425 Really big file of text. +09426 Really big file of text. +09427 Really big file of text. +09428 Really big file of text. +09429 Really big file of text. +09430 Really big file of text. +09431 Really big file of text. +09432 Really big file of text. +09433 Really big file of text. +09434 Really big file of text. +09435 Really big file of text. +09436 Really big file of text. +09437 Really big file of text. +09438 Really big file of text. +09439 Really big file of text. +09440 Really big file of text. +09441 Really big file of text. +09442 Really big file of text. +09443 Really big file of text. +09444 Really big file of text. +09445 Really big file of text. +09446 Really big file of text. +09447 Really big file of text. +09448 Really big file of text. +09449 Really big file of text. +09450 Really big file of text. +09451 Really big file of text. +09452 Really big file of text. +09453 Really big file of text. +09454 Really big file of text. +09455 Really big file of text. +09456 Really big file of text. +09457 Really big file of text. +09458 Really big file of text. +09459 Really big file of text. +09460 Really big file of text. +09461 Really big file of text. +09462 Really big file of text. +09463 Really big file of text. +09464 Really big file of text. +09465 Really big file of text. +09466 Really big file of text. +09467 Really big file of text. +09468 Really big file of text. +09469 Really big file of text. +09470 Really big file of text. +09471 Really big file of text. +09472 Really big file of text. +09473 Really big file of text. +09474 Really big file of text. +09475 Really big file of text. +09476 Really big file of text. +09477 Really big file of text. +09478 Really big file of text. +09479 Really big file of text. +09480 Really big file of text. +09481 Really big file of text. +09482 Really big file of text. +09483 Really big file of text. +09484 Really big file of text. +09485 Really big file of text. +09486 Really big file of text. +09487 Really big file of text. +09488 Really big file of text. +09489 Really big file of text. +09490 Really big file of text. +09491 Really big file of text. +09492 Really big file of text. +09493 Really big file of text. +09494 Really big file of text. +09495 Really big file of text. +09496 Really big file of text. +09497 Really big file of text. +09498 Really big file of text. +09499 Really big file of text. +09500 Really big file of text. +09501 Really big file of text. +09502 Really big file of text. +09503 Really big file of text. +09504 Really big file of text. +09505 Really big file of text. +09506 Really big file of text. +09507 Really big file of text. +09508 Really big file of text. +09509 Really big file of text. +09510 Really big file of text. +09511 Really big file of text. +09512 Really big file of text. +09513 Really big file of text. +09514 Really big file of text. +09515 Really big file of text. +09516 Really big file of text. +09517 Really big file of text. +09518 Really big file of text. +09519 Really big file of text. +09520 Really big file of text. +09521 Really big file of text. +09522 Really big file of text. +09523 Really big file of text. +09524 Really big file of text. +09525 Really big file of text. +09526 Really big file of text. +09527 Really big file of text. +09528 Really big file of text. +09529 Really big file of text. +09530 Really big file of text. +09531 Really big file of text. +09532 Really big file of text. +09533 Really big file of text. +09534 Really big file of text. +09535 Really big file of text. +09536 Really big file of text. +09537 Really big file of text. +09538 Really big file of text. +09539 Really big file of text. +09540 Really big file of text. +09541 Really big file of text. +09542 Really big file of text. +09543 Really big file of text. +09544 Really big file of text. +09545 Really big file of text. +09546 Really big file of text. +09547 Really big file of text. +09548 Really big file of text. +09549 Really big file of text. +09550 Really big file of text. +09551 Really big file of text. +09552 Really big file of text. +09553 Really big file of text. +09554 Really big file of text. +09555 Really big file of text. +09556 Really big file of text. +09557 Really big file of text. +09558 Really big file of text. +09559 Really big file of text. +09560 Really big file of text. +09561 Really big file of text. +09562 Really big file of text. +09563 Really big file of text. +09564 Really big file of text. +09565 Really big file of text. +09566 Really big file of text. +09567 Really big file of text. +09568 Really big file of text. +09569 Really big file of text. +09570 Really big file of text. +09571 Really big file of text. +09572 Really big file of text. +09573 Really big file of text. +09574 Really big file of text. +09575 Really big file of text. +09576 Really big file of text. +09577 Really big file of text. +09578 Really big file of text. +09579 Really big file of text. +09580 Really big file of text. +09581 Really big file of text. +09582 Really big file of text. +09583 Really big file of text. +09584 Really big file of text. +09585 Really big file of text. +09586 Really big file of text. +09587 Really big file of text. +09588 Really big file of text. +09589 Really big file of text. +09590 Really big file of text. +09591 Really big file of text. +09592 Really big file of text. +09593 Really big file of text. +09594 Really big file of text. +09595 Really big file of text. +09596 Really big file of text. +09597 Really big file of text. +09598 Really big file of text. +09599 Really big file of text. +09600 Really big file of text. +09601 Really big file of text. +09602 Really big file of text. +09603 Really big file of text. +09604 Really big file of text. +09605 Really big file of text. +09606 Really big file of text. +09607 Really big file of text. +09608 Really big file of text. +09609 Really big file of text. +09610 Really big file of text. +09611 Really big file of text. +09612 Really big file of text. +09613 Really big file of text. +09614 Really big file of text. +09615 Really big file of text. +09616 Really big file of text. +09617 Really big file of text. +09618 Really big file of text. +09619 Really big file of text. +09620 Really big file of text. +09621 Really big file of text. +09622 Really big file of text. +09623 Really big file of text. +09624 Really big file of text. +09625 Really big file of text. +09626 Really big file of text. +09627 Really big file of text. +09628 Really big file of text. +09629 Really big file of text. +09630 Really big file of text. +09631 Really big file of text. +09632 Really big file of text. +09633 Really big file of text. +09634 Really big file of text. +09635 Really big file of text. +09636 Really big file of text. +09637 Really big file of text. +09638 Really big file of text. +09639 Really big file of text. +09640 Really big file of text. +09641 Really big file of text. +09642 Really big file of text. +09643 Really big file of text. +09644 Really big file of text. +09645 Really big file of text. +09646 Really big file of text. +09647 Really big file of text. +09648 Really big file of text. +09649 Really big file of text. +09650 Really big file of text. +09651 Really big file of text. +09652 Really big file of text. +09653 Really big file of text. +09654 Really big file of text. +09655 Really big file of text. +09656 Really big file of text. +09657 Really big file of text. +09658 Really big file of text. +09659 Really big file of text. +09660 Really big file of text. +09661 Really big file of text. +09662 Really big file of text. +09663 Really big file of text. +09664 Really big file of text. +09665 Really big file of text. +09666 Really big file of text. +09667 Really big file of text. +09668 Really big file of text. +09669 Really big file of text. +09670 Really big file of text. +09671 Really big file of text. +09672 Really big file of text. +09673 Really big file of text. +09674 Really big file of text. +09675 Really big file of text. +09676 Really big file of text. +09677 Really big file of text. +09678 Really big file of text. +09679 Really big file of text. +09680 Really big file of text. +09681 Really big file of text. +09682 Really big file of text. +09683 Really big file of text. +09684 Really big file of text. +09685 Really big file of text. +09686 Really big file of text. +09687 Really big file of text. +09688 Really big file of text. +09689 Really big file of text. +09690 Really big file of text. +09691 Really big file of text. +09692 Really big file of text. +09693 Really big file of text. +09694 Really big file of text. +09695 Really big file of text. +09696 Really big file of text. +09697 Really big file of text. +09698 Really big file of text. +09699 Really big file of text. +09700 Really big file of text. +09701 Really big file of text. +09702 Really big file of text. +09703 Really big file of text. +09704 Really big file of text. +09705 Really big file of text. +09706 Really big file of text. +09707 Really big file of text. +09708 Really big file of text. +09709 Really big file of text. +09710 Really big file of text. +09711 Really big file of text. +09712 Really big file of text. +09713 Really big file of text. +09714 Really big file of text. +09715 Really big file of text. +09716 Really big file of text. +09717 Really big file of text. +09718 Really big file of text. +09719 Really big file of text. +09720 Really big file of text. +09721 Really big file of text. +09722 Really big file of text. +09723 Really big file of text. +09724 Really big file of text. +09725 Really big file of text. +09726 Really big file of text. +09727 Really big file of text. +09728 Really big file of text. +09729 Really big file of text. +09730 Really big file of text. +09731 Really big file of text. +09732 Really big file of text. +09733 Really big file of text. +09734 Really big file of text. +09735 Really big file of text. +09736 Really big file of text. +09737 Really big file of text. +09738 Really big file of text. +09739 Really big file of text. +09740 Really big file of text. +09741 Really big file of text. +09742 Really big file of text. +09743 Really big file of text. +09744 Really big file of text. +09745 Really big file of text. +09746 Really big file of text. +09747 Really big file of text. +09748 Really big file of text. +09749 Really big file of text. +09750 Really big file of text. +09751 Really big file of text. +09752 Really big file of text. +09753 Really big file of text. +09754 Really big file of text. +09755 Really big file of text. +09756 Really big file of text. +09757 Really big file of text. +09758 Really big file of text. +09759 Really big file of text. +09760 Really big file of text. +09761 Really big file of text. +09762 Really big file of text. +09763 Really big file of text. +09764 Really big file of text. +09765 Really big file of text. +09766 Really big file of text. +09767 Really big file of text. +09768 Really big file of text. +09769 Really big file of text. +09770 Really big file of text. +09771 Really big file of text. +09772 Really big file of text. +09773 Really big file of text. +09774 Really big file of text. +09775 Really big file of text. +09776 Really big file of text. +09777 Really big file of text. +09778 Really big file of text. +09779 Really big file of text. +09780 Really big file of text. +09781 Really big file of text. +09782 Really big file of text. +09783 Really big file of text. +09784 Really big file of text. +09785 Really big file of text. +09786 Really big file of text. +09787 Really big file of text. +09788 Really big file of text. +09789 Really big file of text. +09790 Really big file of text. +09791 Really big file of text. +09792 Really big file of text. +09793 Really big file of text. +09794 Really big file of text. +09795 Really big file of text. +09796 Really big file of text. +09797 Really big file of text. +09798 Really big file of text. +09799 Really big file of text. +09800 Really big file of text. +09801 Really big file of text. +09802 Really big file of text. +09803 Really big file of text. +09804 Really big file of text. +09805 Really big file of text. +09806 Really big file of text. +09807 Really big file of text. +09808 Really big file of text. +09809 Really big file of text. +09810 Really big file of text. +09811 Really big file of text. +09812 Really big file of text. +09813 Really big file of text. +09814 Really big file of text. +09815 Really big file of text. +09816 Really big file of text. +09817 Really big file of text. +09818 Really big file of text. +09819 Really big file of text. +09820 Really big file of text. +09821 Really big file of text. +09822 Really big file of text. +09823 Really big file of text. +09824 Really big file of text. +09825 Really big file of text. +09826 Really big file of text. +09827 Really big file of text. +09828 Really big file of text. +09829 Really big file of text. +09830 Really big file of text. +09831 Really big file of text. +09832 Really big file of text. +09833 Really big file of text. +09834 Really big file of text. +09835 Really big file of text. +09836 Really big file of text. +09837 Really big file of text. +09838 Really big file of text. +09839 Really big file of text. +09840 Really big file of text. +09841 Really big file of text. +09842 Really big file of text. +09843 Really big file of text. +09844 Really big file of text. +09845 Really big file of text. +09846 Really big file of text. +09847 Really big file of text. +09848 Really big file of text. +09849 Really big file of text. +09850 Really big file of text. +09851 Really big file of text. +09852 Really big file of text. +09853 Really big file of text. +09854 Really big file of text. +09855 Really big file of text. +09856 Really big file of text. +09857 Really big file of text. +09858 Really big file of text. +09859 Really big file of text. +09860 Really big file of text. +09861 Really big file of text. +09862 Really big file of text. +09863 Really big file of text. +09864 Really big file of text. +09865 Really big file of text. +09866 Really big file of text. +09867 Really big file of text. +09868 Really big file of text. +09869 Really big file of text. +09870 Really big file of text. +09871 Really big file of text. +09872 Really big file of text. +09873 Really big file of text. +09874 Really big file of text. +09875 Really big file of text. +09876 Really big file of text. +09877 Really big file of text. +09878 Really big file of text. +09879 Really big file of text. +09880 Really big file of text. +09881 Really big file of text. +09882 Really big file of text. +09883 Really big file of text. +09884 Really big file of text. +09885 Really big file of text. +09886 Really big file of text. +09887 Really big file of text. +09888 Really big file of text. +09889 Really big file of text. +09890 Really big file of text. +09891 Really big file of text. +09892 Really big file of text. +09893 Really big file of text. +09894 Really big file of text. +09895 Really big file of text. +09896 Really big file of text. +09897 Really big file of text. +09898 Really big file of text. +09899 Really big file of text. +09900 Really big file of text. +09901 Really big file of text. +09902 Really big file of text. +09903 Really big file of text. +09904 Really big file of text. +09905 Really big file of text. +09906 Really big file of text. +09907 Really big file of text. +09908 Really big file of text. +09909 Really big file of text. +09910 Really big file of text. +09911 Really big file of text. +09912 Really big file of text. +09913 Really big file of text. +09914 Really big file of text. +09915 Really big file of text. +09916 Really big file of text. +09917 Really big file of text. +09918 Really big file of text. +09919 Really big file of text. +09920 Really big file of text. +09921 Really big file of text. +09922 Really big file of text. +09923 Really big file of text. +09924 Really big file of text. +09925 Really big file of text. +09926 Really big file of text. +09927 Really big file of text. +09928 Really big file of text. +09929 Really big file of text. +09930 Really big file of text. +09931 Really big file of text. +09932 Really big file of text. +09933 Really big file of text. +09934 Really big file of text. +09935 Really big file of text. +09936 Really big file of text. +09937 Really big file of text. +09938 Really big file of text. +09939 Really big file of text. +09940 Really big file of text. +09941 Really big file of text. +09942 Really big file of text. +09943 Really big file of text. +09944 Really big file of text. +09945 Really big file of text. +09946 Really big file of text. +09947 Really big file of text. +09948 Really big file of text. +09949 Really big file of text. +09950 Really big file of text. +09951 Really big file of text. +09952 Really big file of text. +09953 Really big file of text. +09954 Really big file of text. +09955 Really big file of text. +09956 Really big file of text. +09957 Really big file of text. +09958 Really big file of text. +09959 Really big file of text. +09960 Really big file of text. +09961 Really big file of text. +09962 Really big file of text. +09963 Really big file of text. +09964 Really big file of text. +09965 Really big file of text. +09966 Really big file of text. +09967 Really big file of text. +09968 Really big file of text. +09969 Really big file of text. +09970 Really big file of text. +09971 Really big file of text. +09972 Really big file of text. +09973 Really big file of text. +09974 Really big file of text. +09975 Really big file of text. +09976 Really big file of text. +09977 Really big file of text. +09978 Really big file of text. +09979 Really big file of text. +09980 Really big file of text. +09981 Really big file of text. +09982 Really big file of text. +09983 Really big file of text. +09984 Really big file of text. +09985 Really big file of text. +09986 Really big file of text. +09987 Really big file of text. +09988 Really big file of text. +09989 Really big file of text. +09990 Really big file of text. +09991 Really big file of text. +09992 Really big file of text. +09993 Really big file of text. +09994 Really big file of text. +09995 Really big file of text. +09996 Really big file of text. +09997 Really big file of text. +09998 Really big file of text. +09999 Really big file of text. diff --git a/15 Files/files.py b/15 Files/files.py new file mode 100644 index 0000000..83d6391 --- /dev/null +++ b/15 Files/files.py @@ -0,0 +1,11 @@ +#!/usr/bin/python3 +# files.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +def main(): + f = open('lines.txt') + for line in f: + print(line, end = '') + +if __name__ == "__main__": main() diff --git a/15 Files/lines.txt b/15 Files/lines.txt new file mode 100644 index 0000000..33f863b --- /dev/null +++ b/15 Files/lines.txt @@ -0,0 +1,5 @@ +01 This is a line of text +02 This is a line of text +03 This is a line of text +04 This is a line of text +05 This is a line of text diff --git a/15 Files/olives.jpg b/15 Files/olives.jpg new file mode 100644 index 0000000..865d508 Binary files /dev/null and b/15 Files/olives.jpg differ diff --git a/16 Databases/databases.py b/16 Databases/databases.py new file mode 100644 index 0000000..bee7c34 --- /dev/null +++ b/16 Databases/databases.py @@ -0,0 +1,11 @@ +#!/usr/bin/python3 +# databases.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +import sqlite3 + +def main(): + print('This is the databases.py file') + +if __name__ == "__main__": main() diff --git a/16 Databases/sqlite3-class.py b/16 Databases/sqlite3-class.py new file mode 100644 index 0000000..99e022a --- /dev/null +++ b/16 Databases/sqlite3-class.py @@ -0,0 +1,95 @@ +#!/usr/bin/python3 +# sqlite3-class.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +import sqlite3 + +class database: + def __init__(self, **kwargs): + self.filename = kwargs.get('filename') + self.table = kwargs.get('table', 'test') + + def sql_do(self, sql, *params): + self._db.execute(sql, params) + self._db.commit() + + def insert(self, row): + self._db.execute('insert into {} (t1, i1) values (?, ?)'.format(self._table), (row['t1'], row['i1'])) + self._db.commit() + + def retrieve(self, key): + cursor = self._db.execute('select * from {} where t1 = ?'.format(self._table), (key,)) + return dict(cursor.fetchone()) + + def update(self, row): + self._db.execute( + 'update {} set i1 = ? where t1 = ?'.format(self._table), + (row['i1'], row['t1'])) + self._db.commit() + + def delete(self, key): + self._db.execute('delete from {} where t1 = ?'.format(self._table), (key,)) + self._db.commit() + + def disp_rows(self): + cursor = self._db.execute('select * from {} order by t1'.format(self._table)) + for row in cursor: + print(' {}: {}'.format(row['t1'], row['i1'])) + + def __iter__(self): + cursor = self._db.execute('select * from {} order by t1'.format(self._table)) + for row in cursor: + yield dict(row) + + @property + def filename(self): return self._filename + + @filename.setter + def filename(self, fn): + self._filename = fn + self._db = sqlite3.connect(fn) + self._db.row_factory = sqlite3.Row + + @filename.deleter + def filename(self): self.close() + + @property + def table(self): return self._table + @table.setter + def table(self, t): self._table = t + @table.deleter + def table(self): self._table = 'test' + + def close(self): + self._db.close() + del self._filename + +def main(): + db = database(filename = 'test.db', table = 'test') + + print('Create table test') + db.sql_do('drop table if exists test') + db.sql_do('create table test ( t1 text, i1 int )') + + print('Create rows') + db.insert(dict(t1 = 'one', i1 = 1)) + db.insert(dict(t1 = 'two', i1 = 2)) + db.insert(dict(t1 = 'three', i1 = 3)) + db.insert(dict(t1 = 'four', i1 = 4)) + for row in db: print(row) + + print('Retrieve rows') + print(db.retrieve('one'), db.retrieve('two')) + + print('Update rows') + db.update(dict(t1 = 'one', i1 = 101)) + db.update(dict(t1 = 'three', i1 = 103)) + for row in db: print(row) + + print('Delete rows') + db.delete('one') + db.delete('three') + for row in db: print(row) + +if __name__ == "__main__": main() diff --git a/16 Databases/sqlite3-crud.py b/16 Databases/sqlite3-crud.py new file mode 100644 index 0000000..2e19786 --- /dev/null +++ b/16 Databases/sqlite3-crud.py @@ -0,0 +1,56 @@ +#!/usr/bin/python3 +# sqlite3-crud.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +import sqlite3 + +def insert(db, row): + db.execute('insert into test (t1, i1) values (?, ?)', (row['t1'], row['i1'])) + db.commit() + +def retrieve(db, t1): + cursor = db.execute('select * from test where t1 = ?', (t1,)) + return cursor.fetchone() + +def update(db, row): + db.execute('update test set i1 = ? where t1 = ?', (row['i1'], row['t1'])) + db.commit() + +def delete(db, t1): + db.execute('delete from test where t1 = ?', (t1,)) + db.commit() + +def disp_rows(db): + cursor = db.execute('select * from test order by t1') + for row in cursor: + print(' {}: {}'.format(row['t1'], row['i1'])) + +def main(): + db = sqlite3.connect('test.db') + db.row_factory = sqlite3.Row + print('Create table test') + db.execute('drop table if exists test') + db.execute('create table test ( t1 text, i1 int )') + + print('Create rows') + insert(db, dict(t1 = 'one', i1 = 1)) + insert(db, dict(t1 = 'two', i1 = 2)) + insert(db, dict(t1 = 'three', i1 = 3)) + insert(db, dict(t1 = 'four', i1 = 4)) + disp_rows(db) + + print('Retrieve rows') + print(dict(retrieve(db, 'one')), dict(retrieve(db, 'two'))) + + print('Update rows') + update(db, dict(t1 = 'one', i1 = 101)) + update(db, dict(t1 = 'three', i1 = 103)) + disp_rows(db) + + print('Delete rows') + delete(db, 'one') + delete(db, 'three') + disp_rows(db) + +if __name__ == "__main__": main() diff --git a/17 Modules/modules.py b/17 Modules/modules.py new file mode 100644 index 0000000..6cc4314 --- /dev/null +++ b/17 Modules/modules.py @@ -0,0 +1,11 @@ +#!/usr/bin/python3 +# modules.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +import sys + +def main(): + print('Python version {}.{}.{}'.format(*sys.version_info)) + +if __name__ == "__main__": main() diff --git a/17 Modules/saytime.py b/17 Modules/saytime.py new file mode 100644 index 0000000..dfea63c --- /dev/null +++ b/17 Modules/saytime.py @@ -0,0 +1,151 @@ +#!/usr/bin/python3 +# saytime.py by Bill Weinman [http://bw.org/] +# created for Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Gorup, LLC +import sys +import time + +__version__ = "1.1.0" + +class numwords(): + """ + return a number as words, + e.g., 42 becomes "forty-two" + """ + _words = { + 'ones': ( + 'oh', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine' + ), 'tens': ( + '', 'ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety' + ), 'teens': ( + 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen' + ), 'quarters': ( + 'o\'clock', 'quarter', 'half' + ), 'range': { + 'hundred': 'hundred' + }, 'misc': { + 'minus': 'minus' + } + } + _oor = 'OOR' # Out Of Range + + def __init__(self, n): + self.__number = n; + + def numwords(self, num = None): + "Return the number as words" + n = self.__number if num is None else num + s = '' + if n < 0: # negative numbers + s += self._words['misc']['minus'] + ' ' + n = abs(n) + if n < 10: # single-digit numbers + s += self._words['ones'][n] + elif n < 20: # teens + s += self._words['teens'][n - 10] + elif n < 100: # tens + m = n % 10 + t = n // 10 + s += self._words['tens'][t] + if m: s += '-' + numwords(m).numwords() # recurse for remainder + elif n < 1000: # hundreds + m = n % 100 + t = n // 100 + s += self._words['ones'][t] + ' ' + self._words['range']['hundred'] + if m: s += ' ' + numwords(m).numwords() # recurse for remainder + else: + s += self._oor + return s + + def number(self): + "Return the number as a number" + return str(self.__number); + +class saytime(numwords): + """ + return the time (from two parameters) as words, + e.g., fourteen til noon, quarter past one, etc. + """ + + _specials = { + 'noon': 'noon', + 'midnight': 'midnight', + 'til': 'til', + 'past': 'past' + } + + def __init__(self, h, m): + self._hour = abs(int(h)) + self._min = abs(int(m)) + + def words(self): + h = self._hour + m = self._min + + if h > 23: return self._oor # OOR errors + if m > 59: return self._oor + + sign = self._specials['past'] + if self._min > 30: + sign = self._specials['til'] + h += 1 + m = 60 - m + if h > 23: h -= 24 + elif h > 12: h -= 12 + + # hword is the hours word) + if h is 0: hword = self._specials['midnight'] + elif h is 12: hword = self._specials['noon'] + else: hword = self.numwords(h) + + if m is 0: + if h in (0, 12): return hword # for noon and midnight + else: return "{} {}".format(self.numwords(h), self._words['quarters'][m]) + if m % 15 is 0: + return "{} {} {}".format(self._words['quarters'][m // 15], sign, hword) + return "{} {} {}".format(self.numwords(m), sign, hword) + + def digits(self): + "return the traditionl time, e.g., 13:42" + return "{:02}:{:02}".format(self._hour, self._min) + +class saytime_t(saytime): # wrapper for saytime to use time object + """ + return the time (from a time object) as words + e.g., fourteen til noon + """ + def __init__(self, t): + self._hour = t.tm_hour + self._min = t.tm_min + +def main(): + if len(sys.argv) > 1: + if sys.argv[1] == 'test': + test() + else: + try: print(saytime(*(sys.argv[1].split(':'))).words()) + except TypeError: print("Invalid time ({})".format(sys.argv[1])) + else: + print(saytime_t(time.localtime()).words()) + +def test(): + print("\nnumbers test:") + list = ( + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 19, 20, 30, + 50, 51, 52, 55, 59, 99, 100, 101, 112, 900, 999, 1000 + ) + for l in list: + print(l, numwords(l).numwords()) + + print("\ntime test:") + list = ( + (0, 0), (0, 1), (11, 0), (12, 0), (13, 0), (12, 29), (12, 30), + (12, 31), (12, 15), (12, 30), (12, 45), (11, 59), (23, 15), + (23, 59), (12, 59), (13, 59), (1, 60), (24, 0) + ) + for l in list: + print(saytime(*l).digits(), saytime(*l).words()) + + print("\nlocal time is " + saytime_t(time.localtime()).words()) + +if __name__ == "__main__": main() diff --git a/17 Modules/saytime.pyc b/17 Modules/saytime.pyc new file mode 100644 index 0000000..ed24c1d Binary files /dev/null and b/17 Modules/saytime.pyc differ diff --git a/17 Modules/web-saytime.py b/17 Modules/web-saytime.py new file mode 100644 index 0000000..bd69ddf --- /dev/null +++ b/17 Modules/web-saytime.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 +# datetime.py by Bill Weinman +# Copyright (c) 2010 The BearHeart Group, LLC +# CGI/SSI version for bw.org +# + +import time, saytime + +t = time.localtime() +print("Content-type: text/html\n") +print( + "In Phoenix, Arizona, it is now " + + saytime.saytime_t(t).words() + + time.strftime(', on %A, %d %B %Y.') +) + + diff --git a/18 Debugging/incrange-errors.py b/18 Debugging/incrange-errors.py new file mode 100644 index 0000000..5aa05f5 --- /dev/null +++ b/18 Debugging/incrange-errors.py @@ -0,0 +1,31 @@ +#!/usr/bin/python3 +# incrange-errors.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +class inclusive_range: + def __init__(self, *args): + numargs = len(args) + if numargs < 1: raise TypeError('Requires at least one argument') + elif numargs == 1: + self.start = 0 + self.stop = args[0] + self.step = 1 + elif numargs == 2: + (self.start, self.stop) = args + step = 1 + elif numargs == 3: + (self.step, self.stop, self.start) = args + else: raise TypeError('inclusiveRange expected at most 3 arguments, got {}'.format(numargs)) + + def __iter__(self): + i = self.start + while i >= self.stop: + yield i + i += self.step + +def main(): + o = inclusive_range(4, 25, 3) + for i in o: print(i, end = ' ') + +if __name__ == "__main__": main() diff --git a/18 Debugging/mvc-errors.py b/18 Debugging/mvc-errors.py new file mode 100644 index 0000000..ba1458c --- /dev/null +++ b/18 Debugging/mvc-errors.py @@ -0,0 +1,68 @@ +#!/usr/bin/python3 +# mvc-errors.py by Bill Weinman +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright (c) 2010 The BearHeart Group, LLC + +# -- CONTROLLER -- + +class AnimalActions: + def bark(self): return self._doAction('bark') + def fur(self): return self._doAction('fur') + def quack(self): return self._doAction('quack') + def feathers(self): return self._doAction('feathers') + + def _doAction(self, action): + if action in self.strings: + return self.strings[action] + else: + return 'The {} has no {}'.format(self.animalName(), action) + + def animalName(self): + return self.__class__.__name__.lower() + +# -- MODEL -- + +class Duck(AnimalActions): + strings = dict( + quack = "Quaaaaak!", + faethers = "The duck has gray and white feathers." + ) + +class Person(AnimalActions): + strings = dict( + bark = "The person says woof!", + fur = "The person puts on a fur coat.", + quack = "The person imitates a duck.", + feathers = "The person takes a feather from the ground and shows it." + ) + +class Dog(AnimalActions): + strings = dict( + bark = "Arf!", + fur = "The dog has white fur with black spots.", + ) + +# -- VIEW -- + +def in_the_doghouse(dog): + print(dog.bark()) + print(dog.fur()) + +def in_the_forest(duck): + print(duck.quack()) + print(duck.feathers) + +def main(): + donald = Duck() + john = Person() + fido = Dog() + + print("-- In the forest:") + for o in ( donald, john, fido ): + in_the_forest(o) + + print("-- In the doghouse:") + for o in ( donald, john, fido ): + in_the_doghouse(o) + +if __name__ == "__main__": main() diff --git a/18 Debugging/saytime-errors.py b/18 Debugging/saytime-errors.py new file mode 100644 index 0000000..4920472 --- /dev/null +++ b/18 Debugging/saytime-errors.py @@ -0,0 +1,151 @@ +#!/usr/bin/python3 +# saytime-errors.py by Bill Weinman [http://bw.org/] +# created for Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC +import sys +import time + +__version__ = "1.1.0" + +class numwords(): + """ + return a number as words, + e.g., 42 becomes "forty-two" + """ + _words = { + 'ones': ( + 'oh', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine' + ), 'tens': ( + '', 'ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety' + ), 'teens': ( + 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen' + ), 'quarters': ( + 'o\'clock', 'quarter', 'half' + ), 'range': { + 'hundred': 'hundred' + } 'misc': { + 'minus': 'minus' + } + } + _oor = 'OOR' # Out Of Range + + def __init__(self, n): + self.__number = n; + + def numwords(self, num = None): + "Return the number as words" + n = self.__number if num is None else num + s = '' + if n < 0: # negative numbers + s += self._words['misc']['minus'] + ' ' + n = abs(n) + if n < 10: # single-digit numbers + s += self._words['ones'][n] + elif n < 20: # teens + s += self._words['teens'][n - 10] + elif n < 100: # tens + m = n % 10 + t = n // 10 + s += self._words['tens'][t] + if m: s += '-' + numwords(m).numwords() # recurse for remainder + elif n < 1000: # hundreds + m = n % 100 + t = n // 100 + s += self._words['ones'][t] + ' ' + self._words['range']['hundred'] + if m: s += ' ' + numwords(m).numwords() # recurse for remainder + else: + s += self._oor + return s + + def number(self): + "Return the number as a number" + return str(self.__number); + +class saytime(numwords): + """ + return the time (from two parameters) as words, + e.g., fourteen til noon, quarter past one, etc. + """ + + _specials = { + 'noon': 'noon', + 'midnight': 'midnight', + 'til': 'til', + 'past': 'past' + } + + def __init__(self, h, m): + self._hour = abs(int(h)) + self._min = abs(int(m)) + + def words(self): + h = self._hour + m = self._min + + if h > 23: return self._oor # OOR errors + if m > 59: return self._oor + + sign = self._specials['past'] + if self._min > 30: + sign = self._specials['til'] + h += 1 + m = 60 - m + if h > 23: h -= 24 + elif h > 12: h -= 12 + + # hword is the hours word) + if h is 0: hword = self._specials['midnight'] + elif h is 12: hword = self._specials['noon'] + else: hword = self.numwords(h) + + if m is 0: + if h in (0, 12): return hword # for noon and midnight + else: return "{} {}".format(self.numwords(h), self._words['quarters'][m]) + if m % 15 is 0: + return "{} {} {}".format(self._words['quarters'][m // 15], sign, hword) + return "{} {} {}".format(self.numwords(m), sign, hword) + + def digits(self): + "return the traditionl time, e.g., 13:42" + return "{:02}:{:02}".format(self._hour, self._min) + +class saytime_t(saytime): # wrapper for saytime to use time object + """ + return the time (from a time object) as words + e.g., fourteen til noon + """ + def __init__(self, t): + self._hour = t.tm_hour + self._min = t.tm_min + +def main(): + if len(sys.argv) > 1: + if sys.argv[1] == 'test': + test() + else: + try: print(saytime(*(sys.argv[1].split(':'))).words()) + except TypeError: print("Invalid time ({})".format(sys.argv[1])) + else: + print(saytime_t(time.localtime).words) + +def test(): + print("\nnumbers test:") + list = ( + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 19, 20, 30, + 50, 51, 52, 55, 59, 99, 100, 101, 112, 900, 999, 1000 + ) + for l in list: + print(l, numwords(l).numwords()) + + print("\ntime test:") + list = ( + (0, 0), (0, 1), (11, 0), (12, 0), (13, 0), (12, 29), (12, 30), + (12, 31), (12, 15), (12, 30), (12, 45), (11, 59), (23, 15), + (23, 59), (12, 59), (13, 59), (1, 60), (24, 0) + ) + for l in list: + print(saytime(*l).digits(), saytime(*l).words()) + + print("\nlocal time is " + saytime_t(time.localtime()).words()) + +if __name__ == "__main__": main() diff --git a/18 Debugging/saytime.py b/18 Debugging/saytime.py new file mode 100644 index 0000000..dfea63c --- /dev/null +++ b/18 Debugging/saytime.py @@ -0,0 +1,151 @@ +#!/usr/bin/python3 +# saytime.py by Bill Weinman [http://bw.org/] +# created for Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Gorup, LLC +import sys +import time + +__version__ = "1.1.0" + +class numwords(): + """ + return a number as words, + e.g., 42 becomes "forty-two" + """ + _words = { + 'ones': ( + 'oh', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine' + ), 'tens': ( + '', 'ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety' + ), 'teens': ( + 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen' + ), 'quarters': ( + 'o\'clock', 'quarter', 'half' + ), 'range': { + 'hundred': 'hundred' + }, 'misc': { + 'minus': 'minus' + } + } + _oor = 'OOR' # Out Of Range + + def __init__(self, n): + self.__number = n; + + def numwords(self, num = None): + "Return the number as words" + n = self.__number if num is None else num + s = '' + if n < 0: # negative numbers + s += self._words['misc']['minus'] + ' ' + n = abs(n) + if n < 10: # single-digit numbers + s += self._words['ones'][n] + elif n < 20: # teens + s += self._words['teens'][n - 10] + elif n < 100: # tens + m = n % 10 + t = n // 10 + s += self._words['tens'][t] + if m: s += '-' + numwords(m).numwords() # recurse for remainder + elif n < 1000: # hundreds + m = n % 100 + t = n // 100 + s += self._words['ones'][t] + ' ' + self._words['range']['hundred'] + if m: s += ' ' + numwords(m).numwords() # recurse for remainder + else: + s += self._oor + return s + + def number(self): + "Return the number as a number" + return str(self.__number); + +class saytime(numwords): + """ + return the time (from two parameters) as words, + e.g., fourteen til noon, quarter past one, etc. + """ + + _specials = { + 'noon': 'noon', + 'midnight': 'midnight', + 'til': 'til', + 'past': 'past' + } + + def __init__(self, h, m): + self._hour = abs(int(h)) + self._min = abs(int(m)) + + def words(self): + h = self._hour + m = self._min + + if h > 23: return self._oor # OOR errors + if m > 59: return self._oor + + sign = self._specials['past'] + if self._min > 30: + sign = self._specials['til'] + h += 1 + m = 60 - m + if h > 23: h -= 24 + elif h > 12: h -= 12 + + # hword is the hours word) + if h is 0: hword = self._specials['midnight'] + elif h is 12: hword = self._specials['noon'] + else: hword = self.numwords(h) + + if m is 0: + if h in (0, 12): return hword # for noon and midnight + else: return "{} {}".format(self.numwords(h), self._words['quarters'][m]) + if m % 15 is 0: + return "{} {} {}".format(self._words['quarters'][m // 15], sign, hword) + return "{} {} {}".format(self.numwords(m), sign, hword) + + def digits(self): + "return the traditionl time, e.g., 13:42" + return "{:02}:{:02}".format(self._hour, self._min) + +class saytime_t(saytime): # wrapper for saytime to use time object + """ + return the time (from a time object) as words + e.g., fourteen til noon + """ + def __init__(self, t): + self._hour = t.tm_hour + self._min = t.tm_min + +def main(): + if len(sys.argv) > 1: + if sys.argv[1] == 'test': + test() + else: + try: print(saytime(*(sys.argv[1].split(':'))).words()) + except TypeError: print("Invalid time ({})".format(sys.argv[1])) + else: + print(saytime_t(time.localtime()).words()) + +def test(): + print("\nnumbers test:") + list = ( + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 19, 20, 30, + 50, 51, 52, 55, 59, 99, 100, 101, 112, 900, 999, 1000 + ) + for l in list: + print(l, numwords(l).numwords()) + + print("\ntime test:") + list = ( + (0, 0), (0, 1), (11, 0), (12, 0), (13, 0), (12, 29), (12, 30), + (12, 31), (12, 15), (12, 30), (12, 45), (11, 59), (23, 15), + (23, 59), (12, 59), (13, 59), (1, 60), (24, 0) + ) + for l in list: + print(saytime(*l).digits(), saytime(*l).words()) + + print("\nlocal time is " + saytime_t(time.localtime()).words()) + +if __name__ == "__main__": main() diff --git a/18 Debugging/test-saytime.py b/18 Debugging/test-saytime.py new file mode 100644 index 0000000..baefdaf --- /dev/null +++ b/18 Debugging/test-saytime.py @@ -0,0 +1,51 @@ +#!/usr/bin/python3 +# test-saytime.py by Bill Weinman [http://bw.org/] +# This is an exercise file from Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Group, LLC + +import saytime +import unittest + +class TestSaytime(unittest.TestCase): + def setUp(self): + self.nums = list(range(11)) + + def test_numbers(self): + # make sure the numbers translate correctly + words = ( + 'oh', 'one', 'two', 'three', 'four', 'five', + 'six', 'seven', 'eight', 'nine', 'ten' + ) + for i, n in enumerate(self.nums): + self.assertEqual(saytime.numwords(n).numwords(), words[i]) + + def test_time(self): + time_tuples = ( + (0, 0), (0, 1), (11, 0), (12, 0), (13, 0), (12, 29), (12, 30), + (12, 31), (12, 15), (12, 30), (12, 45), (11, 59), (23, 15), + (23, 59), (12, 59), (13, 59), (1, 60), (24, 0) + ) + time_words = ( + "midnight", + "one past midnight", + "eleven o'clock", + "noon", + "one o'clock", + "twenty-nine past noon", + "half past noon", + "twenty-nine til one", + "quarter past noon", + "half past noon", + "quarter til one", + "one til noon", + "quarter past eleven", + "one til midnight", + "one til one", + "one til two", + "OOR", + "OOR" + ) + for i, t in enumerate(time_tuples): + self.assertEqual(saytime.saytime(*t).words(), time_words[i]) + +if __name__ == "__main__": unittest.main() diff --git a/19 Projects/Extras/RSS/rss.db b/19 Projects/Extras/RSS/rss.db new file mode 100644 index 0000000..3505839 Binary files /dev/null and b/19 Projects/Extras/RSS/rss.db differ diff --git a/19 Projects/Extras/RSS/rss.py b/19 Projects/Extras/RSS/rss.py new file mode 100644 index 0000000..bbfd432 --- /dev/null +++ b/19 Projects/Extras/RSS/rss.py @@ -0,0 +1,116 @@ +#!/usr/bin/python3 +# template.py by Bill Weinman [http://bw.org/] +# created for Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Gorup, LLC + +from xml.dom.minidom import parse +from urllib.request import urlopen +from html.parser import HTMLParser + +DEFAULT_NAMESPACES = ( + None, # RSS 09.1, 0.92, 0.93, 0.94, 2.0 + 'http://purl.org/rss/1.0/', # RSS 1.0 + 'http://my.netscape.com/rdf/simple/0.9/', # RSS 0.90 + 'http://www.w3.org/2005/Atom', # ATOM + 'http://purl.org/dc/elements/1.1/' # dublin core namespace +) + +class HTMLDataOnly(HTMLParser): + ''' only gets data (text) from HTML -- no tags! ''' + def handle_data(self, data): + self._data = ' '.join([self._data, data]) if hasattr(self, 'data') else data + def get_data(self): + return self._data + +class RSS: + def __init__(self, url): + self.feed = parse(urlopen(url)) + + # rss or atom? + for t in ('item', 'entry'): + self.node = self.getElementsByTagName(self.feed, t) + if self.node: break + + self.feedTitle = self.textOf(self.first(self.feed, 'title')) + self.feedDescription = self.textOf(self.first(self.feed, 'description')) + self.feedURL = url + self._index = 0; + + def next_index(self, i = None): + print("next_index", self._index) + if i is None: self._index += 1 + elif i < 0: self._index = None + else: self._index = i + if self._index >= len(self.node): self._index = None + return self._index + + def title(self, n = None): + return self.textOfNode('title', n).strip() + + # atom uses an href attribute for the link + def link(self, n = None): + if n is None: n = self.node[self._index] + l = self.textOfNode('link', n).strip() + return l if l else self.attrOf(n, 'link', 'href').strip() + + def description(self, n = None): + htmldata = HTMLDataOnly() + for t in ('description', 'summary'): + text = self.textOfNode(t, n) + if text: + htmldata.feed(text) + return htmldata.get_data().strip() + return '' + + def date(self): + for t in ('date', 'pubDate'): + s = self.textOfNode(t) + if s: return s + + def getElementsByTagName(self, node, tagName, possibleNamespaces=DEFAULT_NAMESPACES): + for namespace in possibleNamespaces: + children = node.getElementsByTagNameNS(namespace, tagName) + if len(children): return children + return [] + + def first(self, node, tagName, possibleNamespaces=DEFAULT_NAMESPACES): + children = self.getElementsByTagName(node, tagName, possibleNamespaces) + return children[0] if len(children) else None + + def attrOf(self, node, element, attr): + n = self.first(node, element) + return n.getAttribute(attr) if n else '' + + def textOf(self, node): + return ''.join([child.data for child in node.childNodes]) if node else '' + + def textOfNode(self, tagName, n = None): + if n is None: n = self.node[self._index] + return self.textOf(self.first(n, tagName)) + + def record(self, n): + return { + 'title': self.title(n), + 'link': self.link(n), + 'description': self.description(n), + 'index': self.node.index(n) + } + + def records(self): + for n in self.node: + yield self.record(n) + +def main(): + for url in ( + 'http://feeds.nytimes.com/nyt/rss/Books', + 'http://billweinman.wordpress.com/feed/', + 'http://perlhacks.com/atom.xml' + ): + rss = RSS(url) + for r in rss.records(): + print("node {} of {}".format(r['index'] + 1, len(rss.node))) + print(r['title']) + print(r['link']) + print(r['description']) + +if __name__ == "__main__": main() diff --git a/19 Projects/Extras/RSS/rssdb.py b/19 Projects/Extras/RSS/rssdb.py new file mode 100644 index 0000000..e6e10e3 --- /dev/null +++ b/19 Projects/Extras/RSS/rssdb.py @@ -0,0 +1,63 @@ +#!/usr/bin/python3 +# template.py by Bill Weinman [http://bw.org/] +# created for Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Gorup, LLC +import sqlite3 + +_DBFILE = 'rss.db' + +class rssDB: + def __init__(self): + self._db = sqlite3.connect(_DBFILE) + self._db.row_factory = sqlite3.Row + self._db.execute(''' + CREATE TABLE IF NOT EXISTS feed ( + id INTEGER PRIMARY KEY, + url TEXT UNIQUE, + title TEXT, + description TEXT + ) + ''') + + def insert(self, rec): + self._db.execute(''' + INSERT into feed (url, title, description) + VALUES (:url, :title, :description) + ''', rec) + self._db.commit() + + def getByURL(self, url): + c = self._db.cursor() + c.execute('SELECT * FROM feed WHERE url = ?', (url,)) + return c.fetchone() + + def getById(self, id): + c = self._db.cursor() + c.execute('SELECT * FROM feed WHERE id = ?', (id,)) + return c.fetchone() + + def update(self, rec): + self._db.execute(''' + UPDATE feed + SET title = :title, description = :description + WHERE url = :url + ''', rec ) + self._db.commit() + + def delById(self, id): + self._db.execute('DELETE from feed WHERE id = ?', (id,)) + self._db.commit() + + def list(self): + c = self._db.cursor() + c.execute('SELECT * FROM feed ORDER BY UPPER(title)') + for r in c: + yield r; + +def main(): + db = rssDB() + print('all recs from {}:'.format(_DBFILE)) + for r in db.list(): + print('{title} [{url}] {description}'.format(**r)) + +if __name__=='__main__': main() diff --git a/19 Projects/Extras/RSS/tkrss.py b/19 Projects/Extras/RSS/tkrss.py new file mode 100644 index 0000000..a56c533 --- /dev/null +++ b/19 Projects/Extras/RSS/tkrss.py @@ -0,0 +1,202 @@ +#!/usr/bin/python3 +# template.py by Bill Weinman [http://bw.org/] +# created for Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Gorup, LLC + +# standard libraries +import sys +import tkinter +import webbrowser + +# BW libraries +from rssdb import rssDB +from rss import RSS + +# for exception symbols +import sqlite3 +import urllib +import xml.parsers.expat + +TITLE = 'RSS Sandbox' + +class hyperlinkManager: + ''' manager for hyperlinks in tk text widgets ''' + def __init__(self, text): + self.text = text + self.text.tag_bind('hyper', '', self._enter) + self.text.tag_bind('hyper', '', self._leave) + self.text.tag_bind('hyper', '', self._click) + self.links = {} + + def add(self, url): + ''' + add an action to the manager. + return tags to use in text wiget + ''' + tag = 'hyper-{}'.format(len(self.links)) + self.links[tag] = url + return 'hyper', tag + + def _enter(self, event): + self.text.config(cursor='hand2') # set the cursor ('hand2' is standard, 'trek' is fun) + + def _leave(self, event): + self.text.config(cursor='') # cursor back to standard + + def _click(self, event): + for tag in self.text.tag_names(tkinter.CURRENT): + if tag[:6] == 'hyper-': + webbrowser.open(self.links[tag]) + break + +class mainWindow(tkinter.Frame): + def __init__(self, master = None, **kwargs): + tkinter.Frame.__init__(self, master) + self._db = rssDB() + self.master.title( TITLE ) + self.createWidgets() + self.grid() + + def createWidgets(self): + # default font + self.defaultFont = ('Helvetica', '16', 'roman') + + # URL text box + self.labelURL = tkinter.Label(text = 'URL') + self.varURL = tkinter.StringVar() + self.entryURL = tkinter.Entry(textvariable = self.varURL, width = 40) + self.buttonURLGo = tkinter.Button (text = 'Go', command = self.go) + self.buttonAdd = tkinter.Button (text = 'Add', command = self.addFeed) + + # Listbox for feeds + self.listBox = tkinter.Listbox() + self.buttonListGo = tkinter.Button (text = 'Go', command = self.listGo) + self.buttonListDel = tkinter.Button (text = 'Del', command = self.listDel) + self.listBox.grid(row = 2, column = 0, rowspan = 4, columnspan = 2, padx = 10, pady = 3) + + # scrollbar for listBox - must have same grid options as listBox + self.textScroll = tkinter.Scrollbar(self.master) + self.textScroll.grid(row = 2, column = 0, columnspan = 2, rowspan = 4, pady = 3, sticky='nse') + self.textScroll.config(command=self.listBox.yview) + self.listBox.config(yscrollcommand=self.textScroll.set) + + # fill the listbox from the database + self.fillListBox() + + # set up the rest of the grid + self.labelURL.grid(row = 0, column = 0, sticky = 'e') + self.entryURL.grid(row = 0, column = 1, pady = 3) + self.buttonURLGo.grid(row = 0, padx = 2, column = 2) + self.buttonAdd.grid(row = 0, padx = 2, column = 3) + self.buttonListDel.grid(row = 4, column = 2, padx = 2, sticky = 'sw') + self.buttonListGo.grid(row = 4, column = 3, padx = 2, sticky = 'sw') + + def fillListBox(self): + self._db_index = []; + self.listBox.config(listvariable = tkinter.StringVar(), width = 40) + for r in self._db.list(): + self.listBox.insert(tkinter.END, r['title']) + self._db_index.append(str(r['id'])) + + def go(self, url = None): + if url is None: url = self.varURL.get() + + contentWindow = tkinter.Toplevel() + textContainer = tkinter.Text(contentWindow, wrap = 'word', height = 25, width = 100) + contentClose = tkinter.Button(contentWindow, text = 'Close', command = contentWindow.destroy) + + textContainer.tag_add('default', '0.0') + textContainer.tag_config('default', font = self.defaultFont) + textContainer.tag_config('hyper', foreground='blue', underline = 1, font = self.defaultFont) + + contentWindow.title('RSS Feed') + contentWindow.grid() + textContainer.grid(row = 0, column = 0, columnspan = 2, padx = 10, pady = 10) + contentClose.grid(row = 1, column = 1, pady = 5) + + # scrollbar for textContainer - must have same grid options as parent + textScroll = tkinter.Scrollbar(contentWindow) + textScroll.grid(row = 0, column = 0, columnspan = 2, sticky='nse') + textScroll.config(command=textContainer.yview) + textContainer.config(yscrollcommand=textScroll.set) + + hyperlink = hyperlinkManager(textContainer) + + try: + feedString = '' + feed = RSS(url) + contentWindow.title(feed.feedTitle) + separator = '--------------------\n' + for r in feed.records(): + textContainer.insert(tkinter.INSERT, separator, 'default') + if ['title'] and r['link']: + textContainer.insert(tkinter.INSERT, r['title'] + '\n', hyperlink.add(r['link'])) + else: + if r['title']: textContainer.insert(tkinter.INSERT, r['title'] + '\n', 'default') + if r['link']: textContainer.insert(tkinter.INSERT, r['title'] + '\n', hyperlink.add(r['link'])) + if r['description']: textContainer.insert(tkinter.INSERT, r['description'] + '\n', 'default') + + except urllib.error.HTTPError as e: self.errorBox(e, contentWindow.destroy) + except urllib.error.URLError as e: self.errorBox(e, contentWindow.destroy) + except ValueError as e: + if url: self.errorBox(e, contentWindow.destroy) + else: contentWindow.destroy() + except xml.parsers.expat.ExpatError as e: self.errorBox(e, contentWindow.destroy) + + def listGo(self): + try: recno = self.listBox.curselection()[0] + except: self.errorBox('No feed selected') + else: + rec = self._db.getById(self._db_index[int(recno)]) + self.varURL.set('') + self.go(rec['url']) + + def listDel(self): + recno = self.listBox.curselection()[0] + itemText = self.listBox.get(recno) + self._db.delById(self._db_index[int(recno)]) + self.fillListBox() + self.messageBox('Deleted from list: {}.'.format(itemText)) + + def addFeed(self): + url = self.varURL.get() + try: + feed = RSS(url) + rec = { + 'title': feed.feedTitle.strip(), + 'url': url.strip(), + 'description': feed.feedDescription.strip() + } + try: + self._db.insert(rec) + except sqlite3.IntegrityError: # duplicate key - update instead + self._db.update(rec) + self.messageBox('Udpated in list: {}.'.format(rec['title'])) + else: + self.fillListBox() + self.messageBox('Added to list: {}.'.format(rec['title'])) + except urllib.error.HTTPError as e: self.errorBox(e) + except urllib.error.URLError as e: self.errorBox(e) + except ValueError as e: self.errorBox(e) + except xml.parsers.expat.ExpatError as e: self.errorBox(e) + + self.varURL.set('') # clear the URL box + + def errorBox(self, message, callback = None): + self.messageBox(message, title = 'Error') + if callback is not None: callback() + + def messageBox(self, message, **kwargs): + mTitle = kwargs['title'] if 'title' in kwargs else 'Message' + messageWindow = tkinter.Toplevel() + textContainer = tkinter.Message(messageWindow, width = 500, text = message) + messageClose = tkinter.Button(messageWindow, text = 'Close', command = messageWindow.destroy) + messageWindow.title(TITLE + ' - ' + mTitle) + messageWindow.grid() + textContainer.grid(sticky = 'ew') + messageClose.grid() + +if __name__=='__main__': + app = mainWindow() + app.mainloop() + diff --git a/19 Projects/lib/bwCGI.py b/19 Projects/lib/bwCGI.py new file mode 100644 index 0000000..010fd41 --- /dev/null +++ b/19 Projects/lib/bwCGI.py @@ -0,0 +1,120 @@ +#!/usr/bin/python3 +# bwCGI.py by Bill Weinman +# Copyright (c) 1995-2010 The BearHeart Group, LLC +# + +from cgi import FieldStorage +import cgitb +import os + +__version__ = '0.3.2' +_cookie_var = 'HTTP_COOKIE' + +class bwCGI: + ''' handy cgi stuff ''' + _header_state = False # True after header has been sent + cgi_cookies = dict() + cgi_headers = dict() + + def __init__(self, **kwargs): + self.set_header('Content-type', kwargs.get('content_type', 'text/html')) + if _cookie_var in os.environ: + self.parse_cookies() + + def set_header(self, k, v): + ''' + set a header + use str for single value, list for multiples values + ''' + if k in self.cgi_headers: + if isinstance(self.cgi_headers[k], list): self.cgi_headers[k].append(v) + else: self.cgi_headers[k] = [ self.cgi_headers[k], v ] + else: + self.cgi_headers[k] = str(v) + return v + + def get_header(self, k): + return self.cgi_headers.get(k, None) + + def send_header(self): + ''' send the header(s), only once ''' + if self._header_state: return + for k in self.cgi_headers: + value = self.cgi_headers[k] + if isinstance(value, list): + for v in value: print('{}: {}'.format(k, v)) + else: + print('{}: {}'.format(k, value)) + print() + self._header_state = True + cgitb.enable() # only after the header has been sent + + def set_cookie(self, key, value, **kwargs): + ''' kwargs can include expires, path, or domain + ''' + cookie = '{}={}'.format(str(key), str(value)) + if kwargs.keys(): + for k in kwargs.keys(): + cookie = '{}; {}={}'.format(cookie, k, kwargs[k]) + self.set_header('Set-Cookie', cookie) + + def parse_cookies(self): + for ck in os.environ[_cookie_var].split(';'): + lhs, rhs = ck.strip().split('=') + self.cgi_cookies[lhs.strip()] = rhs.strip() + + def get_cookies(self): + return self.cgi_cookies; + + def get_cookie(self, key): + return self.cgi_cookies.get(key, None) + + def linkback(self): + ''' return a relative URI for use as a linkback to this script ''' + for e in ( 'REQUEST_URI', 'SCRIPT_NAME' ): + if e in os.environ: + l = os.environ[e] + break + else: return '*** cannot make linkback ***' + if '?' in l: l = l[0:l.find('?')] + return os.path.basename(l) + + def vars(self): + return FieldStorage() + + # utility methods + + def entity_encode(self, s): + ''' convert unicode to XML entities + returns encoded string + ''' + outbytes = bytearray() + for c in s: + if ord(c) > 127: + outbytes += bytes('&#{:d};'.format(ord(c)), encoding = 'utf_8') + else: outbytes.append(ord(c)) + return str(outbytes, encoding = 'utf_8') + +def test(): + if _cookie_var not in os.environ: + os.environ[_cookie_var] = 'one=1; two=2; three=3' + cgi = bwCGI(content_type='text/plain') + cgi.set_header('X-bwCGI', __version__) + cgi.set_header('X-number', 42) + cgi.set_cookie('one', 1) + cgi.set_cookie('two', 2) + cgi.set_cookie('three', 3, path='/', expires='31-Dec-2010 23:59:59 GMT', domain='.bw.org') + cgi.set_cookie('five', 5) + cgi.send_header() # should only see one set of headers + cgi.send_header() + cgi.send_header() + print('Hello, CGI') + print('header X-bwCGI:', cgi.get_header('X-bwCGI')) + print('header Eggs:', cgi.get_header('Eggs')) + print('Cookies:') + print(sorted(cgi.get_cookies())) + print('cookie one:', cgi.get_cookie('one')) + print('cookie seven:', cgi.get_cookie('seven')) + +if __name__ == '__main__': test() + diff --git a/19 Projects/lib/bwConfig.py b/19 Projects/lib/bwConfig.py new file mode 100644 index 0000000..64623ca --- /dev/null +++ b/19 Projects/lib/bwConfig.py @@ -0,0 +1,43 @@ +#!/usr/bin/python3 +# bwConfig.py by Bill Weinman +# Copyright (c) 2010 The BearHeart Group, LLC +# + +__version__ = '1.0.0' + +class configFile: + ''' simple config file support ''' + _recs = {} + def __init__(self, fn): + self._fh = open(fn, 'rt') + self.parse(self._fh) + + def parseline(self, line): + if line[0] == '#': return + if '#' in line: line = line.split('#', 2)[0] + if '=' not in line: return + ( lhs, rhs ) = line.split('=', 2) + self._recs[lhs.strip()] = rhs.strip() + + def parse(self, fh): + for line in fh.readlines(): + self.parseline(line) + + def recs(self): + return self._recs + +def test(): + import sys + fn = sys.argv[1] if len(sys.argv) > 1 else 'test.conf' + + try: + conf = configFile(fn) + except IOError as e: + print('could not open {},'.format(fn), e) + else: + recs = conf.recs() + for k in sorted(recs): + print('{} is [{}]'.format(k, recs[k])) + +if __name__ == "__main__": test() + diff --git a/19 Projects/lib/bwDB.py b/19 Projects/lib/bwDB.py new file mode 100644 index 0000000..d6f7bee --- /dev/null +++ b/19 Projects/lib/bwDB.py @@ -0,0 +1,219 @@ +#!/usr/bin/python3 +# bwTL - BW's template library +# by Bill Weinman [http://bw.org/] +# Copyright 1995-2010 The BearHeart Group LLC + +import sqlite3 + +__version__ = '1.0.3' + +class bwDB: + def __init__(self, **kwargs): + ''' + db = bwDB( [ table = ''] [, filename = ''] ) + constructor method + table is for CRUD methods + filename is for connecting to the database file + ''' + # see filename setter below + self.filename = kwargs.get('filename') + self.table = kwargs.get('table', '') + + def sql_do(self, sql, params = ()): + ''' + db.sql_do( sql[, params] ) + method for non-select queries + sql is string containing SQL + params is list containing parameters + returns nothing + ''' + self._db.execute(sql, params) + self._db.commit() + + def sql_query(self, sql, params = ()): + ''' + db.sql_query( sql[, params] ) + generator method for queries + sql is string containing SQL + params is list containing parameters + returns a generator with one row per iteration + each row is a Row factory + ''' + c = self._db.cursor() + c.execute(sql, params) + for r in c: + yield r + + def sql_query_row(self, sql, params = ()): + ''' + db.sql_query_row( sql[, params] ) + query for a single row + sql is string containing SQL + params is list containing parameters + returns a single row as a Row factory + ''' + c = self._db.cursor() + c.execute(sql, params) + return c.fetchone() + + def sql_query_value(self, sql, params = ()): + ''' + db.sql_query_row( sql[, params] ) + query for a single value + sql is string containing SQL + params is list containing parameters + returns a single value + ''' + c = self._db.cursor() + c.execute(sql, params) + return c.fetchone()[0] + + def getrec(self, id): + ''' + db.getrec(id) + get a single row, by id + ''' + query = 'SELECT * FROM {} WHERE id = ?'.format(self.table) + c = self._db.execute(query, (id,)) + return c.fetchone() + + def getrecs(self): + ''' + db.getrecs(id) + get all rows, returns a generator of Row factories + ''' + query = 'SELECT * FROM {}'.format(self.table) + c = self._db.execute(query) + for r in c: + yield r + + def insert(self, rec): + ''' + db.insert(rec) + insert a single record into the table + rec is a dict with key/value pairs corresponding to table schema + omit id column to let SQLite generate it + ''' + klist = sorted(rec.keys()) + values = [ rec[v] for v in klist ] # a list of values ordered by key + q = 'INSERT INTO {} ({}) VALUES ({})'.format( + self.table, + ', '.join(klist), + ', '.join('?' for i in range(len(values))) + ) + c = self._db.execute(q, values) + self._db.commit() + return c.lastrowid + + def update(self, id, rec): + ''' + db.update(id, rec) + update a row in the table + id is the value of the id column for the row to be updated + rec is a dict with key/value pairs corresponding to table schema + ''' + klist = sorted(rec.keys()) + values = [ rec[v] for v in klist ] # a list of values ordered by key + + for i, k in enumerate(klist): # don't udpate id + if k == 'id': + del klist[i] + del values[i] + + q = 'UPDATE {} SET {} WHERE id = ?'.format( + self.table, + ', '.join(map(lambda str: '{} = ?'.format(str), klist)) + ) + self._db.execute(q, values + [ id ]) + self._db.commit() + + def delete(self, id): + ''' + db.delete(id) + delete a row from the table, by id + ''' + query = 'DELETE FROM {} WHERE id = ?'.format(self.table) + self._db.execute(query, [id]) + self._db.commit() + + def countrecs(self): + ''' + db.countrecs() + count the records in the table + returns a single integer value + ''' + query = 'SELECT COUNT(*) FROM {}'.format(self.table) + c = self._db.cursor() + c.execute(query) + return c.fetchone()[0] + + ### filename property + @property + def filename(self): + return self._dbFilename + + @filename.setter + def filename(self, fn): + self._dbFilename = fn + self._db = sqlite3.connect(fn) + self._db.row_factory = sqlite3.Row + + @filename.deleter + def filename(self): + self.close() + + def close(self): + self._db.close() + del self._dbFilename + +def test(): + import os + fn = ':memory:' # in-memory database + t = 'foo' + + recs = [ + dict( string = 'one' ), + dict( string = 'two' ), + dict( string = 'three' ) + ] + + ### for file-based database + # try: os.stat(fn) + # except: pass + # else: + # print('Delete', fn) + # os.unlink(fn) + + print('version', __version__) + + print('Create database file {} ...'.format(fn), end = '') + db = bwDB( filename = fn, table = t ) + print('Done.') + + print('Create table ... ', end='') + db.sql_do(' DROP TABLE IF EXISTS {} '.format(t)) + db.sql_do(' CREATE TABLE {} ( id INTEGER PRIMARY KEY, string TEXT ) '.format(t)) + print('Done.') + + print('Insert into table ... ', end = '') + for r in recs: db.insert(r) + print('Done.') + + print('Read from table') + for r in db.getrecs(): print(dict(r)) + + print('Update table') + db.update(2, dict(string = 'TWO')) + print( dict( db.getrec(2) ) ) + + print('Insert an extra row ... ', end = '') + newid = db.insert( dict( string = 'extra' ) ) + print('(id is {})'.format(newid)) + print( dict( db.getrec(newid) ) ) + print('Now delete it') + db.delete(newid) + for r in db.getrecs(): print(dict(r)) + db.close() + +if __name__ == "__main__": test() + diff --git a/19 Projects/lib/bwTL.py b/19 Projects/lib/bwTL.py new file mode 100644 index 0000000..0132a16 --- /dev/null +++ b/19 Projects/lib/bwTL.py @@ -0,0 +1,102 @@ +#!/usr/bin/python3 +# bwTL - BW's template library +# by Bill Weinman [http://bw.org/] +# Copyright 1995-2010 The BearHeart Group LLC + +import re +import sys + +__version__ = '0.6.1' +utf_8 = 'utf_8' + +class tlStr: + ''' string templating class ''' + __vars = {} + _sep = '\$' + flags = dict( + showUnknowns = False, + entityEncode = True + ) + + def __init__(self, s = '', **kwargs): + self.__s = s + self._init_re(kwargs) + + def _init_re(self, kwargs): + if 'sep' in kwargs: self._sep = kwargs['sep'] + self.__re = re.compile(r'{0}(.*?){0}'.format(self._sep)) + + def _init_flags(self, kwargs): + self.flags['showUnknowns'] = kwargs.get('showUnknowns', False) + self.flags['entityEncode'] = kwargs.get('entityEncode', True) + + def var(self, k, v = None): + if v is not None: + self.__vars[k] = str(v) + if k in self.__vars: + return self.__vars[k] + elif self.flags['showUnknowns']: + return '** UNK {} **'.format(k) + else: + return None + + def parse(self, str = None): + s = self.__s if str is None else str + s = re.sub(self.__re, self.replace, s) + return s + + def replace(self, s): + return self.var(s.group(1)) + +class tlFile(tlStr): + ''' file templating ''' + def __init__(self, fn, **kwargs): + self.__fh = open(fn, 'r', encoding = utf_8) if fn else None + self._init_flags(kwargs) + self._init_re(kwargs) + + def reset(self): + self.__fh.seek(0) + + def file(self, fn): + self.__fh = open(fn, 'r', encoding = utf_8) + + def readline(self, **kwargs): + l = self.__fh.readline() + return self.parse(l) + + def readlines(self, **kwargs): + for l in self.__fh.readlines(): + yield self.parse(l) + +def bwtl_test(): + print('bwTL.py version', __version__) + x = 'This has a variable ($var$) and another (@two@) in it' + + st = tlStr(x, sep='@') + print('x is:', x) + st.var('var', 'ONE') + st.var('two', 'TWO') + print(st.parse()) + + fn = 'templatefile.txt' + try: + ft = tlFile(fn) + ft.var('one', 'spam') + ft.var('two', 'eggs') + ft.var('three', 'ham') + ft.var('four', 'rubber chicken') + ft.var('five', '55555') + + print(str("ft.readline: " + ft.readline()).strip()) + + for l in ft.readlines(): + print(l.strip()) + + print('five is [{}]'.format(ft.var('five'))) + + except IOError as e: + print("Cannot open template file: {}".format(e)) + +if __name__ == "__main__": bwtl_test() + diff --git a/19 Projects/lib/saytime.py b/19 Projects/lib/saytime.py new file mode 100644 index 0000000..dfea63c --- /dev/null +++ b/19 Projects/lib/saytime.py @@ -0,0 +1,151 @@ +#!/usr/bin/python3 +# saytime.py by Bill Weinman [http://bw.org/] +# created for Python 3 Essential Training on lynda.com +# Copyright 2010 The BearHeart Gorup, LLC +import sys +import time + +__version__ = "1.1.0" + +class numwords(): + """ + return a number as words, + e.g., 42 becomes "forty-two" + """ + _words = { + 'ones': ( + 'oh', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine' + ), 'tens': ( + '', 'ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety' + ), 'teens': ( + 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen' + ), 'quarters': ( + 'o\'clock', 'quarter', 'half' + ), 'range': { + 'hundred': 'hundred' + }, 'misc': { + 'minus': 'minus' + } + } + _oor = 'OOR' # Out Of Range + + def __init__(self, n): + self.__number = n; + + def numwords(self, num = None): + "Return the number as words" + n = self.__number if num is None else num + s = '' + if n < 0: # negative numbers + s += self._words['misc']['minus'] + ' ' + n = abs(n) + if n < 10: # single-digit numbers + s += self._words['ones'][n] + elif n < 20: # teens + s += self._words['teens'][n - 10] + elif n < 100: # tens + m = n % 10 + t = n // 10 + s += self._words['tens'][t] + if m: s += '-' + numwords(m).numwords() # recurse for remainder + elif n < 1000: # hundreds + m = n % 100 + t = n // 100 + s += self._words['ones'][t] + ' ' + self._words['range']['hundred'] + if m: s += ' ' + numwords(m).numwords() # recurse for remainder + else: + s += self._oor + return s + + def number(self): + "Return the number as a number" + return str(self.__number); + +class saytime(numwords): + """ + return the time (from two parameters) as words, + e.g., fourteen til noon, quarter past one, etc. + """ + + _specials = { + 'noon': 'noon', + 'midnight': 'midnight', + 'til': 'til', + 'past': 'past' + } + + def __init__(self, h, m): + self._hour = abs(int(h)) + self._min = abs(int(m)) + + def words(self): + h = self._hour + m = self._min + + if h > 23: return self._oor # OOR errors + if m > 59: return self._oor + + sign = self._specials['past'] + if self._min > 30: + sign = self._specials['til'] + h += 1 + m = 60 - m + if h > 23: h -= 24 + elif h > 12: h -= 12 + + # hword is the hours word) + if h is 0: hword = self._specials['midnight'] + elif h is 12: hword = self._specials['noon'] + else: hword = self.numwords(h) + + if m is 0: + if h in (0, 12): return hword # for noon and midnight + else: return "{} {}".format(self.numwords(h), self._words['quarters'][m]) + if m % 15 is 0: + return "{} {} {}".format(self._words['quarters'][m // 15], sign, hword) + return "{} {} {}".format(self.numwords(m), sign, hword) + + def digits(self): + "return the traditionl time, e.g., 13:42" + return "{:02}:{:02}".format(self._hour, self._min) + +class saytime_t(saytime): # wrapper for saytime to use time object + """ + return the time (from a time object) as words + e.g., fourteen til noon + """ + def __init__(self, t): + self._hour = t.tm_hour + self._min = t.tm_min + +def main(): + if len(sys.argv) > 1: + if sys.argv[1] == 'test': + test() + else: + try: print(saytime(*(sys.argv[1].split(':'))).words()) + except TypeError: print("Invalid time ({})".format(sys.argv[1])) + else: + print(saytime_t(time.localtime()).words()) + +def test(): + print("\nnumbers test:") + list = ( + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 19, 20, 30, + 50, 51, 52, 55, 59, 99, 100, 101, 112, 900, 999, 1000 + ) + for l in list: + print(l, numwords(l).numwords()) + + print("\ntime test:") + list = ( + (0, 0), (0, 1), (11, 0), (12, 0), (13, 0), (12, 29), (12, 30), + (12, 31), (12, 15), (12, 30), (12, 45), (11, 59), (23, 15), + (23, 59), (12, 59), (13, 59), (1, 60), (24, 0) + ) + for l in list: + print(saytime(*l).digits(), saytime(*l).words()) + + print("\nlocal time is " + saytime_t(time.localtime()).words()) + +if __name__ == "__main__": main() diff --git a/19 Projects/testimonials/bwCGI.py b/19 Projects/testimonials/bwCGI.py new file mode 100644 index 0000000..010fd41 --- /dev/null +++ b/19 Projects/testimonials/bwCGI.py @@ -0,0 +1,120 @@ +#!/usr/bin/python3 +# bwCGI.py by Bill Weinman +# Copyright (c) 1995-2010 The BearHeart Group, LLC +# + +from cgi import FieldStorage +import cgitb +import os + +__version__ = '0.3.2' +_cookie_var = 'HTTP_COOKIE' + +class bwCGI: + ''' handy cgi stuff ''' + _header_state = False # True after header has been sent + cgi_cookies = dict() + cgi_headers = dict() + + def __init__(self, **kwargs): + self.set_header('Content-type', kwargs.get('content_type', 'text/html')) + if _cookie_var in os.environ: + self.parse_cookies() + + def set_header(self, k, v): + ''' + set a header + use str for single value, list for multiples values + ''' + if k in self.cgi_headers: + if isinstance(self.cgi_headers[k], list): self.cgi_headers[k].append(v) + else: self.cgi_headers[k] = [ self.cgi_headers[k], v ] + else: + self.cgi_headers[k] = str(v) + return v + + def get_header(self, k): + return self.cgi_headers.get(k, None) + + def send_header(self): + ''' send the header(s), only once ''' + if self._header_state: return + for k in self.cgi_headers: + value = self.cgi_headers[k] + if isinstance(value, list): + for v in value: print('{}: {}'.format(k, v)) + else: + print('{}: {}'.format(k, value)) + print() + self._header_state = True + cgitb.enable() # only after the header has been sent + + def set_cookie(self, key, value, **kwargs): + ''' kwargs can include expires, path, or domain + ''' + cookie = '{}={}'.format(str(key), str(value)) + if kwargs.keys(): + for k in kwargs.keys(): + cookie = '{}; {}={}'.format(cookie, k, kwargs[k]) + self.set_header('Set-Cookie', cookie) + + def parse_cookies(self): + for ck in os.environ[_cookie_var].split(';'): + lhs, rhs = ck.strip().split('=') + self.cgi_cookies[lhs.strip()] = rhs.strip() + + def get_cookies(self): + return self.cgi_cookies; + + def get_cookie(self, key): + return self.cgi_cookies.get(key, None) + + def linkback(self): + ''' return a relative URI for use as a linkback to this script ''' + for e in ( 'REQUEST_URI', 'SCRIPT_NAME' ): + if e in os.environ: + l = os.environ[e] + break + else: return '*** cannot make linkback ***' + if '?' in l: l = l[0:l.find('?')] + return os.path.basename(l) + + def vars(self): + return FieldStorage() + + # utility methods + + def entity_encode(self, s): + ''' convert unicode to XML entities + returns encoded string + ''' + outbytes = bytearray() + for c in s: + if ord(c) > 127: + outbytes += bytes('&#{:d};'.format(ord(c)), encoding = 'utf_8') + else: outbytes.append(ord(c)) + return str(outbytes, encoding = 'utf_8') + +def test(): + if _cookie_var not in os.environ: + os.environ[_cookie_var] = 'one=1; two=2; three=3' + cgi = bwCGI(content_type='text/plain') + cgi.set_header('X-bwCGI', __version__) + cgi.set_header('X-number', 42) + cgi.set_cookie('one', 1) + cgi.set_cookie('two', 2) + cgi.set_cookie('three', 3, path='/', expires='31-Dec-2010 23:59:59 GMT', domain='.bw.org') + cgi.set_cookie('five', 5) + cgi.send_header() # should only see one set of headers + cgi.send_header() + cgi.send_header() + print('Hello, CGI') + print('header X-bwCGI:', cgi.get_header('X-bwCGI')) + print('header Eggs:', cgi.get_header('Eggs')) + print('Cookies:') + print(sorted(cgi.get_cookies())) + print('cookie one:', cgi.get_cookie('one')) + print('cookie seven:', cgi.get_cookie('seven')) + +if __name__ == '__main__': test() + diff --git a/19 Projects/testimonials/bwConfig.py b/19 Projects/testimonials/bwConfig.py new file mode 100644 index 0000000..64623ca --- /dev/null +++ b/19 Projects/testimonials/bwConfig.py @@ -0,0 +1,43 @@ +#!/usr/bin/python3 +# bwConfig.py by Bill Weinman +# Copyright (c) 2010 The BearHeart Group, LLC +# + +__version__ = '1.0.0' + +class configFile: + ''' simple config file support ''' + _recs = {} + def __init__(self, fn): + self._fh = open(fn, 'rt') + self.parse(self._fh) + + def parseline(self, line): + if line[0] == '#': return + if '#' in line: line = line.split('#', 2)[0] + if '=' not in line: return + ( lhs, rhs ) = line.split('=', 2) + self._recs[lhs.strip()] = rhs.strip() + + def parse(self, fh): + for line in fh.readlines(): + self.parseline(line) + + def recs(self): + return self._recs + +def test(): + import sys + fn = sys.argv[1] if len(sys.argv) > 1 else 'test.conf' + + try: + conf = configFile(fn) + except IOError as e: + print('could not open {},'.format(fn), e) + else: + recs = conf.recs() + for k in sorted(recs): + print('{} is [{}]'.format(k, recs[k])) + +if __name__ == "__main__": test() + diff --git a/19 Projects/testimonials/bwDB.py b/19 Projects/testimonials/bwDB.py new file mode 100644 index 0000000..d6f7bee --- /dev/null +++ b/19 Projects/testimonials/bwDB.py @@ -0,0 +1,219 @@ +#!/usr/bin/python3 +# bwTL - BW's template library +# by Bill Weinman [http://bw.org/] +# Copyright 1995-2010 The BearHeart Group LLC + +import sqlite3 + +__version__ = '1.0.3' + +class bwDB: + def __init__(self, **kwargs): + ''' + db = bwDB( [ table = ''] [, filename = ''] ) + constructor method + table is for CRUD methods + filename is for connecting to the database file + ''' + # see filename setter below + self.filename = kwargs.get('filename') + self.table = kwargs.get('table', '') + + def sql_do(self, sql, params = ()): + ''' + db.sql_do( sql[, params] ) + method for non-select queries + sql is string containing SQL + params is list containing parameters + returns nothing + ''' + self._db.execute(sql, params) + self._db.commit() + + def sql_query(self, sql, params = ()): + ''' + db.sql_query( sql[, params] ) + generator method for queries + sql is string containing SQL + params is list containing parameters + returns a generator with one row per iteration + each row is a Row factory + ''' + c = self._db.cursor() + c.execute(sql, params) + for r in c: + yield r + + def sql_query_row(self, sql, params = ()): + ''' + db.sql_query_row( sql[, params] ) + query for a single row + sql is string containing SQL + params is list containing parameters + returns a single row as a Row factory + ''' + c = self._db.cursor() + c.execute(sql, params) + return c.fetchone() + + def sql_query_value(self, sql, params = ()): + ''' + db.sql_query_row( sql[, params] ) + query for a single value + sql is string containing SQL + params is list containing parameters + returns a single value + ''' + c = self._db.cursor() + c.execute(sql, params) + return c.fetchone()[0] + + def getrec(self, id): + ''' + db.getrec(id) + get a single row, by id + ''' + query = 'SELECT * FROM {} WHERE id = ?'.format(self.table) + c = self._db.execute(query, (id,)) + return c.fetchone() + + def getrecs(self): + ''' + db.getrecs(id) + get all rows, returns a generator of Row factories + ''' + query = 'SELECT * FROM {}'.format(self.table) + c = self._db.execute(query) + for r in c: + yield r + + def insert(self, rec): + ''' + db.insert(rec) + insert a single record into the table + rec is a dict with key/value pairs corresponding to table schema + omit id column to let SQLite generate it + ''' + klist = sorted(rec.keys()) + values = [ rec[v] for v in klist ] # a list of values ordered by key + q = 'INSERT INTO {} ({}) VALUES ({})'.format( + self.table, + ', '.join(klist), + ', '.join('?' for i in range(len(values))) + ) + c = self._db.execute(q, values) + self._db.commit() + return c.lastrowid + + def update(self, id, rec): + ''' + db.update(id, rec) + update a row in the table + id is the value of the id column for the row to be updated + rec is a dict with key/value pairs corresponding to table schema + ''' + klist = sorted(rec.keys()) + values = [ rec[v] for v in klist ] # a list of values ordered by key + + for i, k in enumerate(klist): # don't udpate id + if k == 'id': + del klist[i] + del values[i] + + q = 'UPDATE {} SET {} WHERE id = ?'.format( + self.table, + ', '.join(map(lambda str: '{} = ?'.format(str), klist)) + ) + self._db.execute(q, values + [ id ]) + self._db.commit() + + def delete(self, id): + ''' + db.delete(id) + delete a row from the table, by id + ''' + query = 'DELETE FROM {} WHERE id = ?'.format(self.table) + self._db.execute(query, [id]) + self._db.commit() + + def countrecs(self): + ''' + db.countrecs() + count the records in the table + returns a single integer value + ''' + query = 'SELECT COUNT(*) FROM {}'.format(self.table) + c = self._db.cursor() + c.execute(query) + return c.fetchone()[0] + + ### filename property + @property + def filename(self): + return self._dbFilename + + @filename.setter + def filename(self, fn): + self._dbFilename = fn + self._db = sqlite3.connect(fn) + self._db.row_factory = sqlite3.Row + + @filename.deleter + def filename(self): + self.close() + + def close(self): + self._db.close() + del self._dbFilename + +def test(): + import os + fn = ':memory:' # in-memory database + t = 'foo' + + recs = [ + dict( string = 'one' ), + dict( string = 'two' ), + dict( string = 'three' ) + ] + + ### for file-based database + # try: os.stat(fn) + # except: pass + # else: + # print('Delete', fn) + # os.unlink(fn) + + print('version', __version__) + + print('Create database file {} ...'.format(fn), end = '') + db = bwDB( filename = fn, table = t ) + print('Done.') + + print('Create table ... ', end='') + db.sql_do(' DROP TABLE IF EXISTS {} '.format(t)) + db.sql_do(' CREATE TABLE {} ( id INTEGER PRIMARY KEY, string TEXT ) '.format(t)) + print('Done.') + + print('Insert into table ... ', end = '') + for r in recs: db.insert(r) + print('Done.') + + print('Read from table') + for r in db.getrecs(): print(dict(r)) + + print('Update table') + db.update(2, dict(string = 'TWO')) + print( dict( db.getrec(2) ) ) + + print('Insert an extra row ... ', end = '') + newid = db.insert( dict( string = 'extra' ) ) + print('(id is {})'.format(newid)) + print( dict( db.getrec(newid) ) ) + print('Now delete it') + db.delete(newid) + for r in db.getrecs(): print(dict(r)) + db.close() + +if __name__ == "__main__": test() + diff --git a/19 Projects/testimonials/bwTL.py b/19 Projects/testimonials/bwTL.py new file mode 100644 index 0000000..0132a16 --- /dev/null +++ b/19 Projects/testimonials/bwTL.py @@ -0,0 +1,102 @@ +#!/usr/bin/python3 +# bwTL - BW's template library +# by Bill Weinman [http://bw.org/] +# Copyright 1995-2010 The BearHeart Group LLC + +import re +import sys + +__version__ = '0.6.1' +utf_8 = 'utf_8' + +class tlStr: + ''' string templating class ''' + __vars = {} + _sep = '\$' + flags = dict( + showUnknowns = False, + entityEncode = True + ) + + def __init__(self, s = '', **kwargs): + self.__s = s + self._init_re(kwargs) + + def _init_re(self, kwargs): + if 'sep' in kwargs: self._sep = kwargs['sep'] + self.__re = re.compile(r'{0}(.*?){0}'.format(self._sep)) + + def _init_flags(self, kwargs): + self.flags['showUnknowns'] = kwargs.get('showUnknowns', False) + self.flags['entityEncode'] = kwargs.get('entityEncode', True) + + def var(self, k, v = None): + if v is not None: + self.__vars[k] = str(v) + if k in self.__vars: + return self.__vars[k] + elif self.flags['showUnknowns']: + return '** UNK {} **'.format(k) + else: + return None + + def parse(self, str = None): + s = self.__s if str is None else str + s = re.sub(self.__re, self.replace, s) + return s + + def replace(self, s): + return self.var(s.group(1)) + +class tlFile(tlStr): + ''' file templating ''' + def __init__(self, fn, **kwargs): + self.__fh = open(fn, 'r', encoding = utf_8) if fn else None + self._init_flags(kwargs) + self._init_re(kwargs) + + def reset(self): + self.__fh.seek(0) + + def file(self, fn): + self.__fh = open(fn, 'r', encoding = utf_8) + + def readline(self, **kwargs): + l = self.__fh.readline() + return self.parse(l) + + def readlines(self, **kwargs): + for l in self.__fh.readlines(): + yield self.parse(l) + +def bwtl_test(): + print('bwTL.py version', __version__) + x = 'This has a variable ($var$) and another (@two@) in it' + + st = tlStr(x, sep='@') + print('x is:', x) + st.var('var', 'ONE') + st.var('two', 'TWO') + print(st.parse()) + + fn = 'templatefile.txt' + try: + ft = tlFile(fn) + ft.var('one', 'spam') + ft.var('two', 'eggs') + ft.var('three', 'ham') + ft.var('four', 'rubber chicken') + ft.var('five', '55555') + + print(str("ft.readline: " + ft.readline()).strip()) + + for l in ft.readlines(): + print(l.strip()) + + print('five is [{}]'.format(ft.var('five'))) + + except IOError as e: + print("Cannot open template file: {}".format(e)) + +if __name__ == "__main__": bwtl_test() + diff --git a/19 Projects/testimonials/data/testimonials.db b/19 Projects/testimonials/data/testimonials.db new file mode 100644 index 0000000..616b94e Binary files /dev/null and b/19 Projects/testimonials/data/testimonials.db differ diff --git a/19 Projects/testimonials/db.conf b/19 Projects/testimonials/db.conf new file mode 100644 index 0000000..1691ec5 --- /dev/null +++ b/19 Projects/testimonials/db.conf @@ -0,0 +1,16 @@ +# +# config file for /testimonial +# for use with BW::Config +# + +# HTML +htmlDir = html +header = header.html +footer = footer.html +recline = recline.html +nextprev = nextprev.html + +# DB +db = data/testimonials.db +sql_limit = 10 # records per page + diff --git a/19 Projects/testimonials/db.py b/19 Projects/testimonials/db.py new file mode 100644 index 0000000..8d65b9f --- /dev/null +++ b/19 Projects/testimonials/db.py @@ -0,0 +1,278 @@ +#!/usr/bin/python3 +# db.py by Bill Weinman +# Copyright (c) 2010 The BearHeart Group, LLC +# created 2010-04-23 +# + +import sys, os +import sqlite3 + +from bwCGI import bwCGI +from bwDB import bwDB +from bwTL import tlFile +from bwConfig import configFile + +__version__ = "1.1.3" + +# namespace container for global variables +g = dict( + VERSION = 'db.py version {}'.format(__version__), + config_file = 'db.conf', + template_ext = '.html', + table_name = 'testimonial', + stacks = dict( + messages = [], + errors = [], + hiddens = [] + ) +) + +def main(): + init() + if 'a' in g['vars']: dispatch() + main_page() + +def init(): + g['cgi'] = bwCGI() + g['cgi'].send_header() + g['vars'] = g['cgi'].vars() + g['linkback'] = g['cgi'].linkback() + g['config'] = configFile(g['config_file']).recs() + g['tl'] = tlFile(None, showUnknowns = True) + g['db'] = bwDB( filename = g['config']['db'], table = g['table_name'] ) + +def dispatch(): + v = g['vars'] + a = v.getfirst('a') + if a == 'add': + add() + elif a == 'edit_del': + if 'edit' in v: edit() + elif 'delete' in v: delete_confirm() + else: error("invalid edit_del") + elif a == 'update': + if 'cancel' in v: + message('Edit canceled') + main_page() + else: update() + elif a == 'delete_do': + if 'cancel' in v: + message('Delete canceled') + main_page() + else: delete_do() + else: + error("unhandled jump: ", a) + main_page() + +def main_page(): + listrecs() + hidden('a', 'add') + page('main', 'Enter a new testimonial') + +def listrecs(): + ''' display the database content ''' + db = g['db'] + v = g['vars'] + sql_limit = int(g['config'].get('sql_limit', 25)) + + # how many records do we have? + count = db.countrecs() + message('There are {} records in the database. Add some more!'.format(count or 'no')) + + # how many pages do we have? + numpages = count // int(sql_limit) + if count % int(sql_limit): numpages += 1 + + # what page is this? + curpage = 0 + if 'jumppage' in v: + curpage = int(v.getfirst('jumppage')) + elif 'nextpage' in v: + curpage = int(v.getfirst('pageno')) + 1 + elif 'prevpage' in v: + curpage = int(v.getfirst('pageno')) - 1 + + pagebar = list_pagebar(curpage, numpages) + + a = '' + q = ''' + SELECT * FROM {} + ORDER BY byline + LIMIT ? + OFFSET ? + '''.format(g['table_name']) + for r in db.sql_query(q, [sql_limit, (curpage * sql_limit)]): + set_form_vars(**r) + a += getpage('recline') + set_form_vars() + var('CONTENT', pagebar + a + pagebar ) + +def list_pagebar(pageno, numpages): + ''' return the html for the pager line ''' + + prevlink = '<<' + nextlink = '>>' + linkback = g['linkback'] + + if pageno > 0: + prevlink = '<<'.format(linkback, pageno) + if pageno < ( numpages - 1 ): + nextlink = '>>'.format(linkback, pageno) + + pagebar = '' + for n in range(0, numpages): + if n is pageno: pagebar += '{}'.format(n + 1) + else: pagebar += '{}'.format(linkback, n, n + 1) + + var('prevlink', prevlink) + var('nextlink', nextlink) + var('pagebar', pagebar) + p = getpage('nextprev') + return p + +def page(pagename, title = ''): + ''' display a page from html template ''' + tl = g['tl'] + htmldir = g['config']['htmlDir'] + file_ext = g['template_ext'] + var('pageTitle', title) + var('VERSION', g['VERSION']) + set_stack_vars() + for p in ( 'header', pagename, 'footer' ): + try: + tl.file(os.path.join(htmldir, p + file_ext)) + for line in tl.readlines(): print(line, end='') # lines are already terminated + except IOError as e: + errorexit('Cannot open file ({})'.format(e)) + exit() + +def getpage(p): + ''' return a page as text from an html template ''' + tl = g['tl'] + htmldir = g['config']['htmlDir'] + file_ext = g['template_ext'] + a = '' + try: + tl.file(os.path.join(htmldir, p + file_ext)) + for line in tl.readlines(): a += line # lines are already terminated + except IOError as e: + errorexit('Cannot open file ({})'.format(e)) + return(a) + +### actions +def add(): + db = g['db'] + v = g['vars'] + cgi = g['cgi'] + + rec = dict( + testimonial = cgi.entity_encode(v.getfirst('testimonial')), + byline = cgi.entity_encode(v.getfirst('byline')) + ) + db.insert(rec) + message('Record ({}) added'.format(rec['byline'])) + main_page() +def edit(): + id = g['vars'].getfirst('id') + rec = g['db'].getrec(id) + set_form_vars(**rec) + hidden('a', 'update') + hidden('id', id) + page('edit', 'Edit this testimonial') + +def delete_confirm(): + id = g['vars'].getfirst('id') + rec = g['db'].getrec(id) + set_form_vars(**rec) + hidden('a', 'delete_do') + hidden('id', id) + hidden('byline', rec['byline']) + page('delconfirm', 'Delete this testimonial?') + +def delete_do(): + db = g['db'] + v = g['vars'] + + id = v.getfirst('id') + byline = v.getfirst('byline') + db.delete(id) + message('Record ({}) deleted'.format(byline)) + main_page() + +def update(): + db = g['db'] + v = g['vars'] + cgi = g['cgi'] + + id = v.getfirst('id') + rec = dict( + id = id, + testimonial = cgi.entity_encode(v.getfirst('testimonial')), + byline = cgi.entity_encode(v.getfirst('byline')) + ) + db.update(id, rec) + message('Record ({}) updated'.format(rec['byline'])) + main_page() + +### manage template variables +def var(n, v = None): + ''' shortcut for setting a variable ''' + return g['tl'].var(n, v) + +def set_form_vars(**kwargs): + t = kwargs.get('testimonial', '') + b = kwargs.get('byline', '') + id = kwargs.get('id', '') + var('testimonial', t) + var('byline', b) + var('id', id) + var('SELF', g['linkback']) + +def stackmessage(stack, *list, **kwargs): + sep = kwargs.get('sep', ' ') + m = sep.join(str(i) for i in list) + g['stacks'][stack].append(m) + + +def message(*list, **kwargs): + stackmessage('messages', *list, **kwargs) + +def error(*list, **kwargs): + if 'cgi' in g: + stackmessage('errors', *list, **kwargs) + else: + errorexit(' '.join(list)) + +def hidden(n, v): + g['stacks']['hiddens'].append([n, v]) + +def set_stack_vars(): + a = '' + for m in g['stacks']['messages']: + a += '

{}

\n'.format(m) + var('MESSAGES', a) + a = '' + for m in g['stacks']['errors']: + a += '

{}

\n'.format(m) + var('ERRORS', a) + a = '' + for m in g['stacks']['hiddens']: + a += '\n'.format(*m) + var('hiddens', a) + +### utilities +def errorexit(e): + me = os.path.basename(sys.argv[0]) + print('

') + print('{}: {}'.format(me, e)) + print('

') + exit(0) + +def message_page(*list): + message(*list) + main_page() + +def debug(*args): + print(*args, file=sys.stderr) + +if __name__ == "__main__": main() diff --git a/19 Projects/testimonials/html/db.css b/19 Projects/testimonials/html/db.css new file mode 100644 index 0000000..20f7249 --- /dev/null +++ b/19 Projects/testimonials/html/db.css @@ -0,0 +1,164 @@ +/* + db.css by Bill Weinman + for testimonials example in Perl 5 EssT + Copyright (c) 2010 The BearHeart Group, LLC + created 2010-03-13 +*/ + + +body { + font-family: tahoma, sans-serif; /* default page font */ + background: #fff; + margin: 0; /* shorthand for all margins = 0 */ + padding: 0; /* no padding */ +} + +/* reasonable margin defaults */ +p, h1, h2, h3, h4, h5, h6, li { + margin: 1ex 0; +} + +#content { + width: 780px; + margin: 1em auto 0; + border: solid 1px #666; + padding: 0 10px; +} + +p.message { + font-size: 90%; + border: solid 1px #c66; + padding: 1px 3px; + background-color: #ffe; +} + +p.error { + font-size: 90%; + background-color: #f66; + color: white; + border: solid 1px #f66; + padding: 1px 3px; +} + +.small { + font-size: 80%; +} + +h1 { + margin: 0; + font-size: 16pt; + color: #448; +} + +h2 { + margin: 0; + font-size: 13pt; + color: #448; +} + +#content input[type=text], #content textarea { + font-family: tahoma, sans-serif; + font-size: 85%; + width: 780px; +} + +#content textarea { + font-family: tahoma, sans-serif; + font-size: 85%; + height: 100px; +} + +#content input.formSubmit { + margin-top: 1em; +} + +/* === recline form === */ + +div#reclist { + margin-top: 20px; + border-top: 1px solid #933; +} + +div.recline { + font-size: 75%; +} + +.recline table { + border-collapse: collapse; +} + +.recline td { + vertical-align: middle; + padding: 0 3px; + margin: 0; +} + +.recline div.nowrap { + white-space: nowrap; + overflow: hidden; +} + +div.rlbyline, div.rltestimonial { + background-color: #eef; + padding: 1px 3px; +} + +div.rltestimonial { + width: 500px; +} + +div.rlbyline { + width: 150px; +} + +input.edit { color: #090 } +input.delete { color: #900 } + +/* ----- paging ----- */ + +div.nextprev p { + font-size: 75%; + text-align: center; + color: #333; +} + +/* this is for bare numbers */ +div.nextprev span.n { + margin: 0 5px; +} + +div.nextprev a { + color: #900; + text-decoration: none; + padding: 0 5px; + border-bottom: 1px solid white; +} + +div.nextprev a:hover { + border-bottom: 1px solid #009; +} + +/* ----- footer ----- */ + +#copyright { + width: 800px; + margin: 1em auto; + color: #999; + padding: 0; +} + +#copyright p { + font-size: 65%; + text-align: right; + margin: 0; + padding: 0; +} + +#copyright a { + text-decoration: none; + color: #96c; +} + +#copyright a:hover { + text-decoration: underline; +} diff --git a/19 Projects/testimonials/html/delconfirm.html b/19 Projects/testimonials/html/delconfirm.html new file mode 100644 index 0000000..c312500 --- /dev/null +++ b/19 Projects/testimonials/html/delconfirm.html @@ -0,0 +1,15 @@ +
+
+$MESSAGES$$ERRORS$ +
+

$pageTitle$

+
+

Testimonial

+

$testimonial$


+

Byline

+
+ + +$hiddens$ +
+
diff --git a/19 Projects/testimonials/html/edit.html b/19 Projects/testimonials/html/edit.html new file mode 100644 index 0000000..7d2cb1e --- /dev/null +++ b/19 Projects/testimonials/html/edit.html @@ -0,0 +1,20 @@ +
+
+$MESSAGES$$ERRORS$ +
+

$pageTitle$

+
+

Testimonial:

+
+

Byline:

+
+ + +$hiddens$ +
+
+ + + diff --git a/19 Projects/testimonials/html/footer.html b/19 Projects/testimonials/html/footer.html new file mode 100644 index 0000000..b3e3081 --- /dev/null +++ b/19 Projects/testimonials/html/footer.html @@ -0,0 +1,15 @@ +

+ + +

+ +

+ + + diff --git a/19 Projects/testimonials/html/header.html b/19 Projects/testimonials/html/header.html new file mode 100644 index 0000000..9ea5e61 --- /dev/null +++ b/19 Projects/testimonials/html/header.html @@ -0,0 +1,16 @@ + + + + + + + Testimonials Database + + + + + + + +
diff --git a/19 Projects/testimonials/html/main.html b/19 Projects/testimonials/html/main.html new file mode 100644 index 0000000..9974c3b --- /dev/null +++ b/19 Projects/testimonials/html/main.html @@ -0,0 +1,23 @@ +
+
+$MESSAGES$$ERRORS$ +
+

$pageTitle$

+
+

Testimonial:

+
+

Byline:

+
+ +$hiddens$ +
+
+

Testimonials in the database

+$CONTENT$ +
+
+ + + diff --git a/19 Projects/testimonials/html/nextprev.html b/19 Projects/testimonials/html/nextprev.html new file mode 100644 index 0000000..0e1c995 --- /dev/null +++ b/19 Projects/testimonials/html/nextprev.html @@ -0,0 +1,5 @@ +
+

+$prevlink$$pagebar$$nextlink$ +

+
diff --git a/19 Projects/testimonials/html/recline.html b/19 Projects/testimonials/html/recline.html new file mode 100644 index 0000000..c07486b --- /dev/null +++ b/19 Projects/testimonials/html/recline.html @@ -0,0 +1,18 @@ +
+
+ + + + +
+ + +
+ $byline$ +
+ $testimonial$ +
+ + +
+
diff --git a/19 Projects/testimonials/index.html b/19 Projects/testimonials/index.html new file mode 100644 index 0000000..f08f5d3 --- /dev/null +++ b/19 Projects/testimonials/index.html @@ -0,0 +1,51 @@ + + + + + + + Testimonials Page + + + + + + +
+

+Lorem ipsum dolor sit amet +

+ + + +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut scelerisque + sagittis ipsum a scelerisque. Pellentesque habitant morbi tristique + senectus et netus et malesuada fames ac turpis egestas. Pellentesque + venenatis posuere elementum. Nulla facilisi. Curabitur eleifend placerat + sollicitudin. Quisque vitae dui vel nunc euismod auctor. Cras suscipit + blandit turpis, at mattis massa elementum non. Nunc ullamcorper sapien vel + nibh sodales quis ornare libero pellentesque. Praesent nec felis urna, ut + euismod augue. Sed sit amet est nunc. Suspendisse consequat dictum arcu, + eget varius augue commodo ut. Quisque dolor erat, eleifend vitae ornare + id, congue id libero. +

+ +

+ Vestibulum condimentum viverra iaculis. Vivamus eu commodo lectus. Vivamus + egestas sollicitudin erat, in congue sem feugiat at. Curabitur vitae neque + tellus, vitae egestas neque. Phasellus dictum imperdiet neque a tempus. + Praesent scelerisque dignissim elit vel rhoncus. Nullam viverra lacus non + magna porta non fringilla massa pulvinar. Nunc vestibulum, lacus vitae + luctus interdum, arcu enim mattis nisl, in convallis sem quam ac mi. + Vestibulum aliquet cursus hendrerit. Mauris auctor suscipit mattis. +

+ +
+ + + diff --git a/19 Projects/testimonials/main.css b/19 Projects/testimonials/main.css new file mode 100644 index 0000000..395a2f5 --- /dev/null +++ b/19 Projects/testimonials/main.css @@ -0,0 +1,67 @@ +/* + main.css by Bill Weinman + Copyright (c) 2010 The BearHeart Group, LLC + created 2010-06-18 +*/ + + +body { + font-family: Lucida Grande, Tahoma, sans-serif; /* default page font */ + background: #fff; + margin: 0; /* shorthand for all margins = 0 */ + padding: 0; /* no padding */ +} + +div#mainColumn { + width: 800px; + margin: 0 auto; +} + +/* reasonable margin defaults */ +p, h1, h2, h3, h4, h5, h6, li { + margin: 1ex 0; +} + +/* testimonials */ + +#sidebar { + float:right; + width: 250px; + font-family: Lucida Grande, Tahoma, sans-serif; + border: solid 1px #999; + margin: 0 3px 5px 3px; +} + +#sidebar p.title { + background-color: #333; + color: #f9f9f9; + text-align: center; + padding: 2px 0 2px 0; + margin: 0; +} + +div.testimonial p.testimonial { + color: #600000; + margin: 0 1ex 0 1ex; + font-size: 85%; +} + +div.testimonial p.byline { + color: #606060; + font-family: georgia, serif; + font-style: italic; + margin: 0 1ex; + text-align: right; + font-size: 85%; +} + +div.testimonial { + border-top: solid 1px black; + padding-top: 1ex; +} + +#sidebar p.title + div.testimonial { + margin-top: 0; + padding-top: 0; + border: none; +} \ No newline at end of file diff --git a/19 Projects/testimonials/testimonials.py b/19 Projects/testimonials/testimonials.py new file mode 100644 index 0000000..274a027 --- /dev/null +++ b/19 Projects/testimonials/testimonials.py @@ -0,0 +1,74 @@ +#!/usr/bin/python3 +# testimonials.py by Bill Weinman +# Copyright (c) 2010 The BearHeart Group, LLC +# created 2010-04-23 +# + +from bwDB import bwDB +from bwConfig import configFile +import random +import os + +__version__ = "1.0.1" + +g = dict( + config_file = 'db.conf', + table_name = 'testimonial' +) + +def main(): + init() + db = g['db'] + idlist = [] + + # build a list of ids + for r in db.sql_query(' SELECT id FROM {} '.format(g['table_name'])): + idlist.append(r[0]) + + # get the count of records to display + try: count = int(os.environ.get('QUERY_STRING', 3)) + except ValueError: error("Invalid query string, must be a number") + idcount = len(idlist) + + # check that the count is not too big + maxcount = idcount // 4 + if count > maxcount: + error('There are {} records in the database. '.format(idcount) + + 'For good randomness, you cannot display more than {} at a time.'.format( maxcount ) + ) + + # build the list of random ids + result_ids = [] + while len(result_ids) < count: + randindex = random.randint(0, len(idlist) - 1) + randid = idlist[randindex] + del idlist[randindex] # don't use that one again + result_ids += [ randid ] + + # display them + for id in result_ids: + printrec(id) + +def printrec(id): + db = g['db'] + rec = db.getrec(id) + print('
') + print('

{}

'.format(rec['testimonial'])) + print(''.format(rec['byline'])) + print('
') + + +def init(): + send_header() + g['config'] = configFile(g['config_file']).recs() + g['db'] = bwDB(filename = g['config']['db'], table = g['table_name']) + +def send_header(): + print('Content-type: text/html\n\n', end = '') + +def error(e): + print(e) + exit(0) + +if __name__ == "__main__": main() + diff --git a/LICENSE b/LICENSE deleted file mode 100644 index f288702..0000000 --- a/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/README.md b/README.md deleted file mode 100644 index 5039f5c..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# Mide -For practice in the use of Git diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index aa91291..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Starter pipeline -# Start with a minimal pipeline that you can customize to build and deploy your code. -# Add steps that build, run tests, deploy, and more: -# https://aka.ms/yaml - -trigger: -- master - -pool: - vmImage: 'ubuntu-latest' - -steps: -- script: echo Hello, world! - displayName: 'Run a one-line script' - -- script: | - echo Add other tasks to build, test, and deploy your project. - echo See https://aka.ms/yaml - displayName: 'Run a multi-line script'