vivonatev/0000755000175000017510000000000012352055571013255 5ustar jordanlabmembersvivonatev/vect2.py0000755000175000017510000000153312352055317014655 0ustar jordanlabmembers#!/bin/env python import sys def exit(str): print str sys.exit() if __name__ == "__main__": usage = "vect2 vector_length mpileup_input_file [output_file]" if (len(sys.argv) < 3) or (len(sys.argv) > 4): exit(usage) try: vect_len = int(sys.argv[1]) infile_name = sys.argv[2] if len(sys.argv) == 4: outfile_name = sys.argv[3] out = open(outfile_name, 'w') else: out = sys.stdout vector = [0]*vect_len infile = open(infile_name, 'r') inlines = infile.readlines() for line in inlines: splitline = line.split() vector[ int(splitline[1]) - 1] = int(splitline[3]) i=0 while (i < vect_len): out.write( str(i + 1) + ' ' + str(vector[i]) + '\n' ) i+=1 infile.close() except IOError as e: print "input file " + infile_name + " does not exist" print e finally: if sys.argv == 4: out.close() vivonatev/.git/0000755000175000017510000000000012352055317014114 5ustar jordanlabmembersvivonatev/.git/description0000644000175000017510000000011112352055316016352 0ustar jordanlabmembersUnnamed repository; edit this file 'description' to name the repository. vivonatev/.git/refs/0000755000175000017510000000000012352055317015053 5ustar jordanlabmembersvivonatev/.git/refs/heads/0000755000175000017510000000000012352055317016137 5ustar jordanlabmembersvivonatev/.git/refs/heads/master0000644000175000017510000000005112352055317017351 0ustar jordanlabmembers5b2845d9d13fbeae4fb573117e1315fc927da6b7 vivonatev/.git/refs/remotes/0000755000175000017510000000000012352055317016531 5ustar jordanlabmembersvivonatev/.git/refs/remotes/origin/0000755000175000017510000000000012352055317020020 5ustar jordanlabmembersvivonatev/.git/refs/remotes/origin/HEAD0000644000175000017510000000004012352055317020436 0ustar jordanlabmembersref: refs/remotes/origin/master vivonatev/.git/refs/tags/0000755000175000017510000000000012352055316016010 5ustar jordanlabmembersvivonatev/.git/info/0000755000175000017510000000000012352055316015046 5ustar jordanlabmembersvivonatev/.git/info/exclude0000644000175000017510000000036012352055316016421 0ustar jordanlabmembers# git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ vivonatev/.git/hooks/0000755000175000017510000000000012352055316015236 5ustar jordanlabmembersvivonatev/.git/hooks/pre-push.sample0000755000175000017510000000250412352055316020210 0ustar jordanlabmembers#!/bin/sh # An example hook script to verify what is about to be pushed. Called by "git # push" after it has checked the remote status, but before anything has been # pushed. If this script exits with a non-zero status nothing will be pushed. # # This hook is called with the following parameters: # # $1 -- Name of the remote to which the push is being done # $2 -- URL to which the push is being done # # If pushing without using a named remote those arguments will be equal. # # Information about the commits which are being pushed is supplied as lines to # the standard input in the form: # # # # This sample shows how to prevent push of commits where the log message starts # with "WIP" (work in progress). remote="$1" url="$2" z40=0000000000000000000000000000000000000000 IFS=' ' while read local_ref local_sha remote_ref remote_sha do if [ "$local_sha" = $z40 ] then # Handle delete else if [ "$remote_sha" = $z40 ] then # New branch, examine all commits range="$local_sha" else # Update to existing branch, examine new commits range="$remote_sha..$local_sha" fi # Check for WIP commit commit=`git rev-list -n 1 --grep '^WIP' "$range"` if [ -n "$commit" ] then echo "Found WIP commit in $local_ref, not pushing" exit 1 fi fi done exit 0 vivonatev/.git/hooks/commit-msg.sample0000755000175000017510000000160012352055316020515 0ustar jordanlabmembers#!/bin/sh # # An example hook script to check the commit log message. # Called by "git commit" with one argument, the name of the file # that has the commit message. The hook should exit with non-zero # status after issuing an appropriate message if it wants to stop the # commit. The hook is allowed to edit the commit message file. # # To enable this hook, rename this file to "commit-msg". # Uncomment the below to add a Signed-off-by line to the message. # Doing this in a hook is a bad idea in general, but the prepare-commit-msg # hook is more suited to it. # # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" # This example catches duplicate Signed-off-by lines. test "" = "$(grep '^Signed-off-by: ' "$1" | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { echo >&2 Duplicate Signed-off-by lines. exit 1 } vivonatev/.git/hooks/pre-commit.sample0000755000175000017510000000325012352055316020520 0ustar jordanlabmembers#!/bin/sh # # An example hook script to verify what is about to be committed. # Called by "git commit" with no arguments. The hook should # exit with non-zero status after issuing an appropriate message if # it wants to stop the commit. # # To enable this hook, rename this file to "pre-commit". if git rev-parse --verify HEAD >/dev/null 2>&1 then against=HEAD else # Initial commit: diff against an empty tree object against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 fi # If you want to allow non-ascii filenames set this variable to true. allownonascii=$(git config hooks.allownonascii) # Redirect output to stderr. exec 1>&2 # Cross platform projects tend to avoid non-ascii filenames; prevent # them from being added to the repository. We exploit the fact that the # printable range starts at the space character and ends with tilde. if [ "$allownonascii" != "true" ] && # Note that the use of brackets around a tr range is ok here, (it's # even required, for portability to Solaris 10's /usr/bin/tr), since # the square bracket bytes happen to fall in the designated range. test $(git diff --cached --name-only --diff-filter=A -z $against | LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 then echo "Error: Attempt to add a non-ascii file name." echo echo "This can cause problems if you want to work" echo "with people on other platforms." echo echo "To be portable it is advisable to rename the file ..." echo echo "If you know what you are doing you can disable this" echo "check using:" echo echo " git config hooks.allownonascii true" echo exit 1 fi # If there are whitespace errors, print the offending file names and fail. exec git diff-index --check --cached $against -- vivonatev/.git/hooks/prepare-commit-msg.sample0000755000175000017510000000232712352055316022160 0ustar jordanlabmembers#!/bin/sh # # An example hook script to prepare the commit log message. # Called by "git commit" with the name of the file that has the # commit message, followed by the description of the commit # message's source. The hook's purpose is to edit the commit # message file. If the hook fails with a non-zero status, # the commit is aborted. # # To enable this hook, rename this file to "prepare-commit-msg". # This hook includes three examples. The first comments out the # "Conflicts:" part of a merge commit. # # The second includes the output of "git diff --name-status -r" # into the message, just before the "git status" output. It is # commented because it doesn't cope with --amend or with squashed # commits. # # The third example adds a Signed-off-by line to the message, that can # still be edited. This is rarely a good idea. case "$2,$3" in merge,) /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;; # ,|template,) # /usr/bin/perl -i.bak -pe ' # print "\n" . `git diff --cached --name-status -r` # if /^#/ && $first++ == 0' "$1" ;; *) ;; esac # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" vivonatev/.git/hooks/post-update.sample0000755000175000017510000000027512352055316020715 0ustar jordanlabmembers#!/bin/sh # # An example hook script to prepare a packed repository for use over # dumb transports. # # To enable this hook, rename this file to "post-update". exec git update-server-info vivonatev/.git/hooks/update.sample0000755000175000017510000000703312352055316017731 0ustar jordanlabmembers#!/bin/sh # # An example hook script to blocks unannotated tags from entering. # Called by "git receive-pack" with arguments: refname sha1-old sha1-new # # To enable this hook, rename this file to "update". # # Config # ------ # hooks.allowunannotated # This boolean sets whether unannotated tags will be allowed into the # repository. By default they won't be. # hooks.allowdeletetag # This boolean sets whether deleting tags will be allowed in the # repository. By default they won't be. # hooks.allowmodifytag # This boolean sets whether a tag may be modified after creation. By default # it won't be. # hooks.allowdeletebranch # This boolean sets whether deleting branches will be allowed in the # repository. By default they won't be. # hooks.denycreatebranch # This boolean sets whether remotely creating branches will be denied # in the repository. By default this is allowed. # # --- Command line refname="$1" oldrev="$2" newrev="$3" # --- Safety check if [ -z "$GIT_DIR" ]; then echo "Don't run this script from the command line." >&2 echo " (if you want, you could supply GIT_DIR then run" >&2 echo " $0 )" >&2 exit 1 fi if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then echo "usage: $0 " >&2 exit 1 fi # --- Config allowunannotated=$(git config --bool hooks.allowunannotated) allowdeletebranch=$(git config --bool hooks.allowdeletebranch) denycreatebranch=$(git config --bool hooks.denycreatebranch) allowdeletetag=$(git config --bool hooks.allowdeletetag) allowmodifytag=$(git config --bool hooks.allowmodifytag) # check for no description projectdesc=$(sed -e '1q' "$GIT_DIR/description") case "$projectdesc" in "Unnamed repository"* | "") echo "*** Project description file hasn't been set" >&2 exit 1 ;; esac # --- Check types # if $newrev is 0000...0000, it's a commit to delete a ref. zero="0000000000000000000000000000000000000000" if [ "$newrev" = "$zero" ]; then newrev_type=delete else newrev_type=$(git cat-file -t $newrev) fi case "$refname","$newrev_type" in refs/tags/*,commit) # un-annotated tag short_refname=${refname##refs/tags/} if [ "$allowunannotated" != "true" ]; then echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 exit 1 fi ;; refs/tags/*,delete) # delete tag if [ "$allowdeletetag" != "true" ]; then echo "*** Deleting a tag is not allowed in this repository" >&2 exit 1 fi ;; refs/tags/*,tag) # annotated tag if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 then echo "*** Tag '$refname' already exists." >&2 echo "*** Modifying a tag is not allowed in this repository." >&2 exit 1 fi ;; refs/heads/*,commit) # branch if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then echo "*** Creating a branch is not allowed in this repository" >&2 exit 1 fi ;; refs/heads/*,delete) # delete branch if [ "$allowdeletebranch" != "true" ]; then echo "*** Deleting a branch is not allowed in this repository" >&2 exit 1 fi ;; refs/remotes/*,commit) # tracking branch ;; refs/remotes/*,delete) # delete tracking branch if [ "$allowdeletebranch" != "true" ]; then echo "*** Deleting a tracking branch is not allowed in this repository" >&2 exit 1 fi ;; *) # Anything else (is there anything else?) echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 exit 1 ;; esac # --- Finished exit 0 vivonatev/.git/hooks/pre-rebase.sample0000755000175000017510000001144212352055316020473 0ustar jordanlabmembers#!/bin/sh # # Copyright (c) 2006, 2008 Junio C Hamano # # The "pre-rebase" hook is run just before "git rebase" starts doing # its job, and can prevent the command from running by exiting with # non-zero status. # # The hook is called with the following parameters: # # $1 -- the upstream the series was forked from. # $2 -- the branch being rebased (or empty when rebasing the current branch). # # This sample shows how to prevent topic branches that are already # merged to 'next' branch from getting rebased, because allowing it # would result in rebasing already published history. publish=next basebranch="$1" if test "$#" = 2 then topic="refs/heads/$2" else topic=`git symbolic-ref HEAD` || exit 0 ;# we do not interrupt rebasing detached HEAD fi case "$topic" in refs/heads/??/*) ;; *) exit 0 ;# we do not interrupt others. ;; esac # Now we are dealing with a topic branch being rebased # on top of master. Is it OK to rebase it? # Does the topic really exist? git show-ref -q "$topic" || { echo >&2 "No such branch $topic" exit 1 } # Is topic fully merged to master? not_in_master=`git rev-list --pretty=oneline ^master "$topic"` if test -z "$not_in_master" then echo >&2 "$topic is fully merged to master; better remove it." exit 1 ;# we could allow it, but there is no point. fi # Is topic ever merged to next? If so you should not be rebasing it. only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` only_next_2=`git rev-list ^master ${publish} | sort` if test "$only_next_1" = "$only_next_2" then not_in_topic=`git rev-list "^$topic" master` if test -z "$not_in_topic" then echo >&2 "$topic is already up-to-date with master" exit 1 ;# we could allow it, but there is no point. else exit 0 fi else not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` /usr/bin/perl -e ' my $topic = $ARGV[0]; my $msg = "* $topic has commits already merged to public branch:\n"; my (%not_in_next) = map { /^([0-9a-f]+) /; ($1 => 1); } split(/\n/, $ARGV[1]); for my $elem (map { /^([0-9a-f]+) (.*)$/; [$1 => $2]; } split(/\n/, $ARGV[2])) { if (!exists $not_in_next{$elem->[0]}) { if ($msg) { print STDERR $msg; undef $msg; } print STDERR " $elem->[1]\n"; } } ' "$topic" "$not_in_next" "$not_in_master" exit 1 fi <<\DOC_END This sample hook safeguards topic branches that have been published from being rewound. The workflow assumed here is: * Once a topic branch forks from "master", "master" is never merged into it again (either directly or indirectly). * Once a topic branch is fully cooked and merged into "master", it is deleted. If you need to build on top of it to correct earlier mistakes, a new topic branch is created by forking at the tip of the "master". This is not strictly necessary, but it makes it easier to keep your history simple. * Whenever you need to test or publish your changes to topic branches, merge them into "next" branch. The script, being an example, hardcodes the publish branch name to be "next", but it is trivial to make it configurable via $GIT_DIR/config mechanism. With this workflow, you would want to know: (1) ... if a topic branch has ever been merged to "next". Young topic branches can have stupid mistakes you would rather clean up before publishing, and things that have not been merged into other branches can be easily rebased without affecting other people. But once it is published, you would not want to rewind it. (2) ... if a topic branch has been fully merged to "master". Then you can delete it. More importantly, you should not build on top of it -- other people may already want to change things related to the topic as patches against your "master", so if you need further changes, it is better to fork the topic (perhaps with the same name) afresh from the tip of "master". Let's look at this example: o---o---o---o---o---o---o---o---o---o "next" / / / / / a---a---b A / / / / / / / / c---c---c---c B / / / / \ / / / / b---b C \ / / / / / \ / ---o---o---o---o---o---o---o---o---o---o---o "master" A, B and C are topic branches. * A has one fix since it was merged up to "next". * B has finished. It has been fully merged up to "master" and "next", and is ready to be deleted. * C has not merged to "next" at all. We would want to allow C to be rebased, refuse A, and encourage B to be deleted. To compute (1): git rev-list ^master ^topic next git rev-list ^master next if these match, topic has not merged in next at all. To compute (2): git rev-list master..topic if this is empty, it is fully merged to "master". DOC_END vivonatev/.git/hooks/pre-applypatch.sample0000755000175000017510000000061612352055316021400 0ustar jordanlabmembers#!/bin/sh # # An example hook script to verify what is about to be committed # by applypatch from an e-mail message. # # The hook should exit with non-zero status after issuing an # appropriate message if it wants to stop the commit. # # To enable this hook, rename this file to "pre-applypatch". . git-sh-setup test -x "$GIT_DIR/hooks/pre-commit" && exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"} : vivonatev/.git/hooks/applypatch-msg.sample0000755000175000017510000000070412352055316021376 0ustar jordanlabmembers#!/bin/sh # # An example hook script to check the commit log message taken by # applypatch from an e-mail message. # # The hook should exit with non-zero status after issuing an # appropriate message if it wants to stop the commit. The hook is # allowed to edit the commit message file. # # To enable this hook, rename this file to "applypatch-msg". . git-sh-setup test -x "$GIT_DIR/hooks/commit-msg" && exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"} : vivonatev/.git/HEAD0000644000175000017510000000002712352055317014537 0ustar jordanlabmembersref: refs/heads/master vivonatev/.git/packed-refs0000644000175000017510000000025712352055317016227 0ustar jordanlabmembers# pack-refs with: peeled fully-peeled 5b2845d9d13fbeae4fb573117e1315fc927da6b7 refs/remotes/origin/master 577583a298b0fef96472507163b9ac4909d56c85 refs/remotes/origin/tophat vivonatev/.git/branches/0000755000175000017510000000000012352055316015700 5ustar jordanlabmembersvivonatev/.git/logs/0000755000175000017510000000000012352055317015060 5ustar jordanlabmembersvivonatev/.git/logs/refs/0000755000175000017510000000000012352055317016017 5ustar jordanlabmembersvivonatev/.git/logs/refs/heads/0000755000175000017510000000000012352055317017103 5ustar jordanlabmembersvivonatev/.git/logs/refs/heads/master0000644000175000017510000000026212352055317020321 0ustar jordanlabmembers0000000000000000000000000000000000000000 5b2845d9d13fbeae4fb573117e1315fc927da6b7 jordan 1403542223 -0400 clone: from https://github.com/jrtex/vivonatev.git vivonatev/.git/logs/refs/remotes/0000755000175000017510000000000012352055317017475 5ustar jordanlabmembersvivonatev/.git/logs/refs/remotes/origin/0000755000175000017510000000000012352055317020764 5ustar jordanlabmembersvivonatev/.git/logs/refs/remotes/origin/HEAD0000644000175000017510000000026212352055317021410 0ustar jordanlabmembers0000000000000000000000000000000000000000 5b2845d9d13fbeae4fb573117e1315fc927da6b7 jordan 1403542223 -0400 clone: from https://github.com/jrtex/vivonatev.git vivonatev/.git/logs/HEAD0000644000175000017510000000026212352055317015504 0ustar jordanlabmembers0000000000000000000000000000000000000000 5b2845d9d13fbeae4fb573117e1315fc927da6b7 jordan 1403542223 -0400 clone: from https://github.com/jrtex/vivonatev.git vivonatev/.git/index0000644000175000017510000000105012352055317015142 0ustar jordanlabmembersDIRCSZ)fSZ)fB Fji]a>497/JLICENSESZ)fSZ)fB  +2_&&.N(J#r Readme.mdSZ)fSZ)fB I־|2?k͂7VERSION_HISTORYSZ)fSZ)fB ! O ۧzׯr btindexerSZ)fSZ)fB E$T$6_8FG2bisAboveThresholdSZ)fSZ)fB Mj_ CGZ'G~reviveSZ)fSZ)fB[rdSFh vect2.py JRe~6V~?V ܧ=evivonatev/.git/objects/0000755000175000017510000000000012352055317015545 5ustar jordanlabmembersvivonatev/.git/objects/04/0000755000175000017510000000000012352055317015770 5ustar jordanlabmembersvivonatev/.git/objects/04/ca640e816c75b81d4a6324752bace2b20bb0d90000444000175000017510000000115512352055317023156 0ustar jordanlabmembersxmTMk@ y~ uIi4˖BK -=w>Ϳ4&>͇$4q%~yguA}^>0THn@{6[z΃ 5C Y7#m-j$cDХA:4t@ө=xn,i8 ^/?|z'Փ_VH|RIqXwJ֮Ά*VoT!_l8(Z,*bYYb'74i8(+|5nuU6?_qsͺQ+vɐ̖/ˬ3ڐ5~8+͔_.)WbavXTz.+p0Opv,<t]5vK)_L;?}P8KZֶY-ÎB7n4&>sNGZӕUrrq} ~\'مȝF(%]?+$L ~Ck|..)g 927mUQ•HQNjvpٺҹmtGr-ˈ]]^pxT&X3HXEjy5M^Z)M~«HR]N)v荠I(8*,7;ak$e)‰r"Ԁ72vJ(SY䮞%ޖH p 0JVH]$>-Uݸω(H+Xa!YgWbRA1yq.JHuڼ2`lrMc6Q9^8++J,&˯b=2y yJq0EJ/] /|? NNj*} '5# mvy]b_R,Ax_;%8^P K n+Y)ڿM-&?SUOGe1% S$Z\3;=IH 1ʷQŭk:/q <gc=(G *FYHI^:{n< >G,g4C&":Kӆ)J[ '…wvȶ+F6$I%CXi|>aH@e,qFZZkFAkPWu'w@[0)D,D8P%w[Ix-T+)ZJҴjrN"E8Сnjp +-(j^Y=u=Nn '݆Ǡ ! ;51x?" ѽ44MFT0#~0PHB3fYp盀žHrv6b Z_HNm۝]kf%u)r9(L{e6"DÃ:Fmt"̄]-"LT*6KTH^RzPr٠A@MzϹ,菧7CJˣYY'#怘51F:GU([hH"?cRc$2"cG I NW s!iPILNc'B*;OAXhuUVb <,^ =@̸%x,\1ׇ0@& C@zHpNZLaG&[=W*5g_qG/SEJ\3:8q1lE?bf;dnQxs޷ؚq,k!" ҚwڴĭXh6 v&łrΐ,4, dBm۟X(x^+'G",|w JFnKVH2%ߏ۲WMLyT>i] #AC#؇X1)#m^|M0Z#fyuD;MU?RE- ޑ,%q"L6țS;_xl<˧|IǼaJEmʧޜC>̫Vgz"fGo!6yTVʳD9唹5Cr 9юaKoV CQs~D_ŠQkSQ@p- ]A|ܐpt+]7 - zK/mz#u=/_Ra1u3w7)h~jM<˜5-3ɥCUh;r[;'񫗈 zZUZҢ&ĵ !u& M kY]K#1!mO5 (+0nAepQJZu) |?03=Ǝޒt1iFnsl7xѬ( b`ƧcV$"W4 !kݨD-}A蓰i?}~nvivonatev/.git/objects/1e/0000755000175000017510000000000012352055317016052 5ustar jordanlabmembersvivonatev/.git/objects/1e/9a437005fb8c7ec3b5d83cf252d0d43eda85560000444000175000017510000000025712352055317023271 0ustar jordanlabmembersxM 0F]%逈k^`LbS7wp=TenB;hL$M!C):E>&oex#DLD: d!OTPFpkZ9*nFeƵ2_>TPV)#AeCo!yʹ~/Tvivonatev/.git/objects/1e/1644d73a12020123d16110a9b71bbb4f7cc45b0000444000175000017510000000023712352055317022776 0ustar jordanlabmembersxA 0=%f,xD+oF]o9 baGL>Qi1dH1BvŜ |딘CkXIţA>^\jK#|[d~.'ccd zҖps]/Dvivonatev/.git/objects/ad/0000755000175000017510000000000012352055317016131 5ustar jordanlabmembersvivonatev/.git/objects/ad/541e6d7ee1b8bd60ebdffdf25222c5ad6078390000444000175000017510000000507712352055317023517 0ustar jordanlabmembersxYmoFү8j$Z`s4_|A+ ɥ"(]]#ùhݙgǛLo_ξ9ߤŹ*T>4{],3zA]ҧQZ`I&ʗۨnniSEEϰSY]죆imt5QYnF4kT!6*کBUQ3>`StPqz?gm N>Veꢾ$YT׽ݺߍQi6a*(Wuxu3[rduSY*\ TY +G8[a]ySU;% L5s8R-bѵQ5+Qݧ%˨UJ)1ѐǗ2UV~̪JVɌt0#t ywh`Xۍ>uA "$[ -ƪVCހHc?^+wv2fzJAL ǪUQv,}7O~F%¬u[$>l|ʥj^ر;Ռj³,(Ϭa,#|&Fٲ2"7ƣ:q^&ӥɽָҢlҚ4@ˠᲵ^8/2ٹ֠*ջEG-Ǹ><3g5qIޑXHb56ʲF0u 7;Z,CMF7{]=DU`ش^`Xw!GGi1;z@QXTVL#ΨQӭaF묦ChSn>WaW7 Ny=s8 5kǟooVy[ K,Ca!1Er5r*{-'C>.::,d%:cc!K*1ebr!?5GԴ9p>fNPLrmZ/"^'p^2l? .oo^lKw#պIk Ou՜=v?yv4K`J}Vtu4j4!ОE^7fq9 X)'$|'RCฤAk +'n) ťeL b 9A.1O H:\)m Ⱦ" R^?y33u$ӌ,]Βv"M%v7+8'Mx0THY)}Oˎ&ЁK>_:X/bTؚ M09'h3DJ ~Mq":90 :v7PWE5[.[CٽoFg BB8bl(ƭ%_(ʈO'0*>u{5$-+>N H2>ŀ$E Y޻ $2]wPKvsӱ1c`mtGZ`+m15!0@EPk^2\zͰmn K58v`A/DqJGwiZT/(mqnUބ\yy~ZӯԖsf^`oy]7ѵ6ț: 1ʢ|D/On~dt/u]7w3KIb%]I6FmJݶx&(U-}XkCߛ)󹩋3ڌtu1/#9jno/)6ӌ=bZj]<|9`#cdhʼk@2ͩ~0"r#Cldu]A NZ^6N 'y|HJD]O{މ=2l5YKNSa!^|>1) F4 _%6\LS؇SCfc޵E?9.8ȤrY* dG{y[j$<ضVR@3yS74.UnS GV?{Jz\Igk9몡LC&=v@["Ƞ'X3FLĄޮvivonatev/.git/objects/8b/0000755000175000017510000000000012352055317016056 5ustar jordanlabmembersvivonatev/.git/objects/8b/f500caf2bca1ea2a419d744f1ec86ff8ebb5ef0000444000175000017510000000503612352055317023724 0ustar jordanlabmembersxYmoWWleK3CФn| "WSr%e]p$9;[V^tUΥډj0wr]()޶ѕxɺ)Lqtz9r-PE$LTt# 1lZaV#?\>w"ȣ5nܙVͷɻ<ۺUkLOEîڐMk<4ƯXif2ʲO#lg| ffUqVgԛuQ#JA¥Zݫ Qg8۶+cvkLg. r6KϘKco g3]U*O./) JdEpf{&2DX.E[J jm=,h;^#"!%=4wdZAD_ܥ|fejmD61 giJENJ" T)+FoE2ޝu=*$#y6L /]qt"n;})я> ܳ>'6n UM +ndB.Ĵ<c܇$!ߧFVlUL1p5eAbW#1X@%ݥb%5\yk9?ߤխJmuFd/a_-}3 ]'…&'nu`x,N\<\e9 8_h8!C2h}BRuCqSbRJTHm-<H׿? (~AYԼ\OD]sv r$u K'*לȻ#R+|VoߨLP%V=5_gx \ӹԑõXQgIe{ $ wZ\TrPaGT%7n^q= :L )aQׯAMrҲlx.-k> mmF*ט ЪPrHPہȠ1w\B af2+:.hGԦ)c= N=Bҿ+=o əp^ Vnw2>Ȋ6$s>#-it_W2)^hϨw}vδH!KY!,ɡ =L8T!o\ O5*Mp]v߬k]3X,G)gߧxLq˽ౄ!O6>q֟!5NZa4ď-&Y Z΅Tُ(W"(4*-p~/S& XC hB;.jx1$Fs`~␀'.ZI HO#Ra$!' ~$dL R'F{+ xC,/q.mf ,뢖HxUH’wxC2v&(41a [뚕q$o>Sl%5u9"F7vutl+>Ayy;pYIC™q+8u[94J1'>:&n9.|'kʛA펐43[,ŀ69lSЂra@a-1W6EwI"^[x夂} X$ 7naR cdm<&U9.ȡs60?C>ɬw:&IDeQk~X .DWb|{ ;87V;8,.]Tl|*ǣy;DY^4[ֵHQD`]視}{kwrf|B-^Mw?+ߦ KI5UەbKSpX6ViwJeh)M.D, uqn|DJpbr&9(ai5]4ɑb/ 5&tXXVߏ^C3w vivonatev/.git/objects/75/0000755000175000017510000000000012352055317016000 5ustar jordanlabmembersvivonatev/.git/objects/75/f40043559d1a0af65844a882661f5c65d0b3ad0000444000175000017510000000024312352055317022762 0ustar jordanlabmembersx+)JMU045f040031Qtv veUxzضD;K^JRSrSrS}4{kݚʣnz<T!1),5$(8#?'z o]ק|j}#,,?/$6nzf {_'.?vivonatev/.git/objects/75/7b136fbfa749da161405df20bb842a01b1ded80000444000175000017510000000025012352055317023241 0ustar jordanlabmembersxAj0E)fjFHAYSiTVP?7?ݥSyPeey%e Qs[e$3k&:w<vivonatev/.git/objects/36/0000755000175000017510000000000012352055317015775 5ustar jordanlabmembersvivonatev/.git/objects/36/06cc31e615096894dd330dff011512b3e5bd1a0000444000175000017510000000233112352055317023020 0ustar jordanlabmembersxmVo6[rb']`?fPM$0AIgD"eh$`آD{v9MNO'?cKRJδ8{n+ P1\sH[ҵY؆mִ\MVdD15L:F"MsT훜;rsxۂi5G4ezt/\=&%fEyz-.O#a՟l T%nLK.㚴'fVذruO$&Qd4΁K$vAaHQ ȖWHdL":R/e} ( <S6IwoUBG}tN =0ep c{/"9٬=JD Hvֺ@fL?{rAT3m0>\d(5 X7ٔiեpÆ25Gp 1:mUЕkJ=|˅p֝NcUf\b):+4T  &ZaD$| 1h*&9Fd{yTu^$hgu 5Ra5k)lra}. !p(fg#ow!þ;KBsvivonatev/.git/objects/5e/0000755000175000017510000000000012352055317016056 5ustar jordanlabmembersvivonatev/.git/objects/5e/0b22b75c7430d6688205aa78b017f5c542c6230000444000175000017510000000241412352055317022675 0ustar jordanlabmembersxmVo6[rlgY`?PM0AIgD"eh$ĢH>߽{笲Χ?7(ϛ'Iш^[xmEԎKm?6Դvݲs-)CkS+m8dv5'0S[]U1bj_h[E3nɮlr5[Ђɫ ]f~'-]􆫝 z)O6܂k aO<+ߗ8UnaYB>;A*뚏h˞, sX,l{۔ ٪Ln.=;_iH8ϪVn7(_$ނr!9sIE_S tBL4F_U.>6ɰ/u'q2ųIS(ьjՎг~q<xy ~)qdw a2A) :(eFzd$ȂMU$Nj!~UˢǢή~ې U <kNEߓ#0WڈѦ[PakmTXS}PMKɒ\U= ](6QZEkh5WH߉,_#;x{;׺Qz6]P/M9O\%GAq#0Gt\VFA[u zc]W˭׶dCmgNաIJKt`aݰꍸ.Ӳ(<}~:;k/ӳvv4  SЋ|`7=xe5yoJ(?ظ5ɿ#qm!doTklR|9c8f)a|yOy 3tH:#{)綆r;! [(НaeNntݠbq%h+t 3NS rnPboЇ}CN\EW|*I$S:_fܔ \k@cߠCm5x^!"M-rk{v`&F8݈aP.:MBjM"Ta}mI$IZF! KDҘ#3ӐuC~܊c'ğYvivonatev/.git/objects/info/0000755000175000017510000000000012352055316016477 5ustar jordanlabmembersvivonatev/.git/objects/ac/0000755000175000017510000000000012352055317016130 5ustar jordanlabmembersvivonatev/.git/objects/ac/3ed92a3095f24d144cbd996fa109c5ca43c91c0000444000175000017510000000024312352055317023336 0ustar jordanlabmembersxK 1]}; GǦ x|7pS Tj]:hCD;f"BAܔ'yN4&XZ''&k9޳R䲠'8,f%?^)^yyV/@&7GjZ ,k pu/H`vivonatev/.git/objects/c7/0000755000175000017510000000000012352055317016056 5ustar jordanlabmembersvivonatev/.git/objects/c7/ebf90d83f12c39fd0680e7a85387f06ac674860000444000175000017510000000176712352055317023171 0ustar jordanlabmembersxUkFgwXP8ڣIYIcijWv,' ѯ}3fޛZVWEO(...]cC/{4ZYvvƒ$(GVRszS(a̯R)DA'A;#d~*HfKfGwlY7Lk3htZ.M-Lji =cDa(pl5fiύGaGި6Ua@(5‰=^fv! c/b;J"#3U"HDౢG%n>(#t9afٶ88Pܝ.ϘX-?7oS$:<:MEՌEWt4#NƂ7-&<JDtɹn5-0{٢CϚl)уLiԅ:3zSL] Wʜ<0]ŻD?t fq1[eⳕ4d*3؉v,0.OG;?ρ y+6Q<1% .2+yĿ&hI:re@q0LjCEŎu&>5_iwFũA#,ZWb}R zYI_ 68i_ AyL'S IxZJ F1̍y.wg~+n2P& ȍ0g_l 6@mSA~<^HhŽFGiyItM"N]Ϋ fL% >eh]%9.| q7͍+9,ddINn3CprdDQ6¶|{ѫQ;/#`5d\hEȎ&Xm6wWj`uX1iG~1&?plE2Q=2Gl1,8@l+)M>8N7.&CgT:1pka+=2C 82J}?6ișvivonatev/.git/objects/7b/0000755000175000017510000000000012352055317016055 5ustar jordanlabmembersvivonatev/.git/objects/7b/a5cc73696832f68ad7974484f280dbd7086e080000444000175000017510000000060512352055317023026 0ustar jordanlabmembersx]Rn0 ݵ SݴMB/@MU(n&ҊS{m=M'2+4gh,ypW_ 8` }GBwi,F$ZtPg\1:Q5.JY*j ` ^E$qV>39,c9!Uhl;߁/$rVl@_\?Б2HYw>!kxpa@>G̖NlkBR9KWdPY"`m9]˲(Ҳl2enSMC[JjsddM'm # Ch|d(vlf4cOq׵{ { Ƌ% > fvivonatev/.git/objects/4d/0000755000175000017510000000000012352055317016054 5ustar jordanlabmembersvivonatev/.git/objects/4d/82c26a5f12090d43475a27cd47141aaeb8f37e0000444000175000017510000000610412352055317023115 0ustar jordanlabmembersxYsWx&0&(M'TVqm_$$AIšnjOb{uoW$?VzVN]ryT-/Q*J+}T>)jjBEYTI6IkU'.65~R(irUF|ԦeERgT[U|83UaU0MV:o*D7U8[R:oҨ:Fc~5=b0LCRvF;╹]%]ޒå2CE)sVLEYou^Oze D&ɡr~ yIj(R%h2\`Է"_dbۤƣj2Kne1t׎1sݱlTN ïuKmhQB̥nxBG(S3ۡQ*߱]rFQÉ~+&SSqX:Y֕(HWIS86#qC QKOa T6m4 ۈ)>uɊ(ӱ$TTo g3jI^$Gh޳uzAxSp`~,)xCʊy,(3( osrكdqibܪEt"“9ZK ^vvӞ)y8|$e" -U)! .xS 2bӅ}x\fUG4CF-W씉=>K uu$'s(&ZuM{ցKw`#j5h2O"0%k ."XS6:jgQFU Clg1 cHv*Ø,sv1\ D\rJW9P%h򎇁;-PGرo56,e<#2L!Ypմ6hG!{Bz9q&}_q5_J: vٴ QG@awuo)x(؊Asx  ?ⶽh\P뛺ʻ!vݹee[vl8ҝȲ҈v+74Ҧ2M߱౹ԱG֠5#/8>ɳڳ#Ჷs77W+$%0*1ᄆ)5ؖ͹=`1!<Ĝ{=rٵRLqU]rQAIvzn&`G4 &GU:EVNr}+eBlF\qe̅#76B%w+-GbK S!.d۹wq)"|Lft>4ə͛1Ag(Ȅ?.ޅӴ+%3ҁ2Ť62C:6;? J9Jڝru;$BA`|cFFMT<ϗ:Hp/f'.gǀP'O_| G=)3Yu5+߯N&LsW?9]e&1H ||E;=q\J +`DʯY5OڐEYd#V7X&Z+tfy`W^ D(Oĉ%T/NtwZslB g{ǜ]1U9Bф.q6M'CM ^嘸KK+T-nVPVfilհx]ql 9fm3}0w{;9oAFxe49fty4{|;$|5#}rCrF\,)<?\a3y<[8QUTp)@/xN\|t4J؎k t]ܯt::wcu1>nEyoKtr`g2/qgvivonatev/.git/objects/2e/0000755000175000017510000000000012352055317016053 5ustar jordanlabmembersvivonatev/.git/objects/2e/91156cf66eba6e0492482b919cc87f4d707e000000444000175000017510000000501412352055317023061 0ustar jordanlabmembersxYmoWWLdrl mUPH/s/AJbl#3$%;sw?/8.+OUr9v|Bj9}Lr.ihjr:>C:)a]Q6CERUY&UcIMʔTuZrU`ntmGoZBa9x'bvaGPgeqhTQ#>my4KkմuIj!c'Em U6oZaA r*WAo_ʾl˵ڪ&BĐURUR*l4d%sٌw*xd\128 E:#6L`]2rF}\f0L{>Wr5A+Ŵհڐвіn9;˸ζzL-6Ya&ʪm[ N؁~,)UTs-^aUE^|Apk`x-;VF h1gVKgrp &)8CIƆXYlA]fo+}u f%ٓMMQmBP9> ,.DwW4q>7IFbbS[XB8zK goط:7=E?6O* @ F?!)g'p{Bu76234mоo8ļFͱqy祐9`'ѨPxꘊۦ(Jgp ˉsV#4tyW߂[yt4؜ome{Uv}NMT'ar'c!^cx]GP:Њ$+%qBqm!a3 -x4K6Pe@,6j)撲f@[!~WrjǢzh? `<J5$H=\nR$3.N&9^j|6Mmrd^,VHJr;⡥p!qAſ;8xU8aqC6Q$`]Pք> H/^ M>%I?@\c"Gl\n>N0CLo\ U+_xrÉ%h}RUj V>4^n=!`VOS?hDt$s4,@B0.[C{5qǝdh S)ƶ#P$w}$%. ڟmC &ٶh.LOqCR"6 /|<^l$Y޻dY}a A8y@zV8ޥ$҉rD 2y,8$D*Z*ͥ.kNv бh~Dn| z`W2 Seu&c8@WYZTQ0Uv2P -P!,#s#d(|Y@V'f˵̅uKKB鍥$ρ CR $YQ?zY9}z!!Ǧ:&Z]Nj%"% [/T$ #NJ#̄Ėkk h:z2R<;>IC򇳆 ۅ#:8ʃUI ~b%ʾme(L?`DRlkp]s\Kzc]N,r i~0x~7m#=ym1Z*pRUn @wX} Frzƌ5M&Dr (wن FCg 2!-P\MdL8SX䜟6έ o)y)Zu`:ϐ'w鳨yguZh9Vռ- >]}Cʽ_vivonatev/.git/objects/60/0000755000175000017510000000000012352055317015772 5ustar jordanlabmembersvivonatev/.git/objects/60/5879fafa16d3671b0d8b10e52e062423a913df0000444000175000017510000000212012352055317023027 0ustar jordanlabmembersxmUmo6g-NQ+"@<kӢN EaP"&*I1=Gv50bI²u%ͮ_8#oԯ?И@Ćid,ޭ=@+I[ҭYێmmYA᧭i[*t2EGUCV:ϴ2&;t%{r+b϶bZu SC7ݖ5q'5=WfN*Fa]N+a՟lc T .L"iMo>4ذqme]c*r{Zg@5.Jh:H~@Tk?d[9`\&Z(5L H4)򊦳|5J_t%~ G 0(>[#ճѾ0$ԽӰ{>$&=Ѵ<n/wX^]-ޥlN=5,֭3'L"ZF_sˉ#ט'#(}^_tnXrJwV&t{qMԘn:\XQH[B0%Y41=8m1cR6xZ2Ol_fCE|2>I`@qHH66w39̖յ7-#G喝&F?^ݶf1 GseVzLIvltk!7Wj8?4KԠzdd>< oFK0YpٛJz.6Ί+h"F9q';[q;7xul R/H!<͇Ux XO>iA|:$(!"/Xw[A%ja:gP]5\Y!Cŝb eU*2@( "uC X p{@@, WP{Ytp\A 1+Z4ԓPw2 ] =F$ lww>aܤ"XZtL@' NfhQq(*_ʻBr]KS4@WdB`m͈-EK$O}Q#M:C[7 iwvivonatev/.git/objects/60/9f88ab0cf2eb7380c63a500a951efc772a01d10000444000175000017510000000022712352055317023170 0ustar jordanlabmembersxI 1=N'i/ꈙ !x*((j]`,gk D"1T-&*y:Pb\(*"ͩX.ͼ {*>E h;@t7Smk!./Cvivonatev/.git/objects/08/0000755000175000017510000000000012352055317015774 5ustar jordanlabmembersvivonatev/.git/objects/08/43e78e42b569574af97289f25f170c7cfb7e580000444000175000017510000000024212352055317023031 0ustar jordanlabmembersx+)JMU045f040031Qtv veUxzضD;K^JRSrSrS^Pp*k8N1GMM2RC2R3sR.E$1o  X0YwmTmYfY~^bIjCjZ?!#Ư_}t 2)9vivonatev/.git/objects/50/0000755000175000017510000000000012352055317015771 5ustar jordanlabmembersvivonatev/.git/objects/50/896e78bcadef852f59a91648ffa552e7e4c6100000444000175000017510000000024212352055317023237 0ustar jordanlabmembersx+)JMU045f040031Qtv veUxzضD;K^JRSrSrSW?c9:ѹ5*d;&嗥dg0\THP)b|A,DA`ڲ̲Ē2}گn.w+z;=vivonatev/.git/objects/f3/0000755000175000017510000000000012352055317016055 5ustar jordanlabmembersvivonatev/.git/objects/f3/e3bb008ca319a2c603ad487a87d35eb28b89160000444000175000017510000000024312352055317023177 0ustar jordanlabmembersx+)JMU045f040031Qtv veUxzضD;K^JRSrSrSQ/[*d;&嗥dg0\THP)b|A,DA`ڲ̲Ē2 >YJqn܉E>vivonatev/.git/objects/37/0000755000175000017510000000000012352055317015776 5ustar jordanlabmembersvivonatev/.git/objects/37/7fa1cf1efb4cd09faba5403bd34edc5493cc020000444000175000017510000000030112352055317023536 0ustar jordanlabmembersx+)JMU0d040031Qtv veUxzضD;K^JRSrSrSª-4([&6TdnjY옔_QZpQ-"Ay}wɺkjRK *q\N\m-~{,&,?/$A!K}?IZ,t Hvivonatev/.git/objects/88/0000755000175000017510000000000012352055317016004 5ustar jordanlabmembersvivonatev/.git/objects/88/2ee8e1752c45d195f1ef25f1048fb116a26f890000444000175000017510000000034112352055317023065 0ustar jordanlabmembersx+)JMU022f040031Qtv veUxzضD;K^JRSrSrS:='1= }w|KgwrzˑU@E榦 I%y)E { ?/zUY옔_QZ r4Uwk[ȸ53L-J-,Ked%ׯ$ '<,5Haq 22xT\%vivonatev/.git/objects/a2/0000755000175000017510000000000012352055317016047 5ustar jordanlabmembersvivonatev/.git/objects/a2/448640445922816698803647768fec93dd5faf0000444000175000017510000000023412352055317022605 0ustar jordanlabmembersxI 1D]3koA[쎄 MUu֮[Κб2,FkcdCT(E@B{K`! gT,LI'aPkm)9xma}Nng3yGYvj~&P_5}Bvivonatev/.git/objects/24/0000755000175000017510000000000012352055317015772 5ustar jordanlabmembersvivonatev/.git/objects/24/c554c6d52436ee5fad9f381c468147be3219620000444000175000017510000000066612352055317023010 0ustar jordanlabmembersxmRMo0 w dn6c{)CJBdɠ _[}w9v aSpP!u=C4UT";bJgR2m6cEf)?P!!̄?sG:ovq64 u IGrLcY0$T\d"EO7'D2C'Ԟ)t|3Odnzc0Xemw"f%d;S&ڀeNikiȻ#4~tǼ!RgQΕqJU ,:[jjO\pϽ2 '!Zy_r7,oc,q2+ȨZnvӲEЙ'Rd >_p/`}Tp)Z"3 jdxvivonatev/.git/objects/24/fe260ab1bdf7b9682589b7fe078168ac9a5cf00000444000175000017510000000200312352055317023276 0ustar jordanlabmembersxmUk7LsȮj%4IJFVT+m$흏y]{+FoWw:FQJ/`dT3m}1uiiGښ%8_M5eç&XiЩIJV䦡@~EWصLkv~X 4vR=XvB4;ALa]"aկ8 Ln'fذ˧+ƭQN ,ހ&듀&3Y.-o@Q";ނf5PZ)%>*T~Su!U i>V$?>?ᴥ²=bx8nʱϤ⨷ޱ60Ȣ-ܳnٲ57<+o@xX;>\/-A6x3řtocu'rn7nE9q KF/V7,~y*UX~PO1'uxK8ѳuH c4 YmXm2cу($diAr}tZu-GQl{ }J\A s &EsT74۲DG1\ǯEjZ}{ܪZ-f"zq֬ 81QZ/ٱQ\.sC(oAkK * ^dC&ͫ8V 2ܥ޻ebx__~"i#+#q@N}M%Щ|NFoSk}Q š0K2"4v 5QfYW Rwfardm-nLD l- t]D~JTp)i57_5P-Ie=]n sS.l?iD=]smMaٖCn&jM1<;aq%C1-C.6[r /̴oȉ*Yyvivonatev/.git/objects/65/0000755000175000017510000000000012352055317015777 5ustar jordanlabmembersvivonatev/.git/objects/65/aa4591bd17e58c856af75e20f374a422b69bab0000444000175000017510000000024312352055317023206 0ustar jordanlabmembersx+)JMU045f040031Qtv veUxzضD;K^JRSrSrSXN5JV)^h@E榦 ŎIe!E9) Kgf}>ݥSyPeey%e +d~4oYT$* D?qvivonatev/.git/objects/4f/0000755000175000017510000000000012352055317016056 5ustar jordanlabmembersvivonatev/.git/objects/4f/0ad339597c8f626a403bb880d82b29c907d1e90000444000175000017510000000024512352055317023064 0ustar jordanlabmembersx[j0EUbfF<%任QQQ~]87:0Go93NQĂ&P8D%u.Oz ZwXdVh Sm*?FLuNY# DD©_XT=.Z=!p:c˧;T]ML,K{$*HAfζ!n #oc/b;EGfDRU6ccI5r-JPuAH+F頣ELY/9mp"px8]0ԱF~AQ_o&P*Hu8xtE~W1f;]9R/8 ޴y@t(q$q64ÈekAF2Q8ILm3u P]9<0]ŻD?ot f]N8L𘇭2mJLORg~[2ZDQ`qhfVʟ@m(W?qH׋:+yFhI:ze@q0LjCIŎ&>5.;EDITy/X+'u>)/_ү|ڌ'S IxZJ F1̍^y-g>wJCip(nZ`m/֐N )n }?^o$4%c(RoS#]zNM"_jN]Ϋ bL c2ѺjAKS\NnPQ ÊI;hǖ$#st̶B=϶$3܄C-S(ke킮c1pFfP#34#cTM]/vivonatev/.git/objects/f5/0000755000175000017510000000000012352055317016057 5ustar jordanlabmembersvivonatev/.git/objects/f5/d36e945a06ef1eeb175f1ffa403d6d384606a90000444000175000017510000000024112352055317023272 0ustar jordanlabmembersx+)JMU045f040031Qtv veUxzضD;K^JRSrSrSsٜk4lq^}B]ncPBfcR~YjHFQjqF~N E"B &뮅-,K,I-cWY;*沘?xxW [9Wvivonatev/.git/objects/5b/0000755000175000017510000000000012352055317016053 5ustar jordanlabmembersvivonatev/.git/objects/5b/2845d9d13fbeae4fb573117e1315fc927da6b70000444000175000017510000000023412352055317023267 0ustar jordanlabmembersxQ !@^eT[:FYo}=x,Ј]D(DHH[)AK 3\1zruhqp *L|sR+~[zU?Z9_SnItHf! &;HmU_[D vivonatev/.git/objects/05/0000755000175000017510000000000012352055317015771 5ustar jordanlabmembersvivonatev/.git/objects/05/91272e9d517ff7fb82ea162eec3b267c6c4aca0000444000175000017510000000024412352055317023347 0ustar jordanlabmembersx[ 0)ͫ$ ⷷd7bRSoVX}dqH dY\1RHTMl|$B&K4B.J26:6iGCԷrWzgt_K t iGvivonatev/.git/objects/57/0000755000175000017510000000000012352055317016000 5ustar jordanlabmembersvivonatev/.git/objects/57/7583a298b0fef96472507163b9ac4909d56c850000444000175000017510000000023112352055317022660 0ustar jordanlabmembersx[ 0)r%l "~{fk+)% i2w >j+0ƌb 1AQ% UD!Tk. J5;;M[?Ogn|;ȗQ}r(Q`aPRY*ʨG ͞)2הEe)mQQN媊 wjU8~*DUEZS5{Ĵ!hVͬ2_E0[m (~&)Iխ{hrb0L CVvJk@fnJ5mSJXٍǀvmUU׉+27EVQ?{֗7"k-jOS(V DCz_2dWiMQPrbN5ҪͽMOh_QpJ̿@_X[\ ud 1d/ƪV ^!fmk7+w8;iapW%;~9rNczA_p0z{hP'KwE{`Ğ7w)wi9{1uqFKȭLbE0Tp-*/Jr>GW*UTm.W1ͩI~T6mZDۭ7׋nb4`1-sM4'{wUx ɝ9.Hbou|o֫6̣LMqmẸT;7lf㤚RTjƂ@ {"uF*2 ׮̸3:]%KdG߻he۸7r[?俥FeeP#6]9zq{YzӉ x/wR,ɣ9!aPYL"1I B1Z"UA~(ø ^J"55GŖR|ʯ4ν6eA쟽tDΣ}霊Iw=ʌB@Y#}K>nn>Et¨ NLĨ`m^)qKk m)U,X`!25#6ދ}neѣAe5U{6n>\{^LeFb]#'i !W;U]/YMSAd]2 B<bso:" Ϩ9U0=jV"k)3M#Tb6 ?6aeP>tu䕭 [hͫ!VFe{Qv5J)\be@XU8CW(3N-aXa5w(uۤEZq$Qn d)3RB8KǤx_jYd8)LQJuS.fh&0k 屺g%vG.5YKͧ+.t|Fa: I@4^tPEI⨞w%!yȜEqͬPM/R3G!*9d |3, #%y!:q:A -(*Y(Ɗ€u݄FPnjEj_P3'H3 .`"M~rq#ts9iB V/تJ! {Ϙ+`j_~bvP7jZPKJ^'f:\XX6dY]v[ R*X0Aݼ6(:䓬*5~qzPG)$k<>zC:1G,z#@t :67PҌ8E57J-.D^k#.D#=xm#p,YP$7>O Ans\Jw݈Dg]i-> 6UIf2!  \xGڛ tW }oR3S}:ӯ ^I}J湜y]KSݕzBPե$UԸ#m9/zlJgiN>뢡T}B???{c6NwEWu_KT9zLyR/hOPq w{mvivonatev/.git/objects/86/0000755000175000017510000000000012352055317016002 5ustar jordanlabmembersvivonatev/.git/objects/86/434d689cd31c78929d2cc065875ba6454663df0000444000175000017510000000025212352055317022742 0ustar jordanlabmembersxA = >`lYJbg&>` Hi(M^gɄIӛC̒f\P!CBh-(GOB&DikoH^I-V2,FW T0OS92*`=yKװ(sr \Ne.C@.* @9#hZ珌!^eYOՋE<#8o٤ͦu3_ůDvivonatev/.git/objects/e3/0000755000175000017510000000000012352055317016054 5ustar jordanlabmembersvivonatev/.git/objects/e3/8adc3105c82ae7a600029f41cd4f9ae5a5060b0000444000175000017510000000030012352055317023230 0ustar jordanlabmembersx+)JMU00c040031Qtv veUxzضD;K^JRSrSrSTqm}gjkf|*275U,vL/K (J-IaRļX`dݵ PEee ^Wicv*RK *q\N\m-~{,elJ|vivonatev/.git/objects/63/0000755000175000017510000000000012352055317015775 5ustar jordanlabmembersvivonatev/.git/objects/63/4faec931ab2567536b9dcf1c9ad096fadf72ad0000444000175000017510000000023012352055317023505 0ustar jordanlabmembersxK 1]D\{3 \=((}j!=,b [S$]|ɹjf!6Bcpm%!4D?ևQxo byȽ4PJn6򿩦¨@vivonatev/.git/objects/93/0000755000175000017510000000000012352055317016000 5ustar jordanlabmembersvivonatev/.git/objects/93/72e05c88a69d3d0826c9183c09b82ff35593960000444000175000017510000000034112352055317022663 0ustar jordanlabmembersx+)JMU022f040031Qtv veUxzضD;K^JRSrSrS"*.-TMEy}"sSS̼Ԋ"=x|}AU=*,vL/K (J-Ia4cpoCƭ`SbjR2R~2Y+xybi/6O(KM.1+dX\q9słnL Yvivonatev/.git/objects/b6/0000755000175000017510000000000012352055317016054 5ustar jordanlabmembersvivonatev/.git/objects/b6/62859977ec8741165a28ce2eaa1d3656226ee20000444000175000017510000000024012352055317023000 0ustar jordanlabmembersx[ 0E*Jfth4%.8˭eHDw=gShλ@h2il&R*Y p=H1 gzU^^"[J1AN(%zS[f-L=M.\(F2vivonatev/.git/objects/ce/0000755000175000017510000000000012352055317016134 5ustar jordanlabmembersvivonatev/.git/objects/ce/4ffeb8a282af5d13b84c609a8baf93bd259aa00000444000175000017510000000041112352055317023556 0ustar jordanlabmembersx+)JMU023c040031Qtv veUxzضD;K^JRSrSrS>̘rט?{°==ve0 y{Ϫ닞@e;&嗥dg0 9vU]2n$jR2Rznye \^ UQ\bWPɰrJoosc<mvivonatev/.git/objects/d7/0000755000175000017510000000000012352055317016057 5ustar jordanlabmembersvivonatev/.git/objects/d7/f105139782ab695d86613e343916f7372f4ac00000444000175000017510000001703612352055317022651 0ustar jordanlabmembersx]sȕK7hȻf[[EID$("&.@Z= h0_ۻd|Ϊ:/ /2wOIS?v-駞}.,sr{L]bؠgme<)7q8eUZ|]煛X|[uYV=wV;~|zM|˪mjvJ7@ ] b62ĕK[rϳܢ7Y<櫴xȋ}Q\^ Ɵ*K7u,n_eY ̸: HBZduPxw̥{*UDr#ꕞGFN;{bW5D84Y~gub >E;ԥoHwPthJbҳ(k S$|< EvFħ|WS҂M),-\ -VCnD~*)mO&'& = %B|$ :a}wY8y}wpI| Fei \YU(5F)Peˬ #@'& }vBt'P$Wp\tɛ q@i`H@T!}(/{[A/,,Լ\a$.Y*8#@ )j٣gEh$jE) <igZ clnBAV t !,Lg.(? X˒03`+qCN Wϱ6I25OucyVR-$|derC:K4yU: 7"_ &K~I7u֋O]\mY2N,u8FDnhqBsXNV#E/WVA}\ ,y25P@X[[9 ʫ$D '.?ӷ=SvH3J߿عB7Z=r*:{[-f lj=y.{,{n+d܈Q9&8g12v, V8/^,AAɎ4?!W1TnuF|nnim2Sm?B,1/AT @1eEqgI1A>*'BOvA\ZyuJB8z2#T.usdq w+2 "7g%!d`%,o5qG 1į)01; =hL"/"ʕ3s$& MD ]Z=ATNL.ؼM'Y* 0IZ$%/%-YF=r7PƷģmnQe`i w~3N7p.xxvO7y_(IJҦMC T豬p e:I%': BZ*׊4u*yH3QTР&[$fӆ,/P빆GGR%oYQ/{@X޴[z.ñ&$ɿ>bo^?{S6-`uwv۲~|fKM!!|yKBDƒ5OɎpx%"&r:2b+%:' PwGӏ׃N 2 61xI[lC $0i%$ml6aA8#@yN]| *\2E\0/CiOS'b砭%PTPwN%bP{hIT1>1*Éxܗe$pȯP$!jO{ICvf>,ZC|^ъonR#*rh,dCHS:l 0*,m>ߗ-ny NᓭJL LXTbϣm`bN R|p_l+Be  a2-4$[gpVgm[5igأ +) $D>k+(){, I vTs3ko̱v'-.6x9T}+@ɠ-T <:xނFpB"l%FvNs]Wd) M(NtF .VsAx![4۶"Jt/5B8sPKQ gmB^-Ay.ðm`e:|ƚ ݊)uN|=s!b\"Rlo&"T8fIy[c^-]e`1oD-Y)jcI&).P}[UB^?q8NU*RPTEz\fY- Λ''_I)$Jr}IZ4発!QX['z<32+c%|AptSBCUPv wt4ye{:m:9G|v a4[ӆʷtr&>vj&]2] nc5@ju$xT+rS ]ё!>W`M=*ϱH,4p5_E A2\&h<$Z=捰,2{ԇ 1,ͺʌD7 ҽ " w!tcWsT8QFiҐoDgG#3򭸠%:lj_"բ<;&NJ80|k'٪hT TGEi'.pBAճ?'$ǕFlyeg<{X."7wDu#6PͽIDVlCvLAysz&rOMؼ6C|2|bHB3Z=-]AĚzeJƞhXmU)WjAV;TjSbr{b@d UTY%JAp+{%ηA9T<gpso耬oP$ %u( \d>hYxL5A`sIiS׺X ڊP"*OIl/fD6f=kfMM~ .0IdOE˽7搹Dsh3wb"&x> ] y򥼔h]_8kG%]t9dbKPPح}[7Iδ B-!Fo尒8&SƋ&wJ3씴A[0UC"&햘P]ʴ60YՍ*轾yoWհ5!İE㺀ʳͽǴ`<z:ũf\hzзxZL6w,<}V)7(^J" ǴO$L1"񳄄j9zpNjaN~G[QXlYႌmZ_ HSrY\6 Lff2!WER_oČ4EpőXO]"31(^=0;T H %J)1s!w|&Cf\,tAǸ;iB<'C\Bΐ4k'HK*óh0*w;˭uCK 6G`T(@6yI>em+ʠ#/|- Qfֆ׶P׌qIZ ,j;-{ܩ*J|O>dڷ>ܳ,%L(Am̃E ,b4$A~V//6?P柭[gY~Qқr,mblnj<|%+B>.v:n8]@o) M@>班 !nM@ڥi8<%Ƀv1kY`93叴i7%Kh7J` D-+q3$$KV| VGy%>[Piy}5@ ~<qI2c>qK˻ #^UUiM0jmqCc~nyaB ;>ttV%Q5}rR3Q4In1?9CtX6GryD,b`! yGi.m!)tuTrb dJm$S=81NÙpKәx!1 c 6?ܰ=#HxO/\}>S?kF ΙE9~LmC"f(c{ r ŴͿwgSuTp\444Z_>%&İ<zf$_mPu6_L knfk$aȎYJDB^&f2^M/=&s~3*ir37-:F8€9|7#;0|(֔"L-b {>98**ZLj_x{{a -WDB[ԅ;u6_1͏A:5a>ձc!2*<&],>/AR,ĄW9G $LhAn_m<)3l@sxߗ.tVU]bwRݐ5+0< @PY/Vy|0Ef#凹@;CFzHTY#,!`'ӵ:ݸ/?iyn2pӫ|?$v.ǃtWAOύzf;ԍ/WQr g2kp侌} 5;~wt[np0I`␩ܗ \t2]܀och&EOPtƃb??cZzB+cL)p|Iex}B|aM2DM" nxQWtiWqWlc8pN-Ln8vr[[ʀlޑ6MM63HB84x]nH49aS/-, hНR-P8)0T*-tPxԀȂo ,ثl_I%lS~f41Na_3PdޔUMXƩ ӥXj{KV`s:MsƎnK+~LZhYE^i[vme{.2P%GMpDmLd@ MM\E'ٕQb^Rqė.7IiMEw?U{Xcl*9ٞEbxZin>LJڙ\Qm|^FZ}]$>6S]2 'GB;>KY>@/BQVtn?;d̮0 Dٳw r,1h,T;h'o[L&iXB`Z'VBگPTA,4 Qp8`70 5*i줛.Mпa*& q؟EJ O7R`K',/%!b0~E G/zdY̘7>kj*/'t+Pw씶{<&ưp6 U49~@ z=Ase{2ѤjkBԔDtيpq :@Krkc)~ a.D#y3vivonatev/.git/objects/49/0000755000175000017510000000000012352055317016001 5ustar jordanlabmembersvivonatev/.git/objects/49/fed6be7cf6dbf300fabbc4323f6b1ecd8237810000444000175000017510000000125412352055317023566 0ustar jordanlabmembersxMTN1쳿b%Rr")){wYD9SqޘPMENNs"Vk&rjUWfxHqj=_~dԅc=4&B) 0] L]paJr?ʽqH<3*V^sE|Ok&RiB0==R/*Қ'i 68ʂi'n;GfJo'[k]ICCq&5;8}G%uazXh-\}(^wn7O,j)N:i, a"|XR6TItЄ`D9Q ) a)b1Sn<cT_-ZZQ:@IHɢZB8tBnW64r{%TL"%[It^ed}ƆıP9{b6F7ECPC ?@޻ҽ$刄ј2Q|rmbWC)d22je` 'J#34}4S+iL[7 @z#>J: G 3)#Zn%TF+`|86 P ^I5fTӌxy+Ro[e_xiy(Pu69-J3Z HylզѰNߘ!_?Bm$h\Fb [N[91}Wuֵ}Vb?La߬pnIkvivonatev/.git/objects/a9/0000755000175000017510000000000012352055317016056 5ustar jordanlabmembersvivonatev/.git/objects/a9/6b12cdb346b126afdac253cda0eec9af2dbe3a0000444000175000017510000000432412352055317023754 0ustar jordanlabmembersxXmWWLt(H"%mB 4Nz (qC!3$%쮋jM.r#Տ]UU.}~ʴUGGq4.ve)N{jҖڃ}Zy6/Z1.|ꬭ:mzђcJTӬY-dЅh1l'2^(UyU6ަHGޭhr2$˼MQvJ{4Ng";`vؚV[.!֪=蒴rςһ^k+tF[cu(7b c ޥzuuNu0Fc 76’,P}6вU* `eZsXۏZ5uX)d[ /Jksj?Vmr8XT;x{wP0%%S~r+YvG-őߪm6)ӽ" 3*T1,SJaG`9_bShSiJ32b]з}7[ ʪ7~^ևֿ!ߗ_ [|VAVkc[Q'Hწ>T(>|_ {!EcǓ7%'H8:bqJ- zu6?#wUx3F=L;[fXg q(FBZ[ʥ[' (n/V S^yijܱ&@2ű$;-pt:Ј̣8K ќ:$Sعҏ.M b@(CP5NHeWKPl?+S(L.#"! B xHi(:i|KHR(P9GiZVOR3 h9c}Q(HA$}UW?-1/&1ԩ hѬ3Xg4HB)1gj9A'f!@`*Xz?+ˑViV452&WN&V LG%,p8 |\%}DR4XL ÅT) #7wL6 Ĭ:_:Fc41Ru|dAe$>!nrG{Z9DgDXx3{Vr?|>HiCnv^HuhC1Kfc'--5SqAWma8`1MazxY -OΫٚS@%SхaR$ $c0Ͼ"ebg78̵a+d\y lOفj,ڥFC՞6࿳ܰΌ?0Ұ䳧$=鏪7"k}uovӻ(xm הr!*!QL[<8+͒{YtbO!,t*+r.jV5%r: {S9;J'ު"Rdv֭dKְbJݹUҘB7M"⋛˻}Nٕ}9(>䵕ӱմ8Q)2F.MϒvJR - 8>Q]mkVcXn^ݼe^^^px4&x3HxEf~fR|›HEFSz'( Kֺrs8Uy#*. Ei}.'.D#S m:%N6r=FRsUBPR"A-ʛRm;'"D>Slrчd]%_E+(a$i҃k7W^?f󆲦w±മ8T^,6_Byrf:q1G»!nse;pһx A4ktPzOޟ([GN5yr{xH E 2^m?5JbrhpK [G fA{cU8,5 &*Ioz3oas02v-->U u-i뚛E-8Vbs@|W  $-x|۟_e;|&l_,y1JZZAHJLf(`Fʊ41A P1ރ$yqed##'pN.D|ieQm+ @qhhzfފކ(D` 8*9XklH*ybHnNx3b j|@d< (= ѵD (+Oq284I0IjT 0422 <:cwsiF=[!.fO 5V,7/KR@1w eޜ%퉽ݵ]@KRR'ڟ\’w[xS>g^Nj[ 13&>+T0YKYowyϞzVgxJëpMۮc Y{ !n(cߔp:Lye~ӱ[#}?x7szEj*8xr-L;a%b?w^i)7kF8%*eO\(/^cQ:͏[UHOI m>$+ɘF"1B3*+4ips#i60Wa#C"d 06@ijɳpxkOOyiO%_>G!qX՝*Oy טK70a?IN&vivonatev/.git/objects/6a/0000755000175000017510000000000012352055317016053 5ustar jordanlabmembersvivonatev/.git/objects/6a/8fad0be00a3a424029833fd254b6c8955f41fc0000444000175000017510000000024312352055317023173 0ustar jordanlabmembersx+)JMU045f040031Qtv veUxzضD;K^JRSrSrSn+ʺ=Wf7e-Z9STdnjY옔_QZpQ-"Ay}wɺkj2KR2g+-ǹ%r'5>vivonatev/.git/objects/33/0000755000175000017510000000000012352055317015772 5ustar jordanlabmembersvivonatev/.git/objects/33/d7ac457fc83891116ff30d18e1f006f33f31f50000444000175000017510000000017712352055317023053 0ustar jordanlabmembersxK 1]}%m EF&OzPPB @OR+"%gCNkvj f |*nG`|WxU.%zTޒUx8ο7E~q6vvivonatev/.git/objects/9d/0000755000175000017510000000000012352055317016061 5ustar jordanlabmembersvivonatev/.git/objects/9d/836972ecd66f68ea3c3a11384b27985b024f3e0000444000175000017510000000034112352055317023066 0ustar jordanlabmembersx+)JMU022f040031Qtv veUxzضD;K^JRSrSrS:='1= }w|KgwrzˑU@E榦 I%y)E { ?/zUY옔_QZ i2HJ[6Ce2HteWѓ_l UQ\bWPɰrJoosc< [uvivonatev/.git/objects/06/0000755000175000017510000000000012352055317015772 5ustar jordanlabmembersvivonatev/.git/objects/06/e2a057a60b09b2a8e70654a28d23052ad4dc000000444000175000017510000000425412352055317023010 0ustar jordanlabmembersxXmoWWlС$. ܳ{`E$.KgfwIJ E\p!38LIh"8?3kޓ!>F 當dO'-D& 3W^ JfyguVZ7If1[td(g<4$qOm)߉Y#"d(ʀ%nak|?u3'qQڼďm]+ݺc6КNp2W"x[;l\+1k&=QȡEXؖI̖b#ˬf?!jn8h#]r9q4 ԹRt 05l|$1[?6NpP3 CCġݸ%,}ɶ}Ɍ8M{P $QfnN_eҶ>q59r 6]Hr`A{ ?.!wEN $FpgnPg]#f?^T=twѬ&$^_=\owY~,:W}\sp҄ -3QHdV0»v1\>ZUT O*j%A[}Ǖ| 7aѐ.\%їl|w i;˪e坚ia#1C {O #QZ<#pM i"`tk "b)]G0"6F4PfVBa:?^I isS,:ot f"<ޖ[yhJhĊYfESϜ 3Ս_;@e3'=pk6k0]@K*9ĤN3PuU;L#<+GNN.8h[VȪ4RacV ޝUǽ96v$$:nxUW_('r"BR4v#N+Q"~˼Qx4"AH|4+Ug5]k1BsT#2f:Cڢ$ mr"ЩވTH(7vWeQ@ {;>HQA T8^'&/ & k'ϗ~ű$Թ`p[Ag3ٺC;1&5¼J/s|'6ڿv'<N\Gΐ'[$liruCXm``EuPEE uoF1 q.S?!B˝Bڱ(OQ)3IE^gʉ6cI-*vhr1jD7{Ɓm冣.ڲ˟8h;ъd{2˦ձ|7<|6,iiy!@!~ jOxԶbyn|D~C>iP ?_a-1>)%o[i lqh`k+|存i2o<%mA43xPdr P?AxFVAtvѲqpofk7+hij{G҄ԉdv tvtY$¸TNsQ9k"H;3QPܼ>?=onr-~qZM=(;!TPDPD82qi>QEМvːuCEq0l(61_f"0X—V.S \ҐrLZ:I_wEo 2E oj!Q},D rM `R+ ݫAg$tP,G "昕WJ/mF7ދꮼVbH1Ehq5WSuxX4e^l9WZe><$JYS:,:[,_Fz%_S!ArM-xX c#+1-0>ذ&<:9oPPQ쮫r/8Ov{#wPrGF+l\~8<.;n"2p0`,\|G pћ \)+ݩ,Lvivonatev/.git/objects/7e/567b50478f3f3828df4d338c2373396182abb70000444000175000017510000000176612352055317022745 0ustar jordanlabmembersxUkkFgP\,R I[ɬtÎ}r{C33g朩iu{}( gX9ziMKG`?$5t$4 %;=4ʑԜ%*JTj&Q+&ohIN8D; aّْ[ S *ڰ9 Fowt[K%1bZnur=pX [$5[@csQ39&|7MeX;0"J}pbD)#_MT.DM@MElG)Q|dJ$>ϱ3~=F]3'1ԕn{]힊Oo ]\/SSUKNAW`fG U+>YIOcK2S1  `7 tAܰmb'Σc_l/Ghqys/Z61ä6TWXg#[v(iT*8ˢuՌ.'E7kX@a+E,͔xb8@;n؝]*znV)s= e #aD6ō1 yzPhRpvP ȹ %[;Β>H +&͢[~LT1FG )>ۊp"NL#AaJROWſȎvivonatev/.git/objects/d2/0000755000175000017510000000000012352055317016052 5ustar jordanlabmembersvivonatev/.git/objects/d2/a45749658325433be399d91794ecce26860dcd0000444000175000017510000000041212352055317023013 0ustar jordanlabmembersx+)JMU023c040031Qtv veUxzضD;K^JRSrSrS⸕ǔ\hb]UAQcPEaA~!A OjosqƷ};vXzT!$3/%"a??_tc伽gEO2RC2R3sRTb.~| F}FIPEee zEsc=qΉz߂:/AV&T2,.⸜ҹb`[\Xk~vivonatev/.git/objects/e5/0000755000175000017510000000000012352055317016056 5ustar jordanlabmembersvivonatev/.git/objects/e5/71a844d301dfc47d0b507a94b86d542e5cefe70000444000175000017510000000024112352055317023267 0ustar jordanlabmembersxM 0F]e2dq[LӉ?VBo>x_Y-"zSj \֚PG1 +KPVKGaGB)Ic|zGU#~[m%;]g?-2D vlt@7)|SBvivonatev/.git/objects/e5/a12bb09cd1b5b1ed58f14d88bbdd0a38a165cf0000444000175000017510000000070512352055317023546 0ustar jordanlabmembersxMA09WԵj%ފXH "~I Dz.ݣy3{Xg8g qGAf6jO.Bʊ19OYm2N/bE?q,uRa/Hci:$"/s3Ͻ/"kH{E5g.jٽvsSNfD=%X(A,2V'hVRX7}YpCOY [(Yt.Zm*hn^hީfo-'KhtJh7g'HuvGv\' 7BVIw鶣xOATYn=[^FPԫf>C'3V:"GpQ1te :K4 d8:Y s|ْmohҹ5VIXNvivonatev/.git/objects/e5/2451e1f7c03712ae531cf60e655303686b9a760000444000175000017510000000024212352055317022701 0ustar jordanlabmembersx+)JMU045f040031Qtv veUxzضD;K^JRSrSrSª-4([&6TdnjY옔_QZpQ-"Ay}wɺkj2KR2g+-ǹ%r';Cvivonatev/.git/objects/79/0000755000175000017510000000000012352055317016004 5ustar jordanlabmembersvivonatev/.git/objects/79/e324190b24f73e0ed8e4add75feaa41cfb4a220000444000175000017510000000041012352055317023411 0ustar jordanlabmembersx+)JMU023c040031Qtv veUxzضD;K^JRSrSrSLn6WSEO'"0נ`OxH|#FrgJMMJ2RR+RK1AV]__(1),5$(8#?'Ahȱ*fηqktg$U[ZYt(+^=JԺ*RK *q\N\m-~{,^ jvivonatev/.git/objects/c0/0000755000175000017510000000000012352055317016047 5ustar jordanlabmembersvivonatev/.git/objects/c0/952b83325f2626f5f42e4e118bd0284af223720000444000175000017510000000262412352055317022702 0ustar jordanlabmembersxmVo6g["c]`?fMWKۗ0(dHEM)˝W#E<>޽q9͟=ovV^g?>Y/V7A;{ H{Rtj4ڮ m:/n4I%ݨ:8gUX7,PT1Pj)82]1u6xr%e-ܲ-Vl]͈t*t-{Ҷ0ݒϳ]ƀ .T$0 Dt8q7,ȵa+\tk6[* ܒCX.8CZ%eM-H*njEp[8Y*gT紻QcDaWk@qA]I[^T\b8C*79 X# 0Lŋi>!`{3w%9GtѮQs8#ljyR*nkgǩXd 39_cT\[3'iDiBpl:#r} L=~MoMʠqXVh+]X,$,|W]Eȭ2&ʨW\fR,T:ըxPo}Iz={vzӖ<7*8v癔 [*X{e]KHN)y*m|G(TΡAꕶ:^[K)"S3$t<^q|MPRu&8|Si6Rh}lP^ZíƗQp/d,*ve t&L2~ c&Qp&D u:*qMŖ4#ZpX̾xӛFAnM JiƑet _#zBKtE݊ICv߾?8k?tq8{~C\ο{}8;{4wZa|P4%m4T` ]傽WЉh8qԍڍsR:4@M2eI)ؤso= FqLz}˷;]+F5b<>6lp#82u@5<྿D^`Z25gk;=i۩q2v2=,Mx) 3Kr!MSv&ڏb31?PIE}T DoPexUp+>FCyRRL1OנI&Wv)jW 26c|lʵynժZWE kP.=_^o|즖Δ2 z%GFʻ8֑U,@R:ѫgZ'ꂄ8Θ ŁHoQ? {4l7ݻ$h>8I/vivonatev/.git/objects/40/0000755000175000017510000000000012352055317015770 5ustar jordanlabmembersvivonatev/.git/objects/40/a6ffa09d5cc50ad0d3fd549ec5e6d12188d39d0000444000175000017510000000024312352055317023424 0ustar jordanlabmembersxA 0E]s4I [$Vl#1Ƿx7?u]0ˡUUaUQ'&]&ͼ/ZɑYF UYtȊ8]c1iȁԙnsp-u ?$#]nkX]*" 3"_#\5dE5vivonatev/.git/objects/c8/0000755000175000017510000000000012352055317016057 5ustar jordanlabmembersvivonatev/.git/objects/c8/b3fe6d7ff2cb4634d6da044e5122986479fb9f0000444000175000017510000000034112352055317023312 0ustar jordanlabmembersx+)JMU022f040031Qtv veUxzضD;K^JRSrSrS:='1= }w|KgwrzˑU@E榦 I%y)E { ?/zUY옔_QZpQ-"Ay}wɺkjR2R½%Tvivonatev/.git/objects/20/0000755000175000017510000000000012352055317015766 5ustar jordanlabmembersvivonatev/.git/objects/20/6a27a7e55c26f788cff376194ec594457312ca0000444000175000017510000000540012352055317023005 0ustar jordanlabmembersxYmoWWleXB/A*hΉM־ (r%1%.)C !3ϼix8]T;Q>W[U'o3^BT*bYV*̢g1C>l^"" "phd\m$}-䏙JSY˪օвL<;$"OC ptzji*K~8/Z$ܱۺ.bWl!jņtZo6ROx1ʬ{L$t] <LmiƆtGVr. pX@؋"pT16ʽLU)Ĕ)Qut]j߁˟UEG`|~w~yCw+AHTt-*\ Jh@,3#i5K+,HZ=ڀ+CB-H҂DZK=0XH M!q!7d}_޺TT i+ Ÿ72* +=!}+ 1rd!/})@:J>+%1-<"weը ™3SFzcFٺrH%~&K=bG읉[^-D5ٓTOYPbJ˻ -ʺ DjDXЭcʹbǽbw 1$^Qɼ\ƕ`Kwn1j60fL/1}TVkV&.6{zZ;y_( 2 :RP#]>fFR(ƫ1VV(gk [+3vd#vV.8ܷ:D(s;:=1ZuCB)! 0o ;$:lZ(FHFZLUYMK^ @l2&oUdoq~~7ur(k{" ى_DEe]ޭ݀󅄝3H@ρ+]Xo/p7 %@K2pQYɷ"2k[JUmZ+/ڜ\٤LYx_|(ӯjEIّߏ§|4;.p8+2ұ y]7X72N{"wb//7`dA )"7pK) BU8(PM1I ҲKm-j~Z>D,P96hiBG\q)^i ҽ-P(il!KΊM)tmD5+]> eⲉ}o#aKUЄd$lL2Q;)@)W#Pm-Onߋ-7dojU*䟭1 ³OY'pJ(*B+W{=q{'ݓ.Af̾H\wau/]&]ޅV\`J8P;WXv,RMݥ'Tscƶ3wіorQ R2D(䐍 ~3bMD@u 'o=w^gϬCЖ+"Mk~VfI} 6iݠdx7 <Ŭ8p:'Yjj+1R3("h/(ƓoeS(0mʹcBa; Baw*Dil'J-'D깔K(8VRĩǭ,j\t98~X;!Np 7^YRf b7Ir?L͐)@'PE)5_Hl|Gn(`_n~8ʢpnV*c^+ڀ)Fz0Pͪk^FL79^ kI5

