Last active
August 29, 2015 14:01
-
-
Save steko/f666dadea879b4c839c6 to your computer and use it in GitHub Desktop.
An example of the ``missing`` tool
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "metadata": { | |
| "name": "" | |
| }, | |
| "nbformat": 3, | |
| "nbformat_minor": 0, | |
| "worksheets": [ | |
| { | |
| "cells": [ | |
| { | |
| "cell_type": "heading", | |
| "level": 1, | |
| "metadata": {}, | |
| "source": [ | |
| "Continuos ranges and missing data" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "In an effort to document techniques to deal with incomplete sequences of integers, this notebook shows how to obtain a list of continuous ranges of integers from a single sorted list, e.g. from this:\n", | |
| "\n", | |
| "``[1, 2, 3, 7, 8, 9, 10, 23, 24, 25, 27, 28, 35]``\n", | |
| "\n", | |
| "to this:\n", | |
| "\n", | |
| "``[1, 3], [7, 10], [23, 25], [27, 28], [35]``\n", | |
| "\n", | |
| "The resulting list is much more human readable and can be used to describe the corresponding values associated with each range. Isolated values will remain as such. This technique is integrated in <https://github.com/steko/missing> with other similar tools to list duplicates, missing values and such." | |
| ] | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 2, | |
| "metadata": {}, | |
| "source": [ | |
| "Data import" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "First of all let's import some data to work with:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": true, | |
| "input": [ | |
| "nctn = open(\"nctn.txt\").readlines()\n", | |
| "nums = [int(n.strip()) for n in nctn]\n", | |
| "nums = sorted(nums)" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 2 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Take a look at our data:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "print(len(nums))" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "1527\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 4 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "print(nums[:20])" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "[2238, 3319, 3324, 3328, 3329, 3330, 3363, 3372, 3376, 3378, 3380, 3382, 3386, 3391, 3392, 3410, 3412, 3413, 3416, 3423]\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 6 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "As you can see there are a few isolated numbers and then some ranges of two numbers. More long-spanning ranges are further down the list." | |
| ] | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 2, | |
| "metadata": {}, | |
| "source": [ | |
| "Find ranges" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Define a function that will find the ranges for us:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "def ranges(nums):\n", | |
| " '''Return a list of continuous ranges (min, max values) from a list of integers.'''\n", | |
| " \n", | |
| " rgs = [[nums[0]]]\n", | |
| " \n", | |
| " # these two make the code more readable and, incidentally, faster\n", | |
| " FIRST, LAST = 0, -1\n", | |
| " \n", | |
| " for n in nums:\n", | |
| " if rgs[LAST][LAST] == n - 1:\n", | |
| " if rgs[LAST][FIRST] == n -1:\n", | |
| " rgs[LAST].append(n)\n", | |
| " if rgs[LAST][FIRST] < n - 1:\n", | |
| " rgs[LAST][LAST] = n\n", | |
| " elif rgs[LAST][LAST] < n -1:\n", | |
| " rgs.append([n])\n", | |
| " return rgs" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 8 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "And now let's see what ranges we have in our data:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "rgs = ranges(nums)\n", | |
| "for r in rgs:\n", | |
| " try:\n", | |
| " print('{} - {}: {} numbers'.format(r[0], r[1], r[1] - r[0] + 1))\n", | |
| " except IndexError:\n", | |
| " print('{}: 1 number'.format(r[0]))" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "2238: 1 number\n", | |
| "3319: 1 number\n", | |
| "3324: 1 number\n", | |
| "3328 - 3330: 3 numbers\n", | |
| "3363: 1 number\n", | |
| "3372: 1 number\n", | |
| "3376: 1 number\n", | |
| "3378: 1 number\n", | |
| "3380: 1 number\n", | |
| "3382: 1 number\n", | |
| "3386: 1 number\n", | |
| "3391 - 3392: 2 numbers\n", | |
| "3410: 1 number\n", | |
| "3412 - 3413: 2 numbers\n", | |
| "3416: 1 number\n", | |
| "3423: 1 number\n", | |
| "3429: 1 number\n", | |
| "3462: 1 number\n", | |
| "3483: 1 number\n", | |
| "3599 - 3602: 4 numbers\n", | |
| "3675: 1 number\n", | |
| "3689: 1 number\n", | |
| "3768: 1 number\n", | |
| "3776: 1 number\n", | |
| "3786: 1 number\n", | |
| "11865: 1 number\n", | |
| "11867 - 11964: 98 numbers\n", | |
| "13028 - 13087: 60 numbers\n", | |
| "23032 - 23074: 43 numbers\n", | |
| "47435 - 47443: 9 numbers\n", | |
| "55644 - 55651: 8 numbers\n", | |
| "55687: 1 number\n", | |
| "55737: 1 number\n", | |
| "55750 - 55775: 26 numbers\n", | |
| "55777 - 55805: 29 numbers\n", | |
| "55807 - 55878: 72 numbers\n", | |
| "55880 - 55922: 43 numbers\n", | |
| "55924 - 55945: 22 numbers\n", | |
| "88038: 1 number\n", | |
| "88050 - 88053: 4 numbers\n", | |
| "88429 - 88826: 398 numbers\n", | |
| "96146: 1 number\n", | |
| "96149 - 96271: 123 numbers\n", | |
| "96273 - 96275: 3 numbers\n", | |
| "97763 - 97870: 108 numbers\n", | |
| "98033: 1 number\n", | |
| "104878 - 104899: 22 numbers\n", | |
| "105396 - 105489: 94 numbers\n", | |
| "105500: 1 number\n", | |
| "105540 - 105569: 30 numbers\n", | |
| "105571 - 105605: 35 numbers\n", | |
| "105785 - 105821: 37 numbers\n", | |
| "105823 - 105854: 32 numbers\n", | |
| "105857 - 105926: 70 numbers\n", | |
| "105928 - 105938: 11 numbers\n", | |
| "105941 - 105945: 5 numbers\n", | |
| "106704 - 106753: 50 numbers\n", | |
| "107545 - 107561: 17 numbers\n", | |
| "1004632 - 1004656: 25 numbers\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 10 | |
| }, | |
| { | |
| "cell_type": "heading", | |
| "level": 2, | |
| "metadata": {}, | |
| "source": [ | |
| "Timing" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "The dataset we have been working with is rather small, but if you need to crunch big data a fast tool is really needed. Let's see how the ``ranges`` function performs:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "%timeit rgs = ranges(nums)" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "1000 loops, best of 3: 806 \u00b5s per loop\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 11 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Not bad for a naive algorithm like that." | |
| ] | |
| } | |
| ], | |
| "metadata": {} | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 00003462 | |
| 00003483 | |
| 00003675 | |
| 00003689 | |
| 00105839 | |
| 00105840 | |
| 00105841 | |
| 00105842 | |
| 00105843 | |
| 00105848 | |
| 00105853 | |
| 00105908 | |
| 00105909 | |
| 00105937 | |
| 00105938 | |
| 00023032 | |
| 00023033 | |
| 00023034 | |
| 00023035 | |
| 00023036 | |
| 00023037 | |
| 00023038 | |
| 00023039 | |
| 00023040 | |
| 00023041 | |
| 00023042 | |
| 00023043 | |
| 00023044 | |
| 00023045 | |
| 00023046 | |
| 00023047 | |
| 00023048 | |
| 00023049 | |
| 00023050 | |
| 00023051 | |
| 00023052 | |
| 00023053 | |
| 00023054 | |
| 00023055 | |
| 00023056 | |
| 00023057 | |
| 00023058 | |
| 00023059 | |
| 00023060 | |
| 00023061 | |
| 00023062 | |
| 00023063 | |
| 00023064 | |
| 00023065 | |
| 00023066 | |
| 00023067 | |
| 00023068 | |
| 00023069 | |
| 00023070 | |
| 00023071 | |
| 00023072 | |
| 00023073 | |
| 00023074 | |
| 0097763 | |
| 0097764 | |
| 0097765 | |
| 0097766 | |
| 0097767 | |
| 0097768 | |
| 0097769 | |
| 0097770 | |
| 0097771 | |
| 0097772 | |
| 0097773 | |
| 0097774 | |
| 0097775 | |
| 0097776 | |
| 0097777 | |
| 0097778 | |
| 0097779 | |
| 0097780 | |
| 0097781 | |
| 0097782 | |
| 0097783 | |
| 0097784 | |
| 0097785 | |
| 0097786 | |
| 0097787 | |
| 0097788 | |
| 0097789 | |
| 0097790 | |
| 0097791 | |
| 0097792 | |
| 0097793 | |
| 0097794 | |
| 0097795 | |
| 0097796 | |
| 0097797 | |
| 0097798 | |
| 0097799 | |
| 0097800 | |
| 0097801 | |
| 0097802 | |
| 0097803 | |
| 0097804 | |
| 0097805 | |
| 0097806 | |
| 0097807 | |
| 0097808 | |
| 0097809 | |
| 0097810 | |
| 0097811 | |
| 0097812 | |
| 0097813 | |
| 0097814 | |
| 0097815 | |
| 0097816 | |
| 0097817 | |
| 0097818 | |
| 0097819 | |
| 0097820 | |
| 0097821 | |
| 0097822 | |
| 0097823 | |
| 0097824 | |
| 0097825 | |
| 0097826 | |
| 0097827 | |
| 0097828 | |
| 0097829 | |
| 0097830 | |
| 0097831 | |
| 0097832 | |
| 0097833 | |
| 0097834 | |
| 0097835 | |
| 0097836 | |
| 0097837 | |
| 0097838 | |
| 0097839 | |
| 0097840 | |
| 0097841 | |
| 0097842 | |
| 0097843 | |
| 0097844 | |
| 0097845 | |
| 0097846 | |
| 0097847 | |
| 0097848 | |
| 0097849 | |
| 0097850 | |
| 0097851 | |
| 0097852 | |
| 0097853 | |
| 0097854 | |
| 0097855 | |
| 0097856 | |
| 0097857 | |
| 0097858 | |
| 0097859 | |
| 0097860 | |
| 0097861 | |
| 0097862 | |
| 0097863 | |
| 0097864 | |
| 0097865 | |
| 0097866 | |
| 0097867 | |
| 0097868 | |
| 0097869 | |
| 0097870 | |
| 1004632 | |
| 1004633 | |
| 1004634 | |
| 1004635 | |
| 1004636 | |
| 1004637 | |
| 1004638 | |
| 1004639 | |
| 1004640 | |
| 1004641 | |
| 1004642 | |
| 1004643 | |
| 1004644 | |
| 1004645 | |
| 1004646 | |
| 1004647 | |
| 1004648 | |
| 1004649 | |
| 1004650 | |
| 1004651 | |
| 1004652 | |
| 1004653 | |
| 1004654 | |
| 1004655 | |
| 1004656 | |
| 00055644 | |
| 00055645 | |
| 00055646 | |
| 00055647 | |
| 00055648 | |
| 00055649 | |
| 00055750 | |
| 00055751 | |
| 00055752 | |
| 00055753 | |
| 00055754 | |
| 00055755 | |
| 00055756 | |
| 00055757 | |
| 00055758 | |
| 00055759 | |
| 00055760 | |
| 00055761 | |
| 00055762 | |
| 00055763 | |
| 00055764 | |
| 00055765 | |
| 00055766 | |
| 00055767 | |
| 00055768 | |
| 00055769 | |
| 00055770 | |
| 00055771 | |
| 00055772 | |
| 00055773 | |
| 00055774 | |
| 00055775 | |
| 00055777 | |
| 00055778 | |
| 00088429 | |
| 00088430 | |
| 00088431 | |
| 00088432 | |
| 00088433 | |
| 00088434 | |
| 00088435 | |
| 00088436 | |
| 00088437 | |
| 00088438 | |
| 00088439 | |
| 00088440 | |
| 00088441 | |
| 00088442 | |
| 00088443 | |
| 00088444 | |
| 00088445 | |
| 00088446 | |
| 00088447 | |
| 00088448 | |
| 00088449 | |
| 00088450 | |
| 00088451 | |
| 00088452 | |
| 00088453 | |
| 00088454 | |
| 00088455 | |
| 00088456 | |
| 00088457 | |
| 00088458 | |
| 00088459 | |
| 00088460 | |
| 00088461 | |
| 00088462 | |
| 00088463 | |
| 00088464 | |
| 00088465 | |
| 00088466 | |
| 00088467 | |
| 00088468 | |
| 00088469 | |
| 00088470 | |
| 00088471 | |
| 00088472 | |
| 00088473 | |
| 00088474 | |
| 00088475 | |
| 00088476 | |
| 00088477 | |
| 00088478 | |
| 00088479 | |
| 00088480 | |
| 00088481 | |
| 00088482 | |
| 00088483 | |
| 00088484 | |
| 00088485 | |
| 00088486 | |
| 00088487 | |
| 00088488 | |
| 00088489 | |
| 00088490 | |
| 00088491 | |
| 00088492 | |
| 00088493 | |
| 00088494 | |
| 00088495 | |
| 00088496 | |
| 00088497 | |
| 00088498 | |
| 00088499 | |
| 00088500 | |
| 00088501 | |
| 00088502 | |
| 00088503 | |
| 00088504 | |
| 00088505 | |
| 00088506 | |
| 00088507 | |
| 00088508 | |
| 00088509 | |
| 00088510 | |
| 00088511 | |
| 00088512 | |
| 00088513 | |
| 00088514 | |
| 00088515 | |
| 00088516 | |
| 00088517 | |
| 00088518 | |
| 00088519 | |
| 00088520 | |
| 00088521 | |
| 00088522 | |
| 00088523 | |
| 00088524 | |
| 00088525 | |
| 00088526 | |
| 00088527 | |
| 00088528 | |
| 00088529 | |
| 00088530 | |
| 00088531 | |
| 00088532 | |
| 00088533 | |
| 00088534 | |
| 00088535 | |
| 00088536 | |
| 00088537 | |
| 00088538 | |
| 00088539 | |
| 00088540 | |
| 00088541 | |
| 00088542 | |
| 00088543 | |
| 00088544 | |
| 00088545 | |
| 00088546 | |
| 00088547 | |
| 00088548 | |
| 00088549 | |
| 00088550 | |
| 00088551 | |
| 00088552 | |
| 00088553 | |
| 00088554 | |
| 00088555 | |
| 00088556 | |
| 00088557 | |
| 00088558 | |
| 00088559 | |
| 00088560 | |
| 00088561 | |
| 00088562 | |
| 00088563 | |
| 00088564 | |
| 00088565 | |
| 00088566 | |
| 00088567 | |
| 00088568 | |
| 00088569 | |
| 00088570 | |
| 00088571 | |
| 00088572 | |
| 00088573 | |
| 00088574 | |
| 00088575 | |
| 00088576 | |
| 00088577 | |
| 00088578 | |
| 00088579 | |
| 00088580 | |
| 00088581 | |
| 00088582 | |
| 00088583 | |
| 00088584 | |
| 00088585 | |
| 00088586 | |
| 00088587 | |
| 00088588 | |
| 00088589 | |
| 00088590 | |
| 00088591 | |
| 00088592 | |
| 00088593 | |
| 00088594 | |
| 00088595 | |
| 00088596 | |
| 00088597 | |
| 00088598 | |
| 00088599 | |
| 00088600 | |
| 00088601 | |
| 00088602 | |
| 00088603 | |
| 00088604 | |
| 00088605 | |
| 00088606 | |
| 00088607 | |
| 00088608 | |
| 00088609 | |
| 00088610 | |
| 00088611 | |
| 00088612 | |
| 00088613 | |
| 00088614 | |
| 00088615 | |
| 00088616 | |
| 00088617 | |
| 00088618 | |
| 00088619 | |
| 00088620 | |
| 00088621 | |
| 00088622 | |
| 00088623 | |
| 00088624 | |
| 00088625 | |
| 00088626 | |
| 00088627 | |
| 00088628 | |
| 00088629 | |
| 00088630 | |
| 00088631 | |
| 00088632 | |
| 00088633 | |
| 00088634 | |
| 00088635 | |
| 00088636 | |
| 00088637 | |
| 00088638 | |
| 00088639 | |
| 00088640 | |
| 00088641 | |
| 00088642 | |
| 00088643 | |
| 00088644 | |
| 00088645 | |
| 00088646 | |
| 00088647 | |
| 00088648 | |
| 00088649 | |
| 00088650 | |
| 00088651 | |
| 00088652 | |
| 00088653 | |
| 00088654 | |
| 00088655 | |
| 00088656 | |
| 00088657 | |
| 00088658 | |
| 00088659 | |
| 00088660 | |
| 00088661 | |
| 00088662 | |
| 00088663 | |
| 00088664 | |
| 00088665 | |
| 00088666 | |
| 00088667 | |
| 00088668 | |
| 00088669 | |
| 00088670 | |
| 00088671 | |
| 00088672 | |
| 00088673 | |
| 00088674 | |
| 00088675 | |
| 00088676 | |
| 00088677 | |
| 00088678 | |
| 00088679 | |
| 00088680 | |
| 00088681 | |
| 00088682 | |
| 00088683 | |
| 00088684 | |
| 00088685 | |
| 00088686 | |
| 00088687 | |
| 00088688 | |
| 00088689 | |
| 00088690 | |
| 00088691 | |
| 00088692 | |
| 00088693 | |
| 00088694 | |
| 00088695 | |
| 00088696 | |
| 00088697 | |
| 00088698 | |
| 00088699 | |
| 00088700 | |
| 00088701 | |
| 00088702 | |
| 00088703 | |
| 00088704 | |
| 00088705 | |
| 00088706 | |
| 00088707 | |
| 00088708 | |
| 00088709 | |
| 00088710 | |
| 00088711 | |
| 00088712 | |
| 00088713 | |
| 00088714 | |
| 00088715 | |
| 00088716 | |
| 00088717 | |
| 00088718 | |
| 00088719 | |
| 00088720 | |
| 00088721 | |
| 00088722 | |
| 00088723 | |
| 00088724 | |
| 00088725 | |
| 00088726 | |
| 00088727 | |
| 00088728 | |
| 00088729 | |
| 00088730 | |
| 00088731 | |
| 00088732 | |
| 00088733 | |
| 00088734 | |
| 00088735 | |
| 00088736 | |
| 00088737 | |
| 00088738 | |
| 00088739 | |
| 00088740 | |
| 00088741 | |
| 00088742 | |
| 00088743 | |
| 00088744 | |
| 00088745 | |
| 00088746 | |
| 00088747 | |
| 00088748 | |
| 00088749 | |
| 00088750 | |
| 00088751 | |
| 00088752 | |
| 00088753 | |
| 00088754 | |
| 00088755 | |
| 00088756 | |
| 00088757 | |
| 00088758 | |
| 00088759 | |
| 00088760 | |
| 00088761 | |
| 00088762 | |
| 00088763 | |
| 00088764 | |
| 00088765 | |
| 00088766 | |
| 00088767 | |
| 00088768 | |
| 00088769 | |
| 00088770 | |
| 00088771 | |
| 00088772 | |
| 00088773 | |
| 00088774 | |
| 00088775 | |
| 00088776 | |
| 00088777 | |
| 00088778 | |
| 00088779 | |
| 00088780 | |
| 00088781 | |
| 00088782 | |
| 00088783 | |
| 00088784 | |
| 00088785 | |
| 00088786 | |
| 00088787 | |
| 00088788 | |
| 00088789 | |
| 00088790 | |
| 00088791 | |
| 00088792 | |
| 00088793 | |
| 00088794 | |
| 00088795 | |
| 00088796 | |
| 00088797 | |
| 00088798 | |
| 00088799 | |
| 00088800 | |
| 00088801 | |
| 00088802 | |
| 00088803 | |
| 00088804 | |
| 00088805 | |
| 00088806 | |
| 00088807 | |
| 00088808 | |
| 00088809 | |
| 00088810 | |
| 00088811 | |
| 00088812 | |
| 00088813 | |
| 00088814 | |
| 00088815 | |
| 00088816 | |
| 00088817 | |
| 00088818 | |
| 00088819 | |
| 00088820 | |
| 00088821 | |
| 00088822 | |
| 00088823 | |
| 00088824 | |
| 00088825 | |
| 00088826 | |
| 00105396 | |
| 00105397 | |
| 00105398 | |
| 00105399 | |
| 00105400 | |
| 00088038 | |
| 00088050 | |
| 00088051 | |
| 00088052 | |
| 00088053 | |
| 00107545 | |
| 00107546 | |
| 00107547 | |
| 00107548 | |
| 00107549 | |
| 00107550 | |
| 00107551 | |
| 00105540 | |
| 00105541 | |
| 00105542 | |
| 00105543 | |
| 00105544 | |
| 00105545 | |
| 00105546 | |
| 00105547 | |
| 00105548 | |
| 00105549 | |
| 00105550 | |
| 00105551 | |
| 00105552 | |
| 00105553 | |
| 00105554 | |
| 00105555 | |
| 00105556 | |
| 00105557 | |
| 00105558 | |
| 00105559 | |
| 00105560 | |
| 00105561 | |
| 00105562 | |
| 00105563 | |
| 00105564 | |
| 00105565 | |
| 00105566 | |
| 00105567 | |
| 00105568 | |
| 00105569 | |
| 00106704 | |
| 00106705 | |
| 00106706 | |
| 00106707 | |
| 00106708 | |
| 00106709 | |
| 00106710 | |
| 00106711 | |
| 00106712 | |
| 00106713 | |
| 00106714 | |
| 00106715 | |
| 00106716 | |
| 00106717 | |
| 00106718 | |
| 00106719 | |
| 00106720 | |
| 00106721 | |
| 00106722 | |
| 00106723 | |
| 00106724 | |
| 00106725 | |
| 00106726 | |
| 00106727 | |
| 00106728 | |
| 00106729 | |
| 00106730 | |
| 00106731 | |
| 00106732 | |
| 00106733 | |
| 00106734 | |
| 00106735 | |
| 00106736 | |
| 00106737 | |
| 00106738 | |
| 00106739 | |
| 00106740 | |
| 00106741 | |
| 00106742 | |
| 00106743 | |
| 00106744 | |
| 00106745 | |
| 00106746 | |
| 00106747 | |
| 00106748 | |
| 00106749 | |
| 00106750 | |
| 00106751 | |
| 00106752 | |
| 00106753 | |
| 00055650 | |
| 00055651 | |
| 00055687 | |
| 00055737 | |
| 00105571 | |
| 00105572 | |
| 00105573 | |
| 00105574 | |
| 00105575 | |
| 00105576 | |
| 00105577 | |
| 00105578 | |
| 00105579 | |
| 00105580 | |
| 00105581 | |
| 00105582 | |
| 00105583 | |
| 00105584 | |
| 00105585 | |
| 00105586 | |
| 00105587 | |
| 00105588 | |
| 00105589 | |
| 00105590 | |
| 00105591 | |
| 00105592 | |
| 00105593 | |
| 00105594 | |
| 00105595 | |
| 00105596 | |
| 00105597 | |
| 00105598 | |
| 00105599 | |
| 00105600 | |
| 00105601 | |
| 00105602 | |
| 00105603 | |
| 00105604 | |
| 00105605 | |
| 00105401 | |
| 00105402 | |
| 00105403 | |
| 00105404 | |
| 00105405 | |
| 00105406 | |
| 00105407 | |
| 00105408 | |
| 00105409 | |
| 00105410 | |
| 00105411 | |
| 00105412 | |
| 00105413 | |
| 00105414 | |
| 00105415 | |
| 00105416 | |
| 00105417 | |
| 00105418 | |
| 00105419 | |
| 00105420 | |
| 00105421 | |
| 00105422 | |
| 00105423 | |
| 00105424 | |
| 00105425 | |
| 00105426 | |
| 00105427 | |
| 00105428 | |
| 00105429 | |
| 00105430 | |
| 00105431 | |
| 00105432 | |
| 00105433 | |
| 00105434 | |
| 00105435 | |
| 00105436 | |
| 00105437 | |
| 00105438 | |
| 00105439 | |
| 00105440 | |
| 00105441 | |
| 00105442 | |
| 00105443 | |
| 00105444 | |
| 00105445 | |
| 00105446 | |
| 00105447 | |
| 00105448 | |
| 00105449 | |
| 00105450 | |
| 00105451 | |
| 00105452 | |
| 00105453 | |
| 00105454 | |
| 00105455 | |
| 00105456 | |
| 00105457 | |
| 00105458 | |
| 00105459 | |
| 00105460 | |
| 00105461 | |
| 00105462 | |
| 00105463 | |
| 00105464 | |
| 00105465 | |
| 00105466 | |
| 00105467 | |
| 00105468 | |
| 00105469 | |
| 00105470 | |
| 00105471 | |
| 00105472 | |
| 00105473 | |
| 00105474 | |
| 00105475 | |
| 00105476 | |
| 00105477 | |
| 00105478 | |
| 00105479 | |
| 00105480 | |
| 00105481 | |
| 00105482 | |
| 00105483 | |
| 00105484 | |
| 00105485 | |
| 00105486 | |
| 00105487 | |
| 00105488 | |
| 00105489 | |
| 00105500 | |
| 00105790 | |
| 00105802 | |
| 00105824 | |
| 00105844 | |
| 00105846 | |
| 00105847 | |
| 00105849 | |
| 00105850 | |
| 00105851 | |
| 00105852 | |
| 00105854 | |
| 00105870 | |
| 00105880 | |
| 00105881 | |
| 00105882 | |
| 00105883 | |
| 00105884 | |
| 00105885 | |
| 00105886 | |
| 00105887 | |
| 00105888 | |
| 00105889 | |
| 00105890 | |
| 00105891 | |
| 00105892 | |
| 00105893 | |
| 00105894 | |
| 00105895 | |
| 00105896 | |
| 00105915 | |
| 00105916 | |
| 00105917 | |
| 00105918 | |
| 00105919 | |
| 00105920 | |
| 00105921 | |
| 00105922 | |
| 00105923 | |
| 00105924 | |
| 00105925 | |
| 00105926 | |
| 00105929 | |
| 00105932 | |
| 00105933 | |
| 00105934 | |
| 00105785 | |
| 00105902 | |
| 00105903 | |
| 00105904 | |
| 00105905 | |
| 00105942 | |
| 00105819 | |
| 00105829 | |
| 00105830 | |
| 00105831 | |
| 00105832 | |
| 00105833 | |
| 00105845 | |
| 00105910 | |
| 00105911 | |
| 00105912 | |
| 00105913 | |
| 00105941 | |
| 00011865 | |
| 00011867 | |
| 00011868 | |
| 00011869 | |
| 00011870 | |
| 00011871 | |
| 00011872 | |
| 00011873 | |
| 00011874 | |
| 00011875 | |
| 00011876 | |
| 00011877 | |
| 00011878 | |
| 00011879 | |
| 00011880 | |
| 00011881 | |
| 00011882 | |
| 00011883 | |
| 00011884 | |
| 00011885 | |
| 00011886 | |
| 00011887 | |
| 00011888 | |
| 00011889 | |
| 00011890 | |
| 00011891 | |
| 00011892 | |
| 00011893 | |
| 00011894 | |
| 00011895 | |
| 00011896 | |
| 00011897 | |
| 00011898 | |
| 00011899 | |
| 00011900 | |
| 00011901 | |
| 00011902 | |
| 00011903 | |
| 00011904 | |
| 00011905 | |
| 00011906 | |
| 00011907 | |
| 00011908 | |
| 00011909 | |
| 00011910 | |
| 00011911 | |
| 00011912 | |
| 00011913 | |
| 00011914 | |
| 00011915 | |
| 00011916 | |
| 00011917 | |
| 00011918 | |
| 00011919 | |
| 00011920 | |
| 00011921 | |
| 00011922 | |
| 00011923 | |
| 00011924 | |
| 00011925 | |
| 00011926 | |
| 00011927 | |
| 00011928 | |
| 00011929 | |
| 00011930 | |
| 00011931 | |
| 00011932 | |
| 00011933 | |
| 00011934 | |
| 00011935 | |
| 00011936 | |
| 00011937 | |
| 00011938 | |
| 00011939 | |
| 00011940 | |
| 00011941 | |
| 00011942 | |
| 00011943 | |
| 00011944 | |
| 00011945 | |
| 00011946 | |
| 00011947 | |
| 00011948 | |
| 00011949 | |
| 00011950 | |
| 00011951 | |
| 00011952 | |
| 00011953 | |
| 00011954 | |
| 00011955 | |
| 00011956 | |
| 00011957 | |
| 00011958 | |
| 00011959 | |
| 00011960 | |
| 00011961 | |
| 00011962 | |
| 00011963 | |
| 00011964 | |
| 00013028 | |
| 00013029 | |
| 00013030 | |
| 00013031 | |
| 00013032 | |
| 00013033 | |
| 00013034 | |
| 00013035 | |
| 00013036 | |
| 00013037 | |
| 00013038 | |
| 00013039 | |
| 00013040 | |
| 00013041 | |
| 00013042 | |
| 00013043 | |
| 00013044 | |
| 00013045 | |
| 00013046 | |
| 00013047 | |
| 00013048 | |
| 00013049 | |
| 00013050 | |
| 00013051 | |
| 00013052 | |
| 00013053 | |
| 00013054 | |
| 00013055 | |
| 00013056 | |
| 00013057 | |
| 00013058 | |
| 00013059 | |
| 00013060 | |
| 00013061 | |
| 00013062 | |
| 00013063 | |
| 00013064 | |
| 00013065 | |
| 00013066 | |
| 00013067 | |
| 00013068 | |
| 00013069 | |
| 00013070 | |
| 00013071 | |
| 00013072 | |
| 00013073 | |
| 00013074 | |
| 00013075 | |
| 00013076 | |
| 00013077 | |
| 00013078 | |
| 00013079 | |
| 00013080 | |
| 00013081 | |
| 00013082 | |
| 00013083 | |
| 00013084 | |
| 00013085 | |
| 00013086 | |
| 00013087 | |
| 00055856 | |
| 00055857 | |
| 00055858 | |
| 00055859 | |
| 00055860 | |
| 00055861 | |
| 00055862 | |
| 00055863 | |
| 00055864 | |
| 00055865 | |
| 00055866 | |
| 00055867 | |
| 00055868 | |
| 00055869 | |
| 00055870 | |
| 00055871 | |
| 00055872 | |
| 00055873 | |
| 00055874 | |
| 00055875 | |
| 00055876 | |
| 00055877 | |
| 00055878 | |
| 00055880 | |
| 00055881 | |
| 00055882 | |
| 00055883 | |
| 00055884 | |
| 00055885 | |
| 00055886 | |
| 00055887 | |
| 00055888 | |
| 00055889 | |
| 00055890 | |
| 00055891 | |
| 00055892 | |
| 00055893 | |
| 00055894 | |
| 00055895 | |
| 00055896 | |
| 00055897 | |
| 00055898 | |
| 00055899 | |
| 00055900 | |
| 00055901 | |
| 00055902 | |
| 00055903 | |
| 00055904 | |
| 00055905 | |
| 00055906 | |
| 00055907 | |
| 00055908 | |
| 00055909 | |
| 00055910 | |
| 00055911 | |
| 00055912 | |
| 00055913 | |
| 00055914 | |
| 00055915 | |
| 00055916 | |
| 00055917 | |
| 00055918 | |
| 00055919 | |
| 00055920 | |
| 00055921 | |
| 00055922 | |
| 00055924 | |
| 00055925 | |
| 00055926 | |
| 00055927 | |
| 00055928 | |
| 00055929 | |
| 00055930 | |
| 00055931 | |
| 00055932 | |
| 00055933 | |
| 00055934 | |
| 00055935 | |
| 00055936 | |
| 00055937 | |
| 00055938 | |
| 00055939 | |
| 00055940 | |
| 00055941 | |
| 00055942 | |
| 00055943 | |
| 00055944 | |
| 00055945 | |
| 00105930 | |
| 00105931 | |
| 00002238 | |
| 00003319 | |
| 00003324 | |
| 00003328 | |
| 00003329 | |
| 00003330 | |
| 00003363 | |
| 00003372 | |
| 00003376 | |
| 00003378 | |
| 00003380 | |
| 00003382 | |
| 00003386 | |
| 00003391 | |
| 00003392 | |
| 00003410 | |
| 00003412 | |
| 00003413 | |
| 00003416 | |
| 00003423 | |
| 00003429 | |
| 00105788 | |
| 00105789 | |
| 00105791 | |
| 00105792 | |
| 00105793 | |
| 00105794 | |
| 00105795 | |
| 00105796 | |
| 00105797 | |
| 00105798 | |
| 00105799 | |
| 00105800 | |
| 00105801 | |
| 00105803 | |
| 00105805 | |
| 00105806 | |
| 00105807 | |
| 00105808 | |
| 00105809 | |
| 00105810 | |
| 00105812 | |
| 00105813 | |
| 00105814 | |
| 00105815 | |
| 00105817 | |
| 00105818 | |
| 00105820 | |
| 00105821 | |
| 00105823 | |
| 00105825 | |
| 00105826 | |
| 00105834 | |
| 00105835 | |
| 00105836 | |
| 00105837 | |
| 00105838 | |
| 00105857 | |
| 00105858 | |
| 00105859 | |
| 00105860 | |
| 00105861 | |
| 00105862 | |
| 00105864 | |
| 00105865 | |
| 00105866 | |
| 00105867 | |
| 00105868 | |
| 00105914 | |
| 00105928 | |
| 00105935 | |
| 00105936 | |
| 00105943 | |
| 00105944 | |
| 00003599 | |
| 00003600 | |
| 00003601 | |
| 00003602 | |
| 00003768 | |
| 00003776 | |
| 00003786 | |
| 00105787 | |
| 00105804 | |
| 00105811 | |
| 00105816 | |
| 00105828 | |
| 00105897 | |
| 00105898 | |
| 00105899 | |
| 00105900 | |
| 00105901 | |
| 00105786 | |
| 00105827 | |
| 00105863 | |
| 00105869 | |
| 00105871 | |
| 00105872 | |
| 00105873 | |
| 00105874 | |
| 00105875 | |
| 00105876 | |
| 00105877 | |
| 00105878 | |
| 00105879 | |
| 00105906 | |
| 00105907 | |
| 00105945 | |
| 00096146 | |
| 00096149 | |
| 00096150 | |
| 00096151 | |
| 00096152 | |
| 00096153 | |
| 00096154 | |
| 00096155 | |
| 00096156 | |
| 00096157 | |
| 00096158 | |
| 00096159 | |
| 00096160 | |
| 00096161 | |
| 00096162 | |
| 00096163 | |
| 00096164 | |
| 00096165 | |
| 00096166 | |
| 00096167 | |
| 00096168 | |
| 00096169 | |
| 00096170 | |
| 00096171 | |
| 00096172 | |
| 00096173 | |
| 00096174 | |
| 00096175 | |
| 00096176 | |
| 00096177 | |
| 00096178 | |
| 00096179 | |
| 00096180 | |
| 00096181 | |
| 00096182 | |
| 00096183 | |
| 00096184 | |
| 00096185 | |
| 00096186 | |
| 00096187 | |
| 00096188 | |
| 00096189 | |
| 00096190 | |
| 00096191 | |
| 00096192 | |
| 00096193 | |
| 00096194 | |
| 00096195 | |
| 00096196 | |
| 00096197 | |
| 00096198 | |
| 00096199 | |
| 00096200 | |
| 00096201 | |
| 00096202 | |
| 00096203 | |
| 00096204 | |
| 00096205 | |
| 00096206 | |
| 00096207 | |
| 00096208 | |
| 00096209 | |
| 00096210 | |
| 00096211 | |
| 00096212 | |
| 00096213 | |
| 00096214 | |
| 00096215 | |
| 00096216 | |
| 00096217 | |
| 00096218 | |
| 00096219 | |
| 00096220 | |
| 00096221 | |
| 00096222 | |
| 00096223 | |
| 00096224 | |
| 00096225 | |
| 00096226 | |
| 00096227 | |
| 00096228 | |
| 00096229 | |
| 00096230 | |
| 00096231 | |
| 00096232 | |
| 00096233 | |
| 00096234 | |
| 00096235 | |
| 00096236 | |
| 00096237 | |
| 00096238 | |
| 00096239 | |
| 00096240 | |
| 00096241 | |
| 00096242 | |
| 00096243 | |
| 00096244 | |
| 00096245 | |
| 00096246 | |
| 00096247 | |
| 00096248 | |
| 00096249 | |
| 00096250 | |
| 00096251 | |
| 00096252 | |
| 00096253 | |
| 00096254 | |
| 00096255 | |
| 00096256 | |
| 00096257 | |
| 00096258 | |
| 00096259 | |
| 00096260 | |
| 00096261 | |
| 00096262 | |
| 00096263 | |
| 00096264 | |
| 00096265 | |
| 00096266 | |
| 00096267 | |
| 00096268 | |
| 00096269 | |
| 00096270 | |
| 00096271 | |
| 00096273 | |
| 00096274 | |
| 00096275 | |
| 00088593 | |
| 00107552 | |
| 00107553 | |
| 00107554 | |
| 00107555 | |
| 00107556 | |
| 00107557 | |
| 00107558 | |
| 00107559 | |
| 00107560 | |
| 00107561 | |
| 00047435 | |
| 00047436 | |
| 00047437 | |
| 00047438 | |
| 00047439 | |
| 00047440 | |
| 00047441 | |
| 00047442 | |
| 00047443 | |
| 00055779 | |
| 00055780 | |
| 00055781 | |
| 00055782 | |
| 00055783 | |
| 00055784 | |
| 00055785 | |
| 00055786 | |
| 00055787 | |
| 00055788 | |
| 00055789 | |
| 00055790 | |
| 00055791 | |
| 00055792 | |
| 00055793 | |
| 00055794 | |
| 00055795 | |
| 00055796 | |
| 00055797 | |
| 00055798 | |
| 00055799 | |
| 00055800 | |
| 00055801 | |
| 00055802 | |
| 00055803 | |
| 00055804 | |
| 00055805 | |
| 00055807 | |
| 00055808 | |
| 00055809 | |
| 00055810 | |
| 00055811 | |
| 00055812 | |
| 00055813 | |
| 00055814 | |
| 00055815 | |
| 00055816 | |
| 00055817 | |
| 00055818 | |
| 00055819 | |
| 00055820 | |
| 00055821 | |
| 00055822 | |
| 00055823 | |
| 00055824 | |
| 00055825 | |
| 00055826 | |
| 00055827 | |
| 00055828 | |
| 00055829 | |
| 00055830 | |
| 00055831 | |
| 00055832 | |
| 00055833 | |
| 00055834 | |
| 00055835 | |
| 00055836 | |
| 00055837 | |
| 00055838 | |
| 00055839 | |
| 00055840 | |
| 00055841 | |
| 00055842 | |
| 00055843 | |
| 00055844 | |
| 00055845 | |
| 00055846 | |
| 00055847 | |
| 00055848 | |
| 00055849 | |
| 00055850 | |
| 00055851 | |
| 00055852 | |
| 00055853 | |
| 00055854 | |
| 00055855 | |
| 00098033 | |
| 00098033 | |
| 00098033 | |
| 00098033 | |
| 00098033 | |
| 00098033 | |
| 00098033 | |
| 00098033 | |
| 00098033 | |
| 00098033 | |
| 00098033 | |
| 00098033 | |
| 00098033 | |
| 00098033 | |
| 00104878 | |
| 00104879 | |
| 00104880 | |
| 00104881 | |
| 00104882 | |
| 00104883 | |
| 00104884 | |
| 00104885 | |
| 00104886 | |
| 00104887 | |
| 00104888 | |
| 00104889 | |
| 00104890 | |
| 00104891 | |
| 00104892 | |
| 00104893 | |
| 00104894 | |
| 00104895 | |
| 00104896 | |
| 00104897 | |
| 00104898 | |
| 00104899 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment