Added basic nvim config, replaced vim with nvim

This commit is contained in:
Philipp 2024-03-03 15:33:59 +01:00
parent 624d12439c
commit ea2e6747d9
Signed by: Philipp
GPG key ID: 9EBD8439AFBAB750
1972 changed files with 126578 additions and 0 deletions

View file

@ -0,0 +1 @@
f3a4d8eaa8ac10305e3d53851c976756ea9dc8e8 branch 'master' of https://github.com/scrooloose/nerdtree

View file

@ -0,0 +1 @@
ref: refs/heads/master

View file

@ -0,0 +1 @@
f3a4d8eaa8ac10305e3d53851c976756ea9dc8e8

View file

@ -0,0 +1,11 @@
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = https://github.com/scrooloose/nerdtree.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master

View file

@ -0,0 +1 @@
Unnamed repository; edit this file 'description' to name the repository.

View file

@ -0,0 +1,15 @@
#!/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
commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
:

View file

@ -0,0 +1,24 @@
#!/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
}

View file

@ -0,0 +1,174 @@
#!/usr/bin/perl
use strict;
use warnings;
use IPC::Open2;
# An example hook script to integrate Watchman
# (https://facebook.github.io/watchman/) with git to speed up detecting
# new and modified files.
#
# The hook is passed a version (currently 2) and last update token
# formatted as a string and outputs to stdout a new update token and
# all files that have been modified since the update token. Paths must
# be relative to the root of the working tree and separated by a single NUL.
#
# To enable this hook, rename this file to "query-watchman" and set
# 'git config core.fsmonitor .git/hooks/query-watchman'
#
my ($version, $last_update_token) = @ARGV;
# Uncomment for debugging
# print STDERR "$0 $version $last_update_token\n";
# Check the hook interface version
if ($version ne 2) {
die "Unsupported query-fsmonitor hook version '$version'.\n" .
"Falling back to scanning...\n";
}
my $git_work_tree = get_working_dir();
my $retry = 1;
my $json_pkg;
eval {
require JSON::XS;
$json_pkg = "JSON::XS";
1;
} or do {
require JSON::PP;
$json_pkg = "JSON::PP";
};
launch_watchman();
sub launch_watchman {
my $o = watchman_query();
if (is_work_tree_watched($o)) {
output_result($o->{clock}, @{$o->{files}});
}
}
sub output_result {
my ($clockid, @files) = @_;
# Uncomment for debugging watchman output
# open (my $fh, ">", ".git/watchman-output.out");
# binmode $fh, ":utf8";
# print $fh "$clockid\n@files\n";
# close $fh;
binmode STDOUT, ":utf8";
print $clockid;
print "\0";
local $, = "\0";
print @files;
}
sub watchman_clock {
my $response = qx/watchman clock "$git_work_tree"/;
die "Failed to get clock id on '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0;
return $json_pkg->new->utf8->decode($response);
}
sub watchman_query {
my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
or die "open2() failed: $!\n" .
"Falling back to scanning...\n";
# In the query expression below we're asking for names of files that
# changed since $last_update_token but not from the .git folder.
#
# To accomplish this, we're using the "since" generator to use the
# recency index to select candidate nodes and "fields" to limit the
# output to file names only. Then we're using the "expression" term to
# further constrain the results.
my $last_update_line = "";
if (substr($last_update_token, 0, 1) eq "c") {
$last_update_token = "\"$last_update_token\"";
$last_update_line = qq[\n"since": $last_update_token,];
}
my $query = <<" END";
["query", "$git_work_tree", {$last_update_line
"fields": ["name"],
"expression": ["not", ["dirname", ".git"]]
}]
END
# Uncomment for debugging the watchman query
# open (my $fh, ">", ".git/watchman-query.json");
# print $fh $query;
# close $fh;
print CHLD_IN $query;
close CHLD_IN;
my $response = do {local $/; <CHLD_OUT>};
# Uncomment for debugging the watch response
# open ($fh, ">", ".git/watchman-response.json");
# print $fh $response;
# close $fh;
die "Watchman: command returned no output.\n" .
"Falling back to scanning...\n" if $response eq "";
die "Watchman: command returned invalid output: $response\n" .
"Falling back to scanning...\n" unless $response =~ /^\{/;
return $json_pkg->new->utf8->decode($response);
}
sub is_work_tree_watched {
my ($output) = @_;
my $error = $output->{error};
if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) {
$retry--;
my $response = qx/watchman watch "$git_work_tree"/;
die "Failed to make watchman watch '$git_work_tree'.\n" .
"Falling back to scanning...\n" if $? != 0;
$output = $json_pkg->new->utf8->decode($response);
$error = $output->{error};
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
# Uncomment for debugging watchman output
# open (my $fh, ">", ".git/watchman-output.out");
# close $fh;
# Watchman will always return all files on the first query so
# return the fast "everything is dirty" flag to git and do the
# Watchman query just to get it over with now so we won't pay
# the cost in git to look up each individual file.
my $o = watchman_clock();
$error = $output->{error};
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
output_result($o->{clock}, ("/"));
$last_update_token = $o->{clock};
eval { launch_watchman() };
return 0;
}
die "Watchman: $error.\n" .
"Falling back to scanning...\n" if $error;
return 1;
}
sub get_working_dir {
my $working_dir;
if ($^O =~ 'msys' || $^O =~ 'cygwin') {
$working_dir = Win32::GetCwd();
$working_dir =~ tr/\\/\//;
} else {
require Cwd;
$working_dir = Cwd::cwd();
}
return $working_dir;
}

View file

@ -0,0 +1,8 @@
#!/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

View file

@ -0,0 +1,14 @@
#!/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
precommit="$(git rev-parse --git-path hooks/pre-commit)"
test -x "$precommit" && exec "$precommit" ${1+"$@"}
:

View file

@ -0,0 +1,49 @@
#!/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=$(git hash-object -t tree /dev/null)
fi
# If you want to allow non-ASCII filenames set this variable to true.
allownonascii=$(git config --type=bool 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-index --cached --name-only --diff-filter=A -z $against |
LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
then
cat <<\EOF
Error: Attempt to add a non-ASCII file name.
This can cause problems if you want to work with people on other platforms.
To be portable it is advisable to rename the file.
If you know what you are doing you can disable this check using:
git config hooks.allownonascii true
EOF
exit 1
fi
# If there are whitespace errors, print the offending file names and fail.
exec git diff-index --check --cached $against --

View file

@ -0,0 +1,13 @@
#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git merge" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message to
# stderr if it wants to stop the merge commit.
#
# To enable this hook, rename this file to "pre-merge-commit".
. git-sh-setup
test -x "$GIT_DIR/hooks/pre-commit" &&
exec "$GIT_DIR/hooks/pre-commit"
:

View file

@ -0,0 +1,53 @@
#!/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:
#
# <local ref> <local oid> <remote ref> <remote oid>
#
# This sample shows how to prevent push of commits where the log message starts
# with "WIP" (work in progress).
remote="$1"
url="$2"
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
while read local_ref local_oid remote_ref remote_oid
do
if test "$local_oid" = "$zero"
then
# Handle delete
:
else
if test "$remote_oid" = "$zero"
then
# New branch, examine all commits
range="$local_oid"
else
# Update to existing branch, examine new commits
range="$remote_oid..$local_oid"
fi
# Check for WIP commit
commit=$(git rev-list -n 1 --grep '^WIP' "$range")
if test -n "$commit"
then
echo >&2 "Found WIP commit in $local_ref, not pushing"
exit 1
fi
fi
done
exit 0

View file

@ -0,0 +1,169 @@
#!/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

View file

@ -0,0 +1,24 @@
#!/bin/sh
#
# An example hook script to make use of push options.
# The example simply echoes all push options that start with 'echoback='
# and rejects all pushes when the "reject" push option is used.
#
# To enable this hook, rename this file to "pre-receive".
if test -n "$GIT_PUSH_OPTION_COUNT"
then
i=0
while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
do
eval "value=\$GIT_PUSH_OPTION_$i"
case "$value" in
echoback=*)
echo "echo from the pre-receive-hook: ${value#*=}" >&2
;;
reject)
exit 1
esac
i=$((i + 1))
done
fi

View file

@ -0,0 +1,42 @@
#!/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 one removes the
# "# Please enter the commit message..." help message.
#
# 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.
COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3
/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
# case "$COMMIT_SOURCE,$SHA1" in
# ,|template,)
# /usr/bin/perl -i.bak -pe '
# print "\n" . `git diff --cached --name-status -r`
# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
# *) ;;
# esac
# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
# if test -z "$COMMIT_SOURCE"
# then
# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
# fi

View file

@ -0,0 +1,78 @@
#!/bin/sh
# An example hook script to update a checked-out tree on a git push.
#
# This hook is invoked by git-receive-pack(1) when it reacts to git
# push and updates reference(s) in its repository, and when the push
# tries to update the branch that is currently checked out and the
# receive.denyCurrentBranch configuration variable is set to
# updateInstead.
#
# By default, such a push is refused if the working tree and the index
# of the remote repository has any difference from the currently
# checked out commit; when both the working tree and the index match
# the current commit, they are updated to match the newly pushed tip
# of the branch. This hook is to be used to override the default
# behaviour; however the code below reimplements the default behaviour
# as a starting point for convenient modification.
#
# The hook receives the commit with which the tip of the current
# branch is going to be updated:
commit=$1
# It can exit with a non-zero status to refuse the push (when it does
# so, it must not modify the index or the working tree).
die () {
echo >&2 "$*"
exit 1
}
# Or it can make any necessary changes to the working tree and to the
# index to bring them to the desired state when the tip of the current
# branch is updated to the new commit, and exit with a zero status.
#
# For example, the hook can simply run git read-tree -u -m HEAD "$1"
# in order to emulate git fetch that is run in the reverse direction
# with git push, as the two-tree form of git read-tree -u -m is
# essentially the same as git switch or git checkout that switches
# branches while keeping the local changes in the working tree that do
# not interfere with the difference between the branches.
# The below is a more-or-less exact translation to shell of the C code
# for the default behaviour for git's push-to-checkout hook defined in
# the push_to_deploy() function in builtin/receive-pack.c.
#
# Note that the hook will be executed from the repository directory,
# not from the working tree, so if you want to perform operations on
# the working tree, you will have to adapt your code accordingly, e.g.
# by adding "cd .." or using relative paths.
if ! git update-index -q --ignore-submodules --refresh
then
die "Up-to-date check failed"
fi
if ! git diff-files --quiet --ignore-submodules --
then
die "Working directory has unstaged changes"
fi
# This is a rough translation of:
#
# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX
if git cat-file -e HEAD 2>/dev/null
then
head=HEAD
else
head=$(git hash-object -t tree --stdin </dev/null)
fi
if ! git diff-index --quiet --cached --ignore-submodules $head --
then
die "Working directory has staged changes"
fi
if ! git read-tree -u -m "$commit"
then
die "Could not update working tree to new HEAD"
fi