O~G_FAys]moWB+/ kY鮹ANnmO}-EEX^7ΣDbȥP? !#ZVMu|yk_B\gN ^npp :؟%Z֪.)ʯQGj \azvivonatev/.git/objects/2d/0000755000175000017510000000000012352055317016052 5ustar jordanlabmembersvivonatev/.git/objects/2d/6496d548280ada53981f54029b405e450b39a30000444000175000017510000000034112352055317022625 0ustar jordanlabmembersx+)JMU022f040031Qtv veUxzضD;K^JRSrSrS"*.-TMEy}"sSS̼Ԋ"=x|}AU=*,vL/K (J-IaRļX`dݵ PEee ^Wicv*RK *q\N\m-~{, Y6vivonatev/.git/objects/ba/0000755000175000017510000000000012352055317016127 5ustar jordanlabmembersvivonatev/.git/objects/ba/9731bb63c0b55d449133567df447954d5ff1280000444000175000017510000000041112352055317022774 0ustar jordanlabmembersx+)JMU023c040031Qtv veUxzضD;K^JRSrSrS|v:q̓ηv D&0נ`OxH 7̹uۈrY,L=TjnjTZZİϟ/_1r^'PEŎIe!E9) *GC]U1{v[>#$ڢԲ̲T}R 3>J+/f{,5Haq 22xovivonatev/.git/objects/32/0000755000175000017510000000000012352055317015771 5ustar jordanlabmembersvivonatev/.git/objects/32/1e5ba9c7cca0f997c66c3f2c5b6d09fd28be450000444000175000017510000000140612352055317023437 0ustar jordanlabmembersxmTmk@s~@ЋmE'Z⧲Inݽ{$e2q]x:o_eGGGd_ ў H[zW=m\Oʒ2-@hMvAUN jI)8jU(RQ>(D=4kBXh 䉤,'6׃ǜ-&v`>yеu;5@ jU3Eʛl9]b:2?c+EjTD ʦ˧5ûa$n0yNsVURYc,bOl/ 4Ȁ仆-Ѧ !ߕi_eץ9ɣ. _Ovs1̴AϪnr9zFDG_Y:xZ%S.Vc㈯d-'0GϯE59TvQ|(HW/L2HHE* &/!@Mur,:>ƿ`4F m-bO ӫ68g<0dF[fK.Pv9oq=wieWU-HȲ,ۛ7vivonatev/.git/objects/29/0000755000175000017510000000000012352055317015777 5ustar jordanlabmembersvivonatev/.git/objects/29/30290e0490d2e04d59407928da5318cab05d6f0000444000175000017510000000066612352055317022707 0ustar jordanlabmembersxmRj0{ nCC0C{l/ -%3WvXr0hf޼7Gxכqw0\b#$ڢԲ̲T!ruwMx} k*,*RK *q\N\m-~{,hravivonatev/.git/objects/be/0000755000175000017510000000000012352055317016133 5ustar jordanlabmembersvivonatev/.git/objects/be/797d9fe1c2bf24ae9d04372fe0e1dd105b7b780000444000175000017510000000427012352055317023435 0ustar jordanlabmembersxXko8ݯXHN}:} tCDۚHϹd;bQ"UW/_O?_ju!NtnՋt&ux[[Ӳ) lx:N*y^yfe>H:EX)΄SH% ϦCMv?FiF? ۺW%kJZm(x+fV6]v6GS30ʶ:ެ9Ž_zZ;7U)D@.QȶWeq;Rk`9tA0Kc; gKݶϾ\ލ_ ̮1n{.En;mkt&Y ˥U|W|0ZP"j MH + SnhꍒƽHeF.(8|62Xh,39Ϝru;J Evuy)戉SB0=bXR ŝ|{J\p荠bJ(]\f]V=G|֪h%WL{fLi'] `l8vׄܛMPCʧPD%e'T*)֪]zDSt<6!/>$+}jB̽(,K?H;J=U 6>xz~孙lR} ǒӺbW{1_}s7ɩęPiSsߑkp%]I W?]5Ҋ  GzxKۂrrM@18pb#(Ѳs1 C. "iS^3 B;Y 鑋?JeG!~vs>[BV,C.* XUHTߋ='ws|3,Zp/ْ9e1wO*% /yk6׷j;n*cܭz*Jozi% VJ bEdE V}6i+H '"OV -'I[v5: 9UHm= O`Þk'B V&H,p(," x"WJnNx3t!`x{9hL/*P}ӤP VREu6j]԰:;bGFE8}2 n?&}Mb(кP4tb܄Sؗ#{nqx7m=CҀ```"] ]"/se{'>(>{"7o ~~6(XR8%$J~ 踒f5DESPbWSheT?l$ MR.`Lꤡ*/RP(#}%FuwJ/mNcXo\oXUkž^:Wm=&0?/JY۱@N)}VroNkWaC)A="Ə^0ЪyOI0'!>5]x?3\_Y]^]l#T3 0M]Hw2J  z7GzxV0yy` #\q⟲ c0!"׺W LLnvivonatev/.git/objects/be/1a00987ef0ab1a628e0e7776bf563580028dd70000444000175000017510000000477312352055317023141 0ustar jordanlabmembersxYmoWW(H]Dڦ0C Fޥ4_\ȕĆ2|m]}F,wm}Ǜ\o/}7盬 <2`8k æ!|RkU1o߀Ç?Nb&ge+.c]y+Kf "-e }YJV^JUO϶7ta}:5N 2=!+3J,`X8=Vdk/Jֵ $<ە?JMʮmg*eefBgȿ 3ZN1XZo,J]Fe\nzyrǪun ]ò`{L ݽ:D<8F8pɎMΨЩ,Tfɰ$gsF])k/u+rxYYuwKYC'*;08?S*lٿ ,+6On ih)eȬVc%O YM\w$x/X mL݂,V0 ,j^J' MBP9> >DW4m8G5 3+WӡҞʊMb9?j7j7t?5g pv p|џ3wqPvvMg cC4"]T*e,OOtYu6ϫݶ8qBV3v?Αh^F0x/cD_X'={I;ݎ 4H==v5*jWR?v?.b9^(&7 /Wa#, ?dΧNC`s"5fT704SʭH#Wtw`ldt9V\CILI8{zqVJV5yk=)j\36}^4Q /+$-6GC1 wMRf[C̀~=Ucî$˞Űsmupg.}Z4kHB Y\%q(:j=MHq((\F6-KRQbϰBnSo#/(0' i !(٦Ʃ "mB$zI%B"9Xtx&]4ag8HMpĀiH:\1m Ⱦq /DlUPXvl 7}1os7? 0tpG-.l(G #%9`7, lZ-I߬s n`!MJo";ZH6DX1'tF~~A'JUJ)Xx}ܔ 4pJY=m R/dщ!Ncw %S :zSܐymltrB}+s-".Q4֢Js5˚ӶYo5t,~c}.LlT5I| P۬BB*(mf -awj :??o 朂bi]~_馹n08@ƴ01:M˜r?0avӽ^&OQgX?/.K%M..q Zp)ا.?06i]9(FV9^q B_w9<𘌗?2bmj5R@wl4t~GDYKW#?@|:1FZ6k)!%1ĜdN3u /иVQumh{(69y"a)+'5rT;{#߽cO{$dv@DSCxcg[3l]ϡpj+}gN>#T ]^WWevG\LG#C';4itcYm[00"uPEE)uo&}pQMNv!Xk 9(̔"gʙ6cI,&vXr1#jND7{Ɓk_I('׋^_jݎɓ aZ`ql}ɇGLvVQtұ]{zr 7+oi~9} :,|Fkm-LfP}t@I^F[/) Ø p9Zf}=w"܎BC1 a#rX=iPBCl}{H5<@̉/*%'/NjwVjxGp/&$M>sd<GGvivonatev/.git/objects/1f/0000755000175000017510000000000012352055317016053 5ustar jordanlabmembersvivonatev/.git/objects/1f/e1ca7ae4273049d49015c87833a3a1fcd77ba90000444000175000017510000000507112352055317023206 0ustar jordanlabmembersxYoF_1q Ո%ܵq*1b\^K|M$&|F~3KRkHܝ{ǷYyK/',nb=U,V Qt}/U{: V9ٹ.uSZۥ񎢮-s7GU9mҬU5ܨHh UG-˭۲n9]qT'mYf UQs85M?DQMj/%q5^ǪjӲhΈI;q5pW3g aZmz6sU@T>N`6 YY תjUB"#yrU꺬^_A uyVTn.m/ˮEZլDu"PEujVJ>d?pʛ9 zrT /Γ9]˄ (+UxXɽs YݚJ4Ufso-X^^_9-]k7>N"&ge-_\,:MWPMA " e o}iReݻ]]%(qf5noZe5q&Fk[rĚ `P(=VdS_ !k4*J2t[pr*7)L6YSv 3CcFzWwnrxRˢD˲+)@:\QVr5M6V/2UlYոMzNQmXli ܻP3K']qq ep8}U$ȕkL y/˻6U+Nk+VvӢZ҆\WTt+?V俥VUР6 XwW6~ՐOn %WeF2`V+'rpr&=CIƆXYA]fk;}5ߔNJ'%G脠2}*6h}>&oёt1>8z@Q#r9JBflΨo%z;yl۷* @ &?!+b'fpiOC<--ֈwbR2 <=A$kQ-ׁ<<6w|Snv͉m+/pz9R^ZBI1_{4]^$j( 9YmJ"\ 7c_pFˉn {8M&yUT6/sJ~< *Za;F*zD6A{4ilιڰ沃*^gÜcS2Vi}͂b1.#{ӊr{(9,2(-$re|cZCg(u\^7} b [s[BM JMUm|l&1klv%,}MîfhÉ {R} Fj*$ p=IaQt~&pq5!uD犃>ibq@]oK~Ҡ.G(|'tQ" $=JBbZ 00ºHlIn\Pڄ6H 0^ M^?c%\2GlLb>N0WcLo\ U+`xrʼn&}RUkj V64]^o1#`VO[?h!Dt$s4,@B@5&6[+\~!LK4qhh!)ChHxNbb I@] ènq@v7&DYi&NOqC"|<`t$YFк6{ m(CWIĹ?G̃&& -{ jH͕y<9Ð0Sj+nJ.zYsKMeLo c05#X禂]pKTש^jRf+P|ѝUڭe 'xvԔR%+^Nus;]c\Cf ӘL2\gQ~D2<./ .-p 0!UXMTq>44:={DI"k$O]Z+~1Amۺ*}cyY`~ʑ. }Ue<sq5^\~ o]yLdӄe-_$qg̵m뇵UrCޏKT/m i+'-"gj _Չr!l[?CR2PД9y"aP*e+ 5rX;;-߽cOw;$dt@DMxcT ]WWٲT.Zqf쉓v4y-hTu:"W7MB\ԃ/t-u5RfLR3UL౤o;,`9wuG@58wu,=44 7ft6*mePm~d\>HUҠl>|:Ic=Bt __I('^jZ܈nI0p8C #&;K+({:Mü[;zr VXstXdְ.[[MՉjs͠ $$=)6\-v3E#eS1=;@rе|{ߦlp;r ŀ@Y6bc䒧A 9AVW=$1'_UJXO;Hb_MIb>+|$Yoo_s;%vivonatev/.git/objects/4c/0000755000175000017510000000000012352055317016053 5ustar jordanlabmembersvivonatev/.git/objects/4c/fd3a68758f7f2a64c1b92e7e32021d171e67330000444000175000017510000000024212352055317023050 0ustar jordanlabmembersx[ 0E*<&$j6%\8ʲSfb| F`Ƀw]f|nk3Ø DYyvȞDS'{{jfY#u{,2ϩ,WLL@wG_ͣp{]Vj5Evivonatev/.git/objects/4c/4ab943def8d1c7d9c143da9ffad6c05413cdb20000444000175000017510000000240612352055317023562 0ustar jordanlabmembersxmVo6[vbY`?fPM0AgD"eh(IV!E<߽Nys=;D^en,C&Z. X2}˖Co82]]6\Y&hy2"{UE9+6(„6=5:Z^pˮ`Z5M9 |=V6n$fEj##.#a՟ TnL+."uM3ߗذ\OZsILq`VHP#z@/[㊲9usSOօf.jlayB9t6>-^@+pJ=5e?\jixA0 Q4g܈*:*N^[ .bRS̕4f&2xu (.}S"h@x1t^gWV얱;/C[ڕ.8m!.^_NN>9Ks&OR/H{z: & 7n2:M W{;GZ9Eִ]K刲 ATŧw{*J Nm{PsL0[|C/| vD[0mAXw#XjӚwQr޼@_9c7#VD؈>Hmήł؋> 05"~\$Np]gMt2j6M[|'ZoF"c߅59-x0:o##M-k7Tݽ]& QwJv#!7*N>>~j1e<-uk'=aHqNGLQ'e)]}NBLvivonatev/.git/objects/e9/0000755000175000017510000000000012352055317016062 5ustar jordanlabmembersvivonatev/.git/objects/e9/7ad69e0977d339a07958f1dec25eb2178496350000444000175000017510000000257312352055317023037 0ustar jordanlabmembersxmVo6g["cw]`?fVKۗ0(dHUM)ۙW!E:>{q9ϟ^9WeGG3m^dok fZiKm{OHYRF/m6P[6r|ugN)~@wZ'J7:x_RC1$C [c õkQ^*&4ƭ{GBr+X]5[zU37EGqt,] f y?ȭ)}ߺ 8Ś[Xm zetDoZHvԻ"\ih.CM;_xƹ^Ix㧳g(u}xdq98jqvvٓ4wvY[m$pޙ*<Y.T9%vGK8Pfh@yLY*|,2* mE8Nޑ7G Vr;U3OMsTu_҃KMO·/ap)gpvSڸ$C^7-ʷA;4 ;Ӻ?\)M{M+P)o'k"ƓjϘYJ m/lڪ7IrED_@+V`0/j.@S*(PJ>ã;1 ;L]z&z{|]yt A8zL0vNrR KIߴ0ƾ]cDŽtxaetapX@$I~TTEDF/i bh`@;c}lkGzIgfJ-#1 vv bvivonatev/.git/objects/14/0000755000175000017510000000000012352055317015771 5ustar jordanlabmembersvivonatev/.git/objects/14/c903266aee01deb5ce06127acefe7004c0fece0000444000175000017510000000023612352055317023460 0ustar jordanlabmembersxA 0E]2$)ե7FB%絙]))E =[ptl'뇷Դ5C8;V`AP) (\K]d3/ ;rgY_X az?9\~d BCvivonatev/.git/objects/14/6a7133078235cca08e68a0560496387f446bee0000444000175000017510000000034712352055317022636 0ustar jordanlabmembersxJ1=)d?pʛ8 zrT /Γ)]˄ (+UxXNɽu YݘR4U&So%X^"|rZ̻N*or5Nn#&ge-_\,:MWP9A " e o}iBe]]%(qMf5noZha||erZ'|E|fi"*Jd8ڔ5CsZx繒;,?ܩJ䍊.MVFTasq̄ǐ.՝b@۱'5<Բ(f]vE2&H7jjQ&U-5IZO) ˂e1c+Wv\\otFy(}_ r%;a;+(CMՒ~a{EيWnZT]^Sڐ늊nǒԪ oa K.Ưr;9ía*(\j?(_P9Gbq"+A> l͂r&)@I6TŦMч8:Ғn8GeTH\R=ӥ,Ĉ3u(7}uާ- 8pOcXI;mriŸ!C@ V*Ye,OOtZTu&ϭ68[~tse>{uԴnb^X9ǒejꕮ%3n>ոj륈 ij2Hd_o2+ъxt)+ p{#K^%gt)N 0hW(]uJls?3lRfkz4BUCˠuT]۟s9jÚ{SRʍH^k Ow,XoaQ2cӞ`[dl!OHGi!YS?(v8pFZ.:Ty.ebe4@[Ʒ fʶ@Cî$מŰ鳙pصl8qa3zJ$Hai\&R(m]= \jMH12()QYnZbQ`\ !G, #!;qAA?DXUa]qEd7Qv m:f,,`<tS/ $)~ˆ eOؘ9N0&U Ⱦ" 6V(A?y ;>CGM8t-1l(G # %9`7=⋵9'Eb(jѻfoߴW0?F8.+DD*Ʊ$7<V|x">HPpW0۷ݍ8I&vֽ OSܕS6 Gchix=6{%iBZҟ#Q'i hpjdu/N=+C/Cyw!a%: PԚWY\z洭~ ˬf%`j8 .L &SʽL+*" X>!;ە[(NmIC)73^ f~ow̐'= 1 e,ʢ&dy>\?H-p40IUXMTq944'QJ#p7IS֊f@P@.sX(Fb98\?H}]*28/. 6Cy0C+i[:dY-L]a5TnRt S0~ lIvkquR0>:dئmx}'gm1]Set|zo cnT?ovivonatev/.git/objects/9f/0000755000175000017510000000000012352055317016063 5ustar jordanlabmembersvivonatev/.git/objects/9f/0a3cce86113739844519d77bc82718dd5441600000444000175000017510000000140512352055317022644 0ustar jordanlabmembersxmTj0b \ȺI}Hl) tCKlڢXn{FMڰ_332q]zc >NYђ}.hgF{/4L;&m]ݳq=)Kڶluc-7W9%ë6 &UUlHFD=)M:;Bs{l U^#OlT-.j-pf 6TiV TҘkhTqA@nt +E c1d0't'\sA1nCN֌-dr~zU=V4J+tlPʠV/>P5(G/X 9͕ZWI]gUˏ d>-,:>ƿ`4F m-bO ӫ68g<0dF[fK.Pv9q=wieWU-Hʲ,ۛFvivonatev/.git/objects/pack/0000755000175000017510000000000012352055316016462 5ustar jordanlabmembersvivonatev/.git/objects/78/0000755000175000017510000000000012352055317016003 5ustar jordanlabmembersvivonatev/.git/objects/78/1058145a7f38eec15c05529df79f5c98133ffb0000444000175000017510000000023212352055317023072 0ustar jordanlabmembersx 1Ni@I6 mFO̝;k```x},*!GDF*r+Uȵĩ`3ƶIC-$\MVlvbȞ}mYeY+xY|4=ހxcf!PFR_nCvivonatev/.git/objects/89/0000755000175000017510000000000012352055317016005 5ustar jordanlabmembersvivonatev/.git/objects/89/484f9202e155ed2ed2cf5b44898b636784c4aa0000444000175000017510000000226612352055317023102 0ustar jordanlabmembersxmVo6[rbgM`?PM$0AIgD"eh$`آD>>޽{v9MNNO,Ձۣͥ7δ8{n+ P1\/Km{Osבk @i6ܭɈ"5L:F"MsT훜;rsxۂi5G4ezpK>W"7 k;o\15vyUa-q`Zrp0lפ=1†xk()΁KT 4|}KPTgd+,#\n#:R`wfo@G%<S6IwoUO7b:gd)ޣnK =Nq`6QLr6kCR@^;nk]zOm' Ld?tiw<HgH&yn3$З\sl0Q"Nm],z~)O7 XNƖ|GyorufacP h[f!9"KM Tը+LOegu_ߑLE}:i >d(3 X3ٔYեQM P _%;xUAWꢮ*y 3);G)xǪbK]ocns5D&tVGW4P=x2xc,'56UH*ЂS̯Esiy>ǵ>;=ʑϴʞcC2l쎺G"|x+w#Ȑ>@A.r[ݘEyhs3vӲ )l 䣇,EbdOEz4EB)Koڵ\~-\7iEOoZF"DRCs2~v?IF0M#:d4˔ݝlmq;%J!78d4mpe"Ta.frE$I^y+ᣅB67vivonatev/.git/objects/89/6025c1c5782d41a1ac656768a24ea35cc473aa0000444000175000017510000000024212352055317023035 0ustar jordanlabmembersx+)JMU045f040031Qtv veUxzضD;K^JRSrSrS˟޽rG *"sSSbǤԐj *E̛/;L]U[YXZưvCUe1@tu@=:Pvivonatev/.git/config0000644000175000017510000000040712352055317015305 0ustar jordanlabmembers[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = https://github.com/jrtex/vivonatev.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master vivonatev/btindexer0000755000175000017510000000044112352055317015164 0ustar jordanlabmembers#!/bin/bash if [[ $3 = "" || $4 != "" ]]; then echo "Usage: btindexer index_file ref-name ref-fasta" exit 1 fi name_index=$1 ref_name=$2 ref_fasta=$3 genlen=$(cat $ref_fasta | grep -v ">" | wc -m) bowtie2-build $ref_fasta $ref_name echo $ref_name $ref_fasta $genlen >> $name_index vivonatev/revive0000755000175000017510000002033112352055317014500 0ustar jordanlabmembers#!/bin/env python2.7 # Revive: Vivonatev 0.3.0 # # A python program that which automates mapping, filtering, # extracting reads and generating coverage vectors from # references genomes __version__ = "0.3.0" #========== Custom Exceptions: ==========# class VivonatevException(Exception): def __init__(self, message): self.message = message def __str__(self): return repr(self.message) class ArgumentError(VivonatevException): def __init__(self, message): self.message = message class IncompleteLog(VivonatevException): def __init__(self, message): self.message = message #========== Defined Functions ==========# def exit(string, parser): """Exit in Style ( and helpfully)""" print string parser.print_help() sys.exit() def shellrun(cmd, out): """Run Command, write output to file""" out = open(out, 'w') process = subprocess.Popen(cmd.split(), stdout=out, stderr=subprocess.PIPE) process.communicate()[0] process.wait() def run(cmd, logfile): """Run command, write output to logfile""" logfile.write("Running: " + cmd + '\n') process = subprocess.Popen(cmd.split(), stdout=logfile, stderr=logfile) process.communicate()[0] process.wait() def isBelowThreshold(logpath, threshold): """ Check if mapping is above or below a certain percentage (threshold)""" if threshold == 0: return False logfile = open(logpath, 'r') loglines = logfile.readlines() for line in loglines: if re.search('overall alignment rate', line): num = float(line.split()[0][:-1]) if (num < threshold): return True else: return False print "No alignement Found" def map2Ref(ref_name, ref_path, ref_length, log_path, dir, args): """Map reads to reference using bowti2, then perform other actions (extract, filter and cover)""" log = open(log_path, 'w+') cores = str(args['cores']) # mode = "--end-to-end" mode = "--local" # Bowtie2 Mapping if (not args['input'] is ''): bowtiecmd = "bowtie2 -S temp.sam " + mode + " -p " + cores + " -U temp.fq -x " + dir + ref_name else: bowtiecmd = "bowtie2 -S temp.sam " + mode + " -p " + cores + " -1 temp_1.fq -2 temp_2.fq -x " + dir + ref_name print 'Mapping: ' + ref_name run(bowtiecmd, log) if not (args['filter'] or args['cover'] or args['extract']): log.write('No other action to take.\n') elif isBelowThreshold(log_path, args['threshold']): log.write('Mapping ratio below threshold. Cancelling filtering / covering\n') else: bamcmd = "samtools view -@ " + cores + " -bS -o temp.bam temp.sam" run(bamcmd, log) if args['extract']: print 'Extracting' extractcmd = "samtools view -b -F 4 temp.bam -o temp.mapped.bam -@ " + cores convertcmd = "bam2fastq -o map_" + ref_name + ".fq temp.mapped.bam" run(extractcmd, log) run(convertcmd, log) run("rm temp.mapped.bam", log) if args['filter']: print 'Filtering' filtercmd = "samtools view -b -f 4 temp.bam -o temp-unmapped.bam -@ " + cores run(filtercmd, log) if not args['input'] is '': run('rm temp.fq', log) bam2fastqcmd = "bam2fastq -o temp#.fq temp-unmapped.bam" else: run('rm temp_1.fq temp_2.fq', log) bam2fastqcmd = "bam2fastq -o temp#.fq temp-unmapped.bam" run(bam2fastqcmd, log) run('rm temp-unmapped.bam', log) if args['cover']: print 'Covering' sortcmd = "samtools sort -@ " + cores + " temp.bam temp.sorted" mpileupcmd = "samtools mpileup -BQ0 -d10000 -f " + ref_path + " temp.sorted.bam" vectcmd = "vect2.py " + ref_length + " coverage.txt " + ref_name + "_cov.vec" run(sortcmd, log) shellrun(mpileupcmd, "coverage.txt") run(vectcmd, log) run('rm -v temp.sorted.bam coverage.txt', log) run('rm temp.bam', log) run('rm temp.sam', log) log.close() def main(args): """" Main function """ ### Reorganinze arguments if not args['directory'] is '': dir = args['directory'] else: dir = os.getcwd() if not args['name_index'] is '': name_index_path = args['name_index'] else: name_index_path = dir + '/name_index' # Verify validity if (not os.path.isdir(dir)): raise ArgumentError('Directory ' + dir + ' does not exist') elif (not os.path.exists(name_index_path)): raise ArgumentError('File ' + name_index_path + ' does not exist') ## Copy input to temp file if (not args['input'] is ''): if not os.path.exists('temp.fq'): run('cp ' + args['input'] + ' temp.fq', sys.stdout) else: if not os.path.exists('temp_1.fq'): run('cp ' + args['mate_1'] + ' temp_1.fq', sys.stdout) run('cp ' + args['mate_2'] + ' temp_2.fq', sys.stdout) # Find References name_index = open(name_index_path, 'r') names = name_index.readlines() for line in names: if not line[0] is '#': ref_line = line.split() ref_name = ref_line[0] ref_path = ref_line[1] if ref_path[0] != '/': ref_path = dir + ref_path if len(ref_line) > 2: ref_length = ref_line[2] else: ref_length = 0 if args['keep_log']: log_path = 'log_' + ref_name else: log_path = 'temp.log_' + ref_name try: map2Ref(ref_name, ref_path, ref_length, log_path, dir, args) if not args['keep_log']: run('rm ' + log_path, sys.stdout) except IncompleteLog as e: run('rm *.sam *.bam', sys.stdout) print 'Bowtie2 mapping appears to have failed' print e except VivonatevException as e: run('rm *.sam *.bam', sys.stderr) print e unlog = open('/dev/null', 'a') if args['filter']: if not args['input'] is '': run('mv temp.fq output.fq', unlog) else: run('mv temp_1.fq output_1.fq', unlog) run('mv temp_2.fq output_2.fq', unlog) else: if not args['input'] is '': run('rm temp.fq', unlog) else: run('rm temp_1.fq temp_2.fq', unlog) #========== Main ==========# if __name__ == "__main__": import os import re import sys import argparse import subprocess parser = argparse.ArgumentParser(description = 'Vivonatev, a NGS Mapping pipeline', prog='revive', usage='%(prog)s {-i input / -m1 input_1 -m2 input_2} {action[s]} [options]', formatter_class=lambda prog: argparse.HelpFormatter(prog, max_help_position = 75, width = 200), add_help=False) required = parser.add_argument_group('Required Arguments') required.add_argument('-i', '--input', default = '', help = 'Non-paired input reads') required.add_argument('-m1', '--mate-1', default = '', help = 'Paired input reads, mate 1') required.add_argument('-m2', '--mate-2', default = '', help = 'Paired input reads, mate 2') actions = parser.add_argument_group('Action arguments (>=1 required)') actions.add_argument('-L', '--keep-log', action = 'store_true', help = 'Keep a log of mapping, and other actions, if any') actions.add_argument('-F', '--filter', action = 'store_true', help = 'Filter-out the reads mapped to reference') actions.add_argument('-C', '--cover', action = 'store_true', help = 'Generate a coverage vector of reference') actions.add_argument('-E', '--extract', action = 'store_true', help = 'Extract mapped reads to separate file') actions.add_argument('-v', '--version', action = 'version', version = "Vivonatev ("+__version__+")") actions.add_argument('-h', '--help', action='help', help = 'Show this helpful message') optional = parser.add_argument_group('Optional Arguments') optional.add_argument('-d', '--directory', default = '', help = 'Directory where bt2 indexes are found (default: current working dir)') optional.add_argument('-n', '--name-index', default = '', help = 'File listing the references to map (default: \'name_index\' in directory)') optional.add_argument('-c', '--cores', type = int, default = 2, help = 'Threads to use when running bowtie2 and samtools (default: 2)') optional.add_argument('-t', '--threshold', type = float, default = 0, help = 'Threshold mapping (in percentage) to perform -E, -F or -C action (default: 0)') args = vars(parser.parse_args()) ## Check Input Validity ## if (args['input'] is ''): if (args['mate_1'] is '' or args['mate_2'] is ''): exit('Input(s) must be specified', parser) if (not args['input'] is '' and (not args['mate_1'] is '' or not args['mate_2'] is '')): exit('Either use -i, or -m1 and -m2', parser) if not (args['keep_log'] or args['filter'] or args['cover'] or args['extract']): exit('At least one action must be specified', parser) try: main(args) except ArgumentError as e: print e finally: print "Over" vivonatev/VERSION_HISTORY0000644000175000017510000000220612352055317015544 0ustar jordanlabmembers# Version History of Vivonatev 0.1.0: First Draft, April 2014 First draft of the vivonatev project. Provide option to filter out references, or only keep the log. Includes isAboveThreshold.py. Exception handling. 0.1.1: April 2014 Support for paired-end input reads. 0.2.0: Revive update, May 2014 Entire rewrite of the code. Now define 'actions' (log, filter and cover). Added coverage vector generation. Paired-end bug fixes. Redesign of name_index files Threshold not finished. 0.2.1: Threshold fix: June 2014 Bowtie now uses 'local' alignement. Threshold function now searches for 'overall alignment' line. 0.2.2: temp.sam bug fix Fixed bug which caused temp.sam to not be removed if the references was not filtered or covered. 0.2.4: Bam2fastq branch This branch is a fork of 0.2.2 which uses Hudson Alpha's bam2fastq to replace picardtools' SamToFastq.jar (slow). (Other fork uses tophat) --> Merged into master 0.3.0: Introducing: extract action Now has the ability to extract reads positively matched to the references. Also allowing comments (start with #) in name-index. Can now use -v to find Revive version Bug fixes, cleaned up code. vivonatev/isAboveThreshold0000755000175000017510000000150512352055317016447 0ustar jordanlabmembers#!/bin/env python import sys import re class NoAlignmentException(Exception): def __init__(self, message): self.message = message def isAboveThreshold(log, threshold): if threshold == 0: return True lines = log.readlines() for line in lines: if re.search("overall alignment rate", line): num = float(line.split()[0][:-1]) if (num >= threshold): return True else: return False raise NoAlignmentException("Alignement not found") if __name__=="__main__": if len(sys.argv) != 3: print "Wrong usage: " print "isAboveThreshold logfile threshold" sys.exit() logfile = open(sys.argv[1], 'r') threshold = float(sys.argv[2]) try: print isAboveThreshold(logfile, threshold) except NoAlignmentException as e: print e.message except Exception as e: print "Other error:" print e.message vivonatev/Readme.md0000644000175000017510000000536412352055317015002 0ustar jordanlabmembersVivonatev ========= ## Description: Vivonatev is a NGS mapping pipeline using Bowtie2 and Samtools. This pipeline can match NGS reads to large amounts of reference genomes. Features include: * Can map both single-end and paired-end NGS reads * Ability to recursively filter out each reference genome * Extract positively mapped reads * Generate coverage vector of each genome * Threshold for filtering and generating coverage vector (saves a lot of time) ## Revive Revive is the name of the pipeline executable: usage: revive {-i input / -1 mate_1 -2 mate_2} {action[s]} [options] ### Arguments: ##### Mandatory: ###### -i inputfile.fastq Non-paired, fastq input file (can be replaced by -m1 & -m2) ###### -m1 / -m2 input_mates_1/2.fastq Paired fastq input files #### Actions ##### -L Keeps the log for each reference instead of deleting them (log_refname) ##### -F Filters out all mapped read for each reference ##### -C Genereage coverage vector for each reference (refname_cov.vec) ##### -E Extract the reads mapped to reference in separate file (map_refname.fq) ##### Optional: ###### -d directory containing reference index (and possibly original fasta genome) ###### -n index_file File containing the refence names in '-d' to map to. default is 'directory/name_index' (see index format) ###### -t x Threshold. Limits -C and -F options to reads that mapped to at least x% of input file. (def 0) ###### -c N Allows the user to specify the number of cores when running samtools and (def 2) ### Name_index Format Name_index is the file containing the information on which references to map. Format: | # Ref_name | Ref_fasta | Ref_length | | ----------- | ------------ | ---------- | | hiv | AF_033819.fa | 9315 | | ebv | NC_007605.fa | 174280 | The reference fasta can be defined with an absolute path if necessary, otherwise Revive will look in the current directory. The index file can include comments (starting with #). ### Requirements: * Bowtie2 * Samtools * Bam2fastq (from Hudson Alpha) * python2.7 ### Installation To install Vivonatev, you can simply move the executables to your path (~/bin/, /usr/local/bin/ or other). ## Other Scripts These other scripts may be helpful when working with Vivonatev. ### isAboveThreshold Simple script the check if a mapping is above a certain treshold. Uses the output of bowtie2. Can be usefull when selecting which references to filter/cover. ### vect2.py Short program to transform the output of mpileup into a vector. Used with '-C' option. ### btindexer Small script designed to generate the name_index usage: btindexer name_index ref_name ref_fasta ## Future Improvements * Implement option for other alignment tool (maybe bwa?) * Quiet mode (keep output to a minimal) vivonatev/LICENSE0000644000175000017510000004315212352055317014265 0ustar jordanlabmembersGNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) 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 this service 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 make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. 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. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), 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 distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the 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 a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE 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. 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 convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. {description} Copyright (C) {year} {fullname} 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 2 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision 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, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. {signature of Ty Coon}, 1 April 1989 Ty Coon, President of Vice This 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.