diff --git a/.gitignore b/.gitignore index 141fc75..7c87114 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,10 @@ -.git -*.tar.xz -*.tar.gz -*.tar.zst -*.tar.zst.sig -*.rpm -pkg -src - +*/*.git +*/*.tar.xz +*/*.tar.gz +*/*.tar.zst +*/*.tar.zst.sig +*/*.pkg.tar.zst +*/*.pkg.tar.zst.sig +*/*.rpm +*/pkg +*/src diff --git a/vaultwarden/.SRCINFO b/vaultwarden/.SRCINFO index e16e39f..936fd02 100644 --- a/vaultwarden/.SRCINFO +++ b/vaultwarden/.SRCINFO @@ -1,6 +1,6 @@ pkgbase = vaultwarden pkgdesc = Unofficial Bitwarden compatible server written in Rust - pkgver = 1.30.1 + pkgver = 1.30.3 pkgrel = 1 url = https://github.com/dani-garcia/vaultwarden install = vaultwarden.install @@ -19,7 +19,7 @@ pkgbase = vaultwarden replaces = bitwarden_rs options = !lto backup = etc/vaultwarden.env - source = vaultwarden::git+https://github.com/dani-garcia/vaultwarden#commit=48836501bf348386d9bb1378fb56db33c19d3732 + source = vaultwarden::git+https://github.com/dani-garcia/vaultwarden#commit=4438da39f9c9aa9d83d1dddbf06616ad287f70eb source = systemd.service source = sysusers.conf source = tmpfiles.conf diff --git a/vaultwarden/PKGBUILD b/vaultwarden/PKGBUILD index 3e76e6f..138489b 100644 --- a/vaultwarden/PKGBUILD +++ b/vaultwarden/PKGBUILD @@ -4,7 +4,7 @@ # Contributor: Timothée Ravier \).*$/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 +} diff --git a/vaultwarden/vaultwarden/hooks/fsmonitor-watchman.sample b/vaultwarden/vaultwarden/hooks/fsmonitor-watchman.sample new file mode 100755 index 0000000..23e856f --- /dev/null +++ b/vaultwarden/vaultwarden/hooks/fsmonitor-watchman.sample @@ -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 $/; }; + + # 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; +} diff --git a/vaultwarden/vaultwarden/hooks/post-update.sample b/vaultwarden/vaultwarden/hooks/post-update.sample new file mode 100755 index 0000000..ec17ec1 --- /dev/null +++ b/vaultwarden/vaultwarden/hooks/post-update.sample @@ -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 diff --git a/vaultwarden/vaultwarden/hooks/pre-applypatch.sample b/vaultwarden/vaultwarden/hooks/pre-applypatch.sample new file mode 100755 index 0000000..4142082 --- /dev/null +++ b/vaultwarden/vaultwarden/hooks/pre-applypatch.sample @@ -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+"$@"} +: diff --git a/vaultwarden/vaultwarden/hooks/pre-commit.sample b/vaultwarden/vaultwarden/hooks/pre-commit.sample new file mode 100755 index 0000000..e144712 --- /dev/null +++ b/vaultwarden/vaultwarden/hooks/pre-commit.sample @@ -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 --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 -- diff --git a/vaultwarden/vaultwarden/hooks/pre-merge-commit.sample b/vaultwarden/vaultwarden/hooks/pre-merge-commit.sample new file mode 100755 index 0000000..399eab1 --- /dev/null +++ b/vaultwarden/vaultwarden/hooks/pre-merge-commit.sample @@ -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" +: diff --git a/vaultwarden/vaultwarden/hooks/pre-push.sample b/vaultwarden/vaultwarden/hooks/pre-push.sample new file mode 100755 index 0000000..4ce688d --- /dev/null +++ b/vaultwarden/vaultwarden/hooks/pre-push.sample @@ -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: +# +# +# +# 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 &2 "Found WIP commit in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/vaultwarden/vaultwarden/hooks/pre-rebase.sample b/vaultwarden/vaultwarden/hooks/pre-rebase.sample new file mode 100755 index 0000000..6cbef5c --- /dev/null +++ b/vaultwarden/vaultwarden/hooks/pre-rebase.sample @@ -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 diff --git a/vaultwarden/vaultwarden/hooks/pre-receive.sample b/vaultwarden/vaultwarden/hooks/pre-receive.sample new file mode 100755 index 0000000..a1fd29e --- /dev/null +++ b/vaultwarden/vaultwarden/hooks/pre-receive.sample @@ -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 diff --git a/vaultwarden/vaultwarden/hooks/prepare-commit-msg.sample b/vaultwarden/vaultwarden/hooks/prepare-commit-msg.sample new file mode 100755 index 0000000..10fa14c --- /dev/null +++ b/vaultwarden/vaultwarden/hooks/prepare-commit-msg.sample @@ -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 diff --git a/vaultwarden/vaultwarden/hooks/push-to-checkout.sample b/vaultwarden/vaultwarden/hooks/push-to-checkout.sample new file mode 100755 index 0000000..af5a0c0 --- /dev/null +++ b/vaultwarden/vaultwarden/hooks/push-to-checkout.sample @@ -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 &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 diff --git a/vaultwarden/vaultwarden/hooks/update.sample b/vaultwarden/vaultwarden/hooks/update.sample new file mode 100755 index 0000000..c4d426b --- /dev/null +++ b/vaultwarden/vaultwarden/hooks/update.sample @@ -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 )" >&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 --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 &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 diff --git a/vaultwarden/vaultwarden/info/exclude b/vaultwarden/vaultwarden/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/vaultwarden/vaultwarden/info/exclude @@ -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] +# *~ diff --git a/vaultwarden/vaultwarden/objects/pack/pack-e58a88898de7a6860344330667e6e3b9bd128de1.idx b/vaultwarden/vaultwarden/objects/pack/pack-e58a88898de7a6860344330667e6e3b9bd128de1.idx new file mode 100644 index 0000000..e7bd8ad Binary files /dev/null and b/vaultwarden/vaultwarden/objects/pack/pack-e58a88898de7a6860344330667e6e3b9bd128de1.idx differ diff --git a/vaultwarden/vaultwarden/objects/pack/pack-e58a88898de7a6860344330667e6e3b9bd128de1.pack b/vaultwarden/vaultwarden/objects/pack/pack-e58a88898de7a6860344330667e6e3b9bd128de1.pack new file mode 100644 index 0000000..ce9ce91 Binary files /dev/null and b/vaultwarden/vaultwarden/objects/pack/pack-e58a88898de7a6860344330667e6e3b9bd128de1.pack differ diff --git a/vaultwarden/vaultwarden/objects/pack/pack-e58a88898de7a6860344330667e6e3b9bd128de1.rev b/vaultwarden/vaultwarden/objects/pack/pack-e58a88898de7a6860344330667e6e3b9bd128de1.rev new file mode 100644 index 0000000..f6ad734 Binary files /dev/null and b/vaultwarden/vaultwarden/objects/pack/pack-e58a88898de7a6860344330667e6e3b9bd128de1.rev differ diff --git a/vaultwarden/vaultwarden/packed-refs b/vaultwarden/vaultwarden/packed-refs new file mode 100644 index 0000000..0b7d297 --- /dev/null +++ b/vaultwarden/vaultwarden/packed-refs @@ -0,0 +1,925 @@ +# pack-refs with: peeled fully-peeled sorted +0b691fc6bd616a7aa83e3a7426492b924e9dbbc0 refs/heads/icons_dns +897bdf8343148ee4e4f1a937cbc501ad3f743b4a refs/heads/main +ae996b3f4030d538d603e16074eaede359ae1b9f refs/heads/update_jwt_private_key +49d080a97ebbf12a3f214a686c9d85b128c38bc6 refs/pull/1/head +4c3727b4a3a5bae04843a16fd676fc81b7f27cd4 refs/pull/1003/head +39c871efdb27b198698e521e408e5aabb60e9392 refs/pull/1004/head +a3149335571d47af810aff3665665f0eb5c9f168 refs/pull/1006/head +b6fde857a74b24cbc71631468b13656f01e370c7 refs/pull/1007/head +a447e4e7efba3089525dad45d8ee9f7fe2a2b1dc refs/pull/1009/head +39d1a097044c8262771eca2d0fb49cf6743bcf17 refs/pull/1010/head +b47cf97409acddffb71aa30f483b95fe9ba09ee4 refs/pull/1012/head +514ecea36b73e81b1674a621907b6dad3354a881 refs/pull/1014/head +967d2d78ec77921aba03fcd01769d166830c15cc refs/pull/1017/head +ac2723f898c45120ec023bbb2e0e66b26ad71a01 refs/pull/1018/head +afbf1db331d99ab1bbc9413e1e3e167be3e69728 refs/pull/1019/head +325691e58864f2419b340beea529ff8dc7e08c1d refs/pull/1020/head +24c914799dc9cb711b4def0c00e99943437c69fe refs/pull/1026/head +4c78c5a9c922db803172f1f74f30c70b960f8a84 refs/pull/1029/head +51450a0df96425721e49fbb08a9f8d2a5347d45f refs/pull/103/head +d073f06652c4b90dacfcefa4464cee06f97ab5f4 refs/pull/104/head +f9a73a9bbecbcc4ef858413c58081cfe92ecde45 refs/pull/1042/head +624791e09a41b6b1489db731256a7d73a880133d refs/pull/1044/head +888ff6a9732bf5c4766d36b189d88187b9b867e2 refs/pull/1046/head +d5f9b33f66c99103c0687f3adb08b1396d6dd1b7 refs/pull/1048/head +a28ebcb401be9a2b0c052d1db319a0c5d6622a3d refs/pull/1049/head +790146bfac9b315f11836390250c96339a2d14c2 refs/pull/1055/head +ceb3d0314d3f02cdb406ef6111429361ace938dd refs/pull/106/head +de70fbf88a762836bc7c97da9474870172b45221 refs/pull/1061/head +071a3b2a32e1d9cb31b3b2e38442fd33d6512639 refs/pull/1067/head +81e0e1b339ad79189ed4bc7bb9e500330ee82239 refs/pull/1069/head +d335f45e34e566bee01a6c754eea61bb3c17e016 refs/pull/107/head +c218c3481291277263964e12dae902598be5e8c5 refs/pull/1075/head +a846f6c610284ecfe8588d4685f4aaaec1d15127 refs/pull/1076/head +0e095a9fa4c8417ba308cbd0de974278654a65e1 refs/pull/108/head +b1a8542ad7520fe7e3f912eb5d068b55c75c91d8 refs/pull/1082/head +05b308b8b4f1bd25afa892e796acd3dc0d8700a0 refs/pull/1083/head +570d6c8bf97d6c554a9f5265c9cc9aa4e8482f24 refs/pull/1087/head +5247e0d77324c8c33a7d1b2e1a7aff3512918dab refs/pull/1089/head +b163aeb8caa2502ee3e6f8d62a0ac53d59bb15e3 refs/pull/109/head +6d9f03e84bf1dd8ea362dfffedadf051cd902098 refs/pull/1094/head +385c2227e79e7c84b49037620fc43daf99eb3169 refs/pull/1095/head +959283d33331453d2fa97778d362a3f3696e4002 refs/pull/1096/head +db0c45c172c7def1bb325c4c723f874ed1aaa0de refs/pull/1099/head +787172116d961bf5de93558a9e33e612e69f4d5c refs/pull/11/head +3bbdbb832c975d0c9b3e5573fe2bd5ea66b11015 refs/pull/1106/head +b9daa59e5d05f1050e6ba4199352953493a57dfb refs/pull/1108/head +74e2ca81ae5c1a5017ce2f5fc5811611ff71d8b4 refs/pull/111/head +d9684bef6be88517621cf50f0f81d5709ea199d2 refs/pull/1111/head +c05dc50f53b3beb47f467ff00013754bff8a04b7 refs/pull/1112/head +175d647e47fbd9abec4134c708199ba8aa1ec682 refs/pull/1115/head +6b5fa201aa155bf3d97562734445608b00f468aa refs/pull/1116/head +87393409f9d173321090acd5886c80adf44a0983 refs/pull/1119/head +260ffee093b8c7bea084a338ec8abb4544d0086d refs/pull/1124/head +4c3b328aca359ebf6211f53509c15b6c94d70e3f refs/pull/1125/head +844cf70345733fbcf2bd0a15cc45aa0040b7638d refs/pull/1135/head +c877583979ab0bd76c135b1d88d58298bb9e3680 refs/pull/1137/head +0eee907c883a4e219816253cc86a0eac233c0c57 refs/pull/1140/head +9a478216424733b731ef23924c8d9b629ad08cf9 refs/pull/1141/head +6a0d024c69dc6c0a060191085f66c5dc25f1426e refs/pull/1143/head +6a291040bde780fed730d98b660924ef85c3cd7a refs/pull/1146/head +f847c6e22519beb3acb03fb1ed02698cd4917e2f refs/pull/1148/head +aac1304b46ccbba909369a74c142c2ef4c577eb5 refs/pull/115/head +c698bca2b934aee83ed33668a7513d9c3db223bf refs/pull/1150/head +6a8f42da8aaaea0c6672958535d6362645a46736 refs/pull/1151/head +4afbd9b0c3b9b830f99e351b0296044efbb7ae04 refs/pull/1154/head +c64560016e80517eb490b2b863be6da261c02b27 refs/pull/1158/head +fb7b1c8c18aa6d335addf07ca2aadbdd0394a7b9 refs/pull/116/head +2f7fbde7895438d2913b8f2697b43ccba138ad6a refs/pull/1160/head +6d749ebcf2bd8ad43179f75ff10f5a7b7f81bfea refs/pull/1170/head +8c03746a670ef2988a4341b6c3ad59d7829cb16c refs/pull/1171/head +c7ab27c86f85b8270ee8b32549243ff2538a2198 refs/pull/1172/head +4f96147c4a3679c315844bef1d775694e2054b30 refs/pull/1173/head +c2ffba072ea64b73d40c7c9d5d397dda7b5f0a62 refs/pull/1175/head +ce99e5c5834bae49f90eab6e861de6695eec2333 refs/pull/1176/head +5bdcfe128d6bf43bb9dc56b95ff796678d106353 refs/pull/1178/head +3305d5dc92b829f8bb427dde7566dd964d8c86ea refs/pull/1181/head +b41a0d840cc963a5e1810c1ef3e6aa7cfddc0f21 refs/pull/1198/head +95caaf2a40194de6db3305ef1d8f28ddeae159e0 refs/pull/1199/head +c4360ee6976bdbb5223cab3da09d8d53d6dfefba refs/pull/12/head +73a1abed10d282c6ee51dd57b66554e23bb0a806 refs/pull/120/head +be9efbddb20acacccc78a9b56f51adb088ef3abf refs/pull/1211/head +d11d663c5c7ff12d1eb737c9e073d50f5c3f5a53 refs/pull/1212/head +fa364c3f2ce47ab78f970d1fa27ffe6c11d0545d refs/pull/1219/head +771233176fd108e0537c5dc5456c5c09cd8d1ef8 refs/pull/1220/head +2f9ba4a4e21c1318fa45465a752e06a148b0a334 refs/pull/1222/head +444145f264288eda71f4dfc9ffa601a345061b4a refs/pull/1223/head +6faaeaae6649ddfa9a1b4b424a27e6792b1f90b3 refs/pull/1229/head +039860f87e05999d143fb12cde56a4e5baf1ba1a refs/pull/123/head +caddf21fca66c8339d01ef238c6cf060eb2090d4 refs/pull/1234/head +f29fcb535e8d45be3bf5518cfd0c8db4608626e1 refs/pull/1235/head +f7e69b757927066273f74420408de3bac546f5d4 refs/pull/1236/head +7cf8809d777cd88ad5aa932324e51561724e3c32 refs/pull/1242/head +de86aa671eec9d08ab0e0d4cdd30584606882732 refs/pull/1243/head +e8ef76b8f928c8898bcd84c819d616094f123f21 refs/pull/1244/head +1eb5495802e8447649c054b59843762b15b82b56 refs/pull/1245/head +b32f4451eecf3c2a6f7ff938c3343cb2f5bde6ef refs/pull/1247/head +d3b4b10d18572ff0a6e1568481ec65f4317a4346 refs/pull/125/head +d46a6ac6873a4c83705232838b391963af3ebe6b refs/pull/1252/head +a9e9a397d82c9bf7a7bc8aa1413b925f7450a16a refs/pull/1257/head +dd6ea90890619a5b81b6aa0f007ca2f41443b65c refs/pull/1261/head +48baf723a422f0a4964807b12b002a589799d6ee refs/pull/1262/head +4e60df7a080872487945039860bc9ca3cb8d3225 refs/pull/1265/head +1a8ec047335756ac24830f0fb51a0e2cf5b05264 refs/pull/1266/head +455a23361f9071b7c16048ce320ecfc26adccc2d refs/pull/1267/head +feefe690943e42d87b76acd8e78bdbd48bf826d5 refs/pull/1270/head +58c1545707601e7cd394890003addd7e9b4e7e7d refs/pull/128/head +6cf35820c3abf229b9f6273bce0bf520e5896445 refs/pull/1282/head +3fd3d8d5e9e424ebe976a33a86d8fa42e8d8b7f6 refs/pull/129/head +f24730486da1968ed2fb51b540513353c4e24c65 refs/pull/1293/head +235ff447367ec37adcef52921350271b3c5b9378 refs/pull/1299/head +dfb12320817a58484d259011e49d9552b450f2bc refs/pull/13/head +6466c0f6d7002ddba4f0dcb1dea70541b1ce9e30 refs/pull/130/head +f0fd95efc6783a188867e09a5d72462635fb1d06 refs/pull/130/merge +5633b6ac94296e68b0da2feeaa773473cc00b0f2 refs/pull/1304/head +3f5a99916a3d8487df00e196e19627b25616e930 refs/pull/131/head +9c2d741749ffd38ae39e87179de0fa8a8628ee76 refs/pull/1314/head +235ff447367ec37adcef52921350271b3c5b9378 refs/pull/1316/head +1e31043fb3c180c6ce8183d027677d1b9dbe0bf3 refs/pull/1321/head +9f86196a9d537ce8295add4c4fe682d5565e63fe refs/pull/1326/head +c5ca588a6f026a25da1ad62fe9bb967468d7a951 refs/pull/1327/head +1d4f900e488ad9f38ef5e7639c882d57a0be2dc0 refs/pull/1328/head +ecb46f591cb4c37609696f25d64e0f4a4e235b45 refs/pull/1329/head +c0f554311b31de95c19587596af589b72d0269ac refs/pull/133/head +67c657003df89c6005de0c4180d93ddfa792ba40 refs/pull/1333/head +0dfd9c7670fabc794e967cfe141277b52ae6582f refs/pull/134/head +58606796246110b8d49deb69e7d2ec352041bd94 refs/pull/1341/head +00b882935f160e6d7567d9a4d2618e02bba96e78 refs/pull/135/head +4cd5b06b7f76131c4396583dff6313694a7f4294 refs/pull/1353/head +83d556ff0cd87588232b54b9d84fd09ccfba4dbb refs/pull/1355/head +e794b397d386a778d7d5c4ab25bf0965206434fd refs/pull/1356/head +5ecafb157d44978ce29b6af6fa290e01063a980d refs/pull/136/head +37d88be2be484ab044d0954600049909876348ef refs/pull/137/head +ca20b3d80c75e42b9229ab3a9625a334c83e79a8 refs/pull/1377/head +80bad9f66dfa43d108288c81eaa8ec7f78151231 refs/pull/138/head +f82de8d00de627082c9afa257de10394dac932d9 refs/pull/1389/head +f2fec345ec0fa25a4a07d661f6760c85df6be8fa refs/pull/139/head +b0472d7aabae8e1bb1ba6bd639ffb3280ccc2f36 refs/pull/14/head +b3f3fd81aca91b0d14b71b5a3feea1cf298436cc refs/pull/140/head +12a2dc0901d9b4daeff4a6534ded1daa5edaeb87 refs/pull/141/head +d956d429036596a9c813a4a27381b1466ef11ea0 refs/pull/1413/head +6bc028f6146f02be9575d7f211cbfc1a47d4c374 refs/pull/1415/head +4fb09c5b4d2ca1e6e2f263df3b27eacedf86422a refs/pull/143/head +e37ff6061704d7998fb3df56dde502e5c8325337 refs/pull/1432/head +a5ef8aef0f7e6051578fc8138ec7dc627808aa40 refs/pull/144/head +513056f7118da82c8011710b65c569080e1fc2ca refs/pull/1443/head +39106d440a10b8d8f262d569f4facd6c39957a76 refs/pull/1444/head +0eec12472e7b08270f410f9c05b51b235198d7f1 refs/pull/1447/head +9eea0151ba73213f6e2f3f66f7abc415e19e1d65 refs/pull/145/head +2b2401be197e7a706e4669c9192d80fbcf16ffbb refs/pull/146/head +a75d05000198bc8407e52324496def9a29a10d10 refs/pull/1460/head +cdf5b6ec2dacecd06d6aa107d634e84650acf7a6 refs/pull/1463/head +d93c3441767cf7bccb77487a630aaf3d20793ac1 refs/pull/1469/head +df041108f61b9f4b832bd2247d2cd5b12328847e refs/pull/147/head +69a18255c682a7b45f47fd05c73610c817068d0e refs/pull/148/head +00d56d7295fc60c3f4d2cc43d2431dce7ed3edd5 refs/pull/1487/head +424d666a505c3e41bc1e77937a682e120e130423 refs/pull/1493/head +7dc9f334bdb498587351e6afb62b227f2754a8a7 refs/pull/1499/head +9fad541c87436ca96325a05c22e9fcc72ee90f15 refs/pull/150/head +c3fe92eb5d411226e186b517350f649d99decf0f refs/pull/151/head +9c6dbb0883c33a625a8a138bb1880bb5479075b9 refs/pull/151/merge +c386b3bcf78ae591eab2f4ac5ad4bf26f158140a refs/pull/152/head +aa5cc642e1189196e46d98da7d424bae7d89f4b0 refs/pull/1529/head +f842a80cdb787d8e88ce69232776c7f9550f2ce5 refs/pull/1530/head +6209e778e59c44d38288579a105c9e46c829c405 refs/pull/1545/head +81fa33ebb5089e6d9a610622dfdfd4551658f081 refs/pull/1546/head +57e17d064813162b1a1017368ce651ea89ea8aad refs/pull/1548/head +95d906bdbbfd2ca526d04c92f8d33358a0865a06 refs/pull/1550/head +3a3390963c91566e1b60ee4bb3d0f7fea5a950a6 refs/pull/1552/head +a56f4c97e41603aecb1f384ee6de2449ce032e32 refs/pull/1556/head +5a8ea5bca906dcf958942d4dd912c590aedeaf2f refs/pull/156/head +9caf4bf38381f4ec0680a4b29ba26f9c1921fba0 refs/pull/1565/head +233f03ca2b9a43c07c9aba19615a8e054193cf3b refs/pull/1575/head +3565bfc939ac456b64bd8c1d0b9a9a2b3e65996c refs/pull/1576/head +90e0b7fec6cc025561f9f732fb06d15f72e5c892 refs/pull/1579/head +1d0eaac260d251abed23106e6356cb07e5b6e994 refs/pull/1583/head +95fc88ae5bef5f4d1e9a8da4f5de7c955fb75a19 refs/pull/1584/head +f7056bcaa5d9e699f667994592ffb4bc02619a1e refs/pull/1587/head +d9c6387b8da6f707dda51d54650d62c1f706f60b refs/pull/159/head +c054d0094a698d0049585c83c5311802fe0dbbac refs/pull/16/head +e1a47d845699b32e0035acd7fd30153b7c830ebe refs/pull/160/head +244bad3a24300792b74d4d51c7a90bfafba3842f refs/pull/1602/head +39167d333ad752af26e7cb9cb6154534e91634c3 refs/pull/1604/head +3dea4cd19e7959d5417fb2d270ffc73688d32ed4 refs/pull/161/head +48482fece0683f3422191a374861d878b6554b85 refs/pull/1636/head +daea54b288f5872456c09b7fb84dad4a4fff9777 refs/pull/1640/head +ecb8b74506f2e2c5a45a76adaa781d38b717ce55 refs/pull/1641/head +d336d89b83906ed33c8774e9b191ca4b3c47b643 refs/pull/165/head +f9a062cac8a6f2fb2393f02f81e621c4ed90251c refs/pull/1650/head +a9a5706764a98fbcda1bc6ac2e0ef5f78ea6c202 refs/pull/1653/head +9ec5b4577be200d613ec9d2d1cbfffdee242b92e refs/pull/1659/head +1a5c1979e3a00515e4b23c0757e6d3379f268146 refs/pull/166/head +cccd8262fa78dabc8e1949c4dcb490b99fb0cd84 refs/pull/1663/head +d8e5e532737b5245254b28e31bb61cc9f7e8562e refs/pull/167/head +7cb19ef767142b773ab44a457940844589432a74 refs/pull/1670/head +565439a91414f3fc775364d46c8f848cecd096bc refs/pull/1679/head +e60bdc7efe247e6b93c7c99b1a44e7147cddbf31 refs/pull/1682/head +3ff8014adda15c8d37c30556044b0e96f067da47 refs/pull/1688/head +029008bad519186d1528526f523c0220aa58ac2a refs/pull/1689/head +53e8f78af600faf8eb813a3364ac7c48353dc8fc refs/pull/169/head +764e51bbe9ff8d95b79ebe606c12c9a787eec5eb refs/pull/1696/head +3b537f70ac4713a7c689dc568777956d4d2dd2a2 refs/pull/17/head +c58682e3fbcf76ffa0e99ae6ab342d8c794ce0a5 refs/pull/170/head +9133e2927d3189804431aa013bff2cf14fc812fb refs/pull/1700/head +f270f2ed652459cec2d5251b998eef17a88ea49e refs/pull/1702/head +848d17ffb9ae8b27eb4ce3e54d76f16a3d469b88 refs/pull/1704/head +c7b5b6ee07251624deb6eb4d8d57098823fb5742 refs/pull/1706/head +422f7ccfa825509f7e80fc8c58b96ac2807ca27b refs/pull/171/head +c1cd4d9a6bfd1e588852e3ec48288efcbc77c71c refs/pull/173/head +3f7e4712cd9e62ce85f58e449074b98e5c95a142 refs/pull/1730/head +b491cfe0b06ffdda6b5820de235f4fb7c13798af refs/pull/1736/head +fdbd73c716a435970d77ecfe64357ec1745753ac refs/pull/175/head +06cde29419db1c2032f2ff180fd71704a33496f3 refs/pull/1761/head +bc8ff14695ec314e38abc5fc06ac388a8036fe4e refs/pull/177/head +8615736e84f802833d0581b1d7f58e7daddc6340 refs/pull/1777/head +49579e4ce77fb5cd5a5fa8b8dc8844a0f2f3abc0 refs/pull/1779/head +d5cde07563cbc225cdb7949a4b1276981abd67f7 refs/pull/1789/head +0c5532d8b51d9cd3fab9a1032173352d4db589d1 refs/pull/1795/head +ee391720aa3ffc39b164e6060efd31ebfe6b82c1 refs/pull/1799/head +180a02030c309933e2605c8b2a52266283c95af8 refs/pull/18/head +ff8e88a5dff787d3095f29ac5125e9c96a66bbef refs/pull/1800/head +18703bf195855815d849034f06d786d06e4422eb refs/pull/1809/head +eb61425da5bd1be8e386cc67da15655c9462fbd1 refs/pull/182/head +340d42a1ca93eaa7e57da4601db4875ceaa7859f refs/pull/1829/head +ee321be5794df064d986525e63c63bab2deb7a37 refs/pull/183/head +3fb419e704135507c58eaf7ffa2d584ed33a6007 refs/pull/1830/head +f1fda52b2130c3dd0f621df8b14079147f4c9ffc refs/pull/1838/head +6ea95d1ede727942e4677cae8c80545123b98e81 refs/pull/1839/head +00019dc356972df93e54d5c375d33fbfc1616def refs/pull/184/head +c1dc5313171a81097e1783ba63e208282665b398 refs/pull/1842/head +c640abbcd71bfb9758cfe1be597a63323f6afef0 refs/pull/1845/head +88bea44dd81c6fc9755d42d9bee2533db8765c2a refs/pull/1848/head +ffdcafa0446aa110e27266a920b4497490cddb6f refs/pull/1869/head +1f0f64d961cd8839bcd5be6336f68d44b40aaa21 refs/pull/1881/head +f6bd8b3462dcc77be81f5722c7be82b84478f522 refs/pull/1886/head +f7951b44ba3608f2c707ed527db813a3d778fe08 refs/pull/189/head +21c1ab7fdaef95c6e264e792d0d3f341dd2cf10a refs/pull/19/head +4fae1e4298490b3ee9bda9bd97d0469217e64807 refs/pull/190/head +3da410ef717715644cfb7abca0c62e31e2ffee6e refs/pull/191/head +56b4f46d7d9c818a392d3ab62322302ed8b0c723 refs/pull/1913/head +881d1f43340b16cfa6b9836b520537461397c1d3 refs/pull/1921/head +91e80657e4c09cf3b9c254de81724b664a7ba2e3 refs/pull/1922/head +58b046fd10f4cd953ba5a0e5a816df480f98061f refs/pull/1925/head +89b5f7c98d0e655f712e8adc732b2cf32adc771d refs/pull/1928/head +20535065d752300104f2831dfa88c2ec3e6edb82 refs/pull/1945/head +0cdc0cb147e39a382a1e8345191f19ac69df6217 refs/pull/1950/head +79bf741bd7fe492301aa51f20f3fff98192500e8 refs/pull/1955/head +4350e9d24132be04cdf90ed6ed3db11e9d665df2 refs/pull/1959/head +10d5c7738afad9f81958e24baa923530314a587f refs/pull/1966/head +80f23e6d78d24c166ebf28a48a02815aac38b1e1 refs/pull/1970/head +ca0fd7a31b724d06ba4eca203bfeda9e38c5e767 refs/pull/1973/head +0ab10a7c43327a290f781f35b0cd42bdb8688544 refs/pull/1978/head +a1a5e00ff5ea438242d964cd52606521694bc39f refs/pull/1979/head +f36bd72a7f772fd108b31e5ca1f502238ab1ef00 refs/pull/1980/head +b0a411b7333a5cf68fc3e78b67a61427c01d18fd refs/pull/1981/head +302a3131a2dfd94e841ee831549e3511f321af2f refs/pull/1985/head +e3678b4b567a89d5a72af99fdf61d1b5f1eb18f4 refs/pull/1989/head +145487bb9d3066f6f33c8f59777eafef685bd70e refs/pull/1990/head +d014eede9a7fa85e4f809656a7f6aed61caafff0 refs/pull/1991/head +9375d5b8c212956f3469b86e62e5d7f057194ea2 refs/pull/1992/head +34ed5ce4b3feeed9d14ebc08c381995d0737636c refs/pull/1995/head +818b5112678c15b764be1629d33bbc15aa0a3fcf refs/pull/2/head +e54b52f10970b2f258224ea8dfa92267654a1e47 refs/pull/20/head +08aee97c1dfa4195c7f281f3201c24baff5365ea refs/pull/200/head +9928a5404b6196a47320ad26b65973d49dede109 refs/pull/2001/head +fe38f95f15c4f1b5bfdb4dcab876cf1154a14d09 refs/pull/201/head +338756550a27d1084ae947a1a108482abb8f473b refs/pull/2027/head +fce6cb5865db093c19c3e7892fe5f159b8cc9d95 refs/pull/2031/head +881524bd5466c19875403b46915ac2ec5762b0ca refs/pull/2032/head +4cebe1fff457515c4e35790b3637c1112fc5a390 refs/pull/2033/head +c3c74506a77308a3316a1eb265488b4c2be0c968 refs/pull/204/head +cee3fd5ba284f376cd05755dbc9cd6b7ded297ed refs/pull/2044/head +86b49856a7a95ae0bab2067b3a19cdca0651ba33 refs/pull/206/head +c476e197963f1fb8a558555b553416f6f2289088 refs/pull/2067/head +d9457e929ce5294ee51431cfa522b674e668227b refs/pull/207/head +6cbb72406980bb0127b378a770195066bacaf02e refs/pull/2073/head +14408396bbdcc360177d104883f7b111de07cd77 refs/pull/2078/head +c49ee47de056cad058bcf2dc2b8c19d621bc6a39 refs/pull/2080/head +c453528dc10d92c76776a7c96dd8de178a14cfff refs/pull/2084/head +c29bc9309af419864c4680208cac1bad66bd8ca3 refs/pull/209/head +380cf062119bc4a8d892e84eb536440d0b67fc68 refs/pull/210/head +fb801c95d418dcf67c082b9a96317ccde8a4086f refs/pull/2103/head +e327583aa56a5129999d6295ff8a2be1ffa6d2a1 refs/pull/2125/head +ab2e472dce3dc2eb04e7184448455447b2cc68c0 refs/pull/2127/head +5292d38c739db270fc9b3f41a8d84b9699ffbb30 refs/pull/213/head +ff08bcfa180199e58668b76ac46bdc97c0598cc7 refs/pull/2143/head +d8869adf5225f2bca2dac3e73224b5949a0f3e7b refs/pull/2156/head +2f9ac61a4e86c272b8029226ad4b7b3fa7171088 refs/pull/2158/head +a28caa33ef48ef452aa9fb84f729a3005cc165fc refs/pull/216/head +d4eb21c2d9735e05041ecfc984974aaaec941123 refs/pull/2165/head +4bd8eae07e7e76fc35a0adf02f01bb3df5e446f5 refs/pull/2169/head +58a78ffa54b5513018ac034422c7eeb20c37e90a refs/pull/217/head +2c94ea075c3074a7930766f670fcf27eb97e4495 refs/pull/2170/head +605419ae1b187c96fe0306b293d9526f2cbee1ab refs/pull/2171/head +5b430f22bc9b829fdb5543c4a227a31ff8fb2cfe refs/pull/2172/head +77cf63c06d2b5513ca2cb135a87157e0b940772b refs/pull/218/head +6ddbe84bde04c7ec8b52e9641b490adedd8b22a2 refs/pull/2182/head +b7eedbcddc5bc52391472329fa6a43a2c9ae0a94 refs/pull/2188/head +64f6c60bfd278d78ed6ee9f9b458380c996a73de refs/pull/219/head +1fa178d1d3124aad5a11635297f13ff33d2fc062 refs/pull/2194/head +7257251ecf23af18deb894e8f2e5519a15360c76 refs/pull/2195/head +bf5aefd12976cef55276e00db770710b22d7b62f refs/pull/2197/head +a0d2ca3f244c50fc01960f21188d3a9ada7e8f97 refs/pull/22/head +e985221b50d42a9c43d3f958a1de4ff9f69eb351 refs/pull/220/head +2e7fa6440b299d59339e58ec413516104954f7aa refs/pull/221/head +76b7de15de7211684e05deacbbaa3e3bfd3ee051 refs/pull/2217/head +a16c65677006f1b7b50d508a173a71d94bbf8753 refs/pull/2218/head +e4e16ed50f7e51a42cb1d6811be3f93ee04d3e45 refs/pull/2228/head +0a08b1afc8d9ccf452cba5f80185dfee7f674992 refs/pull/224/head +8f7900759fdd2f2578461ac8aa38bbcd854a6b0f refs/pull/2245/head +55fbd8d4685aaed57332165b69162df11064fbae refs/pull/225/head +85c0aa1619fe0a926b5d7afff2d2592ae6c263c1 refs/pull/2255/head +7d552dbdc8d8d7536ac7f7d3a8c8ad9a7d316f83 refs/pull/2257/head +daa66b08dc1c21f38710f8791d45f188702ccd17 refs/pull/226/head +d781981bbdbe78ef34850b5b3359e38b714d29de refs/pull/2276/head +42136a70973f60086749c62439c6a965d4589c02 refs/pull/2292/head +c32c65d367aecec1e3261eae1b52bef8640db643 refs/pull/231/head +9713a3a5558d163fbade7d9260d8e994dbd9537b refs/pull/2313/head +c59a7f4a8cb5d2c2cd03e82ca909eb753303fb0b refs/pull/2315/head +9bb4c38bf9874b2bdcc36001c910669108b82a0c refs/pull/2328/head +77d9641323545de5b92b2ef12e1004ae30dbee28 refs/pull/233/head +2f5ca88fb1e347ed55951cb1553e2c0a0146ac02 refs/pull/234/head +c4d565b15bfdf34b3278d964a9da53e082fed680 refs/pull/2354/head +fafc3883c672255a0bc279aa6b4bf2effd0250d0 refs/pull/236/head +b2ae11bc95dd67688765637ace158917ee6ad4f7 refs/pull/2377/head +b0faaf25277fbbd2aea85b9c38868eb66ab45cc8 refs/pull/2379/head +27d4b713f6281e531d9622de09373adf7170384b refs/pull/2380/head +c0e248c457d44c5bd9c5abb72ef6a3bb257579bb refs/pull/239/head +d98f95f5363d62c0915f175eea04302c0dba9d9e refs/pull/2397/head +fb0c23b71fe8ff95bc421a8e6dbbc6d4a46a38d5 refs/pull/2398/head +2215bdf018c68338126045bfc15aff8396007afb refs/pull/24/head +b359df7045a8c3a29dc06d80ce7ff15d88ea3955 refs/pull/240/head +28c5e63bf56c49a791d9ed13f5f394b30a96c63e refs/pull/2400/head +3ca85028ea99ed43c99847b18e222f25ca47374e refs/pull/2429/head +dd684753d06ee28bf126721f6b94519960da4397 refs/pull/243/head +df8aeb10e8c05318dc470a3ff78c613fc8bb899e refs/pull/2433/head +62bc58e1453c885b15d3d56e4c50c985e2b9f4d2 refs/pull/244/head +542a73cc6edb4770755663df74b5e052019f425c refs/pull/2440/head +cc58bbe1f52cdfbac903d5700cfce41a7242d147 refs/pull/2449/head +887e320e7f8dfc62d9b3ed08aca216cd7ad229f1 refs/pull/2451/head +47a19f05796e3d0cb6f6e94f3c9d6b540219ccbe refs/pull/2455/head +9ed9645b5bd459c47a1ff9e5658097f9d2d9c48c refs/pull/2479/head +1c266031d71eee407f6285df788c49414a4e033a refs/pull/2480/head +2168d0942169fcbedd1368bc095c568e57a0bed0 refs/pull/2481/head +7c89bc619a55debf3fa7b4ff7f5c53d0a1125a85 refs/pull/2489/head +21b433c5d791c7f34f37fd7a3ed4b95fd32c76b4 refs/pull/2491/head +4b4733f3b4c9d8b8ba341f6d689b30d515d32127 refs/pull/2494/head +941747f9e84eaf336e04b6d4bd1355300402e93e refs/pull/25/head +40ed505581fdb00fb047637aa3172d52442d5f73 refs/pull/2501/head +a85a250dfd7978c5c89b409aecba0a0757d53163 refs/pull/2507/head +dbd95e08e9235c9fd807028f709b7eb2c5693867 refs/pull/2523/head +c093ec6cd6315f73a21a31cf2d067317b4167fce refs/pull/2524/head +6c46150c1e231230835c1d541f2634810353ef01 refs/pull/2529/head +00670450df4503923e5689e3842a5e16d4bd30a7 refs/pull/2531/head +12612da75e3635c3c7d5aedf89115847d310a12f refs/pull/2532/head +aba9c28226d4f716d4f6fbc28baf98b84262ae00 refs/pull/254/head +5d05ec58be9e6dcb028d69a4280a1d9e9d99f20e refs/pull/2543/head +dec03b3dc0c6bf529676f67df04873caf4a88a6a refs/pull/2555/head +d9a452f5587b294909fcc26772ef182ea020e59e refs/pull/2556/head +044cf199135b00e0fee27a8bc0e820baeb0988b6 refs/pull/256/head +de6330b09d3e27bda7059d60bbfdfdc9540b1062 refs/pull/2561/head +006a2aacbbb31736edb67b5887842813728daf38 refs/pull/2565/head +b71d9dd53e447eb66786d0890fb4b595210de158 refs/pull/2567/head +c7a752b01d704c116d715d75f75ff6fa00ab964d refs/pull/2568/head +f344dbaad407d3d3b2255628a09fc28a947a34c1 refs/pull/257/head +099d359628b7b1fe3886e151f5f5ea538bbfffdf refs/pull/2571/head +45d3b479bc2203935a2eebcf4e3d82c34c60df3e refs/pull/2577/head +660c8f8d7e42a0f459d3b5ae58aa5f2952ea7c25 refs/pull/258/head +cb4f6aa7f6ff70bcd3507c32122dbba72a7fb520 refs/pull/2586/head +5a55cfbb9b7939a3701cfbf6d7ca12dd3ec69ea0 refs/pull/2595/head +0d0e98d783b7e19bf29c59667829645f1132c7a7 refs/pull/2599/head +bf623eed7fc6d7184f2b794461d0d37a03731d5d refs/pull/2605/head +55d7c48b1da23770d8152724ad8b6c733739e64d refs/pull/2611/head +3c1d4254e7c21ebed0dae04cbc7f5078e796c8b6 refs/pull/2619/head +0f95bdc9bbf7949ca8bf436c088d5e09ea2c6e82 refs/pull/2624/head +bf1c96695b27a33be16d4b12b108559c34dc5418 refs/pull/263/head +9a787dd105edeea5fdb309a50f2b47155937c5ed refs/pull/2631/head +0dcc435bb4e61f45f5eccd2ab7f4d72c09b9fa49 refs/pull/2632/head +abfa8684231c2426e5c8c0228b3f9fa41b62e713 refs/pull/2650/head +7f0d0cf8a487e0a17a05411f9a51e3818c4caaa8 refs/pull/2665/head +10d038ecce539d35c1f3353a0e84e85b59bfa15d refs/pull/2667/head +5b98bd66ee75edfbd9b50dc8bfc499d2deefb9e9 refs/pull/2675/head +0935cb90a40aa811e1a618c965250376ffdd440a refs/pull/268/head +d9c0eb3cfcd63c361c436615f1302e5211cd03e9 refs/pull/2693/head +1722742ab3637cbe46d3527f1c63533a23719fa7 refs/pull/2698/head +571ef6823db9bb3daa268d1750031344bb735617 refs/pull/27/head +e0354077ba77f46409f46968e5c08179256df890 refs/pull/2713/head +de610664ed8c8c5b74f12203334b1ed21558cf64 refs/pull/2715/head +8409b31d6be818836434e57ab2200c85d17df4ed refs/pull/2724/head +5a05139efe484b37edbc2db6eb618676d26f3723 refs/pull/2729/head +94be67eac11bf893dfc87d65a6e172cfcf3fdf37 refs/pull/2732/head +42b9cc73acb8afa0bcf73c38b448c5f34615418a refs/pull/2738/head +e47a2fd0f3c0728a6fdf6f552a3ee78592f70414 refs/pull/2739/head +6990525e8a4399c848cabfc99bbd2e761b806b95 refs/pull/274/head +81984c4bce4e8004d9fd65f2704afa8d402cd53a refs/pull/2744/head +fd2edb9adc1c53fc9a2f483950724f720a6e24b3 refs/pull/2746/head +485e21d95f428eb5b87b969cf9125dc1a47fb9b8 refs/pull/2747/head +5a07b193dc3d97c9c72ba9a36a877ecc52284ef5 refs/pull/2756/head +1094f359c33c58ca139ae7d07aa2d7f68e79659c refs/pull/2758/head +ae59472d9a7ba78587f1fa6aa2ab76688e73649e refs/pull/2765/head +102ee3f871152677efafa6688722808f31a95e62 refs/pull/2768/head +2685099720eb8656a3528ea8ab4c72476466fb19 refs/pull/2772/head +2215cfefb9d2affd55a5773bde49b37efeb11a32 refs/pull/2773/head +4289663a1697bd8d78743e2c8eaef255cb811e1b refs/pull/2784/head +cffc024cc52bf03924f0582f95af0c0e625ec7bb refs/pull/2786/head +8ca30e6fd7c33c5da0000e558c127dc2250ee708 refs/pull/2787/head +4aceff412cbccb94d2de091c30c9afdc1966d36a refs/pull/2795/head +aa5a05960ed504de9df41c58d454467c132c00bf refs/pull/2799/head +a6105f70294f108f278ba5dd520564f59cc3de1e refs/pull/28/head +0a0f620d0b7982bd5d57b57fe909c02cb0125b48 refs/pull/2803/head +64ae5d4f8188b16a51fe7d96a023d08fc0e13c69 refs/pull/2804/head +ac120be1c6f84028bc8ba476270c07f235e5b6ab refs/pull/2805/head +475c7b8f1671ba74001bbe50050c1a69931122cb refs/pull/2806/head +8f01883dc261e265828d296eaea897ff993255d5 refs/pull/2810/head +2dd508691689d4f5a9c39f411837300666f4dfc7 refs/pull/2811/head +b0e0d68632b2cfe2ba3da8d704e88ef67755ba71 refs/pull/2812/head +f49eb8eb4ddac10617f8d08854368ea6d632df11 refs/pull/2813/head +677fd2ff327b4141c1c2c4cab439560da4c91cf8 refs/pull/2816/head +f41ba2a60f161dde69f0a42ad9cf5d896a64e874 refs/pull/2834/head +e26e2319da6a6197348ac077a9a337cf976d2c85 refs/pull/284/head +0c267d073f35180e9913fffdbd777cd949a7e436 refs/pull/2840/head +0a2a8be0ffe9c9ab8bb0d08fb635fb9e13269ec7 refs/pull/2844/head +21bc3bfd538157b341191c9caeddc86ca6fe49c3 refs/pull/2846/head +295985de7ccb212cc28dd024c7e37885a805184b refs/pull/285/head +d4577d161e82c7c340f3f48a949e7c20e373966d refs/pull/2852/head +31b77bf17896b26012e8d4e4ba1772e8d755a0e0 refs/pull/2859/head +14bcbdcfbd4cc7bffd673790d68ef7f7a32f413d refs/pull/2864/head +1d2b8c55398a52cc0c27030b92d0b8b6c268179c refs/pull/2867/head +2ea9b669438cdff048d74cb49c9f6777e9018371 refs/pull/2868/head +5efd240848371996fb2482479c64785103284716 refs/pull/2869/head +9a340a50c7342e5df366e3b3dedfc3fc750a9529 refs/pull/2872/head +5a13efefd3e551e4fd47e2d748f6dab31ef1118d refs/pull/2873/head +fc79c47d82df03369ad580935154d15643ee3b33 refs/pull/2877/head +27e1c947dae0c65eafcdd46afa1975c1e04cf1dd refs/pull/2878/head +0aa33a2cb48ee5dbf31a6f448effb41e7467e417 refs/pull/2886/head +b010dde6613fbdcf4c273dfe9b83402e0e10cc51 refs/pull/2888/head +063dfcf487db9485d9cbf76bf66be534ddd82f4c refs/pull/289/head +6af5c860811f8d51fc1cc579e9a01ff55924b537 refs/pull/2893/head +baa2841b04e7c61136c47c71ac33e330efec6aad refs/pull/2894/head +c9ec389b244c98d5cc57852f29130923fe9d6ce6 refs/pull/2899/head +9b017bbbb9b5384bdfedbea5a1b8bdf14c3d61d0 refs/pull/29/head +ee2cd0df465f674522a813b63401bf110fce5032 refs/pull/2907/head +76c510c5b63d6dcbb0596dcd31f30061fa8882e1 refs/pull/291/head +7445ee40f8930c2f72e87d5809d2ff584b0c4d30 refs/pull/2910/head +4a9a0f7e649787990a3997f9f3d145485554a592 refs/pull/2911/head +b141f789f6905006bcf07546223bc632b453e421 refs/pull/2918/head +723f0cbc1ef3c0964e6ea673a2e8b93df9fab3e2 refs/pull/2919/head +5bfc7cfde35280eebb086459000d96c324500763 refs/pull/2920/head +0d2399d485e7933ba08dc354200e545fa03f3d90 refs/pull/2921/head +56786a18f16d7054b6677926f9f21afd073412fd refs/pull/2928/head +9a7d3634d5efb5bddfc7065f971eae467370813f refs/pull/293/head +e27a5be47a4b11ef627e3b07ec5630568ef90b3b refs/pull/2933/head +4aa6dd22bbe853542c2396821648f369d07bb951 refs/pull/2936/head +bc20592712ac72a4bec402e98135327ed2421bd1 refs/pull/294/head +d57b69952db6eb12987a9668fea6b72df79cfa41 refs/pull/2940/head +610b183cef5111ea51aaf7e85e58baf779610fc1 refs/pull/2941/head +7f11363725f48868eafc1c81a92e89f31da08659 refs/pull/2945/head +142f7bb50dc58482455858044185a446081ebb08 refs/pull/2947/head +d209df9e10544b7c1fc8ebfdb3a7910400ba0289 refs/pull/2948/head +2cd736ab817e2d1c717ec876978cd2623e62665a refs/pull/295/head +b022be9ba82a1b8425f117ea5fe54da4eb56b60f refs/pull/2953/head +1b64b9e1644d5e07d674d29d83c5e7e58e8f0a2b refs/pull/2954/head +d5dfda8905bbb668f769493233ca5a5fcb1827ba refs/pull/296/head +4a85dd24805a4dc9ae0b2d1840e3f483325013d2 refs/pull/2963/head +a6d09407b94cca6ff4d06670bd323cba9a6fe302 refs/pull/2968/head +52a50e9adeb8520fca9d96d83cbc2d06cb3d4c91 refs/pull/2969/head +23eadf2c9ac06bb92860f751ceec24d895634697 refs/pull/297/head +213909baa579a697590e8080994e3dff3ce29152 refs/pull/2970/head +cebe0f6442c42422ad7d30d04d676dfaee8cb0d8 refs/pull/2971/head +aa355a96f92c731c01cf0c4b9d135808e144778e refs/pull/2973/head +d9c0c23819fdd327750931103a1ec3e625a257a4 refs/pull/2976/head +6154e03c05656aa2a6210f17454403bb46cb2917 refs/pull/2994/head +8b6dfe48b70909caea0c8a4bf51bc89a451b766a refs/pull/2995/head +d59197d62aac63ffd8c34476b915ad761c8e9848 refs/pull/2996/head +a7eb77ac9034839f11c9ac1251d076c34af239bb refs/pull/3/head +b60a4a68c7858f54b1d49678c6314473ab873d21 refs/pull/3006/head +a55c048a622829bd91865001b879c33845f4d7ae refs/pull/302/head +6a6dde212d5e2078f4a00cbca51bef4deb8f6650 refs/pull/3033/head +613b2519edc53dfcc7f82ea4e402ff846ab9cc04 refs/pull/3058/head +ca417d32578c3b6224c5aa8df56eb776712941b7 refs/pull/3059/head +f2e9ddef4eaa7eef4741b52813d6bd4e859473fd refs/pull/3061/head +7390f34355c4cfb4024b4558e5b77a216516b656 refs/pull/3065/head +996b60e43d5db7149263a7c5a5b1c9e9725f1f00 refs/pull/3076/head +e3395ee91078a8568bf0b09fb159115ca19211e1 refs/pull/308/head +6be26f0a386309f2b49c440a1d0a029402fb45f2 refs/pull/3087/head +5964dc95f060678768608b4527afecc9d10c1b1e refs/pull/3092/head +2897c24e838b64e14aa273602b9dea5ff65f3fc6 refs/pull/3093/head +85ecd001a5c752683b58a460c9130599940d9769 refs/pull/31/head +cef5dd4a46b97cf91e97c04538b0bfa5e89121ea refs/pull/3108/head +f694d6f839d205f1ff9a4cbdb359f08b099ce640 refs/pull/311/head +78abdf0e9d5921a01f2da0bac5704722bc42c818 refs/pull/3116/head +cd6e4a0ebd2b571cbae8f59e5f3594244c739cea refs/pull/312/head +75cf79cee77ffc72b55777f49fe849161aeb6a58 refs/pull/3122/head +4d9d649db98c4d80f121dce2c4661f548c39633a refs/pull/3124/head +ffe362f856180ea36db156827a50562fc68f732c refs/pull/3126/head +8e6fd4b4a11760619bf8122c98c45631b9f8d4ba refs/pull/3128/head +92dc48b8828754799629f189419b9b0c6e871327 refs/pull/3130/head +dfa629ecc7dc7bd1b9a825f701aa4267ced85d4d refs/pull/3131/head +2ee0d53c5fc6bd6d2d146be761c496fc07547e32 refs/pull/3132/head +3181e4e96e9e952b92b79ed07653fe6b6a46c322 refs/pull/3133/head +36b5350f9b3949acf9a6d3bb0041bb9c08cced4f refs/pull/3134/head +c7489c9fdf08878c71f9dfd5263abc9e8e43056e refs/pull/3135/head +072f2e24c206ebdaafacb17159fb8d73967eec3d refs/pull/3136/head +906d9e2f1acc94795a8052d8ec0e80c8e47d787a refs/pull/3139/head +8451a70de6a074aede729f90f983d2429506d8ba refs/pull/314/head +a20a641de34083fa6e6bb25219d97570b56d56c7 refs/pull/3145/head +f92efda0f0568a3fdf248b2da998a9f8925139c6 refs/pull/3147/head +e7ea5097f49bb1f42ffdb59a038a02fea093df10 refs/pull/315/head +a048a1827af6fdce57a87eda9465fa1342dfb882 refs/pull/3151/head +f59b11ae76543128f2b6201be0e748b65ab192f7 refs/pull/3154/head +34ac16e9d77272a74c17eaaa90e79ca9d20f3af2 refs/pull/3157/head +2d8c8e18f74726303f7789af9731e8a80ce05610 refs/pull/3163/head +96ff32fb2fe23537e9391d4c3757770c3dd15847 refs/pull/3164/head +458954339d588bdc8e858aa1fd506ce2d729fba6 refs/pull/3165/head +bc49d1f90da7df9f9f01b6f49cb13fda721343d3 refs/pull/3167/head +9e4f0a2b419b434fabd0594d7f1ea4c69c203eaf refs/pull/3168/head +73b9a478ca32b1ae59755b65b2fa0005e485506c refs/pull/3168/merge +a6dd4f1206ae382528871eccf2f5bdef808f238e refs/pull/3170/head +f20c4705d97ed9431d5ddfad7001eb3919de9954 refs/pull/318/head +46f3b229ee8dd7619d5aa493f4e885056f6f7eb3 refs/pull/32/head +6e47535c2e867ecd35fb04bc37303363f8da8a24 refs/pull/321/head +5bcee24f88ff976930eb7e18d8e672dc1f0d0f8e refs/pull/3210/head +c58aac585ba15ae7b02123e9d5eef5d398e37ff5 refs/pull/3215/head +af69c83db2a0f362dd150dffb3ba1aab230bea64 refs/pull/3228/head +0a74e79ceaf809a8481afb9d97dbba0aef807745 refs/pull/323/head +6e2c3fc1cce721f459f07071b6f14120b0e31e73 refs/pull/3231/head +a0a499425024d58595ed672a901987ac523e77e1 refs/pull/3234/head +fc70f3087f14b373da97d70d8cfad4566b076a3e refs/pull/3237/head +7d7da9212e42bfe91044c24e3fa41f10c571fba2 refs/pull/3240/head +477d60de495b3fa3900bc62f0c77c1ffddf94caa refs/pull/3245/head +1ca0d6e2451ae6f68b0325e7ae9f1233185bbb68 refs/pull/3251/head +32bd9b83a309d24c0fbeddf17240acd65f2e3650 refs/pull/3252/head +7f69eebeb12141240df8c29ef4900cfb56af46f0 refs/pull/3254/head +77cada40854f1e1d2124776d4adf2f5cc3137a4d refs/pull/326/head +a947e434f00920ca2c5491b75ab11e6fbbb86a1c refs/pull/3262/head +8ae799a7716549d25a21004daab099fe05e03be7 refs/pull/3263/head +1ebed7d24bfe406b771cf82d59dea2958402c059 refs/pull/3267/head +61183d001c67fd32d0c6dda190e832f41f596bc5 refs/pull/3277/head +7ec00d3850f0c058314b4bc4a3c5d1094882c434 refs/pull/3281/head +8f8d7418eddaa180535d112f4db9da67fe8ac5b8 refs/pull/3282/head +50d41806d9f7def9437606c64571c89a41ae04c1 refs/pull/3285/head +f10e6b6ac2edbdaab3b4ddad1328ef77c65ba02c refs/pull/3288/head +de157b26543172fe48aa44af578e229b1db65475 refs/pull/3289/head +f88b6d961e33071e775bd4886ee66df32e63dd69 refs/pull/3290/head +2d66292350d352c3ea41db08d4c2de33898e9806 refs/pull/3304/head +d3626eba2abc6c76959535231b4f93a14e85dc63 refs/pull/3307/head +0c0e632bc99e707991da1af01d111580d1571ff9 refs/pull/3310/head +10c5476d311ed22b53f5ec1ddcdc1f991aa757ac refs/pull/3315/head +daaa03d1b32ad49cd84264dbad3bc222bb854bc7 refs/pull/3329/head +9e5b94924f5fea4ef405fa1f8aeb836b52f85a73 refs/pull/3332/head +89f3b98f4928b00de00784909c8a893e9ea2b725 refs/pull/3347/head +c8655c4f895567bd93c69d3c5bbdaeba247541f2 refs/pull/3348/head +ed8091a994a97747b8a0b13913c5a30ddd1d4c82 refs/pull/3354/head +467ecfdc999932963f70c06763ba75da5f8ce4d6 refs/pull/3363/head +4ebdcb6d04a5ae1af70136f4f13ee95679e7b685 refs/pull/3365/head +8bcd0ab0c67afdfa6310c4eb0fd02bf1dff787a0 refs/pull/3366/head +58387d23e34a6e5a34b2d3fe2bacacb9795f2107 refs/pull/3367/head +62cebebd3d3f7d51d2a38afd36c4aa12a8bd088b refs/pull/3376/head +2cda54ceff9fbc2dae0d1d03962fc827e580359e refs/pull/3390/head +aa6f774f6518c3caa623ecb9a2f739c649f7b7d1 refs/pull/3397/head +39a5f2dbe8554c7cdea1b594c4a41d37597fc430 refs/pull/3398/head +4d50014e355d806c6b13ef349899ad1546db0982 refs/pull/34/head +fc43608eecc6287a1966d2e551ac6d81d71dae45 refs/pull/3403/head +3d11f4cd16d8464835fb684e7c5528eb54ed535d refs/pull/3404/head +bff54fbfdbd35fd66741f0f401963d534052e2da refs/pull/3405/head +89e94b1d91828f94d41ad3d4b02c734da7706ff2 refs/pull/3427/head +71a10e03783814785516e886620e5a7ee1bc921a refs/pull/343/head +7d820087f416417e045e5ca8428871a7247b9805 refs/pull/3434/head +ae437f70a3659485a4240d093fce58e49082af0a refs/pull/3436/head +f850dbb310d22ec27d07d696c0af1e3e783da092 refs/pull/3438/head +271e3ae757d6c11ddcff99e2bd91aa38abde7ab9 refs/pull/3439/head +48cc31a59f3b069eb5869fde7954bff38e99d764 refs/pull/3440/head +ca85339dc992d50c8ae47429162d220ad427aa0b refs/pull/3446/head +cfba8347a33f3daaa05c61e55bb4afdd6067567c refs/pull/3469/head +d8116a80dffba464951fd7f9466e6d8f9dcd59c5 refs/pull/347/head +55c1b6e8d5860cded720b079de25e5de52cad026 refs/pull/3475/head +b4f6206edab9ceaa8ff21479b1ff84b659d1aca3 refs/pull/348/head +f906f6230a8308a3b60d0bac49f99244b7c89df9 refs/pull/3491/head +135ab4fb2011bc1407ce06c7012c361ab3f78362 refs/pull/35/head +4a2ed553df0fc9753a0239f616d1a83a4ed816bc refs/pull/3502/head +ba492c06024142896a89c880d20d258de4615210 refs/pull/3505/head +4d5c047ddcb4803d84765fb2fd93f9660ec6b4ef refs/pull/3513/head +349c97efaf7d6ab355e9c0f244c17c6db1b16a72 refs/pull/3522/head +23aa9088f39b2f5a51c95141af1490399e2a752b refs/pull/3532/head +83376544d86d333974e6c7a15cf8818bdf832927 refs/pull/3546/head +636f16dc666ce100cbe55cb7b9fc745878f8f0da refs/pull/3547/head +0851561392b6f5b381a7c1c2fb4f1d93a4b8f7a5 refs/pull/3548/head +f40f5b83990f053e0d06bf05c766d77ddf5a1c57 refs/pull/3563/head +a05187c0ff8e38b5828c19906a649798b4b650af refs/pull/3568/head +ce3c41d4f930b1f63d79284e3e90326f9d5304d1 refs/pull/3571/head +9b9fc74636b21ac7bcfc2628bcbb81df0c158a36 refs/pull/3572/head +aaeae16983d83ce0cec3f1b4c841eb35b6555f43 refs/pull/3573/head +e4606431d1f79133fe7d708736b4083e9adb8a01 refs/pull/3578/head +e4606431d1f79133fe7d708736b4083e9adb8a01 refs/pull/3579/head +8d7b3db33d7e8a14c374b05fc567bcc70d2b018c refs/pull/3592/head +1074315a872ee5d5cab808144596fd996bc50f36 refs/pull/3593/head +ac2ca5812ba0385f3e09351c9a3b9773a0285665 refs/pull/36/head +84a23008f44b089fbb6a2e3adb0bec6117c2c4c3 refs/pull/3603/head +e818a0bf3778e9bea818d00d548280bc4e45b69e refs/pull/3606/head +3c0cac623db9aa7bc2b7514524467fc5ae982ab9 refs/pull/3608/head +84e901b7d267591aca660e0bca7f0d0f620534d3 refs/pull/3609/head +e4894524e45ce478f8e2439cd05b6342696615d1 refs/pull/3620/head +839b2bc950837999fbcb21c4dda0afc84d68d295 refs/pull/3623/head +8ffc17d1af7440ed74d6c0d6feb2f8bc010a0907 refs/pull/3631/head +fb6f441a4f15fed5cfeda12df437153017556844 refs/pull/3632/head +4193f4bc5bf1e01f2a37d8e056aa5a4ceeb6de63 refs/pull/3634/head +4fa4600e1128be35d6139332bcebf5302eea8316 refs/pull/3639/head +0a6b797e6ef789909d124eecad9179275f421873 refs/pull/3649/head +fc0e239bdf7ae4aeed5df9273532c0985457d491 refs/pull/365/head +2b32b6f78c24c4e0f85b18818013feddd75c5bde refs/pull/3651/head +08f37b99355c2ea04c7d6a9eaf1138450fcc97a2 refs/pull/3659/head +a8e5384c4ab944afb469f5f9a0ac89be0f68f573 refs/pull/3678/head +211f4492fa4215fdd0f38113c135e170a19617d1 refs/pull/3686/head +631d022e175810ce4573b040c34af486b1fcb87f refs/pull/3690/head +4de16b2d17fd16666045a0d3d7e1ad99fc4df58c refs/pull/370/head +4ec250707310da952c1c6cf9499ab8f8ce8d1136 refs/pull/3704/head +e132d22200dcbbc7f76d533ecdc9dd6b815deee7 refs/pull/3715/head +feb74a5e8635c1fc1b85c5581ae848745789349b refs/pull/372/head +83d5432cbf89bdf8d6af533ec734785391d61a6b refs/pull/3730/head +4395e8e8888ddb043d870d21e110ad6dc13b09ed refs/pull/3734/head +2fcde2b904850553f3e014fe75de2d9064c2a77a refs/pull/3735/head +d892880dd2f96dd9f72a6ce9437bf638719a4bcb refs/pull/3740/head +eedfc4c7a1137f72921f7cf527a2c658d689563d refs/pull/3748/head +6cdcb3b2976be758987a36491d2da4ecccad941f refs/pull/3751/head +9f619a54eef74970cc7a0580c3d7ab43994a4f76 refs/pull/3752/head +dba29676162df5074825d2b24625a76aaf0f1c12 refs/pull/3754/head +8cf0ed084d064336346c9706e0f10ebd40d2023f refs/pull/3754/merge +c09db88f4e4dc31d7294470464deda72cb976ead refs/pull/3757/head +ae1c53f4e5aa8cfa585e810df343814cbc862654 refs/pull/3769/head +bc461d9baa13911343a601c2dbe1791cfa01cc4d refs/pull/377/head +c33bf143ef59884f984a52bcc8e407cc942024bd refs/pull/378/head +718e98cb18e54120142badbc4a459f75abb3866b refs/pull/3786/head +6f28af72027b78e1d98e3fd16c333741928b52e8 refs/pull/3792/head +1b1596ce1e1534020a9a7735ae781504da48cda5 refs/pull/3796/head +5034e277e425ac6206e02501ea5d7b6588515859 refs/pull/3796/merge +33ef70c1923f051dc8a9de5c724cafbd569ef534 refs/pull/3797/head +103acd1747d0bda36a25ede45789b1fd534d5e6e refs/pull/38/head +8a8b0c727d8c6325100abf11f7cb49683424079f refs/pull/3803/head +18d66474e01ce931cdf9c84b6ebc6f91e996ec18 refs/pull/3804/head +aa9bc1f78531d071896d41ea52d48cd1ea2a19d7 refs/pull/3806/head +32543c46daee97b32129595cdd837c39d40792ca refs/pull/3808/head +c13f1154739eab1ce339c0fa7e6468a0889ffe75 refs/pull/381/head +b664bcbf814fa5b87072fb8b2f51bf11f2650abe refs/pull/3813/head +9026cc8d426107f140f029a1a9a73da53beb2e1a refs/pull/382/head +60cbfa59bfce9a04c43cbde99ceaea3c92097f57 refs/pull/3821/head +d18b793c71542da3e8b4b80efac789ddc3bc9932 refs/pull/3831/head +637f655b6fe48fb8312b338d439a548911743057 refs/pull/385/head +f96c5e8a1e6a8afb2711141db5835de4b8813f50 refs/pull/3859/head +5272b465cc9255280dff5c493a92354513ba7222 refs/pull/386/head +08ca47cadb05ac14c5e9d1cf568a2c407059190a refs/pull/387/head +43a7b7ffdd2edb69def4e038956b2b4fbb946eea refs/pull/3870/head +f9a6a1f37183a9096ebc175ef16b3b67be9de247 refs/pull/3870/merge +23d56c34220ca24cc604ced185c4ea98a7ece497 refs/pull/3899/head +99b3f0dc573353d73ae0993f69a7e1b233472dc7 refs/pull/3899/merge +0da4a8fc8a477834c4b39e88069d027545dbdc96 refs/pull/39/head +b435ee49adfb93277584024129d22122683fce30 refs/pull/3909/head +79fdfd6524e929efd8709f5a096afaa385ec3972 refs/pull/391/head +a77482575ae8ca3fc646d012508c4d33d3fb936a refs/pull/3910/head +ccc51e75803dc4d3d3779cc8b0c643373da70eb9 refs/pull/3911/head +5d932ed7a8fe79138308e6ba7804d57e69ef1a89 refs/pull/393/head +3b27dbb0aa058bf01d648ad0c1b3399ce97f6d0e refs/pull/394/head +01e33a49193ec389aa36189119e36195a4809eed refs/pull/3950/head +30b408eaa9f3d84c4aee849597ba1f25d4ba06ad refs/pull/3951/head +79903d241b41befb04f4195fbdd37244b60cf6e9 refs/pull/3958/head +480bf9b0c1ce9bfb98db084b7426dad6e6e5d2df refs/pull/3959/head +94f26c59c6f295a4f9354e9e2b2f39a52af6b247 refs/pull/396/head +ca1a9e26d82815c35e0814824d1083bbe56347f9 refs/pull/3964/head +e205e3b7db0920b31855607a9ffa7413e3560d75 refs/pull/3965/head +c78bfe0d709dd20d0b53363c43a75e06a9d1f0d8 refs/pull/398/head +ef5e0bd4e568359d13d16e779ba4312a30ae9f30 refs/pull/3981/head +2529bfa8a8ba3fe8dd84c6f8b9e75fe48cc08f02 refs/pull/3982/head +4861f6deccf893c8b4e26db56c39fdc099ae965f refs/pull/3986/head +0b691fc6bd616a7aa83e3a7426492b924e9dbbc0 refs/pull/3988/head +deebad2862635fda45799d37515a97184a301189 refs/pull/3988/merge +7d981093727b8c63c632db79baf3c1c04881c7c7 refs/pull/3989/head +4f037944e5cea8286e63731f068c2a44b6264036 refs/pull/3990/head +eda21fb9be640b99fc9d71aa7f1d94990248709c refs/pull/3994/head +31500de49177b156c28078092ff1d3978116a2a8 refs/pull/3997/head +cd3d8a024c6a8539322895187c9204247563bc4b refs/pull/4001/head +38264e747e2a6f169f0717950d62b61afcc0449f refs/pull/4001/merge +f0701657a9d225a169ba07fe7566cfaef18e42a2 refs/pull/401/head +dd421809e517e3f69c31e545929365049a04d6c7 refs/pull/402/head +2602e038bd49eaab4f26124515ccb1e2b753f5a0 refs/pull/4025/head +fe1973c9d4f7c2a1ca69c8796978a93e44080551 refs/pull/4030/head +0b903fc5f43a02d90551a95dc2a40cd28ff8a834 refs/pull/404/head +7f892267d4af2c709e5a798230e90f33daa703e8 refs/pull/4043/head +a3d063aadd1032155d04229925154f1347b37aa7 refs/pull/4045/head +8bad96fc9b9e71bb21dc864875c1cabe52cc8ad4 refs/pull/4056/head +8b5b06c3d1711ddcc194a80850f6a8b3fd0d6629 refs/pull/406/head +a7abb44e2457512e92d2ccd9a0918d2fc6ea257f refs/pull/4067/head +4b02f800016347493f05d089227ba712cb4c273c refs/pull/4074/head +ae996b3f4030d538d603e16074eaede359ae1b9f refs/pull/4085/head +0cb0683c608688f8550f92de4d322739b9cf4512 refs/pull/4085/merge +7050479a36c19dee2a19fd2147fd6f6bbb828f45 refs/pull/4096/head +0260667f7a299b638a14c40b265d463790645a7f refs/pull/41/head +473f8b8e314b19faae1edae758b6716702bab6d8 refs/pull/410/head +eccb3ab9474f5088eb74cd606806153bdd463575 refs/pull/4100/head +4846b0d71a17fc206ad3e78e08a37663bb87ba4b refs/pull/4126/head +a8d664e1fed9fa0817e29970728613c85046f8cb refs/pull/4127/head +d156170971a4e1e93b56249a49286d5b69b9b924 refs/pull/414/head +ebb70b99a4378f43d41b8d21e7f6235575da9af6 refs/pull/4143/head +f0d0a03a611e5bba27ac58d1c32d49e91ee1703d refs/pull/4153/head +30e72a96a9b57879ffa1078e68636e9370afcd83 refs/pull/416/head +381528b71d943a03e58c4c8db9e9268551dbda21 refs/pull/4163/head +efea5bcff6671e36bd33ffe8bb69f1fe19c467f2 refs/pull/4168/head +588ebcf347b4587dcb96ee56ff25afa979e87454 refs/pull/4170/head +bfe4f127cf4962a92720c58652fbb874c74f659d refs/pull/4173/head +c90176e2a53cb6c0ba181acd06776246a362405d refs/pull/4201/head +88c37565c9622c7cd700d44d81c6b8538a25cda1 refs/pull/4207/head +87d41ea287d84e66502ab0b16b0e8e4cc2e39a88 refs/pull/4211/head +ab9a6c7ae4c89acec20de710bda2c3c9cb1ab40c refs/pull/4227/head +553c76fa97305d9a5ddf66f2821ed5ba33c12959 refs/pull/4237/head +cc9e1ab79efab15cc1dc746160656c759f700b68 refs/pull/4242/head +854a25cdc7816960c3f3154647dde2a8fdb4687c refs/pull/4243/head +45c75acfde3cd17eb6911c89fee575b089c78b9f refs/pull/4243/merge +d2a15f9f06005100456f2baba49424ff7c2a6afa refs/pull/4245/head +5d7de4dc899f1ce4519ead9c6d96b094e683c2c8 refs/pull/4257/head +80d63da49cea87831e626793a5c69bae618daf56 refs/pull/4260/head +5564dc8f84bd2794e928d7b960d62e6a0d735862 refs/pull/4263/head +4c69326a661219f2809172194cc85d0549c9eb76 refs/pull/4265/head +4b740094c13a00278978a42e93632470bb2d8d4f refs/pull/4267/head +c4b0bf089be3b66f4fd2ede1ccca3de9436862ca refs/pull/4271/head +636a673d2d593b6e8d89cba32417e0fe32125bb3 refs/pull/4275/head +fe55200e63c7f6dabc05619ea10f6cce3b9c5cb3 refs/pull/4276/head +0ad94c4dc332152502fffb43b28272a56082fb2c refs/pull/4282/head +1b768b7dceda6f4bab91a248c6704fa86acfbb9c refs/pull/4290/head +1a07c84aba448135f35b58db6b4e137b03a36528 refs/pull/4297/head +d0bdd4613a609d666f5c2813cf8e4e06070d58ba refs/pull/4299/head +a95184551d5f8fbcde19812f9b3a59bf17bbae52 refs/pull/4305/head +1e0447dddc8b2ce7deecf9f3910026a3f7836a41 refs/pull/4305/merge +18dba51d3313315f991f4a68465bb0a7897e3b3b refs/pull/4308/head +0634731c31bb8410b3de2a4bae77405b2e79a757 refs/pull/4309/head +2aec1724dead3c1df2e4d28d308af604dc1ba6e4 refs/pull/4315/head +db0aaae84fb6905216f1f4f46b98d8ff063a3bfa refs/pull/4315/merge +6587d0feb806c772dafeb8191a73868edcca8643 refs/pull/4317/head +722aa2114c970cf951f6851a889932949f660ded refs/pull/4317/merge +7976d39d9db75eae481b7e6ddca2ae4eea47951d refs/pull/437/head +6b686c18f72307e07bca213c0c3fcd13fa02c02c refs/pull/440/head +d3a8a278e6ee7f51f63eb867f5410bf087dc43ab refs/pull/455/head +4889415caedcc05b5980612c6ed13d2f37508234 refs/pull/456/head +03fdf36bf9f63068da5ecddbe9ea98d512fd2259 refs/pull/460/head +400a17a1ce8e204921be07a7c5b281ee528774cf refs/pull/47/head +2768396a72a1cc196edd865a077775b5dab3bd03 refs/pull/473/head +ef551f4cc635963b0cca26a5e2befaacd81a283b refs/pull/475/head +cf8ca85289f6e1e722f5732e848656a859641611 refs/pull/484/head +badd22ac3d1b6c364c7be59e64ec0c48f2b960dd refs/pull/486/head +62a461ae15fe78193015fe7e34458d1bf31bf455 refs/pull/493/head +4923614730d5fb8f00dec4a9c529b41fb058e8ef refs/pull/510/head +6989fc7bdb6069e5f4fe4628d3d569e6a1f5cc33 refs/pull/511/head +fa30a06e1bf5906e39311364472f36c8ed416b36 refs/pull/513/head +9671ed4cca50e621cf18066292928ccb4e04594e refs/pull/514/head +2e300da0570ac9704b6ab87fd7cd8b46a279b6dc refs/pull/520/head +4aad0b28cfc827263adb17f2f9fa74afea544a86 refs/pull/521/head +0b13a8c4aae48400803d3693a78709d68e088718 refs/pull/525/head +d84d8d756f2687d7587a0190c46cafea4a99f6c8 refs/pull/54/head +df71f57d869d981d56697d255ad3e87630d3629e refs/pull/541/head +9f8183deb064215ba658359ed63e270f5bfa3b7d refs/pull/55/head +5d50b1ee3cfe3b4028a876900f61ca3138561fc8 refs/pull/555/head +e7b6238f4312e87e432baa4cfc5f4ae26ac355f9 refs/pull/571/head +ee7837d022488986ebd17cc1aa39cd11da9f738b refs/pull/582/head +672a2455481d52ffc6d0499ec110e0e02269884b refs/pull/585/head +cce3ce816c1e21861631252d466fe014ab4980e7 refs/pull/589/head +5a2f968d7a868fcfed2c67055ada88dd7a8db06b refs/pull/599/head +eea3f13bb3f3e92152284a7dbaa4d62bad5651ea refs/pull/604/head +d8dff6e39f005ead5b20eb631f4be0dde2140264 refs/pull/61/head +486365c941885899be51e55ebc34543fa3ca72fd refs/pull/61/merge +f5f9861a78c1a4b6322e27739e7886d8d0f15759 refs/pull/621/head +1264eb640a0ba95b8c1294918c6c65e7d5c734c9 refs/pull/624/head +56f12dc982091972fbfb21dbf4c6fbf7574396ed refs/pull/631/head +d6e9af909be8be79bf4f301d25a343df6108efd7 refs/pull/638/head +7b1da527a6dfd453a3d3d16ef2acd64565107991 refs/pull/639/head +a0ae032ea709bee1422a22b9dd022b0a06c33442 refs/pull/64/head +e6b763026e25b57eb342bc90aeced6a856c63681 refs/pull/643/head +be2916333b7db2837c8f0ce2367ff3996c11d781 refs/pull/644/head +05569147af6390ecf218824aa3df1e6a52a91d86 refs/pull/648/head +57701d5213a963252b16e460df3c72d9f4b60383 refs/pull/65/head +edc482c8ea36fdefa2913cfd54eb52af5045eb24 refs/pull/652/head +bb9ddd5680d9fde6bbd58d1f306da2bc4fa0f407 refs/pull/653/head +9466f0269607098304c03f87e2ed116b93a2c01d refs/pull/657/head +2cde814aaa956c0eb90e810601348781a32bf617 refs/pull/660/head +603a964579fc56797d80d8681e0b98a2dfd46166 refs/pull/664/head +2edecf34fff71ec1c89c05b5f6c5b6121eed715d refs/pull/666/head +83fd44eeef7330d4719a69ff30791919e38ddda0 refs/pull/667/head +2ccbc1cd3817451b0087ba1eacdf13551bd55f75 refs/pull/670/head +3b7a5bd1023c6ade04c7f04345568be1f4bedabe refs/pull/671/head +ebc47dc161405518c4a88d1ac006b8def1677ad8 refs/pull/673/head +2b5692e9d66cef1e71b690f1116c968b9a98c0ef refs/pull/677/head +7814218208f9ddf6404cdd339b52639704875adf refs/pull/679/head +03ce42e1cff6f354eb76e7868731fa196e891c1a refs/pull/68/head +ee550be80cb3ee6d1c64fcd30f8a49008167c2f4 refs/pull/690/head +00a11b1b784af6283a8321d240a309bb637d23a6 refs/pull/695/head +5c5c250d7102107cd56c0d3156d0310aaaf8df71 refs/pull/696/head +c5185ddb8386d7a5bf120d777a4a014a2f8b2f91 refs/pull/7/head +ca31f117d5bd236796c276411358721d4921422b refs/pull/70/head +3442eb1b9da50d3007d994c25543f3ec04f7a397 refs/pull/701/head +85dbf4e16c60e9657552f6cedab3e5111115fe7c refs/pull/703/head +efc65b93f8ac7d4289f0d11aeee43a6879c34531 refs/pull/704/head +2ffc3eac4da67c82db0d7dbc361295a047139499 refs/pull/710/head +c52adef919419a1e823fbc26c49aaef9032248ff refs/pull/711/head +3f6809bcdf88268543c0ee75ae6c3a3fbcf23df8 refs/pull/713/head +fbc2fad9c9294f812e63e7b8ed9908ba021b8c4c refs/pull/716/head +8d13e759faa79dc823020915b7499a429cae6b57 refs/pull/72/head +748c82520213dacb957e9994942f415970e19d13 refs/pull/720/head +b889e5185e810373f0b935ccc474d046f42f3fbf refs/pull/725/head +64d6f72e6c71dec7cbcb5992f31473c416d0678e refs/pull/728/head +bd1e8be32811609fe6df452767ef2e4d542d4508 refs/pull/730/head +5ac6133c9c38344c1590b599fe4e25eb9aa2ab5c refs/pull/733/head +2b8d08a3f4a14e16416f1b3d7645f1865547477f refs/pull/738/head +79fccccad778088093bad858258aafd7f2037e70 refs/pull/74/head +b209c1bc4d3f31a9b7061ee2b4aef276faaef3f8 refs/pull/741/head +b5441f6b775e407c1201852fc8fa723dbd3655ff refs/pull/755/head +0bcc2ae7ab666eb473f5fc94f532baa2e4d507ff refs/pull/779/head +a3b30ed65ab68f7e9afbe6ba0cbcf92b0946a670 refs/pull/784/head +f00732ddc5cc94f734c5e9aa9f5e8e696515d221 refs/pull/8/head +714da18b512e75bfaa47604e84356676f99495c0 refs/pull/800/head +d592323e390db4007711c8b7bcdbeec2a8ed2271 refs/pull/803/head +0a88f020e1ca33a8ab80029d96bfe6ea3d66aa2e refs/pull/804/head +934c41a9dce64fc5c19b184535118262bec9598e refs/pull/808/head +e271b246f3ae469b2db54bacb218b271b38bb6da refs/pull/81/head +e196ba6e869793a37f0f5fa79f0f46c12ec3b40a refs/pull/812/head +692ed81306ba3f2398294d3140bd7fe80fdf1856 refs/pull/82/head +e277f7d1c12dc90d3a4ec63b7c6b88613fa56f5c refs/pull/824/head +c4101162d667aa7be34c662198b126079d058833 refs/pull/831/head +cd7d4d53b81e008c49d4b8325cc7d1520b0cd945 refs/pull/839/head +4677ae4ac63549929bd3545e4808f82285592c1c refs/pull/84/head +03233429f4475de558c58707224d1cf72aa28c42 refs/pull/864/head +2ea052ba5e4c041e4aae3c531cec40b23422843c refs/pull/866/head +ad9f2b2d8e3d63bbfb7eadddc8b4978e34ee515f refs/pull/868/head +bd09fe1a3d9b7f31644fb5fb9f9c38a30c893dac refs/pull/876/head +97fb7b5b96b66ee1b476cb9f74c8be0742c57c50 refs/pull/879/head +cc404b4edc392fc141c941da10e411d8e98a817e refs/pull/888/head +de72655bb11246b6b4b4c0debfd4ff381ff552e1 refs/pull/89/head +84dc2eda1f06ba8596474acaa0af77312cf2d673 refs/pull/892/head +7e9e200d293abcfb7e3395811a9c5c9be66fd3f7 refs/pull/9/head +2bf337dc280872461b82064a65aa91dc35a0ad86 refs/pull/900/head +5d3b765a238f6df35e3233499d6da763ad7c6cd8 refs/pull/901/head +a8a7e4f9a5473e4b019eee7fae559d494ef17f7a refs/pull/903/head +1b4b40c95dab106a5b06b8b1685004b59abf21dd refs/pull/906/head +06f7bd7c976b78c5e490c03f016c9713026c161f refs/pull/91/head +b8a8f0c6d2bfc2def1adf0e95efa2caa1638826c refs/pull/910/head +9b1d07365e92f6f5e9b51b82fd3f30fdcab660b5 refs/pull/911/head +ba725e1c256464620def3146cf3167b37292de0d refs/pull/912/head +35f30088b2fd4f97c39b4af6c4aadecaecffe5a4 refs/pull/916/head +d2d9fb08cc6de0d69e895b854837b3853fd5baf3 refs/pull/918/head +baac8d9627945c7a307d8c617558eb9be07308b0 refs/pull/919/head +2dc1427027cb2c5436ec8ebc4d11d6b0964d803a refs/pull/92/head +c06162b22fdf8f2cfa96b38ab1e679d1ed332b94 refs/pull/922/head +fdf50f0064e7fa7949a3acf0e94bea5ab00463b8 refs/pull/927/head +bbb0484d032b6f268384b51a68b72614d79bb020 refs/pull/928/head +862d4010770766285f63924d74a1e919707ce6be refs/pull/932/head +d4bfa1a1893b473e60a3238abcdc10bf4eb3599b refs/pull/933/head +7407b8326aa02ca21c4c2dc1d98768fa8104412e refs/pull/939/head +a0ad3b952b3d00307648776d333ad43628dd19f0 refs/pull/941/head +3bfb95ef95cf4328fad2cf8137c6479298e98cee refs/pull/949/head +6cd8512bbd869dbb2370798fc473abfbec47fbb3 refs/pull/956/head +86685c1cd2f8d1d8771bcd97d5dd5aa3c3efd4b9 refs/pull/957/head +6645f190fa61db24be4c5705b6772f76d1d34a66 refs/pull/959/head +0a68de6c24a51e4e221ae5afb43d2cfc6b48dac1 refs/pull/960/head +1ee8e44912a02feb77fd9640a5cc4782b494820b refs/pull/966/head +3b06ab296b1091e45c5664f87b1d4869d22d25f6 refs/pull/978/head +819d5e2dc8f5a32b5989fae34cd792eba37f82c8 refs/pull/979/head +42e37ebea1ae8fe25c861d0a073a67973f89e4a1 refs/pull/987/head +6a8c65493f2194c065705bfd180b4106e9db6478 refs/pull/988/head +08afc312c392fefba2088eb5910e6b985afb5daf refs/pull/989/head +5a0ad5cdca234f8ccc5ae2a074d1dd04e7b0c473 refs/pull/990/head +2f6b506710bcdfa2c064455621771278490ecbb8 refs/pull/991/head +322a08edfb3f6dc2958025ddbe33f5d71463c133 refs/pull/994/head +afaebc6cf359fb77c65bdf80ec07bfa4573709d4 refs/pull/998/head +2f1eff0f4f500914bb6af035f965078aba52ade8 refs/remotes/upstream/diesel2 +03172a6cd7f0f7e91a9ae16af9b53593b0d35211 refs/tags/0.10.0 +48e69cebab29585684be4bf22282ff1dd4697d24 refs/tags/0.11.0 +56b3afa77ca12aba6c3d11edf30b8b16378cbfe5 refs/tags/0.12.0 +bd20d8724b19418dd8a7e7221a7c36a6628aea66 refs/tags/0.13.0 +ebb30229f1bfb1ca0cf8479e64f67a9578bfa7b5 refs/tags/0.9.0 +1c57c9d8e0ed3b7d460d55e95ef40e0064463ab3 refs/tags/1.0.0 +924e4a17e58893d67b949427d628d05f9997b261 refs/tags/1.1.0 +2c2276c5bb2fa3a1c8078b1d7ea6185bb769e4e9 refs/tags/1.10.0 +b4b62c22a4fa92d386be8f1d558104654ca3c1ae refs/tags/1.11.0 +cbadf0094181383f222dca5a2bac50dbcb476652 refs/tags/1.12.0 +1e224220a855fb65263d9b67df2a520791b5a882 refs/tags/1.13.0 +59e50b03bd0990a31c3be9b6c760ec41770cf1b1 refs/tags/1.13.1 +70f3ab8ec3d6ccfd8ec8c71c888459de484d9b43 refs/tags/1.14 +94341f9f3f273eaa14b058c310f39dd6536f84cb refs/tags/1.14.1 +e3feba2a2cc928e05d4f7372913741029f095dce refs/tags/1.14.2 +1aa5e0d4dc436befe880b714af2e33e7fb789bdb refs/tags/1.15.0 +52ed8e4d7591a53b8b5445a27a2c30a00fb28074 refs/tags/1.15.1 +11845d9f5b40867d39645e80d0eef0ff694b3eee refs/tags/1.16.0 +2626e66873436dcd2cca4f2ad65449feeb9c8f3d refs/tags/1.16.1 +ad48e9ed0f91a1a7b38a032b2a538d4c9725f31c refs/tags/1.16.2 +a7a479623c6f23243c5d242d08a92ccf3fb5bc0c refs/tags/1.16.3 +296063e135c3c021dd8f97913bf21f0cdaf73ce7 refs/tags/1.17.0 +175f2aeace6a6099cb3ea47d2de9968e764b5f43 refs/tags/1.18.0 +9323c57f498815e088448bf82414d411700d636e refs/tags/1.19.0 +2bb6482becbc71456f641a721e27520861cab7c7 refs/tags/1.2.0 +fd27759a95bc7f714abacb3a02b8c6f88b1d3cd4 refs/tags/1.20.0 +1e5306b8203a7ebe24047910e6c690c18c6d827a refs/tags/1.21.0 +72e1946ce5c3e6c33024be499b6e0e516a35ce92 refs/tags/1.22.0 +832f838ddd1637b72edf3fbfe1eff11a20063388 refs/tags/1.22.1 +c6664971300a360a82b42db1bcf0a7d883717fff refs/tags/1.22.2 +f94ac6ca61e24952e3906018ee54615cf9c123ec refs/tags/1.23.0 +9e4d372213c77e429edf1a315ea23779dd251e83 refs/tags/1.23.1 +45122bed9e2e48418e74b73c9a50c7608d3b6ac1 refs/tags/1.24.0 +0c1f0bad179518b5f96d591028d726b027c551b5 refs/tags/1.25.0 +a0eab35768ccb95c3ca7624b073ef402997b0278 refs/tags/1.25.1 +ce9d93003cd37a79edba1ba830a6c6d3fa22c2c8 refs/tags/1.25.2 +638766b346dc0e00c5db7935d21e48354d632335 refs/tags/1.26.0 +10dadfca068ed449fcd4a74b70ae2cd83990d3d4 refs/tags/1.27.0 +3646f14042337290ee3b8f661cc058cb69f52ce1 refs/tags/1.28.0 +0b28ab3be101b58cf27b43da14bcf893fa37c1c8 refs/tags/1.28.1 +1c7338c7c4c7cb5b59f9cc710f0667e21346cfbf refs/tags/1.29.0 +3dbfc484a54c41d1759646444b439da06445060b refs/tags/1.29.1 +66bff73ebf5a8e7dd024b932a9ccbc0b3197865a refs/tags/1.29.2 +e0614620efdd170a0e9b406695314fb005298597 refs/tags/1.3.0 +cec1e87679cfd0e2f0bce9b7dc3256dbbd2effa8 refs/tags/1.30.0 +48836501bf348386d9bb1378fb56db33c19d3732 refs/tags/1.30.1 +ad1d65bdf8a15d3bc1eac076ab4ab394777204ee refs/tags/1.30.2 +4438da39f9c9aa9d83d1dddbf06616ad287f70eb refs/tags/1.30.3 +dd005910824929778f4d54b342f1c5ac8ac834bb refs/tags/1.4.0 +371017b547860a92d10764f5dc3fa2e4f3d6b98c refs/tags/1.5.0 +1d034749f7b3a0c01d9e32287393498b64f50fde refs/tags/1.6.0 +f571df7367991d804603630e04a36d5d96feac11 refs/tags/1.6.1 +8fac72db534723473d2876c213f3d7d1b5ab6f57 refs/tags/1.7.0 +349cb33fbdd1088aa7da59ec5f49f1a8ed0674c7 refs/tags/1.8.0 +21325b7523a68ab3ae8d435ab5b73176db6155ff refs/tags/1.9.0 +08a445e2acb911b09ed0e3b56b03f905635fe5c6 refs/tags/1.9.1