View file

@ -0,0 +1,77 @@
#!/bin/sh
# An example hook script to validate a patch (and/or patch series) before
# sending it via email.
#
# The hook should exit with non-zero status after issuing an appropriate
# message if it wants to prevent the email(s) from being sent.
#
# To enable this hook, rename this file to "sendemail-validate".
#
# By default, it will only check that the patch(es) can be applied on top of
# the default upstream branch without conflicts in a secondary worktree. After
# validation (successful or not) of the last patch of a series, the worktree
# will be deleted.
#
# The following config variables can be set to change the default remote and
# remote ref that are used to apply the patches against:
#
# sendemail.validateRemote (default: origin)
# sendemail.validateRemoteRef (default: HEAD)
#
# Replace the TODO placeholders with appropriate checks according to your
# needs.
validate_cover_letter () {
file="$1"
# TODO: Replace with appropriate checks (e.g. spell checking).
true
}
validate_patch () {
file="$1"
# Ensure that the patch applies without conflicts.
git am -3 "$file" || return
# TODO: Replace with appropriate checks for this patch
# (e.g. checkpatch.pl).
true
}
validate_series () {
# TODO: Replace with appropriate checks for the whole series
# (e.g. quick build, coding style checks, etc.).
true
}
# main -------------------------------------------------------------------------
if test "$GIT_SENDEMAIL_FILE_COUNTER" = 1
then
remote=$(git config --default origin --get sendemail.validateRemote) &&
ref=$(git config --default HEAD --get sendemail.validateRemoteRef) &&
worktree=$(mktemp --tmpdir -d sendemail-validate.XXXXXXX) &&
git worktree add -fd --checkout "$worktree" "refs/remotes/$remote/$ref" &&
git config --replace-all sendemail.validateWorktree "$worktree"
else
worktree=$(git config --get sendemail.validateWorktree)
fi || {
echo "sendemail-validate: error: failed to prepare worktree" >&2
exit 1
}
unset GIT_DIR GIT_WORK_TREE
cd "$worktree" &&
if grep -q "^diff --git " "$1"
then
validate_patch "$1"
else
validate_cover_letter "$1"
fi &&
if test "$GIT_SENDEMAIL_FILE_COUNTER" = "$GIT_SENDEMAIL_FILE_TOTAL"
then
git config --unset-all sendemail.validateWorktree &&
trap 'git worktree remove -ff "$worktree"' EXIT &&
validate_series
fi

View file

@ -0,0 +1,128 @@
#!/bin/sh
#
# An example hook script to block 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 <ref> <oldrev> <newrev>)" >&2
exit 1
fi
if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
echo "usage: $0 <ref> <oldrev> <newrev>" >&2
exit 1
fi
# --- Config
allowunannotated=$(git config --type=bool hooks.allowunannotated)
allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch)
denycreatebranch=$(git config --type=bool hooks.denycreatebranch)
allowdeletetag=$(git config --type=bool hooks.allowdeletetag)
allowmodifytag=$(git config --type=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=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
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

Binary file not shown.

View file

@ -0,0 +1,6 @@
# 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]
# *~

View file

@ -0,0 +1,3 @@
0000000000000000000000000000000000000000 f3a4d8eaa8ac10305e3d53851c976756ea9dc8e8 Philipp <philipp@boehm.sh> 1709476240 +0100 clone: from https://github.com/scrooloose/nerdtree.git
f3a4d8eaa8ac10305e3d53851c976756ea9dc8e8 f3a4d8eaa8ac10305e3d53851c976756ea9dc8e8 Philipp <philipp@boehm.sh> 1709476241 +0100 checkout: moving from master to master
f3a4d8eaa8ac10305e3d53851c976756ea9dc8e8 f3a4d8eaa8ac10305e3d53851c976756ea9dc8e8 Philipp <philipp@boehm.sh> 1709476247 +0100 checkout: moving from master to master

View file

@ -0,0 +1 @@
0000000000000000000000000000000000000000 f3a4d8eaa8ac10305e3d53851c976756ea9dc8e8 Philipp <philipp@boehm.sh> 1709476240 +0100 clone: from https://github.com/scrooloose/nerdtree.git

View file

@ -0,0 +1 @@
0000000000000000000000000000000000000000 f3a4d8eaa8ac10305e3d53851c976756ea9dc8e8 Philipp <philipp@boehm.sh> 1709476240 +0100 clone: from https://github.com/scrooloose/nerdtree.git

View file

@ -0,0 +1,202 @@
# pack-refs with: peeled fully-peeled sorted
f3a4d8eaa8ac10305e3d53851c976756ea9dc8e8 refs/remotes/origin/master
a856622f0cc38223b5147531394829a8456ec566 refs/tags/2.10.0
95ee07c9d377c4e844d95e5272ea0152323b96e1 refs/tags/2.10.0rc1
e6d2f12bf68a55f68ec9d99d467042fc799f677d refs/tags/2.11.0
3cb3227d56959cca112f20973b41327213e3ba5a refs/tags/2.12.0
0620b91efa4041288dc69325c53b3d98e8478536 refs/tags/2.13.0
2ca4573b016a150bdb25e6a81062489e10f59463 refs/tags/2.14.0
5fcdd03f1233305be3277dc72af3d0d1e3a41c9f refs/tags/2.14.1
090791407e0b451838ad4f2eff086945f81a9d54 refs/tags/2.14.2
9aba1c17f6a2803a8cc36ffea3d5ca2f63f544b7 refs/tags/2.14.3
6a77424c253b1e2ec0d8f7d1f00a21b2fb27cb07 refs/tags/2.7.0
a5bc034851fabe38e53527b569860fdc8a4a8cce refs/tags/2.7.1
c008fb3983775f553b06db8f806757677b759113 refs/tags/2.8.0
80e0bca4dc7f5ca80712f501d662efddc83755a7 refs/tags/2.9.0
6f2401346381ccae42a818cb16ac1c52ee6728e2 refs/tags/3.0.0
efe03d6988f6835c857ff27c99ebbe6d158a0c78 refs/tags/3.0.1
bdfac3e25cd37ce757703c569f5abbcd70a2da83 refs/tags/3.1.0
e7ebee3084cfe97b2084782f004a723f83be243f refs/tags/3.1.1
241f2e9dfe866010889c9c190278b95080d944ed refs/tags/4.0.0
153041ac939502746e5a24468910eb7214a3f593 refs/tags/4.1.0
205367ab3f46dcc88b6ebb819a276e793a21e995 refs/tags/4.2.0
4dada8c04fba25e788ea1836c82f9c18c1166b44 refs/tags/5.0.0
94f7de6a7a83cedf64467de027546213b3d40d4e refs/tags/5.1.0
^33fe2fdf16a95c12e8284364c780ed405dbaad17
7bb8fb8b07520c3a5f815b3951582e0eb0b5b2d4 refs/tags/5.1.1
^347a58b0b0276958ccc5b2e7cf8edd9c9923906c
42214e98892f8671b72a54c57b49e28cd7190112 refs/tags/5.1.2
^2cbc76bbfd807f022031f8c789f66d105d0a5d0b
07a7563ef4345b26fdc32b89b44c7df5831bcbba refs/tags/5.1.3
^1c803b36f632c151c755456b68101153f407ec5e
2f9ecfcfc3e2f4725a5ca724acb834a3ffe97055 refs/tags/5.2.0
^cce6fb373f368f13e35482b3f1a8f1edc47fc650
b91ce18ad5865338ac5996bdb3b4aad0635ce874 refs/tags/5.2.1
^ca16df25fa1d6bc8505aadbc19f8cd95afa9a58d
a968da11b20fcacb7c037a2d45ba4fd77c0f4163 refs/tags/5.2.2
^06c9d9c963d0ffbbf3e49b4fe5dd209df2636db6
21447edfdcbae61d78282e1b46460c8fc53c2b9a refs/tags/5.2.3
^62b78de3674de8e3d294ab2a5e6ce98d1ad35f20
2f7bdcb6b4260d0f19d7efd2d1cd4819deb9cbf6 refs/tags/5.2.4
^89a1a4355bd9572d0f5b3d23733c243c6e7b05c2
2f7a8b865b388a699135ca8edb60d56a735b8fdc refs/tags/5.2.5
^3b1a850b85a1b160817c35872bf1978f112958bf
6b5deca3b1de1494c1618d4b8040f30eed85878e refs/tags/5.2.6
^2f0d48d632dc303095084b382cb665ae57ad2e63
3e8eceaed6a990c27bd7a2945c380218c56d316f refs/tags/5.2.7
^4ac07f52a312a24d82deba715ee489e6c5b00259
cdaede90eaa40c7a38195653d1c17d7718e2b589 refs/tags/5.2.8
^63c59208c1f9eef7068a944f5c3033bd1a348b97
067c1a06bb916e2fad1c79d9dd66d34bbadbc7b3 refs/tags/5.2.9
^ae1c0004ec3780c18c8844181138b358333e4730
8066781c78e39c85f8c46e19a3e713fb31d94f1e refs/tags/5.3.0
^c4a7ca084efab73ec107b4ac85d37a89eee88d60
93f1ee6d0746bc8b4b179d0879dc8388f5566d29 refs/tags/5.3.1
^3d508aedce35e1d952d3ce92378ad27ea5960fa6
83336cfdd9acf05fa0e786cac72da0242593acac refs/tags/5.3.2
^60ec10b477eefc81eeafafa2a8c1b00046ee48fb
8a3d65ef228f0b09abbf62e74440df9e4c41072b refs/tags/5.3.3
^9193962ad88f15d9f426c3cfb8a274ff1dd0c5b2
20df7cecb99adbb43484dcf7fa9ae64a5b07d552 refs/tags/6.0.0
^bd744eab8df5730db167a26486bc9afde46c4046
f59875073d36872a49d66e681a90a5320baebf70 refs/tags/6.0.1
^496b61ead1acd80128164cce5c2ff8e89c42ded2
363ea1c8330395240ae33a85976b1e22151ff893 refs/tags/6.1.0
^6318406f6606481b5e3a42a5754096063d996587
f9ffac9913de4c740e8b3014e151fd2e7041b526 refs/tags/6.1.1
^2d639b70e73ecf3f62884a578fe5e5937e6d8a92
675fc4bde79354311e8c2ff250aba853ed0b5d84 refs/tags/6.1.2
^4fe24d31569d365712b5fa95ac2688a68528b723
81f4b8289bd0947e69d157326216b4e1c230f7e6 refs/tags/6.1.3
^53eef21ad6a21806329a2571159f2ff8e5a3160b
3e53ef63c4571699230ce1baa8436499f712759c refs/tags/6.1.4
^42455176896560bf8cf7fc8457232131231b358f
f90780c424b192649cadf479f499b11a418518d6 refs/tags/6.10.0
^b134f6518b902c7e0482ae770b804fd47c2d2426
6e1574e33f20e2494a6487782217aad339406c45 refs/tags/6.10.1
^628098fff1d75ad104934009b4ce60c4e23204ec
7353747291facd7a5740ba4fa4f4e98e8f5e52ad refs/tags/6.10.10
^de0e2edeac61039d8c9fb01a43b0305baad0a28b
c32ffeabf271a7e9136516902125f71417847a7f refs/tags/6.10.11
^0e71462f90fb4bd09121eeba829512cc24ab5c97
d4714a04697969016171fc09b9557326abccc371 refs/tags/6.10.12
^e5f24e2b8bc09ce6fc3488215d69ddb7cadc5f8d
9d3b0305dcee96146da2347aac0780c54253bbdb refs/tags/6.10.13
^aa7e97b7ff2ace7ed434b09bd33f3ad449d294e9
80d93806013d20f2e626d43e9aefa7dab1570625 refs/tags/6.10.14
^7eee457efae1bf9b96d7a266ac097639720a68fe
5feb0e6711d8cf6491fe5aa64e4112d20fcc346a refs/tags/6.10.15
^e731b845590017493224dfcb7403c2332105b700
79b4805057064c7752d115fff882ded29cadf3bb refs/tags/6.10.16
^9310f91476a94ee9c2f3a587171893743a343e26
40d6f5010448677494f1793d16c84260ba8c0f01 refs/tags/6.10.2
^c8be9458dddb986dc17a3f5a00aaf29cd60b1b5f
7d85b5c1271be2a5e3e3eda2e18c7aa3deef2354 refs/tags/6.10.3
^1b19089917cc3e0a81d3294fead2424c419d545c
a07d10ccc744fbfeb0bcee4126f81fab177265f9 refs/tags/6.10.4
^d3becd11492343761a13419abc43720aa19425af
f9a119e67afcf0a0a26b6bbac4ffa94b7a005e85 refs/tags/6.10.5
^593c16add35a5461f189b8189abe219f7bbbd604
92df29c3611c614e223e64932cf37dbb96c4744f refs/tags/6.10.6
^3a9d533f3de86a43b69f6c47d3394c0d866fdb08
50710f4e2427af8ed24f5d825c43064cb8a9856a refs/tags/6.10.7
^a1fa4a33bf16b6661e502080fc97788bb98afd35
c7a659768169c75f11faa7963afb9e2668e5a4dc refs/tags/6.10.8
^f63fb6984f9cd07cf723c3e2e20f6ccc0aad48c2
d5dbc13cc6bc6e5beeeda608f1c17d16e3539323 refs/tags/6.10.9
^81f3eaba295b3fceb2d032db57e5eae99ae480f8
d0b69edfc58f93aafb80f1c125efab60bfaac902 refs/tags/6.2.0
^371feb7e540afc1d25c3369d4157358d21f51681
e64ea508df4b9c0b2102e017050b95630f66f8c2 refs/tags/6.2.1
^8d9b8dae67c5a6affbfd0304e0949ce9e79065ea
93754f6e3335046d55976d63aa352b30931a4b59 refs/tags/6.3.0
^82b1649f2e1c79ff17730fe0a3750bbec203dd29
8716328d10ba5f19cafcc8eab1b1395f4bef555d refs/tags/6.4.0
^a7886fb6c468afbfabb8b8daf300022f1cee2401
2d1c2d190597075f42c1046398d2213a34e16d0e refs/tags/6.4.1
^1ab85e33bef8763a618c505ee5a0611519f81e5a
3c6075e7876b4556dafc0cc3b935f5fe5fd2a7c4 refs/tags/6.4.2
^8a14891241e3468f9c13deaa6cf88aebe53b519f
35c1c9ff2796d7f12fe78947ee1d9050ab4d2247 refs/tags/6.4.3
^ee79ecfb67e4403e54ea59c175ca4d39544395e8
00f8b75f1d081e33343c8bb5cb516c55fa8976f1 refs/tags/6.4.4
^901aba632bab6d984a5f651dd859bae8a180e30e
840da858ad4d375f387dcac1b408a2b0ca3ea345 refs/tags/6.4.5
^26740d1157dc1befe2a088052e10cf00436a5003
9189e7f7b14abf6dda205daf9ebe3bac2628b833 refs/tags/6.4.6
^f7b09634ba2305d19cd4c73988452698c93f74d3
06c4d737c3e1db6b6a9d291a7b2fe228dec5f4e0 refs/tags/6.5.0
^8c48845d11adc4c9b07fc727725ed68be5d3177f
93672be757dab4a7f38a35a555362922be61b2c9 refs/tags/6.6.0
^85103aa60732f50319febebdd10d954bf9782cfb
b7c3b6862ead988bbd8c2cf5af4ab03b601c1d88 refs/tags/6.6.1
^07612557ebb4118ef4a337faa7033d0270773c71
ef5077cae060f77691e688d29f58a96da4e948b5 refs/tags/6.7.0
^e67324fdea7a192c7ce1b4c6b3c3b9f82f11eee7
5f3e419f094366fe0c63933a24b35e017323cfb6 refs/tags/6.7.1
^495b4e781ad83d9290f1ba0838217f6a4255768a
3ddd87ae50320fb53ff489b6ecea938a504afc5b refs/tags/6.7.10
^4cc6097ecb18b52c023a9487c2cf3220290ba0a1
15fc14e29fe9b9f2f9c5d252855828dd41274003 refs/tags/6.7.11
^e2670f0d190c9c0593ad7ac7b5708a4c198e423d
7b78c7416021063bdaf3df2cbb3f00e1e8ce7299 refs/tags/6.7.12
^10eaa3a2f42d395a9a6dca14957a5862e709651b
5b7585f5b3b36a1e1fb4b0dd00340e52b55aa5ac refs/tags/6.7.13
^484dc84b47efe7163803451771e189347fe99eed
5b27ebf81ad01b3eba8e727a81146a77e29c948a refs/tags/6.7.14
^f63132cade94e0937e51d55e4f9ddd33bec69e4e
3ba280d1a85dfdbd892fcfddbe6da9ad55b8497c refs/tags/6.7.15
^052b1f00a0ef14b0019f4d0cda9906ba93f9a0d6
b46b62d9c8e58d368e5437479eb4395ecb646968 refs/tags/6.7.2
^343508e9fd981928f1e830c71c9d8b2a54edb7dd
6841bf2ea087b7c16d8b6207f56c7e99acc8044c refs/tags/6.7.3
^832bbaa729da2d0e4ccf0e0e45388e0c1ece9ce7
16c5ff8b90f4c6e3d456804b9c647db07e58167c refs/tags/6.7.4
^f767dd34a0bda0a6db8efa43257c90981947f0ab
7c34c739dc4908ca48427fbdb88c883d4e8ea069 refs/tags/6.7.5
^2d7cb043d475ffe7620a8d2d2cd5de7a1f0c6aa7
42ad6f5c41d5abe3f1607453af137f1ca43baab0 refs/tags/6.7.6
^0257d64248e43f3ff70e9a1fce3b2aa10ba57bb9
83448d08d752c6942572d7b72628dd48b2480b31 refs/tags/6.7.7
^29a321d061032df5b2ec347b6b4b778f665305a6
6190d3be5c306f76d1ace0bd4552341eb21b05d7 refs/tags/6.7.8
^5e77fb2fef6720eabbfe957cf3a47f3f0a218e05
55b425b5b7ab9e353dd75667fcef033f92d0d7a3 refs/tags/6.7.9
^30ad6da98482d8aee36d90c49711a8476b5e240a
7cc212620f2c916f3f14fd616dd993f28305b485 refs/tags/6.8.0
^d48ab70721d4f688ed34bd5939e2d6f4c89548c5
163566c47a3388637272ecc53df7cd84e335c158 refs/tags/6.9.0
^6571452857fd1b14f15a3886f9fffc113c36bbac
b2dd0a608ec070e663ae1626489324d47744134f refs/tags/6.9.1
^96e247ba7488af1e71d0facfc68aba37e750298c
6b9b8c74ae92cca94e0a2f56dcfcae723a338a09 refs/tags/6.9.10
^14af89743ac1c31ff9bb43682025eda50333a7d5
ad4ae1356bdd90d265ed145fe3d7c4255ace7a45 refs/tags/6.9.11
^2406c456ee73d32289c2c304ecd8dd1735bc2f2c
c388a97ddee664fb1b72c469cccb46ab605e830f refs/tags/6.9.12
^7099f638edd3eda5cd5687b4e13d342bb7f9949d
daa8fca17da9393ae8f84636c7a1d32ef73df9cc refs/tags/6.9.2
^aa37cb40dae26f21a2e343d17ac9f4be9d8bec37
7f7d6cdbd4e0751f9a4271a9d35b4ddf46050600 refs/tags/6.9.3
^f8aa749985754091e980c1dc93ec3206ee3dec1f
a4a0ef71405f0bfd00d4012a4a7f793be911e9f8 refs/tags/6.9.4
^e571d3e95b610fc4435e01524bb594d642f5db79
c2568d4785aa87d25411810d8bc9c930f0734c38 refs/tags/6.9.5
^4a32dd0be35621dc8d4b73836f58434ff3e73124
edc8c53114b001a04f068c0dc4687972bca8b92d refs/tags/6.9.6
^373a4b28e4444a5ec88ed3a81eb09073e8c92fc0
5e2d5c26172acdf65357f3ba5280178db26cadfa refs/tags/6.9.7
^6b5d70e5bf307bd84fec90ba77fa661036ff0361
fa541002b941f118b48b84b42413c3c8fc295577 refs/tags/6.9.8
^23000acd7f9744667abc840dd10dd07a16e18fc6
7858027bbabc7f35679e9d0d82b56ba47d89099c refs/tags/6.9.9
^577ddc73f0a1d2fd6166ed3268ab8536111037e0
731d293578db594aa9af2edee5d0e17c852631f3 refs/tags/7.0.0
^b1f5bb60df2c78f926ca02bd555c17318e7311b2
9ec27d45a863aeb82fea56cebcb8a75a4e369fc9 refs/tags/7.0.1
0958a22a665da0042732ded1767d00412de3d0c1 refs/tags/7.1.0
^e5599272a95c362bede206ab2dc95bf6dde2b556
dff40fb919d48d15afda7204c3ab581a1ef8c2bc refs/tags/7.1.1
^bc606c43e2d8ef0987d6d3d1ec8c17360a2e29d5
e460d055348ce8d541d6015641f1f940f524b819 refs/tags/7.1.2
^f3a4d8eaa8ac10305e3d53851c976756ea9dc8e8

View file

@ -0,0 +1 @@
f3a4d8eaa8ac10305e3d53851c976756ea9dc8e8

View file

@ -0,0 +1 @@
ref: refs/remotes/origin/master

View file

@ -0,0 +1,111 @@
0257d64248e43f3ff70e9a1fce3b2aa10ba57bb9
052b1f00a0ef14b0019f4d0cda9906ba93f9a0d6
0620b91efa4041288dc69325c53b3d98e8478536
06c9d9c963d0ffbbf3e49b4fe5dd209df2636db6
07612557ebb4118ef4a337faa7033d0270773c71
090791407e0b451838ad4f2eff086945f81a9d54
0e71462f90fb4bd09121eeba829512cc24ab5c97
10eaa3a2f42d395a9a6dca14957a5862e709651b
14af89743ac1c31ff9bb43682025eda50333a7d5
153041ac939502746e5a24468910eb7214a3f593
1ab85e33bef8763a618c505ee5a0611519f81e5a
1b19089917cc3e0a81d3294fead2424c419d545c
1c803b36f632c151c755456b68101153f407ec5e
205367ab3f46dcc88b6ebb819a276e793a21e995
23000acd7f9744667abc840dd10dd07a16e18fc6
2406c456ee73d32289c2c304ecd8dd1735bc2f2c
241f2e9dfe866010889c9c190278b95080d944ed
26740d1157dc1befe2a088052e10cf00436a5003
29a321d061032df5b2ec347b6b4b778f665305a6
2ca4573b016a150bdb25e6a81062489e10f59463
2cbc76bbfd807f022031f8c789f66d105d0a5d0b
2d639b70e73ecf3f62884a578fe5e5937e6d8a92
2d7cb043d475ffe7620a8d2d2cd5de7a1f0c6aa7
2f0d48d632dc303095084b382cb665ae57ad2e63
30ad6da98482d8aee36d90c49711a8476b5e240a
33fe2fdf16a95c12e8284364c780ed405dbaad17
343508e9fd981928f1e830c71c9d8b2a54edb7dd
347a58b0b0276958ccc5b2e7cf8edd9c9923906c
371feb7e540afc1d25c3369d4157358d21f51681
373a4b28e4444a5ec88ed3a81eb09073e8c92fc0
3a9d533f3de86a43b69f6c47d3394c0d866fdb08
3b1a850b85a1b160817c35872bf1978f112958bf
3cb3227d56959cca112f20973b41327213e3ba5a
3d508aedce35e1d952d3ce92378ad27ea5960fa6
42455176896560bf8cf7fc8457232131231b358f
484dc84b47efe7163803451771e189347fe99eed
495b4e781ad83d9290f1ba0838217f6a4255768a
496b61ead1acd80128164cce5c2ff8e89c42ded2
4a32dd0be35621dc8d4b73836f58434ff3e73124
4ac07f52a312a24d82deba715ee489e6c5b00259
4cc6097ecb18b52c023a9487c2cf3220290ba0a1
4dada8c04fba25e788ea1836c82f9c18c1166b44
4fe24d31569d365712b5fa95ac2688a68528b723
53eef21ad6a21806329a2571159f2ff8e5a3160b
577ddc73f0a1d2fd6166ed3268ab8536111037e0
593c16add35a5461f189b8189abe219f7bbbd604
5e77fb2fef6720eabbfe957cf3a47f3f0a218e05
5fcdd03f1233305be3277dc72af3d0d1e3a41c9f
60ec10b477eefc81eeafafa2a8c1b00046ee48fb
628098fff1d75ad104934009b4ce60c4e23204ec
62b78de3674de8e3d294ab2a5e6ce98d1ad35f20
6318406f6606481b5e3a42a5754096063d996587
63c59208c1f9eef7068a944f5c3033bd1a348b97
6571452857fd1b14f15a3886f9fffc113c36bbac
6a77424c253b1e2ec0d8f7d1f00a21b2fb27cb07
6b5d70e5bf307bd84fec90ba77fa661036ff0361
6f2401346381ccae42a818cb16ac1c52ee6728e2
7099f638edd3eda5cd5687b4e13d342bb7f9949d
7eee457efae1bf9b96d7a266ac097639720a68fe
80e0bca4dc7f5ca80712f501d662efddc83755a7
81f3eaba295b3fceb2d032db57e5eae99ae480f8
82b1649f2e1c79ff17730fe0a3750bbec203dd29
832bbaa729da2d0e4ccf0e0e45388e0c1ece9ce7
85103aa60732f50319febebdd10d954bf9782cfb
89a1a4355bd9572d0f5b3d23733c243c6e7b05c2
8a14891241e3468f9c13deaa6cf88aebe53b519f
8c48845d11adc4c9b07fc727725ed68be5d3177f
8d9b8dae67c5a6affbfd0304e0949ce9e79065ea
901aba632bab6d984a5f651dd859bae8a180e30e
9193962ad88f15d9f426c3cfb8a274ff1dd0c5b2
9310f91476a94ee9c2f3a587171893743a343e26
95ee07c9d377c4e844d95e5272ea0152323b96e1
96e247ba7488af1e71d0facfc68aba37e750298c
9aba1c17f6a2803a8cc36ffea3d5ca2f63f544b7
9ec27d45a863aeb82fea56cebcb8a75a4e369fc9
a1fa4a33bf16b6661e502080fc97788bb98afd35
a5bc034851fabe38e53527b569860fdc8a4a8cce
a7886fb6c468afbfabb8b8daf300022f1cee2401
a856622f0cc38223b5147531394829a8456ec566
aa37cb40dae26f21a2e343d17ac9f4be9d8bec37
aa7e97b7ff2ace7ed434b09bd33f3ad449d294e9
ae1c0004ec3780c18c8844181138b358333e4730
b134f6518b902c7e0482ae770b804fd47c2d2426
b1f5bb60df2c78f926ca02bd555c17318e7311b2
bc606c43e2d8ef0987d6d3d1ec8c17360a2e29d5
bd744eab8df5730db167a26486bc9afde46c4046
bdfac3e25cd37ce757703c569f5abbcd70a2da83
c008fb3983775f553b06db8f806757677b759113
c4a7ca084efab73ec107b4ac85d37a89eee88d60
c8be9458dddb986dc17a3f5a00aaf29cd60b1b5f
ca16df25fa1d6bc8505aadbc19f8cd95afa9a58d
cce6fb373f368f13e35482b3f1a8f1edc47fc650
d3becd11492343761a13419abc43720aa19425af
d48ab70721d4f688ed34bd5939e2d6f4c89548c5
de0e2edeac61039d8c9fb01a43b0305baad0a28b
e2670f0d190c9c0593ad7ac7b5708a4c198e423d
e5599272a95c362bede206ab2dc95bf6dde2b556
e571d3e95b610fc4435e01524bb594d642f5db79
e5f24e2b8bc09ce6fc3488215d69ddb7cadc5f8d
e67324fdea7a192c7ce1b4c6b3c3b9f82f11eee7
e6d2f12bf68a55f68ec9d99d467042fc799f677d
e731b845590017493224dfcb7403c2332105b700
e7ebee3084cfe97b2084782f004a723f83be243f
ee79ecfb67e4403e54ea59c175ca4d39544395e8
efe03d6988f6835c857ff27c99ebbe6d158a0c78
f3a4d8eaa8ac10305e3d53851c976756ea9dc8e8
f63132cade94e0937e51d55e4f9ddd33bec69e4e
f63fb6984f9cd07cf723c3e2e20f6ccc0aad48c2
f767dd34a0bda0a6db8efa43257c90981947f0ab
f7b09634ba2305d19cd4c73988452698c93f74d3
f8aa749985754091e980c1dc93ec3206ee3dec1f